summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMing Yue <mingyue86010@gmail.com>2020-08-11 17:06:59 -0700
committerGitHub <noreply@github.com>2020-08-11 17:06:59 -0700
commit70dcbe4527a45ab4fea6d58c016e7d3032f31e8c (patch)
tree214ded1301dc39ee0c6a033f868784cb1e00a9c0
parent0e0edd96e8236b2ea4a6e6018812807be828c77f (diff)
downloadfreertos-git-70dcbe4527a45ab4fea6d58c016e7d3032f31e8c.tar.gz
Remove unused wolfSSL files. (#197)
* Remove unused wolfSSL files. * Add back some removed ciphers. * Update VS project file.
-rw-r--r--FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj12
-rw-r--r--FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj.filters6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/IPP/.gitkeep0
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/LPCExpresso.cproject266
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/LPCExpresso.project28
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/build-aux/compile348
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/build-aux/config.guess1667
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/build-aux/config.sub1793
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/build-aux/depcomp791
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/build-aux/install-sh529
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/build-aux/ltmain.sh11147
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/build-aux/missing215
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/build-aux/test-driver148
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-cert.derbin953 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-cert.pem65
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-key.derbin610 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-key.pem15
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-cert.derbin969 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-cert.pem66
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-key.derbin608 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-key.pem15
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-keyPub.derbin162 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/dh1024.derbin138 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/dh1024.pem17
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/dsa-pub-1024.pem12
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/dsa1024.derbin448 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/dsa1024.pem12
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/include.am26
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/rsa1024.derbin609 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-cert.derbin941 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-cert.pem130
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-key.derbin609 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-key.pem15
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-cert.derbin1532 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-cert.pem111
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-key.derbin1768 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-key.pem39
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-keyPub.derbin422 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/3072/include.am10
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-cert.derbin1764 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-cert.pem130
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-key.derbin2348 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-key.pem51
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-keyPub.derbin550 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/4096/include.am10
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ca-cert-chain.derbin2151 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ca-cert.derbin1198 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ca-cert.pem86
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-cert.derbin655 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-cert.pem52
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-key.derbin121 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-key.pem5
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-cert.derbin715 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-cert.pem57
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-key.derbin167 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-key.pem6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ca-key.derbin1192 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ca-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/client-ca.pem142
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/client-cert-ext.derbin1292 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/client-cert-ext.pem93
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/client-cert.derbin1230 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/client-cert.pem87
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/client-ecc-cert.derbin780 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/client-ecc-cert.pem55
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/client-key.derbin1192 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/client-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/client-keyEnc.pem30
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/client-keyPub.derbin294 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/client-relative-uri.pem90
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/client-uri-cert.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/ca-int-ecc.pem10
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/ca-int.pem14
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/caEcc384Crl.pem29
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/caEccCrl.pem26
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/cliCrl.pem42
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/client-int-ecc.pem10
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/client-int.pem14
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/crl.pem41
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/crl.revoked44
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/crl2.pem80
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/eccCliCRL.pem26
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/eccSrvCRL.pem26
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/include.am25
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodaltCrl.pem38
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodaltwildCrl.pem38
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodcnCrl.pem38
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodcnwildCrl.pem38
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-int-ecc.pem10
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-int.pem14
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/crl/wolfssl.cnf110
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/dh2048.derbin268 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/dh2048.pem29
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/dh3072.derbin396 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/dh3072.pem11
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/dh4096.derbin524 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/dh4096.pem13
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/dsa2048.derbin835 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/dsa3072.derbin1243 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/dsaparams.pem9
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-key.derbin121 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-key.pem9
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-keyPub.derbin91 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-keyPub.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-key-comp.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-key.derbin121 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-key.pem9
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8.derbin138 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8.pem5
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8Enc.derbin179 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8Enc.pem6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPub.derbin91 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privOnlyCert.pem9
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privOnlyKey.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privkey.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privkeyPkcs8.derbin121 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privkeyPkcs8.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc-rsa-server.p12bin2406 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc/genecc.sh91
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc/include.am8
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc/wolfssl.cnf110
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ecc/wolfssl_384.cnf110
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-key.derbin84 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-key.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-priv.derbin48 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-priv.pem3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519.derbin612 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519.pem15
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-key.derbin84 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-key.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-priv.derbin48 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-priv.pem3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519.derbin604 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519.pem15
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/include.am30
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-key.derbin84 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-key.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-priv.derbin48 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-priv.pem3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519.derbin614 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519.pem15
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-cert.pem15
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-key.derbin84 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-key.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-priv.derbin48 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-priv.pem3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519.derbin598 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519.pem30
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-key.derbin69 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-key.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-priv.derbin73 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-priv.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448.derbin659 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448.pem52
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-key.derbin69 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-key.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-priv.derbin73 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-priv.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448.derbin882 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448.pem60
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/include.am30
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-key.derbin69 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-key.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-priv.derbin73 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-priv.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448.derbin680 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448.pem54
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-cert.pem57
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-key.derbin69 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-key.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-priv.derbin73 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-priv.pem4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448.derbin700 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448.pem109
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/external/baltimore-cybertrust-root.pem21
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/external/ca-digicert-ev.pem23
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/external/ca-globalsign-root.pem42
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/external/ca-google-root.pem22
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/external/include.am9
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/include.am113
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-cert.derbin1051 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-cert.pem83
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-cert.derbin661 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-cert.pem52
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-key.derbin121 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-key.pem5
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-key.derbin1194 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-alt-ecc.pem55
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-alt.pem71
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-ecc.derbin1375 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-ecc.pem33
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain.derbin2153 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain.pem49
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-cert.derbin1102 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-cert.pem88
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-ecc-cert.derbin714 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-ecc-cert.pem57
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/genintcerts.sh293
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/include.am34
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-alt-ecc.pem59
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-alt.pem75
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-ecc.derbin1533 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-ecc.pem37
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain.derbin2309 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain.pem53
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-cert.derbin1258 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-cert.pem94
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-ecc-cert.derbin872 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-ecc-cert.pem63
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ntru-cert.pem29
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ntru-key.rawbin607 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/include.am35
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-ca-and-intermediate-cas.txt4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-ca-and-intermediate-cas.txt.attr1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate1-ca-issued-certs.txt2
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate1-ca-issued-certs.txt.attr1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate2-ca-issued-certs.txt2
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate2-ca-issued-certs.txt.attr1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate3-ca-issued-certs.txt1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate3-ca-issued-certs.txt.attr1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate1-ca-cert.pem186
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate1-ca-key.pem28
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate2-ca-cert.pem186
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate2-ca-key.pem28
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate3-ca-cert.pem186
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate3-ca-key.pem28
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/ocsp-responder-cert.pem182
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/ocsp-responder-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/openssl.cnf42
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/renewcerts-for-test.sh63
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/root-ca-cert.pem93
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/root-ca-key.pem28
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server1-cert.pem279
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server1-key.pem28
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server2-cert.pem279
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server2-key.pem28
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server3-cert.pem279
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server3-key.pem28
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server4-cert.pem279
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server4-key.pem28
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server5-cert.pem279
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server5-key.pem28
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/rsa-pub-2048.pem9
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/rsa2048.derbin1191 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/rsa3072.derbin1768 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-cert-chain.derbin2384 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-cert.derbin1186 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-cert.pem172
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-comp.derbin807 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-comp.pem53
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-rsa.derbin996 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-rsa.pem70
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-self.derbin788 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-self.pem55
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc.derbin852 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc.pem62
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-key.derbin1193 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-keyEnc.pem30
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8.derbin1219 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8.pem28
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc.derbin1261 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc.pem29
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc12.pem29
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc2.pem30
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-revoked-cert.pem173
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/server-revoked-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/taoCert.txt176
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-ber-exp02-05-2022.p7bbin2544 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-degenerate.p7bbin1279 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-ICA1-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-ICA1-pathlen0.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-assembled.pem175
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-entity-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-entity.pem86
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA1-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA1-pathlen0.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA2-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA2-pathlen1.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-assembled.pem265
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-entity-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-entity.pem87
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-ICA1-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-ICA1-pathlen1.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-assembled.pem175
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-entity-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-entity.pem86
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-ICA1-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-ICA1-pathlen127.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-assembled.pem175
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-entity-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-entity.pem86
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-ICA1-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-ICA1-pathlen128.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-assembled.pem175
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-entity-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-entity.pem86
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA1-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA1-pathlen1.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA2-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA2-pathlen0.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-assembled.pem265
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-entity-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-entity.pem87
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA1-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA1-pathlen0.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA2-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA2-pathlen1.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA3-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA3-pathlen99.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA4-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA4-pathlen5.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA5-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA5-pathlen20.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA6-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA6-pathlen10.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA7-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA7-pathlen100.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-assembled.pem710
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-entity-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-entity.pem87
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA1-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA1-pathlen0.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA2-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA2-pathlen2.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA3-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA3-pathlen2.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA4-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA4-pathlen2.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-assembled.pem443
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-entity-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-entity.pem87
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA1-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA1-no_pathlen.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA2-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA2-no_pathlen.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA3-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA3-pathlen2.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-assembled.pem354
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-entity-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-entity.pem87
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA1-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA1-no_pathlen.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA2-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA2-no_pathlen.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA3-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA3-no_pathlen.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA4-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA4-pathlen2.pem89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-assembled.pem443
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-entity-key.pem27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-entity.pem87
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/include.am88
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test-servercert.p12bin5277 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-ia.cfg18
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-ia.derbin1022 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-joi.pem76
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nc.cfg22
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nc.derbin1146 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nct.cfg18
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nct.derbin1054 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-ns.derbin4677 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/crit-cert.pem18
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/crit-key.pem9
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/dh1024.derbin138 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/dh1024.pem17
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/dh512.derbin72 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/dh512.pem12
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/digsigku.pem57
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-ca.derbin857 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-ca.pem69
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-cert.derbin857 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-cert.pem69
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/gen-ext-certs.sh98
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/gen-testcerts.sh205
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/include.am64
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltname.derbin939 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltname.pem75
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltnull.derbin972 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltnull.pem76
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcn.derbin907 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcn.pem71
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcnnull.derbin973 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcnnull.pem73
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-ecc-badsig.derbin852 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-ecc-badsig.pem62
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-rsa-badsig.derbin1186 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-rsa-badsig.pem172
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-duplicate-policy.pem182
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-garbage.derbin917 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-garbage.pem75
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodalt.derbin933 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodalt.pem75
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodaltwild.derbin934 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodaltwild.pem75
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcn.derbin893 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcn.pem71
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcnwild.derbin895 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcnwild.pem71
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-localhost.derbin919 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/test/server-localhost.pem75
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/certs/wolfssl-website-ca.pem91
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/aes.c1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/des3.c1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/fips.c0
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/fips_test.c0
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/hmac.c1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/misc.c29
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/random.c1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/rsa.c1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/sha.c1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/sha256.c1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/sha512.c1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/wolfcrypt_first.c54
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/wolfcrypt_last.c54
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/callbacks.h23
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/certs_test.h10
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/crl.h23
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/aes.h61
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/arc4.h36
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/asn.h48
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/asn_public.h79
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/blake2-impl.h43
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/blake2-int.h44
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/blake2.h45
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/camellia.h39
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/chacha.h36
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/coding.h30
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/compress.h38
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/des3.h49
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/dh.h42
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/dsa.h33
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/ecc.h69
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/error-crypt.h33
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/fips_test.h59
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/hc128.h40
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/hmac.h45
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/include.am54
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/integer.h35
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/logging.h41
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/md2.h43
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/md4.h38
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/md5.h45
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/memory.h42
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/misc.h30
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/mpi_class.h24
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/mpi_superclass.h27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/pkcs7.h53
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/poly1305.h39
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/port/pic32/pic32mz-crypt.h29
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/pwdbased.h37
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/rabbit.h40
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/random.h39
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/ripemd.h38
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/rsa.h58
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/settings.h723
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/settings_comp.h72
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/sha.h37
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/sha256.h46
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/sha512.h41
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/tfm.h42
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/types.h39
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/visibility.h73
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/wc_port.h32
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/error-ssl.h23
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/include.am31
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/internal.h23
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ocsp.h23
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/asn1.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/bio.h4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/bn.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/conf.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/crypto.h4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/des.h28
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/dh.h4
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/dsa.h12
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ec.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ec25519.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ec448.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ecdh.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ecdsa.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ed25519.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ed448.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/engine.h5
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/err.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/evp.h41
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/hmac.h28
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/include.am42
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/lhash.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/md4.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/md5.h5
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ocsp.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/opensslconf.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/opensslv.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ossl_typ.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/pem.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/pkcs12.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/rand.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ripemd.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/rsa.h12
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/sha.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ssl.h34
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ssl23.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/stack.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ui.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/x509.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/x509v3.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/options.h40
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/options.h.in40
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/sniffer.h23
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/sniffer_error.h23
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/sniffer_error.rc93
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/ssl.h721
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/test.h3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/cyassl/version.h27
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/doc/README.txt8
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/doc/include.am21
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/benchmark/include.am15
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/benchmark/tls_bench.c1948
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/benchmark/tls_bench.h30
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/client/client-ntru.vcproj199
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/client/client.c3460
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/client/client.h31
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/client/client.sln20
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/client/client.vcproj201
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/client/client.vcxproj336
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/client/include.am17
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient-ntru.vcproj199
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.c373
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.h30
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.sln20
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.vcproj201
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.vcxproj336
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/include.am20
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver-ntru.vcproj199
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.c537
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.h31
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.sln20
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.vcproj201
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.vcxproj336
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/include.am19
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/include.am9
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/sctp/include.am38
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-client-dtls.c130
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-client.c72
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-server-dtls.c128
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-server.c77
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/server/include.am20
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/server/server-ntru.vcproj199
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/server/server.c2575
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/server/server.h35
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/server/server.sln20
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/server/server.vcproj201
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/examples/server/server.vcxproj336
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/fips-hash.sh20
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/lib/dummy2
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_add_am_macro.m429
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_am_jobserver.m457
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_am_macros.m444
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_append_compile_flags.m467
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_append_flag.m471
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_append_to_file.m427
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_check_compile_flag.m474
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_check_link_flag.m474
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_count_cpus.m4101
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_create_generic_config.m4195
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_debug.m463
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_file_escapes.m430
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_harden_compiler_flags.m4239
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_print_to_file.m427
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_pthread.m4485
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_require_defined.m437
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_tls.m492
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ax_vcs_checkout.m478
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/hexversion.m46
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/lib_socket_nsl.m425
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/libtool.m48369
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ltoptions.m4437
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ltsugar.m4124
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/ltversion.m423
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/lt~obsolete.m499
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/m4/visibility.m477
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/PIC32MZ-serial.h75
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/README79
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/crypto.c782
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/crypto.h273
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/include.am19
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/mcapi_test.c1510
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/user_settings.h386
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/Makefile108
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/nbproject/configurations.xml196
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/nbproject/include.am11
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/nbproject/project.xml20
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/Makefile108
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/nbproject/configurations.xml212
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/nbproject/include.am11
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/nbproject/project.xml20
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/Makefile108
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/nbproject/configurations.xml243
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/nbproject/include.am11
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/nbproject/project.xml17
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/Makefile108
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/nbproject/configurations.xml210
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/nbproject/include.am10
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/nbproject/project.xml17
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/PIC32MZ-serial.h96
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/README66
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/benchmark_main.c79
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/include.am10
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/test_main.c99
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/user_settings.h386
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/Makefile108
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/nbproject/configurations.xml218
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/nbproject/include.am11
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/nbproject/project.xml19
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/Makefile108
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/nbproject/configurations.xml218
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/nbproject/include.am11
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/nbproject/project.xml19
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/Makefile108
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/nbproject/configurations.xml265
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/nbproject/include.am10
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/nbproject/project.xml17
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/README43
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/.cproject541
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/.project31
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/Sources/include.am12
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/Sources/util.c180
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/Sources/util.h14
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/.cproject698
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/.project42
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Debugger/K70FN1M0.mem43
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Debugger/init_kinetis.tcl71
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Debugger/mass_erase_kinetis.tcl31
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/ReferencedRSESystems.xml296
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Sources/include.am22
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Sources/main.c94
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Sources/main.h20
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch133
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch133
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink34
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch182
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch182
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch168
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/.cproject681
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/.project42
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Debugger/K70FN1M0.mem43
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Debugger/init_kinetis.tcl71
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Debugger/mass_erase_kinetis.tcl31
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/ReferencedRSESystems.xml296
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Sources/include.am22
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Sources/main.c94
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Sources/main.h20
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch133
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch133
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink34
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch182
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch182
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch168
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl/.cproject1145
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl/.project48
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl/include.am11
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/.cproject681
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/.project35
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Debugger/K70FN1M0.mem43
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Debugger/init_kinetis.tcl71
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Debugger/mass_erase_kinetis.tcl31
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/ReferencedRSESystems.xml296
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Sources/include.am22
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Sources/main.c293
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Sources/main.h60
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch133
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch133
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink34
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch182
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch182
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch168
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/resource.h14
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/rpm/include.am37
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/rpm/spec.in345
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/benchmark.test115
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/cleanup_testfiles.sh14
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/crl-revoked.test118
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/dertoc.pl71
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/external.test34
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/google.test26
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/include.am98
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/memtest.sh24
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp-stapling-with-ca-as-responder.test231
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp-stapling.test314
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp-stapling2.test395
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp.test92
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/openssl.test327
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/ping.test29
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/pkcallbacks.test123
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/psk.test148
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/resume.test144
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/sniffer-ipv6.pcapbin9484 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/sniffer-testsuite.test23
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/stm32l4-v4_0_1_build.sh199
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/testsuite.pcapbin52480 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/tls13.test203
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/scripts/trusted_peer.test286
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/src/bio.c2
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSniffer.vcproj210
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSniffer.vcxproj188
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSnifferTest/include.am14
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSnifferTest/snifftest.c563
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSnifferTest/sslSniffTest.vcproj199
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/support/include.am10
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/support/wolfssl.pc10
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/support/wolfssl.pc.in10
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/swig/PythonBuild.sh9
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/swig/README45
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/swig/include.am12
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/swig/python_wolfssl.vcproj225
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/swig/rsasign.py35
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/swig/runme.py43
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/swig/wolfssl.i68
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/swig/wolfssl_adds.c237
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/api.c32482
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/hash.c1045
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/include.am48
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/srp.c838
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/suites.c1031
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-altchains.conf245
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-chains.conf384
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-dhprime.conf25
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-dtls-sha2.conf66
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-dtls.conf893
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-ed25519.conf71
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-ed448.conf59
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-enckeys.conf42
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-fails.conf179
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-maxfrag-dtls.conf215
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-maxfrag.conf179
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-psk-no-id-sha2.conf87
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-psk-no-id.conf214
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-psk.conf7
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-qsh-sha2.conf303
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-qsh.conf1778
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-sctp-sha2.conf67
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-sctp.conf1042
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-sha2.conf403
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-sig.conf219
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13-down.conf44
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13-ecc.conf93
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13-psk.conf31
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13.conf211
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test-trustpeer.conf99
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/test.conf2208
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/unit.c172
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tests/unit.h112
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/testsuite/include.am26
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite-ntru.vcproj219
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.c417
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.sln20
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.vcproj221
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.vcxproj341
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/README17
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/include.am23
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/package.bld65
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/package.xdc6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/package.xs12
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/TM4C1294NC.icf29
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/benchmark.cfg81
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/main.c106
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/package.bld.hide53
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/package.xdc6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/TM4C1294NC.icf29
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/main.c55
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/package.bld.hide49
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/package.xdc6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/test.cfg80
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/products.mak30
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/wolfssl.bld89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/tirtos/wolfssl.mak64
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/benchmark/README.md103
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/benchmark/benchmark.h111
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/evp.c2
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/README.md109
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_aes.c299
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_mp.c514
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_sha.c434
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_util.c67
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/README.md176
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/renesas_tsip_aes.c156
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/renesas_tsip_sha.c274
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/renesas_tsip_util.c719
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/af_alg/afalg_aes.c900
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/af_alg/afalg_hash.c339
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/af_alg/wc_afalg.c141
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-curve25519.S6012
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-curve25519.c5581
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-sha512-asm.S5335
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-sha512-asm.c4783
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-aes.c4653
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-chacha.c2857
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-curve25519.S6715
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-curve25519.c6725
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-poly1305.c1166
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha256.c1508
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha512-asm.S1046
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha512-asm.c1041
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha512.c715
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/cryptoCell.c309
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/cryptoCellHash.c134
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/atmel/README.md94
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/atmel/atmel.c843
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_aes.c649
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_doc.pdfbin1107370 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_driver.c1713
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_init.c289
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_sha.c397
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/README.md3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/README_Octeon.md3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/cavium_nitrox.c0
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/cavium_octeon_sync.c879
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/README.md43
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/devcrypto_aes.c384
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/devcrypto_hash.c248
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/wc_devcrypto.c167
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/README.md3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/quickassist.c0
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/quickassist_mem.c0
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/quickassist_sync.c2004
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/mynewt/mynewt_port.c146
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/nrf51.c220
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/nxp/ksdk_port.c1731
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/st/README.md132
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/st/stm32.c879
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/st/stsafe.c566
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/xilinx/xil-aesgcm.c202
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/xilinx/xil-sha3.c158
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/test/README.md60
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/Makefile.am9
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/README.txt78
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/autogen.sh23
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/configure.ac44
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/include.am13
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/include/user_rsa.h137
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/lib/.gitkeep0
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/src/rsa.c2790
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl-ntru.sln65
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl-ntru.vcproj349
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl.rcbin4918 -> 0 bytes
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl.sln74
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl.vcproj406
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl.vcxproj372
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h152
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/Renesas/renesas-tsip-crypt.h153
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/af_alg/afalg_hash.h50
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/af_alg/wc_afalg.h53
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/arm/cryptoCell.h117
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/atmel/atmel.h134
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/caam/caam_driver.h187
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/caam/wolfcaam.h63
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/caam/wolfcaam_sha.h88
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/cavium/cavium_nitrox.h0
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/cavium/cavium_octeon_sync.h31
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/devcrypto/wc_devcrypto.h53
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/intel/quickassist.h0
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/intel/quickassist_mem.h0
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/intel/quickassist_sync.h53
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/nrf51.h44
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/nxp/ksdk_port.h93
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/st/stm32.h142
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/st/stsafe.h99
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/xilinx/xil-sha3.h45
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wolfssl64.sln142
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/include.am41
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/App.config6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/Properties/AssemblyInfo.cs36
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/wolfSSL-DTLS-PSK-Server.cs221
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/wolfSSL-DTLS-PSK-Server.csproj87
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/App.config6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/Properties/AssemblyInfo.cs36
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/wolfSSL-DTLS-Server.cs181
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/wolfSSL-DTLS-Server.csproj88
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/App.config6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/Properties/AssemblyInfo.cs36
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/wolfSSL-Example-IOCallbacks.cs280
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/wolfSSL-Example-IOCallbacks.csproj84
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/App.config6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/Properties/AssemblyInfo.cs36
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/Properties/Settings.Designer.cs26
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/Properties/Settings.settings6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/wolfSSL-TLS-Client.cs210
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/wolfSSL-TLS-Client.csproj132
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/App.config6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/Properties/AssemblyInfo.cs36
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/wolfSSL-TLS-PSK-Server.cs212
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/wolfSSL-TLS-PSK-Server.csproj87
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/App.config6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/Properties/AssemblyInfo.cs36
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/Properties/Settings.Designer.cs26
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/Properties/Settings.settings6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.cs173
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.csproj132
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/App.config6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/AssemblyInfo.cs36
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/Settings.Designer.cs26
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/Settings.settings6
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/wolfSSL-TLS-ServerThreaded.cs194
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/wolfSSL-TLS-ServerThreaded.csproj132
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp.sln173
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/Properties/AssemblyInfo.cs36
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/Properties/Resources.Designer.cs63
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/Properties/Resources.resx101
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/wolfSSL.cs1889
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/wolfSSL_CSharp.csproj80
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/include.am7
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/.gitignore18
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/LICENSING.rst23
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/MANIFEST.in1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/README.rst144
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/Makefile230
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/asymmetric.rst74
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/conf.py299
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/digest.rst71
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/index.rst15
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/mac.rst74
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/random.rst30
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/symmetric.rst42
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/include.am30
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/requirements-testing.txt3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/setup.py56
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/test/test_ciphers.py192
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/test/test_hashes.py150
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/test/test_random.py39
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/tox.ini7
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/__about__.py46
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/__init__.py22
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/build_ffi.py128
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/ciphers.py326
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/exceptions.py24
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/hashes.py303
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/random.py73
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/utils.py37
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/.centos-provisioner.sh38
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/.gitignore21
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/.ubuntu-provisioner.sh36
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/LICENSING.rst23
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/MANIFEST.in2
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/Makefile59
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/README.rst96
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/Vagrantfile17
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/Makefile60
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/api.rst21
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/conf.py300
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/examples.rst95
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/index.rst8
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/installation.rst1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/licensing.rst1
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/requirements.txt2
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/usage.rst87
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/examples/client.py141
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/examples/server.py153
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/include.am38
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/requirements-testing.txt3
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/setup.py88
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/__about__.py50
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/__init__.py678
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/_memory.py35
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/_methods.py83
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/build_ffi.py80
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/exceptions.py89
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/utils.py39
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/conftest.py47
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/test_client.py66
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/test_context.py66
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/test_methods.py59
-rw-r--r--FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/tox.ini7
974 files changed, 7 insertions, 210690 deletions
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj
index 173262091..f5b1e4537 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj
@@ -21,32 +21,32 @@
<PropertyGroup Label="Globals">
<ProjectGuid>{C686325E-3261-42F7-AEB1-DDE5280E1CEB}</ProjectGuid>
<ProjectName>RTOSDemo</ProjectName>
- <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v141</PlatformToolset>
+ <PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v141</PlatformToolset>
+ <PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v141</PlatformToolset>
+ <PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v141</PlatformToolset>
+ <PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -247,7 +247,6 @@
<ClCompile Include="..\..\..\FreeRTOS\Source\queue.c" />
<ClCompile Include="..\..\..\FreeRTOS\Source\tasks.c" />
<ClCompile Include="..\..\..\FreeRTOS\Source\timers.c" />
- <ClCompile Include="..\..\Source\WolfSSL\src\bio.c" />
<ClCompile Include="..\..\Source\WolfSSL\src\crl.c" />
<ClCompile Include="..\..\Source\WolfSSL\src\internal.c" />
<ClCompile Include="..\..\Source\WolfSSL\src\keys.c" />
@@ -282,7 +281,6 @@
<ClCompile Include="..\..\Source\WolfSSL\wolfcrypt\src\ed25519.c" />
<ClCompile Include="..\..\Source\WolfSSL\wolfcrypt\src\ed448.c" />
<ClCompile Include="..\..\Source\WolfSSL\wolfcrypt\src\error.c" />
- <ClCompile Include="..\..\Source\WolfSSL\wolfcrypt\src\evp.c" />
<ClCompile Include="..\..\Source\WolfSSL\wolfcrypt\src\fe_448.c" />
<ClCompile Include="..\..\Source\WolfSSL\wolfcrypt\src\fe_low_mem.c" />
<ClCompile Include="..\..\Source\WolfSSL\wolfcrypt\src\fe_operations.c" />
diff --git a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj.filters
index c140f9d5b..38631abde 100644
--- a/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj.filters
+++ b/FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/WIN32.vcxproj.filters
@@ -132,9 +132,6 @@
<ClCompile Include="..\..\Source\WolfSSL\wolfcrypt\src\error.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
- <ClCompile Include="..\..\Source\WolfSSL\wolfcrypt\src\evp.c">
- <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
- </ClCompile>
<ClCompile Include="..\..\Source\WolfSSL\wolfcrypt\src\fe_448.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
@@ -291,9 +288,6 @@
<ClCompile Include="..\..\Source\WolfSSL\wolfcrypt\src\wolfmath.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
- <ClCompile Include="..\..\Source\WolfSSL\src\bio.c">
- <Filter>FreeRTOS+\wolfSSL</Filter>
- </ClCompile>
<ClCompile Include="..\..\Source\WolfSSL\src\crl.c">
<Filter>FreeRTOS+\wolfSSL</Filter>
</ClCompile>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/IPP/.gitkeep b/FreeRTOS-Plus/Source/WolfSSL/IPP/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/IPP/.gitkeep
+++ /dev/null
diff --git a/FreeRTOS-Plus/Source/WolfSSL/LPCExpresso.cproject b/FreeRTOS-Plus/Source/WolfSSL/LPCExpresso.cproject
deleted file mode 100644
index 1db9a198e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/LPCExpresso.cproject
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
- <storageModule moduleId="org.eclipse.cdt.core.settings">
- <cconfiguration id="com.crt.advproject.config.lib.debug.1488646311">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.lib.debug.1488646311" moduleId="org.eclipse.cdt.core.settings" name="Debug">
- <externalSettings>
- <externalSetting>
- <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/lib_wolfssl"/>
- <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/wolfssl"/>
- <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/lib_wolfssl/Debug"/>
- <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/wolfssl/Debug"/>
- <entry flags="RESOLVED" kind="libraryFile" name="lib_wolfssl" srcPrefixMapping="" srcRootPath=""/>
- <entry flags="RESOLVED" kind="libraryFile" name="wolfssl" srcPrefixMapping="" srcRootPath=""/>
- </externalSetting>
- </externalSettings>
- <extensions>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib" cleanCommand="rm -rf" description="Debug build" errorParsers="org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.crt.advproject.config.lib.debug.1488646311" name="Debug" parent="com.crt.advproject.config.lib.debug" postannouncebuildStep="Performing post-build steps" postbuildStep="arm-none-eabi-size &quot;lib${BuildArtifactFileName}&quot; ; # arm-none-eabi-objdump -h -S &quot;lib${BuildArtifactFileName}&quot; &gt;&quot;${BuildArtifactFileBaseName}.lss&quot;">
- <folderInfo id="com.crt.advproject.config.lib.debug.1488646311." name="/" resourcePath="">
- <toolChain id="com.crt.advproject.toolchain.lib.debug.1447659825" name="NXP MCU Tools" superClass="com.crt.advproject.toolchain.lib.debug">
- <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.lib.debug.1439843825" name="ARM-based MCU (Debug)" superClass="com.crt.advproject.platform.lib.debug"/>
- <builder buildPath="${workspace_loc:/lib_wolfssl}/Debug" id="com.crt.advproject.builder.lib.debug.2117662219" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.lib.debug"/>
- <tool id="com.crt.advproject.cpp.lib.debug.915465581" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.lib.debug"/>
- <tool id="com.crt.advproject.gcc.lib.debug.1124293510" name="MCU C Compiler" superClass="com.crt.advproject.gcc.lib.debug">
- <option id="com.crt.advproject.gcc.arch.1619558061" name="Architecture" superClass="com.crt.advproject.gcc.arch" value="com.crt.advproject.gcc.target.cm3" valueType="enumerated"/>
- <option id="com.crt.advproject.gcc.thumb.1295094535" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" value="true" valueType="boolean"/>
- <option id="gnu.c.compiler.option.preprocessor.def.symbols.1815262015" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="__REDLIB__"/>
- <listOptionValue builtIn="false" value="DEBUG"/>
- <listOptionValue builtIn="false" value="__CODE_RED"/>
- <listOptionValue builtIn="false" value="WOLFSSL_USER_SETTINGS"/>
- <listOptionValue builtIn="false" value="CORE_M3"/>
- </option>
- <option id="gnu.c.compiler.option.misc.other.879694681" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections" valueType="string"/>
- <option id="gnu.c.compiler.option.include.paths.830741839" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfssl}&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfssl/IDE/LPCXPRESSO/lib_wolfssl}&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/lpc_chip_18xx/inc}&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/lpc_board_nxp_lpcxpresso_1837/inc}&quot;"/>
- </option>
- <inputType id="com.crt.advproject.compiler.input.8186130" superClass="com.crt.advproject.compiler.input"/>
- </tool>
- <tool id="com.crt.advproject.gas.lib.debug.1058960898" name="MCU Assembler" superClass="com.crt.advproject.gas.lib.debug">
- <option id="com.crt.advproject.gas.arch.1605272069" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm3" valueType="enumerated"/>
- <option id="com.crt.advproject.gas.thumb.451376463" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/>
- <option id="gnu.both.asm.option.flags.crt.1769879802" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -D__REDLIB__ -DDEBUG -D__CODE_RED" valueType="string"/>
- <option id="gnu.both.asm.option.include.paths.852974162" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfssl}&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfssl/IDE/LPCXPRESSO/lib_wolfssl}&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/lpc_chip_18xx/inc}&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/lpc_board_nxp_lpcxpresso_1837/inc}&quot;"/>
- </option>
- <inputType id="cdt.managedbuild.tool.gnu.assembler.input.899299031" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
- <inputType id="com.crt.advproject.assembler.input.93840004" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/>
- </tool>
- <tool id="com.crt.advproject.ar.lib.debug.1978241722" name="MCU Archiver" superClass="com.crt.advproject.ar.lib.debug"/>
- </toolChain>
- </folderInfo>
- <sourceEntries>
- <entry excluding="src/bio.c|wolfcrypt/src/evp.c|wolfcrypt/src/misc.c|IDE/LPCXPRESSO/wolf_example|tirtos|testsuite|tests|swig|support|sslSniffer|scripts|rpm|mqx|mplabx|mcapi|m4|IDE/WORKBENCH|IDE/WIN|IDE/ROWLEY-CROSSWORKS-ARM|IDE/MYSQL|IDE/MDK-ARM|IDE/MDK5-ARM|IDE/LPCXPRESSO/wolf_demo|IDE/LPCXPRESSO/lpc_chip_18xx|IDE/LPCXPRESSO/lpc_board_nxp_lpcxpresso_1837|IDE/iOS|IDE/IAR-EWARM|examples|Debug|certs|build-aux|Backup|autom4te.cache|wolfcrypt/src/aes_asm.s|wolfcrypt/src/aes_asm.asm|wolfcrypt/user-crypto" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings">
- <externalSettings containerId="lpc_board_nxp_lpcxpresso_1837;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier">
- <externalSetting>
- <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/lpc_board_nxp_lpcxpresso_1837"/>
- <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/lpc_board_nxp_lpcxpresso_1837/Debug"/>
- <entry flags="RESOLVED" kind="libraryFile" name="lpc_board_nxp_lpcxpresso_1837" srcPrefixMapping="" srcRootPath=""/>
- </externalSetting>
- </externalSettings>
- <externalSettings containerId="lpc_chip_18xx;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier">
- <externalSetting>
- <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/lpc_chip_18xx"/>
- <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/lpc_chip_18xx/Debug"/>
- <entry flags="RESOLVED" kind="libraryFile" name="lpc_chip_18xx" srcPrefixMapping="" srcRootPath=""/>
- </externalSetting>
- </externalSettings>
- </storageModule>
- </cconfiguration>
- <cconfiguration id="com.crt.advproject.config.lib.release.1867429683">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.lib.release.1867429683" moduleId="org.eclipse.cdt.core.settings" name="Release">
- <externalSettings>
- <externalSetting>
- <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/lib_wolfssl"/>
- <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/wolfssl"/>
- <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/lib_wolfssl/Release"/>
- <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/wolfssl/Release"/>
- <entry flags="RESOLVED" kind="libraryFile" name="lib_wolfssl" srcPrefixMapping="" srcRootPath=""/>
- <entry flags="RESOLVED" kind="libraryFile" name="wolfssl" srcPrefixMapping="" srcRootPath=""/>
- </externalSetting>
- </externalSettings>
- <extensions>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib" cleanCommand="rm -rf" description="Release build" errorParsers="org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.crt.advproject.config.lib.release.1867429683" name="Release" parent="com.crt.advproject.config.lib.release" postannouncebuildStep="Performing post-build steps" postbuildStep="arm-none-eabi-size &quot;lib${BuildArtifactFileName}&quot; ; # arm-none-eabi-objdump -h -S &quot;lib${BuildArtifactFileName}&quot; &gt;&quot;${BuildArtifactFileBaseName}.lss&quot;">
- <folderInfo id="com.crt.advproject.config.lib.release.1867429683." name="/" resourcePath="">
- <toolChain id="com.crt.advproject.toolchain.lib.release.380660388" name="NXP MCU Tools" superClass="com.crt.advproject.toolchain.lib.release">
- <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.lib.release.1920417960" name="ARM-based MCU (Debug)" superClass="com.crt.advproject.platform.lib.release"/>
- <builder buildPath="${workspace_loc:/lib_wolfssl}/Release" id="com.crt.advproject.builder.lib.release.1957065966" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.lib.release"/>
- <tool id="com.crt.advproject.cpp.lib.release.991239198" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.lib.release"/>
- <tool id="com.crt.advproject.gcc.lib.release.1950313830" name="MCU C Compiler" superClass="com.crt.advproject.gcc.lib.release">
- <option id="com.crt.advproject.gcc.arch.971195452" name="Architecture" superClass="com.crt.advproject.gcc.arch" value="com.crt.advproject.gcc.target.cm3" valueType="enumerated"/>
- <option id="com.crt.advproject.gcc.thumb.167176352" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" value="true" valueType="boolean"/>
- <option id="gnu.c.compiler.option.preprocessor.def.symbols.223126135" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="__REDLIB__"/>
- <listOptionValue builtIn="false" value="NDEBUG"/>
- <listOptionValue builtIn="false" value="__CODE_RED"/>
- <listOptionValue builtIn="false" value="WOLFSSL_USER_SETTINGS"/>
- <listOptionValue builtIn="false" value="CORE_M3"/>
- </option>
- <option id="gnu.c.compiler.option.misc.other.637535653" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections" valueType="string"/>
- <option id="gnu.c.compiler.option.include.paths.74265565" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/wolfssl}&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/freertos}&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/lib_wolfssl}&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfssl}&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/IDE/LPCXPRESSO/lib_wolfssl}&quot;"/>
- </option>
- <inputType id="com.crt.advproject.compiler.input.1144243950" superClass="com.crt.advproject.compiler.input"/>
- </tool>
- <tool id="com.crt.advproject.gas.lib.release.364778201" name="MCU Assembler" superClass="com.crt.advproject.gas.lib.release">
- <option id="com.crt.advproject.gas.arch.95085806" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm3" valueType="enumerated"/>
- <option id="com.crt.advproject.gas.thumb.220186241" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/>
- <option id="gnu.both.asm.option.flags.crt.2139190035" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -D__REDLIB__ -DNDEBUG -D__CODE_RED" valueType="string"/>
- <option id="gnu.both.asm.option.include.paths.1581663756" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfssl}&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/IDE/LPCXPRESSO/lib_wolfssl/}&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${workspace_loc:/wolfssl}&quot;"/>
- </option>
- <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1598169582" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
- <inputType id="com.crt.advproject.assembler.input.842191937" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/>
- </tool>
- <tool id="com.crt.advproject.ar.lib.release.962348675" name="MCU Archiver" superClass="com.crt.advproject.ar.lib.release"/>
- </toolChain>
- </folderInfo>
- <sourceEntries>
- <entry excluding="IDE/LPCXPRESSO/wolf_example|tirtos|testsuite|tests|swig|support|sslSniffer|scripts|rpm|mqx|mplabx|mcapi|m4|IDE/WORKBENCH|IDE/WIN|IDE/ROWLEY-CROSSWORKS-ARM|IDE/MYSQL|IDE/MDK-ARM|IDE/MDK5-ARM|IDE/LPCXPRESSO/wolf_demo|IDE/LPCXPRESSO/lpc_board_nxp_lpcxpresso_1837|IDE/iOS|IDE/IAR-EWARM|examples|Debug|certs|build-aux|Backup|autom4te.cache|wolfcrypt/src/aes_asm.s|wolfcrypt/src/aes_asm.asm|wolfcrypt/user-crypto" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <project id="lib_wolfssl.com.crt.advproject.projecttype.lib.158532356" name="Static Library" projectType="com.crt.advproject.projecttype.lib"/>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
- <storageModule moduleId="com.crt.config">
- <projectStorage>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;TargetConfig&gt;
-&lt;Properties property_0="" property_2="LPC18x7_43x7_2x512_BootA.cfx" property_3="NXP" property_4="LPC18S37" property_count="5" version="70200"/&gt;
-&lt;infoList vendor="NXP"&gt;&lt;info chip="LPC18S37" flash_driver="LPC18x7_43x7_2x512_BootA.cfx" match_id="0x0" name="LPC18S37" resetscript="LPC18LPC43InternalFLASHBootResetscript.scp" stub="crt_emu_lpc18_43_nxp"&gt;&lt;chip&gt;&lt;name&gt;LPC18S37&lt;/name&gt;
-&lt;family&gt;LPC18xx&lt;/family&gt;
-&lt;vendor&gt;NXP (formerly Philips)&lt;/vendor&gt;
-&lt;reset board="None" core="Real" sys="Real"/&gt;
-&lt;clock changeable="TRUE" freq="20MHz" is_accurate="TRUE"/&gt;
-&lt;memory can_program="true" id="Flash" is_ro="true" type="Flash"/&gt;
-&lt;memory id="RAM" type="RAM"/&gt;
-&lt;memory id="Periph" is_volatile="true" type="Peripheral"/&gt;
-&lt;memoryInstance derived_from="Flash" id="MFlashA512" location="0x1a000000" size="0x80000"/&gt;
-&lt;memoryInstance derived_from="Flash" id="MFlashB512" location="0x1b000000" size="0x80000"/&gt;
-&lt;memoryInstance derived_from="RAM" id="RamLoc32" location="0x10000000" size="0x8000"/&gt;
-&lt;memoryInstance derived_from="RAM" id="RamLoc40" location="0x10080000" size="0xa000"/&gt;
-&lt;memoryInstance derived_from="RAM" id="RamAHB32" location="0x20000000" size="0x8000"/&gt;
-&lt;memoryInstance derived_from="RAM" id="RamAHB16" location="0x20008000" size="0x4000"/&gt;
-&lt;memoryInstance derived_from="RAM" id="RamAHB_ETB16" location="0x2000c000" size="0x4000"/&gt;
-&lt;prog_flash blocksz="0x2000" location="0x1a000000" maxprgbuff="0x400" progwithcode="TRUE" size="0x10000"/&gt;
-&lt;prog_flash blocksz="0x10000" location="0x1a010000" maxprgbuff="0x400" progwithcode="TRUE" size="0x70000"/&gt;
-&lt;prog_flash blocksz="0x2000" location="0x1b000000" maxprgbuff="0x400" progwithcode="TRUE" size="0x10000"/&gt;
-&lt;prog_flash blocksz="0x10000" location="0x1b010000" maxprgbuff="0x400" progwithcode="TRUE" size="0x70000"/&gt;
-&lt;peripheralInstance derived_from="V7M_MPU" id="MPU" location="0xe000ed90"/&gt;
-&lt;peripheralInstance derived_from="V7M_NVIC" id="NVIC" location="0xe000e000"/&gt;
-&lt;peripheralInstance derived_from="V7M_DCR" id="DCR" location="0xe000edf0"/&gt;
-&lt;peripheralInstance derived_from="V7M_ITM" id="ITM" location="0xe0000000"/&gt;
-&lt;peripheralInstance derived_from="SCT" id="SCT" location="0x40000000"/&gt;
-&lt;peripheralInstance derived_from="GPDMA" id="GPDMA" location="0x40002000"/&gt;
-&lt;peripheralInstance derived_from="SPIFI" id="SPIFI" location="0x40003000"/&gt;
-&lt;peripheralInstance derived_from="SDMMC" id="SDMMC" location="0x40004000"/&gt;
-&lt;peripheralInstance derived_from="EMC" id="EMC" location="0x40005000"/&gt;
-&lt;peripheralInstance derived_from="USB0" id="USB0" location="0x40006000"/&gt;
-&lt;peripheralInstance derived_from="USB1" id="USB1" location="0x40007000"/&gt;
-&lt;peripheralInstance derived_from="EEPROM" id="EEPROM" location="0x4000e000"/&gt;
-&lt;peripheralInstance derived_from="ETHERNET" id="ETHERNET" location="0x40010000"/&gt;
-&lt;peripheralInstance derived_from="ATIMER" id="ATIMER" location="0x40040000"/&gt;
-&lt;peripheralInstance derived_from="REGFILE" id="REGFILE" location="0x40041000"/&gt;
-&lt;peripheralInstance derived_from="PMC" id="PMC" location="0x40042000"/&gt;
-&lt;peripheralInstance derived_from="CREG" id="CREG" location="0x40043000"/&gt;
-&lt;peripheralInstance derived_from="EVENTROUTER" id="EVENTROUTER" location="0x40044000"/&gt;
-&lt;peripheralInstance derived_from="RTC" id="RTC" location="0x40046000"/&gt;
-&lt;peripheralInstance derived_from="CGU" id="CGU" location="0x40050000"/&gt;
-&lt;peripheralInstance derived_from="CCU1" id="CCU1" location="0x40051000"/&gt;
-&lt;peripheralInstance derived_from="CCU2" id="CCU2" location="0x40052000"/&gt;
-&lt;peripheralInstance derived_from="RGU" id="RGU" location="0x40053000"/&gt;
-&lt;peripheralInstance derived_from="WWDT" id="WWDT" location="0x40080000"/&gt;
-&lt;peripheralInstance derived_from="USART0" id="USART0" location="0x40081000"/&gt;
-&lt;peripheralInstance derived_from="USART2" id="USART2" location="0x400c1000"/&gt;
-&lt;peripheralInstance derived_from="USART3" id="USART3" location="0x400c2000"/&gt;
-&lt;peripheralInstance derived_from="UART1" id="UART1" location="0x40082000"/&gt;
-&lt;peripheralInstance derived_from="SSP0" id="SSP0" location="0x40083000"/&gt;
-&lt;peripheralInstance derived_from="SSP1" id="SSP1" location="0x400c5000"/&gt;
-&lt;peripheralInstance derived_from="TIMER0" id="TIMER0" location="0x40084000"/&gt;
-&lt;peripheralInstance derived_from="TIMER1" id="TIMER1" location="0x40085000"/&gt;
-&lt;peripheralInstance derived_from="TIMER2" id="TIMER2" location="0x400c3000"/&gt;
-&lt;peripheralInstance derived_from="TIMER3" id="TIMER3" location="0x400c4000"/&gt;
-&lt;peripheralInstance derived_from="SCU" id="SCU" location="0x40086000"/&gt;
-&lt;peripheralInstance derived_from="GPIO-PIN-INT" id="GPIO-PIN-INT" location="0x40087000"/&gt;
-&lt;peripheralInstance derived_from="GPIO-GROUP-INT0" id="GPIO-GROUP-INT0" location="0x40088000"/&gt;
-&lt;peripheralInstance derived_from="GPIO-GROUP-INT1" id="GPIO-GROUP-INT1" location="0x40089000"/&gt;
-&lt;peripheralInstance derived_from="MCPWM" id="MCPWM" location="0x400a0000"/&gt;
-&lt;peripheralInstance derived_from="I2C0" id="I2C0" location="0x400a1000"/&gt;
-&lt;peripheralInstance derived_from="I2C1" id="I2C1" location="0x400e0000"/&gt;
-&lt;peripheralInstance derived_from="I2S0" id="I2S0" location="0x400a2000"/&gt;
-&lt;peripheralInstance derived_from="I2S1" id="I2S1" location="0x400a3000"/&gt;
-&lt;peripheralInstance derived_from="C-CAN1" id="C-CAN1" location="0x400a4000"/&gt;
-&lt;peripheralInstance derived_from="RITIMER" id="RITIMER" location="0x400c0000"/&gt;
-&lt;peripheralInstance derived_from="QEI" id="QEI" location="0x400c6000"/&gt;
-&lt;peripheralInstance derived_from="GIMA" id="GIMA" location="0x400c7000"/&gt;
-&lt;peripheralInstance derived_from="DAC" id="DAC" location="0x400e1000"/&gt;
-&lt;peripheralInstance derived_from="C-CAN0" id="C-CAN0" location="0x400e2000"/&gt;
-&lt;peripheralInstance derived_from="ADC0" id="ADC0" location="0x400e3000"/&gt;
-&lt;peripheralInstance derived_from="ADC1" id="ADC1" location="0x400e4000"/&gt;
-&lt;peripheralInstance derived_from="GPIO-PORT" id="GPIO-PORT" location="0x400f4000"/&gt;
-&lt;/chip&gt;
-&lt;processor&gt;&lt;name gcc_name="cortex-m3"&gt;Cortex-M3&lt;/name&gt;
-&lt;family&gt;Cortex-M&lt;/family&gt;
-&lt;/processor&gt;
-&lt;link href="nxp_lpc18xx_peripheral.xme" show="embed" type="simple"/&gt;
-&lt;/info&gt;
-&lt;/infoList&gt;
-&lt;/TargetConfig&gt;</projectStorage>
- </storageModule>
- <storageModule moduleId="refreshScope"/>
- <storageModule moduleId="scannerConfiguration">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
- <scannerConfigBuildInfo instanceId="com.crt.advproject.config.lib.release.1867429683;com.crt.advproject.config.lib.release.1867429683.;com.crt.advproject.gcc.lib.release.1950313830;com.crt.advproject.compiler.input.1144243950">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="com.crt.advproject.config.lib.release.1867429683;com.crt.advproject.config.lib.release.1867429683.;com.crt.advproject.gas.lib.release.364778201;com.crt.advproject.assembler.input.842191937">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="com.crt.advproject.config.lib.debug.1488646311;com.crt.advproject.config.lib.debug.1488646311.;com.crt.advproject.gas.lib.debug.1058960898;com.crt.advproject.assembler.input.93840004">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="com.crt.advproject.config.lib.debug.1488646311;com.crt.advproject.config.lib.debug.1488646311.;com.crt.advproject.gcc.lib.debug.1124293510;com.crt.advproject.compiler.input.8186130">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/>
- </scannerConfigBuildInfo>
- </storageModule>
-</cproject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/LPCExpresso.project b/FreeRTOS-Plus/Source/WolfSSL/LPCExpresso.project
deleted file mode 100644
index fc8bc2812..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/LPCExpresso.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>wolfssl</name>
- <comment></comment>
- <projects>
- <project>lpc_board_nxp_lpcxpresso_1837</project>
- <project>lpc_chip_18xx</project>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
- <triggers>clean,full,incremental,</triggers>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.cdt.core.cnature</nature>
- <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
- <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
- </natures>
-</projectDescription>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/build-aux/compile b/FreeRTOS-Plus/Source/WolfSSL/build-aux/compile
deleted file mode 100644
index 23fcba011..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/build-aux/compile
+++ /dev/null
@@ -1,348 +0,0 @@
-#! /bin/sh
-# Wrapper for compilers which do not understand '-c -o'.
-
-scriptversion=2018-03-07.03; # UTC
-
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
-# Written by Tom Tromey <tromey@cygnus.com>.
-#
-# This program 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, or (at your option)
-# any later version.
-#
-# This program 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, see <https://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-nl='
-'
-
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent tools from complaining about whitespace usage.
-IFS=" "" $nl"
-
-file_conv=
-
-# func_file_conv build_file lazy
-# Convert a $build file to $host form and store it in $file
-# Currently only supports Windows hosts. If the determined conversion
-# type is listed in (the comma separated) LAZY, no conversion will
-# take place.
-func_file_conv ()
-{
- file=$1
- case $file in
- / | /[!/]*) # absolute file, and not a UNC file
- if test -z "$file_conv"; then
- # lazily determine how to convert abs files
- case `uname -s` in
- MINGW*)
- file_conv=mingw
- ;;
- CYGWIN* | MSYS*)
- file_conv=cygwin
- ;;
- *)
- file_conv=wine
- ;;
- esac
- fi
- case $file_conv/,$2, in
- *,$file_conv,*)
- ;;
- mingw/*)
- file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
- ;;
- cygwin/* | msys/*)
- file=`cygpath -m "$file" || echo "$file"`
- ;;
- wine/*)
- file=`winepath -w "$file" || echo "$file"`
- ;;
- esac
- ;;
- esac
-}
-
-# func_cl_dashL linkdir
-# Make cl look for libraries in LINKDIR
-func_cl_dashL ()
-{
- func_file_conv "$1"
- if test -z "$lib_path"; then
- lib_path=$file
- else
- lib_path="$lib_path;$file"
- fi
- linker_opts="$linker_opts -LIBPATH:$file"
-}
-
-# func_cl_dashl library
-# Do a library search-path lookup for cl
-func_cl_dashl ()
-{
- lib=$1
- found=no
- save_IFS=$IFS
- IFS=';'
- for dir in $lib_path $LIB
- do
- IFS=$save_IFS
- if $shared && test -f "$dir/$lib.dll.lib"; then
- found=yes
- lib=$dir/$lib.dll.lib
- break
- fi
- if test -f "$dir/$lib.lib"; then
- found=yes
- lib=$dir/$lib.lib
- break
- fi
- if test -f "$dir/lib$lib.a"; then
- found=yes
- lib=$dir/lib$lib.a
- break
- fi
- done
- IFS=$save_IFS
-
- if test "$found" != yes; then
- lib=$lib.lib
- fi
-}
-
-# func_cl_wrapper cl arg...
-# Adjust compile command to suit cl
-func_cl_wrapper ()
-{
- # Assume a capable shell
- lib_path=
- shared=:
- linker_opts=
- for arg
- do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- eat=1
- case $2 in
- *.o | *.[oO][bB][jJ])
- func_file_conv "$2"
- set x "$@" -Fo"$file"
- shift
- ;;
- *)
- func_file_conv "$2"
- set x "$@" -Fe"$file"
- shift
- ;;
- esac
- ;;
- -I)
- eat=1
- func_file_conv "$2" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -I*)
- func_file_conv "${1#-I}" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -l)
- eat=1
- func_cl_dashl "$2"
- set x "$@" "$lib"
- shift
- ;;
- -l*)
- func_cl_dashl "${1#-l}"
- set x "$@" "$lib"
- shift
- ;;
- -L)
- eat=1
- func_cl_dashL "$2"
- ;;
- -L*)
- func_cl_dashL "${1#-L}"
- ;;
- -static)
- shared=false
- ;;
- -Wl,*)
- arg=${1#-Wl,}
- save_ifs="$IFS"; IFS=','
- for flag in $arg; do
- IFS="$save_ifs"
- linker_opts="$linker_opts $flag"
- done
- IFS="$save_ifs"
- ;;
- -Xlinker)
- eat=1
- linker_opts="$linker_opts $2"
- ;;
- -*)
- set x "$@" "$1"
- shift
- ;;
- *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
- func_file_conv "$1"
- set x "$@" -Tp"$file"
- shift
- ;;
- *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
- func_file_conv "$1" mingw
- set x "$@" "$file"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
- done
- if test -n "$linker_opts"; then
- linker_opts="-link$linker_opts"
- fi
- exec "$@" $linker_opts
- exit 1
-}
-
-eat=
-
-case $1 in
- '')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: compile [--help] [--version] PROGRAM [ARGS]
-
-Wrapper for compilers which do not understand '-c -o'.
-Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
-arguments, and rename the output as expected.
-
-If you are trying to build a whole package this is not the
-right script to run: please start by reading the file 'INSTALL'.
-
-Report bugs to <bug-automake@gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "compile $scriptversion"
- exit $?
- ;;
- cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
- icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
- func_cl_wrapper "$@" # Doesn't return...
- ;;
-esac
-
-ofile=
-cfile=
-
-for arg
-do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- # So we strip '-o arg' only if arg is an object.
- eat=1
- case $2 in
- *.o | *.obj)
- ofile=$2
- ;;
- *)
- set x "$@" -o "$2"
- shift
- ;;
- esac
- ;;
- *.c)
- cfile=$1
- set x "$@" "$1"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
-done
-
-if test -z "$ofile" || test -z "$cfile"; then
- # If no '-o' option was seen then we might have been invoked from a
- # pattern rule where we don't need one. That is ok -- this is a
- # normal compilation that the losing compiler can handle. If no
- # '.c' file was seen then we are probably linking. That is also
- # ok.
- exec "$@"
-fi
-
-# Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
-
-# Create the lock directory.
-# Note: use '[/\\:.-]' here to ensure that we don't use the same name
-# that we are using for the .o file. Also, base the name on the expected
-# object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
-while true; do
- if mkdir "$lockdir" >/dev/null 2>&1; then
- break
- fi
- sleep 1
-done
-# FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir '$lockdir'; exit 1" 1 2 15
-
-# Run the compile.
-"$@"
-ret=$?
-
-if test -f "$cofile"; then
- test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
-elif test -f "${cofile}bj"; then
- test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
-fi
-
-rmdir "$lockdir"
-exit $ret
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC0"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/FreeRTOS-Plus/Source/WolfSSL/build-aux/config.guess b/FreeRTOS-Plus/Source/WolfSSL/build-aux/config.guess
deleted file mode 100644
index 45001cfec..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/build-aux/config.guess
+++ /dev/null
@@ -1,1667 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright 1992-2020 Free Software Foundation, Inc.
-
-timestamp='2020-01-01'
-
-# This file 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <https://www.gnu.org/licenses/>.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that
-# program. This Exception is an additional permission under section 7
-# of the GNU General Public License, version 3 ("GPLv3").
-#
-# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
-#
-# You can get the latest version of this script from:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
-#
-# Please send patches to <config-patches@gnu.org>.
-
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Options:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright 1992-2020 Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- exit 1
-fi
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-tmp=
-# shellcheck disable=SC2172
-trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
-
-set_cc_for_build() {
- # prevent multiple calls if $tmp is already set
- test "$tmp" && return 0
- : "${TMPDIR=/tmp}"
- # shellcheck disable=SC2039
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
- dummy=$tmp/dummy
- case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
- ,,) echo "int x;" > "$dummy.c"
- for driver in cc gcc c89 c99 ; do
- if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$driver"
- break
- fi
- done
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
- esac
-}
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if test -f /.attbin/uname ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-case "$UNAME_SYSTEM" in
-Linux|GNU|GNU/*)
- # If the system lacks a compiler, then just pick glibc.
- # We could probably try harder.
- LIBC=gnu
-
- set_cc_for_build
- cat <<-EOF > "$dummy.c"
- #include <features.h>
- #if defined(__UCLIBC__)
- LIBC=uclibc
- #elif defined(__dietlibc__)
- LIBC=dietlibc
- #else
- LIBC=gnu
- #endif
- EOF
- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
-
- # If ldd exists, use it to detect musl libc.
- if command -v ldd >/dev/null && \
- ldd --version 2>&1 | grep -q ^musl
- then
- LIBC=musl
- fi
- ;;
-esac
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
- *:NetBSD:*:*)
- # NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
- # switched to ELF, *-*-netbsd* would select the old
- # object file format. This provides both forward
- # compatibility and a consistent mechanism for selecting the
- # object file format.
- #
- # Note: NetBSD doesn't particularly care about the vendor
- # portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
- UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
- "/sbin/$sysctl" 2>/dev/null || \
- "/usr/sbin/$sysctl" 2>/dev/null || \
- echo unknown)`
- case "$UNAME_MACHINE_ARCH" in
- armeb) machine=armeb-unknown ;;
- arm*) machine=arm-unknown ;;
- sh3el) machine=shl-unknown ;;
- sh3eb) machine=sh-unknown ;;
- sh5el) machine=sh5le-unknown ;;
- earmv*)
- arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
- endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
- machine="${arch}${endian}"-unknown
- ;;
- *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
- esac
- # The Operating System including object format, if it has switched
- # to ELF recently (or will in the future) and ABI.
- case "$UNAME_MACHINE_ARCH" in
- earm*)
- os=netbsdelf
- ;;
- arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- set_cc_for_build
- if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ELF__
- then
- # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- # Return netbsd for either. FIX?
- os=netbsd
- else
- os=netbsdelf
- fi
- ;;
- *)
- os=netbsd
- ;;
- esac
- # Determine ABI tags.
- case "$UNAME_MACHINE_ARCH" in
- earm*)
- expr='s/^earmv[0-9]/-eabi/;s/eb$//'
- abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
- ;;
- esac
- # The OS release
- # Debian GNU/NetBSD machines have a different userland, and
- # thus, need a distinct triplet. However, they do not need
- # kernel version information, so it can be replaced with a
- # suitable tag, in the style of linux-gnu.
- case "$UNAME_VERSION" in
- Debian*)
- release='-gnu'
- ;;
- *)
- release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
- ;;
- esac
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "$machine-${os}${release}${abi-}"
- exit ;;
- *:Bitrig:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
- exit ;;
- *:OpenBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
- exit ;;
- *:LibertyBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
- echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
- exit ;;
- *:MidnightBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
- exit ;;
- *:ekkoBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
- exit ;;
- *:SolidBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
- exit ;;
- *:OS108:*:*)
- echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
- exit ;;
- macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
- exit ;;
- *:MirBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
- exit ;;
- *:Sortix:*:*)
- echo "$UNAME_MACHINE"-unknown-sortix
- exit ;;
- *:Twizzler:*:*)
- echo "$UNAME_MACHINE"-unknown-twizzler
- exit ;;
- *:Redox:*:*)
- echo "$UNAME_MACHINE"-unknown-redox
- exit ;;
- mips:OSF1:*.*)
- echo mips-dec-osf1
- exit ;;
- alpha:OSF1:*:*)
- case $UNAME_RELEASE in
- *4.0)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- ;;
- *5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
- ;;
- esac
- # According to Compaq, /usr/sbin/psrinfo has been available on
- # OSF/1 and Tru64 systems produced since 1995. I hope that
- # covers most systems running today. This code pipes the CPU
- # types through head -n 1, so we only detect the type of CPU 0.
- ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
- "EV4 (21064)")
- UNAME_MACHINE=alpha ;;
- "EV4.5 (21064)")
- UNAME_MACHINE=alpha ;;
- "LCA4 (21066/21068)")
- UNAME_MACHINE=alpha ;;
- "EV5 (21164)")
- UNAME_MACHINE=alphaev5 ;;
- "EV5.6 (21164A)")
- UNAME_MACHINE=alphaev56 ;;
- "EV5.6 (21164PC)")
- UNAME_MACHINE=alphapca56 ;;
- "EV5.7 (21164PC)")
- UNAME_MACHINE=alphapca57 ;;
- "EV6 (21264)")
- UNAME_MACHINE=alphaev6 ;;
- "EV6.7 (21264A)")
- UNAME_MACHINE=alphaev67 ;;
- "EV6.8CB (21264C)")
- UNAME_MACHINE=alphaev68 ;;
- "EV6.8AL (21264B)")
- UNAME_MACHINE=alphaev68 ;;
- "EV6.8CX (21264D)")
- UNAME_MACHINE=alphaev68 ;;
- "EV6.9A (21264/EV69A)")
- UNAME_MACHINE=alphaev69 ;;
- "EV7 (21364)")
- UNAME_MACHINE=alphaev7 ;;
- "EV7.9 (21364A)")
- UNAME_MACHINE=alphaev79 ;;
- esac
- # A Pn.n version is a patched version.
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
- # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
- exitcode=$?
- trap '' 0
- exit $exitcode ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo "$UNAME_MACHINE"-unknown-amigaos
- exit ;;
- *:[Mm]orph[Oo][Ss]:*:*)
- echo "$UNAME_MACHINE"-unknown-morphos
- exit ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
- *:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
- *:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix"$UNAME_RELEASE"
- exit ;;
- arm*:riscos:*:*|arm*:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
- DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
- DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
- case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
- s390x:SunOS:*:*)
- echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
- exit ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
- exit ;;
- i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux"$UNAME_RELEASE"
- exit ;;
- i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- set_cc_for_build
- SUN_ARCH=i386
- # If there is a compiler, see if it is configured for 64-bit objects.
- # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
- # This test works for both compilers.
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
- if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- SUN_ARCH=x86_64
- fi
- fi
- echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
- exit ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos"$UNAME_RELEASE"
- exit ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos"$UNAME_RELEASE"
- ;;
- sun4)
- echo sparc-sun-sunos"$UNAME_RELEASE"
- ;;
- esac
- exit ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos"$UNAME_RELEASE"
- exit ;;
- # The situation for MiNT is a little confusing. The machine name
- # can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint"$UNAME_RELEASE"
- exit ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint"$UNAME_RELEASE"
- exit ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint"$UNAME_RELEASE"
- exit ;;
- m68k:machten:*:*)
- echo m68k-apple-machten"$UNAME_RELEASE"
- exit ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten"$UNAME_RELEASE"
- exit ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix"$UNAME_RELEASE"
- exit ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix"$UNAME_RELEASE"
- exit ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix"$UNAME_RELEASE"
- exit ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- set_cc_for_build
- sed 's/^ //' << EOF > "$dummy.c"
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
- dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos"$UNAME_RELEASE"
- exit ;;
- Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
- Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
- then
- if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
- [ "$TARGET_BINARY_INTERFACE"x = x ]
- then
- echo m88k-dg-dgux"$UNAME_RELEASE"
- else
- echo m88k-dg-dguxbcs"$UNAME_RELEASE"
- fi
- else
- echo i586-dg-dgux"$UNAME_RELEASE"
- fi
- exit ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
- exit ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
- ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
- fi
- echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
- exit ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- set_cc_for_build
- sed 's/^ //' << EOF > "$dummy.c"
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
- then
- echo "$SYSTEM_NAME"
- else
- echo rs6000-ibm-aix3.2.5
- fi
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit ;;
- *:AIX:*:[4567])
- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/lslpp ] ; then
- IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
- awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
- else
- IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
- fi
- echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
- exit ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
- ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
- 9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
- case "$UNAME_MACHINE" in
- 9000/31?) HP_ARCH=m68000 ;;
- 9000/[34]??) HP_ARCH=m68k ;;
- 9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "$sc_cpu_version" in
- 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
- 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "$sc_kernel_bits" in
- 32) HP_ARCH=hppa2.0n ;;
- 64) HP_ARCH=hppa2.0w ;;
- '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
- esac ;;
- esac
- fi
- if [ "$HP_ARCH" = "" ]; then
- set_cc_for_build
- sed 's/^ //' << EOF > "$dummy.c"
-
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
- test -z "$HP_ARCH" && HP_ARCH=hppa
- fi ;;
- esac
- if [ "$HP_ARCH" = hppa2.0w ]
- then
- set_cc_for_build
-
- # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
- # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
- # generating 64-bit code. GNU and HP use different nomenclature:
- #
- # $ CC_FOR_BUILD=cc ./config.guess
- # => hppa2.0w-hp-hpux11.23
- # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
- # => hppa64-hp-hpux11.23
-
- if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
- grep -q __LP64__
- then
- HP_ARCH=hppa2.0w
- else
- HP_ARCH=hppa64
- fi
- fi
- echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
- exit ;;
- ia64:HP-UX:*:*)
- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux"$HPUX_REV"
- exit ;;
- 3050*:HI-UX:*:*)
- set_cc_for_build
- sed 's/^ //' << EOF > "$dummy.c"
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
- echo hppa1.1-hp-bsd
- exit ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
- echo hppa1.1-hp-osf
- exit ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
- i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo "$UNAME_MACHINE"-unknown-osf1mk
- else
- echo "$UNAME_MACHINE"-unknown-osf1
- fi
- exit ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*[A-Z]90:*:*:*)
- echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
- | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- *:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
- FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
- FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- 5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
- FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
- exit ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi"$UNAME_RELEASE"
- exit ;;
- *:BSD/OS:*:*)
- echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
- exit ;;
- arm:FreeBSD:*:*)
- UNAME_PROCESSOR=`uname -p`
- set_cc_for_build
- if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_PCS_VFP
- then
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
- else
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
- fi
- exit ;;
- *:FreeBSD:*:*)
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- case "$UNAME_PROCESSOR" in
- amd64)
- UNAME_PROCESSOR=x86_64 ;;
- i386)
- UNAME_PROCESSOR=i586 ;;
- esac
- echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
- exit ;;
- i*:CYGWIN*:*)
- echo "$UNAME_MACHINE"-pc-cygwin
- exit ;;
- *:MINGW64*:*)
- echo "$UNAME_MACHINE"-pc-mingw64
- exit ;;
- *:MINGW*:*)
- echo "$UNAME_MACHINE"-pc-mingw32
- exit ;;
- *:MSYS*:*)
- echo "$UNAME_MACHINE"-pc-msys
- exit ;;
- i*:PW*:*)
- echo "$UNAME_MACHINE"-pc-pw32
- exit ;;
- *:Interix*:*)
- case "$UNAME_MACHINE" in
- x86)
- echo i586-pc-interix"$UNAME_RELEASE"
- exit ;;
- authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix"$UNAME_RELEASE"
- exit ;;
- IA64)
- echo ia64-unknown-interix"$UNAME_RELEASE"
- exit ;;
- esac ;;
- i*:UWIN*:*)
- echo "$UNAME_MACHINE"-pc-uwin
- exit ;;
- amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-pc-cygwin
- exit ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
- *:GNU:*:*)
- # the GNU system
- echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
- exit ;;
- *:GNU/*:*:*)
- # other systems with GNU libc and userland
- echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
- exit ;;
- *:Minix:*:*)
- echo "$UNAME_MACHINE"-unknown-minix
- exit ;;
- aarch64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- aarch64_be:Linux:*:*)
- UNAME_MACHINE=aarch64_be
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep -q ld.so.1
- if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- arc:Linux:*:* | arceb:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- arm*:Linux:*:*)
- set_cc_for_build
- if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_EABI__
- then
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- else
- if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_PCS_VFP
- then
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
- else
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
- fi
- fi
- exit ;;
- avr32*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- cris:Linux:*:*)
- echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
- exit ;;
- crisv32:Linux:*:*)
- echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
- exit ;;
- e2k:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- frv:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- hexagon:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- i*86:Linux:*:*)
- echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
- exit ;;
- ia64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- k1om:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- m32r*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- m68*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- mips:Linux:*:* | mips64:Linux:*:*)
- set_cc_for_build
- IS_GLIBC=0
- test x"${LIBC}" = xgnu && IS_GLIBC=1
- sed 's/^ //' << EOF > "$dummy.c"
- #undef CPU
- #undef mips
- #undef mipsel
- #undef mips64
- #undef mips64el
- #if ${IS_GLIBC} && defined(_ABI64)
- LIBCABI=gnuabi64
- #else
- #if ${IS_GLIBC} && defined(_ABIN32)
- LIBCABI=gnuabin32
- #else
- LIBCABI=${LIBC}
- #endif
- #endif
-
- #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
- CPU=mipsisa64r6
- #else
- #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
- CPU=mipsisa32r6
- #else
- #if defined(__mips64)
- CPU=mips64
- #else
- CPU=mips
- #endif
- #endif
- #endif
-
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- MIPS_ENDIAN=el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- MIPS_ENDIAN=
- #else
- MIPS_ENDIAN=
- #endif
- #endif
-EOF
- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"
- test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
- ;;
- mips64el:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- openrisc*:Linux:*:*)
- echo or1k-unknown-linux-"$LIBC"
- exit ;;
- or32:Linux:*:* | or1k*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- padre:Linux:*:*)
- echo sparc-unknown-linux-"$LIBC"
- exit ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-"$LIBC"
- exit ;;
- parisc:Linux:*:* | hppa:Linux:*:*)
- # Look for CPU level
- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
- PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
- *) echo hppa-unknown-linux-"$LIBC" ;;
- esac
- exit ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-"$LIBC"
- exit ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-"$LIBC"
- exit ;;
- ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-"$LIBC"
- exit ;;
- ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-"$LIBC"
- exit ;;
- riscv32:Linux:*:* | riscv64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- s390:Linux:*:* | s390x:Linux:*:*)
- echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
- exit ;;
- sh64*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- sh*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- sparc:Linux:*:* | sparc64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- tile*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- vax:Linux:*:*)
- echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
- exit ;;
- x86_64:Linux:*:*)
- echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
- exit ;;
- xtensa*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- i*86:DYNIX/ptx:4*:*)
- # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
- # earlier versions are messed up and put the nodename in both
- # sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
- i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
- # I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
- echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
- exit ;;
- i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
- # is probably installed.
- echo "$UNAME_MACHINE"-pc-os2-emx
- exit ;;
- i*86:XTS-300:*:STOP)
- echo "$UNAME_MACHINE"-unknown-stop
- exit ;;
- i*86:atheos:*:*)
- echo "$UNAME_MACHINE"-unknown-atheos
- exit ;;
- i*86:syllable:*:*)
- echo "$UNAME_MACHINE"-pc-syllable
- exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
- i*86:*DOS:*:*)
- echo "$UNAME_MACHINE"-pc-msdosdjgpp
- exit ;;
- i*86:*:4.*:*)
- UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
- else
- echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
- fi
- exit ;;
- i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
- case `/bin/uname -X | grep "^Machine"` in
- *486*) UNAME_MACHINE=i486 ;;
- *Pentium) UNAME_MACHINE=i586 ;;
- *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
- esac
- echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
- exit ;;
- i*86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
- (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
- && UNAME_MACHINE=i586
- (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
- else
- echo "$UNAME_MACHINE"-pc-sysv32
- fi
- exit ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i586.
- # Note: whatever this is, it MUST be the same as what config.sub
- # prints for the "djgpp" host, or else GDB configure will decide that
- # this is a cross-build.
- echo i586-pc-msdosdjgpp
- exit ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
- fi
- exit ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit ;;
- mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
- M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
- M68*:*:R3V[5678]*:*)
- test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4; exit; } ;;
- NCR*:*:4.2:* | MPRAS*:*:4.2:*)
- OS_REL='.3'
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
- && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
- m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
- rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv"$UNAME_RELEASE"
- exit ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo "$UNAME_MACHINE"-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes <hewes@openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
- *:*:*:FTX*)
- # From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit ;;
- i*86:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo "$UNAME_MACHINE"-stratus-vos
- exit ;;
- *:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo hppa1.1-stratus-vos
- exit ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux"$UNAME_RELEASE"
- exit ;;
- news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv"$UNAME_RELEASE"
- else
- echo mips-unknown-sysv"$UNAME_RELEASE"
- fi
- exit ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
- BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- echo i586-pc-haiku
- exit ;;
- x86_64:Haiku:*:*)
- echo x86_64-unknown-haiku
- exit ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux"$UNAME_RELEASE"
- exit ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux"$UNAME_RELEASE"
- exit ;;
- SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux"$UNAME_RELEASE"
- exit ;;
- SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux"$UNAME_RELEASE"
- exit ;;
- SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux"$UNAME_RELEASE"
- exit ;;
- SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux"$UNAME_RELEASE"
- exit ;;
- SX-ACE:SUPER-UX:*:*)
- echo sxace-nec-superux"$UNAME_RELEASE"
- exit ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody"$UNAME_RELEASE"
- exit ;;
- *:Rhapsody:*:*)
- echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
- exit ;;
- *:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p`
- case $UNAME_PROCESSOR in
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
- if command -v xcode-select > /dev/null 2> /dev/null && \
- ! xcode-select --print-path > /dev/null 2> /dev/null ; then
- # Avoid executing cc if there is no toolchain installed as
- # cc will be a stub that puts up a graphical alert
- # prompting the user to install developer tools.
- CC_FOR_BUILD=no_compiler_found
- else
- set_cc_for_build
- fi
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
- fi
- # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
- if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_PPC >/dev/null
- then
- UNAME_PROCESSOR=powerpc
- fi
- elif test "$UNAME_PROCESSOR" = i386 ; then
- # uname -m returns i386 or x86_64
- UNAME_PROCESSOR=$UNAME_MACHINE
- fi
- echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
- exit ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = x86; then
- UNAME_PROCESSOR=i386
- UNAME_MACHINE=pc
- fi
- echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
- exit ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
- NEO-*:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk"$UNAME_RELEASE"
- exit ;;
- NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk"$UNAME_RELEASE"
- exit ;;
- NSR-*:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk"$UNAME_RELEASE"
- exit ;;
- NSV-*:NONSTOP_KERNEL:*:*)
- echo nsv-tandem-nsk"$UNAME_RELEASE"
- exit ;;
- NSX-*:NONSTOP_KERNEL:*:*)
- echo nsx-tandem-nsk"$UNAME_RELEASE"
- exit ;;
- *:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
- BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
- DS/*:UNIX_System_V:*:*)
- echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
- exit ;;
- *:Plan9:*:*)
- # "uname -m" is not consistent, so use $cputype instead. 386
- # is converted to i386 for consistency with other x86
- # operating systems.
- # shellcheck disable=SC2154
- if test "$cputype" = 386; then
- UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
- fi
- echo "$UNAME_MACHINE"-unknown-plan9
- exit ;;
- *:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
- *:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
- KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
- XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
- *:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
- *:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
- SEI:*:*:SEIUX)
- echo mips-sei-seiux"$UNAME_RELEASE"
- exit ;;
- *:DragonFly:*:*)
- echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
- exit ;;
- *:*VMS:*:*)
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "$UNAME_MACHINE" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
- esac ;;
- *:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
- i*86:skyos:*:*)
- echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
- exit ;;
- i*86:rdos:*:*)
- echo "$UNAME_MACHINE"-pc-rdos
- exit ;;
- i*86:AROS:*:*)
- echo "$UNAME_MACHINE"-pc-aros
- exit ;;
- x86_64:VMkernel:*:*)
- echo "$UNAME_MACHINE"-unknown-esx
- exit ;;
- amd64:Isilon\ OneFS:*:*)
- echo x86_64-unknown-onefs
- exit ;;
- *:Unleashed:*:*)
- echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
- exit ;;
-esac
-
-# No uname command or uname output not recognized.
-set_cc_for_build
-cat > "$dummy.c" <<EOF
-#ifdef _SEQUENT_
-#include <sys/types.h>
-#include <sys/utsname.h>
-#endif
-#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
-#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
-#include <signal.h>
-#if defined(_SIZE_T_) || defined(SIGLOST)
-#include <sys/utsname.h>
-#endif
-#endif
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-#endif
-
-#if defined (vax)
-#if !defined (ultrix)
-#include <sys/param.h>
-#if defined (BSD)
-#if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-#else
-#if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#else
- printf ("vax-dec-bsd\n"); exit (0);
-#endif
-#endif
-#else
- printf ("vax-dec-bsd\n"); exit (0);
-#endif
-#else
-#if defined(_SIZE_T_) || defined(SIGLOST)
- struct utsname un;
- uname (&un);
- printf ("vax-dec-ultrix%s\n", un.release); exit (0);
-#else
- printf ("vax-dec-ultrix\n"); exit (0);
-#endif
-#endif
-#endif
-#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
-#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
-#if defined(_SIZE_T_) || defined(SIGLOST)
- struct utsname *un;
- uname (&un);
- printf ("mips-dec-ultrix%s\n", un.release); exit (0);
-#else
- printf ("mips-dec-ultrix\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
-
-echo "$0: unable to guess system type" >&2
-
-case "$UNAME_MACHINE:$UNAME_SYSTEM" in
- mips:Linux | mips64:Linux)
- # If we got here on MIPS GNU/Linux, output extra information.
- cat >&2 <<EOF
-
-NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
-the system type. Please install a C compiler and try again.
-EOF
- ;;
-esac
-
-cat >&2 <<EOF
-
-This script (version $timestamp), has failed to recognize the
-operating system you are using. If your script is old, overwrite *all*
-copies of config.guess and config.sub with the latest versions from:
-
- https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
-and
- https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
-
-If $0 has already been updated, send the following data and any
-information you think might be pertinent to config-patches@gnu.org to
-provide the necessary information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo = `(hostinfo) 2>/dev/null`
-/bin/universe = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = "$UNAME_MACHINE"
-UNAME_RELEASE = "$UNAME_RELEASE"
-UNAME_SYSTEM = "$UNAME_SYSTEM"
-UNAME_VERSION = "$UNAME_VERSION"
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/FreeRTOS-Plus/Source/WolfSSL/build-aux/config.sub b/FreeRTOS-Plus/Source/WolfSSL/build-aux/config.sub
deleted file mode 100644
index f02d43ad5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/build-aux/config.sub
+++ /dev/null
@@ -1,1793 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-# Copyright 1992-2020 Free Software Foundation, Inc.
-
-timestamp='2020-01-01'
-
-# This file 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <https://www.gnu.org/licenses/>.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that
-# program. This Exception is an additional permission under section 7
-# of the GNU General Public License, version 3 ("GPLv3").
-
-
-# Please send patches to <config-patches@gnu.org>.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# You can get the latest version of this script from:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
-
-Canonicalize a configuration name.
-
-Options:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright 1992-2020 Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
-
- *local*)
- # First pass through any local machine types.
- echo "$1"
- exit ;;
-
- * )
- break ;;
- esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
- exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
- exit 1;;
-esac
-
-# Split fields of configuration type
-# shellcheck disable=SC2162
-IFS="-" read field1 field2 field3 field4 <<EOF
-$1
-EOF
-
-# Separate into logical components for further validation
-case $1 in
- *-*-*-*-*)
- echo Invalid configuration \`"$1"\': more than four components >&2
- exit 1
- ;;
- *-*-*-*)
- basic_machine=$field1-$field2
- os=$field3-$field4
- ;;
- *-*-*)
- # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
- # parts
- maybe_os=$field2-$field3
- case $maybe_os in
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
- | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
- | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
- | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
- | storm-chaos* | os2-emx* | rtmk-nova*)
- basic_machine=$field1
- os=$maybe_os
- ;;
- android-linux)
- basic_machine=$field1-unknown
- os=linux-android
- ;;
- *)
- basic_machine=$field1-$field2
- os=$field3
- ;;
- esac
- ;;
- *-*)
- # A lone config we happen to match not fitting any pattern
- case $field1-$field2 in
- decstation-3100)
- basic_machine=mips-dec
- os=
- ;;
- *-*)
- # Second component is usually, but not always the OS
- case $field2 in
- # Prevent following clause from handling this valid os
- sun*os*)
- basic_machine=$field1
- os=$field2
- ;;
- # Manufacturers
- dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
- | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
- | unicom* | ibm* | next | hp | isi* | apollo | altos* \
- | convergent* | ncr* | news | 32* | 3600* | 3100* \
- | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
- | ultra | tti* | harris | dolphin | highlevel | gould \
- | cbm | ns | masscomp | apple | axis | knuth | cray \
- | microblaze* | sim | cisco \
- | oki | wec | wrs | winbond)
- basic_machine=$field1-$field2
- os=
- ;;
- *)
- basic_machine=$field1
- os=$field2
- ;;
- esac
- ;;
- esac
- ;;
- *)
- # Convert single-component short-hands not valid as part of
- # multi-component configurations.
- case $field1 in
- 386bsd)
- basic_machine=i386-pc
- os=bsd
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=udi
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=scout
- ;;
- alliant)
- basic_machine=fx80-alliant
- os=
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- os=
- ;;
- am29k)
- basic_machine=a29k-none
- os=bsd
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=sysv
- ;;
- amiga)
- basic_machine=m68k-unknown
- os=
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=bsd
- ;;
- aros)
- basic_machine=i386-pc
- os=aros
- ;;
- aux)
- basic_machine=m68k-apple
- os=aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=dynix
- ;;
- blackfin)
- basic_machine=bfin-unknown
- os=linux
- ;;
- cegcc)
- basic_machine=arm-unknown
- os=cegcc
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=bsd
- ;;
- cray)
- basic_machine=j90-cray
- os=unicos
- ;;
- crds | unos)
- basic_machine=m68k-crds
- os=
- ;;
- da30)
- basic_machine=m68k-da30
- os=
- ;;
- decstation | pmax | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- os=
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=sysv3
- ;;
- dicos)
- basic_machine=i686-pc
- os=dicos
- ;;
- djgpp)
- basic_machine=i586-pc
- os=msdosdjgpp
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=ebmon
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=ose
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=go32
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=sysv3
- ;;
- hp300 | hp300hpux)
- basic_machine=m68k-hp
- os=hpux
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=bsd
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=proelf
- ;;
- i386mach)
- basic_machine=i386-mach
- os=mach
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=sysv
- ;;
- m68knommu)
- basic_machine=m68k-unknown
- os=linux
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=sysv
- ;;
- mingw64)
- basic_machine=x86_64-pc
- os=mingw64
- ;;
- mingw32)
- basic_machine=i686-pc
- os=mingw32
- ;;
- mingw32ce)
- basic_machine=arm-unknown
- os=mingw32ce
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=morphos
- ;;
- moxiebox)
- basic_machine=moxie-unknown
- os=moxiebox
- ;;
- msdos)
- basic_machine=i386-pc
- os=msdos
- ;;
- msys)
- basic_machine=i686-pc
- os=msys
- ;;
- mvs)
- basic_machine=i370-ibm
- os=mvs
- ;;
- nacl)
- basic_machine=le32-unknown
- os=nacl
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=sysv4
- ;;
- netbsd386)
- basic_machine=i386-pc
- os=netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=sysv
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=nonstopux
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=os68k
- ;;
- paragon)
- basic_machine=i860-intel
- os=osf
- ;;
- parisc)
- basic_machine=hppa-unknown
- os=linux
- ;;
- pw32)
- basic_machine=i586-unknown
- os=pw32
- ;;
- rdos | rdos64)
- basic_machine=x86_64-pc
- os=rdos
- ;;
- rdos32)
- basic_machine=i386-pc
- os=rdos
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=coff
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=udi
- ;;
- sei)
- basic_machine=mips-sei
- os=seiux
- ;;
- sequent)
- basic_machine=i386-sequent
- os=
- ;;
- sps7)
- basic_machine=m68k-bull
- os=sysv2
- ;;
- st2000)
- basic_machine=m68k-tandem
- os=
- ;;
- stratus)
- basic_machine=i860-stratus
- os=sysv4
- ;;
- sun2)
- basic_machine=m68000-sun
- os=
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=sunos4
- ;;
- sun3)
- basic_machine=m68k-sun
- os=
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=sunos4
- ;;
- sun4)
- basic_machine=sparc-sun
- os=
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=solaris2
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- os=
- ;;
- sv1)
- basic_machine=sv1-cray
- os=unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=dynix
- ;;
- t3e)
- basic_machine=alphaev5-cray
- os=unicos
- ;;
- t90)
- basic_machine=t90-cray
- os=unicos
- ;;
- toad1)
- basic_machine=pdp10-xkl
- os=tops20
- ;;
- tpf)
- basic_machine=s390x-ibm
- os=tpf
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=vms
- ;;
- vsta)
- basic_machine=i386-pc
- os=vsta
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=vxworks
- ;;
- xbox)
- basic_machine=i686-pc
- os=mingw32
- ;;
- ymp)
- basic_machine=ymp-cray
- os=unicos
- ;;
- *)
- basic_machine=$1
- os=
- ;;
- esac
- ;;
-esac
-
-# Decode 1-component or ad-hoc basic machines
-case $basic_machine in
- # Here we handle the default manufacturer of certain CPU types. It is in
- # some cases the only manufacturer, in others, it is the most popular.
- w89k)
- cpu=hppa1.1
- vendor=winbond
- ;;
- op50n)
- cpu=hppa1.1
- vendor=oki
- ;;
- op60c)
- cpu=hppa1.1
- vendor=oki
- ;;
- ibm*)
- cpu=i370
- vendor=ibm
- ;;
- orion105)
- cpu=clipper
- vendor=highlevel
- ;;
- mac | mpw | mac-mpw)
- cpu=m68k
- vendor=apple
- ;;
- pmac | pmac-mpw)
- cpu=powerpc
- vendor=apple
- ;;
-
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- cpu=m68000
- vendor=att
- ;;
- 3b*)
- cpu=we32k
- vendor=att
- ;;
- bluegene*)
- cpu=powerpc
- vendor=ibm
- os=cnk
- ;;
- decsystem10* | dec10*)
- cpu=pdp10
- vendor=dec
- os=tops10
- ;;
- decsystem20* | dec20*)
- cpu=pdp10
- vendor=dec
- os=tops20
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- cpu=m68k
- vendor=motorola
- ;;
- dpx2*)
- cpu=m68k
- vendor=bull
- os=sysv3
- ;;
- encore | umax | mmax)
- cpu=ns32k
- vendor=encore
- ;;
- elxsi)
- cpu=elxsi
- vendor=elxsi
- os=${os:-bsd}
- ;;
- fx2800)
- cpu=i860
- vendor=alliant
- ;;
- genix)
- cpu=ns32k
- vendor=ns
- ;;
- h3050r* | hiux*)
- cpu=hppa1.1
- vendor=hitachi
- os=hiuxwe2
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- cpu=hppa1.0
- vendor=hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- cpu=m68000
- vendor=hp
- ;;
- hp9k3[2-9][0-9])
- cpu=m68k
- vendor=hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- cpu=hppa1.0
- vendor=hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- cpu=hppa1.1
- vendor=hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- cpu=hppa1.1
- vendor=hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- cpu=hppa1.1
- vendor=hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- cpu=hppa1.1
- vendor=hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- cpu=hppa1.0
- vendor=hp
- ;;
- i*86v32)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
- vendor=pc
- os=sysv32
- ;;
- i*86v4*)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
- vendor=pc
- os=sysv4
- ;;
- i*86v)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
- vendor=pc
- os=sysv
- ;;
- i*86sol2)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
- vendor=pc
- os=solaris2
- ;;
- j90 | j90-cray)
- cpu=j90
- vendor=cray
- os=${os:-unicos}
- ;;
- iris | iris4d)
- cpu=mips
- vendor=sgi
- case $os in
- irix*)
- ;;
- *)
- os=irix4
- ;;
- esac
- ;;
- miniframe)
- cpu=m68000
- vendor=convergent
- ;;
- *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
- cpu=m68k
- vendor=atari
- os=mint
- ;;
- news-3600 | risc-news)
- cpu=mips
- vendor=sony
- os=newsos
- ;;
- next | m*-next)
- cpu=m68k
- vendor=next
- case $os in
- openstep*)
- ;;
- nextstep*)
- ;;
- ns2*)
- os=nextstep2
- ;;
- *)
- os=nextstep3
- ;;
- esac
- ;;
- np1)
- cpu=np1
- vendor=gould
- ;;
- op50n-* | op60c-*)
- cpu=hppa1.1
- vendor=oki
- os=proelf
- ;;
- pa-hitachi)
- cpu=hppa1.1
- vendor=hitachi
- os=hiuxwe2
- ;;
- pbd)
- cpu=sparc
- vendor=tti
- ;;
- pbb)
- cpu=m68k
- vendor=tti
- ;;
- pc532)
- cpu=ns32k
- vendor=pc532
- ;;
- pn)
- cpu=pn
- vendor=gould
- ;;
- power)
- cpu=power
- vendor=ibm
- ;;
- ps2)
- cpu=i386
- vendor=ibm
- ;;
- rm[46]00)
- cpu=mips
- vendor=siemens
- ;;
- rtpc | rtpc-*)
- cpu=romp
- vendor=ibm
- ;;
- sde)
- cpu=mipsisa32
- vendor=sde
- os=${os:-elf}
- ;;
- simso-wrs)
- cpu=sparclite
- vendor=wrs
- os=vxworks
- ;;
- tower | tower-32)
- cpu=m68k
- vendor=ncr
- ;;
- vpp*|vx|vx-*)
- cpu=f301
- vendor=fujitsu
- ;;
- w65)
- cpu=w65
- vendor=wdc
- ;;
- w89k-*)
- cpu=hppa1.1
- vendor=winbond
- os=proelf
- ;;
- none)
- cpu=none
- vendor=none
- ;;
- leon|leon[3-9])
- cpu=sparc
- vendor=$basic_machine
- ;;
- leon-*|leon[3-9]-*)
- cpu=sparc
- vendor=`echo "$basic_machine" | sed 's/-.*//'`
- ;;
-
- *-*)
- # shellcheck disable=SC2162
- IFS="-" read cpu vendor <<EOF
-$basic_machine
-EOF
- ;;
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- cpu=$basic_machine
- vendor=pc
- ;;
- # These rules are duplicated from below for sake of the special case above;
- # i.e. things that normalized to x86 arches should also default to "pc"
- pc98)
- cpu=i386
- vendor=pc
- ;;
- x64 | amd64)
- cpu=x86_64
- vendor=pc
- ;;
- # Recognize the basic CPU types without company name.
- *)
- cpu=$basic_machine
- vendor=unknown
- ;;
-esac
-
-unset -v basic_machine
-
-# Decode basic machines in the full and proper CPU-Company form.
-case $cpu-$vendor in
- # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
- # some cases the only manufacturer, in others, it is the most popular.
- craynv-unknown)
- vendor=cray
- os=${os:-unicosmp}
- ;;
- c90-unknown | c90-cray)
- vendor=cray
- os=${os:-unicos}
- ;;
- fx80-unknown)
- vendor=alliant
- ;;
- romp-unknown)
- vendor=ibm
- ;;
- mmix-unknown)
- vendor=knuth
- ;;
- microblaze-unknown | microblazeel-unknown)
- vendor=xilinx
- ;;
- rs6000-unknown)
- vendor=ibm
- ;;
- vax-unknown)
- vendor=dec
- ;;
- pdp11-unknown)
- vendor=dec
- ;;
- we32k-unknown)
- vendor=att
- ;;
- cydra-unknown)
- vendor=cydrome
- ;;
- i370-ibm*)
- vendor=ibm
- ;;
- orion-unknown)
- vendor=highlevel
- ;;
- xps-unknown | xps100-unknown)
- cpu=xps100
- vendor=honeywell
- ;;
-
- # Here we normalize CPU types with a missing or matching vendor
- dpx20-unknown | dpx20-bull)
- cpu=rs6000
- vendor=bull
- os=${os:-bosx}
- ;;
-
- # Here we normalize CPU types irrespective of the vendor
- amd64-*)
- cpu=x86_64
- ;;
- blackfin-*)
- cpu=bfin
- os=linux
- ;;
- c54x-*)
- cpu=tic54x
- ;;
- c55x-*)
- cpu=tic55x
- ;;
- c6x-*)
- cpu=tic6x
- ;;
- e500v[12]-*)
- cpu=powerpc
- os=$os"spe"
- ;;
- mips3*-*)
- cpu=mips64
- ;;
- ms1-*)
- cpu=mt
- ;;
- m68knommu-*)
- cpu=m68k
- os=linux
- ;;
- m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
- cpu=s12z
- ;;
- openrisc-*)
- cpu=or32
- ;;
- parisc-*)
- cpu=hppa
- os=linux
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- cpu=i586
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
- cpu=i686
- ;;
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- cpu=i686
- ;;
- pentium4-*)
- cpu=i786
- ;;
- pc98-*)
- cpu=i386
- ;;
- ppc-* | ppcbe-*)
- cpu=powerpc
- ;;
- ppcle-* | powerpclittle-*)
- cpu=powerpcle
- ;;
- ppc64-*)
- cpu=powerpc64
- ;;
- ppc64le-* | powerpc64little-*)
- cpu=powerpc64le
- ;;
- sb1-*)
- cpu=mipsisa64sb1
- ;;
- sb1el-*)
- cpu=mipsisa64sb1el
- ;;
- sh5e[lb]-*)
- cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
- ;;
- spur-*)
- cpu=spur
- ;;
- strongarm-* | thumb-*)
- cpu=arm
- ;;
- tx39-*)
- cpu=mipstx39
- ;;
- tx39el-*)
- cpu=mipstx39el
- ;;
- x64-*)
- cpu=x86_64
- ;;
- xscale-* | xscalee[bl]-*)
- cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
- ;;
-
- # Recognize the canonical CPU Types that limit and/or modify the
- # company names they are paired with.
- cr16-*)
- os=${os:-elf}
- ;;
- crisv32-* | etraxfs*-*)
- cpu=crisv32
- vendor=axis
- ;;
- cris-* | etrax*-*)
- cpu=cris
- vendor=axis
- ;;
- crx-*)
- os=${os:-elf}
- ;;
- neo-tandem)
- cpu=neo
- vendor=tandem
- ;;
- nse-tandem)
- cpu=nse
- vendor=tandem
- ;;
- nsr-tandem)
- cpu=nsr
- vendor=tandem
- ;;
- nsv-tandem)
- cpu=nsv
- vendor=tandem
- ;;
- nsx-tandem)
- cpu=nsx
- vendor=tandem
- ;;
- s390-*)
- cpu=s390
- vendor=ibm
- ;;
- s390x-*)
- cpu=s390x
- vendor=ibm
- ;;
- tile*-*)
- os=${os:-linux-gnu}
- ;;
-
- *)
- # Recognize the canonical CPU types that are allowed with any
- # company name.
- case $cpu in
- 1750a | 580 \
- | a29k \
- | aarch64 | aarch64_be \
- | abacus \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
- | alphapca5[67] | alpha64pca5[67] \
- | am33_2.0 \
- | amdgcn \
- | arc | arceb \
- | arm | arm[lb]e | arme[lb] | armv* \
- | avr | avr32 \
- | asmjs \
- | ba \
- | be32 | be64 \
- | bfin | bpf | bs2000 \
- | c[123]* | c30 | [cjt]90 | c4x \
- | c8051 | clipper | craynv | csky | cydra \
- | d10v | d30v | dlx | dsp16xx \
- | e2k | elxsi | epiphany \
- | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
- | h8300 | h8500 \
- | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | hexagon \
- | i370 | i*86 | i860 | i960 | ia16 | ia64 \
- | ip2k | iq2000 \
- | k1om \
- | le32 | le64 \
- | lm32 \
- | m32c | m32r | m32rle \
- | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
- | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
- | m88110 | m88k | maxq | mb | mcore | mep | metag \
- | microblaze | microblazeel \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64eb | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa32r6 | mipsisa32r6el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64r6 | mipsisa64r6el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipsr5900 | mipsr5900el \
- | mipstx39 | mipstx39el \
- | mmix \
- | mn10200 | mn10300 \
- | moxie \
- | mt \
- | msp430 \
- | nds32 | nds32le | nds32be \
- | nfp \
- | nios | nios2 | nios2eb | nios2el \
- | none | np1 | ns16k | ns32k | nvptx \
- | open8 \
- | or1k* \
- | or32 \
- | orion \
- | picochip \
- | pdp10 | pdp11 | pj | pjl | pn | power \
- | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
- | pru \
- | pyramid \
- | riscv | riscv32 | riscv64 \
- | rl78 | romp | rs6000 | rx \
- | score \
- | sh | shl \
- | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
- | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
- | sparclite \
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
- | spu \
- | tahoe \
- | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
- | tron \
- | ubicom32 \
- | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
- | vax \
- | visium \
- | w65 \
- | wasm32 | wasm64 \
- | we32k \
- | x86 | x86_64 | xc16x | xgate | xps100 \
- | xstormy16 | xtensa* \
- | ymp \
- | z8k | z80)
- ;;
-
- *)
- echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
- exit 1
- ;;
- esac
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $vendor in
- digital*)
- vendor=dec
- ;;
- commodore*)
- vendor=cbm
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x$os != x ]
-then
-case $os in
- # First match some system type aliases that might get confused
- # with valid system types.
- # solaris* is a basic system type, with this one exception.
- auroraux)
- os=auroraux
- ;;
- bluegene*)
- os=cnk
- ;;
- solaris1 | solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- solaris)
- os=solaris2
- ;;
- unixware*)
- os=sysv4.2uw
- ;;
- gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
- # es1800 is here to avoid being matched by es* (a different OS)
- es1800*)
- os=ose
- ;;
- # Some version numbers need modification
- chorusos*)
- os=chorusos
- ;;
- isc)
- os=isc2.2
- ;;
- sco6)
- os=sco5v6
- ;;
- sco5)
- os=sco3.2v5
- ;;
- sco4)
- os=sco3.2v4
- ;;
- sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- ;;
- sco3.2v[4-9]* | sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
- ;;
- scout)
- # Don't match below
- ;;
- sco*)
- os=sco3.2v2
- ;;
- psos*)
- os=psos
- ;;
- # Now accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST end in a * to match a version number.
- # sysv* is not here because it comes later, after sysvr4.
- gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
- | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
- | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
- | sym* | kopensolaris* | plan9* \
- | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
- | aos* | aros* | cloudabi* | sortix* | twizzler* \
- | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
- | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
- | knetbsd* | mirbsd* | netbsd* \
- | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
- | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
- | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
- | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
- | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
- | chorusrdb* | cegcc* | glidix* \
- | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
- | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
- | linux-newlib* | linux-musl* | linux-uclibc* \
- | uxpv* | beos* | mpeix* | udk* | moxiebox* \
- | interix* | uwin* | mks* | rhapsody* | darwin* \
- | openstep* | oskit* | conix* | pw32* | nonstopux* \
- | storm-chaos* | tops10* | tenex* | tops20* | its* \
- | os2* | vos* | palmos* | uclinux* | nucleus* \
- | morphos* | superux* | rtmk* | windiss* \
- | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
- | skyos* | haiku* | rdos* | toppers* | drops* | es* \
- | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
- | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
- | nsk* | powerunix)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- qnx*)
- case $cpu in
- x86 | i*86)
- ;;
- *)
- os=nto-$os
- ;;
- esac
- ;;
- hiux*)
- os=hiuxwe2
- ;;
- nto-qnx*)
- ;;
- nto*)
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
- ;;
- sim | xray | os68k* | v88r* \
- | windows* | osx | abug | netware* | os9* \
- | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
- ;;
- linux-dietlibc)
- os=linux-dietlibc
- ;;
- linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- lynx*178)
- os=lynxos178
- ;;
- lynx*5)
- os=lynxos5
- ;;
- lynx*)
- os=lynxos
- ;;
- mac*)
- os=`echo "$os" | sed -e 's|mac|macos|'`
- ;;
- opened*)
- os=openedition
- ;;
- os400*)
- os=os400
- ;;
- sunos5*)
- os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
- ;;
- sunos6*)
- os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
- ;;
- wince*)
- os=wince
- ;;
- utek*)
- os=bsd
- ;;
- dynix*)
- os=bsd
- ;;
- acis*)
- os=aos
- ;;
- atheos*)
- os=atheos
- ;;
- syllable*)
- os=syllable
- ;;
- 386bsd)
- os=bsd
- ;;
- ctix* | uts*)
- os=sysv
- ;;
- nova*)
- os=rtmk-nova
- ;;
- ns2)
- os=nextstep2
- ;;
- # Preserve the version number of sinix5.
- sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- sinix*)
- os=sysv4
- ;;
- tpf*)
- os=tpf
- ;;
- triton*)
- os=sysv3
- ;;
- oss*)
- os=sysv3
- ;;
- svr4*)
- os=sysv4
- ;;
- svr3)
- os=sysv3
- ;;
- sysvr4)
- os=sysv4
- ;;
- # This must come after sysvr4.
- sysv*)
- ;;
- ose*)
- os=ose
- ;;
- *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
- os=mint
- ;;
- zvmoe)
- os=zvmoe
- ;;
- dicos*)
- os=dicos
- ;;
- pikeos*)
- # Until real need of OS specific support for
- # particular features comes up, bare metal
- # configurations are quite functional.
- case $cpu in
- arm*)
- os=eabi
- ;;
- *)
- os=elf
- ;;
- esac
- ;;
- nacl*)
- ;;
- ios)
- ;;
- none)
- ;;
- *-eabi)
- ;;
- *)
- echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $cpu-$vendor in
- score-*)
- os=elf
- ;;
- spu-*)
- os=elf
- ;;
- *-acorn)
- os=riscix1.2
- ;;
- arm*-rebel)
- os=linux
- ;;
- arm*-semi)
- os=aout
- ;;
- c4x-* | tic4x-*)
- os=coff
- ;;
- c8051-*)
- os=elf
- ;;
- clipper-intergraph)
- os=clix
- ;;
- hexagon-*)
- os=elf
- ;;
- tic54x-*)
- os=coff
- ;;
- tic55x-*)
- os=coff
- ;;
- tic6x-*)
- os=coff
- ;;
- # This must come before the *-dec entry.
- pdp10-*)
- os=tops20
- ;;
- pdp11-*)
- os=none
- ;;
- *-dec | vax-*)
- os=ultrix4.2
- ;;
- m68*-apollo)
- os=domain
- ;;
- i386-sun)
- os=sunos4.0.2
- ;;
- m68000-sun)
- os=sunos3
- ;;
- m68*-cisco)
- os=aout
- ;;
- mep-*)
- os=elf
- ;;
- mips*-cisco)
- os=elf
- ;;
- mips*-*)
- os=elf
- ;;
- or32-*)
- os=coff
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=sysv3
- ;;
- sparc-* | *-sun)
- os=sunos4.1.1
- ;;
- pru-*)
- os=elf
- ;;
- *-be)
- os=beos
- ;;
- *-ibm)
- os=aix
- ;;
- *-knuth)
- os=mmixware
- ;;
- *-wec)
- os=proelf
- ;;
- *-winbond)
- os=proelf
- ;;
- *-oki)
- os=proelf
- ;;
- *-hp)
- os=hpux
- ;;
- *-hitachi)
- os=hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=sysv
- ;;
- *-cbm)
- os=amigaos
- ;;
- *-dg)
- os=dgux
- ;;
- *-dolphin)
- os=sysv3
- ;;
- m68k-ccur)
- os=rtu
- ;;
- m88k-omron*)
- os=luna
- ;;
- *-next)
- os=nextstep
- ;;
- *-sequent)
- os=ptx
- ;;
- *-crds)
- os=unos
- ;;
- *-ns)
- os=genix
- ;;
- i370-*)
- os=mvs
- ;;
- *-gould)
- os=sysv
- ;;
- *-highlevel)
- os=bsd
- ;;
- *-encore)
- os=bsd
- ;;
- *-sgi)
- os=irix
- ;;
- *-siemens)
- os=sysv4
- ;;
- *-masscomp)
- os=rtu
- ;;
- f30[01]-fujitsu | f700-fujitsu)
- os=uxpv
- ;;
- *-rom68k)
- os=coff
- ;;
- *-*bug)
- os=coff
- ;;
- *-apple)
- os=macos
- ;;
- *-atari*)
- os=mint
- ;;
- *-wrs)
- os=vxworks
- ;;
- *)
- os=none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-case $vendor in
- unknown)
- case $os in
- riscix*)
- vendor=acorn
- ;;
- sunos*)
- vendor=sun
- ;;
- cnk*|-aix*)
- vendor=ibm
- ;;
- beos*)
- vendor=be
- ;;
- hpux*)
- vendor=hp
- ;;
- mpeix*)
- vendor=hp
- ;;
- hiux*)
- vendor=hitachi
- ;;
- unos*)
- vendor=crds
- ;;
- dgux*)
- vendor=dg
- ;;
- luna*)
- vendor=omron
- ;;
- genix*)
- vendor=ns
- ;;
- clix*)
- vendor=intergraph
- ;;
- mvs* | opened*)
- vendor=ibm
- ;;
- os400*)
- vendor=ibm
- ;;
- ptx*)
- vendor=sequent
- ;;
- tpf*)
- vendor=ibm
- ;;
- vxsim* | vxworks* | windiss*)
- vendor=wrs
- ;;
- aux*)
- vendor=apple
- ;;
- hms*)
- vendor=hitachi
- ;;
- mpw* | macos*)
- vendor=apple
- ;;
- *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
- vendor=atari
- ;;
- vos*)
- vendor=stratus
- ;;
- esac
- ;;
-esac
-
-echo "$cpu-$vendor-$os"
-exit
-
-# Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/FreeRTOS-Plus/Source/WolfSSL/build-aux/depcomp b/FreeRTOS-Plus/Source/WolfSSL/build-aux/depcomp
deleted file mode 100644
index 6b391623c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/build-aux/depcomp
+++ /dev/null
@@ -1,791 +0,0 @@
-#! /bin/sh
-# depcomp - compile a program generating dependencies as side-effects
-
-scriptversion=2018-03-07.03; # UTC
-
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
-
-# This program 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, or (at your option)
-# any later version.
-
-# This program 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, see <https://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
-
-case $1 in
- '')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: depcomp [--help] [--version] PROGRAM [ARGS]
-
-Run PROGRAMS ARGS to compile a file, generating dependencies
-as side-effects.
-
-Environment variables:
- depmode Dependency tracking mode.
- source Source file read by 'PROGRAMS ARGS'.
- object Object file output by 'PROGRAMS ARGS'.
- DEPDIR directory where to store dependencies.
- depfile Dependency file to output.
- tmpdepfile Temporary file to use when outputting dependencies.
- libtool Whether libtool is used (yes/no).
-
-Report bugs to <bug-automake@gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "depcomp $scriptversion"
- exit $?
- ;;
-esac
-
-# Get the directory component of the given path, and save it in the
-# global variables '$dir'. Note that this directory component will
-# be either empty or ending with a '/' character. This is deliberate.
-set_dir_from ()
-{
- case $1 in
- */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
- *) dir=;;
- esac
-}
-
-# Get the suffix-stripped basename of the given path, and save it the
-# global variable '$base'.
-set_base_from ()
-{
- base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
-}
-
-# If no dependency file was actually created by the compiler invocation,
-# we still have to create a dummy depfile, to avoid errors with the
-# Makefile "include basename.Plo" scheme.
-make_dummy_depfile ()
-{
- echo "#dummy" > "$depfile"
-}
-
-# Factor out some common post-processing of the generated depfile.
-# Requires the auxiliary global variable '$tmpdepfile' to be set.
-aix_post_process_depfile ()
-{
- # If the compiler actually managed to produce a dependency file,
- # post-process it.
- if test -f "$tmpdepfile"; then
- # Each line is of the form 'foo.o: dependency.h'.
- # Do two passes, one to just change these to
- # $object: dependency.h
- # and one to simply output
- # dependency.h:
- # which is needed to avoid the deleted-header problem.
- { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
- sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
- } > "$depfile"
- rm -f "$tmpdepfile"
- else
- make_dummy_depfile
- fi
-}
-
-# A tabulation character.
-tab=' '
-# A newline character.
-nl='
-'
-# Character ranges might be problematic outside the C locale.
-# These definitions help.
-upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
-lower=abcdefghijklmnopqrstuvwxyz
-digits=0123456789
-alpha=${upper}${lower}
-
-if test -z "$depmode" || test -z "$source" || test -z "$object"; then
- echo "depcomp: Variables source, object and depmode must be set" 1>&2
- exit 1
-fi
-
-# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
-depfile=${depfile-`echo "$object" |
- sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
-tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
-
-rm -f "$tmpdepfile"
-
-# Avoid interferences from the environment.
-gccflag= dashmflag=
-
-# Some modes work just like other modes, but use different flags. We
-# parameterize here, but still list the modes in the big case below,
-# to make depend.m4 easier to write. Note that we *cannot* use a case
-# here, because this file can only contain one case statement.
-if test "$depmode" = hp; then
- # HP compiler uses -M and no extra arg.
- gccflag=-M
- depmode=gcc
-fi
-
-if test "$depmode" = dashXmstdout; then
- # This is just like dashmstdout with a different argument.
- dashmflag=-xM
- depmode=dashmstdout
-fi
-
-cygpath_u="cygpath -u -f -"
-if test "$depmode" = msvcmsys; then
- # This is just like msvisualcpp but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvisualcpp
-fi
-
-if test "$depmode" = msvc7msys; then
- # This is just like msvc7 but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvc7
-fi
-
-if test "$depmode" = xlc; then
- # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
- gccflag=-qmakedep=gcc,-MF
- depmode=gcc
-fi
-
-case "$depmode" in
-gcc3)
-## gcc 3 implements dependency tracking that does exactly what
-## we want. Yay! Note: for some reason libtool 1.4 doesn't like
-## it if -MD -MP comes after the -MF stuff. Hmm.
-## Unfortunately, FreeBSD c89 acceptance of flags depends upon
-## the command line argument order; so add the flags where they
-## appear in depend2.am. Note that the slowdown incurred here
-## affects only configure: in makefiles, %FASTDEP% shortcuts this.
- for arg
- do
- case $arg in
- -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
- *) set fnord "$@" "$arg" ;;
- esac
- shift # fnord
- shift # $arg
- done
- "$@"
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- mv "$tmpdepfile" "$depfile"
- ;;
-
-gcc)
-## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
-## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
-## (see the conditional assignment to $gccflag above).
-## There are various ways to get dependency output from gcc. Here's
-## why we pick this rather obscure method:
-## - Don't want to use -MD because we'd like the dependencies to end
-## up in a subdir. Having to rename by hand is ugly.
-## (We might end up doing this anyway to support other compilers.)
-## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-## -MM, not -M (despite what the docs say). Also, it might not be
-## supported by the other compilers which use the 'gcc' depmode.
-## - Using -M directly means running the compiler twice (even worse
-## than renaming).
- if test -z "$gccflag"; then
- gccflag=-MD,
- fi
- "$@" -Wp,"$gccflag$tmpdepfile"
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- # The second -e expression handles DOS-style file names with drive
- # letters.
- sed -e 's/^[^:]*: / /' \
- -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the "deleted header file" problem.
-## The problem is that when a header file which appears in a .P file
-## is deleted, the dependency causes make to die (because there is
-## typically no way to rebuild the header). We avoid this by adding
-## dummy dependencies for each header file. Too bad gcc doesn't do
-## this for us directly.
-## Some versions of gcc put a space before the ':'. On the theory
-## that the space means something, we add a space to the output as
-## well. hp depmode also adds that space, but also prefixes the VPATH
-## to the object. Take care to not repeat it in the output.
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-sgi)
- if test "$libtool" = yes; then
- "$@" "-Wp,-MDupdate,$tmpdepfile"
- else
- "$@" -MDupdate "$tmpdepfile"
- fi
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
-
- if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
- echo "$object : \\" > "$depfile"
- # Clip off the initial element (the dependent). Don't try to be
- # clever and replace this with sed code, as IRIX sed won't handle
- # lines with more than a fixed number of characters (4096 in
- # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
- # the IRIX cc adds comments like '#:fec' to the end of the
- # dependency line.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
- | tr "$nl" ' ' >> "$depfile"
- echo >> "$depfile"
- # The second pass generates a dummy entry for each header file.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
- >> "$depfile"
- else
- make_dummy_depfile
- fi
- rm -f "$tmpdepfile"
- ;;
-
-xlc)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-aix)
- # The C for AIX Compiler uses -M and outputs the dependencies
- # in a .u file. In older versions, this file always lives in the
- # current directory. Also, the AIX compiler puts '$object:' at the
- # start of each line; $object doesn't have directory information.
- # Version 6 uses the directory in both cases.
- set_dir_from "$object"
- set_base_from "$object"
- if test "$libtool" = yes; then
- tmpdepfile1=$dir$base.u
- tmpdepfile2=$base.u
- tmpdepfile3=$dir.libs/$base.u
- "$@" -Wc,-M
- else
- tmpdepfile1=$dir$base.u
- tmpdepfile2=$dir$base.u
- tmpdepfile3=$dir$base.u
- "$@" -M
- fi
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- do
- test -f "$tmpdepfile" && break
- done
- aix_post_process_depfile
- ;;
-
-tcc)
- # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
- # FIXME: That version still under development at the moment of writing.
- # Make that this statement remains true also for stable, released
- # versions.
- # It will wrap lines (doesn't matter whether long or short) with a
- # trailing '\', as in:
- #
- # foo.o : \
- # foo.c \
- # foo.h \
- #
- # It will put a trailing '\' even on the last line, and will use leading
- # spaces rather than leading tabs (at least since its commit 0394caf7
- # "Emit spaces for -MD").
- "$@" -MD -MF "$tmpdepfile"
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
- # We have to change lines of the first kind to '$object: \'.
- sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
- # And for each line of the second kind, we have to emit a 'dep.h:'
- # dummy dependency, to avoid the deleted-header problem.
- sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-## The order of this option in the case statement is important, since the
-## shell code in configure will try each of these formats in the order
-## listed in this file. A plain '-MD' option would be understood by many
-## compilers, so we must ensure this comes after the gcc and icc options.
-pgcc)
- # Portland's C compiler understands '-MD'.
- # Will always output deps to 'file.d' where file is the root name of the
- # source file under compilation, even if file resides in a subdirectory.
- # The object file name does not affect the name of the '.d' file.
- # pgcc 10.2 will output
- # foo.o: sub/foo.c sub/foo.h
- # and will wrap long lines using '\' :
- # foo.o: sub/foo.c ... \
- # sub/foo.h ... \
- # ...
- set_dir_from "$object"
- # Use the source, not the object, to determine the base name, since
- # that's sadly what pgcc will do too.
- set_base_from "$source"
- tmpdepfile=$base.d
-
- # For projects that build the same source file twice into different object
- # files, the pgcc approach of using the *source* file root name can cause
- # problems in parallel builds. Use a locking strategy to avoid stomping on
- # the same $tmpdepfile.
- lockdir=$base.d-lock
- trap "
- echo '$0: caught signal, cleaning up...' >&2
- rmdir '$lockdir'
- exit 1
- " 1 2 13 15
- numtries=100
- i=$numtries
- while test $i -gt 0; do
- # mkdir is a portable test-and-set.
- if mkdir "$lockdir" 2>/dev/null; then
- # This process acquired the lock.
- "$@" -MD
- stat=$?
- # Release the lock.
- rmdir "$lockdir"
- break
- else
- # If the lock is being held by a different process, wait
- # until the winning process is done or we timeout.
- while test -d "$lockdir" && test $i -gt 0; do
- sleep 1
- i=`expr $i - 1`
- done
- fi
- i=`expr $i - 1`
- done
- trap - 1 2 13 15
- if test $i -le 0; then
- echo "$0: failed to acquire lock after $numtries attempts" >&2
- echo "$0: check lockdir '$lockdir'" >&2
- exit 1
- fi
-
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- # Each line is of the form `foo.o: dependent.h',
- # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
- # Do two passes, one to just change these to
- # `$object: dependent.h' and one to simply `dependent.h:'.
- sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process this invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp2)
- # The "hp" stanza above does not work with aCC (C++) and HP's ia64
- # compilers, which have integrated preprocessors. The correct option
- # to use with these is +Maked; it writes dependencies to a file named
- # 'foo.d', which lands next to the object file, wherever that
- # happens to be.
- # Much of this is similar to the tru64 case; see comments there.
- set_dir_from "$object"
- set_base_from "$object"
- if test "$libtool" = yes; then
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir.libs/$base.d
- "$@" -Wc,+Maked
- else
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir$base.d
- "$@" +Maked
- fi
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile1" "$tmpdepfile2"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
- # Add 'dependent.h:' lines.
- sed -ne '2,${
- s/^ *//
- s/ \\*$//
- s/$/:/
- p
- }' "$tmpdepfile" >> "$depfile"
- else
- make_dummy_depfile
- fi
- rm -f "$tmpdepfile" "$tmpdepfile2"
- ;;
-
-tru64)
- # The Tru64 compiler uses -MD to generate dependencies as a side
- # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
- # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
- # dependencies in 'foo.d' instead, so we check for that too.
- # Subdirectories are respected.
- set_dir_from "$object"
- set_base_from "$object"
-
- if test "$libtool" = yes; then
- # Libtool generates 2 separate objects for the 2 libraries. These
- # two compilations output dependencies in $dir.libs/$base.o.d and
- # in $dir$base.o.d. We have to check for both files, because
- # one of the two compilations can be disabled. We should prefer
- # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
- # automatically cleaned when .libs/ is deleted, while ignoring
- # the former would cause a distcleancheck panic.
- tmpdepfile1=$dir$base.o.d # libtool 1.5
- tmpdepfile2=$dir.libs/$base.o.d # Likewise.
- tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
- "$@" -Wc,-MD
- else
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir$base.d
- tmpdepfile3=$dir$base.d
- "$@" -MD
- fi
-
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- do
- test -f "$tmpdepfile" && break
- done
- # Same post-processing that is required for AIX mode.
- aix_post_process_depfile
- ;;
-
-msvc7)
- if test "$libtool" = yes; then
- showIncludes=-Wc,-showIncludes
- else
- showIncludes=-showIncludes
- fi
- "$@" $showIncludes > "$tmpdepfile"
- stat=$?
- grep -v '^Note: including file: ' "$tmpdepfile"
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- # The first sed program below extracts the file names and escapes
- # backslashes for cygpath. The second sed program outputs the file
- # name when reading, but also accumulates all include files in the
- # hold buffer in order to output them again at the end. This only
- # works with sed implementations that can handle large buffers.
- sed < "$tmpdepfile" -n '
-/^Note: including file: *\(.*\)/ {
- s//\1/
- s/\\/\\\\/g
- p
-}' | $cygpath_u | sort -u | sed -n '
-s/ /\\ /g
-s/\(.*\)/'"$tab"'\1 \\/p
-s/.\(.*\) \\/\1:/
-H
-$ {
- s/.*/'"$tab"'/
- G
- p
-}' >> "$depfile"
- echo >> "$depfile" # make sure the fragment doesn't end with a backslash
- rm -f "$tmpdepfile"
- ;;
-
-msvc7msys)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-#nosideeffect)
- # This comment above is used by automake to tell side-effect
- # dependency tracking mechanisms from slower ones.
-
-dashmstdout)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout, regardless of -o.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- # Remove '-o $object'.
- IFS=" "
- for arg
- do
- case $arg in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift # fnord
- shift # $arg
- ;;
- esac
- done
-
- test -z "$dashmflag" && dashmflag=-M
- # Require at least two characters before searching for ':'
- # in the target name. This is to cope with DOS-style filenames:
- # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
- "$@" $dashmflag |
- sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process this sed invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-dashXmstdout)
- # This case only exists to satisfy depend.m4. It is never actually
- # run, as this mode is specially recognized in the preamble.
- exit 1
- ;;
-
-makedepend)
- "$@" || exit $?
- # Remove any Libtool call
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
- # X makedepend
- shift
- cleared=no eat=no
- for arg
- do
- case $cleared in
- no)
- set ""; shift
- cleared=yes ;;
- esac
- if test $eat = yes; then
- eat=no
- continue
- fi
- case "$arg" in
- -D*|-I*)
- set fnord "$@" "$arg"; shift ;;
- # Strip any option that makedepend may not understand. Remove
- # the object too, otherwise makedepend will parse it as a source file.
- -arch)
- eat=yes ;;
- -*|$object)
- ;;
- *)
- set fnord "$@" "$arg"; shift ;;
- esac
- done
- obj_suffix=`echo "$object" | sed 's/^.*\././'`
- touch "$tmpdepfile"
- ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
- rm -f "$depfile"
- # makedepend may prepend the VPATH from the source file name to the object.
- # No need to regex-escape $object, excess matching of '.' is harmless.
- sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process the last invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- sed '1,2d' "$tmpdepfile" \
- | tr ' ' "$nl" \
- | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile" "$tmpdepfile".bak
- ;;
-
-cpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- # Remove '-o $object'.
- IFS=" "
- for arg
- do
- case $arg in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift # fnord
- shift # $arg
- ;;
- esac
- done
-
- "$@" -E \
- | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- | sed '$ s: \\$::' > "$tmpdepfile"
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- cat < "$tmpdepfile" >> "$depfile"
- sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvisualcpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- IFS=" "
- for arg
- do
- case "$arg" in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
- set fnord "$@"
- shift
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift
- shift
- ;;
- esac
- done
- "$@" -E 2>/dev/null |
- sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
- echo "$tab" >> "$depfile"
- sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvcmsys)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-none)
- exec "$@"
- ;;
-
-*)
- echo "Unknown depmode $depmode" 1>&2
- exit 1
- ;;
-esac
-
-exit 0
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC0"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/FreeRTOS-Plus/Source/WolfSSL/build-aux/install-sh b/FreeRTOS-Plus/Source/WolfSSL/build-aux/install-sh
deleted file mode 100644
index 20d8b2eae..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/build-aux/install-sh
+++ /dev/null
@@ -1,529 +0,0 @@
-#!/bin/sh
-# install - install a program, script, or datafile
-
-scriptversion=2018-03-11.20; # UTC
-
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# 'make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-
-tab=' '
-nl='
-'
-IFS=" $tab$nl"
-
-# Set DOITPROG to "echo" to test this script.
-
-doit=${DOITPROG-}
-doit_exec=${doit:-exec}
-
-# Put in absolute file names if you don't have them in your path;
-# or use environment vars.
-
-chgrpprog=${CHGRPPROG-chgrp}
-chmodprog=${CHMODPROG-chmod}
-chownprog=${CHOWNPROG-chown}
-cmpprog=${CMPPROG-cmp}
-cpprog=${CPPROG-cp}
-mkdirprog=${MKDIRPROG-mkdir}
-mvprog=${MVPROG-mv}
-rmprog=${RMPROG-rm}
-stripprog=${STRIPPROG-strip}
-
-posix_mkdir=
-
-# Desired mode of installed file.
-mode=0755
-
-chgrpcmd=
-chmodcmd=$chmodprog
-chowncmd=
-mvcmd=$mvprog
-rmcmd="$rmprog -f"
-stripcmd=
-
-src=
-dst=
-dir_arg=
-dst_arg=
-
-copy_on_change=false
-is_target_a_directory=possibly
-
-usage="\
-Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
- or: $0 [OPTION]... SRCFILES... DIRECTORY
- or: $0 [OPTION]... -t DIRECTORY SRCFILES...
- or: $0 [OPTION]... -d DIRECTORIES...
-
-In the 1st form, copy SRCFILE to DSTFILE.
-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
-In the 4th, create DIRECTORIES.
-
-Options:
- --help display this help and exit.
- --version display version info and exit.
-
- -c (ignored)
- -C install only if different (preserve the last data modification time)
- -d create directories instead of installing files.
- -g GROUP $chgrpprog installed files to GROUP.
- -m MODE $chmodprog installed files to MODE.
- -o USER $chownprog installed files to USER.
- -s $stripprog installed files.
- -t DIRECTORY install into DIRECTORY.
- -T report an error if DSTFILE is a directory.
-
-Environment variables override the default commands:
- CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
- RMPROG STRIPPROG
-"
-
-while test $# -ne 0; do
- case $1 in
- -c) ;;
-
- -C) copy_on_change=true;;
-
- -d) dir_arg=true;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift;;
-
- --help) echo "$usage"; exit $?;;
-
- -m) mode=$2
- case $mode in
- *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
- shift;;
-
- -o) chowncmd="$chownprog $2"
- shift;;
-
- -s) stripcmd=$stripprog;;
-
- -t)
- is_target_a_directory=always
- dst_arg=$2
- # Protect names problematic for 'test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
- shift;;
-
- -T) is_target_a_directory=never;;
-
- --version) echo "$0 $scriptversion"; exit $?;;
-
- --) shift
- break;;
-
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
-
- *) break;;
- esac
- shift
-done
-
-# We allow the use of options -d and -T together, by making -d
-# take the precedence; this is for compatibility with GNU install.
-
-if test -n "$dir_arg"; then
- if test -n "$dst_arg"; then
- echo "$0: target directory not allowed when installing a directory." >&2
- exit 1
- fi
-fi
-
-if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
- # When -d is used, all remaining arguments are directories to create.
- # When -t is used, the destination is already specified.
- # Otherwise, the last argument is the destination. Remove it from $@.
- for arg
- do
- if test -n "$dst_arg"; then
- # $@ is not empty: it contains at least $arg.
- set fnord "$@" "$dst_arg"
- shift # fnord
- fi
- shift # arg
- dst_arg=$arg
- # Protect names problematic for 'test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
- done
-fi
-
-if test $# -eq 0; then
- if test -z "$dir_arg"; then
- echo "$0: no input file specified." >&2
- exit 1
- fi
- # It's OK to call 'install-sh -d' without argument.
- # This can happen when creating conditional directories.
- exit 0
-fi
-
-if test -z "$dir_arg"; then
- if test $# -gt 1 || test "$is_target_a_directory" = always; then
- if test ! -d "$dst_arg"; then
- echo "$0: $dst_arg: Is not a directory." >&2
- exit 1
- fi
- fi
-fi
-
-if test -z "$dir_arg"; then
- do_exit='(exit $ret); exit $ret'
- trap "ret=129; $do_exit" 1
- trap "ret=130; $do_exit" 2
- trap "ret=141; $do_exit" 13
- trap "ret=143; $do_exit" 15
-
- # Set umask so as not to create temps with too-generous modes.
- # However, 'strip' requires both read and write access to temps.
- case $mode in
- # Optimize common cases.
- *644) cp_umask=133;;
- *755) cp_umask=22;;
-
- *[0-7])
- if test -z "$stripcmd"; then
- u_plus_rw=
- else
- u_plus_rw='% 200'
- fi
- cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
- *)
- if test -z "$stripcmd"; then
- u_plus_rw=
- else
- u_plus_rw=,u+rw
- fi
- cp_umask=$mode$u_plus_rw;;
- esac
-fi
-
-for src
-do
- # Protect names problematic for 'test' and other utilities.
- case $src in
- -* | [=\(\)!]) src=./$src;;
- esac
-
- if test -n "$dir_arg"; then
- dst=$src
- dstdir=$dst
- test -d "$dstdir"
- dstdir_status=$?
- else
-
- # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
- # might cause directories to be created, which would be especially bad
- # if $src (and thus $dsttmp) contains '*'.
- if test ! -f "$src" && test ! -d "$src"; then
- echo "$0: $src does not exist." >&2
- exit 1
- fi
-
- if test -z "$dst_arg"; then
- echo "$0: no destination specified." >&2
- exit 1
- fi
- dst=$dst_arg
-
- # If destination is a directory, append the input filename.
- if test -d "$dst"; then
- if test "$is_target_a_directory" = never; then
- echo "$0: $dst_arg: Is a directory" >&2
- exit 1
- fi
- dstdir=$dst
- dstbase=`basename "$src"`
- case $dst in
- */) dst=$dst$dstbase;;
- *) dst=$dst/$dstbase;;
- esac
- dstdir_status=0
- else
- dstdir=`dirname "$dst"`
- test -d "$dstdir"
- dstdir_status=$?
- fi
- fi
-
- case $dstdir in
- */) dstdirslash=$dstdir;;
- *) dstdirslash=$dstdir/;;
- esac
-
- obsolete_mkdir_used=false
-
- if test $dstdir_status != 0; then
- case $posix_mkdir in
- '')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- # Note that $RANDOM variable is not portable (e.g. dash); Use it
- # here however when possible just to lower collision chance.
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-
- trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- # Because "mkdir -p" follows existing symlinks and we likely work
- # directly in world-writeable /tmp, make sure that the '$tmpdir'
- # directory is successfully created first before we actually test
- # 'mkdir -p' feature.
- if (umask $mkdir_umask &&
- $mkdirprog $mkdir_mode "$tmpdir" &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- test_tmpdir="$tmpdir/a"
- ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
- fi
- trap '' 0;;
- esac;;
- esac
-
- if
- $posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
- )
- then :
- else
-
- # The umask is ridiculous, or mkdir does not conform to POSIX,
- # or it failed possibly due to a race condition. Create the
- # directory the slow way, step by step, checking for races as we go.
-
- case $dstdir in
- /*) prefix='/';;
- [-=\(\)!]*) prefix='./';;
- *) prefix='';;
- esac
-
- oIFS=$IFS
- IFS=/
- set -f
- set fnord $dstdir
- shift
- set +f
- IFS=$oIFS
-
- prefixes=
-
- for d
- do
- test X"$d" = X && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
- done
-
- if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
- fi
- fi
- fi
-
- if test -n "$dir_arg"; then
- { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
- { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
- test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
- else
-
- # Make a couple of temp file names in the proper directory.
- dsttmp=${dstdirslash}_inst.$$_
- rmtmp=${dstdirslash}_rm.$$_
-
- # Trap to clean up those temp files at exit.
- trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-
- # Copy the file name to the temp name.
- (umask $cp_umask &&
- { test -z "$stripcmd" || {
- # Create $dsttmp read-write so that cp doesn't create it read-only,
- # which would cause strip to fail.
- if test -z "$doit"; then
- : >"$dsttmp" # No need to fork-exec 'touch'.
- else
- $doit touch "$dsttmp"
- fi
- }
- } &&
- $doit_exec $cpprog "$src" "$dsttmp") &&
-
- # and set any options; do chmod last to preserve setuid bits.
- #
- # If any of these fail, we abort the whole thing. If we want to
- # ignore errors from any of these, just make sure not to ignore
- # errors from the above "$doit $cpprog $src $dsttmp" command.
- #
- { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
- { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
- { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
-
- # If -C, don't bother to copy if it wouldn't change the file.
- if $copy_on_change &&
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
- set -f &&
- set X $old && old=:$2:$4:$5:$6 &&
- set X $new && new=:$2:$4:$5:$6 &&
- set +f &&
- test "$old" = "$new" &&
- $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
- then
- rm -f "$dsttmp"
- else
- # Rename the file to the real destination.
- $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
-
- # The rename failed, perhaps because mv can't rename something else
- # to itself, or perhaps because mv is so ancient that it does not
- # support -f.
- {
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
- } ||
- { echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
- }
- fi || exit 1
-
- trap '' 0
- fi
-done
-
-# Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC0"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/FreeRTOS-Plus/Source/WolfSSL/build-aux/ltmain.sh b/FreeRTOS-Plus/Source/WolfSSL/build-aux/ltmain.sh
deleted file mode 100644
index 0f0a2da3f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/build-aux/ltmain.sh
+++ /dev/null
@@ -1,11147 +0,0 @@
-#! /bin/sh
-## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
-## by inline-source v2014-01-03.01
-
-# libtool (GNU libtool) 2.4.6
-# Provide generalized library-building support services.
-# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-
-# Copyright (C) 1996-2015 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions. There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# GNU Libtool 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.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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, see <http://www.gnu.org/licenses/>.
-
-
-PROGRAM=libtool
-PACKAGE=libtool
-VERSION=2.4.6
-package_revision=2.4.6
-
-
-## ------ ##
-## Usage. ##
-## ------ ##
-
-# Run './libtool --help' for help with using this script from the
-# command line.
-
-
-## ------------------------------- ##
-## User overridable command paths. ##
-## ------------------------------- ##
-
-# After configure completes, it has a better idea of some of the
-# shell tools we need than the defaults used by the functions shared
-# with bootstrap, so set those here where they can still be over-
-# ridden by the user, but otherwise take precedence.
-
-: ${AUTOCONF="autoconf"}
-: ${AUTOMAKE="automake"}
-
-
-## -------------------------- ##
-## Source external libraries. ##
-## -------------------------- ##
-
-# Much of our low-level functionality needs to be sourced from external
-# libraries, which are installed to $pkgauxdir.
-
-# Set a version string for this script.
-scriptversion=2015-01-20.17; # UTC
-
-# General shell script boiler plate, and helper functions.
-# Written by Gary V. Vaughan, 2004
-
-# Copyright (C) 2004-2015 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions. There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# This program 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 3 of the License, or
-# (at your option) any later version.
-
-# As a special exception to the GNU General Public License, if you distribute
-# this file as part of a program or library that is built using GNU Libtool,
-# you may include this file under the same distribution terms that you use
-# for the rest of that program.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNES 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, see <http://www.gnu.org/licenses/>.
-
-# Please report bugs or propose patches to gary@gnu.org.
-
-
-## ------ ##
-## Usage. ##
-## ------ ##
-
-# Evaluate this file near the top of your script to gain access to
-# the functions and variables defined here:
-#
-# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh
-#
-# If you need to override any of the default environment variable
-# settings, do that before evaluating this file.
-
-
-## -------------------- ##
-## Shell normalisation. ##
-## -------------------- ##
-
-# Some shells need a little help to be as Bourne compatible as possible.
-# Before doing anything else, make sure all that help has been provided!
-
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac
-fi
-
-# NLS nuisances: We save the old values in case they are required later.
-_G_user_locale=
-_G_safe_locale=
-for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-do
- eval "if test set = \"\${$_G_var+set}\"; then
- save_$_G_var=\$$_G_var
- $_G_var=C
- export $_G_var
- _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\"
- _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
- fi"
-done
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Make sure IFS has a sensible default
-sp=' '
-nl='
-'
-IFS="$sp $nl"
-
-# There are apparently some retarded systems that use ';' as a PATH separator!
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-
-## ------------------------- ##
-## Locate command utilities. ##
-## ------------------------- ##
-
-
-# func_executable_p FILE
-# ----------------------
-# Check that FILE is an executable regular file.
-func_executable_p ()
-{
- test -f "$1" && test -x "$1"
-}
-
-
-# func_path_progs PROGS_LIST CHECK_FUNC [PATH]
-# --------------------------------------------
-# Search for either a program that responds to --version with output
-# containing "GNU", or else returned by CHECK_FUNC otherwise, by
-# trying all the directories in PATH with each of the elements of
-# PROGS_LIST.
-#
-# CHECK_FUNC should accept the path to a candidate program, and
-# set $func_check_prog_result if it truncates its output less than
-# $_G_path_prog_max characters.
-func_path_progs ()
-{
- _G_progs_list=$1
- _G_check_func=$2
- _G_PATH=${3-"$PATH"}
-
- _G_path_prog_max=0
- _G_path_prog_found=false
- _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:}
- for _G_dir in $_G_PATH; do
- IFS=$_G_save_IFS
- test -z "$_G_dir" && _G_dir=.
- for _G_prog_name in $_G_progs_list; do
- for _exeext in '' .EXE; do
- _G_path_prog=$_G_dir/$_G_prog_name$_exeext
- func_executable_p "$_G_path_prog" || continue
- case `"$_G_path_prog" --version 2>&1` in
- *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;;
- *) $_G_check_func $_G_path_prog
- func_path_progs_result=$func_check_prog_result
- ;;
- esac
- $_G_path_prog_found && break 3
- done
- done
- done
- IFS=$_G_save_IFS
- test -z "$func_path_progs_result" && {
- echo "no acceptable sed could be found in \$PATH" >&2
- exit 1
- }
-}
-
-
-# We want to be able to use the functions in this file before configure
-# has figured out where the best binaries are kept, which means we have
-# to search for them ourselves - except when the results are already set
-# where we skip the searches.
-
-# Unless the user overrides by setting SED, search the path for either GNU
-# sed, or the sed that truncates its output the least.
-test -z "$SED" && {
- _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
- for _G_i in 1 2 3 4 5 6 7; do
- _G_sed_script=$_G_sed_script$nl$_G_sed_script
- done
- echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed
- _G_sed_script=
-
- func_check_prog_sed ()
- {
- _G_path_prog=$1
-
- _G_count=0
- printf 0123456789 >conftest.in
- while :
- do
- cat conftest.in conftest.in >conftest.tmp
- mv conftest.tmp conftest.in
- cp conftest.in conftest.nl
- echo '' >> conftest.nl
- "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
- diff conftest.out conftest.nl >/dev/null 2>&1 || break
- _G_count=`expr $_G_count + 1`
- if test "$_G_count" -gt "$_G_path_prog_max"; then
- # Best one so far, save it but keep looking for a better one
- func_check_prog_result=$_G_path_prog
- _G_path_prog_max=$_G_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test 10 -lt "$_G_count" && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out
- }
-
- func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin
- rm -f conftest.sed
- SED=$func_path_progs_result
-}
-
-
-# Unless the user overrides by setting GREP, search the path for either GNU
-# grep, or the grep that truncates its output the least.
-test -z "$GREP" && {
- func_check_prog_grep ()
- {
- _G_path_prog=$1
-
- _G_count=0
- _G_path_prog_max=0
- printf 0123456789 >conftest.in
- while :
- do
- cat conftest.in conftest.in >conftest.tmp
- mv conftest.tmp conftest.in
- cp conftest.in conftest.nl
- echo 'GREP' >> conftest.nl
- "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break
- diff conftest.out conftest.nl >/dev/null 2>&1 || break
- _G_count=`expr $_G_count + 1`
- if test "$_G_count" -gt "$_G_path_prog_max"; then
- # Best one so far, save it but keep looking for a better one
- func_check_prog_result=$_G_path_prog
- _G_path_prog_max=$_G_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test 10 -lt "$_G_count" && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out
- }
-
- func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin
- GREP=$func_path_progs_result
-}
-
-
-## ------------------------------- ##
-## User overridable command paths. ##
-## ------------------------------- ##
-
-# All uppercase variable names are used for environment variables. These
-# variables can be overridden by the user before calling a script that
-# uses them if a suitable command of that name is not already available
-# in the command search PATH.
-
-: ${CP="cp -f"}
-: ${ECHO="printf %s\n"}
-: ${EGREP="$GREP -E"}
-: ${FGREP="$GREP -F"}
-: ${LN_S="ln -s"}
-: ${MAKE="make"}
-: ${MKDIR="mkdir"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
-
-
-## -------------------- ##
-## Useful sed snippets. ##
-## -------------------- ##
-
-sed_dirname='s|/[^/]*$||'
-sed_basename='s|^.*/||'
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
-
-# Same as above, but do not quote variable references.
-sed_double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution that turns a string into a regex matching for the
-# string literally.
-sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g'
-
-# Sed substitution that converts a w32 file name or path
-# that contains forward slashes, into one that contains
-# (escaped) backslashes. A very naive implementation.
-sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-
-# Re-'\' parameter expansions in output of sed_double_quote_subst that
-# were '\'-ed in input to the same. If an odd number of '\' preceded a
-# '$' in input to sed_double_quote_subst, that '$' was protected from
-# expansion. Since each input '\' is now two '\'s, look for any number
-# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'.
-_G_bs='\\'
-_G_bs2='\\\\'
-_G_bs4='\\\\\\\\'
-_G_dollar='\$'
-sed_double_backslash="\
- s/$_G_bs4/&\\
-/g
- s/^$_G_bs2$_G_dollar/$_G_bs&/
- s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
- s/\n//g"
-
-
-## ----------------- ##
-## Global variables. ##
-## ----------------- ##
-
-# Except for the global variables explicitly listed below, the following
-# functions in the '^func_' namespace, and the '^require_' namespace
-# variables initialised in the 'Resource management' section, sourcing
-# this file will not pollute your global namespace with anything
-# else. There's no portable way to scope variables in Bourne shell
-# though, so actually running these functions will sometimes place
-# results into a variable named after the function, and often use
-# temporary variables in the '^_G_' namespace. If you are careful to
-# avoid using those namespaces casually in your sourcing script, things
-# should continue to work as you expect. And, of course, you can freely
-# overwrite any of the functions or variables defined here before
-# calling anything to customize them.
-
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
-EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
-
-# Allow overriding, eg assuming that you follow the convention of
-# putting '$debug_cmd' at the start of all your functions, you can get
-# bash to show function call trace with:
-#
-# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
-debug_cmd=${debug_cmd-":"}
-exit_cmd=:
-
-# By convention, finish your script with:
-#
-# exit $exit_status
-#
-# so that you can set exit_status to non-zero if you want to indicate
-# something went wrong during execution without actually bailing out at
-# the point of failure.
-exit_status=$EXIT_SUCCESS
-
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath=$0
-
-# The name of this program.
-progname=`$ECHO "$progpath" |$SED "$sed_basename"`
-
-# Make sure we have an absolute progpath for reexecution:
-case $progpath in
- [\\/]*|[A-Za-z]:\\*) ;;
- *[\\/]*)
- progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
- progdir=`cd "$progdir" && pwd`
- progpath=$progdir/$progname
- ;;
- *)
- _G_IFS=$IFS
- IFS=${PATH_SEPARATOR-:}
- for progdir in $PATH; do
- IFS=$_G_IFS
- test -x "$progdir/$progname" && break
- done
- IFS=$_G_IFS
- test -n "$progdir" || progdir=`pwd`
- progpath=$progdir/$progname
- ;;
-esac
-
-
-## ----------------- ##
-## Standard options. ##
-## ----------------- ##
-
-# The following options affect the operation of the functions defined
-# below, and should be set appropriately depending on run-time para-
-# meters passed on the command line.
-
-opt_dry_run=false
-opt_quiet=false
-opt_verbose=false
-
-# Categories 'all' and 'none' are always available. Append any others
-# you will pass as the first argument to func_warning from your own
-# code.
-warning_categories=
-
-# By default, display warnings according to 'opt_warning_types'. Set
-# 'warning_func' to ':' to elide all warnings, or func_fatal_error to
-# treat the next displayed warning as a fatal error.
-warning_func=func_warn_and_continue
-
-# Set to 'all' to display all warnings, 'none' to suppress all
-# warnings, or a space delimited list of some subset of
-# 'warning_categories' to display only the listed warnings.
-opt_warning_types=all
-
-
-## -------------------- ##
-## Resource management. ##
-## -------------------- ##
-
-# This section contains definitions for functions that each ensure a
-# particular resource (a file, or a non-empty configuration variable for
-# example) is available, and if appropriate to extract default values
-# from pertinent package files. Call them using their associated
-# 'require_*' variable to ensure that they are executed, at most, once.
-#
-# It's entirely deliberate that calling these functions can set
-# variables that don't obey the namespace limitations obeyed by the rest
-# of this file, in order that that they be as useful as possible to
-# callers.
-
-
-# require_term_colors
-# -------------------
-# Allow display of bold text on terminals that support it.
-require_term_colors=func_require_term_colors
-func_require_term_colors ()
-{
- $debug_cmd
-
- test -t 1 && {
- # COLORTERM and USE_ANSI_COLORS environment variables take
- # precedence, because most terminfo databases neglect to describe
- # whether color sequences are supported.
- test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"}
-
- if test 1 = "$USE_ANSI_COLORS"; then
- # Standard ANSI escape sequences
- tc_reset=''
- tc_bold=''; tc_standout=''
- tc_red=''; tc_green=''
- tc_blue=''; tc_cyan=''
- else
- # Otherwise trust the terminfo database after all.
- test -n "`tput sgr0 2>/dev/null`" && {
- tc_reset=`tput sgr0`
- test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold`
- tc_standout=$tc_bold
- test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso`
- test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1`
- test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2`
- test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4`
- test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5`
- }
- fi
- }
-
- require_term_colors=:
-}
-
-
-## ----------------- ##
-## Function library. ##
-## ----------------- ##
-
-# This section contains a variety of useful functions to call in your
-# scripts. Take note of the portable wrappers for features provided by
-# some modern shells, which will fall back to slower equivalents on
-# less featureful shells.
-
-
-# func_append VAR VALUE
-# ---------------------
-# Append VALUE onto the existing contents of VAR.
-
- # We should try to minimise forks, especially on Windows where they are
- # unreasonably slow, so skip the feature probes when bash or zsh are
- # being used:
- if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
- : ${_G_HAVE_ARITH_OP="yes"}
- : ${_G_HAVE_XSI_OPS="yes"}
- # The += operator was introduced in bash 3.1
- case $BASH_VERSION in
- [12].* | 3.0 | 3.0*) ;;
- *)
- : ${_G_HAVE_PLUSEQ_OP="yes"}
- ;;
- esac
- fi
-
- # _G_HAVE_PLUSEQ_OP
- # Can be empty, in which case the shell is probed, "yes" if += is
- # useable or anything else if it does not work.
- test -z "$_G_HAVE_PLUSEQ_OP" \
- && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
- && _G_HAVE_PLUSEQ_OP=yes
-
-if test yes = "$_G_HAVE_PLUSEQ_OP"
-then
- # This is an XSI compatible shell, allowing a faster implementation...
- eval 'func_append ()
- {
- $debug_cmd
-
- eval "$1+=\$2"
- }'
-else
- # ...otherwise fall back to using expr, which is often a shell builtin.
- func_append ()
- {
- $debug_cmd
-
- eval "$1=\$$1\$2"
- }
-fi
-
-
-# func_append_quoted VAR VALUE
-# ----------------------------
-# Quote VALUE and append to the end of shell variable VAR, separated
-# by a space.
-if test yes = "$_G_HAVE_PLUSEQ_OP"; then
- eval 'func_append_quoted ()
- {
- $debug_cmd
-
- func_quote_for_eval "$2"
- eval "$1+=\\ \$func_quote_for_eval_result"
- }'
-else
- func_append_quoted ()
- {
- $debug_cmd
-
- func_quote_for_eval "$2"
- eval "$1=\$$1\\ \$func_quote_for_eval_result"
- }
-fi
-
-
-# func_append_uniq VAR VALUE
-# --------------------------
-# Append unique VALUE onto the existing contents of VAR, assuming
-# entries are delimited by the first character of VALUE. For example:
-#
-# func_append_uniq options " --another-option option-argument"
-#
-# will only append to $options if " --another-option option-argument "
-# is not already present somewhere in $options already (note spaces at
-# each end implied by leading space in second argument).
-func_append_uniq ()
-{
- $debug_cmd
-
- eval _G_current_value='`$ECHO $'$1'`'
- _G_delim=`expr "$2" : '\(.\)'`
-
- case $_G_delim$_G_current_value$_G_delim in
- *"$2$_G_delim"*) ;;
- *) func_append "$@" ;;
- esac
-}
-
-
-# func_arith TERM...
-# ------------------
-# Set func_arith_result to the result of evaluating TERMs.
- test -z "$_G_HAVE_ARITH_OP" \
- && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \
- && _G_HAVE_ARITH_OP=yes
-
-if test yes = "$_G_HAVE_ARITH_OP"; then
- eval 'func_arith ()
- {
- $debug_cmd
-
- func_arith_result=$(( $* ))
- }'
-else
- func_arith ()
- {
- $debug_cmd
-
- func_arith_result=`expr "$@"`
- }
-fi
-
-
-# func_basename FILE
-# ------------------
-# Set func_basename_result to FILE with everything up to and including
-# the last / stripped.
-if test yes = "$_G_HAVE_XSI_OPS"; then
- # If this shell supports suffix pattern removal, then use it to avoid
- # forking. Hide the definitions single quotes in case the shell chokes
- # on unsupported syntax...
- _b='func_basename_result=${1##*/}'
- _d='case $1 in
- */*) func_dirname_result=${1%/*}$2 ;;
- * ) func_dirname_result=$3 ;;
- esac'
-
-else
- # ...otherwise fall back to using sed.
- _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'
- _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"`
- if test "X$func_dirname_result" = "X$1"; then
- func_dirname_result=$3
- else
- func_append func_dirname_result "$2"
- fi'
-fi
-
-eval 'func_basename ()
-{
- $debug_cmd
-
- '"$_b"'
-}'
-
-
-# func_dirname FILE APPEND NONDIR_REPLACEMENT
-# -------------------------------------------
-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-eval 'func_dirname ()
-{
- $debug_cmd
-
- '"$_d"'
-}'
-
-
-# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT
-# --------------------------------------------------------
-# Perform func_basename and func_dirname in a single function
-# call:
-# dirname: Compute the dirname of FILE. If nonempty,
-# add APPEND to the result, otherwise set result
-# to NONDIR_REPLACEMENT.
-# value returned in "$func_dirname_result"
-# basename: Compute filename of FILE.
-# value retuned in "$func_basename_result"
-# For efficiency, we do not delegate to the functions above but instead
-# duplicate the functionality here.
-eval 'func_dirname_and_basename ()
-{
- $debug_cmd
-
- '"$_b"'
- '"$_d"'
-}'
-
-
-# func_echo ARG...
-# ----------------
-# Echo program name prefixed message.
-func_echo ()
-{
- $debug_cmd
-
- _G_message=$*
-
- func_echo_IFS=$IFS
- IFS=$nl
- for _G_line in $_G_message; do
- IFS=$func_echo_IFS
- $ECHO "$progname: $_G_line"
- done
- IFS=$func_echo_IFS
-}
-
-
-# func_echo_all ARG...
-# --------------------
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-
-# func_echo_infix_1 INFIX ARG...
-# ------------------------------
-# Echo program name, followed by INFIX on the first line, with any
-# additional lines not showing INFIX.
-func_echo_infix_1 ()
-{
- $debug_cmd
-
- $require_term_colors
-
- _G_infix=$1; shift
- _G_indent=$_G_infix
- _G_prefix="$progname: $_G_infix: "
- _G_message=$*
-
- # Strip color escape sequences before counting printable length
- for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
- do
- test -n "$_G_tc" && {
- _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"`
- _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"`
- }
- done
- _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes
-
- func_echo_infix_1_IFS=$IFS
- IFS=$nl
- for _G_line in $_G_message; do
- IFS=$func_echo_infix_1_IFS
- $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
- _G_prefix=$_G_indent
- done
- IFS=$func_echo_infix_1_IFS
-}
-
-
-# func_error ARG...
-# -----------------
-# Echo program name prefixed message to standard error.
-func_error ()
-{
- $debug_cmd
-
- $require_term_colors
-
- func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2
-}
-
-
-# func_fatal_error ARG...
-# -----------------------
-# Echo program name prefixed message to standard error, and exit.
-func_fatal_error ()
-{
- $debug_cmd
-
- func_error "$*"
- exit $EXIT_FAILURE
-}
-
-
-# func_grep EXPRESSION FILENAME
-# -----------------------------
-# Check whether EXPRESSION matches any line of FILENAME, without output.
-func_grep ()
-{
- $debug_cmd
-
- $GREP "$1" "$2" >/dev/null 2>&1
-}
-
-
-# func_len STRING
-# ---------------
-# Set func_len_result to the length of STRING. STRING may not
-# start with a hyphen.
- test -z "$_G_HAVE_XSI_OPS" \
- && (eval 'x=a/b/c;
- test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
- && _G_HAVE_XSI_OPS=yes
-
-if test yes = "$_G_HAVE_XSI_OPS"; then
- eval 'func_len ()
- {
- $debug_cmd
-
- func_len_result=${#1}
- }'
-else
- func_len ()
- {
- $debug_cmd
-
- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
- }
-fi
-
-
-# func_mkdir_p DIRECTORY-PATH
-# ---------------------------
-# Make sure the entire path to DIRECTORY-PATH is available.
-func_mkdir_p ()
-{
- $debug_cmd
-
- _G_directory_path=$1
- _G_dir_list=
-
- if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then
-
- # Protect directory names starting with '-'
- case $_G_directory_path in
- -*) _G_directory_path=./$_G_directory_path ;;
- esac
-
- # While some portion of DIR does not yet exist...
- while test ! -d "$_G_directory_path"; do
- # ...make a list in topmost first order. Use a colon delimited
- # list incase some portion of path contains whitespace.
- _G_dir_list=$_G_directory_path:$_G_dir_list
-
- # If the last portion added has no slash in it, the list is done
- case $_G_directory_path in */*) ;; *) break ;; esac
-
- # ...otherwise throw away the child directory and loop
- _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"`
- done
- _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'`
-
- func_mkdir_p_IFS=$IFS; IFS=:
- for _G_dir in $_G_dir_list; do
- IFS=$func_mkdir_p_IFS
- # mkdir can fail with a 'File exist' error if two processes
- # try to create one of the directories concurrently. Don't
- # stop in that case!
- $MKDIR "$_G_dir" 2>/dev/null || :
- done
- IFS=$func_mkdir_p_IFS
-
- # Bail out if we (or some other process) failed to create a directory.
- test -d "$_G_directory_path" || \
- func_fatal_error "Failed to create '$1'"
- fi
-}
-
-
-# func_mktempdir [BASENAME]
-# -------------------------
-# Make a temporary directory that won't clash with other running
-# libtool processes, and avoids race conditions if possible. If
-# given, BASENAME is the basename for that directory.
-func_mktempdir ()
-{
- $debug_cmd
-
- _G_template=${TMPDIR-/tmp}/${1-$progname}
-
- if test : = "$opt_dry_run"; then
- # Return a directory name, but don't create it in dry-run mode
- _G_tmpdir=$_G_template-$$
- else
-
- # If mktemp works, use that first and foremost
- _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null`
-
- if test ! -d "$_G_tmpdir"; then
- # Failing that, at least try and use $RANDOM to avoid a race
- _G_tmpdir=$_G_template-${RANDOM-0}$$
-
- func_mktempdir_umask=`umask`
- umask 0077
- $MKDIR "$_G_tmpdir"
- umask $func_mktempdir_umask
- fi
-
- # If we're not in dry-run mode, bomb out on failure
- test -d "$_G_tmpdir" || \
- func_fatal_error "cannot create temporary directory '$_G_tmpdir'"
- fi
-
- $ECHO "$_G_tmpdir"
-}
-
-
-# func_normal_abspath PATH
-# ------------------------
-# Remove doubled-up and trailing slashes, "." path components,
-# and cancel out any ".." path components in PATH after making
-# it an absolute path.
-func_normal_abspath ()
-{
- $debug_cmd
-
- # These SED scripts presuppose an absolute path with a trailing slash.
- _G_pathcar='s|^/\([^/]*\).*$|\1|'
- _G_pathcdr='s|^/[^/]*||'
- _G_removedotparts=':dotsl
- s|/\./|/|g
- t dotsl
- s|/\.$|/|'
- _G_collapseslashes='s|/\{1,\}|/|g'
- _G_finalslash='s|/*$|/|'
-
- # Start from root dir and reassemble the path.
- func_normal_abspath_result=
- func_normal_abspath_tpath=$1
- func_normal_abspath_altnamespace=
- case $func_normal_abspath_tpath in
- "")
- # Empty path, that just means $cwd.
- func_stripname '' '/' "`pwd`"
- func_normal_abspath_result=$func_stripname_result
- return
- ;;
- # The next three entries are used to spot a run of precisely
- # two leading slashes without using negated character classes;
- # we take advantage of case's first-match behaviour.
- ///*)
- # Unusual form of absolute path, do nothing.
- ;;
- //*)
- # Not necessarily an ordinary path; POSIX reserves leading '//'
- # and for example Cygwin uses it to access remote file shares
- # over CIFS/SMB, so we conserve a leading double slash if found.
- func_normal_abspath_altnamespace=/
- ;;
- /*)
- # Absolute path, do nothing.
- ;;
- *)
- # Relative path, prepend $cwd.
- func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
- ;;
- esac
-
- # Cancel out all the simple stuff to save iterations. We also want
- # the path to end with a slash for ease of parsing, so make sure
- # there is one (and only one) here.
- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"`
- while :; do
- # Processed it all yet?
- if test / = "$func_normal_abspath_tpath"; then
- # If we ascended to the root using ".." the result may be empty now.
- if test -z "$func_normal_abspath_result"; then
- func_normal_abspath_result=/
- fi
- break
- fi
- func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$_G_pathcar"`
- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$_G_pathcdr"`
- # Figure out what to do with it
- case $func_normal_abspath_tcomponent in
- "")
- # Trailing empty path component, ignore it.
- ;;
- ..)
- # Parent dir; strip last assembled component from result.
- func_dirname "$func_normal_abspath_result"
- func_normal_abspath_result=$func_dirname_result
- ;;
- *)
- # Actual path component, append it.
- func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent"
- ;;
- esac
- done
- # Restore leading double-slash if one was found on entry.
- func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
-}
-
-
-# func_notquiet ARG...
-# --------------------
-# Echo program name prefixed message only when not in quiet mode.
-func_notquiet ()
-{
- $debug_cmd
-
- $opt_quiet || func_echo ${1+"$@"}
-
- # A bug in bash halts the script if the last line of a function
- # fails when set -e is in force, so we need another command to
- # work around that:
- :
-}
-
-
-# func_relative_path SRCDIR DSTDIR
-# --------------------------------
-# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR.
-func_relative_path ()
-{
- $debug_cmd
-
- func_relative_path_result=
- func_normal_abspath "$1"
- func_relative_path_tlibdir=$func_normal_abspath_result
- func_normal_abspath "$2"
- func_relative_path_tbindir=$func_normal_abspath_result
-
- # Ascend the tree starting from libdir
- while :; do
- # check if we have found a prefix of bindir
- case $func_relative_path_tbindir in
- $func_relative_path_tlibdir)
- # found an exact match
- func_relative_path_tcancelled=
- break
- ;;
- $func_relative_path_tlibdir*)
- # found a matching prefix
- func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
- func_relative_path_tcancelled=$func_stripname_result
- if test -z "$func_relative_path_result"; then
- func_relative_path_result=.
- fi
- break
- ;;
- *)
- func_dirname $func_relative_path_tlibdir
- func_relative_path_tlibdir=$func_dirname_result
- if test -z "$func_relative_path_tlibdir"; then
- # Have to descend all the way to the root!
- func_relative_path_result=../$func_relative_path_result
- func_relative_path_tcancelled=$func_relative_path_tbindir
- break
- fi
- func_relative_path_result=../$func_relative_path_result
- ;;
- esac
- done
-
- # Now calculate path; take care to avoid doubling-up slashes.
- func_stripname '' '/' "$func_relative_path_result"
- func_relative_path_result=$func_stripname_result
- func_stripname '/' '/' "$func_relative_path_tcancelled"
- if test -n "$func_stripname_result"; then
- func_append func_relative_path_result "/$func_stripname_result"
- fi
-
- # Normalisation. If bindir is libdir, return '.' else relative path.
- if test -n "$func_relative_path_result"; then
- func_stripname './' '' "$func_relative_path_result"
- func_relative_path_result=$func_stripname_result
- fi
-
- test -n "$func_relative_path_result" || func_relative_path_result=.
-
- :
-}
-
-
-# func_quote_for_eval ARG...
-# --------------------------
-# Aesthetically quote ARGs to be evaled later.
-# This function returns two values:
-# i) func_quote_for_eval_result
-# double-quoted, suitable for a subsequent eval
-# ii) func_quote_for_eval_unquoted_result
-# has all characters that are still active within double
-# quotes backslashified.
-func_quote_for_eval ()
-{
- $debug_cmd
-
- func_quote_for_eval_unquoted_result=
- func_quote_for_eval_result=
- while test 0 -lt $#; do
- case $1 in
- *[\\\`\"\$]*)
- _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
- *)
- _G_unquoted_arg=$1 ;;
- esac
- if test -n "$func_quote_for_eval_unquoted_result"; then
- func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
- else
- func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
- fi
-
- case $_G_unquoted_arg in
- # Double-quote args containing shell metacharacters to delay
- # word splitting, command substitution and variable expansion
- # for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- _G_quoted_arg=\"$_G_unquoted_arg\"
- ;;
- *)
- _G_quoted_arg=$_G_unquoted_arg
- ;;
- esac
-
- if test -n "$func_quote_for_eval_result"; then
- func_append func_quote_for_eval_result " $_G_quoted_arg"
- else
- func_append func_quote_for_eval_result "$_G_quoted_arg"
- fi
- shift
- done
-}
-
-
-# func_quote_for_expand ARG
-# -------------------------
-# Aesthetically quote ARG to be evaled later; same as above,
-# but do not quote variable references.
-func_quote_for_expand ()
-{
- $debug_cmd
-
- case $1 in
- *[\\\`\"]*)
- _G_arg=`$ECHO "$1" | $SED \
- -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
- *)
- _G_arg=$1 ;;
- esac
-
- case $_G_arg in
- # Double-quote args containing shell metacharacters to delay
- # word splitting and command substitution for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- _G_arg=\"$_G_arg\"
- ;;
- esac
-
- func_quote_for_expand_result=$_G_arg
-}
-
-
-# func_stripname PREFIX SUFFIX NAME
-# ---------------------------------
-# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-if test yes = "$_G_HAVE_XSI_OPS"; then
- eval 'func_stripname ()
- {
- $debug_cmd
-
- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
- # positional parameters, so assign one to ordinary variable first.
- func_stripname_result=$3
- func_stripname_result=${func_stripname_result#"$1"}
- func_stripname_result=${func_stripname_result%"$2"}
- }'
-else
- func_stripname ()
- {
- $debug_cmd
-
- case $2 in
- .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;;
- *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;;
- esac
- }
-fi
-
-
-# func_show_eval CMD [FAIL_EXP]
-# -----------------------------
-# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is
-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.
-func_show_eval ()
-{
- $debug_cmd
-
- _G_cmd=$1
- _G_fail_exp=${2-':'}
-
- func_quote_for_expand "$_G_cmd"
- eval "func_notquiet $func_quote_for_expand_result"
-
- $opt_dry_run || {
- eval "$_G_cmd"
- _G_status=$?
- if test 0 -ne "$_G_status"; then
- eval "(exit $_G_status); $_G_fail_exp"
- fi
- }
-}
-
-
-# func_show_eval_locale CMD [FAIL_EXP]
-# ------------------------------------
-# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is
-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it. Use the saved locale for evaluation.
-func_show_eval_locale ()
-{
- $debug_cmd
-
- _G_cmd=$1
- _G_fail_exp=${2-':'}
-
- $opt_quiet || {
- func_quote_for_expand "$_G_cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
-
- $opt_dry_run || {
- eval "$_G_user_locale
- $_G_cmd"
- _G_status=$?
- eval "$_G_safe_locale"
- if test 0 -ne "$_G_status"; then
- eval "(exit $_G_status); $_G_fail_exp"
- fi
- }
-}
-
-
-# func_tr_sh
-# ----------
-# Turn $1 into a string suitable for a shell variable name.
-# Result is stored in $func_tr_sh_result. All characters
-# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
-# if $1 begins with a digit, a '_' is prepended as well.
-func_tr_sh ()
-{
- $debug_cmd
-
- case $1 in
- [0-9]* | *[!a-zA-Z0-9_]*)
- func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'`
- ;;
- * )
- func_tr_sh_result=$1
- ;;
- esac
-}
-
-
-# func_verbose ARG...
-# -------------------
-# Echo program name prefixed message in verbose mode only.
-func_verbose ()
-{
- $debug_cmd
-
- $opt_verbose && func_echo "$*"
-
- :
-}
-
-
-# func_warn_and_continue ARG...
-# -----------------------------
-# Echo program name prefixed warning message to standard error.
-func_warn_and_continue ()
-{
- $debug_cmd
-
- $require_term_colors
-
- func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2
-}
-
-
-# func_warning CATEGORY ARG...
-# ----------------------------
-# Echo program name prefixed warning message to standard error. Warning
-# messages can be filtered according to CATEGORY, where this function
-# elides messages where CATEGORY is not listed in the global variable
-# 'opt_warning_types'.
-func_warning ()
-{
- $debug_cmd
-
- # CATEGORY must be in the warning_categories list!
- case " $warning_categories " in
- *" $1 "*) ;;
- *) func_internal_error "invalid warning category '$1'" ;;
- esac
-
- _G_category=$1
- shift
-
- case " $opt_warning_types " in
- *" $_G_category "*) $warning_func ${1+"$@"} ;;
- esac
-}
-
-
-# func_sort_ver VER1 VER2
-# -----------------------
-# 'sort -V' is not generally available.
-# Note this deviates from the version comparison in automake
-# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
-# but this should suffice as we won't be specifying old
-# version formats or redundant trailing .0 in bootstrap.conf.
-# If we did want full compatibility then we should probably
-# use m4_version_compare from autoconf.
-func_sort_ver ()
-{
- $debug_cmd
-
- printf '%s\n%s\n' "$1" "$2" \
- | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n
-}
-
-# func_lt_ver PREV CURR
-# ---------------------
-# Return true if PREV and CURR are in the correct order according to
-# func_sort_ver, otherwise false. Use it like this:
-#
-# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..."
-func_lt_ver ()
-{
- $debug_cmd
-
- test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q`
-}
-
-
-# Local variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
-# time-stamp-time-zone: "UTC"
-# End:
-#! /bin/sh
-
-# Set a version string for this script.
-scriptversion=2014-01-07.03; # UTC
-
-# A portable, pluggable option parser for Bourne shell.
-# Written by Gary V. Vaughan, 2010
-
-# Copyright (C) 2010-2015 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions. There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# This program 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 3 of the License, or
-# (at your option) any later version.
-
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-# Please report bugs or propose patches to gary@gnu.org.
-
-
-## ------ ##
-## Usage. ##
-## ------ ##
-
-# This file is a library for parsing options in your shell scripts along
-# with assorted other useful supporting features that you can make use
-# of too.
-#
-# For the simplest scripts you might need only:
-#
-# #!/bin/sh
-# . relative/path/to/funclib.sh
-# . relative/path/to/options-parser
-# scriptversion=1.0
-# func_options ${1+"$@"}
-# eval set dummy "$func_options_result"; shift
-# ...rest of your script...
-#
-# In order for the '--version' option to work, you will need to have a
-# suitably formatted comment like the one at the top of this file
-# starting with '# Written by ' and ending with '# warranty; '.
-#
-# For '-h' and '--help' to work, you will also need a one line
-# description of your script's purpose in a comment directly above the
-# '# Written by ' line, like the one at the top of this file.
-#
-# The default options also support '--debug', which will turn on shell
-# execution tracing (see the comment above debug_cmd below for another
-# use), and '--verbose' and the func_verbose function to allow your script
-# to display verbose messages only when your user has specified
-# '--verbose'.
-#
-# After sourcing this file, you can plug processing for additional
-# options by amending the variables from the 'Configuration' section
-# below, and following the instructions in the 'Option parsing'
-# section further down.
-
-## -------------- ##
-## Configuration. ##
-## -------------- ##
-
-# You should override these variables in your script after sourcing this
-# file so that they reflect the customisations you have added to the
-# option parser.
-
-# The usage line for option parsing errors and the start of '-h' and
-# '--help' output messages. You can embed shell variables for delayed
-# expansion at the time the message is displayed, but you will need to
-# quote other shell meta-characters carefully to prevent them being
-# expanded when the contents are evaled.
-usage='$progpath [OPTION]...'
-
-# Short help message in response to '-h' and '--help'. Add to this or
-# override it after sourcing this library to reflect the full set of
-# options your script accepts.
-usage_message="\
- --debug enable verbose shell tracing
- -W, --warnings=CATEGORY
- report the warnings falling in CATEGORY [all]
- -v, --verbose verbosely report processing
- --version print version information and exit
- -h, --help print short or long help message and exit
-"
-
-# Additional text appended to 'usage_message' in response to '--help'.
-long_help_message="
-Warning categories include:
- 'all' show all warnings
- 'none' turn off all the warnings
- 'error' warnings are treated as fatal errors"
-
-# Help message printed before fatal option parsing errors.
-fatal_help="Try '\$progname --help' for more information."
-
-
-
-## ------------------------- ##
-## Hook function management. ##
-## ------------------------- ##
-
-# This section contains functions for adding, removing, and running hooks
-# to the main code. A hook is just a named list of of function, that can
-# be run in order later on.
-
-# func_hookable FUNC_NAME
-# -----------------------
-# Declare that FUNC_NAME will run hooks added with
-# 'func_add_hook FUNC_NAME ...'.
-func_hookable ()
-{
- $debug_cmd
-
- func_append hookable_fns " $1"
-}
-
-
-# func_add_hook FUNC_NAME HOOK_FUNC
-# ---------------------------------
-# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must
-# first have been declared "hookable" by a call to 'func_hookable'.
-func_add_hook ()
-{
- $debug_cmd
-
- case " $hookable_fns " in
- *" $1 "*) ;;
- *) func_fatal_error "'$1' does not accept hook functions." ;;
- esac
-
- eval func_append ${1}_hooks '" $2"'
-}
-
-
-# func_remove_hook FUNC_NAME HOOK_FUNC
-# ------------------------------------
-# Remove HOOK_FUNC from the list of functions called by FUNC_NAME.
-func_remove_hook ()
-{
- $debug_cmd
-
- eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
-}
-
-
-# func_run_hooks FUNC_NAME [ARG]...
-# ---------------------------------
-# Run all hook functions registered to FUNC_NAME.
-# It is assumed that the list of hook functions contains nothing more
-# than a whitespace-delimited list of legal shell function names, and
-# no effort is wasted trying to catch shell meta-characters or preserve
-# whitespace.
-func_run_hooks ()
-{
- $debug_cmd
-
- case " $hookable_fns " in
- *" $1 "*) ;;
- *) func_fatal_error "'$1' does not support hook funcions.n" ;;
- esac
-
- eval _G_hook_fns=\$$1_hooks; shift
-
- for _G_hook in $_G_hook_fns; do
- eval $_G_hook '"$@"'
-
- # store returned options list back into positional
- # parameters for next 'cmd' execution.
- eval _G_hook_result=\$${_G_hook}_result
- eval set dummy "$_G_hook_result"; shift
- done
-
- func_quote_for_eval ${1+"$@"}
- func_run_hooks_result=$func_quote_for_eval_result
-}
-
-
-
-## --------------- ##
-## Option parsing. ##
-## --------------- ##
-
-# In order to add your own option parsing hooks, you must accept the
-# full positional parameter list in your hook function, remove any
-# options that you action, and then pass back the remaining unprocessed
-# options in '<hooked_function_name>_result', escaped suitably for
-# 'eval'. Like this:
-#
-# my_options_prep ()
-# {
-# $debug_cmd
-#
-# # Extend the existing usage message.
-# usage_message=$usage_message'
-# -s, --silent don'\''t print informational messages
-# '
-#
-# func_quote_for_eval ${1+"$@"}
-# my_options_prep_result=$func_quote_for_eval_result
-# }
-# func_add_hook func_options_prep my_options_prep
-#
-#
-# my_silent_option ()
-# {
-# $debug_cmd
-#
-# # Note that for efficiency, we parse as many options as we can
-# # recognise in a loop before passing the remainder back to the
-# # caller on the first unrecognised argument we encounter.
-# while test $# -gt 0; do
-# opt=$1; shift
-# case $opt in
-# --silent|-s) opt_silent=: ;;
-# # Separate non-argument short options:
-# -s*) func_split_short_opt "$_G_opt"
-# set dummy "$func_split_short_opt_name" \
-# "-$func_split_short_opt_arg" ${1+"$@"}
-# shift
-# ;;
-# *) set dummy "$_G_opt" "$*"; shift; break ;;
-# esac
-# done
-#
-# func_quote_for_eval ${1+"$@"}
-# my_silent_option_result=$func_quote_for_eval_result
-# }
-# func_add_hook func_parse_options my_silent_option
-#
-#
-# my_option_validation ()
-# {
-# $debug_cmd
-#
-# $opt_silent && $opt_verbose && func_fatal_help "\
-# '--silent' and '--verbose' options are mutually exclusive."
-#
-# func_quote_for_eval ${1+"$@"}
-# my_option_validation_result=$func_quote_for_eval_result
-# }
-# func_add_hook func_validate_options my_option_validation
-#
-# You'll alse need to manually amend $usage_message to reflect the extra
-# options you parse. It's preferable to append if you can, so that
-# multiple option parsing hooks can be added safely.
-
-
-# func_options [ARG]...
-# ---------------------
-# All the functions called inside func_options are hookable. See the
-# individual implementations for details.
-func_hookable func_options
-func_options ()
-{
- $debug_cmd
-
- func_options_prep ${1+"$@"}
- eval func_parse_options \
- ${func_options_prep_result+"$func_options_prep_result"}
- eval func_validate_options \
- ${func_parse_options_result+"$func_parse_options_result"}
-
- eval func_run_hooks func_options \
- ${func_validate_options_result+"$func_validate_options_result"}
-
- # save modified positional parameters for caller
- func_options_result=$func_run_hooks_result
-}
-
-
-# func_options_prep [ARG]...
-# --------------------------
-# All initialisations required before starting the option parse loop.
-# Note that when calling hook functions, we pass through the list of
-# positional parameters. If a hook function modifies that list, and
-# needs to propogate that back to rest of this script, then the complete
-# modified list must be put in 'func_run_hooks_result' before
-# returning.
-func_hookable func_options_prep
-func_options_prep ()
-{
- $debug_cmd
-
- # Option defaults:
- opt_verbose=false
- opt_warning_types=
-
- func_run_hooks func_options_prep ${1+"$@"}
-
- # save modified positional parameters for caller
- func_options_prep_result=$func_run_hooks_result
-}
-
-
-# func_parse_options [ARG]...
-# ---------------------------
-# The main option parsing loop.
-func_hookable func_parse_options
-func_parse_options ()
-{
- $debug_cmd
-
- func_parse_options_result=
-
- # this just eases exit handling
- while test $# -gt 0; do
- # Defer to hook functions for initial option parsing, so they
- # get priority in the event of reusing an option name.
- func_run_hooks func_parse_options ${1+"$@"}
-
- # Adjust func_parse_options positional parameters to match
- eval set dummy "$func_run_hooks_result"; shift
-
- # Break out of the loop if we already parsed every option.
- test $# -gt 0 || break
-
- _G_opt=$1
- shift
- case $_G_opt in
- --debug|-x) debug_cmd='set -x'
- func_echo "enabling shell trace mode"
- $debug_cmd
- ;;
-
- --no-warnings|--no-warning|--no-warn)
- set dummy --warnings none ${1+"$@"}
- shift
- ;;
-
- --warnings|--warning|-W)
- test $# = 0 && func_missing_arg $_G_opt && break
- case " $warning_categories $1" in
- *" $1 "*)
- # trailing space prevents matching last $1 above
- func_append_uniq opt_warning_types " $1"
- ;;
- *all)
- opt_warning_types=$warning_categories
- ;;
- *none)
- opt_warning_types=none
- warning_func=:
- ;;
- *error)
- opt_warning_types=$warning_categories
- warning_func=func_fatal_error
- ;;
- *)
- func_fatal_error \
- "unsupported warning category: '$1'"
- ;;
- esac
- shift
- ;;
-
- --verbose|-v) opt_verbose=: ;;
- --version) func_version ;;
- -\?|-h) func_usage ;;
- --help) func_help ;;
-
- # Separate optargs to long options (plugins may need this):
- --*=*) func_split_equals "$_G_opt"
- set dummy "$func_split_equals_lhs" \
- "$func_split_equals_rhs" ${1+"$@"}
- shift
- ;;
-
- # Separate optargs to short options:
- -W*)
- func_split_short_opt "$_G_opt"
- set dummy "$func_split_short_opt_name" \
- "$func_split_short_opt_arg" ${1+"$@"}
- shift
- ;;
-
- # Separate non-argument short options:
- -\?*|-h*|-v*|-x*)
- func_split_short_opt "$_G_opt"
- set dummy "$func_split_short_opt_name" \
- "-$func_split_short_opt_arg" ${1+"$@"}
- shift
- ;;
-
- --) break ;;
- -*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
- *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
- esac
- done
-
- # save modified positional parameters for caller
- func_quote_for_eval ${1+"$@"}
- func_parse_options_result=$func_quote_for_eval_result
-}
-
-
-# func_validate_options [ARG]...
-# ------------------------------
-# Perform any sanity checks on option settings and/or unconsumed
-# arguments.
-func_hookable func_validate_options
-func_validate_options ()
-{
- $debug_cmd
-
- # Display all warnings if -W was not given.
- test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
-
- func_run_hooks func_validate_options ${1+"$@"}
-
- # Bail if the options were screwed!
- $exit_cmd $EXIT_FAILURE
-
- # save modified positional parameters for caller
- func_validate_options_result=$func_run_hooks_result
-}
-
-
-
-## ----------------- ##
-## Helper functions. ##
-## ----------------- ##
-
-# This section contains the helper functions used by the rest of the
-# hookable option parser framework in ascii-betical order.
-
-
-# func_fatal_help ARG...
-# ----------------------
-# Echo program name prefixed message to standard error, followed by
-# a help hint, and exit.
-func_fatal_help ()
-{
- $debug_cmd
-
- eval \$ECHO \""Usage: $usage"\"
- eval \$ECHO \""$fatal_help"\"
- func_error ${1+"$@"}
- exit $EXIT_FAILURE
-}
-
-
-# func_help
-# ---------
-# Echo long help message to standard output and exit.
-func_help ()
-{
- $debug_cmd
-
- func_usage_message
- $ECHO "$long_help_message"
- exit 0
-}
-
-
-# func_missing_arg ARGNAME
-# ------------------------
-# Echo program name prefixed message to standard error and set global
-# exit_cmd.
-func_missing_arg ()
-{
- $debug_cmd
-
- func_error "Missing argument for '$1'."
- exit_cmd=exit
-}
-
-
-# func_split_equals STRING
-# ------------------------
-# Set func_split_equals_lhs and func_split_equals_rhs shell variables after
-# splitting STRING at the '=' sign.
-test -z "$_G_HAVE_XSI_OPS" \
- && (eval 'x=a/b/c;
- test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
- && _G_HAVE_XSI_OPS=yes
-
-if test yes = "$_G_HAVE_XSI_OPS"
-then
- # This is an XSI compatible shell, allowing a faster implementation...
- eval 'func_split_equals ()
- {
- $debug_cmd
-
- func_split_equals_lhs=${1%%=*}
- func_split_equals_rhs=${1#*=}
- test "x$func_split_equals_lhs" = "x$1" \
- && func_split_equals_rhs=
- }'
-else
- # ...otherwise fall back to using expr, which is often a shell builtin.
- func_split_equals ()
- {
- $debug_cmd
-
- func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
- func_split_equals_rhs=
- test "x$func_split_equals_lhs" = "x$1" \
- || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
- }
-fi #func_split_equals
-
-
-# func_split_short_opt SHORTOPT
-# -----------------------------
-# Set func_split_short_opt_name and func_split_short_opt_arg shell
-# variables after splitting SHORTOPT after the 2nd character.
-if test yes = "$_G_HAVE_XSI_OPS"
-then
- # This is an XSI compatible shell, allowing a faster implementation...
- eval 'func_split_short_opt ()
- {
- $debug_cmd
-
- func_split_short_opt_arg=${1#??}
- func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
- }'
-else
- # ...otherwise fall back to using expr, which is often a shell builtin.
- func_split_short_opt ()
- {
- $debug_cmd
-
- func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`
- func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
- }
-fi #func_split_short_opt
-
-
-# func_usage
-# ----------
-# Echo short help message to standard output and exit.
-func_usage ()
-{
- $debug_cmd
-
- func_usage_message
- $ECHO "Run '$progname --help |${PAGER-more}' for full usage"
- exit 0
-}
-
-
-# func_usage_message
-# ------------------
-# Echo short help message to standard output.
-func_usage_message ()
-{
- $debug_cmd
-
- eval \$ECHO \""Usage: $usage"\"
- echo
- $SED -n 's|^# ||
- /^Written by/{
- x;p;x
- }
- h
- /^Written by/q' < "$progpath"
- echo
- eval \$ECHO \""$usage_message"\"
-}
-
-
-# func_version
-# ------------
-# Echo version message to standard output and exit.
-func_version ()
-{
- $debug_cmd
-
- printf '%s\n' "$progname $scriptversion"
- $SED -n '
- /(C)/!b go
- :more
- /\./!{
- N
- s|\n# | |
- b more
- }
- :go
- /^# Written by /,/# warranty; / {
- s|^# ||
- s|^# *$||
- s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
- p
- }
- /^# Written by / {
- s|^# ||
- p
- }
- /^warranty; /q' < "$progpath"
-
- exit $?
-}
-
-
-# Local variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
-# time-stamp-time-zone: "UTC"
-# End:
-
-# Set a version string.
-scriptversion='(GNU libtool) 2.4.6'
-
-
-# func_echo ARG...
-# ----------------
-# Libtool also displays the current mode in messages, so override
-# funclib.sh func_echo with this custom definition.
-func_echo ()
-{
- $debug_cmd
-
- _G_message=$*
-
- func_echo_IFS=$IFS
- IFS=$nl
- for _G_line in $_G_message; do
- IFS=$func_echo_IFS
- $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
- done
- IFS=$func_echo_IFS
-}
-
-
-# func_warning ARG...
-# -------------------
-# Libtool warnings are not categorized, so override funclib.sh
-# func_warning with this simpler definition.
-func_warning ()
-{
- $debug_cmd
-
- $warning_func ${1+"$@"}
-}
-
-
-## ---------------- ##
-## Options parsing. ##
-## ---------------- ##
-
-# Hook in the functions to make sure our own options are parsed during
-# the option parsing loop.
-
-usage='$progpath [OPTION]... [MODE-ARG]...'
-
-# Short help message in response to '-h'.
-usage_message="Options:
- --config show all configuration variables
- --debug enable verbose shell tracing
- -n, --dry-run display commands without modifying any files
- --features display basic configuration information and exit
- --mode=MODE use operation mode MODE
- --no-warnings equivalent to '-Wnone'
- --preserve-dup-deps don't remove duplicate dependency libraries
- --quiet, --silent don't print informational messages
- --tag=TAG use configuration variables from tag TAG
- -v, --verbose print more informational messages than default
- --version print version information
- -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all]
- -h, --help, --help-all print short, long, or detailed help message
-"
-
-# Additional text appended to 'usage_message' in response to '--help'.
-func_help ()
-{
- $debug_cmd
-
- func_usage_message
- $ECHO "$long_help_message
-
-MODE must be one of the following:
-
- clean remove files from the build directory
- compile compile a source file into a libtool object
- execute automatically set library path, then run a program
- finish complete the installation of libtool libraries
- install install libraries or executables
- link create a library or an executable
- uninstall remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE. When passed as first option,
-'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that.
-Try '$progname --help --mode=MODE' for a more detailed description of MODE.
-
-When reporting a bug, please describe a test case to reproduce it and
-include the following information:
-
- host-triplet: $host
- shell: $SHELL
- compiler: $LTCC
- compiler flags: $LTCFLAGS
- linker: $LD (gnu? $with_gnu_ld)
- version: $progname (GNU libtool) 2.4.6
- automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
- autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
-
-Report bugs to <bug-libtool@gnu.org>.
-GNU libtool home page: <http://www.gnu.org/software/libtool/>.
-General help using GNU software: <http://www.gnu.org/gethelp/>."
- exit 0
-}
-
-
-# func_lo2o OBJECT-NAME
-# ---------------------
-# Transform OBJECT-NAME from a '.lo' suffix to the platform specific
-# object suffix.
-
-lo2o=s/\\.lo\$/.$objext/
-o2lo=s/\\.$objext\$/.lo/
-
-if test yes = "$_G_HAVE_XSI_OPS"; then
- eval 'func_lo2o ()
- {
- case $1 in
- *.lo) func_lo2o_result=${1%.lo}.$objext ;;
- * ) func_lo2o_result=$1 ;;
- esac
- }'
-
- # func_xform LIBOBJ-OR-SOURCE
- # ---------------------------
- # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise)
- # suffix to a '.lo' libtool-object suffix.
- eval 'func_xform ()
- {
- func_xform_result=${1%.*}.lo
- }'
-else
- # ...otherwise fall back to using sed.
- func_lo2o ()
- {
- func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"`
- }
-
- func_xform ()
- {
- func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'`
- }
-fi
-
-
-# func_fatal_configuration ARG...
-# -------------------------------
-# Echo program name prefixed message to standard error, followed by
-# a configuration failure hint, and exit.
-func_fatal_configuration ()
-{
- func__fatal_error ${1+"$@"} \
- "See the $PACKAGE documentation for more information." \
- "Fatal configuration error."
-}
-
-
-# func_config
-# -----------
-# Display the configuration for all the tags in this script.
-func_config ()
-{
- re_begincf='^# ### BEGIN LIBTOOL'
- re_endcf='^# ### END LIBTOOL'
-
- # Default configuration.
- $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
-
- # Now print the configurations for the tags.
- for tagname in $taglist; do
- $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
- done
-
- exit $?
-}
-
-
-# func_features
-# -------------
-# Display the features supported by this script.
-func_features ()
-{
- echo "host: $host"
- if test yes = "$build_libtool_libs"; then
- echo "enable shared libraries"
- else
- echo "disable shared libraries"
- fi
- if test yes = "$build_old_libs"; then
- echo "enable static libraries"
- else
- echo "disable static libraries"
- fi
-
- exit $?
-}
-
-
-# func_enable_tag TAGNAME
-# -----------------------
-# Verify that TAGNAME is valid, and either flag an error and exit, or
-# enable the TAGNAME tag. We also add TAGNAME to the global $taglist
-# variable here.
-func_enable_tag ()
-{
- # Global variable:
- tagname=$1
-
- re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
- re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
- sed_extractcf=/$re_begincf/,/$re_endcf/p
-
- # Validate tagname.
- case $tagname in
- *[!-_A-Za-z0-9,/]*)
- func_fatal_error "invalid tag name: $tagname"
- ;;
- esac
-
- # Don't test for the "default" C tag, as we know it's
- # there but not specially marked.
- case $tagname in
- CC) ;;
- *)
- if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
- taglist="$taglist $tagname"
-
- # Evaluate the configuration. Be careful to quote the path
- # and the sed script, to avoid splitting on whitespace, but
- # also don't use non-portable quotes within backquotes within
- # quotes we have to do it in 2 steps:
- extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
- eval "$extractedcf"
- else
- func_error "ignoring unknown tag $tagname"
- fi
- ;;
- esac
-}
-
-
-# func_check_version_match
-# ------------------------
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
- if test "$package_revision" != "$macro_revision"; then
- if test "$VERSION" != "$macro_version"; then
- if test -z "$macro_version"; then
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
- else
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
- fi
- else
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
- fi
-
- exit $EXIT_MISMATCH
- fi
-}
-
-
-# libtool_options_prep [ARG]...
-# -----------------------------
-# Preparation for options parsed by libtool.
-libtool_options_prep ()
-{
- $debug_mode
-
- # Option defaults:
- opt_config=false
- opt_dlopen=
- opt_dry_run=false
- opt_help=false
- opt_mode=
- opt_preserve_dup_deps=false
- opt_quiet=false
-
- nonopt=
- preserve_args=
-
- # Shorthand for --mode=foo, only valid as the first argument
- case $1 in
- clean|clea|cle|cl)
- shift; set dummy --mode clean ${1+"$@"}; shift
- ;;
- compile|compil|compi|comp|com|co|c)
- shift; set dummy --mode compile ${1+"$@"}; shift
- ;;
- execute|execut|execu|exec|exe|ex|e)
- shift; set dummy --mode execute ${1+"$@"}; shift
- ;;
- finish|finis|fini|fin|fi|f)
- shift; set dummy --mode finish ${1+"$@"}; shift
- ;;
- install|instal|insta|inst|ins|in|i)
- shift; set dummy --mode install ${1+"$@"}; shift
- ;;
- link|lin|li|l)
- shift; set dummy --mode link ${1+"$@"}; shift
- ;;
- uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
- shift; set dummy --mode uninstall ${1+"$@"}; shift
- ;;
- esac
-
- # Pass back the list of options.
- func_quote_for_eval ${1+"$@"}
- libtool_options_prep_result=$func_quote_for_eval_result
-}
-func_add_hook func_options_prep libtool_options_prep
-
-
-# libtool_parse_options [ARG]...
-# ---------------------------------
-# Provide handling for libtool specific options.
-libtool_parse_options ()
-{
- $debug_cmd
-
- # Perform our own loop to consume as many options as possible in
- # each iteration.
- while test $# -gt 0; do
- _G_opt=$1
- shift
- case $_G_opt in
- --dry-run|--dryrun|-n)
- opt_dry_run=:
- ;;
-
- --config) func_config ;;
-
- --dlopen|-dlopen)
- opt_dlopen="${opt_dlopen+$opt_dlopen
-}$1"
- shift
- ;;
-
- --preserve-dup-deps)
- opt_preserve_dup_deps=: ;;
-
- --features) func_features ;;
-
- --finish) set dummy --mode finish ${1+"$@"}; shift ;;
-
- --help) opt_help=: ;;
-
- --help-all) opt_help=': help-all' ;;
-
- --mode) test $# = 0 && func_missing_arg $_G_opt && break
- opt_mode=$1
- case $1 in
- # Valid mode arguments:
- clean|compile|execute|finish|install|link|relink|uninstall) ;;
-
- # Catch anything else as an error
- *) func_error "invalid argument for $_G_opt"
- exit_cmd=exit
- break
- ;;
- esac
- shift
- ;;
-
- --no-silent|--no-quiet)
- opt_quiet=false
- func_append preserve_args " $_G_opt"
- ;;
-
- --no-warnings|--no-warning|--no-warn)
- opt_warning=false
- func_append preserve_args " $_G_opt"
- ;;
-
- --no-verbose)
- opt_verbose=false
- func_append preserve_args " $_G_opt"
- ;;
-
- --silent|--quiet)
- opt_quiet=:
- opt_verbose=false
- func_append preserve_args " $_G_opt"
- ;;
-
- --tag) test $# = 0 && func_missing_arg $_G_opt && break
- opt_tag=$1
- func_append preserve_args " $_G_opt $1"
- func_enable_tag "$1"
- shift
- ;;
-
- --verbose|-v) opt_quiet=false
- opt_verbose=:
- func_append preserve_args " $_G_opt"
- ;;
-
- # An option not handled by this hook function:
- *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
- esac
- done
-
-
- # save modified positional parameters for caller
- func_quote_for_eval ${1+"$@"}
- libtool_parse_options_result=$func_quote_for_eval_result
-}
-func_add_hook func_parse_options libtool_parse_options
-
-
-
-# libtool_validate_options [ARG]...
-# ---------------------------------
-# Perform any sanity checks on option settings and/or unconsumed
-# arguments.
-libtool_validate_options ()
-{
- # save first non-option argument
- if test 0 -lt $#; then
- nonopt=$1
- shift
- fi
-
- # preserve --debug
- test : = "$debug_cmd" || func_append preserve_args " --debug"
-
- case $host in
- # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
- # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
- *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
- # don't eliminate duplications in $postdeps and $predeps
- opt_duplicate_compiler_generated_deps=:
- ;;
- *)
- opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
- ;;
- esac
-
- $opt_help || {
- # Sanity checks first:
- func_check_version_match
-
- test yes != "$build_libtool_libs" \
- && test yes != "$build_old_libs" \
- && func_fatal_configuration "not configured to build any kind of library"
-
- # Darwin sucks
- eval std_shrext=\"$shrext_cmds\"
-
- # Only execute mode is allowed to have -dlopen flags.
- if test -n "$opt_dlopen" && test execute != "$opt_mode"; then
- func_error "unrecognized option '-dlopen'"
- $ECHO "$help" 1>&2
- exit $EXIT_FAILURE
- fi
-
- # Change the help message to a mode-specific one.
- generic_help=$help
- help="Try '$progname --help --mode=$opt_mode' for more information."
- }
-
- # Pass back the unparsed argument list
- func_quote_for_eval ${1+"$@"}
- libtool_validate_options_result=$func_quote_for_eval_result
-}
-func_add_hook func_validate_options libtool_validate_options
-
-
-# Process options as early as possible so that --help and --version
-# can return quickly.
-func_options ${1+"$@"}
-eval set dummy "$func_options_result"; shift
-
-
-
-## ----------- ##
-## Main. ##
-## ----------- ##
-
-magic='%%%MAGIC variable%%%'
-magic_exe='%%%MAGIC EXE variable%%%'
-
-# Global variables.
-extracted_archives=
-extracted_serial=0
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end. This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-}
-
-# func_generated_by_libtool
-# True iff stdin has been generated by Libtool. This function is only
-# a basic sanity check; it will hardly flush out determined imposters.
-func_generated_by_libtool_p ()
-{
- $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
-}
-
-# func_lalib_p file
-# True iff FILE is a libtool '.la' library or '.lo' object file.
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_lalib_p ()
-{
- test -f "$1" &&
- $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p
-}
-
-# func_lalib_unsafe_p file
-# True iff FILE is a libtool '.la' library or '.lo' object file.
-# This function implements the same check as func_lalib_p without
-# resorting to external programs. To this end, it redirects stdin and
-# closes it afterwards, without saving the original file descriptor.
-# As a safety measure, use it only where a negative result would be
-# fatal anyway. Works if 'file' does not exist.
-func_lalib_unsafe_p ()
-{
- lalib_p=no
- if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
- for lalib_p_l in 1 2 3 4
- do
- read lalib_p_line
- case $lalib_p_line in
- \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
- esac
- done
- exec 0<&5 5<&-
- fi
- test yes = "$lalib_p"
-}
-
-# func_ltwrapper_script_p file
-# True iff FILE is a libtool wrapper script
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_script_p ()
-{
- test -f "$1" &&
- $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p
-}
-
-# func_ltwrapper_executable_p file
-# True iff FILE is a libtool wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_executable_p ()
-{
- func_ltwrapper_exec_suffix=
- case $1 in
- *.exe) ;;
- *) func_ltwrapper_exec_suffix=.exe ;;
- esac
- $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
-}
-
-# func_ltwrapper_scriptname file
-# Assumes file is an ltwrapper_executable
-# uses $file to determine the appropriate filename for a
-# temporary ltwrapper_script.
-func_ltwrapper_scriptname ()
-{
- func_dirname_and_basename "$1" "" "."
- func_stripname '' '.exe' "$func_basename_result"
- func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper
-}
-
-# func_ltwrapper_p file
-# True iff FILE is a libtool wrapper script or wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_p ()
-{
- func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
-}
-
-
-# func_execute_cmds commands fail_cmd
-# Execute tilde-delimited COMMANDS.
-# If FAIL_CMD is given, eval that upon failure.
-# FAIL_CMD may read-access the current command in variable CMD!
-func_execute_cmds ()
-{
- $debug_cmd
-
- save_ifs=$IFS; IFS='~'
- for cmd in $1; do
- IFS=$sp$nl
- eval cmd=\"$cmd\"
- IFS=$save_ifs
- func_show_eval "$cmd" "${2-:}"
- done
- IFS=$save_ifs
-}
-
-
-# func_source file
-# Source FILE, adding directory component if necessary.
-# Note that it is not necessary on cygwin/mingw to append a dot to
-# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
-# behavior happens only for exec(3), not for open(2)! Also, sourcing
-# 'FILE.' does not work on cygwin managed mounts.
-func_source ()
-{
- $debug_cmd
-
- case $1 in
- */* | *\\*) . "$1" ;;
- *) . "./$1" ;;
- esac
-}
-
-
-# func_resolve_sysroot PATH
-# Replace a leading = in PATH with a sysroot. Store the result into
-# func_resolve_sysroot_result
-func_resolve_sysroot ()
-{
- func_resolve_sysroot_result=$1
- case $func_resolve_sysroot_result in
- =*)
- func_stripname '=' '' "$func_resolve_sysroot_result"
- func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
- ;;
- esac
-}
-
-# func_replace_sysroot PATH
-# If PATH begins with the sysroot, replace it with = and
-# store the result into func_replace_sysroot_result.
-func_replace_sysroot ()
-{
- case $lt_sysroot:$1 in
- ?*:"$lt_sysroot"*)
- func_stripname "$lt_sysroot" '' "$1"
- func_replace_sysroot_result='='$func_stripname_result
- ;;
- *)
- # Including no sysroot.
- func_replace_sysroot_result=$1
- ;;
- esac
-}
-
-# func_infer_tag arg
-# Infer tagged configuration to use if any are available and
-# if one wasn't chosen via the "--tag" command line option.
-# Only attempt this if the compiler in the base compile
-# command doesn't match the default compiler.
-# arg is usually of the form 'gcc ...'
-func_infer_tag ()
-{
- $debug_cmd
-
- if test -n "$available_tags" && test -z "$tagname"; then
- CC_quoted=
- for arg in $CC; do
- func_append_quoted CC_quoted "$arg"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
- case $@ in
- # Blanks in the command may have been stripped by the calling shell,
- # but not from the CC environment variable when configure was run.
- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
- # Blanks at the start of $base_compile will cause this to fail
- # if we don't check for them as well.
- *)
- for z in $available_tags; do
- if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
- # Evaluate the configuration.
- eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
- CC_quoted=
- for arg in $CC; do
- # Double-quote args containing other shell metacharacters.
- func_append_quoted CC_quoted "$arg"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
- case "$@ " in
- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
- # The compiler in the base compile command matches
- # the one in the tagged configuration.
- # Assume this is the tagged configuration we want.
- tagname=$z
- break
- ;;
- esac
- fi
- done
- # If $tagname still isn't set, then no tagged configuration
- # was found and let the user know that the "--tag" command
- # line option must be used.
- if test -z "$tagname"; then
- func_echo "unable to infer tagged configuration"
- func_fatal_error "specify a tag with '--tag'"
-# else
-# func_verbose "using $tagname tagged configuration"
- fi
- ;;
- esac
- fi
-}
-
-
-
-# func_write_libtool_object output_name pic_name nonpic_name
-# Create a libtool object file (analogous to a ".la" file),
-# but don't create it if we're doing a dry run.
-func_write_libtool_object ()
-{
- write_libobj=$1
- if test yes = "$build_libtool_libs"; then
- write_lobj=\'$2\'
- else
- write_lobj=none
- fi
-
- if test yes = "$build_old_libs"; then
- write_oldobj=\'$3\'
- else
- write_oldobj=none
- fi
-
- $opt_dry_run || {
- cat >${write_libobj}T <<EOF
-# $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object=$write_lobj
-
-# Name of the non-PIC object
-non_pic_object=$write_oldobj
-
-EOF
- $MV "${write_libobj}T" "$write_libobj"
- }
-}
-
-
-##################################################
-# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
-##################################################
-
-# func_convert_core_file_wine_to_w32 ARG
-# Helper function used by file name conversion functions when $build is *nix,
-# and $host is mingw, cygwin, or some other w32 environment. Relies on a
-# correctly configured wine environment available, with the winepath program
-# in $build's $PATH.
-#
-# ARG is the $build file name to be converted to w32 format.
-# Result is available in $func_convert_core_file_wine_to_w32_result, and will
-# be empty on error (or when ARG is empty)
-func_convert_core_file_wine_to_w32 ()
-{
- $debug_cmd
-
- func_convert_core_file_wine_to_w32_result=$1
- if test -n "$1"; then
- # Unfortunately, winepath does not exit with a non-zero error code, so we
- # are forced to check the contents of stdout. On the other hand, if the
- # command is not found, the shell will set an exit code of 127 and print
- # *an error message* to stdout. So we must check for both error code of
- # zero AND non-empty stdout, which explains the odd construction:
- func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
- if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then
- func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
- $SED -e "$sed_naive_backslashify"`
- else
- func_convert_core_file_wine_to_w32_result=
- fi
- fi
-}
-# end: func_convert_core_file_wine_to_w32
-
-
-# func_convert_core_path_wine_to_w32 ARG
-# Helper function used by path conversion functions when $build is *nix, and
-# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
-# configured wine environment available, with the winepath program in $build's
-# $PATH. Assumes ARG has no leading or trailing path separator characters.
-#
-# ARG is path to be converted from $build format to win32.
-# Result is available in $func_convert_core_path_wine_to_w32_result.
-# Unconvertible file (directory) names in ARG are skipped; if no directory names
-# are convertible, then the result may be empty.
-func_convert_core_path_wine_to_w32 ()
-{
- $debug_cmd
-
- # unfortunately, winepath doesn't convert paths, only file names
- func_convert_core_path_wine_to_w32_result=
- if test -n "$1"; then
- oldIFS=$IFS
- IFS=:
- for func_convert_core_path_wine_to_w32_f in $1; do
- IFS=$oldIFS
- func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
- if test -n "$func_convert_core_file_wine_to_w32_result"; then
- if test -z "$func_convert_core_path_wine_to_w32_result"; then
- func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result
- else
- func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
- fi
- fi
- done
- IFS=$oldIFS
- fi
-}
-# end: func_convert_core_path_wine_to_w32
-
-
-# func_cygpath ARGS...
-# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
-# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
-# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
-# (2), returns the Cygwin file name or path in func_cygpath_result (input
-# file name or path is assumed to be in w32 format, as previously converted
-# from $build's *nix or MSYS format). In case (3), returns the w32 file name
-# or path in func_cygpath_result (input file name or path is assumed to be in
-# Cygwin format). Returns an empty string on error.
-#
-# ARGS are passed to cygpath, with the last one being the file name or path to
-# be converted.
-#
-# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
-# environment variable; do not put it in $PATH.
-func_cygpath ()
-{
- $debug_cmd
-
- if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
- func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
- if test "$?" -ne 0; then
- # on failure, ensure result is empty
- func_cygpath_result=
- fi
- else
- func_cygpath_result=
- func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'"
- fi
-}
-#end: func_cygpath
-
-
-# func_convert_core_msys_to_w32 ARG
-# Convert file name or path ARG from MSYS format to w32 format. Return
-# result in func_convert_core_msys_to_w32_result.
-func_convert_core_msys_to_w32 ()
-{
- $debug_cmd
-
- # awkward: cmd appends spaces to result
- func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
- $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
-}
-#end: func_convert_core_msys_to_w32
-
-
-# func_convert_file_check ARG1 ARG2
-# Verify that ARG1 (a file name in $build format) was converted to $host
-# format in ARG2. Otherwise, emit an error message, but continue (resetting
-# func_to_host_file_result to ARG1).
-func_convert_file_check ()
-{
- $debug_cmd
-
- if test -z "$2" && test -n "$1"; then
- func_error "Could not determine host file name corresponding to"
- func_error " '$1'"
- func_error "Continuing, but uninstalled executables may not work."
- # Fallback:
- func_to_host_file_result=$1
- fi
-}
-# end func_convert_file_check
-
-
-# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
-# Verify that FROM_PATH (a path in $build format) was converted to $host
-# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
-# func_to_host_file_result to a simplistic fallback value (see below).
-func_convert_path_check ()
-{
- $debug_cmd
-
- if test -z "$4" && test -n "$3"; then
- func_error "Could not determine the host path corresponding to"
- func_error " '$3'"
- func_error "Continuing, but uninstalled executables may not work."
- # Fallback. This is a deliberately simplistic "conversion" and
- # should not be "improved". See libtool.info.
- if test "x$1" != "x$2"; then
- lt_replace_pathsep_chars="s|$1|$2|g"
- func_to_host_path_result=`echo "$3" |
- $SED -e "$lt_replace_pathsep_chars"`
- else
- func_to_host_path_result=$3
- fi
- fi
-}
-# end func_convert_path_check
-
-
-# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
-# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
-# and appending REPL if ORIG matches BACKPAT.
-func_convert_path_front_back_pathsep ()
-{
- $debug_cmd
-
- case $4 in
- $1 ) func_to_host_path_result=$3$func_to_host_path_result
- ;;
- esac
- case $4 in
- $2 ) func_append func_to_host_path_result "$3"
- ;;
- esac
-}
-# end func_convert_path_front_back_pathsep
-
-
-##################################################
-# $build to $host FILE NAME CONVERSION FUNCTIONS #
-##################################################
-# invoked via '$to_host_file_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# Result will be available in $func_to_host_file_result.
-
-
-# func_to_host_file ARG
-# Converts the file name ARG from $build format to $host format. Return result
-# in func_to_host_file_result.
-func_to_host_file ()
-{
- $debug_cmd
-
- $to_host_file_cmd "$1"
-}
-# end func_to_host_file
-
-
-# func_to_tool_file ARG LAZY
-# converts the file name ARG from $build format to toolchain format. Return
-# result in func_to_tool_file_result. If the conversion in use is listed
-# in (the comma separated) LAZY, no conversion takes place.
-func_to_tool_file ()
-{
- $debug_cmd
-
- case ,$2, in
- *,"$to_tool_file_cmd",*)
- func_to_tool_file_result=$1
- ;;
- *)
- $to_tool_file_cmd "$1"
- func_to_tool_file_result=$func_to_host_file_result
- ;;
- esac
-}
-# end func_to_tool_file
-
-
-# func_convert_file_noop ARG
-# Copy ARG to func_to_host_file_result.
-func_convert_file_noop ()
-{
- func_to_host_file_result=$1
-}
-# end func_convert_file_noop
-
-
-# func_convert_file_msys_to_w32 ARG
-# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper. Returns result in
-# func_to_host_file_result.
-func_convert_file_msys_to_w32 ()
-{
- $debug_cmd
-
- func_to_host_file_result=$1
- if test -n "$1"; then
- func_convert_core_msys_to_w32 "$1"
- func_to_host_file_result=$func_convert_core_msys_to_w32_result
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_w32
-
-
-# func_convert_file_cygwin_to_w32 ARG
-# Convert file name ARG from Cygwin to w32 format. Returns result in
-# func_to_host_file_result.
-func_convert_file_cygwin_to_w32 ()
-{
- $debug_cmd
-
- func_to_host_file_result=$1
- if test -n "$1"; then
- # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
- # LT_CYGPATH in this case.
- func_to_host_file_result=`cygpath -m "$1"`
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_cygwin_to_w32
-
-
-# func_convert_file_nix_to_w32 ARG
-# Convert file name ARG from *nix to w32 format. Requires a wine environment
-# and a working winepath. Returns result in func_to_host_file_result.
-func_convert_file_nix_to_w32 ()
-{
- $debug_cmd
-
- func_to_host_file_result=$1
- if test -n "$1"; then
- func_convert_core_file_wine_to_w32 "$1"
- func_to_host_file_result=$func_convert_core_file_wine_to_w32_result
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_w32
-
-
-# func_convert_file_msys_to_cygwin ARG
-# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_file_msys_to_cygwin ()
-{
- $debug_cmd
-
- func_to_host_file_result=$1
- if test -n "$1"; then
- func_convert_core_msys_to_w32 "$1"
- func_cygpath -u "$func_convert_core_msys_to_w32_result"
- func_to_host_file_result=$func_cygpath_result
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_cygwin
-
-
-# func_convert_file_nix_to_cygwin ARG
-# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
-# in a wine environment, working winepath, and LT_CYGPATH set. Returns result
-# in func_to_host_file_result.
-func_convert_file_nix_to_cygwin ()
-{
- $debug_cmd
-
- func_to_host_file_result=$1
- if test -n "$1"; then
- # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
- func_convert_core_file_wine_to_w32 "$1"
- func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
- func_to_host_file_result=$func_cygpath_result
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_cygwin
-
-
-#############################################
-# $build to $host PATH CONVERSION FUNCTIONS #
-#############################################
-# invoked via '$to_host_path_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# The result will be available in $func_to_host_path_result.
-#
-# Path separators are also converted from $build format to $host format. If
-# ARG begins or ends with a path separator character, it is preserved (but
-# converted to $host format) on output.
-#
-# All path conversion functions are named using the following convention:
-# file name conversion function : func_convert_file_X_to_Y ()
-# path conversion function : func_convert_path_X_to_Y ()
-# where, for any given $build/$host combination the 'X_to_Y' value is the
-# same. If conversion functions are added for new $build/$host combinations,
-# the two new functions must follow this pattern, or func_init_to_host_path_cmd
-# will break.
-
-
-# func_init_to_host_path_cmd
-# Ensures that function "pointer" variable $to_host_path_cmd is set to the
-# appropriate value, based on the value of $to_host_file_cmd.
-to_host_path_cmd=
-func_init_to_host_path_cmd ()
-{
- $debug_cmd
-
- if test -z "$to_host_path_cmd"; then
- func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
- to_host_path_cmd=func_convert_path_$func_stripname_result
- fi
-}
-
-
-# func_to_host_path ARG
-# Converts the path ARG from $build format to $host format. Return result
-# in func_to_host_path_result.
-func_to_host_path ()
-{
- $debug_cmd
-
- func_init_to_host_path_cmd
- $to_host_path_cmd "$1"
-}
-# end func_to_host_path
-
-
-# func_convert_path_noop ARG
-# Copy ARG to func_to_host_path_result.
-func_convert_path_noop ()
-{
- func_to_host_path_result=$1
-}
-# end func_convert_path_noop
-
-
-# func_convert_path_msys_to_w32 ARG
-# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper. Returns result in
-# func_to_host_path_result.
-func_convert_path_msys_to_w32 ()
-{
- $debug_cmd
-
- func_to_host_path_result=$1
- if test -n "$1"; then
- # Remove leading and trailing path separator characters from ARG. MSYS
- # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
- # and winepath ignores them completely.
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
- func_to_host_path_result=$func_convert_core_msys_to_w32_result
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_msys_to_w32
-
-
-# func_convert_path_cygwin_to_w32 ARG
-# Convert path ARG from Cygwin to w32 format. Returns result in
-# func_to_host_file_result.
-func_convert_path_cygwin_to_w32 ()
-{
- $debug_cmd
-
- func_to_host_path_result=$1
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_cygwin_to_w32
-
-
-# func_convert_path_nix_to_w32 ARG
-# Convert path ARG from *nix to w32 format. Requires a wine environment and
-# a working winepath. Returns result in func_to_host_file_result.
-func_convert_path_nix_to_w32 ()
-{
- $debug_cmd
-
- func_to_host_path_result=$1
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
- func_to_host_path_result=$func_convert_core_path_wine_to_w32_result
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_nix_to_w32
-
-
-# func_convert_path_msys_to_cygwin ARG
-# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_path_msys_to_cygwin ()
-{
- $debug_cmd
-
- func_to_host_path_result=$1
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
- func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
- func_to_host_path_result=$func_cygpath_result
- func_convert_path_check : : \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" : "$1"
- fi
-}
-# end func_convert_path_msys_to_cygwin
-
-
-# func_convert_path_nix_to_cygwin ARG
-# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
-# a wine environment, working winepath, and LT_CYGPATH set. Returns result in
-# func_to_host_file_result.
-func_convert_path_nix_to_cygwin ()
-{
- $debug_cmd
-
- func_to_host_path_result=$1
- if test -n "$1"; then
- # Remove leading and trailing path separator characters from
- # ARG. msys behavior is inconsistent here, cygpath turns them
- # into '.;' and ';.', and winepath ignores them completely.
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
- func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
- func_to_host_path_result=$func_cygpath_result
- func_convert_path_check : : \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" : "$1"
- fi
-}
-# end func_convert_path_nix_to_cygwin
-
-
-# func_dll_def_p FILE
-# True iff FILE is a Windows DLL '.def' file.
-# Keep in sync with _LT_DLL_DEF_P in libtool.m4
-func_dll_def_p ()
-{
- $debug_cmd
-
- func_dll_def_p_tmp=`$SED -n \
- -e 's/^[ ]*//' \
- -e '/^\(;.*\)*$/d' \
- -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \
- -e q \
- "$1"`
- test DEF = "$func_dll_def_p_tmp"
-}
-
-
-# func_mode_compile arg...
-func_mode_compile ()
-{
- $debug_cmd
-
- # Get the compilation command and the source file.
- base_compile=
- srcfile=$nonopt # always keep a non-empty value in "srcfile"
- suppress_opt=yes
- suppress_output=
- arg_mode=normal
- libobj=
- later=
- pie_flag=
-
- for arg
- do
- case $arg_mode in
- arg )
- # do not "continue". Instead, add this to base_compile
- lastarg=$arg
- arg_mode=normal
- ;;
-
- target )
- libobj=$arg
- arg_mode=normal
- continue
- ;;
-
- normal )
- # Accept any command-line options.
- case $arg in
- -o)
- test -n "$libobj" && \
- func_fatal_error "you cannot specify '-o' more than once"
- arg_mode=target
- continue
- ;;
-
- -pie | -fpie | -fPIE)
- func_append pie_flag " $arg"
- continue
- ;;
-
- -shared | -static | -prefer-pic | -prefer-non-pic)
- func_append later " $arg"
- continue
- ;;
-
- -no-suppress)
- suppress_opt=no
- continue
- ;;
-
- -Xcompiler)
- arg_mode=arg # the next one goes into the "base_compile" arg list
- continue # The current "srcfile" will either be retained or
- ;; # replaced later. I would guess that would be a bug.
-
- -Wc,*)
- func_stripname '-Wc,' '' "$arg"
- args=$func_stripname_result
- lastarg=
- save_ifs=$IFS; IFS=,
- for arg in $args; do
- IFS=$save_ifs
- func_append_quoted lastarg "$arg"
- done
- IFS=$save_ifs
- func_stripname ' ' '' "$lastarg"
- lastarg=$func_stripname_result
-
- # Add the arguments to base_compile.
- func_append base_compile " $lastarg"
- continue
- ;;
-
- *)
- # Accept the current argument as the source file.
- # The previous "srcfile" becomes the current argument.
- #
- lastarg=$srcfile
- srcfile=$arg
- ;;
- esac # case $arg
- ;;
- esac # case $arg_mode
-
- # Aesthetically quote the previous argument.
- func_append_quoted base_compile "$lastarg"
- done # for arg
-
- case $arg_mode in
- arg)
- func_fatal_error "you must specify an argument for -Xcompile"
- ;;
- target)
- func_fatal_error "you must specify a target with '-o'"
- ;;
- *)
- # Get the name of the library object.
- test -z "$libobj" && {
- func_basename "$srcfile"
- libobj=$func_basename_result
- }
- ;;
- esac
-
- # Recognize several different file suffixes.
- # If the user specifies -o file.o, it is replaced with file.lo
- case $libobj in
- *.[cCFSifmso] | \
- *.ada | *.adb | *.ads | *.asm | \
- *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
- *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
- func_xform "$libobj"
- libobj=$func_xform_result
- ;;
- esac
-
- case $libobj in
- *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
- *)
- func_fatal_error "cannot determine name of library object from '$libobj'"
- ;;
- esac
-
- func_infer_tag $base_compile
-
- for arg in $later; do
- case $arg in
- -shared)
- test yes = "$build_libtool_libs" \
- || func_fatal_configuration "cannot build a shared library"
- build_old_libs=no
- continue
- ;;
-
- -static)
- build_libtool_libs=no
- build_old_libs=yes
- continue
- ;;
-
- -prefer-pic)
- pic_mode=yes
- continue
- ;;
-
- -prefer-non-pic)
- pic_mode=no
- continue
- ;;
- esac
- done
-
- func_quote_for_eval "$libobj"
- test "X$libobj" != "X$func_quote_for_eval_result" \
- && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
- && func_warning "libobj name '$libobj' may not contain shell special characters."
- func_dirname_and_basename "$obj" "/" ""
- objname=$func_basename_result
- xdir=$func_dirname_result
- lobj=$xdir$objdir/$objname
-
- test -z "$base_compile" && \
- func_fatal_help "you must specify a compilation command"
-
- # Delete any leftover library objects.
- if test yes = "$build_old_libs"; then
- removelist="$obj $lobj $libobj ${libobj}T"
- else
- removelist="$lobj $libobj ${libobj}T"
- fi
-
- # On Cygwin there's no "real" PIC flag so we must build both object types
- case $host_os in
- cygwin* | mingw* | pw32* | os2* | cegcc*)
- pic_mode=default
- ;;
- esac
- if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then
- # non-PIC code in shared libraries is not supported
- pic_mode=default
- fi
-
- # Calculate the filename of the output object if compiler does
- # not support -o with -c
- if test no = "$compiler_c_o"; then
- output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext
- lockfile=$output_obj.lock
- else
- output_obj=
- need_locks=no
- lockfile=
- fi
-
- # Lock this critical section if it is needed
- # We use this script file to make the link, it avoids creating a new file
- if test yes = "$need_locks"; then
- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
- func_echo "Waiting for $lockfile to be removed"
- sleep 2
- done
- elif test warn = "$need_locks"; then
- if test -f "$lockfile"; then
- $ECHO "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support '-c' and '-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
- func_append removelist " $output_obj"
- $ECHO "$srcfile" > "$lockfile"
- fi
-
- $opt_dry_run || $RM $removelist
- func_append removelist " $lockfile"
- trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
-
- func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
- srcfile=$func_to_tool_file_result
- func_quote_for_eval "$srcfile"
- qsrcfile=$func_quote_for_eval_result
-
- # Only build a PIC object if we are building libtool libraries.
- if test yes = "$build_libtool_libs"; then
- # Without this assignment, base_compile gets emptied.
- fbsd_hideous_sh_bug=$base_compile
-
- if test no != "$pic_mode"; then
- command="$base_compile $qsrcfile $pic_flag"
- else
- # Don't build PIC code
- command="$base_compile $qsrcfile"
- fi
-
- func_mkdir_p "$xdir$objdir"
-
- if test -z "$output_obj"; then
- # Place PIC objects in $objdir
- func_append command " -o $lobj"
- fi
-
- func_show_eval_locale "$command" \
- 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
-
- if test warn = "$need_locks" &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support '-c' and '-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed, then go on to compile the next one
- if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
- func_show_eval '$MV "$output_obj" "$lobj"' \
- 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
- fi
-
- # Allow error messages only from the first compilation.
- if test yes = "$suppress_opt"; then
- suppress_output=' >/dev/null 2>&1'
- fi
- fi
-
- # Only build a position-dependent object if we build old libraries.
- if test yes = "$build_old_libs"; then
- if test yes != "$pic_mode"; then
- # Don't build PIC code
- command="$base_compile $qsrcfile$pie_flag"
- else
- command="$base_compile $qsrcfile $pic_flag"
- fi
- if test yes = "$compiler_c_o"; then
- func_append command " -o $obj"
- fi
-
- # Suppress compiler output if we already did a PIC compilation.
- func_append command "$suppress_output"
- func_show_eval_locale "$command" \
- '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
-
- if test warn = "$need_locks" &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support '-c' and '-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed
- if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
- func_show_eval '$MV "$output_obj" "$obj"' \
- 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
- fi
- fi
-
- $opt_dry_run || {
- func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
-
- # Unlock the critical section if it was locked
- if test no != "$need_locks"; then
- removelist=$lockfile
- $RM "$lockfile"
- fi
- }
-
- exit $EXIT_SUCCESS
-}
-
-$opt_help || {
- test compile = "$opt_mode" && func_mode_compile ${1+"$@"}
-}
-
-func_mode_help ()
-{
- # We need to display help for each of the modes.
- case $opt_mode in
- "")
- # Generic help is extracted from the usage comments
- # at the start of this file.
- func_help
- ;;
-
- clean)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
- ;;
-
- compile)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
- -o OUTPUT-FILE set the output file name to OUTPUT-FILE
- -no-suppress do not suppress compiler output for multiple passes
- -prefer-pic try to build PIC objects only
- -prefer-non-pic try to build non-PIC objects only
- -shared do not build a '.o' file suitable for static linking
- -static only build a '.o' file suitable for static linking
- -Wc,FLAG pass FLAG directly to the compiler
-
-COMPILE-COMMAND is a command to be used in creating a 'standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix '.c' with the
-library object suffix, '.lo'."
- ;;
-
- execute)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
- -dlopen FILE add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to '-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
- ;;
-
- finish)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges. Use
-the '--dry-run' option if you just want to see what would be executed."
- ;;
-
- install)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command. The first component should be
-either the 'install' or 'cp' program.
-
-The following components of INSTALL-COMMAND are treated specially:
-
- -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
- ;;
-
- link)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
- -all-static do not do any dynamic linking at all
- -avoid-version do not add a version suffix if possible
- -bindir BINDIR specify path to binaries directory (for systems where
- libraries must be found in the PATH setting at runtime)
- -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime
- -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
- -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
- -export-symbols SYMFILE
- try to export only the symbols listed in SYMFILE
- -export-symbols-regex REGEX
- try to export only the symbols matching REGEX
- -LLIBDIR search LIBDIR for required installed libraries
- -lNAME OUTPUT-FILE requires the installed library libNAME
- -module build a library that can dlopened
- -no-fast-install disable the fast-install mode
- -no-install link a not-installable executable
- -no-undefined declare that a library does not refer to external symbols
- -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
- -objectlist FILE use a list of object files found in FILE to specify objects
- -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes)
- -precious-files-regex REGEX
- don't remove output files matching REGEX
- -release RELEASE specify package release information
- -rpath LIBDIR the created library will eventually be installed in LIBDIR
- -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
- -shared only do dynamic linking of libtool libraries
- -shrext SUFFIX override the standard shared library file extension
- -static do not do any dynamic linking of uninstalled libtool libraries
- -static-libtool-libs
- do not do any dynamic linking of libtool libraries
- -version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
- -weak LIBNAME declare that the target provides the LIBNAME interface
- -Wc,FLAG
- -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
- -Wl,FLAG
- -Xlinker FLAG pass linker-specific FLAG directly to the linker
- -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
-
-All other options (arguments beginning with '-') are ignored.
-
-Every other argument is treated as a filename. Files ending in '.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in '.la', then a libtool library is created,
-only library objects ('.lo' files) may be specified, and '-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created
-using 'ar' and 'ranlib', or on Windows using 'lib'.
-
-If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file
-is created, otherwise an executable program is created."
- ;;
-
- uninstall)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
- ;;
-
- *)
- func_fatal_help "invalid operation mode '$opt_mode'"
- ;;
- esac
-
- echo
- $ECHO "Try '$progname --help' for more information about other modes."
-}
-
-# Now that we've collected a possible --mode arg, show help if necessary
-if $opt_help; then
- if test : = "$opt_help"; then
- func_mode_help
- else
- {
- func_help noexit
- for opt_mode in compile link execute install finish uninstall clean; do
- func_mode_help
- done
- } | $SED -n '1p; 2,$s/^Usage:/ or: /p'
- {
- func_help noexit
- for opt_mode in compile link execute install finish uninstall clean; do
- echo
- func_mode_help
- done
- } |
- $SED '1d
- /^When reporting/,/^Report/{
- H
- d
- }
- $x
- /information about other modes/d
- /more detailed .*MODE/d
- s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
- fi
- exit $?
-fi
-
-
-# func_mode_execute arg...
-func_mode_execute ()
-{
- $debug_cmd
-
- # The first argument is the command name.
- cmd=$nonopt
- test -z "$cmd" && \
- func_fatal_help "you must specify a COMMAND"
-
- # Handle -dlopen flags immediately.
- for file in $opt_dlopen; do
- test -f "$file" \
- || func_fatal_help "'$file' is not a file"
-
- dir=
- case $file in
- *.la)
- func_resolve_sysroot "$file"
- file=$func_resolve_sysroot_result
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "'$lib' is not a valid libtool archive"
-
- # Read the libtool library.
- dlname=
- library_names=
- func_source "$file"
-
- # Skip this library if it cannot be dlopened.
- if test -z "$dlname"; then
- # Warn if it was a shared library.
- test -n "$library_names" && \
- func_warning "'$file' was not linked with '-export-dynamic'"
- continue
- fi
-
- func_dirname "$file" "" "."
- dir=$func_dirname_result
-
- if test -f "$dir/$objdir/$dlname"; then
- func_append dir "/$objdir"
- else
- if test ! -f "$dir/$dlname"; then
- func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'"
- fi
- fi
- ;;
-
- *.lo)
- # Just add the directory containing the .lo file.
- func_dirname "$file" "" "."
- dir=$func_dirname_result
- ;;
-
- *)
- func_warning "'-dlopen' is ignored for non-libtool libraries and objects"
- continue
- ;;
- esac
-
- # Get the absolute pathname.
- absdir=`cd "$dir" && pwd`
- test -n "$absdir" && dir=$absdir
-
- # Now add the directory to shlibpath_var.
- if eval "test -z \"\$$shlibpath_var\""; then
- eval "$shlibpath_var=\"\$dir\""
- else
- eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
- fi
- done
-
- # This variable tells wrapper scripts just to set shlibpath_var
- # rather than running their programs.
- libtool_execute_magic=$magic
-
- # Check if any of the arguments is a wrapper script.
- args=
- for file
- do
- case $file in
- -* | *.la | *.lo ) ;;
- *)
- # Do a test to see if this is really a libtool program.
- if func_ltwrapper_script_p "$file"; then
- func_source "$file"
- # Transform arg to wrapped name.
- file=$progdir/$program
- elif func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- func_source "$func_ltwrapper_scriptname_result"
- # Transform arg to wrapped name.
- file=$progdir/$program
- fi
- ;;
- esac
- # Quote arguments (to preserve shell metacharacters).
- func_append_quoted args "$file"
- done
-
- if $opt_dry_run; then
- # Display what would be done.
- if test -n "$shlibpath_var"; then
- eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
- echo "export $shlibpath_var"
- fi
- $ECHO "$cmd$args"
- exit $EXIT_SUCCESS
- else
- if test -n "$shlibpath_var"; then
- # Export the shlibpath_var.
- eval "export $shlibpath_var"
- fi
-
- # Restore saved environment variables
- for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
- do
- eval "if test \"\${save_$lt_var+set}\" = set; then
- $lt_var=\$save_$lt_var; export $lt_var
- else
- $lt_unset $lt_var
- fi"
- done
-
- # Now prepare to actually exec the command.
- exec_cmd=\$cmd$args
- fi
-}
-
-test execute = "$opt_mode" && func_mode_execute ${1+"$@"}
-
-
-# func_mode_finish arg...
-func_mode_finish ()
-{
- $debug_cmd
-
- libs=
- libdirs=
- admincmds=
-
- for opt in "$nonopt" ${1+"$@"}
- do
- if test -d "$opt"; then
- func_append libdirs " $opt"
-
- elif test -f "$opt"; then
- if func_lalib_unsafe_p "$opt"; then
- func_append libs " $opt"
- else
- func_warning "'$opt' is not a valid libtool archive"
- fi
-
- else
- func_fatal_error "invalid argument '$opt'"
- fi
- done
-
- if test -n "$libs"; then
- if test -n "$lt_sysroot"; then
- sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
- sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
- else
- sysroot_cmd=
- fi
-
- # Remove sysroot references
- if $opt_dry_run; then
- for lib in $libs; do
- echo "removing references to $lt_sysroot and '=' prefixes from $lib"
- done
- else
- tmpdir=`func_mktempdir`
- for lib in $libs; do
- $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
- > $tmpdir/tmp-la
- mv -f $tmpdir/tmp-la $lib
- done
- ${RM}r "$tmpdir"
- fi
- fi
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- for libdir in $libdirs; do
- if test -n "$finish_cmds"; then
- # Do each command in the finish commands.
- func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
-'"$cmd"'"'
- fi
- if test -n "$finish_eval"; then
- # Do the single finish_eval.
- eval cmds=\"$finish_eval\"
- $opt_dry_run || eval "$cmds" || func_append admincmds "
- $cmds"
- fi
- done
- fi
-
- # Exit here if they wanted silent mode.
- $opt_quiet && exit $EXIT_SUCCESS
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- echo "----------------------------------------------------------------------"
- echo "Libraries have been installed in:"
- for libdir in $libdirs; do
- $ECHO " $libdir"
- done
- echo
- echo "If you ever happen to want to link against installed libraries"
- echo "in a given directory, LIBDIR, you must either use libtool, and"
- echo "specify the full pathname of the library, or use the '-LLIBDIR'"
- echo "flag during linking and do at least one of the following:"
- if test -n "$shlibpath_var"; then
- echo " - add LIBDIR to the '$shlibpath_var' environment variable"
- echo " during execution"
- fi
- if test -n "$runpath_var"; then
- echo " - add LIBDIR to the '$runpath_var' environment variable"
- echo " during linking"
- fi
- if test -n "$hardcode_libdir_flag_spec"; then
- libdir=LIBDIR
- eval flag=\"$hardcode_libdir_flag_spec\"
-
- $ECHO " - use the '$flag' linker flag"
- fi
- if test -n "$admincmds"; then
- $ECHO " - have your system administrator run these commands:$admincmds"
- fi
- if test -f /etc/ld.so.conf; then
- echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'"
- fi
- echo
-
- echo "See any operating system documentation about shared libraries for"
- case $host in
- solaris2.[6789]|solaris2.1[0-9])
- echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
- echo "pages."
- ;;
- *)
- echo "more information, such as the ld(1) and ld.so(8) manual pages."
- ;;
- esac
- echo "----------------------------------------------------------------------"
- fi
- exit $EXIT_SUCCESS
-}
-
-test finish = "$opt_mode" && func_mode_finish ${1+"$@"}
-
-
-# func_mode_install arg...
-func_mode_install ()
-{
- $debug_cmd
-
- # There may be an optional sh(1) argument at the beginning of
- # install_prog (especially on Windows NT).
- if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" ||
- # Allow the use of GNU shtool's install command.
- case $nonopt in *shtool*) :;; *) false;; esac
- then
- # Aesthetically quote it.
- func_quote_for_eval "$nonopt"
- install_prog="$func_quote_for_eval_result "
- arg=$1
- shift
- else
- install_prog=
- arg=$nonopt
- fi
-
- # The real first argument should be the name of the installation program.
- # Aesthetically quote it.
- func_quote_for_eval "$arg"
- func_append install_prog "$func_quote_for_eval_result"
- install_shared_prog=$install_prog
- case " $install_prog " in
- *[\\\ /]cp\ *) install_cp=: ;;
- *) install_cp=false ;;
- esac
-
- # We need to accept at least all the BSD install flags.
- dest=
- files=
- opts=
- prev=
- install_type=
- isdir=false
- stripme=
- no_mode=:
- for arg
- do
- arg2=
- if test -n "$dest"; then
- func_append files " $dest"
- dest=$arg
- continue
- fi
-
- case $arg in
- -d) isdir=: ;;
- -f)
- if $install_cp; then :; else
- prev=$arg
- fi
- ;;
- -g | -m | -o)
- prev=$arg
- ;;
- -s)
- stripme=" -s"
- continue
- ;;
- -*)
- ;;
- *)
- # If the previous option needed an argument, then skip it.
- if test -n "$prev"; then
- if test X-m = "X$prev" && test -n "$install_override_mode"; then
- arg2=$install_override_mode
- no_mode=false
- fi
- prev=
- else
- dest=$arg
- continue
- fi
- ;;
- esac
-
- # Aesthetically quote the argument.
- func_quote_for_eval "$arg"
- func_append install_prog " $func_quote_for_eval_result"
- if test -n "$arg2"; then
- func_quote_for_eval "$arg2"
- fi
- func_append install_shared_prog " $func_quote_for_eval_result"
- done
-
- test -z "$install_prog" && \
- func_fatal_help "you must specify an install program"
-
- test -n "$prev" && \
- func_fatal_help "the '$prev' option requires an argument"
-
- if test -n "$install_override_mode" && $no_mode; then
- if $install_cp; then :; else
- func_quote_for_eval "$install_override_mode"
- func_append install_shared_prog " -m $func_quote_for_eval_result"
- fi
- fi
-
- if test -z "$files"; then
- if test -z "$dest"; then
- func_fatal_help "no file or destination specified"
- else
- func_fatal_help "you must specify a destination"
- fi
- fi
-
- # Strip any trailing slash from the destination.
- func_stripname '' '/' "$dest"
- dest=$func_stripname_result
-
- # Check to see that the destination is a directory.
- test -d "$dest" && isdir=:
- if $isdir; then
- destdir=$dest
- destname=
- else
- func_dirname_and_basename "$dest" "" "."
- destdir=$func_dirname_result
- destname=$func_basename_result
-
- # Not a directory, so check to see that there is only one file specified.
- set dummy $files; shift
- test "$#" -gt 1 && \
- func_fatal_help "'$dest' is not a directory"
- fi
- case $destdir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- for file in $files; do
- case $file in
- *.lo) ;;
- *)
- func_fatal_help "'$destdir' must be an absolute directory name"
- ;;
- esac
- done
- ;;
- esac
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic=$magic
-
- staticlibs=
- future_libdirs=
- current_libdirs=
- for file in $files; do
-
- # Do each installation.
- case $file in
- *.$libext)
- # Do the static libraries later.
- func_append staticlibs " $file"
- ;;
-
- *.la)
- func_resolve_sysroot "$file"
- file=$func_resolve_sysroot_result
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "'$file' is not a valid libtool archive"
-
- library_names=
- old_library=
- relink_command=
- func_source "$file"
-
- # Add the libdir to current_libdirs if it is the destination.
- if test "X$destdir" = "X$libdir"; then
- case "$current_libdirs " in
- *" $libdir "*) ;;
- *) func_append current_libdirs " $libdir" ;;
- esac
- else
- # Note the libdir as a future libdir.
- case "$future_libdirs " in
- *" $libdir "*) ;;
- *) func_append future_libdirs " $libdir" ;;
- esac
- fi
-
- func_dirname "$file" "/" ""
- dir=$func_dirname_result
- func_append dir "$objdir"
-
- if test -n "$relink_command"; then
- # Determine the prefix the user has applied to our future dir.
- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
-
- # Don't allow the user to place us outside of our expected
- # location b/c this prevents finding dependent libraries that
- # are installed to the same prefix.
- # At present, this check doesn't affect windows .dll's that
- # are installed into $libdir/../bin (currently, that works fine)
- # but it's something to keep an eye on.
- test "$inst_prefix_dir" = "$destdir" && \
- func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir"
-
- if test -n "$inst_prefix_dir"; then
- # Stick the inst_prefix_dir data into the link command.
- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
- else
- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
- fi
-
- func_warning "relinking '$file'"
- func_show_eval "$relink_command" \
- 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"'
- fi
-
- # See the names of the shared library.
- set dummy $library_names; shift
- if test -n "$1"; then
- realname=$1
- shift
-
- srcname=$realname
- test -n "$relink_command" && srcname=${realname}T
-
- # Install the shared library and build the symlinks.
- func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
- 'exit $?'
- tstripme=$stripme
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- case $realname in
- *.dll.a)
- tstripme=
- ;;
- esac
- ;;
- os2*)
- case $realname in
- *_dll.a)
- tstripme=
- ;;
- esac
- ;;
- esac
- if test -n "$tstripme" && test -n "$striplib"; then
- func_show_eval "$striplib $destdir/$realname" 'exit $?'
- fi
-
- if test "$#" -gt 0; then
- # Delete the old symlinks, and create new ones.
- # Try 'ln -sf' first, because the 'ln' binary might depend on
- # the symlink we replace! Solaris /bin/ln does not understand -f,
- # so we also need to try rm && ln -s.
- for linkname
- do
- test "$linkname" != "$realname" \
- && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
- done
- fi
-
- # Do each command in the postinstall commands.
- lib=$destdir/$realname
- func_execute_cmds "$postinstall_cmds" 'exit $?'
- fi
-
- # Install the pseudo-library for information purposes.
- func_basename "$file"
- name=$func_basename_result
- instname=$dir/${name}i
- func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
-
- # Maybe install the static library, too.
- test -n "$old_library" && func_append staticlibs " $dir/$old_library"
- ;;
-
- *.lo)
- # Install (i.e. copy) a libtool object.
-
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile=$destdir/$destname
- else
- func_basename "$file"
- destfile=$func_basename_result
- destfile=$destdir/$destfile
- fi
-
- # Deduce the name of the destination old-style object file.
- case $destfile in
- *.lo)
- func_lo2o "$destfile"
- staticdest=$func_lo2o_result
- ;;
- *.$objext)
- staticdest=$destfile
- destfile=
- ;;
- *)
- func_fatal_help "cannot copy a libtool object to '$destfile'"
- ;;
- esac
-
- # Install the libtool object if requested.
- test -n "$destfile" && \
- func_show_eval "$install_prog $file $destfile" 'exit $?'
-
- # Install the old object if enabled.
- if test yes = "$build_old_libs"; then
- # Deduce the name of the old-style object file.
- func_lo2o "$file"
- staticobj=$func_lo2o_result
- func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
- fi
- exit $EXIT_SUCCESS
- ;;
-
- *)
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile=$destdir/$destname
- else
- func_basename "$file"
- destfile=$func_basename_result
- destfile=$destdir/$destfile
- fi
-
- # If the file is missing, and there is a .exe on the end, strip it
- # because it is most likely a libtool script we actually want to
- # install
- stripped_ext=
- case $file in
- *.exe)
- if test ! -f "$file"; then
- func_stripname '' '.exe' "$file"
- file=$func_stripname_result
- stripped_ext=.exe
- fi
- ;;
- esac
-
- # Do a test to see if this is really a libtool program.
- case $host in
- *cygwin* | *mingw*)
- if func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- wrapper=$func_ltwrapper_scriptname_result
- else
- func_stripname '' '.exe' "$file"
- wrapper=$func_stripname_result
- fi
- ;;
- *)
- wrapper=$file
- ;;
- esac
- if func_ltwrapper_script_p "$wrapper"; then
- notinst_deplibs=
- relink_command=
-
- func_source "$wrapper"
-
- # Check the variables that should have been set.
- test -z "$generated_by_libtool_version" && \
- func_fatal_error "invalid libtool wrapper script '$wrapper'"
-
- finalize=:
- for lib in $notinst_deplibs; do
- # Check to see that each library is installed.
- libdir=
- if test -f "$lib"; then
- func_source "$lib"
- fi
- libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'`
- if test -n "$libdir" && test ! -f "$libfile"; then
- func_warning "'$lib' has not been installed in '$libdir'"
- finalize=false
- fi
- done
-
- relink_command=
- func_source "$wrapper"
-
- outputname=
- if test no = "$fast_install" && test -n "$relink_command"; then
- $opt_dry_run || {
- if $finalize; then
- tmpdir=`func_mktempdir`
- func_basename "$file$stripped_ext"
- file=$func_basename_result
- outputname=$tmpdir/$file
- # Replace the output file specification.
- relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
-
- $opt_quiet || {
- func_quote_for_expand "$relink_command"
- eval "func_echo $func_quote_for_expand_result"
- }
- if eval "$relink_command"; then :
- else
- func_error "error: relink '$file' with the above command before installing it"
- $opt_dry_run || ${RM}r "$tmpdir"
- continue
- fi
- file=$outputname
- else
- func_warning "cannot relink '$file'"
- fi
- }
- else
- # Install the binary that we compiled earlier.
- file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
- fi
- fi
-
- # remove .exe since cygwin /usr/bin/install will append another
- # one anyway
- case $install_prog,$host in
- */usr/bin/install*,*cygwin*)
- case $file:$destfile in
- *.exe:*.exe)
- # this is ok
- ;;
- *.exe:*)
- destfile=$destfile.exe
- ;;
- *:*.exe)
- func_stripname '' '.exe' "$destfile"
- destfile=$func_stripname_result
- ;;
- esac
- ;;
- esac
- func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
- $opt_dry_run || if test -n "$outputname"; then
- ${RM}r "$tmpdir"
- fi
- ;;
- esac
- done
-
- for file in $staticlibs; do
- func_basename "$file"
- name=$func_basename_result
-
- # Set up the ranlib parameters.
- oldlib=$destdir/$name
- func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
- tool_oldlib=$func_to_tool_file_result
-
- func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
-
- if test -n "$stripme" && test -n "$old_striplib"; then
- func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
- fi
-
- # Do each command in the postinstall commands.
- func_execute_cmds "$old_postinstall_cmds" 'exit $?'
- done
-
- test -n "$future_libdirs" && \
- func_warning "remember to run '$progname --finish$future_libdirs'"
-
- if test -n "$current_libdirs"; then
- # Maybe just do a dry run.
- $opt_dry_run && current_libdirs=" -n$current_libdirs"
- exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs'
- else
- exit $EXIT_SUCCESS
- fi
-}
-
-test install = "$opt_mode" && func_mode_install ${1+"$@"}
-
-
-# func_generate_dlsyms outputname originator pic_p
-# Extract symbols from dlprefiles and create ${outputname}S.o with
-# a dlpreopen symbol table.
-func_generate_dlsyms ()
-{
- $debug_cmd
-
- my_outputname=$1
- my_originator=$2
- my_pic_p=${3-false}
- my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'`
- my_dlsyms=
-
- if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
- if test -n "$NM" && test -n "$global_symbol_pipe"; then
- my_dlsyms=${my_outputname}S.c
- else
- func_error "not configured to extract global symbols from dlpreopened files"
- fi
- fi
-
- if test -n "$my_dlsyms"; then
- case $my_dlsyms in
- "") ;;
- *.c)
- # Discover the nlist of each of the dlfiles.
- nlist=$output_objdir/$my_outputname.nm
-
- func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
-
- # Parse the name list into a source file.
- func_verbose "creating $output_objdir/$my_dlsyms"
-
- $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
-#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
-#endif
-
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
-/* DATA imports from DLLs on WIN32 can't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT_DLSYM_CONST
-#elif defined __osf__
-/* This system does not cope well with relocations in const data. */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
-
-/* External symbol declarations for the compiler. */\
-"
-
- if test yes = "$dlself"; then
- func_verbose "generating symbol list for '$output'"
-
- $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
-
- # Add our own program objects to the symbol list.
- progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- for progfile in $progfiles; do
- func_to_tool_file "$progfile" func_convert_file_msys_to_w32
- func_verbose "extracting global C symbols from '$func_to_tool_file_result'"
- $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -n "$exclude_expsyms"; then
- $opt_dry_run || {
- eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- if test -n "$export_symbols_regex"; then
- $opt_dry_run || {
- eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- export_symbols=$output_objdir/$outputname.exp
- $opt_dry_run || {
- $RM $export_symbols
- eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
- eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- else
- $opt_dry_run || {
- eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
- eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
- eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- fi
- fi
-
- for dlprefile in $dlprefiles; do
- func_verbose "extracting global C symbols from '$dlprefile'"
- func_basename "$dlprefile"
- name=$func_basename_result
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- # if an import library, we need to obtain dlname
- if func_win32_import_lib_p "$dlprefile"; then
- func_tr_sh "$dlprefile"
- eval "curr_lafile=\$libfile_$func_tr_sh_result"
- dlprefile_dlbasename=
- if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
- # Use subshell, to avoid clobbering current variable values
- dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
- if test -n "$dlprefile_dlname"; then
- func_basename "$dlprefile_dlname"
- dlprefile_dlbasename=$func_basename_result
- else
- # no lafile. user explicitly requested -dlpreopen <import library>.
- $sharedlib_from_linklib_cmd "$dlprefile"
- dlprefile_dlbasename=$sharedlib_from_linklib_result
- fi
- fi
- $opt_dry_run || {
- if test -n "$dlprefile_dlbasename"; then
- eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
- else
- func_warning "Could not compute DLL name from $name"
- eval '$ECHO ": $name " >> "$nlist"'
- fi
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
- $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
- }
- else # not an import lib
- $opt_dry_run || {
- eval '$ECHO ": $name " >> "$nlist"'
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
- }
- fi
- ;;
- *)
- $opt_dry_run || {
- eval '$ECHO ": $name " >> "$nlist"'
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
- }
- ;;
- esac
- done
-
- $opt_dry_run || {
- # Make sure we have at least an empty file.
- test -f "$nlist" || : > "$nlist"
-
- if test -n "$exclude_expsyms"; then
- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
- $MV "$nlist"T "$nlist"
- fi
-
- # Try sorting and uniquifying the output.
- if $GREP -v "^: " < "$nlist" |
- if sort -k 3 </dev/null >/dev/null 2>&1; then
- sort -k 3
- else
- sort +2
- fi |
- uniq > "$nlist"S; then
- :
- else
- $GREP -v "^: " < "$nlist" > "$nlist"S
- fi
-
- if test -f "$nlist"S; then
- eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
- else
- echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
- fi
-
- func_show_eval '$RM "${nlist}I"'
- if test -n "$global_symbol_to_import"; then
- eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I'
- fi
-
- echo >> "$output_objdir/$my_dlsyms" "\
-
-/* The mapping between symbol names and symbols. */
-typedef struct {
- const char *name;
- void *address;
-} lt_dlsymlist;
-extern LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];\
-"
-
- if test -s "$nlist"I; then
- echo >> "$output_objdir/$my_dlsyms" "\
-static void lt_syminit(void)
-{
- LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols;
- for (; symbol->name; ++symbol)
- {"
- $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms"
- echo >> "$output_objdir/$my_dlsyms" "\
- }
-}"
- fi
- echo >> "$output_objdir/$my_dlsyms" "\
-LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[] =
-{ {\"$my_originator\", (void *) 0},"
-
- if test -s "$nlist"I; then
- echo >> "$output_objdir/$my_dlsyms" "\
- {\"@INIT@\", (void *) &lt_syminit},"
- fi
-
- case $need_lib_prefix in
- no)
- eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
- ;;
- *)
- eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
- ;;
- esac
- echo >> "$output_objdir/$my_dlsyms" "\
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt_${my_prefix}_LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
- } # !$opt_dry_run
-
- pic_flag_for_symtable=
- case "$compile_command " in
- *" -static "*) ;;
- *)
- case $host in
- # compiling the symbol table file with pic_flag works around
- # a FreeBSD bug that causes programs to crash when -lm is
- # linked before any other PIC object. But we must not use
- # pic_flag when linking with -static. The problem exists in
- # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
- *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
- pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
- *-*-hpux*)
- pic_flag_for_symtable=" $pic_flag" ;;
- *)
- $my_pic_p && pic_flag_for_symtable=" $pic_flag"
- ;;
- esac
- ;;
- esac
- symtab_cflags=
- for arg in $LTCFLAGS; do
- case $arg in
- -pie | -fpie | -fPIE) ;;
- *) func_append symtab_cflags " $arg" ;;
- esac
- done
-
- # Now compile the dynamic symbol file.
- func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
-
- # Clean up the generated files.
- func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"'
-
- # Transform the symbol file into the correct name.
- symfileobj=$output_objdir/${my_outputname}S.$objext
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- if test -f "$output_objdir/$my_outputname.def"; then
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- else
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- fi
- ;;
- *)
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- ;;
- esac
- ;;
- *)
- func_fatal_error "unknown suffix for '$my_dlsyms'"
- ;;
- esac
- else
- # We keep going just in case the user didn't refer to
- # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
- # really was required.
-
- # Nullify the symbol file.
- compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
- fi
-}
-
-# func_cygming_gnu_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is a GNU/binutils-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_gnu_implib_p ()
-{
- $debug_cmd
-
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
- test -n "$func_cygming_gnu_implib_tmp"
-}
-
-# func_cygming_ms_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is an MS-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_ms_implib_p ()
-{
- $debug_cmd
-
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
- test -n "$func_cygming_ms_implib_tmp"
-}
-
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-# Despite the name, also deal with 64 bit binaries.
-func_win32_libid ()
-{
- $debug_cmd
-
- win32_libid_type=unknown
- win32_fileres=`file -L $1 2>/dev/null`
- case $win32_fileres in
- *ar\ archive\ import\ library*) # definitely import
- win32_libid_type="x86 archive import"
- ;;
- *ar\ archive*) # could be an import, or static
- # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
- if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
- $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
- case $nm_interface in
- "MS dumpbin")
- if func_cygming_ms_implib_p "$1" ||
- func_cygming_gnu_implib_p "$1"
- then
- win32_nmres=import
- else
- win32_nmres=
- fi
- ;;
- *)
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
- $SED -n -e '
- 1,100{
- / I /{
- s|.*|import|
- p
- q
- }
- }'`
- ;;
- esac
- case $win32_nmres in
- import*) win32_libid_type="x86 archive import";;
- *) win32_libid_type="x86 archive static";;
- esac
- fi
- ;;
- *DLL*)
- win32_libid_type="x86 DLL"
- ;;
- *executable*) # but shell scripts are "executable" too...
- case $win32_fileres in
- *MS\ Windows\ PE\ Intel*)
- win32_libid_type="x86 DLL"
- ;;
- esac
- ;;
- esac
- $ECHO "$win32_libid_type"
-}
-
-# func_cygming_dll_for_implib ARG
-#
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-# Invoked by eval'ing the libtool variable
-# $sharedlib_from_linklib_cmd
-# Result is available in the variable
-# $sharedlib_from_linklib_result
-func_cygming_dll_for_implib ()
-{
- $debug_cmd
-
- sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
-}
-
-# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
-#
-# The is the core of a fallback implementation of a
-# platform-specific function to extract the name of the
-# DLL associated with the specified import library LIBNAME.
-#
-# SECTION_NAME is either .idata$6 or .idata$7, depending
-# on the platform and compiler that created the implib.
-#
-# Echos the name of the DLL associated with the
-# specified import library.
-func_cygming_dll_for_implib_fallback_core ()
-{
- $debug_cmd
-
- match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
- $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
- $SED '/^Contents of section '"$match_literal"':/{
- # Place marker at beginning of archive member dllname section
- s/.*/====MARK====/
- p
- d
- }
- # These lines can sometimes be longer than 43 characters, but
- # are always uninteresting
- /:[ ]*file format pe[i]\{,1\}-/d
- /^In archive [^:]*:/d
- # Ensure marker is printed
- /^====MARK====/p
- # Remove all lines with less than 43 characters
- /^.\{43\}/!d
- # From remaining lines, remove first 43 characters
- s/^.\{43\}//' |
- $SED -n '
- # Join marker and all lines until next marker into a single line
- /^====MARK====/ b para
- H
- $ b para
- b
- :para
- x
- s/\n//g
- # Remove the marker
- s/^====MARK====//
- # Remove trailing dots and whitespace
- s/[\. \t]*$//
- # Print
- /./p' |
- # we now have a list, one entry per line, of the stringified
- # contents of the appropriate section of all members of the
- # archive that possess that section. Heuristic: eliminate
- # all those that have a first or second character that is
- # a '.' (that is, objdump's representation of an unprintable
- # character.) This should work for all archives with less than
- # 0x302f exports -- but will fail for DLLs whose name actually
- # begins with a literal '.' or a single character followed by
- # a '.'.
- #
- # Of those that remain, print the first one.
- $SED -e '/^\./d;/^.\./d;q'
-}
-
-# func_cygming_dll_for_implib_fallback ARG
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-#
-# This fallback implementation is for use when $DLLTOOL
-# does not support the --identify-strict option.
-# Invoked by eval'ing the libtool variable
-# $sharedlib_from_linklib_cmd
-# Result is available in the variable
-# $sharedlib_from_linklib_result
-func_cygming_dll_for_implib_fallback ()
-{
- $debug_cmd
-
- if func_cygming_gnu_implib_p "$1"; then
- # binutils import library
- sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
- elif func_cygming_ms_implib_p "$1"; then
- # ms-generated import library
- sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
- else
- # unknown
- sharedlib_from_linklib_result=
- fi
-}
-
-
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
- $debug_cmd
-
- f_ex_an_ar_dir=$1; shift
- f_ex_an_ar_oldlib=$1
- if test yes = "$lock_old_archive_extraction"; then
- lockfile=$f_ex_an_ar_oldlib.lock
- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
- func_echo "Waiting for $lockfile to be removed"
- sleep 2
- done
- fi
- func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
- 'stat=$?; rm -f "$lockfile"; exit $stat'
- if test yes = "$lock_old_archive_extraction"; then
- $opt_dry_run || rm -f "$lockfile"
- fi
- if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
- fi
-}
-
-
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
- $debug_cmd
-
- my_gentop=$1; shift
- my_oldlibs=${1+"$@"}
- my_oldobjs=
- my_xlib=
- my_xabs=
- my_xdir=
-
- for my_xlib in $my_oldlibs; do
- # Extract the objects.
- case $my_xlib in
- [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;;
- *) my_xabs=`pwd`"/$my_xlib" ;;
- esac
- func_basename "$my_xlib"
- my_xlib=$func_basename_result
- my_xlib_u=$my_xlib
- while :; do
- case " $extracted_archives " in
- *" $my_xlib_u "*)
- func_arith $extracted_serial + 1
- extracted_serial=$func_arith_result
- my_xlib_u=lt$extracted_serial-$my_xlib ;;
- *) break ;;
- esac
- done
- extracted_archives="$extracted_archives $my_xlib_u"
- my_xdir=$my_gentop/$my_xlib_u
-
- func_mkdir_p "$my_xdir"
-
- case $host in
- *-darwin*)
- func_verbose "Extracting $my_xabs"
- # Do not bother doing anything if just a dry run
- $opt_dry_run || {
- darwin_orig_dir=`pwd`
- cd $my_xdir || exit $?
- darwin_archive=$my_xabs
- darwin_curdir=`pwd`
- func_basename "$darwin_archive"
- darwin_base_archive=$func_basename_result
- darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
- if test -n "$darwin_arches"; then
- darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
- darwin_arch=
- func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
- for darwin_arch in $darwin_arches; do
- func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch"
- $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive"
- cd "unfat-$$/$darwin_base_archive-$darwin_arch"
- func_extract_an_archive "`pwd`" "$darwin_base_archive"
- cd "$darwin_curdir"
- $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive"
- done # $darwin_arches
- ## Okay now we've a bunch of thin objects, gotta fatten them up :)
- darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u`
- darwin_file=
- darwin_files=
- for darwin_file in $darwin_filelist; do
- darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
- $LIPO -create -output "$darwin_file" $darwin_files
- done # $darwin_filelist
- $RM -rf unfat-$$
- cd "$darwin_orig_dir"
- else
- cd $darwin_orig_dir
- func_extract_an_archive "$my_xdir" "$my_xabs"
- fi # $darwin_arches
- } # !$opt_dry_run
- ;;
- *)
- func_extract_an_archive "$my_xdir" "$my_xabs"
- ;;
- esac
- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
- done
-
- func_extract_archives_result=$my_oldobjs
-}
-
-
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable. Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take. If 'yes', then the emitted script
-# will assume that the directory where it is stored is
-# the $objdir directory. This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
- func_emit_wrapper_arg1=${1-no}
-
- $ECHO "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='$sed_quote_subst'
-
-# Be Bourne compatible
-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
- # install mode needs the following variables:
- generated_by_libtool_version='$macro_version'
- notinst_deplibs='$notinst_deplibs'
-else
- # When we are sourced in execute mode, \$file and \$ECHO are already set.
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- file=\"\$0\""
-
- qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
- $ECHO "\
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
- ECHO=\"$qECHO\"
- fi
-
-# Very basic option parsing. These options are (a) specific to
-# the libtool wrapper, (b) are identical between the wrapper
-# /script/ and the wrapper /executable/ that is used only on
-# windows platforms, and (c) all begin with the string "--lt-"
-# (application programs are unlikely to have options that match
-# this pattern).
-#
-# There are only two supported options: --lt-debug and
-# --lt-dump-script. There is, deliberately, no --lt-help.
-#
-# The first argument to this parsing function should be the
-# script's $0 value, followed by "$@".
-lt_option_debug=
-func_parse_lt_options ()
-{
- lt_script_arg0=\$0
- shift
- for lt_opt
- do
- case \"\$lt_opt\" in
- --lt-debug) lt_option_debug=1 ;;
- --lt-dump-script)
- lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
- test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
- lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
- cat \"\$lt_dump_D/\$lt_dump_F\"
- exit 0
- ;;
- --lt-*)
- \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
- exit 1
- ;;
- esac
- done
-
- # Print the debug banner immediately:
- if test -n \"\$lt_option_debug\"; then
- echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2
- fi
-}
-
-# Used when --lt-debug. Prints its arguments to stdout
-# (redirection is the responsibility of the caller)
-func_lt_dump_args ()
-{
- lt_dump_args_N=1;
- for lt_arg
- do
- \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\"
- lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
- done
-}
-
-# Core function for launching the target application
-func_exec_program_core ()
-{
-"
- case $host in
- # Backslashes separate directories on plain windows
- *-*-mingw | *-*-os2* | *-cegcc*)
- $ECHO "\
- if test -n \"\$lt_option_debug\"; then
- \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
- func_lt_dump_args \${1+\"\$@\"} 1>&2
- fi
- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
- ;;
-
- *)
- $ECHO "\
- if test -n \"\$lt_option_debug\"; then
- \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2
- func_lt_dump_args \${1+\"\$@\"} 1>&2
- fi
- exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
- ;;
- esac
- $ECHO "\
- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
- exit 1
-}
-
-# A function to encapsulate launching the target application
-# Strips options in the --lt-* namespace from \$@ and
-# launches target application with the remaining arguments.
-func_exec_program ()
-{
- case \" \$* \" in
- *\\ --lt-*)
- for lt_wr_arg
- do
- case \$lt_wr_arg in
- --lt-*) ;;
- *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
- esac
- shift
- done ;;
- esac
- func_exec_program_core \${1+\"\$@\"}
-}
-
- # Parse options
- func_parse_lt_options \"\$0\" \${1+\"\$@\"}
-
- # Find the directory that this script lives in.
- thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
- test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
- while test -n \"\$file\"; do
- destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
-
- # If there was a directory component, then change thisdir.
- if test \"x\$destdir\" != \"x\$file\"; then
- case \"\$destdir\" in
- [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
- *) thisdir=\"\$thisdir/\$destdir\" ;;
- esac
- fi
-
- file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
- file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
- done
-
- # Usually 'no', except on cygwin/mingw when embedded into
- # the cwrapper.
- WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
- if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
- # special case for '.'
- if test \"\$thisdir\" = \".\"; then
- thisdir=\`pwd\`
- fi
- # remove .libs from thisdir
- case \"\$thisdir\" in
- *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
- $objdir ) thisdir=. ;;
- esac
- fi
-
- # Try to get the absolute directory name.
- absdir=\`cd \"\$thisdir\" && pwd\`
- test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
- if test yes = "$fast_install"; then
- $ECHO "\
- program=lt-'$outputname'$exeext
- progdir=\"\$thisdir/$objdir\"
-
- if test ! -f \"\$progdir/\$program\" ||
- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\
- test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
- file=\"\$\$-\$program\"
-
- if test ! -d \"\$progdir\"; then
- $MKDIR \"\$progdir\"
- else
- $RM \"\$progdir/\$file\"
- fi"
-
- $ECHO "\
-
- # relink executable if necessary
- if test -n \"\$relink_command\"; then
- if relink_command_output=\`eval \$relink_command 2>&1\`; then :
- else
- \$ECHO \"\$relink_command_output\" >&2
- $RM \"\$progdir/\$file\"
- exit 1
- fi
- fi
-
- $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
- { $RM \"\$progdir/\$program\";
- $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
- $RM \"\$progdir/\$file\"
- fi"
- else
- $ECHO "\
- program='$outputname'
- progdir=\"\$thisdir/$objdir\"
-"
- fi
-
- $ECHO "\
-
- if test -f \"\$progdir/\$program\"; then"
-
- # fixup the dll searchpath if we need to.
- #
- # Fix the DLL searchpath if we need to. Do this before prepending
- # to shlibpath, because on Windows, both are PATH and uninstalled
- # libraries must come first.
- if test -n "$dllsearchpath"; then
- $ECHO "\
- # Add the dll search path components to the executable PATH
- PATH=$dllsearchpath:\$PATH
-"
- fi
-
- # Export our shlibpath_var if we have one.
- if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- $ECHO "\
- # Add our own library path to $shlibpath_var
- $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
- # Some systems cannot cope with colon-terminated $shlibpath_var
- # The second colon is a workaround for a bug in BeOS R4 sed
- $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
-
- export $shlibpath_var
-"
- fi
-
- $ECHO "\
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- # Run the actual program with our arguments.
- func_exec_program \${1+\"\$@\"}
- fi
- else
- # The program doesn't exist.
- \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2
- \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
- \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
- exit 1
- fi
-fi\
-"
-}
-
-
-# func_emit_cwrapperexe_src
-# emit the source code for a wrapper executable on stdout
-# Must ONLY be called from within func_mode_link because
-# it depends on a number of variable set therein.
-func_emit_cwrapperexe_src ()
-{
- cat <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
- Generated by $PROGRAM (GNU $PACKAGE) $VERSION
-
- The $output program cannot be directly executed until all the libtool
- libraries that it depends on are installed.
-
- This wrapper executable should never be moved out of the build directory.
- If it is, it will not operate correctly.
-*/
-EOF
- cat <<"EOF"
-#ifdef _MSC_VER
-# define _CRT_SECURE_NO_DEPRECATE 1
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#ifdef _MSC_VER
-# include <direct.h>
-# include <process.h>
-# include <io.h>
-#else
-# include <unistd.h>
-# include <stdint.h>
-# ifdef __CYGWIN__
-# include <io.h>
-# endif
-#endif
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
-
-/* declarations of non-ANSI functions */
-#if defined __MINGW32__
-# ifdef __STRICT_ANSI__
-int _putenv (const char *);
-# endif
-#elif defined __CYGWIN__
-# ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-# endif
-/* #elif defined other_platform || defined ... */
-#endif
-
-/* portability defines, excluding path handling macros */
-#if defined _MSC_VER
-# define setmode _setmode
-# define stat _stat
-# define chmod _chmod
-# define getcwd _getcwd
-# define putenv _putenv
-# define S_IXUSR _S_IEXEC
-#elif defined __MINGW32__
-# define setmode _setmode
-# define stat _stat
-# define chmod _chmod
-# define getcwd _getcwd
-# define putenv _putenv
-#elif defined __CYGWIN__
-# define HAVE_SETENV
-# define FOPEN_WB "wb"
-/* #elif defined other platforms ... */
-#endif
-
-#if defined PATH_MAX
-# define LT_PATHMAX PATH_MAX
-#elif defined MAXPATHLEN
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef S_IXOTH
-# define S_IXOTH 0
-#endif
-#ifndef S_IXGRP
-# define S_IXGRP 0
-#endif
-
-/* path handling portability macros */
-#ifndef DIR_SEPARATOR
-# define DIR_SEPARATOR '/'
-# define PATH_SEPARATOR ':'
-#endif
-
-#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \
- defined __OS2__
-# define HAVE_DOS_BASED_FILE_SYSTEM
-# define FOPEN_WB "wb"
-# ifndef DIR_SEPARATOR_2
-# define DIR_SEPARATOR_2 '\\'
-# endif
-# ifndef PATH_SEPARATOR_2
-# define PATH_SEPARATOR_2 ';'
-# endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
- (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#ifndef PATH_SEPARATOR_2
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-#else /* PATH_SEPARATOR_2 */
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-#endif /* PATH_SEPARATOR_2 */
-
-#ifndef FOPEN_WB
-# define FOPEN_WB "w"
-#endif
-#ifndef _O_BINARY
-# define _O_BINARY 0
-#endif
-
-#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
- if (stale) { free (stale); stale = 0; } \
-} while (0)
-
-#if defined LT_DEBUGWRAPPER
-static int lt_debug = 1;
-#else
-static int lt_debug = 0;
-#endif
-
-const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
-
-void *xmalloc (size_t num);
-char *xstrdup (const char *string);
-const char *base_name (const char *name);
-char *find_executable (const char *wrapper);
-char *chase_symlinks (const char *pathspec);
-int make_executable (const char *path);
-int check_executable (const char *path);
-char *strendzap (char *str, const char *pat);
-void lt_debugprintf (const char *file, int line, const char *fmt, ...);
-void lt_fatal (const char *file, int line, const char *message, ...);
-static const char *nonnull (const char *s);
-static const char *nonempty (const char *s);
-void lt_setenv (const char *name, const char *value);
-char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_update_exe_path (const char *name, const char *value);
-void lt_update_lib_path (const char *name, const char *value);
-char **prepare_spawn (char **argv);
-void lt_dump_script (FILE *f);
-EOF
-
- cat <<EOF
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
-# define externally_visible volatile
-#else
-# define externally_visible __attribute__((externally_visible)) volatile
-#endif
-externally_visible const char * MAGIC_EXE = "$magic_exe";
-const char * LIB_PATH_VARNAME = "$shlibpath_var";
-EOF
-
- if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- func_to_host_path "$temp_rpath"
- cat <<EOF
-const char * LIB_PATH_VALUE = "$func_to_host_path_result";
-EOF
- else
- cat <<"EOF"
-const char * LIB_PATH_VALUE = "";
-EOF
- fi
-
- if test -n "$dllsearchpath"; then
- func_to_host_path "$dllsearchpath:"
- cat <<EOF
-const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE = "$func_to_host_path_result";
-EOF
- else
- cat <<"EOF"
-const char * EXE_PATH_VARNAME = "";
-const char * EXE_PATH_VALUE = "";
-EOF
- fi
-
- if test yes = "$fast_install"; then
- cat <<EOF
-const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
-EOF
- else
- cat <<EOF
-const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
-EOF
- fi
-
-
- cat <<"EOF"
-
-#define LTWRAPPER_OPTION_PREFIX "--lt-"
-
-static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
-static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
-
-int
-main (int argc, char *argv[])
-{
- char **newargz;
- int newargc;
- char *tmp_pathspec;
- char *actual_cwrapper_path;
- char *actual_cwrapper_name;
- char *target_name;
- char *lt_argv_zero;
- int rval = 127;
-
- int i;
-
- program_name = (char *) xstrdup (base_name (argv[0]));
- newargz = XMALLOC (char *, (size_t) argc + 1);
-
- /* very simple arg parsing; don't want to rely on getopt
- * also, copy all non cwrapper options to newargz, except
- * argz[0], which is handled differently
- */
- newargc=0;
- for (i = 1; i < argc; i++)
- {
- if (STREQ (argv[i], dumpscript_opt))
- {
-EOF
- case $host in
- *mingw* | *cygwin* )
- # make stdout use "unix" line endings
- echo " setmode(1,_O_BINARY);"
- ;;
- esac
-
- cat <<"EOF"
- lt_dump_script (stdout);
- return 0;
- }
- if (STREQ (argv[i], debug_opt))
- {
- lt_debug = 1;
- continue;
- }
- if (STREQ (argv[i], ltwrapper_option_prefix))
- {
- /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
- namespace, but it is not one of the ones we know about and
- have already dealt with, above (inluding dump-script), then
- report an error. Otherwise, targets might begin to believe
- they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
- namespace. The first time any user complains about this, we'll
- need to make LTWRAPPER_OPTION_PREFIX a configure-time option
- or a configure.ac-settable value.
- */
- lt_fatal (__FILE__, __LINE__,
- "unrecognized %s option: '%s'",
- ltwrapper_option_prefix, argv[i]);
- }
- /* otherwise ... */
- newargz[++newargc] = xstrdup (argv[i]);
- }
- newargz[++newargc] = NULL;
-
-EOF
- cat <<EOF
- /* The GNU banner must be the first non-error debug message */
- lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n");
-EOF
- cat <<"EOF"
- lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
- lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
-
- tmp_pathspec = find_executable (argv[0]);
- if (tmp_pathspec == NULL)
- lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
- lt_debugprintf (__FILE__, __LINE__,
- "(main) found exe (before symlink chase) at: %s\n",
- tmp_pathspec);
-
- actual_cwrapper_path = chase_symlinks (tmp_pathspec);
- lt_debugprintf (__FILE__, __LINE__,
- "(main) found exe (after symlink chase) at: %s\n",
- actual_cwrapper_path);
- XFREE (tmp_pathspec);
-
- actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
- strendzap (actual_cwrapper_path, actual_cwrapper_name);
-
- /* wrapper name transforms */
- strendzap (actual_cwrapper_name, ".exe");
- tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
- XFREE (actual_cwrapper_name);
- actual_cwrapper_name = tmp_pathspec;
- tmp_pathspec = 0;
-
- /* target_name transforms -- use actual target program name; might have lt- prefix */
- target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
- strendzap (target_name, ".exe");
- tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
- XFREE (target_name);
- target_name = tmp_pathspec;
- tmp_pathspec = 0;
-
- lt_debugprintf (__FILE__, __LINE__,
- "(main) libtool target name: %s\n",
- target_name);
-EOF
-
- cat <<EOF
- newargz[0] =
- XMALLOC (char, (strlen (actual_cwrapper_path) +
- strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
- strcpy (newargz[0], actual_cwrapper_path);
- strcat (newargz[0], "$objdir");
- strcat (newargz[0], "/");
-EOF
-
- cat <<"EOF"
- /* stop here, and copy so we don't have to do this twice */
- tmp_pathspec = xstrdup (newargz[0]);
-
- /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
- strcat (newargz[0], actual_cwrapper_name);
-
- /* DO want the lt- prefix here if it exists, so use target_name */
- lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
- XFREE (tmp_pathspec);
- tmp_pathspec = NULL;
-EOF
-
- case $host_os in
- mingw*)
- cat <<"EOF"
- {
- char* p;
- while ((p = strchr (newargz[0], '\\')) != NULL)
- {
- *p = '/';
- }
- while ((p = strchr (lt_argv_zero, '\\')) != NULL)
- {
- *p = '/';
- }
- }
-EOF
- ;;
- esac
-
- cat <<"EOF"
- XFREE (target_name);
- XFREE (actual_cwrapper_path);
- XFREE (actual_cwrapper_name);
-
- lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
- lt_setenv ("DUALCASE", "1"); /* for MSK sh */
- /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
- be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
- because on Windows, both *_VARNAMEs are PATH but uninstalled
- libraries must come first. */
- lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
- lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
-
- lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
- nonnull (lt_argv_zero));
- for (i = 0; i < newargc; i++)
- {
- lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
- i, nonnull (newargz[i]));
- }
-
-EOF
-
- case $host_os in
- mingw*)
- cat <<"EOF"
- /* execv doesn't actually work on mingw as expected on unix */
- newargz = prepare_spawn (newargz);
- rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
- if (rval == -1)
- {
- /* failed to start process */
- lt_debugprintf (__FILE__, __LINE__,
- "(main) failed to launch target \"%s\": %s\n",
- lt_argv_zero, nonnull (strerror (errno)));
- return 127;
- }
- return rval;
-EOF
- ;;
- *)
- cat <<"EOF"
- execv (lt_argv_zero, newargz);
- return rval; /* =127, but avoids unused variable warning */
-EOF
- ;;
- esac
-
- cat <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
- void *p = (void *) malloc (num);
- if (!p)
- lt_fatal (__FILE__, __LINE__, "memory exhausted");
-
- return p;
-}
-
-char *
-xstrdup (const char *string)
-{
- return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
- string) : NULL;
-}
-
-const char *
-base_name (const char *name)
-{
- const char *base;
-
-#if defined HAVE_DOS_BASED_FILE_SYSTEM
- /* Skip over the disk name in MSDOS pathnames. */
- if (isalpha ((unsigned char) name[0]) && name[1] == ':')
- name += 2;
-#endif
-
- for (base = name; *name; name++)
- if (IS_DIR_SEPARATOR (*name))
- base = name + 1;
- return base;
-}
-
-int
-check_executable (const char *path)
-{
- struct stat st;
-
- lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
- nonempty (path));
- if ((!path) || (!*path))
- return 0;
-
- if ((stat (path, &st) >= 0)
- && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
- return 1;
- else
- return 0;
-}
-
-int
-make_executable (const char *path)
-{
- int rval = 0;
- struct stat st;
-
- lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
- nonempty (path));
- if ((!path) || (!*path))
- return 0;
-
- if (stat (path, &st) >= 0)
- {
- rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
- }
- return rval;
-}
-
-/* Searches for the full path of the wrapper. Returns
- newly allocated full path name if found, NULL otherwise
- Does not chase symlinks, even on platforms that support them.
-*/
-char *
-find_executable (const char *wrapper)
-{
- int has_slash = 0;
- const char *p;
- const char *p_next;
- /* static buffer for getcwd */
- char tmp[LT_PATHMAX + 1];
- size_t tmp_len;
- char *concat_name;
-
- lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
- nonempty (wrapper));
-
- if ((wrapper == NULL) || (*wrapper == '\0'))
- return NULL;
-
- /* Absolute path? */
-#if defined HAVE_DOS_BASED_FILE_SYSTEM
- if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
- {
- concat_name = xstrdup (wrapper);
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
- else
- {
-#endif
- if (IS_DIR_SEPARATOR (wrapper[0]))
- {
- concat_name = xstrdup (wrapper);
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
-#if defined HAVE_DOS_BASED_FILE_SYSTEM
- }
-#endif
-
- for (p = wrapper; *p; p++)
- if (*p == '/')
- {
- has_slash = 1;
- break;
- }
- if (!has_slash)
- {
- /* no slashes; search PATH */
- const char *path = getenv ("PATH");
- if (path != NULL)
- {
- for (p = path; *p; p = p_next)
- {
- const char *q;
- size_t p_len;
- for (q = p; *q; q++)
- if (IS_PATH_SEPARATOR (*q))
- break;
- p_len = (size_t) (q - p);
- p_next = (*q == '\0' ? q : q + 1);
- if (p_len == 0)
- {
- /* empty path: current directory */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
- nonnull (strerror (errno)));
- tmp_len = strlen (tmp);
- concat_name =
- XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
- concat_name[tmp_len] = '/';
- strcpy (concat_name + tmp_len + 1, wrapper);
- }
- else
- {
- concat_name =
- XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, p, p_len);
- concat_name[p_len] = '/';
- strcpy (concat_name + p_len + 1, wrapper);
- }
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
- }
- /* not found in PATH; assume curdir */
- }
- /* Relative path | not found in path: prepend cwd */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
- nonnull (strerror (errno)));
- tmp_len = strlen (tmp);
- concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
- concat_name[tmp_len] = '/';
- strcpy (concat_name + tmp_len + 1, wrapper);
-
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- return NULL;
-}
-
-char *
-chase_symlinks (const char *pathspec)
-{
-#ifndef S_ISLNK
- return xstrdup (pathspec);
-#else
- char buf[LT_PATHMAX];
- struct stat s;
- char *tmp_pathspec = xstrdup (pathspec);
- char *p;
- int has_symlinks = 0;
- while (strlen (tmp_pathspec) && !has_symlinks)
- {
- lt_debugprintf (__FILE__, __LINE__,
- "checking path component for symlinks: %s\n",
- tmp_pathspec);
- if (lstat (tmp_pathspec, &s) == 0)
- {
- if (S_ISLNK (s.st_mode) != 0)
- {
- has_symlinks = 1;
- break;
- }
-
- /* search backwards for last DIR_SEPARATOR */
- p = tmp_pathspec + strlen (tmp_pathspec) - 1;
- while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
- p--;
- if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
- {
- /* no more DIR_SEPARATORS left */
- break;
- }
- *p = '\0';
- }
- else
- {
- lt_fatal (__FILE__, __LINE__,
- "error accessing file \"%s\": %s",
- tmp_pathspec, nonnull (strerror (errno)));
- }
- }
- XFREE (tmp_pathspec);
-
- if (!has_symlinks)
- {
- return xstrdup (pathspec);
- }
-
- tmp_pathspec = realpath (pathspec, buf);
- if (tmp_pathspec == 0)
- {
- lt_fatal (__FILE__, __LINE__,
- "could not follow symlinks for %s", pathspec);
- }
- return xstrdup (tmp_pathspec);
-#endif
-}
-
-char *
-strendzap (char *str, const char *pat)
-{
- size_t len, patlen;
-
- assert (str != NULL);
- assert (pat != NULL);
-
- len = strlen (str);
- patlen = strlen (pat);
-
- if (patlen <= len)
- {
- str += len - patlen;
- if (STREQ (str, pat))
- *str = '\0';
- }
- return str;
-}
-
-void
-lt_debugprintf (const char *file, int line, const char *fmt, ...)
-{
- va_list args;
- if (lt_debug)
- {
- (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
- va_start (args, fmt);
- (void) vfprintf (stderr, fmt, args);
- va_end (args);
- }
-}
-
-static void
-lt_error_core (int exit_status, const char *file,
- int line, const char *mode,
- const char *message, va_list ap)
-{
- fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
- vfprintf (stderr, message, ap);
- fprintf (stderr, ".\n");
-
- if (exit_status >= 0)
- exit (exit_status);
-}
-
-void
-lt_fatal (const char *file, int line, const char *message, ...)
-{
- va_list ap;
- va_start (ap, message);
- lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
- va_end (ap);
-}
-
-static const char *
-nonnull (const char *s)
-{
- return s ? s : "(null)";
-}
-
-static const char *
-nonempty (const char *s)
-{
- return (s && !*s) ? "(empty)" : nonnull (s);
-}
-
-void
-lt_setenv (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_setenv) setting '%s' to '%s'\n",
- nonnull (name), nonnull (value));
- {
-#ifdef HAVE_SETENV
- /* always make a copy, for consistency with !HAVE_SETENV */
- char *str = xstrdup (value);
- setenv (name, str, 1);
-#else
- size_t len = strlen (name) + 1 + strlen (value) + 1;
- char *str = XMALLOC (char, len);
- sprintf (str, "%s=%s", name, value);
- if (putenv (str) != EXIT_SUCCESS)
- {
- XFREE (str);
- }
-#endif
- }
-}
-
-char *
-lt_extend_str (const char *orig_value, const char *add, int to_end)
-{
- char *new_value;
- if (orig_value && *orig_value)
- {
- size_t orig_value_len = strlen (orig_value);
- size_t add_len = strlen (add);
- new_value = XMALLOC (char, add_len + orig_value_len + 1);
- if (to_end)
- {
- strcpy (new_value, orig_value);
- strcpy (new_value + orig_value_len, add);
- }
- else
- {
- strcpy (new_value, add);
- strcpy (new_value + add_len, orig_value);
- }
- }
- else
- {
- new_value = xstrdup (add);
- }
- return new_value;
-}
-
-void
-lt_update_exe_path (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
- nonnull (name), nonnull (value));
-
- if (name && *name && value && *value)
- {
- char *new_value = lt_extend_str (getenv (name), value, 0);
- /* some systems can't cope with a ':'-terminated path #' */
- size_t len = strlen (new_value);
- while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
- {
- new_value[--len] = '\0';
- }
- lt_setenv (name, new_value);
- XFREE (new_value);
- }
-}
-
-void
-lt_update_lib_path (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
- nonnull (name), nonnull (value));
-
- if (name && *name && value && *value)
- {
- char *new_value = lt_extend_str (getenv (name), value, 0);
- lt_setenv (name, new_value);
- XFREE (new_value);
- }
-}
-
-EOF
- case $host_os in
- mingw*)
- cat <<"EOF"
-
-/* Prepares an argument vector before calling spawn().
- Note that spawn() does not by itself call the command interpreter
- (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
- ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- GetVersionEx(&v);
- v.dwPlatformId == VER_PLATFORM_WIN32_NT;
- }) ? "cmd.exe" : "command.com").
- Instead it simply concatenates the arguments, separated by ' ', and calls
- CreateProcess(). We must quote the arguments since Win32 CreateProcess()
- interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
- special way:
- - Space and tab are interpreted as delimiters. They are not treated as
- delimiters if they are surrounded by double quotes: "...".
- - Unescaped double quotes are removed from the input. Their only effect is
- that within double quotes, space and tab are treated like normal
- characters.
- - Backslashes not followed by double quotes are not special.
- - But 2*n+1 backslashes followed by a double quote become
- n backslashes followed by a double quote (n >= 0):
- \" -> "
- \\\" -> \"
- \\\\\" -> \\"
- */
-#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-char **
-prepare_spawn (char **argv)
-{
- size_t argc;
- char **new_argv;
- size_t i;
-
- /* Count number of arguments. */
- for (argc = 0; argv[argc] != NULL; argc++)
- ;
-
- /* Allocate new argument vector. */
- new_argv = XMALLOC (char *, argc + 1);
-
- /* Put quoted arguments into the new argument vector. */
- for (i = 0; i < argc; i++)
- {
- const char *string = argv[i];
-
- if (string[0] == '\0')
- new_argv[i] = xstrdup ("\"\"");
- else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
- {
- int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
- size_t length;
- unsigned int backslashes;
- const char *s;
- char *quoted_string;
- char *p;
-
- length = 0;
- backslashes = 0;
- if (quote_around)
- length++;
- for (s = string; *s != '\0'; s++)
- {
- char c = *s;
- if (c == '"')
- length += backslashes + 1;
- length++;
- if (c == '\\')
- backslashes++;
- else
- backslashes = 0;
- }
- if (quote_around)
- length += backslashes + 1;
-
- quoted_string = XMALLOC (char, length + 1);
-
- p = quoted_string;
- backslashes = 0;
- if (quote_around)
- *p++ = '"';
- for (s = string; *s != '\0'; s++)
- {
- char c = *s;
- if (c == '"')
- {
- unsigned int j;
- for (j = backslashes + 1; j > 0; j--)
- *p++ = '\\';
- }
- *p++ = c;
- if (c == '\\')
- backslashes++;
- else
- backslashes = 0;
- }
- if (quote_around)
- {
- unsigned int j;
- for (j = backslashes; j > 0; j--)
- *p++ = '\\';
- *p++ = '"';
- }
- *p = '\0';
-
- new_argv[i] = quoted_string;
- }
- else
- new_argv[i] = (char *) string;
- }
- new_argv[argc] = NULL;
-
- return new_argv;
-}
-EOF
- ;;
- esac
-
- cat <<"EOF"
-void lt_dump_script (FILE* f)
-{
-EOF
- func_emit_wrapper yes |
- $SED -n -e '
-s/^\(.\{79\}\)\(..*\)/\1\
-\2/
-h
-s/\([\\"]\)/\\\1/g
-s/$/\\n/
-s/\([^\n]*\).*/ fputs ("\1", f);/p
-g
-D'
- cat <<"EOF"
-}
-EOF
-}
-# end: func_emit_cwrapperexe_src
-
-# func_win32_import_lib_p ARG
-# True if ARG is an import lib, as indicated by $file_magic_cmd
-func_win32_import_lib_p ()
-{
- $debug_cmd
-
- case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
- *import*) : ;;
- *) false ;;
- esac
-}
-
-# func_suncc_cstd_abi
-# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!!
-# Several compiler flags select an ABI that is incompatible with the
-# Cstd library. Avoid specifying it if any are in CXXFLAGS.
-func_suncc_cstd_abi ()
-{
- $debug_cmd
-
- case " $compile_command " in
- *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*)
- suncc_use_cstd_abi=no
- ;;
- *)
- suncc_use_cstd_abi=yes
- ;;
- esac
-}
-
-# func_mode_link arg...
-func_mode_link ()
-{
- $debug_cmd
-
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- # It is impossible to link a dll without this setting, and
- # we shouldn't force the makefile maintainer to figure out
- # what system we are compiling for in order to pass an extra
- # flag for every libtool invocation.
- # allow_undefined=no
-
- # FIXME: Unfortunately, there are problems with the above when trying
- # to make a dll that has undefined symbols, in which case not
- # even a static library is built. For now, we need to specify
- # -no-undefined on the libtool link line when we can be certain
- # that all symbols are satisfied, otherwise we get a static library.
- allow_undefined=yes
- ;;
- *)
- allow_undefined=yes
- ;;
- esac
- libtool_args=$nonopt
- base_compile="$nonopt $@"
- compile_command=$nonopt
- finalize_command=$nonopt
-
- compile_rpath=
- finalize_rpath=
- compile_shlibpath=
- finalize_shlibpath=
- convenience=
- old_convenience=
- deplibs=
- old_deplibs=
- compiler_flags=
- linker_flags=
- dllsearchpath=
- lib_search_path=`pwd`
- inst_prefix_dir=
- new_inherited_linker_flags=
-
- avoid_version=no
- bindir=
- dlfiles=
- dlprefiles=
- dlself=no
- export_dynamic=no
- export_symbols=
- export_symbols_regex=
- generated=
- libobjs=
- ltlibs=
- module=no
- no_install=no
- objs=
- os2dllname=
- non_pic_objects=
- precious_files_regex=
- prefer_static_libs=no
- preload=false
- prev=
- prevarg=
- release=
- rpath=
- xrpath=
- perm_rpath=
- temp_rpath=
- thread_safe=no
- vinfo=
- vinfo_number=no
- weak_libs=
- single_module=$wl-single_module
- func_infer_tag $base_compile
-
- # We need to know -static, to get the right output filenames.
- for arg
- do
- case $arg in
- -shared)
- test yes != "$build_libtool_libs" \
- && func_fatal_configuration "cannot build a shared library"
- build_old_libs=no
- break
- ;;
- -all-static | -static | -static-libtool-libs)
- case $arg in
- -all-static)
- if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then
- func_warning "complete static linking is impossible in this configuration"
- fi
- if test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- -static)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=built
- ;;
- -static-libtool-libs)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- esac
- build_libtool_libs=no
- build_old_libs=yes
- break
- ;;
- esac
- done
-
- # See if our shared archives depend on static archives.
- test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
- # Go through the arguments, transforming them on the way.
- while test "$#" -gt 0; do
- arg=$1
- shift
- func_quote_for_eval "$arg"
- qarg=$func_quote_for_eval_unquoted_result
- func_append libtool_args " $func_quote_for_eval_result"
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- case $prev in
- output)
- func_append compile_command " @OUTPUT@"
- func_append finalize_command " @OUTPUT@"
- ;;
- esac
-
- case $prev in
- bindir)
- bindir=$arg
- prev=
- continue
- ;;
- dlfiles|dlprefiles)
- $preload || {
- # Add the symbol object into the linking commands.
- func_append compile_command " @SYMFILE@"
- func_append finalize_command " @SYMFILE@"
- preload=:
- }
- case $arg in
- *.la | *.lo) ;; # We handle these cases below.
- force)
- if test no = "$dlself"; then
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- self)
- if test dlprefiles = "$prev"; then
- dlself=yes
- elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then
- dlself=yes
- else
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- *)
- if test dlfiles = "$prev"; then
- func_append dlfiles " $arg"
- else
- func_append dlprefiles " $arg"
- fi
- prev=
- continue
- ;;
- esac
- ;;
- expsyms)
- export_symbols=$arg
- test -f "$arg" \
- || func_fatal_error "symbol file '$arg' does not exist"
- prev=
- continue
- ;;
- expsyms_regex)
- export_symbols_regex=$arg
- prev=
- continue
- ;;
- framework)
- case $host in
- *-*-darwin*)
- case "$deplibs " in
- *" $qarg.ltframework "*) ;;
- *) func_append deplibs " $qarg.ltframework" # this is fixed later
- ;;
- esac
- ;;
- esac
- prev=
- continue
- ;;
- inst_prefix)
- inst_prefix_dir=$arg
- prev=
- continue
- ;;
- mllvm)
- # Clang does not use LLVM to link, so we can simply discard any
- # '-mllvm $arg' options when doing the link step.
- prev=
- continue
- ;;
- objectlist)
- if test -f "$arg"; then
- save_arg=$arg
- moreargs=
- for fil in `cat "$save_arg"`
- do
-# func_append moreargs " $fil"
- arg=$fil
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if func_lalib_unsafe_p "$arg"; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- func_source "$arg"
-
- if test -z "$pic_object" ||
- test -z "$non_pic_object" ||
- test none = "$pic_object" &&
- test none = "$non_pic_object"; then
- func_fatal_error "cannot find name of object for '$arg'"
- fi
-
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir=$func_dirname_result
-
- if test none != "$pic_object"; then
- # Prepend the subdirectory the object is found in.
- pic_object=$xdir$pic_object
-
- if test dlfiles = "$prev"; then
- if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
- func_append dlfiles " $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test dlprefiles = "$prev"; then
- # Preload the old-style object.
- func_append dlprefiles " $pic_object"
- prev=
- fi
-
- # A PIC object.
- func_append libobjs " $pic_object"
- arg=$pic_object
- fi
-
- # Non-PIC object.
- if test none != "$non_pic_object"; then
- # Prepend the subdirectory the object is found in.
- non_pic_object=$xdir$non_pic_object
-
- # A standard non-PIC object
- func_append non_pic_objects " $non_pic_object"
- if test -z "$pic_object" || test none = "$pic_object"; then
- arg=$non_pic_object
- fi
- else
- # If the PIC object exists, use it instead.
- # $xdir was prepended to $pic_object above.
- non_pic_object=$pic_object
- func_append non_pic_objects " $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if $opt_dry_run; then
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir=$func_dirname_result
-
- func_lo2o "$arg"
- pic_object=$xdir$objdir/$func_lo2o_result
- non_pic_object=$xdir$func_lo2o_result
- func_append libobjs " $pic_object"
- func_append non_pic_objects " $non_pic_object"
- else
- func_fatal_error "'$arg' is not a valid libtool object"
- fi
- fi
- done
- else
- func_fatal_error "link input file '$arg' does not exist"
- fi
- arg=$save_arg
- prev=
- continue
- ;;
- os2dllname)
- os2dllname=$arg
- prev=
- continue
- ;;
- precious_regex)
- precious_files_regex=$arg
- prev=
- continue
- ;;
- release)
- release=-$arg
- prev=
- continue
- ;;
- rpath | xrpath)
- # We need an absolute path.
- case $arg in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- if test rpath = "$prev"; then
- case "$rpath " in
- *" $arg "*) ;;
- *) func_append rpath " $arg" ;;
- esac
- else
- case "$xrpath " in
- *" $arg "*) ;;
- *) func_append xrpath " $arg" ;;
- esac
- fi
- prev=
- continue
- ;;
- shrext)
- shrext_cmds=$arg
- prev=
- continue
- ;;
- weak)
- func_append weak_libs " $arg"
- prev=
- continue
- ;;
- xcclinker)
- func_append linker_flags " $qarg"
- func_append compiler_flags " $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xcompiler)
- func_append compiler_flags " $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xlinker)
- func_append linker_flags " $qarg"
- func_append compiler_flags " $wl$qarg"
- prev=
- func_append compile_command " $wl$qarg"
- func_append finalize_command " $wl$qarg"
- continue
- ;;
- *)
- eval "$prev=\"\$arg\""
- prev=
- continue
- ;;
- esac
- fi # test -n "$prev"
-
- prevarg=$arg
-
- case $arg in
- -all-static)
- if test -n "$link_static_flag"; then
- # See comment for -static flag below, for more details.
- func_append compile_command " $link_static_flag"
- func_append finalize_command " $link_static_flag"
- fi
- continue
- ;;
-
- -allow-undefined)
- # FIXME: remove this flag sometime in the future.
- func_fatal_error "'-allow-undefined' must not be used because it is the default"
- ;;
-
- -avoid-version)
- avoid_version=yes
- continue
- ;;
-
- -bindir)
- prev=bindir
- continue
- ;;
-
- -dlopen)
- prev=dlfiles
- continue
- ;;
-
- -dlpreopen)
- prev=dlprefiles
- continue
- ;;
-
- -export-dynamic)
- export_dynamic=yes
- continue
- ;;
-
- -export-symbols | -export-symbols-regex)
- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
- func_fatal_error "more than one -exported-symbols argument is not allowed"
- fi
- if test X-export-symbols = "X$arg"; then
- prev=expsyms
- else
- prev=expsyms_regex
- fi
- continue
- ;;
-
- -framework)
- prev=framework
- continue
- ;;
-
- -inst-prefix-dir)
- prev=inst_prefix
- continue
- ;;
-
- # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
- # so, if we see these flags be careful not to treat them like -L
- -L[A-Z][A-Z]*:*)
- case $with_gcc/$host in
- no/*-*-irix* | /*-*-irix*)
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- ;;
- esac
- continue
- ;;
-
- -L*)
- func_stripname "-L" '' "$arg"
- if test -z "$func_stripname_result"; then
- if test "$#" -gt 0; then
- func_fatal_error "require no space between '-L' and '$1'"
- else
- func_fatal_error "need path for '-L' option"
- fi
- fi
- func_resolve_sysroot "$func_stripname_result"
- dir=$func_resolve_sysroot_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- absdir=`cd "$dir" && pwd`
- test -z "$absdir" && \
- func_fatal_error "cannot determine absolute directory name of '$dir'"
- dir=$absdir
- ;;
- esac
- case "$deplibs " in
- *" -L$dir "* | *" $arg "*)
- # Will only happen for absolute or sysroot arguments
- ;;
- *)
- # Preserve sysroot, but never include relative directories
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
- *) func_append deplibs " -L$dir" ;;
- esac
- func_append lib_search_path " $dir"
- ;;
- esac
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$dir:"*) ;;
- ::) dllsearchpath=$dir;;
- *) func_append dllsearchpath ":$dir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
- *) func_append dllsearchpath ":$testbindir";;
- esac
- ;;
- esac
- continue
- ;;
-
- -l*)
- if test X-lc = "X$arg" || test X-lm = "X$arg"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
- # These systems don't actually have a C or math library (as such)
- continue
- ;;
- *-*-os2*)
- # These systems don't actually have a C library (as such)
- test X-lc = "X$arg" && continue
- ;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
- # Do not include libc due to us having libc/libc_r.
- test X-lc = "X$arg" && continue
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C and math libraries are in the System framework
- func_append deplibs " System.ltframework"
- continue
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
- # Causes problems with __ctype
- test X-lc = "X$arg" && continue
- ;;
- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
- # Compiler inserts libc in the correct place for threads to work
- test X-lc = "X$arg" && continue
- ;;
- esac
- elif test X-lc_r = "X$arg"; then
- case $host in
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
- # Do not include libc_r directly, use -pthread flag.
- continue
- ;;
- esac
- fi
- func_append deplibs " $arg"
- continue
- ;;
-
- -mllvm)
- prev=mllvm
- continue
- ;;
-
- -module)
- module=yes
- continue
- ;;
-
- # Tru64 UNIX uses -model [arg] to determine the layout of C++
- # classes, name mangling, and exception handling.
- # Darwin uses the -arch flag to determine output architecture.
- -model|-arch|-isysroot|--sysroot)
- func_append compiler_flags " $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- prev=xcompiler
- continue
- ;;
-
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
- |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
- func_append compiler_flags " $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- case "$new_inherited_linker_flags " in
- *" $arg "*) ;;
- * ) func_append new_inherited_linker_flags " $arg" ;;
- esac
- continue
- ;;
-
- -multi_module)
- single_module=$wl-multi_module
- continue
- ;;
-
- -no-fast-install)
- fast_install=no
- continue
- ;;
-
- -no-install)
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
- # The PATH hackery in wrapper scripts is required on Windows
- # and Darwin in order for the loader to find any dlls it needs.
- func_warning "'-no-install' is ignored for $host"
- func_warning "assuming '-no-fast-install' instead"
- fast_install=no
- ;;
- *) no_install=yes ;;
- esac
- continue
- ;;
-
- -no-undefined)
- allow_undefined=no
- continue
- ;;
-
- -objectlist)
- prev=objectlist
- continue
- ;;
-
- -os2dllname)
- prev=os2dllname
- continue
- ;;
-
- -o) prev=output ;;
-
- -precious-files-regex)
- prev=precious_regex
- continue
- ;;
-
- -release)
- prev=release
- continue
- ;;
-
- -rpath)
- prev=rpath
- continue
- ;;
-
- -R)
- prev=xrpath
- continue
- ;;
-
- -R*)
- func_stripname '-R' '' "$arg"
- dir=$func_stripname_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- =*)
- func_stripname '=' '' "$dir"
- dir=$lt_sysroot$func_stripname_result
- ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- case "$xrpath " in
- *" $dir "*) ;;
- *) func_append xrpath " $dir" ;;
- esac
- continue
- ;;
-
- -shared)
- # The effects of -shared are defined in a previous loop.
- continue
- ;;
-
- -shrext)
- prev=shrext
- continue
- ;;
-
- -static | -static-libtool-libs)
- # The effects of -static are defined in a previous loop.
- # We used to do the same as -all-static on platforms that
- # didn't have a PIC flag, but the assumption that the effects
- # would be equivalent was wrong. It would break on at least
- # Digital Unix and AIX.
- continue
- ;;
-
- -thread-safe)
- thread_safe=yes
- continue
- ;;
-
- -version-info)
- prev=vinfo
- continue
- ;;
-
- -version-number)
- prev=vinfo
- vinfo_number=yes
- continue
- ;;
-
- -weak)
- prev=weak
- continue
- ;;
-
- -Wc,*)
- func_stripname '-Wc,' '' "$arg"
- args=$func_stripname_result
- arg=
- save_ifs=$IFS; IFS=,
- for flag in $args; do
- IFS=$save_ifs
- func_quote_for_eval "$flag"
- func_append arg " $func_quote_for_eval_result"
- func_append compiler_flags " $func_quote_for_eval_result"
- done
- IFS=$save_ifs
- func_stripname ' ' '' "$arg"
- arg=$func_stripname_result
- ;;
-
- -Wl,*)
- func_stripname '-Wl,' '' "$arg"
- args=$func_stripname_result
- arg=
- save_ifs=$IFS; IFS=,
- for flag in $args; do
- IFS=$save_ifs
- func_quote_for_eval "$flag"
- func_append arg " $wl$func_quote_for_eval_result"
- func_append compiler_flags " $wl$func_quote_for_eval_result"
- func_append linker_flags " $func_quote_for_eval_result"
- done
- IFS=$save_ifs
- func_stripname ' ' '' "$arg"
- arg=$func_stripname_result
- ;;
-
- -Xcompiler)
- prev=xcompiler
- continue
- ;;
-
- -Xlinker)
- prev=xlinker
- continue
- ;;
-
- -XCClinker)
- prev=xcclinker
- continue
- ;;
-
- # -msg_* for osf cc
- -msg_*)
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
- ;;
-
- # Flags to be passed through unchanged, with rationale:
- # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
- # -r[0-9][0-9]* specify processor for the SGI compiler
- # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
- # +DA*, +DD* enable 64-bit mode for the HP compiler
- # -q* compiler args for the IBM compiler
- # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
- # -F/path path to uninstalled frameworks, gcc on darwin
- # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
- # -fstack-protector* stack protector flags for GCC
- # @file GCC response files
- # -tp=* Portland pgcc target processor selection
- # --sysroot=* for sysroot support
- # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
- # -stdlib=* select c++ std lib with clang
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
- -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- func_append compiler_flags " $arg"
- continue
- ;;
-
- -Z*)
- if test os2 = "`expr $host : '.*\(os2\)'`"; then
- # OS/2 uses -Zxxx to specify OS/2-specific options
- compiler_flags="$compiler_flags $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- case $arg in
- -Zlinker | -Zstack)
- prev=xcompiler
- ;;
- esac
- continue
- else
- # Otherwise treat like 'Some other compiler flag' below
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
- fi
- ;;
-
- # Some other compiler flag.
- -* | +*)
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
- ;;
-
- *.$objext)
- # A standard object.
- func_append objs " $arg"
- ;;
-
- *.lo)
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if func_lalib_unsafe_p "$arg"; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- func_source "$arg"
-
- if test -z "$pic_object" ||
- test -z "$non_pic_object" ||
- test none = "$pic_object" &&
- test none = "$non_pic_object"; then
- func_fatal_error "cannot find name of object for '$arg'"
- fi
-
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir=$func_dirname_result
-
- test none = "$pic_object" || {
- # Prepend the subdirectory the object is found in.
- pic_object=$xdir$pic_object
-
- if test dlfiles = "$prev"; then
- if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
- func_append dlfiles " $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test dlprefiles = "$prev"; then
- # Preload the old-style object.
- func_append dlprefiles " $pic_object"
- prev=
- fi
-
- # A PIC object.
- func_append libobjs " $pic_object"
- arg=$pic_object
- }
-
- # Non-PIC object.
- if test none != "$non_pic_object"; then
- # Prepend the subdirectory the object is found in.
- non_pic_object=$xdir$non_pic_object
-
- # A standard non-PIC object
- func_append non_pic_objects " $non_pic_object"
- if test -z "$pic_object" || test none = "$pic_object"; then
- arg=$non_pic_object
- fi
- else
- # If the PIC object exists, use it instead.
- # $xdir was prepended to $pic_object above.
- non_pic_object=$pic_object
- func_append non_pic_objects " $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if $opt_dry_run; then
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir=$func_dirname_result
-
- func_lo2o "$arg"
- pic_object=$xdir$objdir/$func_lo2o_result
- non_pic_object=$xdir$func_lo2o_result
- func_append libobjs " $pic_object"
- func_append non_pic_objects " $non_pic_object"
- else
- func_fatal_error "'$arg' is not a valid libtool object"
- fi
- fi
- ;;
-
- *.$libext)
- # An archive.
- func_append deplibs " $arg"
- func_append old_deplibs " $arg"
- continue
- ;;
-
- *.la)
- # A libtool-controlled library.
-
- func_resolve_sysroot "$arg"
- if test dlfiles = "$prev"; then
- # This library was specified with -dlopen.
- func_append dlfiles " $func_resolve_sysroot_result"
- prev=
- elif test dlprefiles = "$prev"; then
- # The library was specified with -dlpreopen.
- func_append dlprefiles " $func_resolve_sysroot_result"
- prev=
- else
- func_append deplibs " $func_resolve_sysroot_result"
- fi
- continue
- ;;
-
- # Some other compiler argument.
- *)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
- ;;
- esac # arg
-
- # Now actually substitute the argument into the commands.
- if test -n "$arg"; then
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
- done # argument parsing loop
-
- test -n "$prev" && \
- func_fatal_help "the '$prevarg' option requires an argument"
-
- if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then
- eval arg=\"$export_dynamic_flag_spec\"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
-
- oldlibs=
- # calculate the name of the file, without its directory
- func_basename "$output"
- outputname=$func_basename_result
- libobjs_save=$libobjs
-
- if test -n "$shlibpath_var"; then
- # get the directories listed in $shlibpath_var
- eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\`
- else
- shlib_search_path=
- fi
- eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
- eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
- # Definition is injected by LT_CONFIG during libtool generation.
- func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH"
-
- func_dirname "$output" "/" ""
- output_objdir=$func_dirname_result$objdir
- func_to_tool_file "$output_objdir/"
- tool_output_objdir=$func_to_tool_file_result
- # Create the object directory.
- func_mkdir_p "$output_objdir"
-
- # Determine the type of output
- case $output in
- "")
- func_fatal_help "you must specify an output file"
- ;;
- *.$libext) linkmode=oldlib ;;
- *.lo | *.$objext) linkmode=obj ;;
- *.la) linkmode=lib ;;
- *) linkmode=prog ;; # Anything else should be a program.
- esac
-
- specialdeplibs=
-
- libs=
- # Find all interdependent deplibs by searching for libraries
- # that are linked more than once (e.g. -la -lb -la)
- for deplib in $deplibs; do
- if $opt_preserve_dup_deps; then
- case "$libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append libs " $deplib"
- done
-
- if test lib = "$linkmode"; then
- libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
- # Compute libraries that are listed more than once in $predeps
- # $postdeps and mark them as special (i.e., whose duplicates are
- # not to be eliminated).
- pre_post_deps=
- if $opt_duplicate_compiler_generated_deps; then
- for pre_post_dep in $predeps $postdeps; do
- case "$pre_post_deps " in
- *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
- esac
- func_append pre_post_deps " $pre_post_dep"
- done
- fi
- pre_post_deps=
- fi
-
- deplibs=
- newdependency_libs=
- newlib_search_path=
- need_relink=no # whether we're linking any uninstalled libtool libraries
- notinst_deplibs= # not-installed libtool libraries
- notinst_path= # paths that contain not-installed libtool libraries
-
- case $linkmode in
- lib)
- passes="conv dlpreopen link"
- for file in $dlfiles $dlprefiles; do
- case $file in
- *.la) ;;
- *)
- func_fatal_help "libraries can '-dlopen' only libtool libraries: $file"
- ;;
- esac
- done
- ;;
- prog)
- compile_deplibs=
- finalize_deplibs=
- alldeplibs=false
- newdlfiles=
- newdlprefiles=
- passes="conv scan dlopen dlpreopen link"
- ;;
- *) passes="conv"
- ;;
- esac
-
- for pass in $passes; do
- # The preopen pass in lib mode reverses $deplibs; put it back here
- # so that -L comes before libs that need it for instance...
- if test lib,link = "$linkmode,$pass"; then
- ## FIXME: Find the place where the list is rebuilt in the wrong
- ## order, and fix it there properly
- tmp_deplibs=
- for deplib in $deplibs; do
- tmp_deplibs="$deplib $tmp_deplibs"
- done
- deplibs=$tmp_deplibs
- fi
-
- if test lib,link = "$linkmode,$pass" ||
- test prog,scan = "$linkmode,$pass"; then
- libs=$deplibs
- deplibs=
- fi
- if test prog = "$linkmode"; then
- case $pass in
- dlopen) libs=$dlfiles ;;
- dlpreopen) libs=$dlprefiles ;;
- link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
- esac
- fi
- if test lib,dlpreopen = "$linkmode,$pass"; then
- # Collect and forward deplibs of preopened libtool libs
- for lib in $dlprefiles; do
- # Ignore non-libtool-libs
- dependency_libs=
- func_resolve_sysroot "$lib"
- case $lib in
- *.la) func_source "$func_resolve_sysroot_result" ;;
- esac
-
- # Collect preopened libtool deplibs, except any this library
- # has declared as weak libs
- for deplib in $dependency_libs; do
- func_basename "$deplib"
- deplib_base=$func_basename_result
- case " $weak_libs " in
- *" $deplib_base "*) ;;
- *) func_append deplibs " $deplib" ;;
- esac
- done
- done
- libs=$dlprefiles
- fi
- if test dlopen = "$pass"; then
- # Collect dlpreopened libraries
- save_deplibs=$deplibs
- deplibs=
- fi
-
- for deplib in $libs; do
- lib=
- found=false
- case $deplib in
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
- |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
- if test prog,link = "$linkmode,$pass"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- func_append compiler_flags " $deplib"
- if test lib = "$linkmode"; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
- * ) func_append new_inherited_linker_flags " $deplib" ;;
- esac
- fi
- fi
- continue
- ;;
- -l*)
- if test lib != "$linkmode" && test prog != "$linkmode"; then
- func_warning "'-l' is ignored for archives/objects"
- continue
- fi
- func_stripname '-l' '' "$deplib"
- name=$func_stripname_result
- if test lib = "$linkmode"; then
- searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
- else
- searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
- fi
- for searchdir in $searchdirs; do
- for search_ext in .la $std_shrext .so .a; do
- # Search the libtool library
- lib=$searchdir/lib$name$search_ext
- if test -f "$lib"; then
- if test .la = "$search_ext"; then
- found=:
- else
- found=false
- fi
- break 2
- fi
- done
- done
- if $found; then
- # deplib is a libtool library
- # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
- # We need to do some special things here, and not later.
- if test yes = "$allow_libtool_libs_with_static_runtimes"; then
- case " $predeps $postdeps " in
- *" $deplib "*)
- if func_lalib_p "$lib"; then
- library_names=
- old_library=
- func_source "$lib"
- for l in $old_library $library_names; do
- ll=$l
- done
- if test "X$ll" = "X$old_library"; then # only static version available
- found=false
- func_dirname "$lib" "" "."
- ladir=$func_dirname_result
- lib=$ladir/$old_library
- if test prog,link = "$linkmode,$pass"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- fi
- fi
- ;;
- *) ;;
- esac
- fi
- else
- # deplib doesn't seem to be a libtool library
- if test prog,link = "$linkmode,$pass"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- fi
- ;; # -l
- *.ltframework)
- if test prog,link = "$linkmode,$pass"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- if test lib = "$linkmode"; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
- * ) func_append new_inherited_linker_flags " $deplib" ;;
- esac
- fi
- fi
- continue
- ;;
- -L*)
- case $linkmode in
- lib)
- deplibs="$deplib $deplibs"
- test conv = "$pass" && continue
- newdependency_libs="$deplib $newdependency_libs"
- func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- prog)
- if test conv = "$pass"; then
- deplibs="$deplib $deplibs"
- continue
- fi
- if test scan = "$pass"; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- *)
- func_warning "'-L' is ignored for archives/objects"
- ;;
- esac # linkmode
- continue
- ;; # -L
- -R*)
- if test link = "$pass"; then
- func_stripname '-R' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- dir=$func_resolve_sysroot_result
- # Make sure the xrpath contains only unique directories.
- case "$xrpath " in
- *" $dir "*) ;;
- *) func_append xrpath " $dir" ;;
- esac
- fi
- deplibs="$deplib $deplibs"
- continue
- ;;
- *.la)
- func_resolve_sysroot "$deplib"
- lib=$func_resolve_sysroot_result
- ;;
- *.$libext)
- if test conv = "$pass"; then
- deplibs="$deplib $deplibs"
- continue
- fi
- case $linkmode in
- lib)
- # Linking convenience modules into shared libraries is allowed,
- # but linking other static libraries is non-portable.
- case " $dlpreconveniencelibs " in
- *" $deplib "*) ;;
- *)
- valid_a_lib=false
- case $deplibs_check_method in
- match_pattern*)
- set dummy $deplibs_check_method; shift
- match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
- | $EGREP "$match_pattern_regex" > /dev/null; then
- valid_a_lib=:
- fi
- ;;
- pass_all)
- valid_a_lib=:
- ;;
- esac
- if $valid_a_lib; then
- echo
- $ECHO "*** Warning: Linking the shared library $output against the"
- $ECHO "*** static library $deplib is not portable!"
- deplibs="$deplib $deplibs"
- else
- echo
- $ECHO "*** Warning: Trying to link with static lib archive $deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because the file extensions .$libext of this argument makes me believe"
- echo "*** that it is just a static archive that I should not use here."
- fi
- ;;
- esac
- continue
- ;;
- prog)
- if test link != "$pass"; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- continue
- ;;
- esac # linkmode
- ;; # *.$libext
- *.lo | *.$objext)
- if test conv = "$pass"; then
- deplibs="$deplib $deplibs"
- elif test prog = "$linkmode"; then
- if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then
- # If there is no dlopen support or we're linking statically,
- # we need to preload.
- func_append newdlprefiles " $deplib"
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- func_append newdlfiles " $deplib"
- fi
- fi
- continue
- ;;
- %DEPLIBS%)
- alldeplibs=:
- continue
- ;;
- esac # case $deplib
-
- $found || test -f "$lib" \
- || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'"
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$lib" \
- || func_fatal_error "'$lib' is not a valid libtool archive"
-
- func_dirname "$lib" "" "."
- ladir=$func_dirname_result
-
- dlname=
- dlopen=
- dlpreopen=
- libdir=
- library_names=
- old_library=
- inherited_linker_flags=
- # If the library was installed with an old release of libtool,
- # it will not redefine variables installed, or shouldnotlink
- installed=yes
- shouldnotlink=no
- avoidtemprpath=
-
-
- # Read the .la file
- func_source "$lib"
-
- # Convert "-framework foo" to "foo.ltframework"
- if test -n "$inherited_linker_flags"; then
- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
- for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
- case " $new_inherited_linker_flags " in
- *" $tmp_inherited_linker_flag "*) ;;
- *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
- esac
- done
- fi
- dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- if test lib,link = "$linkmode,$pass" ||
- test prog,scan = "$linkmode,$pass" ||
- { test prog != "$linkmode" && test lib != "$linkmode"; }; then
- test -n "$dlopen" && func_append dlfiles " $dlopen"
- test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
- fi
-
- if test conv = "$pass"; then
- # Only check for convenience libraries
- deplibs="$lib $deplibs"
- if test -z "$libdir"; then
- if test -z "$old_library"; then
- func_fatal_error "cannot find name of link library for '$lib'"
- fi
- # It is a libtool convenience library, so add in its objects.
- func_append convenience " $ladir/$objdir/$old_library"
- func_append old_convenience " $ladir/$objdir/$old_library"
- elif test prog != "$linkmode" && test lib != "$linkmode"; then
- func_fatal_error "'$lib' is not a convenience library"
- fi
- tmp_libs=
- for deplib in $dependency_libs; do
- deplibs="$deplib $deplibs"
- if $opt_preserve_dup_deps; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done
- continue
- fi # $pass = conv
-
-
- # Get the name of the library we link against.
- linklib=
- if test -n "$old_library" &&
- { test yes = "$prefer_static_libs" ||
- test built,no = "$prefer_static_libs,$installed"; }; then
- linklib=$old_library
- else
- for l in $old_library $library_names; do
- linklib=$l
- done
- fi
- if test -z "$linklib"; then
- func_fatal_error "cannot find name of link library for '$lib'"
- fi
-
- # This library was specified with -dlopen.
- if test dlopen = "$pass"; then
- test -z "$libdir" \
- && func_fatal_error "cannot -dlopen a convenience library: '$lib'"
- if test -z "$dlname" ||
- test yes != "$dlopen_support" ||
- test no = "$build_libtool_libs"
- then
- # If there is no dlname, no dlopen support or we're linking
- # statically, we need to preload. We also need to preload any
- # dependent libraries so libltdl's deplib preloader doesn't
- # bomb out in the load deplibs phase.
- func_append dlprefiles " $lib $dependency_libs"
- else
- func_append newdlfiles " $lib"
- fi
- continue
- fi # $pass = dlopen
-
- # We need an absolute path.
- case $ladir in
- [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;;
- *)
- abs_ladir=`cd "$ladir" && pwd`
- if test -z "$abs_ladir"; then
- func_warning "cannot determine absolute directory name of '$ladir'"
- func_warning "passing it literally to the linker, although it might fail"
- abs_ladir=$ladir
- fi
- ;;
- esac
- func_basename "$lib"
- laname=$func_basename_result
-
- # Find the relevant object directory and library name.
- if test yes = "$installed"; then
- if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- func_warning "library '$lib' was moved."
- dir=$ladir
- absdir=$abs_ladir
- libdir=$abs_ladir
- else
- dir=$lt_sysroot$libdir
- absdir=$lt_sysroot$libdir
- fi
- test yes = "$hardcode_automatic" && avoidtemprpath=yes
- else
- if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- dir=$ladir
- absdir=$abs_ladir
- # Remove this search path later
- func_append notinst_path " $abs_ladir"
- else
- dir=$ladir/$objdir
- absdir=$abs_ladir/$objdir
- # Remove this search path later
- func_append notinst_path " $abs_ladir"
- fi
- fi # $installed = yes
- func_stripname 'lib' '.la' "$laname"
- name=$func_stripname_result
-
- # This library was specified with -dlpreopen.
- if test dlpreopen = "$pass"; then
- if test -z "$libdir" && test prog = "$linkmode"; then
- func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'"
- fi
- case $host in
- # special handling for platforms with PE-DLLs.
- *cygwin* | *mingw* | *cegcc* )
- # Linker will automatically link against shared library if both
- # static and shared are present. Therefore, ensure we extract
- # symbols from the import library if a shared library is present
- # (otherwise, the dlopen module name will be incorrect). We do
- # this by putting the import library name into $newdlprefiles.
- # We recover the dlopen module name by 'saving' the la file
- # name in a special purpose variable, and (later) extracting the
- # dlname from the la file.
- if test -n "$dlname"; then
- func_tr_sh "$dir/$linklib"
- eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
- func_append newdlprefiles " $dir/$linklib"
- else
- func_append newdlprefiles " $dir/$old_library"
- # Keep a list of preopened convenience libraries to check
- # that they are being used correctly in the link pass.
- test -z "$libdir" && \
- func_append dlpreconveniencelibs " $dir/$old_library"
- fi
- ;;
- * )
- # Prefer using a static library (so that no silly _DYNAMIC symbols
- # are required to link).
- if test -n "$old_library"; then
- func_append newdlprefiles " $dir/$old_library"
- # Keep a list of preopened convenience libraries to check
- # that they are being used correctly in the link pass.
- test -z "$libdir" && \
- func_append dlpreconveniencelibs " $dir/$old_library"
- # Otherwise, use the dlname, so that lt_dlopen finds it.
- elif test -n "$dlname"; then
- func_append newdlprefiles " $dir/$dlname"
- else
- func_append newdlprefiles " $dir/$linklib"
- fi
- ;;
- esac
- fi # $pass = dlpreopen
-
- if test -z "$libdir"; then
- # Link the convenience library
- if test lib = "$linkmode"; then
- deplibs="$dir/$old_library $deplibs"
- elif test prog,link = "$linkmode,$pass"; then
- compile_deplibs="$dir/$old_library $compile_deplibs"
- finalize_deplibs="$dir/$old_library $finalize_deplibs"
- else
- deplibs="$lib $deplibs" # used for prog,scan pass
- fi
- continue
- fi
-
-
- if test prog = "$linkmode" && test link != "$pass"; then
- func_append newlib_search_path " $ladir"
- deplibs="$lib $deplibs"
-
- linkalldeplibs=false
- if test no != "$link_all_deplibs" || test -z "$library_names" ||
- test no = "$build_libtool_libs"; then
- linkalldeplibs=:
- fi
-
- tmp_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- -L*) func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- esac
- # Need to link against all dependency_libs?
- if $linkalldeplibs; then
- deplibs="$deplib $deplibs"
- else
- # Need to hardcode shared library paths
- # or/and link against static libraries
- newdependency_libs="$deplib $newdependency_libs"
- fi
- if $opt_preserve_dup_deps; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done # for deplib
- continue
- fi # $linkmode = prog...
-
- if test prog,link = "$linkmode,$pass"; then
- if test -n "$library_names" &&
- { { test no = "$prefer_static_libs" ||
- test built,yes = "$prefer_static_libs,$installed"; } ||
- test -z "$old_library"; }; then
- # We need to hardcode the library path
- if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then
- # Make sure the rpath contains only unique directories.
- case $temp_rpath: in
- *"$absdir:"*) ;;
- *) func_append temp_rpath "$absdir:" ;;
- esac
- fi
-
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) func_append compile_rpath " $absdir" ;;
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- ;;
- esac
- fi # $linkmode,$pass = prog,link...
-
- if $alldeplibs &&
- { test pass_all = "$deplibs_check_method" ||
- { test yes = "$build_libtool_libs" &&
- test -n "$library_names"; }; }; then
- # We only need to search for static libraries
- continue
- fi
- fi
-
- link_static=no # Whether the deplib will be linked statically
- use_static_libs=$prefer_static_libs
- if test built = "$use_static_libs" && test yes = "$installed"; then
- use_static_libs=no
- fi
- if test -n "$library_names" &&
- { test no = "$use_static_libs" || test -z "$old_library"; }; then
- case $host in
- *cygwin* | *mingw* | *cegcc* | *os2*)
- # No point in relinking DLLs because paths are not encoded
- func_append notinst_deplibs " $lib"
- need_relink=no
- ;;
- *)
- if test no = "$installed"; then
- func_append notinst_deplibs " $lib"
- need_relink=yes
- fi
- ;;
- esac
- # This is a shared library
-
- # Warn about portability, can't link against -module's on some
- # systems (darwin). Don't bleat about dlopened modules though!
- dlopenmodule=
- for dlpremoduletest in $dlprefiles; do
- if test "X$dlpremoduletest" = "X$lib"; then
- dlopenmodule=$dlpremoduletest
- break
- fi
- done
- if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then
- echo
- if test prog = "$linkmode"; then
- $ECHO "*** Warning: Linking the executable $output against the loadable module"
- else
- $ECHO "*** Warning: Linking the shared library $output against the loadable module"
- fi
- $ECHO "*** $linklib is not portable!"
- fi
- if test lib = "$linkmode" &&
- test yes = "$hardcode_into_libs"; then
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) func_append compile_rpath " $absdir" ;;
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- ;;
- esac
- fi
-
- if test -n "$old_archive_from_expsyms_cmds"; then
- # figure out the soname
- set dummy $library_names
- shift
- realname=$1
- shift
- libname=`eval "\\$ECHO \"$libname_spec\""`
- # use dlname if we got it. it's perfectly good, no?
- if test -n "$dlname"; then
- soname=$dlname
- elif test -n "$soname_spec"; then
- # bleh windows
- case $host in
- *cygwin* | mingw* | *cegcc* | *os2*)
- func_arith $current - $age
- major=$func_arith_result
- versuffix=-$major
- ;;
- esac
- eval soname=\"$soname_spec\"
- else
- soname=$realname
- fi
-
- # Make a new name for the extract_expsyms_cmds to use
- soroot=$soname
- func_basename "$soroot"
- soname=$func_basename_result
- func_stripname 'lib' '.dll' "$soname"
- newlib=libimp-$func_stripname_result.a
-
- # If the library has no export list, then create one now
- if test -f "$output_objdir/$soname-def"; then :
- else
- func_verbose "extracting exported symbol list from '$soname'"
- func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
- fi
-
- # Create $newlib
- if test -f "$output_objdir/$newlib"; then :; else
- func_verbose "generating import library for '$soname'"
- func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
- fi
- # make sure the library variables are pointing to the new library
- dir=$output_objdir
- linklib=$newlib
- fi # test -n "$old_archive_from_expsyms_cmds"
-
- if test prog = "$linkmode" || test relink != "$opt_mode"; then
- add_shlibpath=
- add_dir=
- add=
- lib_linked=yes
- case $hardcode_action in
- immediate | unsupported)
- if test no = "$hardcode_direct"; then
- add=$dir/$linklib
- case $host in
- *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;;
- *-*-sysv4*uw2*) add_dir=-L$dir ;;
- *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
- *-*-unixware7*) add_dir=-L$dir ;;
- *-*-darwin* )
- # if the lib is a (non-dlopened) module then we cannot
- # link against it, someone is ignoring the earlier warnings
- if /usr/bin/file -L $add 2> /dev/null |
- $GREP ": [^:]* bundle" >/dev/null; then
- if test "X$dlopenmodule" != "X$lib"; then
- $ECHO "*** Warning: lib $linklib is a module, not a shared library"
- if test -z "$old_library"; then
- echo
- echo "*** And there doesn't seem to be a static archive available"
- echo "*** The link will probably fail, sorry"
- else
- add=$dir/$old_library
- fi
- elif test -n "$old_library"; then
- add=$dir/$old_library
- fi
- fi
- esac
- elif test no = "$hardcode_minus_L"; then
- case $host in
- *-*-sunos*) add_shlibpath=$dir ;;
- esac
- add_dir=-L$dir
- add=-l$name
- elif test no = "$hardcode_shlibpath_var"; then
- add_shlibpath=$dir
- add=-l$name
- else
- lib_linked=no
- fi
- ;;
- relink)
- if test yes = "$hardcode_direct" &&
- test no = "$hardcode_direct_absolute"; then
- add=$dir/$linklib
- elif test yes = "$hardcode_minus_L"; then
- add_dir=-L$absdir
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
- func_append add_dir " -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
- add=-l$name
- elif test yes = "$hardcode_shlibpath_var"; then
- add_shlibpath=$dir
- add=-l$name
- else
- lib_linked=no
- fi
- ;;
- *) lib_linked=no ;;
- esac
-
- if test yes != "$lib_linked"; then
- func_fatal_configuration "unsupported hardcode properties"
- fi
-
- if test -n "$add_shlibpath"; then
- case :$compile_shlibpath: in
- *":$add_shlibpath:"*) ;;
- *) func_append compile_shlibpath "$add_shlibpath:" ;;
- esac
- fi
- if test prog = "$linkmode"; then
- test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
- test -n "$add" && compile_deplibs="$add $compile_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- if test yes != "$hardcode_direct" &&
- test yes != "$hardcode_minus_L" &&
- test yes = "$hardcode_shlibpath_var"; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) func_append finalize_shlibpath "$libdir:" ;;
- esac
- fi
- fi
- fi
-
- if test prog = "$linkmode" || test relink = "$opt_mode"; then
- add_shlibpath=
- add_dir=
- add=
- # Finalize command for both is simple: just hardcode it.
- if test yes = "$hardcode_direct" &&
- test no = "$hardcode_direct_absolute"; then
- add=$libdir/$linklib
- elif test yes = "$hardcode_minus_L"; then
- add_dir=-L$libdir
- add=-l$name
- elif test yes = "$hardcode_shlibpath_var"; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) func_append finalize_shlibpath "$libdir:" ;;
- esac
- add=-l$name
- elif test yes = "$hardcode_automatic"; then
- if test -n "$inst_prefix_dir" &&
- test -f "$inst_prefix_dir$libdir/$linklib"; then
- add=$inst_prefix_dir$libdir/$linklib
- else
- add=$libdir/$linklib
- fi
- else
- # We cannot seem to hardcode it, guess we'll fake it.
- add_dir=-L$libdir
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
- func_append add_dir " -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
- add=-l$name
- fi
-
- if test prog = "$linkmode"; then
- test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
- test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- fi
- fi
- elif test prog = "$linkmode"; then
- # Here we assume that one of hardcode_direct or hardcode_minus_L
- # is not unsupported. This is valid on all known static and
- # shared platforms.
- if test unsupported != "$hardcode_direct"; then
- test -n "$old_library" && linklib=$old_library
- compile_deplibs="$dir/$linklib $compile_deplibs"
- finalize_deplibs="$dir/$linklib $finalize_deplibs"
- else
- compile_deplibs="-l$name -L$dir $compile_deplibs"
- finalize_deplibs="-l$name -L$dir $finalize_deplibs"
- fi
- elif test yes = "$build_libtool_libs"; then
- # Not a shared library
- if test pass_all != "$deplibs_check_method"; then
- # We're trying link a shared library against a static one
- # but the system doesn't support it.
-
- # Just print a warning and add the library to dependency_libs so
- # that the program can be linked against the static library.
- echo
- $ECHO "*** Warning: This system cannot link to static lib archive $lib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have."
- if test yes = "$module"; then
- echo "*** But as you try to build a module library, libtool will still create "
- echo "*** a static module, that should work as long as the dlopening application"
- echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** 'nm' from GNU binutils and a full rebuild may help."
- fi
- if test no = "$build_old_libs"; then
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- else
- deplibs="$dir/$old_library $deplibs"
- link_static=yes
- fi
- fi # link shared/static library?
-
- if test lib = "$linkmode"; then
- if test -n "$dependency_libs" &&
- { test yes != "$hardcode_into_libs" ||
- test yes = "$build_old_libs" ||
- test yes = "$link_static"; }; then
- # Extract -R from dependency_libs
- temp_deplibs=
- for libdir in $dependency_libs; do
- case $libdir in
- -R*) func_stripname '-R' '' "$libdir"
- temp_xrpath=$func_stripname_result
- case " $xrpath " in
- *" $temp_xrpath "*) ;;
- *) func_append xrpath " $temp_xrpath";;
- esac;;
- *) func_append temp_deplibs " $libdir";;
- esac
- done
- dependency_libs=$temp_deplibs
- fi
-
- func_append newlib_search_path " $absdir"
- # Link against this library
- test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
- # ... and its dependency_libs
- tmp_libs=
- for deplib in $dependency_libs; do
- newdependency_libs="$deplib $newdependency_libs"
- case $deplib in
- -L*) func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result";;
- *) func_resolve_sysroot "$deplib" ;;
- esac
- if $opt_preserve_dup_deps; then
- case "$tmp_libs " in
- *" $func_resolve_sysroot_result "*)
- func_append specialdeplibs " $func_resolve_sysroot_result" ;;
- esac
- fi
- func_append tmp_libs " $func_resolve_sysroot_result"
- done
-
- if test no != "$link_all_deplibs"; then
- # Add the search paths of all dependency libraries
- for deplib in $dependency_libs; do
- path=
- case $deplib in
- -L*) path=$deplib ;;
- *.la)
- func_resolve_sysroot "$deplib"
- deplib=$func_resolve_sysroot_result
- func_dirname "$deplib" "" "."
- dir=$func_dirname_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;;
- *)
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- func_warning "cannot determine absolute directory name of '$dir'"
- absdir=$dir
- fi
- ;;
- esac
- if $GREP "^installed=no" $deplib > /dev/null; then
- case $host in
- *-*-darwin*)
- depdepl=
- eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
- if test -n "$deplibrary_names"; then
- for tmp in $deplibrary_names; do
- depdepl=$tmp
- done
- if test -f "$absdir/$objdir/$depdepl"; then
- depdepl=$absdir/$objdir/$depdepl
- darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- if test -z "$darwin_install_name"; then
- darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- fi
- func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl"
- func_append linker_flags " -dylib_file $darwin_install_name:$depdepl"
- path=
- fi
- fi
- ;;
- *)
- path=-L$absdir/$objdir
- ;;
- esac
- else
- eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- test -z "$libdir" && \
- func_fatal_error "'$deplib' is not a valid libtool archive"
- test "$absdir" != "$libdir" && \
- func_warning "'$deplib' seems to be moved"
-
- path=-L$absdir
- fi
- ;;
- esac
- case " $deplibs " in
- *" $path "*) ;;
- *) deplibs="$path $deplibs" ;;
- esac
- done
- fi # link_all_deplibs != no
- fi # linkmode = lib
- done # for deplib in $libs
- if test link = "$pass"; then
- if test prog = "$linkmode"; then
- compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
- finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
- else
- compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- fi
- fi
- dependency_libs=$newdependency_libs
- if test dlpreopen = "$pass"; then
- # Link the dlpreopened libraries before other libraries
- for deplib in $save_deplibs; do
- deplibs="$deplib $deplibs"
- done
- fi
- if test dlopen != "$pass"; then
- test conv = "$pass" || {
- # Make sure lib_search_path contains only unique directories.
- lib_search_path=
- for dir in $newlib_search_path; do
- case "$lib_search_path " in
- *" $dir "*) ;;
- *) func_append lib_search_path " $dir" ;;
- esac
- done
- newlib_search_path=
- }
-
- if test prog,link = "$linkmode,$pass"; then
- vars="compile_deplibs finalize_deplibs"
- else
- vars=deplibs
- fi
- for var in $vars dependency_libs; do
- # Add libraries to $var in reverse order
- eval tmp_libs=\"\$$var\"
- new_libs=
- for deplib in $tmp_libs; do
- # FIXME: Pedantically, this is the right thing to do, so
- # that some nasty dependency loop isn't accidentally
- # broken:
- #new_libs="$deplib $new_libs"
- # Pragmatically, this seems to cause very few problems in
- # practice:
- case $deplib in
- -L*) new_libs="$deplib $new_libs" ;;
- -R*) ;;
- *)
- # And here is the reason: when a library appears more
- # than once as an explicit dependence of a library, or
- # is implicitly linked in more than once by the
- # compiler, it is considered special, and multiple
- # occurrences thereof are not removed. Compare this
- # with having the same library being listed as a
- # dependency of multiple other libraries: in this case,
- # we know (pedantically, we assume) the library does not
- # need to be listed more than once, so we keep only the
- # last copy. This is not always right, but it is rare
- # enough that we require users that really mean to play
- # such unportable linking tricks to link the library
- # using -Wl,-lname, so that libtool does not consider it
- # for duplicate removal.
- case " $specialdeplibs " in
- *" $deplib "*) new_libs="$deplib $new_libs" ;;
- *)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) new_libs="$deplib $new_libs" ;;
- esac
- ;;
- esac
- ;;
- esac
- done
- tmp_libs=
- for deplib in $new_libs; do
- case $deplib in
- -L*)
- case " $tmp_libs " in
- *" $deplib "*) ;;
- *) func_append tmp_libs " $deplib" ;;
- esac
- ;;
- *) func_append tmp_libs " $deplib" ;;
- esac
- done
- eval $var=\"$tmp_libs\"
- done # for var
- fi
-
- # Add Sun CC postdeps if required:
- test CXX = "$tagname" && {
- case $host_os in
- linux*)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C++ 5.9
- func_suncc_cstd_abi
-
- if test no != "$suncc_use_cstd_abi"; then
- func_append postdeps ' -library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-
- solaris*)
- func_cc_basename "$CC"
- case $func_cc_basename_result in
- CC* | sunCC*)
- func_suncc_cstd_abi
-
- if test no != "$suncc_use_cstd_abi"; then
- func_append postdeps ' -library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
- esac
- }
-
- # Last step: remove runtime libs from dependency_libs
- # (they stay in deplibs)
- tmp_libs=
- for i in $dependency_libs; do
- case " $predeps $postdeps $compiler_lib_search_path " in
- *" $i "*)
- i=
- ;;
- esac
- if test -n "$i"; then
- func_append tmp_libs " $i"
- fi
- done
- dependency_libs=$tmp_libs
- done # for pass
- if test prog = "$linkmode"; then
- dlfiles=$newdlfiles
- fi
- if test prog = "$linkmode" || test lib = "$linkmode"; then
- dlprefiles=$newdlprefiles
- fi
-
- case $linkmode in
- oldlib)
- if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
- func_warning "'-dlopen' is ignored for archives"
- fi
-
- case " $deplibs" in
- *\ -l* | *\ -L*)
- func_warning "'-l' and '-L' are ignored for archives" ;;
- esac
-
- test -n "$rpath" && \
- func_warning "'-rpath' is ignored for archives"
-
- test -n "$xrpath" && \
- func_warning "'-R' is ignored for archives"
-
- test -n "$vinfo" && \
- func_warning "'-version-info/-version-number' is ignored for archives"
-
- test -n "$release" && \
- func_warning "'-release' is ignored for archives"
-
- test -n "$export_symbols$export_symbols_regex" && \
- func_warning "'-export-symbols' is ignored for archives"
-
- # Now set the variables for building old libraries.
- build_libtool_libs=no
- oldlibs=$output
- func_append objs "$old_deplibs"
- ;;
-
- lib)
- # Make sure we only generate libraries of the form 'libNAME.la'.
- case $outputname in
- lib*)
- func_stripname 'lib' '.la' "$outputname"
- name=$func_stripname_result
- eval shared_ext=\"$shrext_cmds\"
- eval libname=\"$libname_spec\"
- ;;
- *)
- test no = "$module" \
- && func_fatal_help "libtool library '$output' must begin with 'lib'"
-
- if test no != "$need_lib_prefix"; then
- # Add the "lib" prefix for modules if required
- func_stripname '' '.la' "$outputname"
- name=$func_stripname_result
- eval shared_ext=\"$shrext_cmds\"
- eval libname=\"$libname_spec\"
- else
- func_stripname '' '.la' "$outputname"
- libname=$func_stripname_result
- fi
- ;;
- esac
-
- if test -n "$objs"; then
- if test pass_all != "$deplibs_check_method"; then
- func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs"
- else
- echo
- $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
- $ECHO "*** objects $objs is not portable!"
- func_append libobjs " $objs"
- fi
- fi
-
- test no = "$dlself" \
- || func_warning "'-dlopen self' is ignored for libtool libraries"
-
- set dummy $rpath
- shift
- test 1 -lt "$#" \
- && func_warning "ignoring multiple '-rpath's for a libtool library"
-
- install_libdir=$1
-
- oldlibs=
- if test -z "$rpath"; then
- if test yes = "$build_libtool_libs"; then
- # Building a libtool convenience library.
- # Some compilers have problems with a '.al' extension so
- # convenience libraries should have the same extension an
- # archive normally would.
- oldlibs="$output_objdir/$libname.$libext $oldlibs"
- build_libtool_libs=convenience
- build_old_libs=yes
- fi
-
- test -n "$vinfo" && \
- func_warning "'-version-info/-version-number' is ignored for convenience libraries"
-
- test -n "$release" && \
- func_warning "'-release' is ignored for convenience libraries"
- else
-
- # Parse the version information argument.
- save_ifs=$IFS; IFS=:
- set dummy $vinfo 0 0 0
- shift
- IFS=$save_ifs
-
- test -n "$7" && \
- func_fatal_help "too many parameters to '-version-info'"
-
- # convert absolute version numbers to libtool ages
- # this retains compatibility with .la files and attempts
- # to make the code below a bit more comprehensible
-
- case $vinfo_number in
- yes)
- number_major=$1
- number_minor=$2
- number_revision=$3
- #
- # There are really only two kinds -- those that
- # use the current revision as the major version
- # and those that subtract age and use age as
- # a minor version. But, then there is irix
- # that has an extra 1 added just for fun
- #
- case $version_type in
- # correct linux to gnu/linux during the next big refactor
- darwin|freebsd-elf|linux|osf|windows|none)
- func_arith $number_major + $number_minor
- current=$func_arith_result
- age=$number_minor
- revision=$number_revision
- ;;
- freebsd-aout|qnx|sunos)
- current=$number_major
- revision=$number_minor
- age=0
- ;;
- irix|nonstopux)
- func_arith $number_major + $number_minor
- current=$func_arith_result
- age=$number_minor
- revision=$number_minor
- lt_irix_increment=no
- ;;
- esac
- ;;
- no)
- current=$1
- revision=$2
- age=$3
- ;;
- esac
-
- # Check that each of the things are valid numbers.
- case $current in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "CURRENT '$current' must be a nonnegative integer"
- func_fatal_error "'$vinfo' is not valid version information"
- ;;
- esac
-
- case $revision in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "REVISION '$revision' must be a nonnegative integer"
- func_fatal_error "'$vinfo' is not valid version information"
- ;;
- esac
-
- case $age in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "AGE '$age' must be a nonnegative integer"
- func_fatal_error "'$vinfo' is not valid version information"
- ;;
- esac
-
- if test "$age" -gt "$current"; then
- func_error "AGE '$age' is greater than the current interface number '$current'"
- func_fatal_error "'$vinfo' is not valid version information"
- fi
-
- # Calculate the version variables.
- major=
- versuffix=
- verstring=
- case $version_type in
- none) ;;
-
- darwin)
- # Like Linux, but with the current version available in
- # verstring for coding it into the library header
- func_arith $current - $age
- major=.$func_arith_result
- versuffix=$major.$age.$revision
- # Darwin ld doesn't like 0 for these options...
- func_arith $current + 1
- minor_current=$func_arith_result
- xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
- # On Darwin other compilers
- case $CC in
- nagfor*)
- verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
- ;;
- *)
- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
- ;;
- esac
- ;;
-
- freebsd-aout)
- major=.$current
- versuffix=.$current.$revision
- ;;
-
- freebsd-elf)
- func_arith $current - $age
- major=.$func_arith_result
- versuffix=$major.$age.$revision
- ;;
-
- irix | nonstopux)
- if test no = "$lt_irix_increment"; then
- func_arith $current - $age
- else
- func_arith $current - $age + 1
- fi
- major=$func_arith_result
-
- case $version_type in
- nonstopux) verstring_prefix=nonstopux ;;
- *) verstring_prefix=sgi ;;
- esac
- verstring=$verstring_prefix$major.$revision
-
- # Add in all the interfaces that we are compatible with.
- loop=$revision
- while test 0 -ne "$loop"; do
- func_arith $revision - $loop
- iface=$func_arith_result
- func_arith $loop - 1
- loop=$func_arith_result
- verstring=$verstring_prefix$major.$iface:$verstring
- done
-
- # Before this point, $major must not contain '.'.
- major=.$major
- versuffix=$major.$revision
- ;;
-
- linux) # correct to gnu/linux during the next big refactor
- func_arith $current - $age
- major=.$func_arith_result
- versuffix=$major.$age.$revision
- ;;
-
- osf)
- func_arith $current - $age
- major=.$func_arith_result
- versuffix=.$current.$age.$revision
- verstring=$current.$age.$revision
-
- # Add in all the interfaces that we are compatible with.
- loop=$age
- while test 0 -ne "$loop"; do
- func_arith $current - $loop
- iface=$func_arith_result
- func_arith $loop - 1
- loop=$func_arith_result
- verstring=$verstring:$iface.0
- done
-
- # Make executables depend on our current version.
- func_append verstring ":$current.0"
- ;;
-
- qnx)
- major=.$current
- versuffix=.$current
- ;;
-
- sco)
- major=.$current
- versuffix=.$current
- ;;
-
- sunos)
- major=.$current
- versuffix=.$current.$revision
- ;;
-
- windows)
- # Use '-' rather than '.', since we only want one
- # extension on DOS 8.3 file systems.
- func_arith $current - $age
- major=$func_arith_result
- versuffix=-$major
- ;;
-
- *)
- func_fatal_configuration "unknown library version type '$version_type'"
- ;;
- esac
-
- # Clear the version info if we defaulted, and they specified a release.
- if test -z "$vinfo" && test -n "$release"; then
- major=
- case $version_type in
- darwin)
- # we can't check for "0.0" in archive_cmds due to quoting
- # problems, so we reset it completely
- verstring=
- ;;
- *)
- verstring=0.0
- ;;
- esac
- if test no = "$need_version"; then
- versuffix=
- else
- versuffix=.0.0
- fi
- fi
-
- # Remove version info from name if versioning should be avoided
- if test yes,no = "$avoid_version,$need_version"; then
- major=
- versuffix=
- verstring=
- fi
-
- # Check to see if the archive will have undefined symbols.
- if test yes = "$allow_undefined"; then
- if test unsupported = "$allow_undefined_flag"; then
- if test yes = "$build_old_libs"; then
- func_warning "undefined symbols not allowed in $host shared libraries; building static only"
- build_libtool_libs=no
- else
- func_fatal_error "can't build $host shared library unless -no-undefined is specified"
- fi
- fi
- else
- # Don't allow undefined symbols.
- allow_undefined_flag=$no_undefined_flag
- fi
-
- fi
-
- func_generate_dlsyms "$libname" "$libname" :
- func_append libobjs " $symfileobj"
- test " " = "$libobjs" && libobjs=
-
- if test relink != "$opt_mode"; then
- # Remove our outputs, but don't remove object files since they
- # may have been created when compiling PIC objects.
- removelist=
- tempremovelist=`$ECHO "$output_objdir/*"`
- for p in $tempremovelist; do
- case $p in
- *.$objext | *.gcno)
- ;;
- $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*)
- if test -n "$precious_files_regex"; then
- if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
- then
- continue
- fi
- fi
- func_append removelist " $p"
- ;;
- *) ;;
- esac
- done
- test -n "$removelist" && \
- func_show_eval "${RM}r \$removelist"
- fi
-
- # Now set the variables for building old libraries.
- if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then
- func_append oldlibs " $output_objdir/$libname.$libext"
-
- # Transform .lo files to .o files.
- oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP`
- fi
-
- # Eliminate all temporary directories.
- #for path in $notinst_path; do
- # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
- # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
- # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
- #done
-
- if test -n "$xrpath"; then
- # If the user specified any rpath flags, then add them.
- temp_xrpath=
- for libdir in $xrpath; do
- func_replace_sysroot "$libdir"
- func_append temp_xrpath " -R$func_replace_sysroot_result"
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- done
- if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
- dependency_libs="$temp_xrpath $dependency_libs"
- fi
- fi
-
- # Make sure dlfiles contains only unique files that won't be dlpreopened
- old_dlfiles=$dlfiles
- dlfiles=
- for lib in $old_dlfiles; do
- case " $dlprefiles $dlfiles " in
- *" $lib "*) ;;
- *) func_append dlfiles " $lib" ;;
- esac
- done
-
- # Make sure dlprefiles contains only unique files
- old_dlprefiles=$dlprefiles
- dlprefiles=
- for lib in $old_dlprefiles; do
- case "$dlprefiles " in
- *" $lib "*) ;;
- *) func_append dlprefiles " $lib" ;;
- esac
- done
-
- if test yes = "$build_libtool_libs"; then
- if test -n "$rpath"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
- # these systems don't actually have a c library (as such)!
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C library is in the System framework
- func_append deplibs " System.ltframework"
- ;;
- *-*-netbsd*)
- # Don't link with libc until the a.out ld.so is fixed.
- ;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
- # Causes problems with __ctype
- ;;
- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
- # Compiler inserts libc in the correct place for threads to work
- ;;
- *)
- # Add libc to deplibs on all other systems if necessary.
- if test yes = "$build_libtool_need_lc"; then
- func_append deplibs " -lc"
- fi
- ;;
- esac
- fi
-
- # Transform deplibs into only deplibs that can be linked in shared.
- name_save=$name
- libname_save=$libname
- release_save=$release
- versuffix_save=$versuffix
- major_save=$major
- # I'm not sure if I'm treating the release correctly. I think
- # release should show up in the -l (ie -lgmp5) so we don't want to
- # add it in twice. Is that correct?
- release=
- versuffix=
- major=
- newdeplibs=
- droppeddeps=no
- case $deplibs_check_method in
- pass_all)
- # Don't check for shared/static. Everything works.
- # This might be a little naive. We might want to check
- # whether the library exists or not. But this is on
- # osf3 & osf4 and I'm not really sure... Just
- # implementing what was already the behavior.
- newdeplibs=$deplibs
- ;;
- test_compile)
- # This code stresses the "libraries are programs" paradigm to its
- # limits. Maybe even breaks it. We compile a program, linking it
- # against the deplibs as a proxy for the library. Then we can check
- # whether they linked in statically or dynamically with ldd.
- $opt_dry_run || $RM conftest.c
- cat > conftest.c <<EOF
- int main() { return 0; }
-EOF
- $opt_dry_run || $RM conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
- ldd_output=`ldd conftest`
- for i in $deplibs; do
- case $i in
- -l*)
- func_stripname -l '' "$i"
- name=$func_stripname_result
- if test yes = "$allow_libtool_libs_with_static_runtimes"; then
- case " $predeps $postdeps " in
- *" $i "*)
- func_append newdeplibs " $i"
- i=
- ;;
- esac
- fi
- if test -n "$i"; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
- func_append newdeplibs " $i"
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning: dynamic linker does not accept needed library $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which I believe you do not have"
- echo "*** because a test_compile did reveal that the linker did not use it for"
- echo "*** its dynamic dependency list that programs get resolved with at runtime."
- fi
- fi
- ;;
- *)
- func_append newdeplibs " $i"
- ;;
- esac
- done
- else
- # Error occurred in the first compile. Let's try to salvage
- # the situation: Compile a separate program for each library.
- for i in $deplibs; do
- case $i in
- -l*)
- func_stripname -l '' "$i"
- name=$func_stripname_result
- $opt_dry_run || $RM conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
- ldd_output=`ldd conftest`
- if test yes = "$allow_libtool_libs_with_static_runtimes"; then
- case " $predeps $postdeps " in
- *" $i "*)
- func_append newdeplibs " $i"
- i=
- ;;
- esac
- fi
- if test -n "$i"; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
- func_append newdeplibs " $i"
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning: dynamic linker does not accept needed library $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because a test_compile did reveal that the linker did not use this one"
- echo "*** as a dynamic dependency that programs can get resolved with at runtime."
- fi
- fi
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
- echo "*** make it link in! You will probably need to install it or some"
- echo "*** library that it depends on before this library will be fully"
- echo "*** functional. Installing it before continuing would be even better."
- fi
- ;;
- *)
- func_append newdeplibs " $i"
- ;;
- esac
- done
- fi
- ;;
- file_magic*)
- set dummy $deplibs_check_method; shift
- file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- for a_deplib in $deplibs; do
- case $a_deplib in
- -l*)
- func_stripname -l '' "$a_deplib"
- name=$func_stripname_result
- if test yes = "$allow_libtool_libs_with_static_runtimes"; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- func_append newdeplibs " $a_deplib"
- a_deplib=
- ;;
- esac
- fi
- if test -n "$a_deplib"; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- if test -n "$file_magic_glob"; then
- libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
- else
- libnameglob=$libname
- fi
- test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- if test yes = "$want_nocaseglob"; then
- shopt -s nocaseglob
- potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
- $nocaseglob
- else
- potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
- fi
- for potent_lib in $potential_libs; do
- # Follow soft links.
- if ls -lLd "$potent_lib" 2>/dev/null |
- $GREP " -> " >/dev/null; then
- continue
- fi
- # The statement above tries to avoid entering an
- # endless loop below, in case of cyclic links.
- # We might still enter an endless loop, since a link
- # loop can be closed while we follow links,
- # but so what?
- potlib=$potent_lib
- while test -h "$potlib" 2>/dev/null; do
- potliblink=`ls -ld $potlib | $SED 's/.* -> //'`
- case $potliblink in
- [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;;
- *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";;
- esac
- done
- if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
- $SED -e 10q |
- $EGREP "$file_magic_regex" > /dev/null; then
- func_append newdeplibs " $a_deplib"
- a_deplib=
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib"; then
- droppeddeps=yes
- echo
- $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib"; then
- $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
- else
- $ECHO "*** with $libname and none of the candidates passed a file format test"
- $ECHO "*** using a file magic. Last file checked: $potlib"
- fi
- fi
- ;;
- *)
- # Add a -L argument.
- func_append newdeplibs " $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
- ;;
- match_pattern*)
- set dummy $deplibs_check_method; shift
- match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- for a_deplib in $deplibs; do
- case $a_deplib in
- -l*)
- func_stripname -l '' "$a_deplib"
- name=$func_stripname_result
- if test yes = "$allow_libtool_libs_with_static_runtimes"; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- func_append newdeplibs " $a_deplib"
- a_deplib=
- ;;
- esac
- fi
- if test -n "$a_deplib"; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
- for potent_lib in $potential_libs; do
- potlib=$potent_lib # see symlink-check above in file_magic test
- if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
- $EGREP "$match_pattern_regex" > /dev/null; then
- func_append newdeplibs " $a_deplib"
- a_deplib=
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib"; then
- droppeddeps=yes
- echo
- $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib"; then
- $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
- else
- $ECHO "*** with $libname and none of the candidates passed a file format test"
- $ECHO "*** using a regex pattern. Last file checked: $potlib"
- fi
- fi
- ;;
- *)
- # Add a -L argument.
- func_append newdeplibs " $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
- ;;
- none | unknown | *)
- newdeplibs=
- tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
- if test yes = "$allow_libtool_libs_with_static_runtimes"; then
- for i in $predeps $postdeps; do
- # can't use Xsed below, because $i might contain '/'
- tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"`
- done
- fi
- case $tmp_deplibs in
- *[!\ \ ]*)
- echo
- if test none = "$deplibs_check_method"; then
- echo "*** Warning: inter-library dependencies are not supported in this platform."
- else
- echo "*** Warning: inter-library dependencies are not known to be supported."
- fi
- echo "*** All declared inter-library dependencies are being dropped."
- droppeddeps=yes
- ;;
- esac
- ;;
- esac
- versuffix=$versuffix_save
- major=$major_save
- release=$release_save
- libname=$libname_save
- name=$name_save
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library with the System framework
- newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- if test yes = "$droppeddeps"; then
- if test yes = "$module"; then
- echo
- echo "*** Warning: libtool could not satisfy all declared inter-library"
- $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
- echo "*** a static module, that should work as long as the dlopening"
- echo "*** application is linked with the -dlopen flag."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** 'nm' from GNU binutils and a full rebuild may help."
- fi
- if test no = "$build_old_libs"; then
- oldlibs=$output_objdir/$libname.$libext
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- else
- echo "*** The inter-library dependencies that have been dropped here will be"
- echo "*** automatically added whenever a program is linked with this library"
- echo "*** or is declared to -dlopen it."
-
- if test no = "$allow_undefined"; then
- echo
- echo "*** Since this library must not contain undefined symbols,"
- echo "*** because either the platform does not support them or"
- echo "*** it was explicitly requested with -no-undefined,"
- echo "*** libtool will only create a static version of it."
- if test no = "$build_old_libs"; then
- oldlibs=$output_objdir/$libname.$libext
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- fi
- fi
- # Done checking deplibs!
- deplibs=$newdeplibs
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- case $host in
- *-*-darwin*)
- newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
- # move library search paths that coincide with paths to not yet
- # installed libraries to the beginning of the library search list
- new_libs=
- for path in $notinst_path; do
- case " $new_libs " in
- *" -L$path/$objdir "*) ;;
- *)
- case " $deplibs " in
- *" -L$path/$objdir "*)
- func_append new_libs " -L$path/$objdir" ;;
- esac
- ;;
- esac
- done
- for deplib in $deplibs; do
- case $deplib in
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) func_append new_libs " $deplib" ;;
- esac
- ;;
- *) func_append new_libs " $deplib" ;;
- esac
- done
- deplibs=$new_libs
-
- # All the library-specific variables (install_libdir is set above).
- library_names=
- old_library=
- dlname=
-
- # Test again, we may have decided not to build it any more
- if test yes = "$build_libtool_libs"; then
- # Remove $wl instances when linking with ld.
- # FIXME: should test the right _cmds variable.
- case $archive_cmds in
- *\$LD\ *) wl= ;;
- esac
- if test yes = "$hardcode_into_libs"; then
- # Hardcode the library paths
- hardcode_libdirs=
- dep_rpath=
- rpath=$finalize_rpath
- test relink = "$opt_mode" || rpath=$compile_rpath$rpath
- for libdir in $rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- func_replace_sysroot "$libdir"
- libdir=$func_replace_sysroot_result
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs=$libdir
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append dep_rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir=$hardcode_libdirs
- eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
- fi
- if test -n "$runpath_var" && test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- func_append rpath "$dir:"
- done
- eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
- fi
- test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
- fi
-
- shlibpath=$finalize_shlibpath
- test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath
- if test -n "$shlibpath"; then
- eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
- fi
-
- # Get the real and link names of the library.
- eval shared_ext=\"$shrext_cmds\"
- eval library_names=\"$library_names_spec\"
- set dummy $library_names
- shift
- realname=$1
- shift
-
- if test -n "$soname_spec"; then
- eval soname=\"$soname_spec\"
- else
- soname=$realname
- fi
- if test -z "$dlname"; then
- dlname=$soname
- fi
-
- lib=$output_objdir/$realname
- linknames=
- for link
- do
- func_append linknames " $link"
- done
-
- # Use standard objects if they are pic
- test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- test "X$libobjs" = "X " && libobjs=
-
- delfiles=
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
- export_symbols=$output_objdir/$libname.uexp
- func_append delfiles " $export_symbols"
- fi
-
- orig_export_symbols=
- case $host_os in
- cygwin* | mingw* | cegcc*)
- if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
- # exporting using user supplied symfile
- func_dll_def_p "$export_symbols" || {
- # and it's NOT already a .def file. Must figure out
- # which of the given symbols are data symbols and tag
- # them as such. So, trigger use of export_symbols_cmds.
- # export_symbols gets reassigned inside the "prepare
- # the list of exported symbols" if statement, so the
- # include_expsyms logic still works.
- orig_export_symbols=$export_symbols
- export_symbols=
- always_export_symbols=yes
- }
- fi
- ;;
- esac
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then
- func_verbose "generating symbol list for '$libname.la'"
- export_symbols=$output_objdir/$libname.exp
- $opt_dry_run || $RM $export_symbols
- cmds=$export_symbols_cmds
- save_ifs=$IFS; IFS='~'
- for cmd1 in $cmds; do
- IFS=$save_ifs
- # Take the normal branch if the nm_file_list_spec branch
- # doesn't work or if tool conversion is not needed.
- case $nm_file_list_spec~$to_tool_file_cmd in
- *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
- try_normal_branch=yes
- eval cmd=\"$cmd1\"
- func_len " $cmd"
- len=$func_len_result
- ;;
- *)
- try_normal_branch=no
- ;;
- esac
- if test yes = "$try_normal_branch" \
- && { test "$len" -lt "$max_cmd_len" \
- || test "$max_cmd_len" -le -1; }
- then
- func_show_eval "$cmd" 'exit $?'
- skipped_export=false
- elif test -n "$nm_file_list_spec"; then
- func_basename "$output"
- output_la=$func_basename_result
- save_libobjs=$libobjs
- save_output=$output
- output=$output_objdir/$output_la.nm
- func_to_tool_file "$output"
- libobjs=$nm_file_list_spec$func_to_tool_file_result
- func_append delfiles " $output"
- func_verbose "creating $NM input file list: $output"
- for obj in $save_libobjs; do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result"
- done > "$output"
- eval cmd=\"$cmd1\"
- func_show_eval "$cmd" 'exit $?'
- output=$save_output
- libobjs=$save_libobjs
- skipped_export=false
- else
- # The command line is too long to execute in one step.
- func_verbose "using reloadable object file for export list..."
- skipped_export=:
- # Break out early, otherwise skipped_export may be
- # set to false by a later but shorter cmd.
- break
- fi
- done
- IFS=$save_ifs
- if test -n "$export_symbols_regex" && test : != "$skipped_export"; then
- func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
- fi
- fi
- fi
-
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols=$export_symbols
- test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
- $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
- fi
-
- if test : != "$skipped_export" && test -n "$orig_export_symbols"; then
- # The given exports_symbols file has to be filtered, so filter it.
- func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
- # FIXME: $output_objdir/$libname.filter potentially contains lots of
- # 's' commands, which not all seds can handle. GNU sed should be fine
- # though. Also, the filter scales superlinearly with the number of
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
- func_append delfiles " $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
-
- tmp_deplibs=
- for test_deplib in $deplibs; do
- case " $convenience " in
- *" $test_deplib "*) ;;
- *)
- func_append tmp_deplibs " $test_deplib"
- ;;
- esac
- done
- deplibs=$tmp_deplibs
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec" &&
- test yes = "$compiler_needs_object" &&
- test -z "$libobjs"; then
- # extract the archives, so we have objects to list.
- # TODO: could optimize this to just extract one archive.
- whole_archive_flag_spec=
- fi
- if test -n "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- test "X$libobjs" = "X " && libobjs=
- else
- gentop=$output_objdir/${outputname}x
- func_append generated " $gentop"
-
- func_extract_archives $gentop $convenience
- func_append libobjs " $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
- fi
-
- if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then
- eval flag=\"$thread_safe_flag_spec\"
- func_append linker_flags " $flag"
- fi
-
- # Make a backup of the uninstalled library when relinking
- if test relink = "$opt_mode"; then
- $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
- fi
-
- # Do each of the archive commands.
- if test yes = "$module" && test -n "$module_cmds"; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- eval test_cmds=\"$module_expsym_cmds\"
- cmds=$module_expsym_cmds
- else
- eval test_cmds=\"$module_cmds\"
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- eval test_cmds=\"$archive_expsym_cmds\"
- cmds=$archive_expsym_cmds
- else
- eval test_cmds=\"$archive_cmds\"
- cmds=$archive_cmds
- fi
- fi
-
- if test : != "$skipped_export" &&
- func_len " $test_cmds" &&
- len=$func_len_result &&
- test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- :
- else
- # The command line is too long to link in one step, link piecewise
- # or, if using GNU ld and skipped_export is not :, use a linker
- # script.
-
- # Save the value of $output and $libobjs because we want to
- # use them later. If we have whole_archive_flag_spec, we
- # want to use save_libobjs as it was before
- # whole_archive_flag_spec was expanded, because we can't
- # assume the linker understands whole_archive_flag_spec.
- # This may have to be revisited, in case too many
- # convenience libraries get linked in and end up exceeding
- # the spec.
- if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- fi
- save_output=$output
- func_basename "$output"
- output_la=$func_basename_result
-
- # Clear the reloadable object creation command queue and
- # initialize k to one.
- test_cmds=
- concat_cmds=
- objlist=
- last_robj=
- k=1
-
- if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
- output=$output_objdir/$output_la.lnkscript
- func_verbose "creating GNU ld script: $output"
- echo 'INPUT (' > $output
- for obj in $save_libobjs
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result" >> $output
- done
- echo ')' >> $output
- func_append delfiles " $output"
- func_to_tool_file "$output"
- output=$func_to_tool_file_result
- elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
- output=$output_objdir/$output_la.lnk
- func_verbose "creating linker input file list: $output"
- : > $output
- set x $save_libobjs
- shift
- firstobj=
- if test yes = "$compiler_needs_object"; then
- firstobj="$1 "
- shift
- fi
- for obj
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result" >> $output
- done
- func_append delfiles " $output"
- func_to_tool_file "$output"
- output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
- else
- if test -n "$save_libobjs"; then
- func_verbose "creating reloadable object files..."
- output=$output_objdir/$output_la-$k.$objext
- eval test_cmds=\"$reload_cmds\"
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
-
- # Loop over the list of objects to be linked.
- for obj in $save_libobjs
- do
- func_len " $obj"
- func_arith $len + $func_len_result
- len=$func_arith_result
- if test -z "$objlist" ||
- test "$len" -lt "$max_cmd_len"; then
- func_append objlist " $obj"
- else
- # The command $test_cmds is almost too long, add a
- # command to the queue.
- if test 1 -eq "$k"; then
- # The first file doesn't have a previous command to add.
- reload_objs=$objlist
- eval concat_cmds=\"$reload_cmds\"
- else
- # All subsequent reloadable object files will link in
- # the last one created.
- reload_objs="$objlist $last_robj"
- eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
- fi
- last_robj=$output_objdir/$output_la-$k.$objext
- func_arith $k + 1
- k=$func_arith_result
- output=$output_objdir/$output_la-$k.$objext
- objlist=" $obj"
- func_len " $last_robj"
- func_arith $len0 + $func_len_result
- len=$func_arith_result
- fi
- done
- # Handle the remaining objects by creating one last
- # reloadable object file. All subsequent reloadable object
- # files will link in the last one created.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- reload_objs="$objlist $last_robj"
- eval concat_cmds=\"\$concat_cmds$reload_cmds\"
- if test -n "$last_robj"; then
- eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
- fi
- func_append delfiles " $output"
-
- else
- output=
- fi
-
- ${skipped_export-false} && {
- func_verbose "generating symbol list for '$libname.la'"
- export_symbols=$output_objdir/$libname.exp
- $opt_dry_run || $RM $export_symbols
- libobjs=$output
- # Append the command to create the export file.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
- if test -n "$last_robj"; then
- eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
- fi
- }
-
- test -n "$save_libobjs" &&
- func_verbose "creating a temporary reloadable object file: $output"
-
- # Loop through the commands generated above and execute them.
- save_ifs=$IFS; IFS='~'
- for cmd in $concat_cmds; do
- IFS=$save_ifs
- $opt_quiet || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
- $opt_dry_run || eval "$cmd" || {
- lt_exit=$?
-
- # Restore the uninstalled library and exit
- if test relink = "$opt_mode"; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
- fi
-
- exit $lt_exit
- }
- done
- IFS=$save_ifs
-
- if test -n "$export_symbols_regex" && ${skipped_export-false}; then
- func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
- fi
- fi
-
- ${skipped_export-false} && {
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols=$export_symbols
- test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
- $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
- fi
-
- if test -n "$orig_export_symbols"; then
- # The given exports_symbols file has to be filtered, so filter it.
- func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
- # FIXME: $output_objdir/$libname.filter potentially contains lots of
- # 's' commands, which not all seds can handle. GNU sed should be fine
- # though. Also, the filter scales superlinearly with the number of
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
- func_append delfiles " $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
- }
-
- libobjs=$output
- # Restore the value of output.
- output=$save_output
-
- if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- test "X$libobjs" = "X " && libobjs=
- fi
- # Expand the library linking commands again to reset the
- # value of $libobjs for piecewise linking.
-
- # Do each of the archive commands.
- if test yes = "$module" && test -n "$module_cmds"; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- cmds=$module_expsym_cmds
- else
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- cmds=$archive_expsym_cmds
- else
- cmds=$archive_cmds
- fi
- fi
- fi
-
- if test -n "$delfiles"; then
- # Append the command to remove temporary files to $cmds.
- eval cmds=\"\$cmds~\$RM $delfiles\"
- fi
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop=$output_objdir/${outputname}x
- func_append generated " $gentop"
-
- func_extract_archives $gentop $dlprefiles
- func_append libobjs " $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
-
- save_ifs=$IFS; IFS='~'
- for cmd in $cmds; do
- IFS=$sp$nl
- eval cmd=\"$cmd\"
- IFS=$save_ifs
- $opt_quiet || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
- $opt_dry_run || eval "$cmd" || {
- lt_exit=$?
-
- # Restore the uninstalled library and exit
- if test relink = "$opt_mode"; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
- fi
-
- exit $lt_exit
- }
- done
- IFS=$save_ifs
-
- # Restore the uninstalled library and exit
- if test relink = "$opt_mode"; then
- $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
-
- if test -n "$convenience"; then
- if test -z "$whole_archive_flag_spec"; then
- func_show_eval '${RM}r "$gentop"'
- fi
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- # Create links to the real library.
- for linkname in $linknames; do
- if test "$realname" != "$linkname"; then
- func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
- fi
- done
-
- # If -module or -export-dynamic was specified, set the dlname.
- if test yes = "$module" || test yes = "$export_dynamic"; then
- # On all known operating systems, these are identical.
- dlname=$soname
- fi
- fi
- ;;
-
- obj)
- if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
- func_warning "'-dlopen' is ignored for objects"
- fi
-
- case " $deplibs" in
- *\ -l* | *\ -L*)
- func_warning "'-l' and '-L' are ignored for objects" ;;
- esac
-
- test -n "$rpath" && \
- func_warning "'-rpath' is ignored for objects"
-
- test -n "$xrpath" && \
- func_warning "'-R' is ignored for objects"
-
- test -n "$vinfo" && \
- func_warning "'-version-info' is ignored for objects"
-
- test -n "$release" && \
- func_warning "'-release' is ignored for objects"
-
- case $output in
- *.lo)
- test -n "$objs$old_deplibs" && \
- func_fatal_error "cannot build library object '$output' from non-libtool objects"
-
- libobj=$output
- func_lo2o "$libobj"
- obj=$func_lo2o_result
- ;;
- *)
- libobj=
- obj=$output
- ;;
- esac
-
- # Delete the old objects.
- $opt_dry_run || $RM $obj $libobj
-
- # Objects from convenience libraries. This assumes
- # single-version convenience libraries. Whenever we create
- # different ones for PIC/non-PIC, this we'll have to duplicate
- # the extraction.
- reload_conv_objs=
- gentop=
- # if reload_cmds runs $LD directly, get rid of -Wl from
- # whole_archive_flag_spec and hope we can get by with turning comma
- # into space.
- case $reload_cmds in
- *\$LD[\ \$]*) wl= ;;
- esac
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
- eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
- test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
- reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags
- else
- gentop=$output_objdir/${obj}x
- func_append generated " $gentop"
-
- func_extract_archives $gentop $convenience
- reload_conv_objs="$reload_objs $func_extract_archives_result"
- fi
- fi
-
- # If we're not building shared, we need to use non_pic_objs
- test yes = "$build_libtool_libs" || libobjs=$non_pic_objects
-
- # Create the old-style object.
- reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs
-
- output=$obj
- func_execute_cmds "$reload_cmds" 'exit $?'
-
- # Exit if we aren't doing a library object file.
- if test -z "$libobj"; then
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- test yes = "$build_libtool_libs" || {
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- # Create an invalid libtool object if no PIC, so that we don't
- # accidentally link it into a program.
- # $show "echo timestamp > $libobj"
- # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
- exit $EXIT_SUCCESS
- }
-
- if test -n "$pic_flag" || test default != "$pic_mode"; then
- # Only do commands if we really have different PIC objects.
- reload_objs="$libobjs $reload_conv_objs"
- output=$libobj
- func_execute_cmds "$reload_cmds" 'exit $?'
- fi
-
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- exit $EXIT_SUCCESS
- ;;
-
- prog)
- case $host in
- *cygwin*) func_stripname '' '.exe' "$output"
- output=$func_stripname_result.exe;;
- esac
- test -n "$vinfo" && \
- func_warning "'-version-info' is ignored for programs"
-
- test -n "$release" && \
- func_warning "'-release' is ignored for programs"
-
- $preload \
- && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \
- && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support."
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library is the System framework
- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- case $host in
- *-*-darwin*)
- # Don't allow lazy linking, it breaks C++ global constructors
- # But is supposedly fixed on 10.4 or later (yay!).
- if test CXX = "$tagname"; then
- case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
- 10.[0123])
- func_append compile_command " $wl-bind_at_load"
- func_append finalize_command " $wl-bind_at_load"
- ;;
- esac
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
-
- # move library search paths that coincide with paths to not yet
- # installed libraries to the beginning of the library search list
- new_libs=
- for path in $notinst_path; do
- case " $new_libs " in
- *" -L$path/$objdir "*) ;;
- *)
- case " $compile_deplibs " in
- *" -L$path/$objdir "*)
- func_append new_libs " -L$path/$objdir" ;;
- esac
- ;;
- esac
- done
- for deplib in $compile_deplibs; do
- case $deplib in
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) func_append new_libs " $deplib" ;;
- esac
- ;;
- *) func_append new_libs " $deplib" ;;
- esac
- done
- compile_deplibs=$new_libs
-
-
- func_append compile_command " $compile_deplibs"
- func_append finalize_command " $finalize_deplibs"
-
- if test -n "$rpath$xrpath"; then
- # If the user specified any rpath flags, then add them.
- for libdir in $rpath $xrpath; do
- # This is the magic to use -rpath.
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- done
- fi
-
- # Now hardcode the library paths
- rpath=
- hardcode_libdirs=
- for libdir in $compile_rpath $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs=$libdir
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$libdir:"*) ;;
- ::) dllsearchpath=$libdir;;
- *) func_append dllsearchpath ":$libdir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
- *) func_append dllsearchpath ":$testbindir";;
- esac
- ;;
- esac
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir=$hardcode_libdirs
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- compile_rpath=$rpath
-
- rpath=
- hardcode_libdirs=
- for libdir in $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs=$libdir
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$finalize_perm_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_perm_rpath " $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir=$hardcode_libdirs
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- finalize_rpath=$rpath
-
- if test -n "$libobjs" && test yes = "$build_old_libs"; then
- # Transform all the library objects into standard objects.
- compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
- finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
- fi
-
- func_generate_dlsyms "$outputname" "@PROGRAM@" false
-
- # template prelinking step
- if test -n "$prelink_cmds"; then
- func_execute_cmds "$prelink_cmds" 'exit $?'
- fi
-
- wrappers_required=:
- case $host in
- *cegcc* | *mingw32ce*)
- # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
- wrappers_required=false
- ;;
- *cygwin* | *mingw* )
- test yes = "$build_libtool_libs" || wrappers_required=false
- ;;
- *)
- if test no = "$need_relink" || test yes != "$build_libtool_libs"; then
- wrappers_required=false
- fi
- ;;
- esac
- $wrappers_required || {
- # Replace the output file specification.
- compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
- link_command=$compile_command$compile_rpath
-
- # We have no uninstalled library dependencies, so finalize right now.
- exit_status=0
- func_show_eval "$link_command" 'exit_status=$?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- # Delete the generated files.
- if test -f "$output_objdir/${outputname}S.$objext"; then
- func_show_eval '$RM "$output_objdir/${outputname}S.$objext"'
- fi
-
- exit $exit_status
- }
-
- if test -n "$compile_shlibpath$finalize_shlibpath"; then
- compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
- fi
- if test -n "$finalize_shlibpath"; then
- finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
- fi
-
- compile_var=
- finalize_var=
- if test -n "$runpath_var"; then
- if test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- func_append rpath "$dir:"
- done
- compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- if test -n "$finalize_perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $finalize_perm_rpath; do
- func_append rpath "$dir:"
- done
- finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- fi
-
- if test yes = "$no_install"; then
- # We don't need to create a wrapper script.
- link_command=$compile_var$compile_command$compile_rpath
- # Replace the output file specification.
- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
- # Delete the old output file.
- $opt_dry_run || $RM $output
- # Link the executable and exit
- func_show_eval "$link_command" 'exit $?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- case $hardcode_action,$fast_install in
- relink,*)
- # Fast installation is not supported
- link_command=$compile_var$compile_command$compile_rpath
- relink_command=$finalize_var$finalize_command$finalize_rpath
-
- func_warning "this platform does not like uninstalled shared libraries"
- func_warning "'$output' will be relinked during installation"
- ;;
- *,yes)
- link_command=$finalize_var$compile_command$finalize_rpath
- relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
- ;;
- *,no)
- link_command=$compile_var$compile_command$compile_rpath
- relink_command=$finalize_var$finalize_command$finalize_rpath
- ;;
- *,needless)
- link_command=$finalize_var$compile_command$finalize_rpath
- relink_command=
- ;;
- esac
-
- # Replace the output file specification.
- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
- # Delete the old output files.
- $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
- func_show_eval "$link_command" 'exit $?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output_objdir/$outputname"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- # Now create the wrapper script.
- func_verbose "creating $output"
-
- # Quote the relink command for shipping.
- if test -n "$relink_command"; then
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
- fi
- done
- relink_command="(cd `pwd`; $relink_command)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
- fi
-
- # Only actually do things if not in dry run mode.
- $opt_dry_run || {
- # win32 will think the script is a binary if it has
- # a .exe suffix, so we strip it off here.
- case $output in
- *.exe) func_stripname '' '.exe' "$output"
- output=$func_stripname_result ;;
- esac
- # test for cygwin because mv fails w/o .exe extensions
- case $host in
- *cygwin*)
- exeext=.exe
- func_stripname '' '.exe' "$outputname"
- outputname=$func_stripname_result ;;
- *) exeext= ;;
- esac
- case $host in
- *cygwin* | *mingw* )
- func_dirname_and_basename "$output" "" "."
- output_name=$func_basename_result
- output_path=$func_dirname_result
- cwrappersource=$output_path/$objdir/lt-$output_name.c
- cwrapper=$output_path/$output_name.exe
- $RM $cwrappersource $cwrapper
- trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-
- func_emit_cwrapperexe_src > $cwrappersource
-
- # The wrapper executable is built using the $host compiler,
- # because it contains $host paths and files. If cross-
- # compiling, it, like the target executable, must be
- # executed on the $host or under an emulation environment.
- $opt_dry_run || {
- $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
- $STRIP $cwrapper
- }
-
- # Now, create the wrapper script for func_source use:
- func_ltwrapper_scriptname $cwrapper
- $RM $func_ltwrapper_scriptname_result
- trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
- $opt_dry_run || {
- # note: this script will not be executed, so do not chmod.
- if test "x$build" = "x$host"; then
- $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
- else
- func_emit_wrapper no > $func_ltwrapper_scriptname_result
- fi
- }
- ;;
- * )
- $RM $output
- trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
-
- func_emit_wrapper no > $output
- chmod +x $output
- ;;
- esac
- }
- exit $EXIT_SUCCESS
- ;;
- esac
-
- # See if we need to build an old-fashioned archive.
- for oldlib in $oldlibs; do
-
- case $build_libtool_libs in
- convenience)
- oldobjs="$libobjs_save $symfileobj"
- addlibs=$convenience
- build_libtool_libs=no
- ;;
- module)
- oldobjs=$libobjs_save
- addlibs=$old_convenience
- build_libtool_libs=no
- ;;
- *)
- oldobjs="$old_deplibs $non_pic_objects"
- $preload && test -f "$symfileobj" \
- && func_append oldobjs " $symfileobj"
- addlibs=$old_convenience
- ;;
- esac
-
- if test -n "$addlibs"; then
- gentop=$output_objdir/${outputname}x
- func_append generated " $gentop"
-
- func_extract_archives $gentop $addlibs
- func_append oldobjs " $func_extract_archives_result"
- fi
-
- # Do each command in the archive commands.
- if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then
- cmds=$old_archive_from_new_cmds
- else
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop=$output_objdir/${outputname}x
- func_append generated " $gentop"
-
- func_extract_archives $gentop $dlprefiles
- func_append oldobjs " $func_extract_archives_result"
- fi
-
- # POSIX demands no paths to be encoded in archives. We have
- # to avoid creating archives with duplicate basenames if we
- # might have to extract them afterwards, e.g., when creating a
- # static archive out of a convenience library, or when linking
- # the entirety of a libtool archive into another (currently
- # not supported by libtool).
- if (for obj in $oldobjs
- do
- func_basename "$obj"
- $ECHO "$func_basename_result"
- done | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- echo "copying selected object files to avoid basename conflicts..."
- gentop=$output_objdir/${outputname}x
- func_append generated " $gentop"
- func_mkdir_p "$gentop"
- save_oldobjs=$oldobjs
- oldobjs=
- counter=1
- for obj in $save_oldobjs
- do
- func_basename "$obj"
- objbase=$func_basename_result
- case " $oldobjs " in
- " ") oldobjs=$obj ;;
- *[\ /]"$objbase "*)
- while :; do
- # Make sure we don't pick an alternate name that also
- # overlaps.
- newobj=lt$counter-$objbase
- func_arith $counter + 1
- counter=$func_arith_result
- case " $oldobjs " in
- *[\ /]"$newobj "*) ;;
- *) if test ! -f "$gentop/$newobj"; then break; fi ;;
- esac
- done
- func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
- func_append oldobjs " $gentop/$newobj"
- ;;
- *) func_append oldobjs " $obj" ;;
- esac
- done
- fi
- func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
- tool_oldlib=$func_to_tool_file_result
- eval cmds=\"$old_archive_cmds\"
-
- func_len " $cmds"
- len=$func_len_result
- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- cmds=$old_archive_cmds
- elif test -n "$archiver_list_spec"; then
- func_verbose "using command file archive linking..."
- for obj in $oldobjs
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result"
- done > $output_objdir/$libname.libcmd
- func_to_tool_file "$output_objdir/$libname.libcmd"
- oldobjs=" $archiver_list_spec$func_to_tool_file_result"
- cmds=$old_archive_cmds
- else
- # the command line is too long to link in one step, link in parts
- func_verbose "using piecewise archive linking..."
- save_RANLIB=$RANLIB
- RANLIB=:
- objlist=
- concat_cmds=
- save_oldobjs=$oldobjs
- oldobjs=
- # Is there a better way of finding the last object in the list?
- for obj in $save_oldobjs
- do
- last_oldobj=$obj
- done
- eval test_cmds=\"$old_archive_cmds\"
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
- for obj in $save_oldobjs
- do
- func_len " $obj"
- func_arith $len + $func_len_result
- len=$func_arith_result
- func_append objlist " $obj"
- if test "$len" -lt "$max_cmd_len"; then
- :
- else
- # the above command should be used before it gets too long
- oldobjs=$objlist
- if test "$obj" = "$last_oldobj"; then
- RANLIB=$save_RANLIB
- fi
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\$concat_cmds$old_archive_cmds\"
- objlist=
- len=$len0
- fi
- done
- RANLIB=$save_RANLIB
- oldobjs=$objlist
- if test -z "$oldobjs"; then
- eval cmds=\"\$concat_cmds\"
- else
- eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
- fi
- fi
- fi
- func_execute_cmds "$cmds" 'exit $?'
- done
-
- test -n "$generated" && \
- func_show_eval "${RM}r$generated"
-
- # Now create the libtool archive.
- case $output in
- *.la)
- old_library=
- test yes = "$build_old_libs" && old_library=$libname.$libext
- func_verbose "creating $output"
-
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
- fi
- done
- # Quote the link command for shipping.
- relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
- if test yes = "$hardcode_automatic"; then
- relink_command=
- fi
-
- # Only create the output if not a dry run.
- $opt_dry_run || {
- for installed in no yes; do
- if test yes = "$installed"; then
- if test -z "$install_libdir"; then
- break
- fi
- output=$output_objdir/${outputname}i
- # Replace all uninstalled libtool libraries with the installed ones
- newdependency_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- *.la)
- func_basename "$deplib"
- name=$func_basename_result
- func_resolve_sysroot "$deplib"
- eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
- test -z "$libdir" && \
- func_fatal_error "'$deplib' is not a valid libtool archive"
- func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
- ;;
- -L*)
- func_stripname -L '' "$deplib"
- func_replace_sysroot "$func_stripname_result"
- func_append newdependency_libs " -L$func_replace_sysroot_result"
- ;;
- -R*)
- func_stripname -R '' "$deplib"
- func_replace_sysroot "$func_stripname_result"
- func_append newdependency_libs " -R$func_replace_sysroot_result"
- ;;
- *) func_append newdependency_libs " $deplib" ;;
- esac
- done
- dependency_libs=$newdependency_libs
- newdlfiles=
-
- for lib in $dlfiles; do
- case $lib in
- *.la)
- func_basename "$lib"
- name=$func_basename_result
- eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- test -z "$libdir" && \
- func_fatal_error "'$lib' is not a valid libtool archive"
- func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
- ;;
- *) func_append newdlfiles " $lib" ;;
- esac
- done
- dlfiles=$newdlfiles
- newdlprefiles=
- for lib in $dlprefiles; do
- case $lib in
- *.la)
- # Only pass preopened files to the pseudo-archive (for
- # eventual linking with the app. that links it) if we
- # didn't already link the preopened objects directly into
- # the library:
- func_basename "$lib"
- name=$func_basename_result
- eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- test -z "$libdir" && \
- func_fatal_error "'$lib' is not a valid libtool archive"
- func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
- ;;
- esac
- done
- dlprefiles=$newdlprefiles
- else
- newdlfiles=
- for lib in $dlfiles; do
- case $lib in
- [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
- *) abs=`pwd`"/$lib" ;;
- esac
- func_append newdlfiles " $abs"
- done
- dlfiles=$newdlfiles
- newdlprefiles=
- for lib in $dlprefiles; do
- case $lib in
- [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
- *) abs=`pwd`"/$lib" ;;
- esac
- func_append newdlprefiles " $abs"
- done
- dlprefiles=$newdlprefiles
- fi
- $RM $output
- # place dlname in correct position for cygwin
- # In fact, it would be nice if we could use this code for all target
- # systems that can't hard-code library paths into their executables
- # and that have no shared library path variable independent of PATH,
- # but it turns out we can't easily determine that from inspecting
- # libtool variables, so we have to hard-code the OSs to which it
- # applies here; at the moment, that means platforms that use the PE
- # object format with DLL files. See the long comment at the top of
- # tests/bindir.at for full details.
- tdlname=$dlname
- case $host,$output,$installed,$module,$dlname in
- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
- # If a -bindir argument was supplied, place the dll there.
- if test -n "$bindir"; then
- func_relative_path "$install_libdir" "$bindir"
- tdlname=$func_relative_path_result/$dlname
- else
- # Otherwise fall back on heuristic.
- tdlname=../bin/$dlname
- fi
- ;;
- esac
- $ECHO > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Linker flags that cannot go in dependency_libs.
-inherited_linker_flags='$new_inherited_linker_flags'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Names of additional weak libraries provided by this library
-weak_library_names='$weak_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
- if test no,yes = "$installed,$need_relink"; then
- $ECHO >> $output "\
-relink_command=\"$relink_command\""
- fi
- done
- }
-
- # Do a symbolic link so that the libtool archive can be found in
- # LD_LIBRARY_PATH before the program is installed.
- func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
- ;;
- esac
- exit $EXIT_SUCCESS
-}
-
-if test link = "$opt_mode" || test relink = "$opt_mode"; then
- func_mode_link ${1+"$@"}
-fi
-
-
-# func_mode_uninstall arg...
-func_mode_uninstall ()
-{
- $debug_cmd
-
- RM=$nonopt
- files=
- rmforce=false
- exit_status=0
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic=$magic
-
- for arg
- do
- case $arg in
- -f) func_append RM " $arg"; rmforce=: ;;
- -*) func_append RM " $arg" ;;
- *) func_append files " $arg" ;;
- esac
- done
-
- test -z "$RM" && \
- func_fatal_help "you must specify an RM program"
-
- rmdirs=
-
- for file in $files; do
- func_dirname "$file" "" "."
- dir=$func_dirname_result
- if test . = "$dir"; then
- odir=$objdir
- else
- odir=$dir/$objdir
- fi
- func_basename "$file"
- name=$func_basename_result
- test uninstall = "$opt_mode" && odir=$dir
-
- # Remember odir for removal later, being careful to avoid duplicates
- if test clean = "$opt_mode"; then
- case " $rmdirs " in
- *" $odir "*) ;;
- *) func_append rmdirs " $odir" ;;
- esac
- fi
-
- # Don't error if the file doesn't exist and rm -f was used.
- if { test -L "$file"; } >/dev/null 2>&1 ||
- { test -h "$file"; } >/dev/null 2>&1 ||
- test -f "$file"; then
- :
- elif test -d "$file"; then
- exit_status=1
- continue
- elif $rmforce; then
- continue
- fi
-
- rmfiles=$file
-
- case $name in
- *.la)
- # Possibly a libtool archive, so verify it.
- if func_lalib_p "$file"; then
- func_source $dir/$name
-
- # Delete the libtool libraries and symlinks.
- for n in $library_names; do
- func_append rmfiles " $odir/$n"
- done
- test -n "$old_library" && func_append rmfiles " $odir/$old_library"
-
- case $opt_mode in
- clean)
- case " $library_names " in
- *" $dlname "*) ;;
- *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
- esac
- test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
- ;;
- uninstall)
- if test -n "$library_names"; then
- # Do each command in the postuninstall commands.
- func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1'
- fi
-
- if test -n "$old_library"; then
- # Do each command in the old_postuninstall commands.
- func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1'
- fi
- # FIXME: should reinstall the best remaining shared library.
- ;;
- esac
- fi
- ;;
-
- *.lo)
- # Possibly a libtool object, so verify it.
- if func_lalib_p "$file"; then
-
- # Read the .lo file
- func_source $dir/$name
-
- # Add PIC object to the list of files to remove.
- if test -n "$pic_object" && test none != "$pic_object"; then
- func_append rmfiles " $dir/$pic_object"
- fi
-
- # Add non-PIC object to the list of files to remove.
- if test -n "$non_pic_object" && test none != "$non_pic_object"; then
- func_append rmfiles " $dir/$non_pic_object"
- fi
- fi
- ;;
-
- *)
- if test clean = "$opt_mode"; then
- noexename=$name
- case $file in
- *.exe)
- func_stripname '' '.exe' "$file"
- file=$func_stripname_result
- func_stripname '' '.exe' "$name"
- noexename=$func_stripname_result
- # $file with .exe has already been added to rmfiles,
- # add $file without .exe
- func_append rmfiles " $file"
- ;;
- esac
- # Do a test to see if this is a libtool program.
- if func_ltwrapper_p "$file"; then
- if func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- relink_command=
- func_source $func_ltwrapper_scriptname_result
- func_append rmfiles " $func_ltwrapper_scriptname_result"
- else
- relink_command=
- func_source $dir/$noexename
- fi
-
- # note $name still contains .exe if it was in $file originally
- # as does the version of $file that was added into $rmfiles
- func_append rmfiles " $odir/$name $odir/${name}S.$objext"
- if test yes = "$fast_install" && test -n "$relink_command"; then
- func_append rmfiles " $odir/lt-$name"
- fi
- if test "X$noexename" != "X$name"; then
- func_append rmfiles " $odir/lt-$noexename.c"
- fi
- fi
- fi
- ;;
- esac
- func_show_eval "$RM $rmfiles" 'exit_status=1'
- done
-
- # Try to remove the $objdir's in the directories where we deleted files
- for dir in $rmdirs; do
- if test -d "$dir"; then
- func_show_eval "rmdir $dir >/dev/null 2>&1"
- fi
- done
-
- exit $exit_status
-}
-
-if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then
- func_mode_uninstall ${1+"$@"}
-fi
-
-test -z "$opt_mode" && {
- help=$generic_help
- func_fatal_help "you must specify a MODE"
-}
-
-test -z "$exec_cmd" && \
- func_fatal_help "invalid operation mode '$opt_mode'"
-
-if test -n "$exec_cmd"; then
- eval exec "$exec_cmd"
- exit $EXIT_FAILURE
-fi
-
-exit $exit_status
-
-
-# The TAGs below are defined such that we never get into a situation
-# where we disable both kinds of libraries. Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them. This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration. But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
diff --git a/FreeRTOS-Plus/Source/WolfSSL/build-aux/missing b/FreeRTOS-Plus/Source/WolfSSL/build-aux/missing
deleted file mode 100644
index 8d0eaad25..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/build-aux/missing
+++ /dev/null
@@ -1,215 +0,0 @@
-#! /bin/sh
-# Common wrapper for a few potentially missing GNU programs.
-
-scriptversion=2018-03-07.03; # UTC
-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
-# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program 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, or (at your option)
-# any later version.
-
-# This program 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, see <https://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-if test $# -eq 0; then
- echo 1>&2 "Try '$0 --help' for more information"
- exit 1
-fi
-
-case $1 in
-
- --is-lightweight)
- # Used by our autoconf macros to check whether the available missing
- # script is modern enough.
- exit 0
- ;;
-
- --run)
- # Back-compat with the calling convention used by older automake.
- shift
- ;;
-
- -h|--h|--he|--hel|--help)
- echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
-to PROGRAM being missing or too old.
-
-Options:
- -h, --help display this help and exit
- -v, --version output version information and exit
-
-Supported PROGRAM values:
- aclocal autoconf autoheader autom4te automake makeinfo
- bison yacc flex lex help2man
-
-Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
-'g' are ignored when checking the name.
-
-Send bug reports to <bug-automake@gnu.org>."
- exit $?
- ;;
-
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing $scriptversion (GNU Automake)"
- exit $?
- ;;
-
- -*)
- echo 1>&2 "$0: unknown '$1' option"
- echo 1>&2 "Try '$0 --help' for more information"
- exit 1
- ;;
-
-esac
-
-# Run the given program, remember its exit status.
-"$@"; st=$?
-
-# If it succeeded, we are done.
-test $st -eq 0 && exit 0
-
-# Also exit now if we it failed (or wasn't found), and '--version' was
-# passed; such an option is passed most likely to detect whether the
-# program is present and works.
-case $2 in --version|--help) exit $st;; esac
-
-# Exit code 63 means version mismatch. This often happens when the user
-# tries to use an ancient version of a tool on a file that requires a
-# minimum version.
-if test $st -eq 63; then
- msg="probably too old"
-elif test $st -eq 127; then
- # Program was missing.
- msg="missing on your system"
-else
- # Program was found and executed, but failed. Give up.
- exit $st
-fi
-
-perl_URL=https://www.perl.org/
-flex_URL=https://github.com/westes/flex
-gnu_software_URL=https://www.gnu.org/software
-
-program_details ()
-{
- case $1 in
- aclocal|automake)
- echo "The '$1' program is part of the GNU Automake package:"
- echo "<$gnu_software_URL/automake>"
- echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/autoconf>"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- autoconf|autom4te|autoheader)
- echo "The '$1' program is part of the GNU Autoconf package:"
- echo "<$gnu_software_URL/autoconf/>"
- echo "It also requires GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- esac
-}
-
-give_advice ()
-{
- # Normalize program name to check for.
- normalized_program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
- printf '%s\n' "'$1' is $msg."
-
- configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
- case $normalized_program in
- autoconf*)
- echo "You should only need it if you modified 'configure.ac',"
- echo "or m4 files included by it."
- program_details 'autoconf'
- ;;
- autoheader*)
- echo "You should only need it if you modified 'acconfig.h' or"
- echo "$configure_deps."
- program_details 'autoheader'
- ;;
- automake*)
- echo "You should only need it if you modified 'Makefile.am' or"
- echo "$configure_deps."
- program_details 'automake'
- ;;
- aclocal*)
- echo "You should only need it if you modified 'acinclude.m4' or"
- echo "$configure_deps."
- program_details 'aclocal'
- ;;
- autom4te*)
- echo "You might have modified some maintainer files that require"
- echo "the 'autom4te' program to be rebuilt."
- program_details 'autom4te'
- ;;
- bison*|yacc*)
- echo "You should only need it if you modified a '.y' file."
- echo "You may want to install the GNU Bison package:"
- echo "<$gnu_software_URL/bison/>"
- ;;
- lex*|flex*)
- echo "You should only need it if you modified a '.l' file."
- echo "You may want to install the Fast Lexical Analyzer package:"
- echo "<$flex_URL>"
- ;;
- help2man*)
- echo "You should only need it if you modified a dependency" \
- "of a man page."
- echo "You may want to install the GNU Help2man package:"
- echo "<$gnu_software_URL/help2man/>"
- ;;
- makeinfo*)
- echo "You should only need it if you modified a '.texi' file, or"
- echo "any other file indirectly affecting the aspect of the manual."
- echo "You might want to install the Texinfo package:"
- echo "<$gnu_software_URL/texinfo/>"
- echo "The spurious makeinfo call might also be the consequence of"
- echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
- echo "want to install GNU make:"
- echo "<$gnu_software_URL/make/>"
- ;;
- *)
- echo "You might have modified some files without having the proper"
- echo "tools for further handling them. Check the 'README' file, it"
- echo "often tells you about the needed prerequisites for installing"
- echo "this package. You may also peek at any GNU archive site, in"
- echo "case some other package contains this missing '$1' program."
- ;;
- esac
-}
-
-give_advice "$1" | sed -e '1s/^/WARNING: /' \
- -e '2,$s/^/ /' >&2
-
-# Propagate the correct exit status (expected to be 127 for a program
-# not found, 63 for a program that failed due to version mismatch).
-exit $st
-
-# Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC0"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/FreeRTOS-Plus/Source/WolfSSL/build-aux/test-driver b/FreeRTOS-Plus/Source/WolfSSL/build-aux/test-driver
deleted file mode 100644
index 89dba1e07..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/build-aux/test-driver
+++ /dev/null
@@ -1,148 +0,0 @@
-#! /bin/sh
-# test-driver - basic testsuite driver script.
-
-scriptversion=2018-03-07.03; # UTC
-
-# Copyright (C) 2011-2020 Free Software Foundation, Inc.
-#
-# This program 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, or (at your option)
-# any later version.
-#
-# This program 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, see <https://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-# Make unconditional expansion of undefined variables an error. This
-# helps a lot in preventing typo-related bugs.
-set -u
-
-usage_error ()
-{
- echo "$0: $*" >&2
- print_usage >&2
- exit 2
-}
-
-print_usage ()
-{
- cat <<END
-Usage:
- test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
- [--expect-failure={yes|no}] [--color-tests={yes|no}]
- [--enable-hard-errors={yes|no}] [--]
- TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
-The '--test-name', '--log-file' and '--trs-file' options are mandatory.
-END
-}
-
-test_name= # Used for reporting.
-log_file= # Where to save the output of the test script.
-trs_file= # Where to save the metadata of the test run.
-expect_failure=no
-color_tests=no
-enable_hard_errors=yes
-while test $# -gt 0; do
- case $1 in
- --help) print_usage; exit $?;;
- --version) echo "test-driver $scriptversion"; exit $?;;
- --test-name) test_name=$2; shift;;
- --log-file) log_file=$2; shift;;
- --trs-file) trs_file=$2; shift;;
- --color-tests) color_tests=$2; shift;;
- --expect-failure) expect_failure=$2; shift;;
- --enable-hard-errors) enable_hard_errors=$2; shift;;
- --) shift; break;;
- -*) usage_error "invalid option: '$1'";;
- *) break;;
- esac
- shift
-done
-
-missing_opts=
-test x"$test_name" = x && missing_opts="$missing_opts --test-name"
-test x"$log_file" = x && missing_opts="$missing_opts --log-file"
-test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
-if test x"$missing_opts" != x; then
- usage_error "the following mandatory options are missing:$missing_opts"
-fi
-
-if test $# -eq 0; then
- usage_error "missing argument"
-fi
-
-if test $color_tests = yes; then
- # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
- red='' # Red.
- grn='' # Green.
- lgn='' # Light green.
- blu='' # Blue.
- mgn='' # Magenta.
- std='' # No color.
-else
- red= grn= lgn= blu= mgn= std=
-fi
-
-do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
-trap "st=129; $do_exit" 1
-trap "st=130; $do_exit" 2
-trap "st=141; $do_exit" 13
-trap "st=143; $do_exit" 15
-
-# Test script is run here.
-"$@" >$log_file 2>&1
-estatus=$?
-
-if test $enable_hard_errors = no && test $estatus -eq 99; then
- tweaked_estatus=1
-else
- tweaked_estatus=$estatus
-fi
-
-case $tweaked_estatus:$expect_failure in
- 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
- 0:*) col=$grn res=PASS recheck=no gcopy=no;;
- 77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
- 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
- *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
- *:*) col=$red res=FAIL recheck=yes gcopy=yes;;
-esac
-
-# Report the test outcome and exit status in the logs, so that one can
-# know whether the test passed or failed simply by looking at the '.log'
-# file, without the need of also peaking into the corresponding '.trs'
-# file (automake bug#11814).
-echo "$res $test_name (exit status: $estatus)" >>$log_file
-
-# Report outcome to console.
-echo "${col}${res}${std}: $test_name"
-
-# Register the test result, and other relevant metadata.
-echo ":test-result: $res" > $trs_file
-echo ":global-test-result: $res" >> $trs_file
-echo ":recheck: $recheck" >> $trs_file
-echo ":copy-in-global-log: $gcopy" >> $trs_file
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC0"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-cert.der
deleted file mode 100644
index 6a2b06e40..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-cert.pem
deleted file mode 100644
index 6f8a188f3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-cert.pem
+++ /dev/null
@@ -1,65 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 15779322327764802375 (0xdafb6a0dfecf9b47)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting_1024, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting_1024, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
- Modulus:
- 00:cd:ac:dd:47:ec:be:b7:24:c3:63:1b:54:98:79:
- e1:c7:31:16:59:d6:9d:77:9d:8d:e2:8b:ed:04:17:
- b2:c6:eb:e4:9b:91:be:31:50:62:97:58:b5:7f:29:
- de:b3:71:24:0b:bf:97:09:7f:26:dc:2d:ec:a8:2e:
- b2:64:2b:7a:2b:35:19:2d:a2:80:cb:99:fd:94:71:
- 1b:23:8d:54:db:2e:62:8d:81:08:2d:f4:24:72:27:
- 6c:f9:c9:8e:db:4c:75:ba:9b:01:f8:3f:18:f4:e6:
- 7f:fb:57:94:92:cc:88:c4:b4:00:c2:aa:d4:e5:88:
- 18:b3:11:2f:73:c0:d6:29:09
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- D3:22:8F:28:2C:E0:05:EE:D3:ED:C3:71:3D:C9:B2:36:3A:1D:BF:A8
- X509v3 Authority Key Identifier:
- keyid:D3:22:8F:28:2C:E0:05:EE:D3:ED:C3:71:3D:C9:B2:36:3A:1D:BF:A8
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting_1024/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:DA:FB:6A:0D:FE:CF:9B:47
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 1d:48:f6:40:41:04:06:f2:e4:72:2f:ea:ff:c1:67:6b:15:bb:
- 0a:28:23:28:07:c6:d7:13:2c:be:00:00:ac:1d:f7:f4:92:d3:
- 2b:af:23:eb:9f:1a:e2:11:3c:2d:97:f2:0f:ac:ae:97:86:0a:
- fb:a8:4f:74:1b:de:19:51:db:cd:e2:11:38:c1:a4:9d:56:ab:
- 47:5c:de:ba:eb:27:df:6d:c8:7e:3a:bd:2e:9b:2a:ad:22:3b:
- 95:a9:f2:28:03:bc:e5:ec:cc:f2:08:d4:c8:2f:db:ea:fb:2e:
- 52:16:8c:42:02:a4:59:6d:4c:33:b4:9a:d2:73:4a:1e:9f:d9:
- c8:83
------BEGIN CERTIFICATE-----
-MIIDtTCCAx6gAwIBAgIJANr7ag3+z5tHMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
-A1UECgwIU2F3dG9vdGgxGDAWBgNVBAsMD0NvbnN1bHRpbmdfMTAyNDEYMBYGA1UE
-AwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE4MDQxMzE1MjMxMFoXDTIxMDEwNzE1MjMxMFowgZkxCzAJBgNVBAYT
-AlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQK
-DAhTYXd0b290aDEYMBYGA1UECwwPQ29uc3VsdGluZ18xMDI0MRgwFgYDVQQDDA93
-d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20w
-gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM2s3Ufsvrckw2MbVJh54ccxFlnW
-nXedjeKL7QQXssbr5JuRvjFQYpdYtX8p3rNxJAu/lwl/Jtwt7KgusmQreis1GS2i
-gMuZ/ZRxGyONVNsuYo2BCC30JHInbPnJjttMdbqbAfg/GPTmf/tXlJLMiMS0AMKq
-1OWIGLMRL3PA1ikJAgMBAAGjggEBMIH+MB0GA1UdDgQWBBTTIo8oLOAF7tPtw3E9
-ybI2Oh2/qDCBzgYDVR0jBIHGMIHDgBTTIo8oLOAF7tPtw3E9ybI2Oh2/qKGBn6SB
-nDCBmTELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0Jv
-emVtYW4xETAPBgNVBAoMCFNhd3Rvb3RoMRgwFgYDVQQLDA9Db25zdWx0aW5nXzEw
-MjQxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5m
-b0B3b2xmc3NsLmNvbYIJANr7ag3+z5tHMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcN
-AQELBQADgYEAHUj2QEEEBvLkci/q/8FnaxW7CigjKAfG1xMsvgAArB339JLTK68j
-658a4hE8LZfyD6yul4YK+6hPdBveGVHbzeIROMGknVarR1zeuusn323Ifjq9Lpsq
-rSI7lanyKAO85ezM8gjUyC/b6vsuUhaMQgKkWW1MM7Sa0nNKHp/ZyIM=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-key.der
deleted file mode 100644
index 00f0f5b6a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-key.pem
deleted file mode 100644
index de4c756ae..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/ca-key.pem
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXgIBAAKBgQDNrN1H7L63JMNjG1SYeeHHMRZZ1p13nY3ii+0EF7LG6+Sbkb4x
-UGKXWLV/Kd6zcSQLv5cJfybcLeyoLrJkK3orNRktooDLmf2UcRsjjVTbLmKNgQgt
-9CRyJ2z5yY7bTHW6mwH4Pxj05n/7V5SSzIjEtADCqtTliBizES9zwNYpCQIDAQAB
-AoGAUjU9ASmklSlxm2RqLMPStb5uE5yPtibYdmu9YbxjLdVNu8zGO4nIznubl+dR
-Z2HaqYN7yET1cF4+0H5RuW4TVwhc4WdPYV6lCewR3eS4tPTgYzRM2jIgH4VBXbzb
-JMWvvgJfIvF8zAVWpqY3muv/Ui2/MEuaHe6rnCziwbidyTECQQDpiRbNrC7yTWYX
-vXgSEo2OhCTeLVBBhYw0Cfr7bYdRTBMo8GARhj3CpM9exW9bETIKtSjQgkdEJpLi
-eFm0CLP9AkEA4XW0arWMEfvMQgLF2kjOKUMUAZoss6TLc+uhNVettRYXgANfMje+
-om/5MYS/AG6NAw4wHNAvN/B+wmS/7kvo/QJBAOGZiyvYn+l2l59rayiaP6FjSnJO
-9+6z4kMLOSfWIRiKEyBDRaroMZVsvN7if7ZLoDnz05/JmqrdUJvyg0WF+skCQQCv
-sMd8+ChEw1Dyh7KiXWW6JblrXjdDbkHU/WNMbBzDJon9iaMfQO1fK56mhelJbtyX
-6vB3I4wILXK6DUS7b5AJAkEAkeQuyowKaS9i4mI7pY1aLFY+f2dCkhKSX/OX3eGp
-f60uLfRKV7N6EL3X5OxqCCHp8kZJ0mlHiiBL8rFSg6tvEA==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-cert.der
deleted file mode 100644
index 0195f9de9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-cert.pem
deleted file mode 100644
index d36383d25..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-cert.pem
+++ /dev/null
@@ -1,66 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 13534178914118477827 (0xbbd31003e69d2803)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=wolfSSL_1024, OU=Programming-1024, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:09 2018 GMT
- Not After : Jan 7 15:23:09 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL_1024, OU=Programming-1024, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
- Modulus:
- 00:bc:73:0e:a8:49:f3:74:a2:a9:ef:18:a5:da:55:
- 99:21:f9:c8:ec:b3:6d:48:e5:35:35:75:77:37:ec:
- d1:61:90:5f:3e:d9:e4:d5:df:94:ca:c1:a9:d7:19:
- da:86:c9:e8:4d:c4:61:36:82:fe:ab:ad:7e:77:25:
- bb:8d:11:a5:bc:62:3a:a8:38:cc:39:a2:04:66:b4:
- f7:f7:f3:aa:da:4d:02:0e:bb:5e:8d:69:48:dc:77:
- c9:28:0e:22:e9:6b:a4:26:ba:4c:e8:c1:fd:4a:6f:
- 2b:1f:ef:8a:ae:f6:90:62:e5:64:1e:eb:2b:3c:67:
- c8:dc:27:00:f6:91:68:65:a9
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 81:69:0F:F8:DF:DD:CF:34:29:D5:67:75:71:85:C7:75:10:69:59:EC
- X509v3 Authority Key Identifier:
- keyid:81:69:0F:F8:DF:DD:CF:34:29:D5:67:75:71:85:C7:75:10:69:59:EC
- DirName:/C=US/ST=Montana/L=Bozeman/O=wolfSSL_1024/OU=Programming-1024/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:BB:D3:10:03:E6:9D:28:03
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 84:99:d9:e5:37:c4:44:7d:ce:29:b8:b6:80:0e:ea:a3:e2:fa:
- a2:2f:5c:d2:4a:85:67:b9:8b:fa:9f:7d:da:6d:85:2a:c2:20:
- f3:18:c8:d4:6b:26:b2:7a:68:e7:82:52:87:e7:0c:5b:08:47:
- 7a:55:a5:0d:fa:72:ce:6b:a1:b2:ae:5a:a1:63:ff:68:db:e5:
- 49:ef:f1:0e:98:96:09:b5:04:5f:d4:0a:9b:8a:af:d2:31:1f:
- 95:e5:0f:a8:cd:bb:a1:2d:64:b0:b7:ee:47:a7:58:d9:c7:db:
- b0:92:bb:aa:cf:b8:8a:04:5b:0f:9f:3e:e0:d2:42:52:bd:5d:
- a7:48
------BEGIN CERTIFICATE-----
-MIIDxTCCAy6gAwIBAgIJALvTEAPmnSgDMA0GCSqGSIb3DQEBCwUAMIGeMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEVMBMG
-A1UECgwMd29sZlNTTF8xMDI0MRkwFwYDVQQLDBBQcm9ncmFtbWluZy0xMDI0MRgw
-FgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb20wHhcNMTgwNDEzMTUyMzA5WhcNMjEwMTA3MTUyMzA5WjCBnjELMAkG
-A1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xFTAT
-BgNVBAoMDHdvbGZTU0xfMTAyNDEZMBcGA1UECwwQUHJvZ3JhbW1pbmctMTAyNDEY
-MBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8cw6oSfN0oqnv
-GKXaVZkh+cjss21I5TU1dXc37NFhkF8+2eTV35TKwanXGdqGyehNxGE2gv6rrX53
-JbuNEaW8YjqoOMw5ogRmtPf386raTQIOu16NaUjcd8koDiLpa6Qmukzowf1Kbysf
-74qu9pBi5WQe6ys8Z8jcJwD2kWhlqQIDAQABo4IBBzCCAQMwHQYDVR0OBBYEFIFp
-D/jf3c80KdVndXGFx3UQaVnsMIHTBgNVHSMEgcswgciAFIFpD/jf3c80KdVndXGF
-x3UQaVnsoYGkpIGhMIGeMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQ
-MA4GA1UEBwwHQm96ZW1hbjEVMBMGA1UECgwMd29sZlNTTF8xMDI0MRkwFwYDVQQL
-DBBQcm9ncmFtbWluZy0xMDI0MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAd
-BgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CCQC70xAD5p0oAzAMBgNVHRME
-BTADAQH/MA0GCSqGSIb3DQEBCwUAA4GBAISZ2eU3xER9zim4toAO6qPi+qIvXNJK
-hWe5i/qffdpthSrCIPMYyNRrJrJ6aOeCUofnDFsIR3pVpQ36cs5robKuWqFj/2jb
-5Unv8Q6Ylgm1BF/UCpuKr9IxH5XlD6jNu6EtZLC37kenWNnH27CSu6rPuIoEWw+f
-PuDSQlK9XadI
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-key.der
deleted file mode 100644
index 1c47c2532..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-key.pem
deleted file mode 100644
index 79e398cc6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-key.pem
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXAIBAAKBgQC8cw6oSfN0oqnvGKXaVZkh+cjss21I5TU1dXc37NFhkF8+2eTV
-35TKwanXGdqGyehNxGE2gv6rrX53JbuNEaW8YjqoOMw5ogRmtPf386raTQIOu16N
-aUjcd8koDiLpa6Qmukzowf1Kbysf74qu9pBi5WQe6ys8Z8jcJwD2kWhlqQIDAQAB
-AoGAE5fq6Dh4JaJcBM4NQHwx5cRwzZuCO1gJhjtmX9wxkPFP1dsV3d7XO5WTMRgx
-Dl6j1qIacW6BSBxLz9uOeoZhMtz7VcEWbSeSJEWL8bhIsUsdrN7a3Y4vwpH7palu
-+Dpq8f1QGO+f58PKeOpW09NyW5bdTgZOOsPZvnK2ZQcHTAECQQD6R9R6fJI8Ve+B
-8EEwLaPPjxzmhycFcA3fmDXW8Ys4LyS10IS2eU9xKZRa8GRqrOdyxu1NWZg+Zzrz
-dCz5YRdpAkEAwMGCDQzrxi/ckvmdghox6en3S/KChxzuFmrRHRiCcPPAti/28/cd
-8YYjyE7rj1aOj/W/8fcrtcw9xlc5DBtUQQJBAJ1+Bd7t9Ley+/wwS1Ud4y8BR5Zp
-Bc0OLiy9g2O2q3y3bcpbZKfOvobfO1PeYdIe66X2N+2sq3jZTOdV+9cRmcECQBiY
-GCnmHic5cCForAovoXLBIYaVOMZYkKBXnLrjp7EVyN72G8JhI3bvsJ0cRL4TQzln
-F8idyvv1RWSLOIIs8oECQDmJ5ZwZVTC6t0iMSBQO9J9+d5dD4bQZNTEjdZw7RK1p
-ElbuAGFkFmbTfHQrFbSi/r8IaxpdP5ASsQWGMSnb2eI=
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-keyPub.der b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-keyPub.der
deleted file mode 100644
index a5c1817d9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/client-keyPub.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dh1024.der b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dh1024.der
deleted file mode 100644
index f29e6dc04..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dh1024.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dh1024.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dh1024.pem
deleted file mode 100644
index 372f50a12..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dh1024.pem
+++ /dev/null
@@ -1,17 +0,0 @@
- PKCS#3 DH Parameters: (1024 bit)
- prime:
- 00:a4:d2:b8:6e:78:f5:d9:ed:2d:7c:dd:b6:16:86:
- 5a:4b:05:76:90:dd:66:61:b9:6d:52:a7:1c:af:62:
- c6:69:47:7b:39:f2:fb:94:ec:bc:79:ff:24:5e:ef:
- 79:bb:59:b2:fc:ca:07:d6:f4:e9:34:f7:e8:38:e7:
- d7:33:44:1d:a3:64:76:1a:84:97:54:74:40:84:1f:
- 15:fe:7c:25:2a:2b:25:fd:9e:c1:89:33:8c:39:25:
- 2b:40:e6:cd:f8:a8:a1:8a:53:c6:47:b2:a0:d7:8f:
- eb:2e:60:0a:0d:4b:f8:b4:94:8c:63:0a:ad:c7:10:
- ea:c7:a1:b9:9d:f2:a8:37:73
- generator: 2 (0x2)
------BEGIN DH PARAMETERS-----
-MIGHAoGBAKTSuG549dntLXzdthaGWksFdpDdZmG5bVKnHK9ixmlHezny+5TsvHn/
-JF7vebtZsvzKB9b06TT36Djn1zNEHaNkdhqEl1R0QIQfFf58JSorJf2ewYkzjDkl
-K0DmzfiooYpTxkeyoNeP6y5gCg1L+LSUjGMKrccQ6sehuZ3yqDdzAgEC
------END DH PARAMETERS-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dsa-pub-1024.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dsa-pub-1024.pem
deleted file mode 100644
index f39bc3781..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dsa-pub-1024.pem
+++ /dev/null
@@ -1,12 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIIBtjCCASsGByqGSM44BAEwggEeAoGBAMEM3EaWjXZRMJnhLlfFx9Dykppgxo9g
-KlwmptExDz1WyFk8W6xnJychMdDd+OEfLE99cXDMoWH1zG8lMbJaZrNAGPhg4bT0
-PM+zd+9GIjPnO7Vt0nSsfRUk0p1sOZ0MfYEqyw+uoiNCgs3CNAtwTkN2DZqzx1+D
-qk+LtBWrb5TrAhUAwyFrnSVEkAlyRm7O1YSRXgjsfTcCgYB9FdIgxRa9+fAsgO65
-OGPkqEUowvSR3QHGtP0fR0gKLilO/sPIfs5aGsJL/Tblor8B6Gt9T5BKJx5Q/Fkt
-LF7KKxKC3FYiiWnzOCPWEE9Rb+WkzA2AKGgp/wSBqAcdjhjT54ucvsP/kziEFf15
-AuEre29pQtuRbimNH6udhb1QQwOBhAACgYAhRYQ296sCvQlqjhTyj8/VFahXvXnV
-2YuQ/2QFm0KHXbRXsmR2ectwNcaBvD87EZ3KRXQiSXzea6WycOw9YXcTmgzLUefH
-aBkQ38973pmPIrO91HDJqVE0GLOIIbh796Y/9z7//BO4yAXQO9jcxeFKwiB2zYlu
-ZOVDOiFFgqqbMg==
------END PUBLIC KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dsa1024.der b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dsa1024.der
deleted file mode 100644
index 65db155bc..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dsa1024.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dsa1024.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dsa1024.pem
deleted file mode 100644
index c5bb06759..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/dsa1024.pem
+++ /dev/null
@@ -1,12 +0,0 @@
------BEGIN DSA PRIVATE KEY-----
-MIIBvAIBAAKBgQD3S/m7FZjr3d4eTnGIhfK3uuJK2nZAzWlInoN8EfdlMXj1JS33
-t/hSP77YtsX+GBVbudWShryyF3zYsL6gfPLVc3pYj43lSgCZg0rAnhYJoRA01Rm7
-Y+Pdg3R/EMpzde4xSt2f4AJqne6yS6drKmzHhnfoBBXckrR6KR9Og2OFVQIVANIF
-5HP7wZnF3GikjZInPeJSX4mLAoGBAKohAglDbvuiVBSFCvQofMvM2/UeohipId6I
-iDOMLuuNo/AdyI/2fvjPEvW0oRFvDNTwBq3E/BRFx5QVvBlLru+Tak/MFNhHizlm
-hwLUKAq47gk39ACgBKd5p9I89zRDVo7QfMLYTQ+J7RTBLJxMGZue3FMJn98t8Awn
-VDp3FC3eAoGBAOgffLfAVFGnKC1YfN7UXN3VdoQ8NiDAwyXXOjjhVMj9QGgaIVQm
-ORS/9qOcXtkr98klugAJy38MSiT9FRYVSM0LUkRAe5BjK5AixRgFgFOvgx9U4rCi
-C1qSJOFiKD+3yrmJ1qC3ra4F4cFZQO1KG2ine/vDIIHvS/NpkbDOOrA4AhQlODuh
-GXXfm/VyU0854RzsE4SCGA==
------END DSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/include.am b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/include.am
deleted file mode 100644
index 2dfbd84f9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/include.am
+++ /dev/null
@@ -1,26 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- certs/1024/ca-cert.pem \
- certs/1024/ca-key.pem \
- certs/1024/client-cert.pem \
- certs/1024/client-key.pem \
- certs/1024/dh1024.pem \
- certs/1024/dsa1024.pem \
- certs/1024/dsa-pub-1024.pem \
- certs/1024/server-cert.pem \
- certs/1024/server-key.pem
-
-EXTRA_DIST += \
- certs/1024/ca-cert.der \
- certs/1024/ca-key.der \
- certs/1024/client-cert.der \
- certs/1024/client-key.der \
- certs/1024/client-keyPub.der \
- certs/1024/dh1024.der \
- certs/1024/dsa1024.der \
- certs/1024/rsa1024.der \
- certs/1024/server-cert.der \
- certs/1024/server-key.der
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/rsa1024.der b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/rsa1024.der
deleted file mode 100644
index 173d32bce..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/rsa1024.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-cert.der
deleted file mode 100644
index 3e9b678a6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-cert.pem
deleted file mode 100644
index 4b432fbbf..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-cert.pem
+++ /dev/null
@@ -1,130 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting_1024, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL, OU=Support_1024, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
- Modulus:
- 00:aa:3e:a5:9c:d3:17:49:65:43:de:d0:f3:4b:1c:
- db:49:0c:fc:7a:65:05:6d:de:6a:c4:e4:73:2c:8a:
- 96:82:8f:23:a5:06:71:1c:06:3e:2f:92:8d:0b:29:
- 34:45:59:e9:a9:bc:61:d7:24:37:5d:b5:c4:37:8d:
- ba:67:b2:ef:03:27:fa:c1:b4:cd:6b:00:66:b4:d6:
- 73:70:1f:08:3a:cc:77:ad:e9:f9:34:d4:f3:a0:2d:
- a9:e7:58:a9:c0:61:84:b6:ec:3d:0a:ad:fd:5c:86:
- 73:aa:6b:47:d8:8b:2e:58:4b:69:12:82:26:55:e6:
- 14:bf:55:70:88:fe:f9:75:e1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- D9:3C:35:EA:74:0E:23:BE:9C:FC:FA:29:90:09:C1:E7:84:16:9F:7C
- X509v3 Authority Key Identifier:
- keyid:D3:22:8F:28:2C:E0:05:EE:D3:ED:C3:71:3D:C9:B2:36:3A:1D:BF:A8
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting_1024/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:DA:FB:6A:0D:FE:CF:9B:47
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 0b:c3:af:43:85:64:61:e7:ab:5a:2a:1b:b2:29:d5:66:68:44:
- 1a:6d:66:fc:3d:b1:88:ec:a5:41:18:67:62:34:a4:5e:c9:69:
- cd:40:c8:56:7e:bf:eb:bc:61:1f:33:34:58:be:57:fd:e6:98:
- dd:51:27:7c:b7:2c:bc:c9:39:e5:e5:95:82:e1:3f:d9:b9:97:
- 30:4e:33:2c:ef:f8:db:b4:ee:35:75:9e:7a:3f:22:8f:a5:71:
- d4:01:64:6c:f2:85:f7:72:99:2c:80:0f:a4:31:1d:d4:0b:1e:
- a5:0f:e7:53:0a:de:15:0d:b2:d0:6b:f4:d6:2f:e2:0b:a3:8a:
- 5a:6e
------BEGIN CERTIFICATE-----
-MIIDqTCCAxKgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRgwFgYDVQQLDA9Db25zdWx0aW5nXzEwMjQxGDAWBgNVBAMMD3d3dy53
-b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAeFw0x
-ODA0MTMxNTIzMTBaFw0yMTAxMDcxNTIzMTBaMIGVMQswCQYDVQQGEwJVUzEQMA4G
-A1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEQMA4GA1UECgwHd29sZlNT
-TDEVMBMGA1UECwwMU3VwcG9ydF8xMDI0MRgwFgYDVQQDDA93d3cud29sZnNzbC5j
-b20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wgZ8wDQYJKoZIhvcN
-AQEBBQADgY0AMIGJAoGBAKo+pZzTF0llQ97Q80sc20kM/HplBW3easTkcyyKloKP
-I6UGcRwGPi+SjQspNEVZ6am8YdckN121xDeNumey7wMn+sG0zWsAZrTWc3AfCDrM
-d63p+TTU86AtqedYqcBhhLbsPQqt/VyGc6prR9iLLlhLaRKCJlXmFL9VcIj++XXh
-AgMBAAGjggEBMIH+MB0GA1UdDgQWBBTZPDXqdA4jvpz8+imQCcHnhBaffDCBzgYD
-VR0jBIHGMIHDgBTTIo8oLOAF7tPtw3E9ybI2Oh2/qKGBn6SBnDCBmTELMAkGA1UE
-BhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNV
-BAoMCFNhd3Rvb3RoMRgwFgYDVQQLDA9Db25zdWx0aW5nXzEwMjQxGDAWBgNVBAMM
-D3d3dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNv
-bYIJANr7ag3+z5tHMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADgYEAC8Ov
-Q4VkYeerWiobsinVZmhEGm1m/D2xiOylQRhnYjSkXslpzUDIVn6/67xhHzM0WL5X
-/eaY3VEnfLcsvMk55eWVguE/2bmXME4zLO/427TuNXWeej8ij6Vx1AFkbPKF93KZ
-LIAPpDEd1AsepQ/nUwreFQ2y0Gv01i/iC6OKWm4=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 15779322327764802375 (0xdafb6a0dfecf9b47)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting_1024, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting_1024, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (1024 bit)
- Modulus:
- 00:cd:ac:dd:47:ec:be:b7:24:c3:63:1b:54:98:79:
- e1:c7:31:16:59:d6:9d:77:9d:8d:e2:8b:ed:04:17:
- b2:c6:eb:e4:9b:91:be:31:50:62:97:58:b5:7f:29:
- de:b3:71:24:0b:bf:97:09:7f:26:dc:2d:ec:a8:2e:
- b2:64:2b:7a:2b:35:19:2d:a2:80:cb:99:fd:94:71:
- 1b:23:8d:54:db:2e:62:8d:81:08:2d:f4:24:72:27:
- 6c:f9:c9:8e:db:4c:75:ba:9b:01:f8:3f:18:f4:e6:
- 7f:fb:57:94:92:cc:88:c4:b4:00:c2:aa:d4:e5:88:
- 18:b3:11:2f:73:c0:d6:29:09
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- D3:22:8F:28:2C:E0:05:EE:D3:ED:C3:71:3D:C9:B2:36:3A:1D:BF:A8
- X509v3 Authority Key Identifier:
- keyid:D3:22:8F:28:2C:E0:05:EE:D3:ED:C3:71:3D:C9:B2:36:3A:1D:BF:A8
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting_1024/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:DA:FB:6A:0D:FE:CF:9B:47
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 1d:48:f6:40:41:04:06:f2:e4:72:2f:ea:ff:c1:67:6b:15:bb:
- 0a:28:23:28:07:c6:d7:13:2c:be:00:00:ac:1d:f7:f4:92:d3:
- 2b:af:23:eb:9f:1a:e2:11:3c:2d:97:f2:0f:ac:ae:97:86:0a:
- fb:a8:4f:74:1b:de:19:51:db:cd:e2:11:38:c1:a4:9d:56:ab:
- 47:5c:de:ba:eb:27:df:6d:c8:7e:3a:bd:2e:9b:2a:ad:22:3b:
- 95:a9:f2:28:03:bc:e5:ec:cc:f2:08:d4:c8:2f:db:ea:fb:2e:
- 52:16:8c:42:02:a4:59:6d:4c:33:b4:9a:d2:73:4a:1e:9f:d9:
- c8:83
------BEGIN CERTIFICATE-----
-MIIDtTCCAx6gAwIBAgIJANr7ag3+z5tHMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
-A1UECgwIU2F3dG9vdGgxGDAWBgNVBAsMD0NvbnN1bHRpbmdfMTAyNDEYMBYGA1UE
-AwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE4MDQxMzE1MjMxMFoXDTIxMDEwNzE1MjMxMFowgZkxCzAJBgNVBAYT
-AlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQK
-DAhTYXd0b290aDEYMBYGA1UECwwPQ29uc3VsdGluZ18xMDI0MRgwFgYDVQQDDA93
-d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20w
-gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM2s3Ufsvrckw2MbVJh54ccxFlnW
-nXedjeKL7QQXssbr5JuRvjFQYpdYtX8p3rNxJAu/lwl/Jtwt7KgusmQreis1GS2i
-gMuZ/ZRxGyONVNsuYo2BCC30JHInbPnJjttMdbqbAfg/GPTmf/tXlJLMiMS0AMKq
-1OWIGLMRL3PA1ikJAgMBAAGjggEBMIH+MB0GA1UdDgQWBBTTIo8oLOAF7tPtw3E9
-ybI2Oh2/qDCBzgYDVR0jBIHGMIHDgBTTIo8oLOAF7tPtw3E9ybI2Oh2/qKGBn6SB
-nDCBmTELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0Jv
-emVtYW4xETAPBgNVBAoMCFNhd3Rvb3RoMRgwFgYDVQQLDA9Db25zdWx0aW5nXzEw
-MjQxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5m
-b0B3b2xmc3NsLmNvbYIJANr7ag3+z5tHMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcN
-AQELBQADgYEAHUj2QEEEBvLkci/q/8FnaxW7CigjKAfG1xMsvgAArB339JLTK68j
-658a4hE8LZfyD6yul4YK+6hPdBveGVHbzeIROMGknVarR1zeuusn323Ifjq9Lpsq
-rSI7lanyKAO85ezM8gjUyC/b6vsuUhaMQgKkWW1MM7Sa0nNKHp/ZyIM=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-key.der
deleted file mode 100644
index 9f7a9c3df..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-key.pem
deleted file mode 100644
index da6280b98..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/1024/server-key.pem
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQCqPqWc0xdJZUPe0PNLHNtJDPx6ZQVt3mrE5HMsipaCjyOlBnEc
-Bj4vko0LKTRFWempvGHXJDddtcQ3jbpnsu8DJ/rBtM1rAGa01nNwHwg6zHet6fk0
-1POgLannWKnAYYS27D0Krf1chnOqa0fYiy5YS2kSgiZV5hS/VXCI/vl14QIDAQAB
-AoGACkzB/kvzI7ihs5BWt9umFLRZbhpAitYjBYiAw1gbJQj98hUCsNxb1Mr8B4nV
-pMB8140TKk4Bn4TIu0ey2GVF+oSfiND09SI1dxFnHN5fhW1V2KcHFYzhsKd5tEed
-cLPS8R9BTGVyJutmyJX2bYc1U/6xUk12W2FTibEgGovkffECQQDZbuHZBlah9t9U
-RcXsasgqOE5rxujq+29lLbreJ2M3IS6kVavn285x4Qj88spSM1XoObPaxbBphG7j
-z0eApraFAkEAyHENN0fheyEtES2VLsfQttN8XJM8WyLl4IttR/kUD54IG1OrCqnk
-f0DT32J0EKL+gx/PVWbrXcWDuuyf0rUGrQJBALdoGafH+fGa3V0nkcFPfVJntnah
-DT2RI7Cz90mG7eDF46MJBP2J4sUabkt3vQPDe7ZsXfKvCJSo+iS9ZnH1rkUCQBVS
-0ZEb+ITc1qqJKuG7KB0LCqPelgEsCUCGFK4fdV7j9QDTOdL8l+5huyh8lNRgQqs4
-axouxMNJC+aK3cXQtFECQQCpi6ep7q67F8ty8lAinbPf4EA3CNV/GViAcHlpmd9i
-DSGr3bLOaLOfh69V9KrhAHK+bsOUSdy7jhp45UkfVUGh
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-cert.der
deleted file mode 100644
index 1d3e14212..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-cert.pem
deleted file mode 100644
index 4359a8817..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-cert.pem
+++ /dev/null
@@ -1,111 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 2f:06:07:a8:b6:f4:ee:10:91:43:de:e1:46:99:c4:90:79:e6:f1:d1
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = wolfSSL_3072, OU = Programming-3072, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Jan 22 05:51:48 2020 GMT
- Not After : Oct 18 05:51:48 2022 GMT
- Subject: C = US, ST = Montana, L = Bozeman, O = wolfSSL_3072, OU = Programming-3072, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (3072 bit)
- Modulus:
- 00:ac:39:50:68:8f:78:f8:10:9b:68:96:d3:e1:9c:
- 56:68:5a:41:62:e3:b3:41:b0:55:80:17:b0:88:16:
- 9b:e0:97:74:5f:42:79:73:42:df:93:f3:aa:9d:ee:
- 2d:6f:aa:bc:27:90:84:c0:5d:c7:ec:49:ea:5c:66:
- 1d:70:9c:53:5c:ba:a1:b3:58:c9:3e:8e:9b:72:3d:
- 6e:02:02:00:9c:65:56:82:a3:22:b4:08:5f:2a:ef:
- df:9a:d0:e7:31:59:26:5b:0b:1c:63:61:ff:d5:69:
- 32:19:06:7e:0f:40:3c:7a:1e:c8:fc:58:6c:64:ae:
- 10:3d:a8:23:ff:8e:1a:ca:6a:82:e2:f9:01:64:2c:
- 97:a0:1a:89:a0:74:d3:b6:05:11:f2:62:06:48:2a:
- f7:66:ce:c1:85:e1:d2:27:ea:ca:12:a5:91:97:3e:
- fc:94:06:59:51:c0:e7:13:b6:87:7b:5f:d2:c0:56:
- 2f:5e:1d:02:c3:11:2c:df:f7:01:da:bd:85:54:35:
- 32:5f:c5:c8:f9:7a:9f:89:f7:03:0e:7e:79:5d:04:
- 82:35:10:fe:6d:9b:bf:b8:ee:e2:62:87:26:5e:2f:
- 50:2f:78:0c:e8:73:4f:88:6a:d6:26:a4:c9:fc:fa:
- 1e:8a:b0:f4:32:cf:57:cd:a1:58:8a:49:0f:bb:a9:
- 1d:86:ab:b9:8f:8d:57:19:b2:5a:7e:a4:ea:cc:b7:
- 96:7a:3b:38:cd:de:e0:61:fc:c9:06:8f:93:5a:ce:
- ad:2a:e3:2d:3e:39:5d:41:83:01:1f:0f:e1:7f:76:
- c7:28:da:56:ef:bf:dc:26:35:40:be:ad:c7:38:ad:
- a4:06:ac:ca:e8:51:eb:c0:f8:68:02:2c:9b:a1:14:
- bc:f8:61:86:d7:56:d7:73:f4:ab:bb:6a:21:d3:88:
- 22:b4:e7:6f:7f:91:e5:0e:c6:08:49:de:ea:13:58:
- 72:a0:aa:3a:f9:36:03:45:57:5e:87:d2:73:65:c4:
- 8c:a3:ee:c9:d6:73:7c:96:41:93
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 3D:D1:84:C2:AF:B0:20:49:BC:74:87:41:38:AB:BA:D2:D4:0C:A3:A8
- X509v3 Authority Key Identifier:
- keyid:3D:D1:84:C2:AF:B0:20:49:BC:74:87:41:38:AB:BA:D2:D4:0C:A3:A8
- DirName:/C=US/ST=Montana/L=Bozeman/O=wolfSSL_3072/OU=Programming-3072/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:2F:06:07:A8:B6:F4:EE:10:91:43:DE:E1:46:99:C4:90:79:E6:F1:D1
-
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Alternative Name:
- DNS:example.com
- Signature Algorithm: sha256WithRSAEncryption
- 04:f5:e0:e5:75:6b:cf:ee:19:ef:3c:b5:b6:78:ce:b2:c3:f2:
- 3e:0d:3f:b7:6d:59:7d:b6:7e:6a:91:0f:85:ac:ca:56:30:3c:
- 3f:5d:30:10:7c:5e:7f:98:b2:9d:95:04:e1:ee:c0:9e:1b:01:
- 39:cb:02:05:b9:9b:02:88:eb:d0:ad:06:d5:39:2d:24:e6:dc:
- 4e:ce:8c:36:7d:b6:8e:1d:e8:b7:ef:ff:b4:17:c1:a5:d8:fa:
- 34:dd:99:3d:30:4b:45:a2:14:6a:88:93:ca:25:e2:5c:d5:ba:
- e8:9d:ef:d7:68:76:05:92:48:19:92:11:79:c2:fe:11:49:4d:
- d6:d1:8f:32:1c:5f:3b:41:2c:08:b2:72:65:1c:e5:86:02:94:
- b3:9d:30:da:59:42:a1:b0:1e:00:92:93:6e:0d:27:cf:df:d8:
- cf:2b:cd:cb:8c:ff:b5:6f:83:92:27:00:58:59:a2:0b:91:b0:
- 39:ca:a8:78:fd:83:56:4f:a1:6e:c3:e0:2b:ae:ef:3c:09:04:
- f0:9b:5b:00:d3:ed:b6:06:f6:9c:da:af:61:68:8f:e3:2a:c3:
- 85:20:66:2c:ac:dd:65:37:36:c2:2f:ba:b8:90:66:6e:9e:58:
- a2:4b:d6:a7:30:c8:c9:6c:bd:13:40:a0:ca:59:7c:c5:86:9c:
- 55:c5:68:c7:0c:7f:94:73:a5:4b:eb:f1:27:96:b5:f9:69:6b:
- 2b:b6:62:d7:3a:0d:40:65:f0:0d:de:91:77:d4:f6:bb:13:7b:
- 4a:55:8f:7e:49:65:89:37:46:05:2f:90:14:73:0d:2d:1e:a4:
- d4:bb:4e:6d:29:da:79:6e:73:08:de:5f:27:dc:23:14:db:7b:
- e7:02:13:2e:c7:94:19:f3:7d:2e:c4:8a:69:ba:f5:ba:62:c2:
- 88:b5:cb:c7:92:a2:8a:e3:69:10:6e:c5:b8:b2:10:7e:b6:0c:
- 71:2a:c3:e9:71:0c:a2:8b:9a:1d:2c:4e:21:68:53:51:6d:0c:
- d2:b4:4b:50:4b:0a
------BEGIN CERTIFICATE-----
-MIIF+DCCBGCgAwIBAgIULwYHqLb07hCRQ97hRpnEkHnm8dEwDQYJKoZIhvcNAQEL
-BQAwgZ4xCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdC
-b3plbWFuMRUwEwYDVQQKDAx3b2xmU1NMXzMwNzIxGTAXBgNVBAsMEFByb2dyYW1t
-aW5nLTMwNzIxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJ
-ARYQaW5mb0B3b2xmc3NsLmNvbTAeFw0yMDAxMjIwNTUxNDhaFw0yMjEwMTgwNTUx
-NDhaMIGeMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwH
-Qm96ZW1hbjEVMBMGA1UECgwMd29sZlNTTF8zMDcyMRkwFwYDVQQLDBBQcm9ncmFt
-bWluZy0zMDcyMRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0B
-CQEWEGluZm9Ad29sZnNzbC5jb20wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGK
-AoIBgQCsOVBoj3j4EJtoltPhnFZoWkFi47NBsFWAF7CIFpvgl3RfQnlzQt+T86qd
-7i1vqrwnkITAXcfsSepcZh1wnFNcuqGzWMk+jptyPW4CAgCcZVaCoyK0CF8q79+a
-0OcxWSZbCxxjYf/VaTIZBn4PQDx6Hsj8WGxkrhA9qCP/jhrKaoLi+QFkLJegGomg
-dNO2BRHyYgZIKvdmzsGF4dIn6soSpZGXPvyUBllRwOcTtod7X9LAVi9eHQLDESzf
-9wHavYVUNTJfxcj5ep+J9wMOfnldBII1EP5tm7+47uJihyZeL1AveAzoc0+IatYm
-pMn8+h6KsPQyz1fNoViKSQ+7qR2Gq7mPjVcZslp+pOrMt5Z6OzjN3uBh/MkGj5Na
-zq0q4y0+OV1BgwEfD+F/dsco2lbvv9wmNUC+rcc4raQGrMroUevA+GgCLJuhFLz4
-YYbXVtdz9Ku7aiHTiCK0529/keUOxghJ3uoTWHKgqjr5NgNFV16H0nNlxIyj7snW
-c3yWQZMCAwEAAaOCASowggEmMB0GA1UdDgQWBBQ90YTCr7AgSbx0h0E4q7rS1Ayj
-qDCB3gYDVR0jBIHWMIHTgBQ90YTCr7AgSbx0h0E4q7rS1AyjqKGBpKSBoTCBnjEL
-MAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4x
-FTATBgNVBAoMDHdvbGZTU0xfMzA3MjEZMBcGA1UECwwQUHJvZ3JhbW1pbmctMzA3
-MjEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZv
-QHdvbGZzc2wuY29tghQvBgeotvTuEJFD3uFGmcSQeebx0TAMBgNVHRMEBTADAQH/
-MBYGA1UdEQQPMA2CC2V4YW1wbGUuY29tMA0GCSqGSIb3DQEBCwUAA4IBgQAE9eDl
-dWvP7hnvPLW2eM6yw/I+DT+3bVl9tn5qkQ+FrMpWMDw/XTAQfF5/mLKdlQTh7sCe
-GwE5ywIFuZsCiOvQrQbVOS0k5txOzow2fbaOHei37/+0F8Gl2Po03Zk9MEtFohRq
-iJPKJeJc1brone/XaHYFkkgZkhF5wv4RSU3W0Y8yHF87QSwIsnJlHOWGApSznTDa
-WUKhsB4AkpNuDSfP39jPK83LjP+1b4OSJwBYWaILkbA5yqh4/YNWT6Fuw+Arru88
-CQTwm1sA0+22Bvac2q9haI/jKsOFIGYsrN1lNzbCL7q4kGZunliiS9anMMjJbL0T
-QKDKWXzFhpxVxWjHDH+Uc6VL6/EnlrX5aWsrtmLXOg1AZfAN3pF31Pa7E3tKVY9+
-SWWJN0YFL5AUcw0tHqTUu05tKdp5bnMI3l8n3CMU23vnAhMux5QZ830uxIppuvW6
-YsKItcvHkqKK42kQbsW4shB+tgxxKsPpcQyii5odLE4haFNRbQzStEtQSwo=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-key.der
deleted file mode 100644
index be253d2f0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-key.pem
deleted file mode 100644
index 24de8ddb2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-key.pem
+++ /dev/null
@@ -1,39 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIG5AIBAAKCAYEArDlQaI94+BCbaJbT4ZxWaFpBYuOzQbBVgBewiBab4Jd0X0J5
-c0Lfk/Oqne4tb6q8J5CEwF3H7EnqXGYdcJxTXLqhs1jJPo6bcj1uAgIAnGVWgqMi
-tAhfKu/fmtDnMVkmWwscY2H/1WkyGQZ+D0A8eh7I/FhsZK4QPagj/44aymqC4vkB
-ZCyXoBqJoHTTtgUR8mIGSCr3Zs7BheHSJ+rKEqWRlz78lAZZUcDnE7aHe1/SwFYv
-Xh0CwxEs3/cB2r2FVDUyX8XI+XqfifcDDn55XQSCNRD+bZu/uO7iYocmXi9QL3gM
-6HNPiGrWJqTJ/PoeirD0Ms9XzaFYikkPu6kdhqu5j41XGbJafqTqzLeWejs4zd7g
-YfzJBo+TWs6tKuMtPjldQYMBHw/hf3bHKNpW77/cJjVAvq3HOK2kBqzK6FHrwPho
-AiyboRS8+GGG11bXc/Sru2oh04gitOdvf5HlDsYISd7qE1hyoKo6+TYDRVdeh9Jz
-ZcSMo+7J1nN8lkGTAgMBAAECggGAQBl02/XKSEmmDd9VLPtLDbvJ6kxlQ2Wl7O7k
-PUJs8cJtBadwHH4fSKnALtefAZjCPteDETXWWxOHrqwy+N62CCVOWboJ7MaXBIXo
-k8a7A3qUIDsnh2o2QXzV9IEcCznrFKemATdQSNXGV5obAQIfgDRFCea/MRm34bra
-6xqwzfWmkWOsKOSP6n72CkpxIaXxcA0b2XBkdFcvn+zUkxbH7vjAn1JKH63dQJhT
-aPreogSgJAXvy09w37lcwl7kyc0PXkt3u4RpVJhBt5wOONj385/v5Zu2S9Z6ZfVp
-+sITcGwopCms2b/sai7t5Lrf0PHzPGyE37dalM/ZLerqtNCRLncVGA1ruioM8ZKd
-1gQFtjjC4KctZPjfDDqTg+GIg19nkJ8r4GCOyjATyp/Pe23Yze75lt1e9EfJTOaP
-fzMqODCv1Up5RwbMlkQpjGArCMfQ08PFLGNsh9KuKqSG53Z0kNEEN2Qa7QjZmAca
-mAuJmaSwjBoQ6+z07jzEAMwwnEMBAoHBANlD9ix4JtLnFacKiF7bLa/GqW9ziDtq
-CB/1gLUuKYty+DXIIxgcDQ44grtbL7RcTiQFp0x5SImNHB0KLP7Zmd8lii346y/a
-G2PhzQmXZBSr6gvY4qgqYzWQ7n/qzqXvf6uHR5tFNZrajPTTigub5uqSuwXhrD41
-2+1lHbaS6yl5+D/CWEAyZodWUP+/Pr3plL8xvoct72QeDmc6nJTaWwyMPe6dzZLe
-QAJlNskb9X5OB7R/FA4DLobwRV/coujHgwKBwQDK7aU/WaxMrasjApWAoK81F9vn
-f3JBLFy0Q4VGc59Y6UCL7LDvhkwx3shsdHWi22X0UMaZonDetiLCARVJE6DiIHhE
-7B9CsyUJznUTdTYRRyw8FR/wVNUYrmEHrD2DRgOMv2MmqBl8/94geNDacC69+pbd
-FXib7+0XkG8UNVCOHXiwiqBTEBVkzEcFtsZIwF20SxpfuJ51zcNkZogQnIuHFDTm
-YDylt4EdC3mTXUpCen8z8D6eY722X/lHpwpJcLECgcBvxvQ+2q32sWbFYrjYPGEb
-3tRK/6BmGN4HOzI1hINhOAwU91t+yue4mkBADeDUJO0awUHaKUe1ZMDC+/o8P01X
-raOSlU7Cdq7Cy2fGeHnH3M5zu+iYZf5Wj7L0YqRgYIBJija/3nJ+sdP1HWQXJuU9
-Z7IKi5knBGSalPwdcybDVvnuK5llpchz9meDvCuWXzbkyr3gJDTWSFRWraPjPRe8
-s+Yk/lDGL8u0r8fo3ZaGnbR/GyYBM4fban/2mrfBlOsCgcEAsG0gaA18gUXULiIG
-/Me2zEAsDf59xS/egVLawj+v4EsatQxZYEWwZQM92Rz/UVHSODEqGVRjMR3E5kqu
-yNPp4e884R8wpnq9zuLSYtJa6XapfKsZE4eNpWGmNleHO2RZnbqfZ3JqhoSmCDFB
-00gJO15sX1ZVf61+wifuivE3UfdJgKNldBHdp776WHtptMKaNS++hE4sZls4b0e9
-MEQKAqyMuWYeFC2QcUIStw46i8WYZf2PU4F/5NlYDvWpOeRhAoHBALOUjyv9hC6D
-QoZWfrX4PMUMy70yDNeqp7DppGrRAduHKvff7MIDXVWoZnN5qau9r2k3/kG1U7Oy
-wLGANObhe65nx/NX/hK8eKp1Dax5kBRJ/mtR4+RGshBNBWoSgCqPOUIOOyQrUF3z
-p38vgomHn/h7HgVudYMENWZKBlc5qyELlEFqKsfemEWPlhzy2PucEI5Bet3dHe+l
-Z+z+oy2p/fPuNfSnvPlxzLnAX1hbvRqexwhnfMdRW77j+L4ex9Iolw==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-keyPub.der b/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-keyPub.der
deleted file mode 100644
index f574d0c8d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/3072/client-keyPub.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/3072/include.am b/FreeRTOS-Plus/Source/WolfSSL/certs/3072/include.am
deleted file mode 100644
index 5606dcce9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/3072/include.am
+++ /dev/null
@@ -1,10 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- certs/3072/client-cert.der \
- certs/3072/client-cert.pem \
- certs/3072/client-key.der \
- certs/3072/client-key.pem \
- certs/3072/client-keyPub.der
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-cert.der
deleted file mode 100644
index c31698f65..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-cert.pem
deleted file mode 100644
index 57e303920..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-cert.pem
+++ /dev/null
@@ -1,130 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 2f:0f:ab:23:bc:a3:14:07:91:06:55:35:01:63:7f:42:bd:fb:f2:43
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = wolfSSL_4096, OU = Programming-4096, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Jul 9 03:06:02 2019 GMT
- Not After : Apr 4 03:06:02 2022 GMT
- Subject: C = US, ST = Montana, L = Bozeman, O = wolfSSL_4096, OU = Programming-4096, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (4096 bit)
- Modulus:
- 00:f5:d0:31:e4:71:59:58:b3:07:50:dd:16:79:fc:
- c6:95:50:fc:46:0e:57:12:86:71:8d:e3:9b:4a:33:
- ea:4f:d9:17:13:6d:48:69:df:59:11:08:02:9d:af:
- 2b:c7:30:be:0c:dc:87:d4:5a:12:09:23:5d:e1:76:
- 5a:62:37:46:74:ef:03:05:bb:1e:6d:29:75:6c:2e:
- 9d:87:0d:8f:87:cb:14:95:9b:be:17:6b:51:d1:4c:
- da:d7:91:66:c5:36:eb:e0:07:1a:76:4d:b0:fb:c1:
- f5:5e:05:db:ba:cb:25:d9:99:13:1c:c0:35:dc:40:
- e9:36:cd:c4:d5:7a:41:70:0f:36:eb:a5:4e:17:05:
- d5:75:1b:64:62:7a:3f:0d:28:48:6a:e3:ac:9c:a8:
- 8f:e9:ed:f7:cd:24:a0:b1:a0:03:ac:e3:03:f5:3f:
- d1:96:ff:2a:7e:08:b1:d3:e0:18:14:ec:65:37:50:
- 43:c2:6a:8c:f4:5b:fe:c4:cb:8d:3f:81:02:f7:c2:
- dd:e4:c1:8e:80:0c:04:25:2d:80:5a:2e:0f:22:35:
- 4a:f4:85:ed:51:d8:ab:6d:8f:a2:3b:24:00:6e:81:
- e2:1e:76:d6:ac:31:12:db:f3:8e:07:a1:de:89:4a:
- 39:60:77:c5:aa:f1:51:e6:06:f1:95:56:2a:e1:8e:
- 92:30:9f:fe:58:44:ac:46:f2:fd:9a:fc:a8:1d:a1:
- d3:55:37:4a:8b:fc:9c:33:f8:a7:61:48:41:7c:9c:
- 77:3f:f5:80:23:7d:43:b4:d5:88:0a:c9:75:d7:44:
- 19:4d:77:6c:0b:0a:49:aa:1c:2f:d6:5a:44:a6:47:
- 4d:e5:36:96:40:99:2c:56:26:b1:f2:92:31:59:d7:
- 2c:d4:b4:21:d6:65:13:0b:3e:fb:ff:04:eb:b9:85:
- b9:d8:d8:28:4f:5c:17:96:a3:51:be:fe:7d:0b:1b:
- 48:40:25:76:94:dc:41:fb:bf:73:76:da:eb:b3:62:
- e7:c1:c8:54:6a:93:e1:8d:31:e8:3e:3e:df:bc:87:
- 02:30:22:57:c4:e0:18:7a:d3:ae:e4:02:9b:aa:bd:
- 4e:49:47:72:e9:8d:13:2d:54:9b:00:a7:91:61:71:
- c9:cc:48:4f:ee:df:5e:1b:1a:df:67:d3:20:e6:44:
- 45:98:7e:e7:0e:63:16:83:c9:26:5d:90:c1:e5:2a:
- 5c:45:54:13:b2:81:18:06:20:2e:2e:66:5a:b5:7b:
- 6e:d6:0c:4e:89:01:56:70:bb:ae:de:e9:99:5e:d1:
- b9:3a:b7:6c:17:b6:03:a9:08:dd:9c:f4:14:c9:c9:
- 59:39:72:d4:7e:02:37:31:cd:0e:a7:3d:f8:f2:cf:
- 6b:15:ab
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- FA:54:89:67:E5:5F:B7:31:40:EA:FD:E7:F6:A3:C6:5A:56:16:A5:6E
- X509v3 Authority Key Identifier:
- keyid:FA:54:89:67:E5:5F:B7:31:40:EA:FD:E7:F6:A3:C6:5A:56:16:A5:6E
- DirName:/C=US/ST=Montana/L=Bozeman/O=wolfSSL_4096/OU=Programming-4096/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:2F:0F:AB:23:BC:A3:14:07:91:06:55:35:01:63:7F:42:BD:FB:F2:43
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 57:0d:97:98:78:bf:2a:31:9a:39:41:38:33:46:d5:50:47:e8:
- 19:62:a8:36:1e:b7:fd:d1:bc:50:5c:3a:eb:96:1a:9b:43:b0:
- 67:5d:f4:51:77:87:33:0b:90:6f:e8:d3:82:4d:1a:aa:93:5f:
- 7d:78:b1:e0:7b:ee:88:01:e7:b3:fa:7e:0b:76:9c:9e:81:36:
- e4:a3:c1:41:62:a4:0a:7e:24:d0:ab:9f:ba:d8:1e:38:ad:f1:
- 12:52:0d:f2:96:8a:0b:25:a2:49:3f:88:5b:ea:23:87:26:22:
- 7a:b9:60:6b:d6:7a:88:37:ac:64:9b:18:51:07:ea:df:00:96:
- 70:95:88:9d:8f:af:be:3c:4e:c7:5e:55:15:3d:1f:e4:2d:dc:
- c9:a3:ae:af:fa:44:a8:e2:f4:df:8e:cd:f9:10:7f:8b:86:cc:
- 6d:45:91:91:4f:e3:d0:a7:d2:d9:8e:09:c6:f8:eb:e7:bd:17:
- 19:d6:e7:1a:b8:ca:4d:ec:34:07:7d:2d:e8:23:9d:82:e9:f7:
- 47:03:ab:5f:7c:f5:41:6f:70:11:cb:24:d8:23:c2:65:31:b7:
- 0b:8f:0a:26:5b:0f:f6:9b:11:7f:9a:8d:94:6d:5a:9c:5e:73:
- 35:15:7b:e3:09:e8:08:d0:3f:b4:e5:29:2c:f6:3e:71:6e:f4:
- 1b:20:55:34:40:2f:b0:9b:dd:f1:dc:bf:17:1d:a7:2d:85:01:
- d6:d2:b2:56:56:98:33:85:ed:f6:a3:f6:3e:7b:f4:03:a4:58:
- 8e:c5:5b:ab:66:e8:0f:34:17:2d:33:36:71:0c:b8:d9:78:e7:
- 06:fc:da:4f:a1:fa:db:74:ce:ea:85:27:f9:75:a9:ad:50:86:
- 6e:ea:01:01:19:0d:28:4a:ed:06:be:65:70:b2:06:46:2e:16:
- 57:df:55:c7:8e:cd:5b:ad:66:28:b8:74:87:bf:c4:c7:08:3f:
- 37:a3:23:84:9f:4e:e8:48:6c:8d:54:9f:fb:e0:fb:53:a3:41:
- e1:68:8a:94:c9:f5:ee:3e:15:46:d2:62:33:86:86:06:34:b4:
- e4:2f:da:28:2e:2f:c0:bd:75:e8:2c:3f:e2:a5:43:7d:02:eb:
- 25:b9:ef:87:8a:d7:57:61:16:e8:9e:83:65:f9:10:f4:5e:5f:
- 1c:7a:25:d6:47:bd:29:c5:4f:8b:b9:6a:48:7a:9b:1e:6d:77:
- 8e:72:6c:0c:07:fe:4c:c5:cf:55:0e:cb:4b:ad:16:e1:e2:54:
- b8:9d:34:03:d1:8d:b7:37:9b:e3:5a:32:60:03:7f:61:0f:50:
- 0b:72:54:8b:0d:c7:97:7e:bb:9b:b2:f7:73:47:71:7b:78:65:
- 36:df:57:72:9e:42:9c:8a
------BEGIN CERTIFICATE-----
-MIIG4DCCBMigAwIBAgIULw+rI7yjFAeRBlU1AWN/Qr378kMwDQYJKoZIhvcNAQEL
-BQAwgZ4xCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdC
-b3plbWFuMRUwEwYDVQQKDAx3b2xmU1NMXzQwOTYxGTAXBgNVBAsMEFByb2dyYW1t
-aW5nLTQwOTYxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJ
-ARYQaW5mb0B3b2xmc3NsLmNvbTAeFw0xOTA3MDkwMzA2MDJaFw0yMjA0MDQwMzA2
-MDJaMIGeMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwH
-Qm96ZW1hbjEVMBMGA1UECgwMd29sZlNTTF80MDk2MRkwFwYDVQQLDBBQcm9ncmFt
-bWluZy00MDk2MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0B
-CQEWEGluZm9Ad29sZnNzbC5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
-AoICAQD10DHkcVlYswdQ3RZ5/MaVUPxGDlcShnGN45tKM+pP2RcTbUhp31kRCAKd
-ryvHML4M3IfUWhIJI13hdlpiN0Z07wMFux5tKXVsLp2HDY+HyxSVm74Xa1HRTNrX
-kWbFNuvgBxp2TbD7wfVeBdu6yyXZmRMcwDXcQOk2zcTVekFwDzbrpU4XBdV1G2Ri
-ej8NKEhq46ycqI/p7ffNJKCxoAOs4wP1P9GW/yp+CLHT4BgU7GU3UEPCaoz0W/7E
-y40/gQL3wt3kwY6ADAQlLYBaLg8iNUr0he1R2Kttj6I7JABugeIedtasMRLb844H
-od6JSjlgd8Wq8VHmBvGVVirhjpIwn/5YRKxG8v2a/KgdodNVN0qL/Jwz+KdhSEF8
-nHc/9YAjfUO01YgKyXXXRBlNd2wLCkmqHC/WWkSmR03lNpZAmSxWJrHykjFZ1yzU
-tCHWZRMLPvv/BOu5hbnY2ChPXBeWo1G+/n0LG0hAJXaU3EH7v3N22uuzYufByFRq
-k+GNMeg+Pt+8hwIwIlfE4Bh6067kApuqvU5JR3LpjRMtVJsAp5FhccnMSE/u314b
-Gt9n0yDmREWYfucOYxaDySZdkMHlKlxFVBOygRgGIC4uZlq1e27WDE6JAVZwu67e
-6Zle0bk6t2wXtgOpCN2c9BTJyVk5ctR+AjcxzQ6nPfjyz2sVqwIDAQABo4IBEjCC
-AQ4wHQYDVR0OBBYEFPpUiWflX7cxQOr95/ajxlpWFqVuMIHeBgNVHSMEgdYwgdOA
-FPpUiWflX7cxQOr95/ajxlpWFqVuoYGkpIGhMIGeMQswCQYDVQQGEwJVUzEQMA4G
-A1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEVMBMGA1UECgwMd29sZlNT
-TF80MDk2MRkwFwYDVQQLDBBQcm9ncmFtbWluZy00MDk2MRgwFgYDVQQDDA93d3cu
-d29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CFC8P
-qyO8oxQHkQZVNQFjf0K9+/JDMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQAD
-ggIBAFcNl5h4vyoxmjlBODNG1VBH6BliqDYet/3RvFBcOuuWGptDsGdd9FF3hzML
-kG/o04JNGqqTX314seB77ogB57P6fgt2nJ6BNuSjwUFipAp+JNCrn7rYHjit8RJS
-DfKWigslokk/iFvqI4cmInq5YGvWeog3rGSbGFEH6t8AlnCViJ2Pr748TsdeVRU9
-H+Qt3Mmjrq/6RKji9N+OzfkQf4uGzG1FkZFP49Cn0tmOCcb46+e9FxnW5xq4yk3s
-NAd9LegjnYLp90cDq1989UFvcBHLJNgjwmUxtwuPCiZbD/abEX+ajZRtWpxeczUV
-e+MJ6AjQP7TlKSz2PnFu9BsgVTRAL7Cb3fHcvxcdpy2FAdbSslZWmDOF7faj9j57
-9AOkWI7FW6tm6A80Fy0zNnEMuNl45wb82k+h+tt0zuqFJ/l1qa1Qhm7qAQEZDShK
-7Qa+ZXCyBkYuFlffVceOzVutZii4dIe/xMcIPzejI4SfTuhIbI1Un/vg+1OjQeFo
-ipTJ9e4+FUbSYjOGhgY0tOQv2iguL8C9degsP+KlQ30C6yW574eK11dhFuieg2X5
-EPReXxx6JdZHvSnFT4u5akh6mx5td45ybAwH/kzFz1UOy0utFuHiVLidNAPRjbc3
-m+NaMmADf2EPUAtyVIsNx5d+u5uy93NHcXt4ZTbfV3KeQpyK
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-key.der
deleted file mode 100644
index 34a6f1b7c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-key.pem
deleted file mode 100644
index cbe8090b4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-key.pem
+++ /dev/null
@@ -1,51 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIJKAIBAAKCAgEA9dAx5HFZWLMHUN0WefzGlVD8Rg5XEoZxjeObSjPqT9kXE21I
-ad9ZEQgCna8rxzC+DNyH1FoSCSNd4XZaYjdGdO8DBbsebSl1bC6dhw2Ph8sUlZu+
-F2tR0Uza15FmxTbr4Acadk2w+8H1XgXbussl2ZkTHMA13EDpNs3E1XpBcA8266VO
-FwXVdRtkYno/DShIauOsnKiP6e33zSSgsaADrOMD9T/Rlv8qfgix0+AYFOxlN1BD
-wmqM9Fv+xMuNP4EC98Ld5MGOgAwEJS2AWi4PIjVK9IXtUdirbY+iOyQAboHiHnbW
-rDES2/OOB6HeiUo5YHfFqvFR5gbxlVYq4Y6SMJ/+WESsRvL9mvyoHaHTVTdKi/yc
-M/inYUhBfJx3P/WAI31DtNWICsl110QZTXdsCwpJqhwv1lpEpkdN5TaWQJksViax
-8pIxWdcs1LQh1mUTCz77/wTruYW52NgoT1wXlqNRvv59CxtIQCV2lNxB+79zdtrr
-s2LnwchUapPhjTHoPj7fvIcCMCJXxOAYetOu5AKbqr1OSUdy6Y0TLVSbAKeRYXHJ
-zEhP7t9eGxrfZ9Mg5kRFmH7nDmMWg8kmXZDB5SpcRVQTsoEYBiAuLmZatXtu1gxO
-iQFWcLuu3umZXtG5OrdsF7YDqQjdnPQUyclZOXLUfgI3Mc0Opz348s9rFasCAwEA
-AQKCAgEAxXZXffFoGo7GY7kWoyvhwnTqEsTWQXVqptaeGn+VzErR9LMnJpVakQnk
-QBNFkZ+gK+jD3Fv2fQzCD6npdVh96tVNkj78dCiHwT25IZJNKIKEqKIRk/KMKRwZ
-+G0/J1G1LaPHKB3E/JiUqND/8A/c+e2zorbtDV+/eFzXr72j74bpUWbbUjdHf+lf
-PJSDLeicM/Fs6fOml/6nv02bINUv3qQGu+5mSWv1EIWfhFpSPgygSkzaAcViMbHs
-+N2jO85BOhJ5+ZdbB5WfhtYEc2zoj0xMSB2FxOfO3hYx9lw3VI5VvK8uR+isA7Ck
-+ZCYmaTcbpgIXAe7CJOvYY10qPjEiWQQ4ebAzR05INZaiYP8N+ISZqgSzHK7Hvtq
-43xxfrkujoRm4bnQJZpvnRnmfujY8MUjFppoLB1Vro6Q7o7sXkadYFIyFyhZxEkq
-ID6Vxd/2PffFz7HCyXb4Pb70Y/wqAG+ZpratNe7exeCXxnPuM6Co/EyP8oxh+wMZ
-oegXTuMhWM7+8l+73U/3GMs1V93lUCp7GukS8noRsUO5cAcMj2m55aXJ4huWdBH1
-lblYwL03+ygqvYSxK2dCgsOVVUXV6sOKQjpDF17N0ur832fs4WyoAxmyHUpfT+fT
-4IbFGhDDCNLthZMIUQWmNxUyvWxzYwFdW09q3G0dVZEh5I638IECggEBAP0nyP52
-XIkyy4oih2FIkUoFraRcispcAoh+UcVmkCyj7adDGQuiQrTg4EW//qDydQuOfZ1z
-Z9MQCcXZjK06ZHKtljWRD0vJvU9lR6Yt6z/imXJmEu3r0nz/OiA3KtNlUZvDqhix
-H26dQEekH4Kb21Brhi/7PzG5gREEFGOGT0Aq9fl8oXgZE9BRUQ95iI0Uo962MylC
-uehZdvdDGram3wrBQsc/HH5cLJFLHvhGkR/uVrMOyNAx0z3tPdnFMAxY2Le17BSs
-QWRt5MZZ/RQFYGXYxIREfhu0pBZ1wSeWshnWOVTAk/PXH80b3/gSiBSfmAVHRnGB
-bN+R71PjxbGJL+ECggEBAPiTSih3lO/pxArD6FJZth2NzhTnQ8btCSdd844Iahlr
-LJebiFMr2v5LlGaE1anOpUNw+wFab8330Z1R7qDcRvV9p+6ghreD/yGLdgV93sQm
-Nry0ikjDBpCX5aY4w+Z80Pgj0jMfgcPjfYVaOBAD5ojbyEzQ97JNJzOFzTp0g2uC
-WNnf7vXT6f4c7wYSFtFMrlRLDRq94s9Ws3S+RE+kcwqYjWGEOEbclc8/a+dlhwK/
-S1fiPcQrHIIdzBN/wAYSjG+XUHuMgcMjFetwB46hBx5Z+hDKfg/iu+6GJh5VuZhm
-hewnxdljjVF3qqA2VTMQIV7sR2dx0a/8PlD1vtaS5wsCggEAIXyKxMYpVWinrd0F
-ZWPw/AamQnCPV1c2apGzBVacyZrhi9d/T5+mDUEVyYQtDWMlAmNV0Gb8m9mqQUaW
-qi9oLBc0IF/Q0yibZw4xnRTD4o55170S0e/4xtoH+Uzy2EW1ttH6BQwg6UPZxeA6
-3s75ArlGZcBpSo2MOhD9FXEluIo2QUswHK/MhCjNfSuJWYgaaRJW0CVobAixiOGS
-fgiyxjxsNejuPvS4XHvAW/0Ro1SmmUbiX0/H7pAcN1szEN8Lw7lHwjBK8hrrQSWU
-KXrQlohG7mwU9ls9vU7UPwVbB7njmYdjysRxC3Ode7YP1BKMTF5yPf9txGEMdF9T
-vjk0YQKCAQBf8vKwFiCOTsyWXzKA/xH17HO8y9v0oDBlWrWVgJf7wcvPpYCEoiwA
-9omM3P9gcVyHYMfyqMb5WQw3TpXuz7gwMFWvHZWCptfHSf6/deuUCTAdvQ6XsXgK
-Piet9sFfaZR8A8+yXhoH0/ryi3WScP7+mt+BDzRdRby4/Y/PXYQQ7pp/Vxn1F9x9
-cwusazUViyTLcsDXLq6q28ufZ4YUu+SQFXyVRKU4bRMCkXeENUNdAxwBC1pOK1nw
-u7G3YRts/KHqvRya5Ax+lz9xxqeUHYIS7CZDbvYkCaADHRL/qJVgR0qwclXDaNL2
-vFtHRlGyySooasnRGzUWWiZvt7v3NXMrAoIBAFa62ALXSzBeGx4v8w288QVqaErh
-6rPeYYyJRLpjXt8FJDJxZRo2L7wHdaPOnlKSlU0/yQa8oRQzN5WrmusE9hXDmxBW
-U6Io8mjafZdSY6ybVqmrLh6eAXD/K20MS6bDOrPRp0teSS6V1mquWBNmjy+T5G6L
-+pQwPuyWq0YgPsUwtOtBADlgHeEgzjFwFznLdlZsVXuQILw5slvRKG8MT0VrgsRX
-Iww/Py2Dsz2O+Rrad1Qu/hYuupndyrPR2LuH4dCp1OaP6AA+SYrdpjKRADExIZgY
-lMktJwW3mwkuu12/Z+gO0UR1gB0KIY+VdrD8GTz/kuoBRYnRTv5NK0sY5s4=
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-keyPub.der b/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-keyPub.der
deleted file mode 100644
index 5944acfc5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/4096/client-keyPub.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/4096/include.am b/FreeRTOS-Plus/Source/WolfSSL/certs/4096/include.am
deleted file mode 100644
index ec3777aaa..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/4096/include.am
+++ /dev/null
@@ -1,10 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- certs/4096/client-cert.pem \
- certs/4096/client-key.pem \
- certs/4096/client-cert.der \
- certs/4096/client-key.der \
- certs/4096/client-keyPub.der
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-cert-chain.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ca-cert-chain.der
deleted file mode 100644
index 3e6982de8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-cert-chain.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ca-cert.der
deleted file mode 100644
index 8c0c64445..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ca-cert.pem
deleted file mode 100644
index 7a8a56385..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-cert.pem
+++ /dev/null
@@ -1,86 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 9727763710660753659 (0x86fff58e10deb8fb)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:09 2018 GMT
- Not After : Jan 7 15:23:09 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a:
- f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac:
- de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98:
- 21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77:
- 32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1:
- 8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3:
- a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed:
- a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95:
- 82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c:
- 3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db:
- 76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc:
- 73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98:
- de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68:
- cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2:
- b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3:
- 13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98:
- ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed:
- 36:79
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 9e:28:88:72:00:ca:e6:e7:97:ca:c1:f1:1f:9e:12:b2:b8:c7:
- 51:ea:28:e1:36:b5:2d:e6:2f:08:23:cb:a9:4a:87:25:c6:5d:
- 89:45:ea:f5:00:98:ac:76:fb:1b:af:f0:ce:64:9e:da:08:bf:
- b6:eb:b4:b5:0c:a0:e7:f6:47:59:1c:61:cf:2e:0e:58:a4:82:
- ac:0f:3f:ec:c4:ae:80:f7:b0:8a:1e:85:41:e8:ff:fe:fe:4f:
- 1a:24:d5:49:fa:fb:fe:5e:e5:d3:91:0e:4f:4e:0c:21:51:71:
- 83:04:6b:62:7b:4f:59:76:48:81:1e:b4:f7:04:47:8a:91:57:
- a3:11:a9:f2:20:b4:78:33:62:3d:b0:5e:0d:f9:86:38:82:da:
- a1:98:8d:19:06:87:21:39:b7:02:f7:da:7d:58:ba:52:15:d8:
- 3b:c9:7b:58:34:a0:c7:e2:7c:a9:83:13:e1:b6:ec:01:bf:52:
- 33:0b:c4:fe:43:d3:c6:a4:8e:2f:87:7f:7a:44:ea:ca:53:6c:
- 85:ed:65:76:73:31:03:4e:ea:bd:35:54:13:f3:64:87:6b:df:
- 34:dd:34:a1:88:3b:db:4d:af:1b:64:90:92:71:30:8e:c8:cc:
- e5:60:24:af:31:16:39:33:91:50:f9:ab:68:42:74:7a:35:d9:
- dd:c8:c4:52
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIJAIb/9Y4Q3rj7MA0GCSqGSIb3DQEBCwUAMIGUMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
-A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
-dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe
-Fw0xODA0MTMxNTIzMDlaFw0yMTAxMDcxNTIzMDlaMIGUMQswCQYDVQQGEwJVUzEQ
-MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3
-dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns
-LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAL8Myi0Ush6EQlvNOB9K8k11EPG2NZ/fyn0D
-mNOs3gNm7irx2LB9bgdUCxCYIU2AyxIg58xP3kV9yXJ3MurKkLtpUhADL6jzlcXx
-i2JWG+9nb6QQQZWtCpvjpcCw0nB2UDBbqOgILHztp6J6jTgpHKzH7fJ8lbCVgn1J
-XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc
-/hr8fat6Nj+Y3oR8BWfOahQ4h6nxjLVoy2h/cSAr9aBj9VYvoybSt2+xWhfXOJkI
-/pNYb/7DE0kIFgunTWcAUjFnI06Y7VFFHbkE2Qvs2CizS73tNnkCAwEAAaOB/DCB
-+TAdBgNVHQ4EFgQUJ45nEXTDJh0/7TNjs6TYHTDl6NUwgckGA1UdIwSBwTCBvoAU
-J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD
-VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290
-aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t
-MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAhv/1jhDeuPswDAYD
-VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAniiIcgDK5ueXysHxH54SsrjH
-Ueoo4Ta1LeYvCCPLqUqHJcZdiUXq9QCYrHb7G6/wzmSe2gi/tuu0tQyg5/ZHWRxh
-zy4OWKSCrA8/7MSugPewih6FQej//v5PGiTVSfr7/l7l05EOT04MIVFxgwRrYntP
-WXZIgR609wRHipFXoxGp8iC0eDNiPbBeDfmGOILaoZiNGQaHITm3AvfafVi6UhXY
-O8l7WDSgx+J8qYMT4bbsAb9SMwvE/kPTxqSOL4d/ekTqylNshe1ldnMxA07qvTVU
-E/Nkh2vfNN00oYg7202vG2SQknEwjsjM5WAkrzEWOTORUPmraEJ0ejXZ3cjEUg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-cert.der
deleted file mode 100644
index b3f2f1ef5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-cert.pem
deleted file mode 100644
index c613f7694..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-cert.pem
+++ /dev/null
@@ -1,52 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 18234557164704975011 (0xfd0e292166cb48a3)
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (256 bit)
- pub:
- 04:02:d3:d9:6e:d6:01:8e:45:c8:b9:90:31:e5:c0:
- 4c:e3:9e:ad:29:38:98:ba:10:d6:e9:09:2a:80:a9:
- 2e:17:2a:b9:8a:bf:33:83:46:e3:95:0b:e4:77:40:
- b5:3b:43:45:33:0f:61:53:7c:37:44:c1:cb:fc:80:
- ca:e8:43:ea:a7
- ASN1 OID: prime256v1
- NIST CURVE: P-256
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 56:8E:9A:C3:F0:42:DE:18:B9:45:55:6E:F9:93:CF:EA:C3:F3:A5:21
- X509v3 Authority Key Identifier:
- keyid:56:8E:9A:C3:F0:42:DE:18:B9:45:55:6E:F9:93:CF:EA:C3:F3:A5:21
-
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- Signature Algorithm: ecdsa-with-SHA256
- 30:46:02:21:00:f0:7b:cc:24:73:19:3f:61:68:ed:c8:0a:54:
- 4a:b8:ac:79:ef:10:32:91:52:2c:3e:bf:50:aa:5f:18:c1:97:
- f5:02:21:00:d9:4b:63:67:6f:9b:29:a9:d7:6b:63:9b:98:9f:
- 32:82:36:da:f0:a9:f7:51:b4:97:aa:fa:fa:dd:ef:ef:4a:ae
------BEGIN CERTIFICATE-----
-MIICizCCAjCgAwIBAgIJAP0OKSFmy0ijMAoGCCqGSM49BAMCMIGXMQswCQYDVQQG
-EwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEQMA4G
-A1UECgwHd29sZlNTTDEUMBIGA1UECwwLRGV2ZWxvcG1lbnQxGDAWBgNVBAMMD3d3
-dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe
-Fw0xODA0MTMxNTIzMTBaFw0yMTAxMDcxNTIzMTBaMIGXMQswCQYDVQQGEwJVUzET
-MBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEQMA4GA1UECgwH
-d29sZlNTTDEUMBIGA1UECwwLRGV2ZWxvcG1lbnQxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTBZMBMGByqG
-SM49AgEGCCqGSM49AwEHA0IABALT2W7WAY5FyLmQMeXATOOerSk4mLoQ1ukJKoCp
-LhcquYq/M4NG45UL5HdAtTtDRTMPYVN8N0TBy/yAyuhD6qejYzBhMB0GA1UdDgQW
-BBRWjprD8ELeGLlFVW75k8/qw/OlITAfBgNVHSMEGDAWgBRWjprD8ELeGLlFVW75
-k8/qw/OlITAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAKBggqhkjO
-PQQDAgNJADBGAiEA8HvMJHMZP2Fo7cgKVEq4rHnvEDKRUiw+v1CqXxjBl/UCIQDZ
-S2Nnb5spqddrY5uYnzKCNtrwqfdRtJeq+vrd7+9Krg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-key.der
deleted file mode 100644
index c918a9484..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-key.pem
deleted file mode 100644
index 39c761c80..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc-key.pem
+++ /dev/null
@@ -1,5 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgAuEzmHeXrEpZbSib
-bqCTmwdxi01gY4WZ5rsWcOkK9oChRANCAAQC09lu1gGORci5kDHlwEzjnq0pOJi6
-ENbpCSqAqS4XKrmKvzODRuOVC+R3QLU7Q0UzD2FTfDdEwcv8gMroQ+qn
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-cert.der
deleted file mode 100644
index 756876f9e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-cert.pem
deleted file mode 100644
index b17122ad7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-cert.pem
+++ /dev/null
@@ -1,57 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 18174562873897217159 (0xfc3904a40ea56c87)
- Signature Algorithm: ecdsa-with-SHA384
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (384 bit)
- pub:
- 04:ee:82:d4:39:9a:b1:27:82:f4:d7:ea:c6:bc:03:
- 1d:4d:83:61:f4:03:ae:7e:bd:d8:5a:a5:b9:f0:8e:
- a2:a5:da:ce:87:3b:5a:ab:44:16:9c:f5:9f:62:dd:
- f6:20:cd:9c:76:3c:40:b1:3f:97:17:df:59:f6:cd:
- de:cd:46:35:c0:ed:5e:2e:48:b6:66:91:71:74:b7:
- 0c:3f:b9:9a:b7:83:bd:93:3f:5f:50:2d:70:3f:de:
- 35:25:e1:90:3b:86:e0
- ASN1 OID: secp384r1
- NIST CURVE: P-384
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- AB:E0:C3:26:4C:18:D4:72:BB:D2:84:8C:9C:0A:05:92:80:12:53:52
- X509v3 Authority Key Identifier:
- keyid:AB:E0:C3:26:4C:18:D4:72:BB:D2:84:8C:9C:0A:05:92:80:12:53:52
-
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- Signature Algorithm: ecdsa-with-SHA384
- 30:65:02:30:0d:0a:62:fb:e6:3a:fe:71:d8:2b:44:e5:97:34:
- 04:a9:8c:0a:99:88:a0:bd:1f:b0:df:94:59:27:bb:2b:c6:2a:
- be:a4:69:1b:cf:97:78:2a:28:96:ee:ba:d4:87:45:fd:02:31:
- 00:c0:73:19:66:76:5e:9f:a3:65:85:41:ef:b7:7b:3d:63:6d:
- 98:71:99:6f:9c:db:a8:5e:53:6e:a0:68:11:65:bc:78:74:28:
- 69:c7:64:9d:88:f2:d8:c2:3d:29:03:83:23
------BEGIN CERTIFICATE-----
-MIICxzCCAk2gAwIBAgIJAPw5BKQOpWyHMAoGCCqGSM49BAMDMIGXMQswCQYDVQQG
-EwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEQMA4G
-A1UECgwHd29sZlNTTDEUMBIGA1UECwwLRGV2ZWxvcG1lbnQxGDAWBgNVBAMMD3d3
-dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe
-Fw0xODA0MTMxNTIzMTBaFw0yMTAxMDcxNTIzMTBaMIGXMQswCQYDVQQGEwJVUzET
-MBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEQMA4GA1UECgwH
-d29sZlNTTDEUMBIGA1UECwwLRGV2ZWxvcG1lbnQxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTB2MBAGByqG
-SM49AgEGBSuBBAAiA2IABO6C1DmasSeC9NfqxrwDHU2DYfQDrn692FqlufCOoqXa
-zoc7WqtEFpz1n2Ld9iDNnHY8QLE/lxffWfbN3s1GNcDtXi5ItmaRcXS3DD+5mreD
-vZM/X1AtcD/eNSXhkDuG4KNjMGEwHQYDVR0OBBYEFKvgwyZMGNRyu9KEjJwKBZKA
-ElNSMB8GA1UdIwQYMBaAFKvgwyZMGNRyu9KEjJwKBZKAElNSMA8GA1UdEwEB/wQF
-MAMBAf8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMA0KYvvmOv5x
-2CtE5Zc0BKmMCpmIoL0fsN+UWSe7K8YqvqRpG8+XeCoolu661IdF/QIxAMBzGWZ2
-Xp+jZYVB77d7PWNtmHGZb5zbqF5TbqBoEWW8eHQoacdknYjy2MI9KQODIw==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-key.der
deleted file mode 100644
index 073ddfdd6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-key.pem
deleted file mode 100644
index 7201cd5ee..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-ecc384-key.pem
+++ /dev/null
@@ -1,6 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDB7FuPW0oGUbIrdqHju
-x36zxdHbLvPtDkiFsfLhejlWwPFiEg81tzm8nCXAduv+VXChZANiAATugtQ5mrEn
-gvTX6sa8Ax1Ng2H0A65+vdhapbnwjqKl2s6HO1qrRBac9Z9i3fYgzZx2PECxP5cX
-31n2zd7NRjXA7V4uSLZmkXF0tww/uZq3g72TP19QLXA/3jUl4ZA7huA=
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ca-key.der
deleted file mode 100644
index 14456f3e4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ca-key.pem
deleted file mode 100644
index 774feba05..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ca-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAvwzKLRSyHoRCW804H0ryTXUQ8bY1n9/KfQOY06zeA2buKvHY
-sH1uB1QLEJghTYDLEiDnzE/eRX3Jcncy6sqQu2lSEAMvqPOVxfGLYlYb72dvpBBB
-la0Km+OlwLDScHZQMFuo6AgsfO2nonqNOCkcrMft8nyVsJWCfUlcOM13Je+9gHVT
-lDw9ymNbnxW10x0TLxnRPNt2Osy4fcnlwtfaQG/YIdxzG0ItU5z+Gvx9q3o2P5je
-hHwFZ85qFDiHqfGMtWjLaH9xICv1oGP1Vi+jJtK3b7FaF9c4mQj+k1hv/sMTSQgW
-C6dNZwBSMWcjTpjtUUUduQTZC+zYKLNLve02eQIDAQABAoIBAD1uTmAahH+dhXzh
-Swd84NaZKt6d+TY0DncOPgjqT+UGJtT2OPffDQ8cLgai9CponGNy4zXmBJGRtcGx
-pFSs18b7QaDWdW+9C06/sVLoX0kmmFZHx97p6jxgAb8o3DG/SV+TSYd6gVuWS03K
-XDhPt+Gy08ch2jwShwfkG9xD7OjsVGHn9u2mCy7134J/xh9hGZykgznfIYWJb3ev
-hhUyCKJaCyZh+3AMypw4fbwi7uujqBYA+YqAHgCEqEpB+IQDZy8jWy+baybDBzSU
-owM7ctWfcuCtzDSrvcfV9SYwhQ8wIzlS/zzLmSFNiKWr7mK5x+C7R4fBac9z8zC+
-zjkEnOUCgYEA4XZFgFm200nfCu8S1g/wt8sqN7+n+LVN9TE1reSjlKHb8ZattQVk
-hYP8G1spqr74Jj92fq0c8MvXJrQbBY5Whn4IYiHBhtZHeT63XaTGOtexdCD2UJdB
-BFPtPybWb5H6aCbsKtya8efc+3PweUMbIaNZBGNSB8nX5tEbXV6W+lMCgYEA2O1O
-ZGFrkQxhAbUPu0RnUx7cB8Qkfp5shCORDOQSBBZNeJjMlj0gTg9Fmrb4s5MNsqIb
-KfImecjF0nh+XnPy13Bhu0DOYQX+aR6CKeYUuKHnltAjPwWTAPLhTX7tt5Zs9/Dk
-0c8BmE/cdFSqbV5aQTH+/5q2oAXdqRBU+GvQqoMCgYAh0wSKROtQt3xmv4cr5ihO
-6oPi6TXh8hFH/6H1/J8t5TqB/AEDb1OtVCe2Uu7lVtETq+GzD3WQCoS0ocCMDNae
-RrorPrUx7WO7pNUNj3LN0R4mNeu+G3L9mzm0h7cT9eqDRZOYuo/kSsy0TKh/CLpB
-SahJKD1ePcHONwDL+SzdUQKBgQChV58+udavg22DP4/70NyozgMJI7GhG2PKxElW
-NSvRLmVglQVVmRE1/dXfRMeliHJfsoJRqHFFkzbPXB9hUQwFgOivxXu6XiLjPHXD
-hAVVbdY6LYSJkzPLONqqMQXNzmwt3VXTVwvwpTVqsK4xukOWygDHS+MZEkPTQvpv
-6oDA0QKBgQC524kgNCdwYjTqXyViEvOdgb9I7poOwY0Q/2WanS0aipRayMClpYRh
-ntQkue+pncl3C8dwZj26yFTf0jPh9X/5J2G+V0Xdt0UXJPUj5DgOkSfu4yDYFMiU
-R3dAd0UYng3OeT9XMVYJSWe+lFhP9sSr4onj44rABVUsJMBKlwQnmg==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/client-ca.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/client-ca.pem
deleted file mode 100644
index 795d5f7ab..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/client-ca.pem
+++ /dev/null
@@ -1,142 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 12305170416376042871 (0xaac4bf4c50bd5577)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=wolfSSL_2048, OU=Programming-2048, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:09 2018 GMT
- Not After : Jan 7 15:23:09 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL_2048, OU=Programming-2048, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c3:03:d1:2b:fe:39:a4:32:45:3b:53:c8:84:2b:
- 2a:7c:74:9a:bd:aa:2a:52:07:47:d6:a6:36:b2:07:
- 32:8e:d0:ba:69:7b:c6:c3:44:9e:d4:81:48:fd:2d:
- 68:a2:8b:67:bb:a1:75:c8:36:2c:4a:d2:1b:f7:8b:
- ba:cf:0d:f9:ef:ec:f1:81:1e:7b:9b:03:47:9a:bf:
- 65:cc:7f:65:24:69:a6:e8:14:89:5b:e4:34:f7:c5:
- b0:14:93:f5:67:7b:3a:7a:78:e1:01:56:56:91:a6:
- 13:42:8d:d2:3c:40:9c:4c:ef:d1:86:df:37:51:1b:
- 0c:a1:3b:f5:f1:a3:4a:35:e4:e1:ce:96:df:1b:7e:
- bf:4e:97:d0:10:e8:a8:08:30:81:af:20:0b:43:14:
- c5:74:67:b4:32:82:6f:8d:86:c2:88:40:99:36:83:
- ba:1e:40:72:22:17:d7:52:65:24:73:b0:ce:ef:19:
- cd:ae:ff:78:6c:7b:c0:12:03:d4:4e:72:0d:50:6d:
- 3b:a3:3b:a3:99:5e:9d:c8:d9:0c:85:b3:d9:8a:d9:
- 54:26:db:6d:fa:ac:bb:ff:25:4c:c4:d1:79:f4:71:
- d3:86:40:18:13:b0:63:b5:72:4e:30:c4:97:84:86:
- 2d:56:2f:d7:15:f7:7f:c0:ae:f5:fc:5b:e5:fb:a1:
- ba:d3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0
- X509v3 Authority Key Identifier:
- keyid:33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0
- DirName:/C=US/ST=Montana/L=Bozeman/O=wolfSSL_2048/OU=Programming-2048/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:AA:C4:BF:4C:50:BD:55:77
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 80:52:54:61:2a:77:80:53:44:a9:80:6d:45:ff:0d:25:7d:1a:
- 8f:23:93:53:74:35:12:6f:f0:2e:20:ea:ed:80:63:69:88:e6:
- 0c:a1:49:30:e0:82:db:68:0f:7e:84:ac:ff:ff:7b:42:fa:7e:
- 2f:b2:52:9f:d2:79:5e:35:12:27:36:bc:df:96:58:44:96:55:
- c8:4a:94:02:5f:4a:9d:dc:d3:3a:f7:6d:ac:8b:79:6e:fc:be:
- 8f:23:58:6a:8a:f5:38:0a:42:f6:98:74:88:53:2e:02:af:e1:
- 0e:be:6f:cc:74:33:7c:ec:b4:cb:a7:49:6d:82:42:4f:eb:73:
- 29:c3:32:00:2b:15:f8:88:7a:8f:6d:20:1b:ae:65:5f:c5:d0:
- 8a:d1:e2:64:6d:a3:a8:fe:64:e1:a9:5b:e6:d0:23:d6:02:72:
- 5a:ec:03:8e:87:67:19:8d:e4:a8:99:15:c1:3d:91:48:99:8d:
- fe:ae:1c:bf:f6:28:1b:45:be:ad:ef:72:83:9a:f6:c7:3b:51:
- a3:6e:7a:73:bd:83:aa:97:fd:63:b4:f4:6b:1c:14:81:9a:ef:
- 14:24:d3:e1:8b:f4:04:04:84:54:0f:61:a2:a8:f2:50:37:0c:
- 17:0c:bc:e0:c2:84:85:f4:0b:ae:00:ca:9f:27:e2:44:4f:15:
- 0b:8b:1d:b4
------BEGIN CERTIFICATE-----
-MIIEyjCCA7KgAwIBAgIJAKrEv0xQvVV3MA0GCSqGSIb3DQEBCwUAMIGeMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEVMBMG
-A1UECgwMd29sZlNTTF8yMDQ4MRkwFwYDVQQLDBBQcm9ncmFtbWluZy0yMDQ4MRgw
-FgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb20wHhcNMTgwNDEzMTUyMzA5WhcNMjEwMTA3MTUyMzA5WjCBnjELMAkG
-A1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xFTAT
-BgNVBAoMDHdvbGZTU0xfMjA0ODEZMBcGA1UECwwQUHJvZ3JhbW1pbmctMjA0ODEY
-MBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwwPRK/45
-pDJFO1PIhCsqfHSavaoqUgdH1qY2sgcyjtC6aXvGw0Se1IFI/S1oootnu6F1yDYs
-StIb94u6zw357+zxgR57mwNHmr9lzH9lJGmm6BSJW+Q098WwFJP1Z3s6enjhAVZW
-kaYTQo3SPECcTO/Rht83URsMoTv18aNKNeThzpbfG36/TpfQEOioCDCBryALQxTF
-dGe0MoJvjYbCiECZNoO6HkByIhfXUmUkc7DO7xnNrv94bHvAEgPUTnINUG07ozuj
-mV6dyNkMhbPZitlUJttt+qy7/yVMxNF59HHThkAYE7BjtXJOMMSXhIYtVi/XFfd/
-wK71/Fvl+6G60wIDAQABo4IBBzCCAQMwHQYDVR0OBBYEFDPYRWbXaIcYflQNcCeR
-xybXhWXAMIHTBgNVHSMEgcswgciAFDPYRWbXaIcYflQNcCeRxybXhWXAoYGkpIGh
-MIGeMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96
-ZW1hbjEVMBMGA1UECgwMd29sZlNTTF8yMDQ4MRkwFwYDVQQLDBBQcm9ncmFtbWlu
-Zy0yMDQ4MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEW
-EGluZm9Ad29sZnNzbC5jb22CCQCqxL9MUL1VdzAMBgNVHRMEBTADAQH/MA0GCSqG
-SIb3DQEBCwUAA4IBAQCAUlRhKneAU0SpgG1F/w0lfRqPI5NTdDUSb/AuIOrtgGNp
-iOYMoUkw4ILbaA9+hKz//3tC+n4vslKf0nleNRInNrzfllhEllXISpQCX0qd3NM6
-922si3lu/L6PI1hqivU4CkL2mHSIUy4Cr+EOvm/MdDN87LTLp0ltgkJP63MpwzIA
-KxX4iHqPbSAbrmVfxdCK0eJkbaOo/mThqVvm0CPWAnJa7AOOh2cZjeSomRXBPZFI
-mY3+rhy/9igbRb6t73KDmvbHO1GjbnpzvYOql/1jtPRrHBSBmu8UJNPhi/QEBIRU
-D2GiqPJQNwwXDLzgwoSF9AuuAMqfJ+JETxULix20
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 10646345548447194541 (0x93bf6ade9b419dad)
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: C=US, ST=Oregon, L=Salem, O=Client ECC, OU=Fast, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Oregon, L=Salem, O=Client ECC, OU=Fast, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (256 bit)
- pub:
- 04:55:bf:f4:0f:44:50:9a:3d:ce:9b:b7:f0:c5:4d:
- f5:70:7b:d4:ec:24:8e:19:80:ec:5a:4c:a2:24:03:
- 62:2c:9b:da:ef:a2:35:12:43:84:76:16:c6:56:95:
- 06:cc:01:a9:bd:f6:75:1a:42:f7:bd:a9:b2:36:22:
- 5f:c7:5d:7f:b4
- ASN1 OID: prime256v1
- NIST CURVE: P-256
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- EB:D4:4B:59:6B:95:61:3F:51:57:B6:04:4D:89:41:88:44:5C:AB:F2
- X509v3 Authority Key Identifier:
- keyid:EB:D4:4B:59:6B:95:61:3F:51:57:B6:04:4D:89:41:88:44:5C:AB:F2
- DirName:/C=US/ST=Oregon/L=Salem/O=Client ECC/OU=Fast/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:93:BF:6A:DE:9B:41:9D:AD
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: ecdsa-with-SHA256
- 30:44:02:20:61:bc:9d:4d:88:64:86:b8:71:aa:35:59:68:b8:
- ee:2c:f3:23:b5:1a:b9:ba:41:50:a8:c6:c3:58:eb:58:bd:60:
- 02:20:61:aa:eb:b5:73:0d:01:db:69:8f:52:f5:72:6d:37:42:
- b5:fd:94:b6:6e:b1:c4:25:2e:96:96:f3:39:b2:5d:ea
------BEGIN CERTIFICATE-----
-MIIDCDCCAq+gAwIBAgIJAJO/at6bQZ2tMAoGCCqGSM49BAMCMIGNMQswCQYDVQQG
-EwJVUzEPMA0GA1UECAwGT3JlZ29uMQ4wDAYDVQQHDAVTYWxlbTETMBEGA1UECgwK
-Q2xpZW50IEVDQzENMAsGA1UECwwERmFzdDEYMBYGA1UEAwwPd3d3LndvbGZzc2wu
-Y29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MDQxMzE1
-MjMxMFoXDTIxMDEwNzE1MjMxMFowgY0xCzAJBgNVBAYTAlVTMQ8wDQYDVQQIDAZP
-cmVnb24xDjAMBgNVBAcMBVNhbGVtMRMwEQYDVQQKDApDbGllbnQgRUNDMQ0wCwYD
-VQQLDARGYXN0MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0B
-CQEWEGluZm9Ad29sZnNzbC5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARV
-v/QPRFCaPc6bt/DFTfVwe9TsJI4ZgOxaTKIkA2Ism9rvojUSQ4R2FsZWlQbMAam9
-9nUaQve9qbI2Il/HXX+0o4H1MIHyMB0GA1UdDgQWBBTr1EtZa5VhP1FXtgRNiUGI
-RFyr8jCBwgYDVR0jBIG6MIG3gBTr1EtZa5VhP1FXtgRNiUGIRFyr8qGBk6SBkDCB
-jTELMAkGA1UEBhMCVVMxDzANBgNVBAgMBk9yZWdvbjEOMAwGA1UEBwwFU2FsZW0x
-EzARBgNVBAoMCkNsaWVudCBFQ0MxDTALBgNVBAsMBEZhc3QxGDAWBgNVBAMMD3d3
-dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJ
-AJO/at6bQZ2tMAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDRwAwRAIgYbydTYhk
-hrhxqjVZaLjuLPMjtRq5ukFQqMbDWOtYvWACIGGq67VzDQHbaY9S9XJtN0K1/ZS2
-brHEJS6WlvM5sl3q
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/client-cert-ext.der b/FreeRTOS-Plus/Source/WolfSSL/certs/client-cert-ext.der
deleted file mode 100644
index d58a1dbf3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/client-cert-ext.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/client-cert-ext.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/client-cert-ext.pem
deleted file mode 100644
index b50da7104..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/client-cert-ext.pem
+++ /dev/null
@@ -1,93 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 7e:ff:c6:42:4f:83:8b:1f:1a:9d:4e:2f:ba:27:9f:97:d7:e2:ea:ab
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = wolfSSL_2048, OU = Programming-2048, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Sep 20 14:13:15 2019 GMT
- Not After : Jun 16 14:13:15 2022 GMT
- Subject: C = US, ST = Montana, L = Bozeman, O = wolfSSL_2048, OU = Programming-2048, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:c3:03:d1:2b:fe:39:a4:32:45:3b:53:c8:84:2b:
- 2a:7c:74:9a:bd:aa:2a:52:07:47:d6:a6:36:b2:07:
- 32:8e:d0:ba:69:7b:c6:c3:44:9e:d4:81:48:fd:2d:
- 68:a2:8b:67:bb:a1:75:c8:36:2c:4a:d2:1b:f7:8b:
- ba:cf:0d:f9:ef:ec:f1:81:1e:7b:9b:03:47:9a:bf:
- 65:cc:7f:65:24:69:a6:e8:14:89:5b:e4:34:f7:c5:
- b0:14:93:f5:67:7b:3a:7a:78:e1:01:56:56:91:a6:
- 13:42:8d:d2:3c:40:9c:4c:ef:d1:86:df:37:51:1b:
- 0c:a1:3b:f5:f1:a3:4a:35:e4:e1:ce:96:df:1b:7e:
- bf:4e:97:d0:10:e8:a8:08:30:81:af:20:0b:43:14:
- c5:74:67:b4:32:82:6f:8d:86:c2:88:40:99:36:83:
- ba:1e:40:72:22:17:d7:52:65:24:73:b0:ce:ef:19:
- cd:ae:ff:78:6c:7b:c0:12:03:d4:4e:72:0d:50:6d:
- 3b:a3:3b:a3:99:5e:9d:c8:d9:0c:85:b3:d9:8a:d9:
- 54:26:db:6d:fa:ac:bb:ff:25:4c:c4:d1:79:f4:71:
- d3:86:40:18:13:b0:63:b5:72:4e:30:c4:97:84:86:
- 2d:56:2f:d7:15:f7:7f:c0:ae:f5:fc:5b:e5:fb:a1:
- ba:d3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0
- X509v3 Authority Key Identifier:
- keyid:33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0
- DirName:/C=US/ST=Montana/L=Bozeman/O=wolfSSL_2048/OU=Programming-2048/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:7E:FF:C6:42:4F:83:8B:1F:1A:9D:4E:2F:BA:27:9F:97:D7:E2:EA:AB
-
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Alternative Name:
- DNS:example.com
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 46:c2:a5:a6:32:84:b0:68:03:41:de:37:da:c3:b8:46:71:3a:
- 31:aa:1a:f0:81:28:c3:07:37:61:17:7d:10:45:ee:ef:cd:c0:
- 19:2f:9e:95:01:5d:d6:09:13:8e:19:ea:da:27:75:66:21:e1:
- bd:f8:97:a0:b5:8b:9e:71:13:26:75:50:34:f5:ac:8e:f8:d3:
- 89:d7:52:0a:f2:5f:3e:07:c2:02:e0:36:73:75:30:a9:5a:ba:
- 24:ef:fb:28:08:0d:31:53:84:3d:fd:1d:92:f9:15:da:01:7c:
- 20:70:d5:b6:0d:ea:3a:f1:85:90:b1:c3:b7:71:20:cb:03:22:
- f3:8f:e5:02:4f:b1:77:1c:97:17:2c:3b:e9:41:1a:18:7c:89:
- d9:8e:5f:34:6c:66:9c:61:79:f5:bd:df:68:2e:14:cc:11:d7:
- e5:ce:9f:8a:0d:86:94:15:86:fa:32:0f:90:18:d1:2d:df:16:
- 56:58:09:25:91:21:c2:d3:f6:7e:c8:49:aa:00:d7:61:c7:9d:
- d2:23:b1:7f:96:b0:79:6e:8b:09:38:2f:13:e1:48:9e:9a:28:
- d4:08:44:73:29:52:49:eb:9d:fb:a6:f8:1f:2e:c5:d3:31:52:
- 86:ea:18:99:1d:73:ab:4b:f3:7c:6f:f5:84:c3:96:fb:02:36:
- d9:13:64:8b
------BEGIN CERTIFICATE-----
-MIIFCDCCA/CgAwIBAgIUfv/GQk+Dix8anU4vuiefl9fi6qswDQYJKoZIhvcNAQEL
-BQAwgZ4xCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdC
-b3plbWFuMRUwEwYDVQQKDAx3b2xmU1NMXzIwNDgxGTAXBgNVBAsMEFByb2dyYW1t
-aW5nLTIwNDgxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJ
-ARYQaW5mb0B3b2xmc3NsLmNvbTAeFw0xOTA5MjAxNDEzMTVaFw0yMjA2MTYxNDEz
-MTVaMIGeMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwH
-Qm96ZW1hbjEVMBMGA1UECgwMd29sZlNTTF8yMDQ4MRkwFwYDVQQLDBBQcm9ncmFt
-bWluZy0yMDQ4MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0B
-CQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQDDA9Er/jmkMkU7U8iEKyp8dJq9qipSB0fWpjayBzKO0Lppe8bDRJ7UgUj9
-LWiii2e7oXXINixK0hv3i7rPDfnv7PGBHnubA0eav2XMf2UkaaboFIlb5DT3xbAU
-k/Vnezp6eOEBVlaRphNCjdI8QJxM79GG3zdRGwyhO/Xxo0o15OHOlt8bfr9Ol9AQ
-6KgIMIGvIAtDFMV0Z7Qygm+NhsKIQJk2g7oeQHIiF9dSZSRzsM7vGc2u/3hse8AS
-A9ROcg1QbTujO6OZXp3I2QyFs9mK2VQm2236rLv/JUzE0Xn0cdOGQBgTsGO1ck4w
-xJeEhi1WL9cV93/ArvX8W+X7obrTAgMBAAGjggE6MIIBNjAdBgNVHQ4EFgQUM9hF
-Ztdohxh+VA1wJ5HHJteFZcAwgd4GA1UdIwSB1jCB04AUM9hFZtdohxh+VA1wJ5HH
-JteFZcChgaSkgaEwgZ4xCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAw
-DgYDVQQHDAdCb3plbWFuMRUwEwYDVQQKDAx3b2xmU1NMXzIwNDgxGTAXBgNVBAsM
-EFByb2dyYW1taW5nLTIwNDgxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0G
-CSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIUfv/GQk+Dix8anU4vuiefl9fi
-6qswDAYDVR0TBAUwAwEB/zAWBgNVHREEDzANggtleGFtcGxlLmNvbTAOBgNVHQ8B
-Af8EBAMCAYYwDQYJKoZIhvcNAQELBQADggEBAEbCpaYyhLBoA0HeN9rDuEZxOjGq
-GvCBKMMHN2EXfRBF7u/NwBkvnpUBXdYJE44Z6tondWYh4b34l6C1i55xEyZ1UDT1
-rI7404nXUgryXz4HwgLgNnN1MKlauiTv+ygIDTFThD39HZL5FdoBfCBw1bYN6jrx
-hZCxw7dxIMsDIvOP5QJPsXcclxcsO+lBGhh8idmOXzRsZpxhefW932guFMwR1+XO
-n4oNhpQVhvoyD5AY0S3fFlZYCSWRIcLT9n7ISaoA12HHndIjsX+WsHluiwk4LxPh
-SJ6aKNQIRHMpUknrnfum+B8uxdMxUobqGJkdc6tL83xv9YTDlvsCNtkTZIs=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/client-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/client-cert.der
deleted file mode 100644
index 5241ec374..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/client-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/client-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/client-cert.pem
deleted file mode 100644
index 9b6a8190d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/client-cert.pem
+++ /dev/null
@@ -1,87 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 12305170416376042871 (0xaac4bf4c50bd5577)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=wolfSSL_2048, OU=Programming-2048, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:09 2018 GMT
- Not After : Jan 7 15:23:09 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL_2048, OU=Programming-2048, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c3:03:d1:2b:fe:39:a4:32:45:3b:53:c8:84:2b:
- 2a:7c:74:9a:bd:aa:2a:52:07:47:d6:a6:36:b2:07:
- 32:8e:d0:ba:69:7b:c6:c3:44:9e:d4:81:48:fd:2d:
- 68:a2:8b:67:bb:a1:75:c8:36:2c:4a:d2:1b:f7:8b:
- ba:cf:0d:f9:ef:ec:f1:81:1e:7b:9b:03:47:9a:bf:
- 65:cc:7f:65:24:69:a6:e8:14:89:5b:e4:34:f7:c5:
- b0:14:93:f5:67:7b:3a:7a:78:e1:01:56:56:91:a6:
- 13:42:8d:d2:3c:40:9c:4c:ef:d1:86:df:37:51:1b:
- 0c:a1:3b:f5:f1:a3:4a:35:e4:e1:ce:96:df:1b:7e:
- bf:4e:97:d0:10:e8:a8:08:30:81:af:20:0b:43:14:
- c5:74:67:b4:32:82:6f:8d:86:c2:88:40:99:36:83:
- ba:1e:40:72:22:17:d7:52:65:24:73:b0:ce:ef:19:
- cd:ae:ff:78:6c:7b:c0:12:03:d4:4e:72:0d:50:6d:
- 3b:a3:3b:a3:99:5e:9d:c8:d9:0c:85:b3:d9:8a:d9:
- 54:26:db:6d:fa:ac:bb:ff:25:4c:c4:d1:79:f4:71:
- d3:86:40:18:13:b0:63:b5:72:4e:30:c4:97:84:86:
- 2d:56:2f:d7:15:f7:7f:c0:ae:f5:fc:5b:e5:fb:a1:
- ba:d3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0
- X509v3 Authority Key Identifier:
- keyid:33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0
- DirName:/C=US/ST=Montana/L=Bozeman/O=wolfSSL_2048/OU=Programming-2048/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:AA:C4:BF:4C:50:BD:55:77
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 80:52:54:61:2a:77:80:53:44:a9:80:6d:45:ff:0d:25:7d:1a:
- 8f:23:93:53:74:35:12:6f:f0:2e:20:ea:ed:80:63:69:88:e6:
- 0c:a1:49:30:e0:82:db:68:0f:7e:84:ac:ff:ff:7b:42:fa:7e:
- 2f:b2:52:9f:d2:79:5e:35:12:27:36:bc:df:96:58:44:96:55:
- c8:4a:94:02:5f:4a:9d:dc:d3:3a:f7:6d:ac:8b:79:6e:fc:be:
- 8f:23:58:6a:8a:f5:38:0a:42:f6:98:74:88:53:2e:02:af:e1:
- 0e:be:6f:cc:74:33:7c:ec:b4:cb:a7:49:6d:82:42:4f:eb:73:
- 29:c3:32:00:2b:15:f8:88:7a:8f:6d:20:1b:ae:65:5f:c5:d0:
- 8a:d1:e2:64:6d:a3:a8:fe:64:e1:a9:5b:e6:d0:23:d6:02:72:
- 5a:ec:03:8e:87:67:19:8d:e4:a8:99:15:c1:3d:91:48:99:8d:
- fe:ae:1c:bf:f6:28:1b:45:be:ad:ef:72:83:9a:f6:c7:3b:51:
- a3:6e:7a:73:bd:83:aa:97:fd:63:b4:f4:6b:1c:14:81:9a:ef:
- 14:24:d3:e1:8b:f4:04:04:84:54:0f:61:a2:a8:f2:50:37:0c:
- 17:0c:bc:e0:c2:84:85:f4:0b:ae:00:ca:9f:27:e2:44:4f:15:
- 0b:8b:1d:b4
------BEGIN CERTIFICATE-----
-MIIEyjCCA7KgAwIBAgIJAKrEv0xQvVV3MA0GCSqGSIb3DQEBCwUAMIGeMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEVMBMG
-A1UECgwMd29sZlNTTF8yMDQ4MRkwFwYDVQQLDBBQcm9ncmFtbWluZy0yMDQ4MRgw
-FgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb20wHhcNMTgwNDEzMTUyMzA5WhcNMjEwMTA3MTUyMzA5WjCBnjELMAkG
-A1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xFTAT
-BgNVBAoMDHdvbGZTU0xfMjA0ODEZMBcGA1UECwwQUHJvZ3JhbW1pbmctMjA0ODEY
-MBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwwPRK/45
-pDJFO1PIhCsqfHSavaoqUgdH1qY2sgcyjtC6aXvGw0Se1IFI/S1oootnu6F1yDYs
-StIb94u6zw357+zxgR57mwNHmr9lzH9lJGmm6BSJW+Q098WwFJP1Z3s6enjhAVZW
-kaYTQo3SPECcTO/Rht83URsMoTv18aNKNeThzpbfG36/TpfQEOioCDCBryALQxTF
-dGe0MoJvjYbCiECZNoO6HkByIhfXUmUkc7DO7xnNrv94bHvAEgPUTnINUG07ozuj
-mV6dyNkMhbPZitlUJttt+qy7/yVMxNF59HHThkAYE7BjtXJOMMSXhIYtVi/XFfd/
-wK71/Fvl+6G60wIDAQABo4IBBzCCAQMwHQYDVR0OBBYEFDPYRWbXaIcYflQNcCeR
-xybXhWXAMIHTBgNVHSMEgcswgciAFDPYRWbXaIcYflQNcCeRxybXhWXAoYGkpIGh
-MIGeMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96
-ZW1hbjEVMBMGA1UECgwMd29sZlNTTF8yMDQ4MRkwFwYDVQQLDBBQcm9ncmFtbWlu
-Zy0yMDQ4MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEW
-EGluZm9Ad29sZnNzbC5jb22CCQCqxL9MUL1VdzAMBgNVHRMEBTADAQH/MA0GCSqG
-SIb3DQEBCwUAA4IBAQCAUlRhKneAU0SpgG1F/w0lfRqPI5NTdDUSb/AuIOrtgGNp
-iOYMoUkw4ILbaA9+hKz//3tC+n4vslKf0nleNRInNrzfllhEllXISpQCX0qd3NM6
-922si3lu/L6PI1hqivU4CkL2mHSIUy4Cr+EOvm/MdDN87LTLp0ltgkJP63MpwzIA
-KxX4iHqPbSAbrmVfxdCK0eJkbaOo/mThqVvm0CPWAnJa7AOOh2cZjeSomRXBPZFI
-mY3+rhy/9igbRb6t73KDmvbHO1GjbnpzvYOql/1jtPRrHBSBmu8UJNPhi/QEBIRU
-D2GiqPJQNwwXDLzgwoSF9AuuAMqfJ+JETxULix20
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/client-ecc-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/client-ecc-cert.der
deleted file mode 100644
index d6c5dbba9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/client-ecc-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/client-ecc-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/client-ecc-cert.pem
deleted file mode 100644
index 217035bdd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/client-ecc-cert.pem
+++ /dev/null
@@ -1,55 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 10646345548447194541 (0x93bf6ade9b419dad)
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: C=US, ST=Oregon, L=Salem, O=Client ECC, OU=Fast, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Oregon, L=Salem, O=Client ECC, OU=Fast, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (256 bit)
- pub:
- 04:55:bf:f4:0f:44:50:9a:3d:ce:9b:b7:f0:c5:4d:
- f5:70:7b:d4:ec:24:8e:19:80:ec:5a:4c:a2:24:03:
- 62:2c:9b:da:ef:a2:35:12:43:84:76:16:c6:56:95:
- 06:cc:01:a9:bd:f6:75:1a:42:f7:bd:a9:b2:36:22:
- 5f:c7:5d:7f:b4
- ASN1 OID: prime256v1
- NIST CURVE: P-256
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- EB:D4:4B:59:6B:95:61:3F:51:57:B6:04:4D:89:41:88:44:5C:AB:F2
- X509v3 Authority Key Identifier:
- keyid:EB:D4:4B:59:6B:95:61:3F:51:57:B6:04:4D:89:41:88:44:5C:AB:F2
- DirName:/C=US/ST=Oregon/L=Salem/O=Client ECC/OU=Fast/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:93:BF:6A:DE:9B:41:9D:AD
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: ecdsa-with-SHA256
- 30:44:02:20:61:bc:9d:4d:88:64:86:b8:71:aa:35:59:68:b8:
- ee:2c:f3:23:b5:1a:b9:ba:41:50:a8:c6:c3:58:eb:58:bd:60:
- 02:20:61:aa:eb:b5:73:0d:01:db:69:8f:52:f5:72:6d:37:42:
- b5:fd:94:b6:6e:b1:c4:25:2e:96:96:f3:39:b2:5d:ea
------BEGIN CERTIFICATE-----
-MIIDCDCCAq+gAwIBAgIJAJO/at6bQZ2tMAoGCCqGSM49BAMCMIGNMQswCQYDVQQG
-EwJVUzEPMA0GA1UECAwGT3JlZ29uMQ4wDAYDVQQHDAVTYWxlbTETMBEGA1UECgwK
-Q2xpZW50IEVDQzENMAsGA1UECwwERmFzdDEYMBYGA1UEAwwPd3d3LndvbGZzc2wu
-Y29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MDQxMzE1
-MjMxMFoXDTIxMDEwNzE1MjMxMFowgY0xCzAJBgNVBAYTAlVTMQ8wDQYDVQQIDAZP
-cmVnb24xDjAMBgNVBAcMBVNhbGVtMRMwEQYDVQQKDApDbGllbnQgRUNDMQ0wCwYD
-VQQLDARGYXN0MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0B
-CQEWEGluZm9Ad29sZnNzbC5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARV
-v/QPRFCaPc6bt/DFTfVwe9TsJI4ZgOxaTKIkA2Ism9rvojUSQ4R2FsZWlQbMAam9
-9nUaQve9qbI2Il/HXX+0o4H1MIHyMB0GA1UdDgQWBBTr1EtZa5VhP1FXtgRNiUGI
-RFyr8jCBwgYDVR0jBIG6MIG3gBTr1EtZa5VhP1FXtgRNiUGIRFyr8qGBk6SBkDCB
-jTELMAkGA1UEBhMCVVMxDzANBgNVBAgMBk9yZWdvbjEOMAwGA1UEBwwFU2FsZW0x
-EzARBgNVBAoMCkNsaWVudCBFQ0MxDTALBgNVBAsMBEZhc3QxGDAWBgNVBAMMD3d3
-dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJ
-AJO/at6bQZ2tMAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDRwAwRAIgYbydTYhk
-hrhxqjVZaLjuLPMjtRq5ukFQqMbDWOtYvWACIGGq67VzDQHbaY9S9XJtN0K1/ZS2
-brHEJS6WlvM5sl3q
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/client-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/client-key.der
deleted file mode 100644
index 94dc253a2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/client-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/client-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/client-key.pem
deleted file mode 100644
index c4e7ad22c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/client-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAwwPRK/45pDJFO1PIhCsqfHSavaoqUgdH1qY2sgcyjtC6aXvG
-w0Se1IFI/S1oootnu6F1yDYsStIb94u6zw357+zxgR57mwNHmr9lzH9lJGmm6BSJ
-W+Q098WwFJP1Z3s6enjhAVZWkaYTQo3SPECcTO/Rht83URsMoTv18aNKNeThzpbf
-G36/TpfQEOioCDCBryALQxTFdGe0MoJvjYbCiECZNoO6HkByIhfXUmUkc7DO7xnN
-rv94bHvAEgPUTnINUG07ozujmV6dyNkMhbPZitlUJttt+qy7/yVMxNF59HHThkAY
-E7BjtXJOMMSXhIYtVi/XFfd/wK71/Fvl+6G60wIDAQABAoIBAQCi5thfEHFkCJ4u
-bdFtHoXSCrGMR84sUWqgEp5T3pFMHW3qWXvyd6rZxtmKq9jhFuRjJv+1bBNZuOOl
-yHIXLgyfb+VZP3ZvSbERwlouFikN3reO3EDVou7gHqH0vpfbhmOWFM2YCWAtMHac
-PM3miO5HknkLWgDiXl8RfH35CLcgBokqXf0AqyLh8LO8JKleJg4fAC3+IZpTW23T
-K6uUgmhDNtj2L8Yi/LVBXQ0zYOqkfX7oS1WRVtNcV48flBcvqt7pnqj0z4pMjqDk
-VnOyz0+GxWk88yQgi1yWDPprEjuaZ8HfxpaypdWSDZsJQmgkEEXUUOQXOUjQNYuU
-bRHej8pZAoGBAOokp/lpM+lx3FJ9iCEoL0neunIW6cxHeogNlFeEWBY6gbA/os+m
-bB6wBikAj+d3dqzbysfZXps/JpBSrvw4kAAUu7QPWJTnL2p+HE9BIdQxWR9OihqN
-p1dsItjl9H4yphDLZKVVA4emJwWMw9e2J7JNujDaR49U0z2LhI2UmFilAoGBANU4
-G8OPxZMMRwtvNZLFsI1GyJIYj/WACvfvof6AubUqusoYsF2lB9CTjdicBBzUYo6m
-JoEB/86KKmM0NUCqbYDeiSNqV02ebq2TTlaQC22dc4sMric93k7wqsVseGdslFKc
-N2dsLe+7r9+mkDzER8+Nlp6YqbSfxaZQ3LPw+3QXAoGAXoMJYr26fKK/QnT1fBzS
-ackEDYV+Pj0kEsMYe/Mp818OdmxZdeRBhGmdMvPNIquwNbpKsjzl2Vi2Yk9d3uWe
-CspTsiz3nrNrClt5ZexukU6SIPb8/Bbt03YM4ux/smkTa3gOWkZktF63JaBadTpL
-78c8Pvf9JrggxJkKmnO+wxkCgYEAukSTFKw0GTtfkWCs97TWgQU2UVM96GXcry7c
-YT7Jfbh/h/A7mwOCKTfOck4R1bHBDAegmZFKjX/sec/xObXphexi99p9vGRNIjwO
-8tZR9YfYmcARIF0PKf1b4q7ZHNkhVm38hNBf7RAVHBgh58Q9S9fQnmqVzyLJA3ue
-42AB/C8CgYAR0EvPG2e5nxB1R4ZlrjHCxjCsWQZQ2Q+1cAb38NPIYnyo2m72IT/T
-f1/qiqs/2Spe81HSwjA34y2jdQ0eTSE01VdwXIm/cuxKbmjVzRh0M06MOkWP5pZA
-62P5GYY6Ud2JS7Dz+Z9dKJU4vjWrylznk1M0oUVdEzllQkahn831vw==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/client-keyEnc.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/client-keyEnc.pem
deleted file mode 100644
index 5476dc929..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/client-keyEnc.pem
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-CBC,45B763473154576D
-
-8ZSASs14Oqtc8p2nx5sx8oqPsgZmf0IfZTCzXLFivaA0UXdCQLxtsthQRQ07xRrH
-if96wh11dWuxW0dkSLKna9HguzNQ96ybbw5CwCCkYrfjef7sxoEUe9D6j3UMXZ/F
-iaVPMmbHTcf9gn1ozkkxPSlsts/5f8AKFloHRXUE1jAih4wLB3mbIyDG9iKm45ck
-Rn7+u6Fe3hDG/9JWtbLW3ePh5L455U6zP5hlneodDZEabUguUef7EMzXE01LqPAy
-qeatI7t54cAGkUVgGbZrsKcXtiDtRNUefa9hb90tugY29LAt1ls5K68kR1x9U+TM
-kWgjMzmhab5e7Alh+yMfDg2WplI2EHTDuLvcX9Vh1OHe7akN67EN/0IYcpGCryfe
-RHLYvNNjXyJWfMKuo0XVqMY1JyBDebYJTlEafwNcjSBWSo5U4uihnVXvj8NfU36Z
-JIeGGo6fyq5D0pPjvtRpk3XwbzQlvAQSDxbFp9dIX7m46Ji7YaeQO8Fgg1L5ENfm
-wTx6xdPPdFb3ux0ksiU8QoF7190kjmS4SbeSLvpLjGh1f3dz6suJ+7+KN0ZwQd4e
-Ki+IDuaKhYR1vn0ROVvUQ0+nmkunblcO6HyhcTgWiSCBIWhTwrRJIV4tmiQYS5bc
-G7PqGIIOsFwwOwY4IWYt57YS0DGJsbdBuXToZgnnpG0yvnsIkeasEc5h4KCslQ0o
-lztCFZxGITjDtt+b8acnCEN2calYBkKZfc1LV1u/Fh2no1CnDtjHqk0E0tcjuU6M
-sZ3NSiiI0puvG91LtwidHP7x0okR2voG8joN3XmBDigUo/6SazjPoWwhOFIuE/MY
-aXnPMFxgZ/KV5DcPWa3lOTMIfOzY84aMs4q4q4huCX9/MVe4ZjcuI1T8RCoSSvTu
-jOV+eJL7N2uZi40BWVPMwFOIkgVn3oK99L/FtTJUzYDXqVb0Cmi6bg0FrwGQOJMV
-M+ETvTW89k+Zy/RLXiFvdGeCHQXwkUJYlQGJkrkC5fWevEDmdH2qZbcgs/o8X5tg
-lFOGoXRvmMLrNXLQVt5SGKsTjRxMbbSmNY3J+e2hFVkc8oslQZqtacDlZ29D0enQ
-6me7+n2Qy6QOeTJ1pQOY5jHiJwsub2OCx1oML6lKBpn7g0taUGZauSIr+R14F/R7
-YhgO2QTydUrbs7jOwaIitdiwNuaHlFIujB8tqo1xAjPE18QL4NbqV/CUzLDuyiB+
-3hHmzRJ1aQTGO0/2ucbUqf6MUWvNuc6zFg5AETSg1or8A7gqi8/HdlBR6wUo+rug
-IvJ2OkR9vyR8QJDOM9Pn8TS0e0B7TVqb8rUltzRtXOcbtLL3Xvy00+wlVyyiLRPz
-u/u355ZoMDZLVhOoVoLGlXhA+St91qrELpe1O8aNrqOQy3pyhybiPOh9lgtqyr1C
-QMQLcBGdoyMCsSiuDFbV+7thd/rQPE1Qqy06rStv1OEv9Y+hzZxrzF8HSfSLuNPd
-UCDn9SSzZwGU9odLJNrzSNfz8GDVc72lKHlIR4bHMw0FW2QPsJR8NrN6ch4oYmfw
-17R/cQ9CfWA0cEcSiAKIthbP7NHWw4SAhJ6sqwpDK4Vh8PrDF3U6WCEEshaokm+H
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/client-keyPub.der b/FreeRTOS-Plus/Source/WolfSSL/certs/client-keyPub.der
deleted file mode 100644
index b27f0e9bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/client-keyPub.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/client-relative-uri.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/client-relative-uri.pem
deleted file mode 100644
index f4e0f5ca0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/client-relative-uri.pem
+++ /dev/null
@@ -1,90 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 9930516258332383263 (0x89d047ec3e24981f)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=wolfSSL_2048, OU=RELATIVE_URI, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: May 14 20:24:06 2018 GMT
- Not After : Feb 7 20:24:06 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL_2048, OU=RELATIVE_URI, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c3:03:d1:2b:fe:39:a4:32:45:3b:53:c8:84:2b:
- 2a:7c:74:9a:bd:aa:2a:52:07:47:d6:a6:36:b2:07:
- 32:8e:d0:ba:69:7b:c6:c3:44:9e:d4:81:48:fd:2d:
- 68:a2:8b:67:bb:a1:75:c8:36:2c:4a:d2:1b:f7:8b:
- ba:cf:0d:f9:ef:ec:f1:81:1e:7b:9b:03:47:9a:bf:
- 65:cc:7f:65:24:69:a6:e8:14:89:5b:e4:34:f7:c5:
- b0:14:93:f5:67:7b:3a:7a:78:e1:01:56:56:91:a6:
- 13:42:8d:d2:3c:40:9c:4c:ef:d1:86:df:37:51:1b:
- 0c:a1:3b:f5:f1:a3:4a:35:e4:e1:ce:96:df:1b:7e:
- bf:4e:97:d0:10:e8:a8:08:30:81:af:20:0b:43:14:
- c5:74:67:b4:32:82:6f:8d:86:c2:88:40:99:36:83:
- ba:1e:40:72:22:17:d7:52:65:24:73:b0:ce:ef:19:
- cd:ae:ff:78:6c:7b:c0:12:03:d4:4e:72:0d:50:6d:
- 3b:a3:3b:a3:99:5e:9d:c8:d9:0c:85:b3:d9:8a:d9:
- 54:26:db:6d:fa:ac:bb:ff:25:4c:c4:d1:79:f4:71:
- d3:86:40:18:13:b0:63:b5:72:4e:30:c4:97:84:86:
- 2d:56:2f:d7:15:f7:7f:c0:ae:f5:fc:5b:e5:fb:a1:
- ba:d3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0
- X509v3 Authority Key Identifier:
- keyid:33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0
- DirName:/C=US/ST=Montana/L=Bozeman/O=wolfSSL_2048/OU=RELATIVE_URI/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:89:D0:47:EC:3E:24:98:1F
-
- X509v3 Basic Constraints:
- CA:FALSE
- X509v3 Subject Alternative Name:
- URI:../relative/page.html
- Signature Algorithm: sha256WithRSAEncryption
- 29:cb:c0:50:61:da:51:c5:da:50:15:b7:bd:c3:f4:9b:c5:b8:
- 2a:9b:6c:c7:91:7a:26:e3:eb:48:d2:40:fa:e3:ab:f9:b7:e2:
- 4a:37:9b:b6:03:ad:9c:f4:f2:5d:12:eb:5c:c6:97:c4:3a:18:
- 99:70:47:49:93:f3:a5:32:ab:aa:22:71:6f:5c:36:1c:42:2f:
- d4:19:da:64:73:84:d3:1e:a8:5f:af:8a:58:e7:64:18:38:79:
- 69:f2:08:d4:f2:be:b0:9c:18:d8:f1:a5:eb:b6:9c:67:21:0f:
- ba:bf:95:68:e9:d2:23:56:84:cf:87:7c:a4:2a:3a:0d:c1:72:
- 3a:43:da:53:bb:6c:f0:b5:f1:03:3c:ff:b6:0a:1f:54:c5:1b:
- d5:40:80:24:74:e2:f6:4c:41:88:f1:df:a3:36:64:78:e9:c2:
- 0e:c3:0f:f3:5f:19:e6:44:85:79:e1:6a:ee:78:39:9b:58:e3:
- c4:39:27:d7:05:1a:b9:7c:21:75:61:7a:71:53:fd:fc:7f:57:
- ef:3a:19:be:69:c6:cb:73:49:bd:72:7d:2b:eb:68:52:8e:0f:
- d7:47:d3:90:86:5a:14:03:0d:dc:6b:07:10:57:2b:e0:b6:d2:
- a0:49:2d:63:88:d0:17:b3:b2:50:c4:60:15:1e:b6:ce:13:14:
- 0d:ec:45:eb
------BEGIN CERTIFICATE-----
-MIIE3TCCA8WgAwIBAgIJAInQR+w+JJgfMA0GCSqGSIb3DQEBCwUAMIGaMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEVMBMG
-A1UECgwMd29sZlNTTF8yMDQ4MRUwEwYDVQQLDAxSRUxBVElWRV9VUkkxGDAWBgNV
-BAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3Ns
-LmNvbTAeFw0xODA1MTQyMDI0MDZaFw0yMTAyMDcyMDI0MDZaMIGaMQswCQYDVQQG
-EwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEVMBMGA1UE
-CgwMd29sZlNTTF8yMDQ4MRUwEwYDVQQLDAxSRUxBVElWRV9VUkkxGDAWBgNVBAMM
-D3d3dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNv
-bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMMD0Sv+OaQyRTtTyIQr
-Knx0mr2qKlIHR9amNrIHMo7Quml7xsNEntSBSP0taKKLZ7uhdcg2LErSG/eLus8N
-+e/s8YEee5sDR5q/Zcx/ZSRppugUiVvkNPfFsBST9Wd7Onp44QFWVpGmE0KN0jxA
-nEzv0YbfN1EbDKE79fGjSjXk4c6W3xt+v06X0BDoqAgwga8gC0MUxXRntDKCb42G
-wohAmTaDuh5AciIX11JlJHOwzu8Zza7/eGx7wBID1E5yDVBtO6M7o5lencjZDIWz
-2YrZVCbbbfqsu/8lTMTRefRx04ZAGBOwY7VyTjDEl4SGLVYv1xX3f8Cu9fxb5fuh
-utMCAwEAAaOCASIwggEeMB0GA1UdDgQWBBQz2EVm12iHGH5UDXAnkccm14VlwDCB
-zwYDVR0jBIHHMIHEgBQz2EVm12iHGH5UDXAnkccm14VlwKGBoKSBnTCBmjELMAkG
-A1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xFTAT
-BgNVBAoMDHdvbGZTU0xfMjA0ODEVMBMGA1UECwwMUkVMQVRJVkVfVVJJMRgwFgYD
-VQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb22CCQCJ0EfsPiSYHzAJBgNVHRMEAjAAMCAGA1UdEQQZMBeGFS4uL3JlbGF0
-aXZlL3BhZ2UuaHRtbDANBgkqhkiG9w0BAQsFAAOCAQEAKcvAUGHaUcXaUBW3vcP0
-m8W4Kptsx5F6JuPrSNJA+uOr+bfiSjebtgOtnPTyXRLrXMaXxDoYmXBHSZPzpTKr
-qiJxb1w2HEIv1BnaZHOE0x6oX6+KWOdkGDh5afII1PK+sJwY2PGl67acZyEPur+V
-aOnSI1aEz4d8pCo6DcFyOkPaU7ts8LXxAzz/tgofVMUb1UCAJHTi9kxBiPHfozZk
-eOnCDsMP818Z5kSFeeFq7ng5m1jjxDkn1wUauXwhdWF6cVP9/H9X7zoZvmnGy3NJ
-vXJ9K+toUo4P10fTkIZaFAMN3GsHEFcr4LbSoEktY4jQF7OyUMRgFR62zhMUDexF
-6w==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/client-uri-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/client-uri-cert.pem
deleted file mode 100644
index 1a96baccd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/client-uri-cert.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 9402123678722384441 (0x827b0dabd4896239)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=wolfSSL_2048, OU=URI, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: May 8 21:54:16 2018 GMT
- Not After : Feb 1 21:54:16 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL_2048, OU=URI, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c3:03:d1:2b:fe:39:a4:32:45:3b:53:c8:84:2b:
- 2a:7c:74:9a:bd:aa:2a:52:07:47:d6:a6:36:b2:07:
- 32:8e:d0:ba:69:7b:c6:c3:44:9e:d4:81:48:fd:2d:
- 68:a2:8b:67:bb:a1:75:c8:36:2c:4a:d2:1b:f7:8b:
- ba:cf:0d:f9:ef:ec:f1:81:1e:7b:9b:03:47:9a:bf:
- 65:cc:7f:65:24:69:a6:e8:14:89:5b:e4:34:f7:c5:
- b0:14:93:f5:67:7b:3a:7a:78:e1:01:56:56:91:a6:
- 13:42:8d:d2:3c:40:9c:4c:ef:d1:86:df:37:51:1b:
- 0c:a1:3b:f5:f1:a3:4a:35:e4:e1:ce:96:df:1b:7e:
- bf:4e:97:d0:10:e8:a8:08:30:81:af:20:0b:43:14:
- c5:74:67:b4:32:82:6f:8d:86:c2:88:40:99:36:83:
- ba:1e:40:72:22:17:d7:52:65:24:73:b0:ce:ef:19:
- cd:ae:ff:78:6c:7b:c0:12:03:d4:4e:72:0d:50:6d:
- 3b:a3:3b:a3:99:5e:9d:c8:d9:0c:85:b3:d9:8a:d9:
- 54:26:db:6d:fa:ac:bb:ff:25:4c:c4:d1:79:f4:71:
- d3:86:40:18:13:b0:63:b5:72:4e:30:c4:97:84:86:
- 2d:56:2f:d7:15:f7:7f:c0:ae:f5:fc:5b:e5:fb:a1:
- ba:d3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0
- X509v3 Authority Key Identifier:
- keyid:33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0
- DirName:/C=US/ST=Montana/L=Bozeman/O=wolfSSL_2048/OU=URI/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:82:7B:0D:AB:D4:89:62:39
-
- X509v3 Basic Constraints:
- CA:FALSE
- X509v3 Subject Alternative Name:
- URI:https://www.wolfssl.com
- Signature Algorithm: sha256WithRSAEncryption
- 18:bb:46:7a:13:a5:32:c2:aa:1c:60:cf:d1:b7:59:f3:86:fd:
- b4:db:62:6e:40:4d:d3:cb:b5:8f:0a:45:43:9f:0b:50:7b:ac:
- 41:ed:27:32:a5:b3:fb:6a:a5:9c:36:00:f2:88:da:dd:80:b5:
- 49:29:6c:4d:1c:22:24:07:5b:7b:9a:88:8b:21:a0:62:43:1c:
- 14:23:d2:08:a8:27:cc:f2:d5:4f:e2:5c:b1:f8:3c:f5:7c:b2:
- ef:b1:ad:1e:fe:a9:92:5f:00:26:fb:f3:8d:e2:c7:38:8a:9a:
- e4:a8:4a:29:61:44:f6:80:61:09:5d:49:9b:1c:10:e0:1e:27:
- 03:26:e2:46:01:83:49:6a:1d:5f:6e:71:c8:1e:61:44:32:2a:
- 84:cd:5a:45:d3:9f:a4:ec:76:4b:1a:6c:26:ca:55:d7:c3:ad:
- 94:57:7b:8b:d4:9f:be:25:3d:e2:30:08:d5:fb:18:9a:aa:ee:
- c1:ce:bb:ea:de:5d:a7:77:40:c2:b1:57:aa:11:43:41:69:73:
- 0c:bd:87:0e:b9:8d:ba:f9:cc:ac:38:60:8a:62:32:2a:c0:0d:
- 1c:88:d3:d3:92:d6:f1:2e:82:67:8e:f5:42:b9:e4:28:b3:fd:
- fb:7c:9a:16:5f:fe:20:da:37:5f:c2:5e:74:9b:99:f3:de:35:
- 45:8d:49:28
------BEGIN CERTIFICATE-----
-MIIExDCCA6ygAwIBAgIJAIJ7DavUiWI5MA0GCSqGSIb3DQEBCwUAMIGRMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEVMBMG
-A1UECgwMd29sZlNTTF8yMDQ4MQwwCgYDVQQLDANVUkkxGDAWBgNVBAMMD3d3dy53
-b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAeFw0x
-ODA1MDgyMTU0MTZaFw0yMTAyMDEyMTU0MTZaMIGRMQswCQYDVQQGEwJVUzEQMA4G
-A1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEVMBMGA1UECgwMd29sZlNT
-TF8yMDQ4MQwwCgYDVQQLDANVUkkxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEf
-MB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBAMMD0Sv+OaQyRTtTyIQrKnx0mr2qKlIHR9amNrIHMo7Q
-uml7xsNEntSBSP0taKKLZ7uhdcg2LErSG/eLus8N+e/s8YEee5sDR5q/Zcx/ZSRp
-pugUiVvkNPfFsBST9Wd7Onp44QFWVpGmE0KN0jxAnEzv0YbfN1EbDKE79fGjSjXk
-4c6W3xt+v06X0BDoqAgwga8gC0MUxXRntDKCb42GwohAmTaDuh5AciIX11JlJHOw
-zu8Zza7/eGx7wBID1E5yDVBtO6M7o5lencjZDIWz2YrZVCbbbfqsu/8lTMTRefRx
-04ZAGBOwY7VyTjDEl4SGLVYv1xX3f8Cu9fxb5fuhutMCAwEAAaOCARswggEXMB0G
-A1UdDgQWBBQz2EVm12iHGH5UDXAnkccm14VlwDCBxgYDVR0jBIG+MIG7gBQz2EVm
-12iHGH5UDXAnkccm14VlwKGBl6SBlDCBkTELMAkGA1UEBhMCVVMxEDAOBgNVBAgM
-B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xFTATBgNVBAoMDHdvbGZTU0xfMjA0
-ODEMMAoGA1UECwwDVVJJMRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkq
-hkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CCQCCew2r1IliOTAJBgNVHRMEAjAA
-MCIGA1UdEQQbMBmGF2h0dHBzOi8vd3d3LndvbGZzc2wuY29tMA0GCSqGSIb3DQEB
-CwUAA4IBAQAYu0Z6E6UywqocYM/Rt1nzhv2022JuQE3Ty7WPCkVDnwtQe6xB7Scy
-pbP7aqWcNgDyiNrdgLVJKWxNHCIkB1t7moiLIaBiQxwUI9IIqCfM8tVP4lyx+Dz1
-fLLvsa0e/qmSXwAm+/ON4sc4iprkqEopYUT2gGEJXUmbHBDgHicDJuJGAYNJah1f
-bnHIHmFEMiqEzVpF05+k7HZLGmwmylXXw62UV3uL1J++JT3iMAjV+xiaqu7Bzrvq
-3l2nd0DCsVeqEUNBaXMMvYcOuY26+cysOGCKYjIqwA0ciNPTktbxLoJnjvVCueQo
-s/37fJoWX/4g2jdfwl50m5nz3jVFjUko
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/ca-int-ecc.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/ca-int-ecc.pem
deleted file mode 100644
index 654cd30cb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/ca-int-ecc.pem
+++ /dev/null
@@ -1,10 +0,0 @@
------BEGIN X509 CRL-----
-MIIBYDCCAQUCAQEwCgYIKoZIzj0EAwIwgaMxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NM
-MRQwEgYDVQQLDAtEZXZlbG9wbWVudDEkMCIGA1UEAwwbd29sZlNTTCBJbnRlcm1l
-ZGlhdGUgQ0EgRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tFw0x
-ODEyMjExNzU0MDFaFw0yMTA5MTYxNzU0MDFaoDAwLjAfBgNVHSMEGDAWgBSXHWDD
-hyJZm2AfhLSZHIhNv9oebjALBgNVHRQEBAICIAMwCgYIKoZIzj0EAwIDSQAwRgIh
-AMrFN7PEk0mtpHWZXJQSaXrc2K2BY/iZ6GlKnbM9G44MAiEA5K9dEKgOX/2VvGlR
-YN8aMaQ+Ly9fyMNEnXLR2OOMrBA=
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/ca-int.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/ca-int.pem
deleted file mode 100644
index d0dd6ce4a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/ca-int.pem
+++ /dev/null
@@ -1,14 +0,0 @@
------BEGIN X509 CRL-----
-MIICHDCCAQQCAQEwDQYJKoZIhvcNAQELBQAwgZ8xCzAJBgNVBAYTAlVTMRMwEQYD
-VQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xm
-U1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEgMB4GA1UEAwwXd29sZlNTTCBJbnRl
-cm1lZGlhdGUgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20XDTE4
-MTIyMTE3NTQwMFoXDTIxMDkxNjE3NTQwMFqgMDAuMB8GA1UdIwQYMBaAFO9p4PfV
-HeaZ7Nxt0PfiuVxkcYM1MAsGA1UdFAQEAgIgADANBgkqhkiG9w0BAQsFAAOCAQEA
-d++OmLaoou17s32sU/onSY1+Y9PoqYcKqkjK14srsvnrMe8AS3QDsuF721cg3Ekp
-pghG2pmyrvsCB8uaZ5yGE0B7YZ2ZfKjq6IQAQmcMkZ9tVtchmJNGyuB0T8uL8fJE
-JsCvI+eAyYTSjgePQC4x9GMunWwRfQ4DWjXIal8f9WNLnRRZl8MKaTk6fuMM+GBt
-6QJ1qEEeWWwbTnCqAia4dJ/IJGn7bbxwMAs305zrBE8G17gzh4Q4aj/nt71+oM5e
-Jf4XHs2GahUUz29OqiXwsfNfpF9/DHxjTf0UyHjRVV95hdq2QBQNuozVQ/wDiXSH
-12py+paDtyfh1Vw3RapYMQ==
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/caEcc384Crl.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/caEcc384Crl.pem
deleted file mode 100644
index f8b35397c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/caEcc384Crl.pem
+++ /dev/null
@@ -1,29 +0,0 @@
-Certificate Revocation List (CRL):
- Version 2 (0x1)
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: /C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Development/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Last Update: May 29 22:47:57 2018 GMT
- Next Update: Jan 7 22:47:57 2021 GMT
- CRL extensions:
- X509v3 CRL Number:
- 5
-Revoked Certificates:
- Serial Number: 02
- Revocation Date: May 29 22:47:57 2018 GMT
- Signature Algorithm: ecdsa-with-SHA256
- 30:65:02:31:00:93:d7:82:a5:dc:83:90:fd:67:07:55:0a:70:
- f4:61:8c:7d:9a:22:49:e7:a2:27:02:90:99:9e:cd:5d:58:ef:
- 5e:fc:cb:ad:88:6a:ac:93:39:b2:85:e5:7b:22:fd:f4:23:02:
- 30:5a:a8:08:73:d1:ac:59:02:7d:5c:33:16:b2:18:d1:8b:98:
- a4:16:f5:bd:cb:aa:60:07:7a:39:17:0b:06:8d:58:f2:12:98:
- 2e:09:01:a7:f2:b6:7d:69:3c:35:ef:4b:e0
------BEGIN X509 CRL-----
-MIIBZjCB7QIBATAKBggqhkjOPQQDAjCBlzELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZTU0wx
-FDASBgNVBAsMC0RldmVsb3BtZW50MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20x
-HzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20XDTE4MDUyOTIyNDc1N1oX
-DTIxMDEwNzIyNDc1N1owFDASAgECFw0xODA1MjkyMjQ3NTdaoA4wDDAKBgNVHRQE
-AwIBBTAKBggqhkjOPQQDAgNoADBlAjEAk9eCpdyDkP1nB1UKcPRhjH2aIknnoicC
-kJmezV1Y7178y62IaqyTObKF5Xsi/fQjAjBaqAhz0axZAn1cMxayGNGLmKQW9b3L
-qmAHejkXCwaNWPISmC4JAafytn1pPDXvS+A=
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/caEccCrl.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/caEccCrl.pem
deleted file mode 100644
index 23799573c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/caEccCrl.pem
+++ /dev/null
@@ -1,26 +0,0 @@
-Certificate Revocation List (CRL):
- Version 2 (0x1)
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: /C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Development/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Last Update: May 29 22:47:57 2018 GMT
- Next Update: Jan 7 22:47:57 2021 GMT
- CRL extensions:
- X509v3 CRL Number:
- 4
-Revoked Certificates:
- Serial Number: 02
- Revocation Date: May 29 22:47:57 2018 GMT
- Signature Algorithm: ecdsa-with-SHA256
- 30:45:02:20:56:6f:9b:7d:a8:f2:8e:f1:f5:76:fa:f2:89:1a:
- a4:0f:c4:5c:e8:60:33:a5:39:2d:d1:0a:72:4e:4e:ac:5e:fe:
- 02:21:00:b9:66:ac:5c:dc:8c:98:f1:f8:bb:cf:ff:13:06:3e:
- 47:b8:24:22:54:89:95:60:11:ab:31:60:27:4d:c4:9c:70
------BEGIN X509 CRL-----
-MIIBRjCB7QIBATAKBggqhkjOPQQDAjCBlzELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZTU0wx
-FDASBgNVBAsMC0RldmVsb3BtZW50MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20x
-HzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20XDTE4MDUyOTIyNDc1N1oX
-DTIxMDEwNzIyNDc1N1owFDASAgECFw0xODA1MjkyMjQ3NTdaoA4wDDAKBgNVHRQE
-AwIBBDAKBggqhkjOPQQDAgNIADBFAiBWb5t9qPKO8fV2+vKJGqQPxFzoYDOlOS3R
-CnJOTqxe/gIhALlmrFzcjJjx+LvP/xMGPke4JCJUiZVgEasxYCdNxJxw
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/cliCrl.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/cliCrl.pem
deleted file mode 100644
index 6a0ce1b37..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/cliCrl.pem
+++ /dev/null
@@ -1,42 +0,0 @@
-Certificate Revocation List (CRL):
- Version 2 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: /C=US/ST=Montana/L=Bozeman/O=wolfSSL_2048/OU=Programming-2048/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Last Update: May 29 22:47:57 2018 GMT
- Next Update: Jan 7 22:47:57 2021 GMT
- CRL extensions:
- X509v3 CRL Number:
- 6
-Revoked Certificates:
- Serial Number: 02
- Revocation Date: May 29 22:47:57 2018 GMT
- Signature Algorithm: sha256WithRSAEncryption
- 7b:c2:9a:bc:3a:b4:15:d0:fc:7c:8c:cd:da:23:30:08:7b:2d:
- 8e:a7:2a:d7:e0:2e:c7:a6:2b:54:c9:0b:2f:d6:52:6c:98:c6:
- 2a:fb:5d:68:0f:43:26:d6:c6:63:8c:79:1f:53:df:55:a9:64:
- 88:da:da:09:49:90:11:dd:d2:43:87:14:f7:54:37:8d:57:52:
- 72:af:56:0a:cf:93:f1:46:fa:ed:f8:cd:af:a9:9e:26:ec:45:
- e3:ec:3f:ed:7e:48:10:cf:3a:94:45:8f:24:e0:e6:41:2e:1e:
- bf:11:a9:4b:d3:d9:b3:1e:95:5b:6b:9b:68:18:a3:74:08:a6:
- 87:b2:f3:a8:9a:33:5b:8b:97:09:16:72:68:8b:52:a2:79:2a:
- e7:b5:aa:17:4e:b3:99:60:8f:30:35:c0:19:6a:0f:1a:23:b9:
- bc:5a:8c:99:0e:cd:e4:bd:a3:6e:47:5e:e9:c1:53:97:40:ec:
- 56:0b:24:cf:e5:7f:aa:1e:62:4d:46:a1:21:85:c7:b8:1b:74:
- d4:03:52:d7:50:58:70:e0:db:03:66:ef:77:cc:6d:1e:a1:4d:
- 84:45:c5:c2:15:d0:88:76:73:44:be:7b:8b:f2:94:b6:5b:99:
- d4:69:7e:0f:4a:4e:90:ed:a9:b8:19:92:e1:b5:64:75:56:26:
- f9:c1:2f:06
------BEGIN X509 CRL-----
-MIICDjCB9wIBATANBgkqhkiG9w0BAQsFADCBnjELMAkGA1UEBhMCVVMxEDAOBgNV
-BAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xFTATBgNVBAoMDHdvbGZTU0xf
-MjA0ODEZMBcGA1UECwwQUHJvZ3JhbW1pbmctMjA0ODEYMBYGA1UEAwwPd3d3Lndv
-bGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tFw0xODA1
-MjkyMjQ3NTdaFw0yMTAxMDcyMjQ3NTdaMBQwEgIBAhcNMTgwNTI5MjI0NzU3WqAO
-MAwwCgYDVR0UBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAHvCmrw6tBXQ/HyMzdoj
-MAh7LY6nKtfgLsemK1TJCy/WUmyYxir7XWgPQybWxmOMeR9T31WpZIja2glJkBHd
-0kOHFPdUN41XUnKvVgrPk/FG+u34za+pnibsRePsP+1+SBDPOpRFjyTg5kEuHr8R
-qUvT2bMelVtrm2gYo3QIpoey86iaM1uLlwkWcmiLUqJ5Kue1qhdOs5lgjzA1wBlq
-DxojubxajJkOzeS9o25HXunBU5dA7FYLJM/lf6oeYk1GoSGFx7gbdNQDUtdQWHDg
-2wNm73fMbR6hTYRFxcIV0Ih2c0S+e4vylLZbmdRpfg9KTpDtqbgZkuG1ZHVWJvnB
-LwY=
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/client-int-ecc.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/client-int-ecc.pem
deleted file mode 100644
index 91315dcbe..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/client-int-ecc.pem
+++ /dev/null
@@ -1,10 +0,0 @@
------BEGIN X509 CRL-----
-MIIBXTCCAQICAQEwCgYIKoZIzj0EAwIwgaAxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NM
-MRQwEgYDVQQLDAtEZXZlbG9wbWVudDEhMB8GA1UEAwwYd29sZlNTTCBDbGllbnQg
-Q2hhaW4gRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tFw0xODEy
-MjExNzU0MDFaFw0yMTA5MTYxNzU0MDFaoDAwLjAfBgNVHSMEGDAWgBTr1EtZa5Vh
-P1FXtgRNiUGIRFyr8jALBgNVHRQEBAICIAUwCgYIKoZIzj0EAwIDSQAwRgIhAJn0
-klExhxOHZtOQi45DuNnraKRzWV+V0moXQOvQmP4+AiEAk7Oqvn3Ij3ZhB/V+7VT0
-iPE8ipSUmQbQcZzI7BhT86E=
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/client-int.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/client-int.pem
deleted file mode 100644
index 0acea6861..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/client-int.pem
+++ /dev/null
@@ -1,14 +0,0 @@
------BEGIN X509 CRL-----
-MIICGTCCAQECAQEwDQYJKoZIhvcNAQELBQAwgZwxCzAJBgNVBAYTAlVTMRMwEQYD
-VQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xm
-U1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEdMBsGA1UEAwwUd29sZlNTTCBDbGll
-bnQgQ2hhaW4xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20XDTE4MTIy
-MTE3NTQwMFoXDTIxMDkxNjE3NTQwMFqgMDAuMB8GA1UdIwQYMBaAFDPYRWbXaIcY
-flQNcCeRxybXhWXAMAsGA1UdFAQEAgIgAjANBgkqhkiG9w0BAQsFAAOCAQEAefil
-VL8oAVmbbtUyF7v7cwZ+3Olt6VuCcevIPYMc8yP7huO21UpkjwrVhr0tru6SA5xO
-2I1lUwcyuH49c2H/RVEmS7q75TErYyXl/D209+LidOqPAnVibNWBsNaqQUn11dEM
-T+VBC6aiUuLxnslpzWUkmromjh0BI2f1AbYEtRDHlaqZakxiZ4FdXPpnopcO44+T
-ZLS2Kj52L6ykB1j70I2HOpZ7C07+MTBLvCV8J0Au1+GNBN1TZSO0dOX8AXLSpS+6
-q3vxJ1nsNYk/P7KdJO8eGYth9pXffKYPzMz0urrnavNd9nO9bR4u89SLepzuedBK
-vX+Acp5M8IcAnw4sEA==
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/crl.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/crl.pem
deleted file mode 100644
index bbcf5ecdd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/crl.pem
+++ /dev/null
@@ -1,41 +0,0 @@
-Certificate Revocation List (CRL):
- Version 2 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: /C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Last Update: May 29 22:47:57 2018 GMT
- Next Update: Jan 7 22:47:57 2021 GMT
- CRL extensions:
- X509v3 CRL Number:
- 2
-Revoked Certificates:
- Serial Number: 02
- Revocation Date: May 29 22:47:57 2018 GMT
- Signature Algorithm: sha256WithRSAEncryption
- 6b:c1:26:13:77:62:8e:4e:a9:e5:87:b6:f6:66:c8:1f:cc:6a:
- 20:94:f0:f6:a5:c6:b7:aa:03:b7:60:cf:74:16:5e:2f:c6:10:
- 8c:82:c9:31:da:20:23:c0:9e:f0:64:4b:cc:d8:6c:ec:57:1a:
- 5c:27:ec:36:db:64:f0:28:b2:34:33:d2:aa:1b:55:e7:4a:1f:
- c2:51:e9:b8:32:a8:be:53:ee:21:65:f7:c5:92:d0:0d:98:db:
- 65:50:7f:35:98:21:5b:52:a0:1e:ce:79:af:66:de:55:81:11:
- 0f:b0:8d:20:a8:48:f3:ff:ca:99:69:04:d8:c6:ec:98:de:8b:
- 56:e1:53:cf:0b:da:47:91:9e:27:ff:d2:2d:a3:65:61:80:89:
- 64:20:65:12:41:ce:8e:c8:55:a5:90:8d:fa:02:45:6b:28:6e:
- 28:ab:5a:94:c3:49:37:d0:b1:8e:d1:3b:9f:da:7e:36:73:d9:
- 8d:a5:60:97:71:51:6f:7b:88:90:84:14:0a:50:31:3c:e1:63:
- d6:dd:26:e9:f5:63:b2:ae:54:4e:8f:80:aa:2b:4c:94:ab:08:
- 16:03:b0:31:3a:16:f3:c6:20:0a:00:c9:52:7c:88:72:23:8d:
- 80:c9:98:45:c3:44:1e:84:99:b8:53:1e:67:23:bc:aa:80:f6:
- 77:58:0a:7a
------BEGIN X509 CRL-----
-MIICBDCB7QIBATANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMxEDAOBgNV
-BAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNhd3Rvb3Ro
-MRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20x
-HzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20XDTE4MDUyOTIyNDc1N1oX
-DTIxMDEwNzIyNDc1N1owFDASAgECFw0xODA1MjkyMjQ3NTdaoA4wDDAKBgNVHRQE
-AwIBAjANBgkqhkiG9w0BAQsFAAOCAQEAa8EmE3dijk6p5Ye29mbIH8xqIJTw9qXG
-t6oDt2DPdBZeL8YQjILJMdogI8Ce8GRLzNhs7FcaXCfsNttk8CiyNDPSqhtV50of
-wlHpuDKovlPuIWX3xZLQDZjbZVB/NZghW1KgHs55r2beVYERD7CNIKhI8//KmWkE
-2MbsmN6LVuFTzwvaR5GeJ//SLaNlYYCJZCBlEkHOjshVpZCN+gJFayhuKKtalMNJ
-N9CxjtE7n9p+NnPZjaVgl3FRb3uIkIQUClAxPOFj1t0m6fVjsq5UTo+AqitMlKsI
-FgOwMToW88YgCgDJUnyIciONgMmYRcNEHoSZuFMeZyO8qoD2d1gKeg==
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/crl.revoked b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/crl.revoked
deleted file mode 100644
index df6c204e8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/crl.revoked
+++ /dev/null
@@ -1,44 +0,0 @@
-Certificate Revocation List (CRL):
- Version 2 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: /C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Last Update: May 29 22:47:57 2018 GMT
- Next Update: Jan 7 22:47:57 2021 GMT
- CRL extensions:
- X509v3 CRL Number:
- 3
-Revoked Certificates:
- Serial Number: 01
- Revocation Date: May 29 22:47:57 2018 GMT
- Serial Number: 02
- Revocation Date: May 29 22:47:57 2018 GMT
- Signature Algorithm: sha256WithRSAEncryption
- b4:bb:8c:be:03:d7:e3:38:93:ef:31:1c:11:a4:de:77:9a:5d:
- 11:4c:5c:e4:7b:e5:c7:ac:6a:b4:bc:2a:f9:5a:01:bd:72:20:
- 77:b6:46:4b:8c:c3:25:d7:c4:a6:39:fe:cf:9a:99:9d:af:02:
- 3e:15:fe:38:b2:04:7e:99:74:63:61:07:8e:8e:f7:23:b4:96:
- b8:85:2f:01:cb:e6:e4:c3:3d:cb:31:e7:60:38:02:3b:8a:da:
- 15:d2:37:34:8b:da:3d:c7:c8:0d:f6:1f:da:f5:ac:66:a1:0d:
- 22:73:a5:78:76:88:04:ec:7c:80:8b:a0:99:40:4b:56:aa:aa:
- 8e:01:7b:66:b7:6e:9e:5b:82:e7:4c:9d:99:27:8f:cb:cb:26:
- c1:38:ed:bc:3c:e5:07:79:0b:79:7c:29:60:08:72:01:fc:9a:
- 2a:60:7e:93:f3:a8:a5:29:93:58:e6:8d:2f:6a:02:d5:70:7e:
- cc:fd:69:6f:b4:09:60:c0:da:bb:ca:b1:e1:e2:91:85:9c:a3:
- 46:73:99:19:4d:77:e5:1c:80:33:04:34:5d:c1:e3:88:6d:b1:
- 10:6c:79:9a:dd:e9:ac:d8:82:f6:0d:f0:7c:4b:de:fd:f1:17:
- 04:54:8e:56:ec:3c:79:06:17:30:42:39:d5:98:0d:bb:78:b3:
- 9f:4e:5b:87
------BEGIN X509 CRL-----
-MIICGTCCAQECAQEwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVTMRAwDgYD
-VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290
-aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t
-MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tFw0xODA1MjkyMjQ3NTda
-Fw0yMTAxMDcyMjQ3NTdaMCgwEgIBARcNMTgwNTI5MjI0NzU3WjASAgECFw0xODA1
-MjkyMjQ3NTdaoA4wDDAKBgNVHRQEAwIBAzANBgkqhkiG9w0BAQsFAAOCAQEAtLuM
-vgPX4ziT7zEcEaTed5pdEUxc5Hvlx6xqtLwq+VoBvXIgd7ZGS4zDJdfEpjn+z5qZ
-na8CPhX+OLIEfpl0Y2EHjo73I7SWuIUvAcvm5MM9yzHnYDgCO4raFdI3NIvaPcfI
-DfYf2vWsZqENInOleHaIBOx8gIugmUBLVqqqjgF7ZrdunluC50ydmSePy8smwTjt
-vDzlB3kLeXwpYAhyAfyaKmB+k/OopSmTWOaNL2oC1XB+zP1pb7QJYMDau8qx4eKR
-hZyjRnOZGU135RyAMwQ0XcHjiG2xEGx5mt3prNiC9g3wfEve/fEXBFSOVuw8eQYX
-MEI51ZgNu3izn05bhw==
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/crl2.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/crl2.pem
deleted file mode 100644
index 75a916a91..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/crl2.pem
+++ /dev/null
@@ -1,80 +0,0 @@
-Certificate Revocation List (CRL):
- Version 2 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: /C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Last Update: May 29 22:47:57 2018 GMT
- Next Update: Jan 7 22:47:57 2021 GMT
- CRL extensions:
- X509v3 CRL Number:
- 2
-Revoked Certificates:
- Serial Number: 02
- Revocation Date: May 29 22:47:57 2018 GMT
- Signature Algorithm: sha256WithRSAEncryption
- 6b:c1:26:13:77:62:8e:4e:a9:e5:87:b6:f6:66:c8:1f:cc:6a:
- 20:94:f0:f6:a5:c6:b7:aa:03:b7:60:cf:74:16:5e:2f:c6:10:
- 8c:82:c9:31:da:20:23:c0:9e:f0:64:4b:cc:d8:6c:ec:57:1a:
- 5c:27:ec:36:db:64:f0:28:b2:34:33:d2:aa:1b:55:e7:4a:1f:
- c2:51:e9:b8:32:a8:be:53:ee:21:65:f7:c5:92:d0:0d:98:db:
- 65:50:7f:35:98:21:5b:52:a0:1e:ce:79:af:66:de:55:81:11:
- 0f:b0:8d:20:a8:48:f3:ff:ca:99:69:04:d8:c6:ec:98:de:8b:
- 56:e1:53:cf:0b:da:47:91:9e:27:ff:d2:2d:a3:65:61:80:89:
- 64:20:65:12:41:ce:8e:c8:55:a5:90:8d:fa:02:45:6b:28:6e:
- 28:ab:5a:94:c3:49:37:d0:b1:8e:d1:3b:9f:da:7e:36:73:d9:
- 8d:a5:60:97:71:51:6f:7b:88:90:84:14:0a:50:31:3c:e1:63:
- d6:dd:26:e9:f5:63:b2:ae:54:4e:8f:80:aa:2b:4c:94:ab:08:
- 16:03:b0:31:3a:16:f3:c6:20:0a:00:c9:52:7c:88:72:23:8d:
- 80:c9:98:45:c3:44:1e:84:99:b8:53:1e:67:23:bc:aa:80:f6:
- 77:58:0a:7a
------BEGIN X509 CRL-----
-MIICBDCB7QIBATANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMxEDAOBgNV
-BAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNhd3Rvb3Ro
-MRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20x
-HzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20XDTE4MDUyOTIyNDc1N1oX
-DTIxMDEwNzIyNDc1N1owFDASAgECFw0xODA1MjkyMjQ3NTdaoA4wDDAKBgNVHRQE
-AwIBAjANBgkqhkiG9w0BAQsFAAOCAQEAa8EmE3dijk6p5Ye29mbIH8xqIJTw9qXG
-t6oDt2DPdBZeL8YQjILJMdogI8Ce8GRLzNhs7FcaXCfsNttk8CiyNDPSqhtV50of
-wlHpuDKovlPuIWX3xZLQDZjbZVB/NZghW1KgHs55r2beVYERD7CNIKhI8//KmWkE
-2MbsmN6LVuFTzwvaR5GeJ//SLaNlYYCJZCBlEkHOjshVpZCN+gJFayhuKKtalMNJ
-N9CxjtE7n9p+NnPZjaVgl3FRb3uIkIQUClAxPOFj1t0m6fVjsq5UTo+AqitMlKsI
-FgOwMToW88YgCgDJUnyIciONgMmYRcNEHoSZuFMeZyO8qoD2d1gKeg==
------END X509 CRL-----
-Certificate Revocation List (CRL):
- Version 2 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: /C=US/ST=Montana/L=Bozeman/O=wolfSSL_2048/OU=Programming-2048/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Last Update: May 29 22:47:57 2018 GMT
- Next Update: Jan 7 22:47:57 2021 GMT
- CRL extensions:
- X509v3 CRL Number:
- 1
-No Revoked Certificates.
- Signature Algorithm: sha256WithRSAEncryption
- 84:f8:1b:da:76:f6:ea:e9:17:f3:01:18:8f:4e:51:10:37:4b:
- b4:2a:2d:6f:9b:0e:47:d4:f0:3d:c1:44:3d:67:9c:77:21:eb:
- 26:c0:93:f6:19:7c:21:a1:d5:1a:72:e4:7d:5d:9b:a8:67:83:
- bc:d1:f1:c8:17:1b:55:d6:eb:bc:59:46:ca:95:15:76:55:be:
- 99:b9:de:3a:b0:d7:aa:dd:36:16:43:29:61:8d:7a:50:ee:e7:
- 44:f8:d0:b0:9a:96:39:a8:62:86:3b:6c:28:85:b3:66:27:38:
- c3:81:f7:38:32:bd:0a:be:db:33:3e:2f:3b:85:32:1a:56:d4:
- 5d:b9:c1:ac:a1:f0:2a:34:1f:30:85:3b:2b:8f:95:bc:7b:21:
- 52:86:3a:d2:b1:f7:6e:b3:98:47:6c:df:2f:6d:e1:e4:86:d9:
- 06:08:ee:f1:7f:ae:02:3b:3f:99:dc:01:3e:41:1a:4d:76:fd:
- 53:fa:84:9c:11:fd:81:b7:ce:e1:31:c5:eb:f8:57:39:11:0d:
- 77:44:dd:ae:80:26:ef:48:cd:fe:7d:25:83:5f:54:b2:a1:50:
- 82:10:25:47:b1:c7:86:12:37:b1:09:22:ef:97:3e:45:15:e0:
- 21:69:61:e8:4c:0e:c1:74:1a:e1:e4:bb:80:92:dd:9b:b5:9b:
- e7:1b:57:d7
------BEGIN X509 CRL-----
-MIIB+DCB4QIBATANBgkqhkiG9w0BAQsFADCBnjELMAkGA1UEBhMCVVMxEDAOBgNV
-BAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xFTATBgNVBAoMDHdvbGZTU0xf
-MjA0ODEZMBcGA1UECwwQUHJvZ3JhbW1pbmctMjA0ODEYMBYGA1UEAwwPd3d3Lndv
-bGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tFw0xODA1
-MjkyMjQ3NTdaFw0yMTAxMDcyMjQ3NTdaoA4wDDAKBgNVHRQEAwIBATANBgkqhkiG
-9w0BAQsFAAOCAQEAhPgb2nb26ukX8wEYj05REDdLtCotb5sOR9TwPcFEPWecdyHr
-JsCT9hl8IaHVGnLkfV2bqGeDvNHxyBcbVdbrvFlGypUVdlW+mbneOrDXqt02FkMp
-YY16UO7nRPjQsJqWOahihjtsKIWzZic4w4H3ODK9Cr7bMz4vO4UyGlbUXbnBrKHw
-KjQfMIU7K4+VvHshUoY60rH3brOYR2zfL23h5IbZBgju8X+uAjs/mdwBPkEaTXb9
-U/qEnBH9gbfO4THF6/hXORENd0TdroAm70jN/n0lg19UsqFQghAlR7HHhhI3sQki
-75c+RRXgIWlh6EwOwXQa4eS7gJLdm7Wb5xtX1w==
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/eccCliCRL.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/eccCliCRL.pem
deleted file mode 100644
index ffa155b49..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/eccCliCRL.pem
+++ /dev/null
@@ -1,26 +0,0 @@
-Certificate Revocation List (CRL):
- Version 2 (0x1)
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: /C=US/ST=Oregon/L=Salem/O=Client ECC/OU=Fast/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Last Update: May 29 22:47:57 2018 GMT
- Next Update: Jan 7 22:47:57 2021 GMT
- CRL extensions:
- X509v3 CRL Number:
- 7
-Revoked Certificates:
- Serial Number: 02
- Revocation Date: May 29 22:47:57 2018 GMT
- Signature Algorithm: ecdsa-with-SHA256
- 30:44:02:20:7b:58:a3:78:b4:fa:98:8b:bb:ce:83:a0:36:ee:
- d5:69:ac:d2:8b:f6:67:86:c3:1d:44:2a:58:28:de:29:3e:d8:
- 02:20:5a:56:34:28:7f:2b:75:0e:81:7f:80:2b:53:6c:13:e5:
- d8:3a:2d:68:78:8d:c3:d6:e6:39:11:82:ee:ed:1f:5b
------BEGIN X509 CRL-----
-MIIBOzCB4wIBATAKBggqhkjOPQQDAjCBjTELMAkGA1UEBhMCVVMxDzANBgNVBAgM
-Bk9yZWdvbjEOMAwGA1UEBwwFU2FsZW0xEzARBgNVBAoMCkNsaWVudCBFQ0MxDTAL
-BgNVBAsMBEZhc3QxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3
-DQEJARYQaW5mb0B3b2xmc3NsLmNvbRcNMTgwNTI5MjI0NzU3WhcNMjEwMTA3MjI0
-NzU3WjAUMBICAQIXDTE4MDUyOTIyNDc1N1qgDjAMMAoGA1UdFAQDAgEHMAoGCCqG
-SM49BAMCA0cAMEQCIHtYo3i0+piLu86DoDbu1Wms0ov2Z4bDHUQqWCjeKT7YAiBa
-VjQofyt1DoF/gCtTbBPl2DotaHiNw9bmORGC7u0fWw==
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/eccSrvCRL.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/eccSrvCRL.pem
deleted file mode 100644
index 1af3e8f8e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/eccSrvCRL.pem
+++ /dev/null
@@ -1,26 +0,0 @@
-Certificate Revocation List (CRL):
- Version 2 (0x1)
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: /C=US/ST=Washington/L=Seattle/O=Eliptic/OU=ECC/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Last Update: May 29 22:47:57 2018 GMT
- Next Update: Jan 7 22:47:57 2021 GMT
- CRL extensions:
- X509v3 CRL Number:
- 8
-Revoked Certificates:
- Serial Number: 02
- Revocation Date: May 29 22:47:57 2018 GMT
- Signature Algorithm: ecdsa-with-SHA256
- 30:44:02:20:17:18:ac:ac:96:28:7b:87:6a:d4:10:03:df:d8:
- 34:23:33:67:ed:ad:20:df:ab:da:a9:7c:f4:61:c0:d1:d5:4b:
- 02:20:74:47:c1:26:c7:8c:92:f3:7c:c2:91:96:26:91:90:ff:
- d2:23:b8:dc:e9:62:f9:d2:19:18:11:94:e5:b2:ff:85
------BEGIN X509 CRL-----
-MIIBPTCB5QIBATAKBggqhkjOPQQDAjCBjzELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB0VsaXB0aWMx
-DDAKBgNVBAsMA0VDQzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZI
-hvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tFw0xODA1MjkyMjQ3NTdaFw0yMTAxMDcy
-MjQ3NTdaMBQwEgIBAhcNMTgwNTI5MjI0NzU3WqAOMAwwCgYDVR0UBAMCAQgwCgYI
-KoZIzj0EAwIDRwAwRAIgFxisrJYoe4dq1BAD39g0IzNn7a0g36vaqXz0YcDR1UsC
-IHRHwSbHjJLzfMKRliaRkP/SI7jc6WL50hkYEZTlsv+F
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/include.am b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/include.am
deleted file mode 100644
index 4b1034ac3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/include.am
+++ /dev/null
@@ -1,25 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- certs/crl/crl.pem \
- certs/crl/cliCrl.pem \
- certs/crl/eccSrvCRL.pem \
- certs/crl/eccCliCRL.pem \
- certs/crl/crl2.pem \
- certs/crl/caEccCrl.pem \
- certs/crl/caEcc384Crl.pem \
- certs/crl/wolfssl.cnf
-
-EXTRA_DIST += \
- certs/crl/crl.revoked
-
-# Intermediate cert CRL's
-EXTRA_DIST += \
- certs/crl/ca-int.pem \
- certs/crl/client-int.pem \
- certs/crl/server-int.pem \
- certs/crl/ca-int-ecc.pem \
- certs/crl/client-int-ecc.pem \
- certs/crl/server-int-ecc.pem
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodaltCrl.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodaltCrl.pem
deleted file mode 100644
index 3abb81f3c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodaltCrl.pem
+++ /dev/null
@@ -1,38 +0,0 @@
-Certificate Revocation List (CRL):
- Version 2 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: /C=US/ST=Montana/L=Bozeman/OU=Engineering/CN=www.nomatch.com/emailAddress=info@wolfssl.com
- Last Update: Sep 19 21:21:24 2018 GMT
- Next Update: Jun 15 21:21:24 2021 GMT
- CRL extensions:
- X509v3 CRL Number:
- 1
-No Revoked Certificates.
- Signature Algorithm: sha256WithRSAEncryption
- 01:b3:58:8d:bf:27:46:70:f1:cc:29:71:24:0b:ba:e3:fc:d4:
- c8:30:09:3a:5e:e5:61:c7:d2:02:61:63:ba:e1:06:25:eb:4e:
- 04:77:dc:31:4d:59:84:63:ee:09:5d:41:dd:07:8f:07:15:71:
- 79:cb:6c:67:a9:e5:53:01:7d:98:b0:d0:a2:36:7a:8c:bf:51:
- 84:78:0e:b3:d8:ef:7c:b7:9e:de:c0:09:46:3d:43:e0:9d:a1:
- d7:77:d2:a6:28:f7:9e:92:82:ba:a9:cc:a8:d0:2b:f8:09:9b:
- fd:e4:2d:e6:d4:d5:60:2e:31:48:e8:55:3f:54:e9:f4:c4:78:
- 4d:0a:43:9d:3a:2e:44:9a:e7:63:25:73:e7:c4:fb:71:2b:0d:
- 3e:ad:e6:95:7d:60:95:4f:f6:cf:a7:52:59:e0:4b:f2:51:46:
- 0a:0c:9c:2e:2d:55:ae:57:76:a7:4b:8e:48:53:87:f7:e3:3c:
- 44:9b:70:17:96:c4:dc:f0:d1:43:a8:5e:59:5c:2d:4d:88:e6:
- 07:20:e4:75:09:dd:c4:9a:46:5c:c5:1f:20:f8:8a:dc:07:3d:
- f2:31:11:cd:43:d8:72:c7:8b:83:78:c1:e3:a5:bc:8e:87:2b:
- be:fd:66:0f:ab:4b:82:df:9e:71:e8:de:69:4c:c0:93:e6:9f:
- 9c:78:b0:05
------BEGIN X509 CRL-----
-MIIB3DCBxQIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCVVMxEDAOBgNV
-BAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xFDASBgNVBAsMC0VuZ2luZWVy
-aW5nMRgwFgYDVQQDDA93d3cubm9tYXRjaC5jb20xHzAdBgkqhkiG9w0BCQEWEGlu
-Zm9Ad29sZnNzbC5jb20XDTE4MDkxOTIxMjEyNFoXDTIxMDYxNTIxMjEyNFqgDjAM
-MAoGA1UdFAQDAgEBMA0GCSqGSIb3DQEBCwUAA4IBAQABs1iNvydGcPHMKXEkC7rj
-/NTIMAk6XuVhx9ICYWO64QYl604Ed9wxTVmEY+4JXUHdB48HFXF5y2xnqeVTAX2Y
-sNCiNnqMv1GEeA6z2O98t57ewAlGPUPgnaHXd9KmKPeekoK6qcyo0Cv4CZv95C3m
-1NVgLjFI6FU/VOn0xHhNCkOdOi5EmudjJXPnxPtxKw0+reaVfWCVT/bPp1JZ4Evy
-UUYKDJwuLVWuV3anS45IU4f34zxEm3AXlsTc8NFDqF5ZXC1NiOYHIOR1Cd3EmkZc
-xR8g+IrcBz3yMRHNQ9hyx4uDeMHjpbyOhyu+/WYPq0uC355x6N5pTMCT5p+ceLAF
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodaltwildCrl.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodaltwildCrl.pem
deleted file mode 100644
index 3abb81f3c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodaltwildCrl.pem
+++ /dev/null
@@ -1,38 +0,0 @@
-Certificate Revocation List (CRL):
- Version 2 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: /C=US/ST=Montana/L=Bozeman/OU=Engineering/CN=www.nomatch.com/emailAddress=info@wolfssl.com
- Last Update: Sep 19 21:21:24 2018 GMT
- Next Update: Jun 15 21:21:24 2021 GMT
- CRL extensions:
- X509v3 CRL Number:
- 1
-No Revoked Certificates.
- Signature Algorithm: sha256WithRSAEncryption
- 01:b3:58:8d:bf:27:46:70:f1:cc:29:71:24:0b:ba:e3:fc:d4:
- c8:30:09:3a:5e:e5:61:c7:d2:02:61:63:ba:e1:06:25:eb:4e:
- 04:77:dc:31:4d:59:84:63:ee:09:5d:41:dd:07:8f:07:15:71:
- 79:cb:6c:67:a9:e5:53:01:7d:98:b0:d0:a2:36:7a:8c:bf:51:
- 84:78:0e:b3:d8:ef:7c:b7:9e:de:c0:09:46:3d:43:e0:9d:a1:
- d7:77:d2:a6:28:f7:9e:92:82:ba:a9:cc:a8:d0:2b:f8:09:9b:
- fd:e4:2d:e6:d4:d5:60:2e:31:48:e8:55:3f:54:e9:f4:c4:78:
- 4d:0a:43:9d:3a:2e:44:9a:e7:63:25:73:e7:c4:fb:71:2b:0d:
- 3e:ad:e6:95:7d:60:95:4f:f6:cf:a7:52:59:e0:4b:f2:51:46:
- 0a:0c:9c:2e:2d:55:ae:57:76:a7:4b:8e:48:53:87:f7:e3:3c:
- 44:9b:70:17:96:c4:dc:f0:d1:43:a8:5e:59:5c:2d:4d:88:e6:
- 07:20:e4:75:09:dd:c4:9a:46:5c:c5:1f:20:f8:8a:dc:07:3d:
- f2:31:11:cd:43:d8:72:c7:8b:83:78:c1:e3:a5:bc:8e:87:2b:
- be:fd:66:0f:ab:4b:82:df:9e:71:e8:de:69:4c:c0:93:e6:9f:
- 9c:78:b0:05
------BEGIN X509 CRL-----
-MIIB3DCBxQIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCVVMxEDAOBgNV
-BAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xFDASBgNVBAsMC0VuZ2luZWVy
-aW5nMRgwFgYDVQQDDA93d3cubm9tYXRjaC5jb20xHzAdBgkqhkiG9w0BCQEWEGlu
-Zm9Ad29sZnNzbC5jb20XDTE4MDkxOTIxMjEyNFoXDTIxMDYxNTIxMjEyNFqgDjAM
-MAoGA1UdFAQDAgEBMA0GCSqGSIb3DQEBCwUAA4IBAQABs1iNvydGcPHMKXEkC7rj
-/NTIMAk6XuVhx9ICYWO64QYl604Ed9wxTVmEY+4JXUHdB48HFXF5y2xnqeVTAX2Y
-sNCiNnqMv1GEeA6z2O98t57ewAlGPUPgnaHXd9KmKPeekoK6qcyo0Cv4CZv95C3m
-1NVgLjFI6FU/VOn0xHhNCkOdOi5EmudjJXPnxPtxKw0+reaVfWCVT/bPp1JZ4Evy
-UUYKDJwuLVWuV3anS45IU4f34zxEm3AXlsTc8NFDqF5ZXC1NiOYHIOR1Cd3EmkZc
-xR8g+IrcBz3yMRHNQ9hyx4uDeMHjpbyOhyu+/WYPq0uC355x6N5pTMCT5p+ceLAF
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodcnCrl.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodcnCrl.pem
deleted file mode 100644
index 79e56efc1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodcnCrl.pem
+++ /dev/null
@@ -1,38 +0,0 @@
-Certificate Revocation List (CRL):
- Version 2 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: /C=US/ST=Montana/L=Bozeman/OU=Engineering/CN=localhost/emailAddress=info@wolfssl.com
- Last Update: Sep 19 21:21:24 2018 GMT
- Next Update: Jun 15 21:21:24 2021 GMT
- CRL extensions:
- X509v3 CRL Number:
- 1
-No Revoked Certificates.
- Signature Algorithm: sha256WithRSAEncryption
- 2c:f5:7a:4f:67:06:9b:f2:56:8c:e1:00:05:70:60:5b:60:51:
- ad:65:7e:10:69:c9:84:98:b6:66:33:18:ba:f8:86:f9:23:e3:
- ac:42:53:1d:27:5d:28:6a:d7:1c:a2:28:4d:02:01:c4:23:c1:
- b8:ac:d3:ba:e1:75:d0:2e:ad:98:78:39:f2:c1:6b:7b:4b:78:
- f2:f6:49:6f:92:2e:59:91:e9:de:7f:ef:62:5e:77:df:1c:a9:
- 1a:d5:b8:63:1f:53:0e:b7:28:f8:5e:61:11:1b:b4:dd:9c:85:
- 77:45:7d:31:fc:61:ab:55:f9:8d:50:ce:56:a0:ff:c0:a8:60:
- b5:7a:ec:f1:6a:c8:94:be:89:41:47:a2:22:d9:9d:8e:f7:36:
- d2:6f:bc:ce:04:3d:b7:9d:5c:82:37:59:9f:67:15:78:a0:a7:
- c1:2f:01:d5:f0:ac:0f:34:21:d7:16:c8:dc:b1:af:60:e0:b1:
- de:88:6f:d9:e5:32:c2:63:01:79:e6:10:ef:30:ef:c2:c6:08:
- 89:cc:21:76:b8:ee:18:bc:88:66:7a:88:89:b4:ba:d9:02:00:
- 92:73:6a:b5:84:ec:0c:9c:fc:d1:c1:0f:f2:e2:18:30:a6:be:
- 1d:99:8b:16:26:65:fd:fe:15:48:16:1d:68:0b:1e:b4:a0:0d:
- ec:93:cb:a2
------BEGIN X509 CRL-----
-MIIB1TCBvgIBATANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzEQMA4GA1UE
-CAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEUMBIGA1UECwwLRW5naW5lZXJp
-bmcxEjAQBgNVBAMMCWxvY2FsaG9zdDEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xm
-c3NsLmNvbRcNMTgwOTE5MjEyMTI0WhcNMjEwNjE1MjEyMTI0WqAOMAwwCgYDVR0U
-BAMCAQEwDQYJKoZIhvcNAQELBQADggEBACz1ek9nBpvyVozhAAVwYFtgUa1lfhBp
-yYSYtmYzGLr4hvkj46xCUx0nXShq1xyiKE0CAcQjwbis07rhddAurZh4OfLBa3tL
-ePL2SW+SLlmR6d5/72Jed98cqRrVuGMfUw63KPheYREbtN2chXdFfTH8YatV+Y1Q
-zlag/8CoYLV67PFqyJS+iUFHoiLZnY73NtJvvM4EPbedXII3WZ9nFXigp8EvAdXw
-rA80IdcWyNyxr2Dgsd6Ib9nlMsJjAXnmEO8w78LGCInMIXa47hi8iGZ6iIm0utkC
-AJJzarWE7Ayc/NHBD/LiGDCmvh2ZixYmZf3+FUgWHWgLHrSgDeyTy6I=
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodcnwildCrl.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodcnwildCrl.pem
deleted file mode 100644
index 464c86214..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-goodcnwildCrl.pem
+++ /dev/null
@@ -1,38 +0,0 @@
-Certificate Revocation List (CRL):
- Version 2 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: /C=US/ST=Montana/L=Bozeman/OU=Engineering/CN=*localhost/emailAddress=info@wolfssl.com
- Last Update: Sep 19 21:21:24 2018 GMT
- Next Update: Jun 15 21:21:24 2021 GMT
- CRL extensions:
- X509v3 CRL Number:
- 1
-No Revoked Certificates.
- Signature Algorithm: sha256WithRSAEncryption
- 0f:0e:30:ee:50:7a:50:b0:8d:06:74:9a:67:0b:3f:44:c1:13:
- 58:4e:87:0c:0c:8d:89:44:6e:29:f2:14:0c:5e:57:65:88:fb:
- b9:56:a7:99:71:3d:12:16:25:d1:38:19:9d:76:41:e6:e0:37:
- 0e:0a:52:93:26:19:c3:9d:27:10:29:d4:30:5f:1a:9f:9f:0a:
- 2e:c0:3a:7c:07:f0:fe:c4:ad:7b:84:a8:2e:e5:06:a9:8d:dd:
- b2:2b:bf:e8:ac:e8:d8:30:2b:eb:5f:67:ca:4a:b8:d5:be:7b:
- 37:0d:04:ef:ad:9d:5d:9c:a3:02:5c:cd:97:4a:78:7c:16:2b:
- 7d:90:b5:8a:ef:3d:68:53:72:5b:21:92:8b:a3:48:72:f8:f3:
- 6a:c0:10:93:0f:de:43:d0:7a:b0:f6:13:e9:96:64:5d:d9:a7:
- 11:e5:ea:72:09:5e:be:a0:6b:54:e8:fb:23:b7:58:a4:a0:88:
- d9:cc:22:25:9a:1a:1a:83:40:99:97:05:0f:7f:e6:a9:ee:1a:
- a2:6a:4d:f2:60:f3:46:5d:95:3a:03:a6:8a:a0:79:16:f7:3c:
- 1f:16:29:02:7b:c8:bb:98:d9:ed:b0:a3:fb:4a:2a:9e:00:0a:
- cf:42:94:fa:14:73:4f:26:ed:a2:97:8d:a5:86:0f:72:e9:7b:
- 06:da:35:08
------BEGIN X509 CRL-----
-MIIB1jCBvwIBATANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJVUzEQMA4GA1UE
-CAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEUMBIGA1UECwwLRW5naW5lZXJp
-bmcxEzARBgNVBAMMCipsb2NhbGhvc3QxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb20XDTE4MDkxOTIxMjEyNFoXDTIxMDYxNTIxMjEyNFqgDjAMMAoGA1Ud
-FAQDAgEBMA0GCSqGSIb3DQEBCwUAA4IBAQAPDjDuUHpQsI0GdJpnCz9EwRNYTocM
-DI2JRG4p8hQMXldliPu5VqeZcT0SFiXROBmddkHm4DcOClKTJhnDnScQKdQwXxqf
-nwouwDp8B/D+xK17hKgu5Qapjd2yK7/orOjYMCvrX2fKSrjVvns3DQTvrZ1dnKMC
-XM2XSnh8Fit9kLWK7z1oU3JbIZKLo0hy+PNqwBCTD95D0Hqw9hPplmRd2acR5epy
-CV6+oGtU6Psjt1ikoIjZzCIlmhoag0CZlwUPf+ap7hqiak3yYPNGXZU6A6aKoHkW
-9zwfFikCe8i7mNntsKP7SiqeAArPQpT6FHNPJu2il42lhg9y6XsG2jUI
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-int-ecc.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-int-ecc.pem
deleted file mode 100644
index c4bedeaa8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-int-ecc.pem
+++ /dev/null
@@ -1,10 +0,0 @@
------BEGIN X509 CRL-----
-MIIBXDCCAQICAQEwCgYIKoZIzj0EAwIwgaAxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NM
-MRQwEgYDVQQLDAtEZXZlbG9wbWVudDEhMB8GA1UEAwwYd29sZlNTTCBTZXJ2ZXIg
-Q2hhaW4gRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tFw0xODEy
-MjExNzU0MDFaFw0yMTA5MTYxNzU0MDFaoDAwLjAfBgNVHSMEGDAWgBRdXSbvrH42
-+Zt2FStKJQIj77KJMDALBgNVHRQEBAICIAQwCgYIKoZIzj0EAwIDSAAwRQIgTKmg
-a595JJuQ5U4Alhi7p8424/02UoN4WLg9tZiGtfICIQDKtdI2JZuVpTmCtRRo8gZH
-H/s5EUrqsIpXoNMdsGO1+w==
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-int.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-int.pem
deleted file mode 100644
index ccddf4b4f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/server-int.pem
+++ /dev/null
@@ -1,14 +0,0 @@
------BEGIN X509 CRL-----
-MIICGTCCAQECAQEwDQYJKoZIhvcNAQELBQAwgZwxCzAJBgNVBAYTAlVTMRMwEQYD
-VQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xm
-U1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEdMBsGA1UEAwwUd29sZlNTTCBTZXJ2
-ZXIgQ2hhaW4xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20XDTE4MTIy
-MTE3NTQwMFoXDTIxMDkxNjE3NTQwMFqgMDAuMB8GA1UdIwQYMBaAFLMRMsmSmITi
-yfjQO24DQsofDo48MAsGA1UdFAQEAgIgATANBgkqhkiG9w0BAQsFAAOCAQEAEhz6
-qLMqvX2s8/nsg2BjT+07Di3f3kkCZqxWtdvoSHg44lQof2F6UuTeKzlBWfTmFLE9
-qZJ8dj6xSMPEnZnRB1z9HvHRKZGDotuSNWCt4BElXP6ZZpQcIFaYUsWUZJ0Zb7LW
-/06fuepQTeHrxvwNPD6SF5+dVX7doQ2l2ytkQvGHznrWsQNdB2H9K2tAZTIbkiQA
-KcRP1pm1Dt2pZWPbwHws/AcXM4nCIJRUTlo1drHBClDbJB1n/AU8LjX1shX4AUds
-+HthMwVmDUjofoXuqzRVyCtfdMH5tgwY//opif+FRXwXjZajx9K+vu68Qa8hI5+9
-sXu6NDs92L2KLfGNmg==
------END X509 CRL-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/wolfssl.cnf b/FreeRTOS-Plus/Source/WolfSSL/certs/crl/wolfssl.cnf
deleted file mode 100644
index 78593cb8e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/crl/wolfssl.cnf
+++ /dev/null
@@ -1,110 +0,0 @@
-[ ca ]
-# `man ca`
-default_ca = CA_default
-
-[ CA_default ]
-# Directory and file locations relevant to where the script is executing
-dir = .
-certs = $dir/../
-new_certs_dir = $dir/../
-database = $dir/../crl/index.txt
-serial = $dir/../crl/serial
-# This should come from the system disregard local pathing
-RANDFILE = $dir/private/.rand
-
-# The root key and root certificate.
-private_key = $dir/../ca-ecc-key.pem
-certificate = $dir/../ca-ecc-cert.pem
-
-# For certificate revocation lists.
-crlnumber = $dir/../crl/crlnumber
-crl_extensions = crl_ext
-default_crl_days = 1000
-
-# SHA-1 is deprecated, so use SHA-2 instead.
-default_md = sha256
-
-name_opt = ca_default
-cert_opt = ca_default
-default_days = 3650
-preserve = no
-policy = policy_loose
-
-
-[ policy_strict ]
-# The root CA should only sign intermediate certificates that match.
-# See the POLICY FORMAT section of `man ca`.
-countryName = match
-stateOrProvinceName = match
-organizationName = match
-organizationalUnitName = optional
-commonName = supplied
-emailAddress = optional
-
-[ policy_loose ]
-# Allow the intermediate CA to sign a more diverse range of certificates.
-# See the POLICY FORMAT section of the `ca` man page.
-countryName = optional
-stateOrProvinceName = optional
-localityName = optional
-organizationName = optional
-organizationalUnitName = optional
-commonName = supplied
-emailAddress = optional
-
-[ req ]
-# Options for the `req` tool (`man req`).
-default_bits = 2048
-distinguished_name = req_distinguished_name
-string_mask = utf8only
-
-# SHA-1 is deprecated, so use SHA-2 instead.
-default_md = sha256
-
-# Extension to add when the -x509 option is used.
-x509_extensions = v3_ca
-
-[ req_distinguished_name ]
-countryName = US
-stateOrProvinceName = Washington
-localityName = Seattle
-0.organizationName = wolfSSL
-organizationalUnitName = Development
-commonName = www.wolfssl.com
-emailAddress = info@wolfssl.com
-
-[ v3_ca ]
-# Extensions for a typical CA (`man x509v3_config`).
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer
-basicConstraints = critical, CA:true
-keyUsage = critical, digitalSignature, cRLSign, keyCertSign
-
-[ v3_intermediate_ca ]
-# Extensions for a typical intermediate CA (`man x509v3_config`).
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer
-basicConstraints = critical, CA:true, pathlen:0
-keyUsage = critical, digitalSignature, cRLSign, keyCertSign
-
-[ usr_cert ]
-# Extensions for client certificates (`man x509v3_config`).
-basicConstraints = CA:FALSE
-nsCertType = client, email
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer
-keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, emailProtection
-
-[ server_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = CA:FALSE
-nsCertType = server
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment, keyAgreement
-extendedKeyUsage = serverAuth
-
-[ crl_ext ]
-# Extension for CRLs (`man x509v3_config`).
-authorityKeyIdentifier=keyid:always
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/dh2048.der b/FreeRTOS-Plus/Source/WolfSSL/certs/dh2048.der
deleted file mode 100644
index afdc522c5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/dh2048.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/dh2048.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/dh2048.pem
deleted file mode 100644
index 1e2b848dc..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/dh2048.pem
+++ /dev/null
@@ -1,29 +0,0 @@
-Diffie-Hellman-Parameters: (2048 bit)
- prime:
- 00:b0:a1:08:06:9c:08:13:ba:59:06:3c:bc:30:d5:
- f5:00:c1:4f:44:a7:d6:ef:4a:c6:25:27:1c:e8:d2:
- 96:53:0a:5c:91:dd:a2:c2:94:84:bf:7d:b2:44:9f:
- 9b:d2:c1:8a:c5:be:72:5c:a7:e7:91:e6:d4:9f:73:
- 07:85:5b:66:48:c7:70:fa:b4:ee:02:c9:3d:9a:4a:
- da:3d:c1:46:3e:19:69:d1:17:46:07:a3:4d:9f:2b:
- 96:17:39:6d:30:8d:2a:f3:94:d3:75:cf:a0:75:e6:
- f2:92:1f:1a:70:05:aa:04:83:57:30:fb:da:76:93:
- 38:50:e8:27:fd:63:ee:3c:e5:b7:c8:09:ae:6f:50:
- 35:8e:84:ce:4a:00:e9:12:7e:5a:31:d7:33:fc:21:
- 13:76:cc:16:30:db:0c:fc:c5:62:a7:35:b8:ef:b7:
- b0:ac:c0:36:f6:d9:c9:46:48:f9:40:90:00:2b:1b:
- aa:6c:e3:1a:c3:0b:03:9e:1b:c2:46:e4:48:4e:22:
- 73:6f:c3:5f:d4:9a:d6:30:07:48:d6:8c:90:ab:d4:
- f6:f1:e3:48:d3:58:4b:a6:b9:cd:29:bf:68:1f:08:
- 4b:63:86:2f:5c:6b:d6:b6:06:65:f7:a6:dc:00:67:
- 6b:bb:c3:a9:41:83:fb:c7:fa:c8:e2:1e:7e:af:00:
- 3f:93
- generator: 2 (0x2)
------BEGIN DH PARAMETERS-----
-MIIBCAKCAQEAsKEIBpwIE7pZBjy8MNX1AMFPRKfW70rGJScc6NKWUwpckd2iwpSE
-v32yRJ+b0sGKxb5yXKfnkebUn3MHhVtmSMdw+rTuAsk9mkraPcFGPhlp0RdGB6NN
-nyuWFzltMI0q85TTdc+gdebykh8acAWqBINXMPvadpM4UOgn/WPuPOW3yAmub1A1
-joTOSgDpEn5aMdcz/CETdswWMNsM/MVipzW477ewrMA29tnJRkj5QJAAKxuqbOMa
-wwsDnhvCRuRITiJzb8Nf1JrWMAdI1oyQq9T28eNI01hLprnNKb9oHwhLY4YvXGvW
-tgZl96bcAGdru8OpQYP7x/rI4h5+rwA/kwIBAg==
------END DH PARAMETERS-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/dh3072.der b/FreeRTOS-Plus/Source/WolfSSL/certs/dh3072.der
deleted file mode 100644
index 32982d667..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/dh3072.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/dh3072.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/dh3072.pem
deleted file mode 100644
index b7a8a2b33..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/dh3072.pem
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN DH PARAMETERS-----
-MIIBiAKCAYEAiRt1P4S2Ee0h8QgPuAbJo8lB21rI+IJzD+uJHlQYvuZIQZ76wgxQ
-Z8NdtfUPI2pDM5HZQPNmxpn/l7Z7rydyO59+WBgUn5FuKxHBV0knNnjhCWicBVqs
-5gA4vpV0gVMo8K3ftYccchdO7ACRIqrkiNf1PR8DEy0c+95ZaK3gF6Hujcy//s8k
-Qu0m3SnQTmI8hTYbX2pHiCHlG4UKLOkv4CD8Hc1VZvWsMgCOo+nt+zWn5nZTQsZ3
-d6uQmXzC7MkYSjz0EXUng72ewo8jq1JG4lJdmgTDFR9pnHJpWVLUaT0ZdzYlrwdx
-gt63JGCCanK77bZ2rn68fS9zSwQW1aTzAyb78817d358jWWupdxs43DSKWvy63bJ
-5UYYElewVaV8zUGTJpn3pcU0vll53gpXXyH4mFLwL3tXtp38QKZV+6/ZFpsgT6ij
-CwRI43cixMxXFDOi8JrjEr3/covuUvPJWcKia6V1SFGCDnr//kHNfGPSU6gRA7kD
-B/5mOF+iPpwbAgEC
------END DH PARAMETERS-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/dh4096.der b/FreeRTOS-Plus/Source/WolfSSL/certs/dh4096.der
deleted file mode 100644
index 34eaab848..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/dh4096.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/dh4096.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/dh4096.pem
deleted file mode 100644
index 9c42d8cb6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/dh4096.pem
+++ /dev/null
@@ -1,13 +0,0 @@
------BEGIN DH PARAMETERS-----
-MIICCAKCAgEA6Q4+eU/JsqCx2y8eJCGQXFCkNNuZkKz3vy8BS6yHcLrs0WTeBMr8
-+VFpHreZ4rQN2114ODhBBehnSGVUcczJqpUe1L+8yl3CnJ5+XpRbL2By7etUDEgr
-IXRNNwRaL4skStvu+qmUE49SShuu5sh/mQkjhInpplOCtgNtOF0u6wvw5qqxi1H8
-1hP7IMvfeZfbVXTCIejbjGqVLVGRp6E8m+/1Q6ymac5mXNWx+LrUhiUpLg4jBdp8
-fMJ7yLV5hG1oLYJKNZ/cDmMrWF80fqhzzkRTEePbRvo6w9pjpWVWmaWRJ9bn3y3v
-oIG2BzrGwSuhOnS06eEvayvk8Ji+b8u7ro3SfhtvuvKyuLFdnnkZ95SywRdem7MF
-Z21cYmSoK7A2PflMZVPuLlVpzBz1lty+YF437tRjllGXlhQ8Yb9TqiS1JFsmZ60C
-Z7jTBW6kj0aRnYSmLESfLRgvc6XlxNlP2Z/1wMVI6CMyxErO/zsWh4WlHyKoC5GX
-JJUHyHPSsAH4IKmra3F5JPN5tZsA9fmuI6zq4UiIKFPgyHYprj4lnxzFioYzAiGr
-pRDwBxtWj838h54u0ESYRJmzwhTO2JPq0YI8G0nobwSy9a+bN33l4Fbp7gBYJRYj
-w47wueKYXfJPXMMnKmd9Q/Y2dtQsfhaAy/EH3Ln181a98PwAeABWtDsCAQI=
------END DH PARAMETERS-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/dsa2048.der b/FreeRTOS-Plus/Source/WolfSSL/certs/dsa2048.der
deleted file mode 100644
index 0bcb0b44d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/dsa2048.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/dsa3072.der b/FreeRTOS-Plus/Source/WolfSSL/certs/dsa3072.der
deleted file mode 100644
index 3ba0915cb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/dsa3072.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/dsaparams.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/dsaparams.pem
deleted file mode 100644
index 973e89682..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/dsaparams.pem
+++ /dev/null
@@ -1,9 +0,0 @@
------BEGIN DSA PARAMETERS-----
-MIIBHwKBgQDN3iVogFMN5XfW0pA5P5CiPzOUbuhPK2OrMKsVuhHqil2NzLjUodXB
-R51ac2piSdEGB2f2L6M5vU4NtNMiI4TskyZaSe58iUhmTejo2FD7pXGfIhjl5gtG
-h2buUo9GT7UDzu3jvuW1gdJZ6cCtTdBNJve6UOjJj/4kGT0up1I8bQIVAPtH++yB
-IMgc6Uq6BG8Zm5TugmfTAoGBAJuVu4XFWEoynKpEhdZo3D4U9M5to0k46tZhSJJa
-QJVJOKrhOSloWEeKSwHhLo5sY29AylA/jAuZ5HJCuLHCJkjxnIPGNy5arhEJ2fOt
-H2+trVDjeDLm3o6qv9EAn7MCEhmiFewUGFwOJs75rsx7tdEm/IX+FJO2nX124zWX
-Ht7E
------END DSA PARAMETERS-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-key.der
deleted file mode 100644
index 063739078..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-key.pem
deleted file mode 100644
index cf9812d80..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-key.pem
+++ /dev/null
@@ -1,9 +0,0 @@
-ASN1 OID: prime256v1
------BEGIN EC PARAMETERS-----
-BggqhkjOPQMBBw==
------END EC PARAMETERS-----
------BEGIN EC PRIVATE KEY-----
-MHcCAQEEIPjPkmu9HijxqKuhI08ydBiIUK1+x+yS+I+XTa9WiWXHoAoGCCqGSM49
-AwEHoUQDQgAEVb/0D0RQmj3Om7fwxU31cHvU7CSOGYDsWkyiJANiLJva76I1EkOE
-dhbGVpUGzAGpvfZ1GkL3vamyNiJfx11/tA==
------END EC PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-keyPub.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-keyPub.der
deleted file mode 100644
index 5dace05a9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-keyPub.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-keyPub.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-keyPub.pem
deleted file mode 100644
index 5c673f755..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-client-keyPub.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN PUBLIC KEY-----
-MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVb/0D0RQmj3Om7fwxU31cHvU7CSO
-GYDsWkyiJANiLJva76I1EkOEdhbGVpUGzAGpvfZ1GkL3vamyNiJfx11/tA==
------END PUBLIC KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-key-comp.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-key-comp.pem
deleted file mode 100644
index de76b8e03..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-key-comp.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN EC PRIVATE KEY-----
-MFcCAQEEIEW2aQJznGyFoThbcujox6zEA41TNQT6bCjcNI3hqAmMoAoGCCqGSM49
-AwEHoSQDIgACuzOsTCdQSsZKpQTDPN6fNttyLc6U6iv6yyAJOSwW6GE=
------END EC PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-key.der
deleted file mode 100644
index a88d141e0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-key.pem
deleted file mode 100644
index 03e7a617c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-key.pem
+++ /dev/null
@@ -1,9 +0,0 @@
-ASN1 OID: prime256v1
------BEGIN EC PARAMETERS-----
-BggqhkjOPQMBBw==
------END EC PARAMETERS-----
------BEGIN EC PRIVATE KEY-----
-MHcCAQEEIEW2aQJznGyFoThbcujox6zEA41TNQT6bCjcNI3hqAmMoAoGCCqGSM49
-AwEHoUQDQgAEuzOsTCdQSsZKpQTDPN6fNttyLc6U6iv6yyAJOSwW6GEC6a9N0wKT
-mjFbl5Ihf/DPGNqREQI0huggWDMLgDSJ2A==
------END EC PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8.der
deleted file mode 100644
index 71034c548..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8.pem
deleted file mode 100644
index ca03d9803..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8.pem
+++ /dev/null
@@ -1,5 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgRbZpAnOcbIWhOFty
-6OjHrMQDjVM1BPpsKNw0jeGoCYyhRANCAAS7M6xMJ1BKxkqlBMM83p8223ItzpTq
-K/rLIAk5LBboYQLpr03TApOaMVuXkiF/8M8Y2pERAjSG6CBYMwuANInY
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8Enc.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8Enc.der
deleted file mode 100644
index c325ffa6a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8Enc.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8Enc.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8Enc.pem
deleted file mode 100644
index 8d9be3668..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPkcs8Enc.pem
+++ /dev/null
@@ -1,6 +0,0 @@
------BEGIN ENCRYPTED PRIVATE KEY-----
-MIGwMBsGCSqGSIb3DQEFAzAOBAjm9hxk+ipSWwICCAAEgZCiBEm+uh/GEXdmh/GY
-YTQDWgPGmG0V108MPMxO73hqN++hFEAcaRxXQwWrQvqtxeJGwquWzaWOv56S7u6W
-CfkkgHl2sgRorCfWD4wQxA8WEghCzRTA3LU6Xy9uwqb23fSGes2dIvdp8FQwqY1Q
-9s1WwblMcQntCR/AvX6sdEyb8c/yzLJvivjrqt1QGG/Cr6Y=
------END ENCRYPTED PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPub.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPub.der
deleted file mode 100644
index 91aa79bee..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-keyPub.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privOnlyCert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privOnlyCert.pem
deleted file mode 100644
index e6034bed8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privOnlyCert.pem
+++ /dev/null
@@ -1,9 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIBIzCBygIJAIQV31BIhAeYMAoGCCqGSM49BAMCMBoxCzAJBgNVBAoMAldSMQsw
-CQYDVQQDDAJERTAeFw0xODA0MTMxNTIzMTBaFw0yMTAxMDcxNTIzMTBaMBoxCzAJ
-BgNVBAoMAldSMQswCQYDVQQDDAJERTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
-BCXA/Ra4K/K4Ch7drM5iUnxYCmB9V3XavRHB1SrqVGt25j02991Rl2uoJv57pr2W
-VYVQnZp+aQHYQ0WJ2f5KKyYwCgYIKoZIzj0EAwIDSAAwRQIhAJvs7Y00EWq/Yv9A
-ymP/fVWsxz8/fhbZKi09eq2eqV/gAiBW9u61nV2snwijm5r6EWrnlGKoNb9niPCD
-qg/y+r8d1A==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privOnlyKey.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privOnlyKey.pem
deleted file mode 100644
index 952a90951..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privOnlyKey.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN PRIVATE KEY-----
-MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCBmlE/nixmHCpmplUopbqNEo+jJE40p
-wfkxzH01tAWqcQ==
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privkey.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privkey.pem
deleted file mode 100644
index 1d46e903d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privkey.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN EC PRIVATE KEY-----
-MDECAQEEIEW2aQJznGyFoThbcujox6zEA41TNQT6bCjcNI3hqAmMoAoGCCqGSM49
-AwEH
------END EC PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privkeyPkcs8.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privkeyPkcs8.der
deleted file mode 100644
index a88d141e0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privkeyPkcs8.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privkeyPkcs8.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privkeyPkcs8.pem
deleted file mode 100644
index 7793f7257..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-privkeyPkcs8.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN EC PRIVATE KEY-----
-MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCBFtmkCc5xshaE4W3Lo
-6MesxAONUzUE+mwo3DSN4agJjA==
------END EC PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-rsa-server.p12 b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-rsa-server.p12
deleted file mode 100644
index 84cb0a4b6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc-rsa-server.p12
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc/genecc.sh b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc/genecc.sh
deleted file mode 100644
index 2efb033c9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc/genecc.sh
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/bin/bash
-
-# run from wolfssl root
-
-rm ./certs/ecc/*.old
-rm ./certs/ecc/index.txt*
-rm ./certs/ecc/serial
-rm ./certs/ecc/crlnumber
-
-touch ./certs/ecc/index.txt
-echo 1000 > ./certs/ecc/serial
-echo 2000 > ./certs/ecc/crlnumber
-
-# generate ECC 256-bit CA
-openssl ecparam -out ./certs/ca-ecc-key.par -name prime256v1
-openssl req -config ./certs/ecc/wolfssl.cnf -extensions v3_ca -x509 -nodes -newkey ec:./certs/ca-ecc-key.par -keyout ./certs/ca-ecc-key.pem -out ./certs/ca-ecc-cert.pem -sha256 \
- -days 7300 -batch -subj "/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Development/CN=www.wolfssl.com/emailAddress=info@wolfssl.com"
-
-openssl x509 -in ./certs/ca-ecc-cert.pem -inform PEM -out ./certs/ca-ecc-cert.der -outform DER
-openssl ec -in ./certs/ca-ecc-key.pem -inform PEM -out ./certs/ca-ecc-key.der -outform DER
-
-rm ./certs/ca-ecc-key.par
-
-# Gen CA CRL
-openssl ca -config ./certs/ecc/wolfssl.cnf -gencrl -crldays 1000 -out ./certs/crl/caEccCrl.pem -keyfile ./certs/ca-ecc-key.pem -cert ./certs/ca-ecc-cert.pem
-
-
-
-# Generate ECC 256-bit server cert
-openssl req -config ./certs/ecc/wolfssl.cnf -sha256 -new -key ./certs/ecc-key.pem -out ./certs/server-ecc-req.pem -subj "/C=US/ST=Washington/L=Seattle/O=Eliptic/OU=ECC/CN=www.wolfssl.com/emailAddress=info@wolfssl.com/"
-openssl x509 -req -in ./certs/server-ecc-req.pem -CA ./certs/ca-ecc-cert.pem -CAkey ./certs/ca-ecc-key.pem -CAcreateserial -out ./certs/server-ecc.pem -sha256
-
-# Sign server certificate
-openssl ca -config ./certs/ecc/wolfssl.cnf -extensions server_cert -days 3650 -notext -md sha256 -in ./certs/server-ecc-req.pem -out ./certs/server-ecc.pem
-openssl x509 -in ./certs/server-ecc.pem -outform der -out ./certs/server-ecc.der
-
-rm ./certs/server-ecc-req.pem
-
-
-
-# generate ECC 384-bit CA
-openssl ecparam -out ./certs/ca-ecc384-key.par -name secp384r1
-openssl req -config ./certs/ecc/wolfssl_384.cnf -extensions v3_ca -x509 -nodes -newkey ec:./certs/ca-ecc384-key.par -keyout ./certs/ca-ecc384-key.pem -out ./certs/ca-ecc384-cert.pem -sha384 \
- -days 7300 -batch -subj "/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Development/CN=www.wolfssl.com/emailAddress=info@wolfssl.com"
-
-openssl x509 -in ./certs/ca-ecc384-cert.pem -inform PEM -out ./certs/ca-ecc384-cert.der -outform DER
-openssl ec -in ./certs/ca-ecc384-key.pem -inform PEM -out ./certs/ca-ecc384-key.der -outform DER
-
-rm ./certs/ca-ecc384-key.par
-
-# Gen CA CRL
-openssl ca -config ./certs/ecc/wolfssl_384.cnf -gencrl -crldays 1000 -out ./certs/crl/caEcc384Crl.pem -keyfile ./certs/ca-ecc384-key.pem -cert ./certs/ca-ecc384-cert.pem
-
-
-
-# Generate ECC 384-bit server cert
-openssl ecparam -out ./certs/server-ecc384-key.par -name secp384r1
-openssl req -config ./certs/ecc/wolfssl_384.cnf -sha384 -x509 -nodes -newkey ec:./certs/server-ecc384-key.par -keyout ./certs/server-ecc384-key.pem -out ./certs/server-ecc384-req.pem \
- -subj "/C=US/ST=Washington/L=Seattle/O=Eliptic/OU=ECC384Srv/CN=www.wolfssl.com/emailAddress=info@wolfssl.com/"
-openssl req -config ./certs/ecc/wolfssl_384.cnf -sha384 -new -key ./certs/server-ecc384-key.pem -out ./certs/server-ecc384-req.pem \
- -subj "/C=US/ST=Washington/L=Seattle/O=Eliptic/OU=ECC384Srv/CN=www.wolfssl.com/emailAddress=info@wolfssl.com/"
-openssl ec -in ./certs/server-ecc384-key.pem -inform PEM -out ./certs/server-ecc384-key.der -outform DER
-
-# Sign server certificate
-openssl ca -config ./certs/ecc/wolfssl_384.cnf -extensions server_cert -days 10950 -notext -md sha384 -in ./certs/server-ecc384-req.pem -out ./certs/server-ecc384-cert.pem
-openssl x509 -in ./certs/server-ecc384-cert.pem -outform der -out ./certs/server-ecc384-cert.der
-
-rm ./certs/server-ecc384-req.pem
-rm ./certs/server-ecc384-key.par
-
-# Generate ECC 384-bit client cert
-openssl ecparam -out ./certs/client-ecc384-key.par -name secp384r1
-openssl req -config ./certs/ecc/wolfssl_384.cnf -sha384 -x509 -nodes -newkey ec:./certs/client-ecc384-key.par -keyout ./certs/client-ecc384-key.pem -out ./certs/client-ecc384-req.pem \
- -subj "/C=US/ST=Washington/L=Seattle/O=Eliptic/OU=ECC384Cli/CN=www.wolfssl.com/emailAddress=info@wolfssl.com/"
-openssl req -config ./certs/ecc/wolfssl_384.cnf -sha384 -new -key ./certs/client-ecc384-key.pem -out ./certs/client-ecc384-req.pem \
- -subj "/C=US/ST=Washington/L=Seattle/O=Eliptic/OU=ECC384Clit/CN=www.wolfssl.com/emailAddress=info@wolfssl.com/"
-openssl ec -in ./certs/client-ecc384-key.pem -inform PEM -out ./certs/client-ecc384-key.der -outform DER
-
-# Sign client certificate
-openssl ca -config ./certs/ecc/wolfssl_384.cnf -extensions usr_cert -days 10950 -notext -md sha384 -in ./certs/client-ecc384-req.pem -out ./certs/client-ecc384-cert.pem
-openssl x509 -in ./certs/client-ecc384-cert.pem -outform der -out ./certs/client-ecc384-cert.der
-
-rm ./certs/client-ecc384-req.pem
-rm ./certs/client-ecc384-key.par
-
-
-# Also manually need to:
-# 1. Copy ./certs/server-ecc.der into ./certs/test/server-cert-ecc-badsig.der `cp ./certs/server-ecc.der ./certs/test/server-cert-ecc-badsig.der`
-# 2. Modify last byte so its invalidates signature in ./certs/test/server-cert-ecc-badsig.der
-# 3. Covert bad cert to pem `openssl x509 -inform der -in ./certs/test/server-cert-ecc-badsig.der -outform pem -out ./certs/test/server-cert-ecc-badsig.pem`
-# 4. Update AKID's for CA's in test.c certext_test() function akid_ecc.
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc/include.am b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc/include.am
deleted file mode 100644
index b9897c1c2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc/include.am
+++ /dev/null
@@ -1,8 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- certs/ecc/genecc.sh \
- certs/ecc/wolfssl.cnf \
- certs/ecc/wolfssl_384.cnf
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc/wolfssl.cnf b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc/wolfssl.cnf
deleted file mode 100644
index a974aeb35..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc/wolfssl.cnf
+++ /dev/null
@@ -1,110 +0,0 @@
-[ ca ]
-# `man ca`
-default_ca = CA_default
-
-[ CA_default ]
-# Directory and file locations relevant to where the script is executing
-dir = .
-certs = $dir/certs
-new_certs_dir = $dir/certs
-database = $dir/certs/ecc/index.txt
-serial = $dir/certs/ecc/serial
-# This should come from the system disregard local pathing
-RANDFILE = $dir/private/.rand
-
-# The root key and root certificate.
-private_key = $dir/certs/ca-ecc-key.pem
-certificate = $dir/certs/ca-ecc-cert.pem
-
-# For certificate revocation lists.
-crlnumber = $dir/certs/ecc/crlnumber
-crl_extensions = crl_ext
-default_crl_days = 1000
-
-# SHA-1 is deprecated, so use SHA-2 instead.
-default_md = sha256
-
-name_opt = ca_default
-cert_opt = ca_default
-default_days = 3650
-preserve = no
-policy = policy_loose
-
-
-[ policy_strict ]
-# The root CA should only sign intermediate certificates that match.
-# See the POLICY FORMAT section of `man ca`.
-countryName = match
-stateOrProvinceName = match
-organizationName = match
-organizationalUnitName = optional
-commonName = supplied
-emailAddress = optional
-
-[ policy_loose ]
-# Allow the intermediate CA to sign a more diverse range of certificates.
-# See the POLICY FORMAT section of the `ca` man page.
-countryName = optional
-stateOrProvinceName = optional
-localityName = optional
-organizationName = optional
-organizationalUnitName = optional
-commonName = supplied
-emailAddress = optional
-
-[ req ]
-# Options for the `req` tool (`man req`).
-default_bits = 2048
-distinguished_name = req_distinguished_name
-string_mask = utf8only
-
-# SHA-1 is deprecated, so use SHA-2 instead.
-default_md = sha256
-
-# Extension to add when the -x509 option is used.
-x509_extensions = v3_ca
-
-[ req_distinguished_name ]
-countryName = US
-stateOrProvinceName = Washington
-localityName = Seattle
-0.organizationName = wolfSSL
-organizationalUnitName = Development
-commonName = www.wolfssl.com
-emailAddress = info@wolfssl.com
-
-[ v3_ca ]
-# Extensions for a typical CA (`man x509v3_config`).
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer
-basicConstraints = critical, CA:true
-keyUsage = critical, digitalSignature, cRLSign, keyCertSign
-
-[ v3_intermediate_ca ]
-# Extensions for a typical intermediate CA (`man x509v3_config`).
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer
-basicConstraints = critical, CA:true, pathlen:0
-keyUsage = critical, digitalSignature, cRLSign, keyCertSign
-
-[ usr_cert ]
-# Extensions for client certificates (`man x509v3_config`).
-basicConstraints = CA:FALSE
-nsCertType = client, email
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer
-keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, emailProtection
-
-[ server_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = CA:FALSE
-nsCertType = server
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment, keyAgreement
-extendedKeyUsage = serverAuth
-
-[ crl_ext ]
-# Extension for CRLs (`man x509v3_config`).
-authorityKeyIdentifier=keyid:always
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc/wolfssl_384.cnf b/FreeRTOS-Plus/Source/WolfSSL/certs/ecc/wolfssl_384.cnf
deleted file mode 100644
index 7cb35f709..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ecc/wolfssl_384.cnf
+++ /dev/null
@@ -1,110 +0,0 @@
-[ ca ]
-# `man ca`
-default_ca = CA_default
-
-[ CA_default ]
-# Directory and file locations relevant to where the script is executing
-dir = .
-certs = $dir/certs
-new_certs_dir = $dir/certs
-database = $dir/certs/ecc/index.txt
-serial = $dir/certs/ecc/serial
-# This should come from the system disregard local pathing
-RANDFILE = $dir/private/.rand
-
-# The root key and root certificate.
-private_key = $dir/certs/ca-ecc384-key.pem
-certificate = $dir/certs/ca-ecc384-cert.pem
-
-# For certificate revocation lists.
-crlnumber = $dir/certs/ecc/crlnumber
-crl_extensions = crl_ext
-default_crl_days = 1000
-
-# SHA-384 is default
-default_md = sha384
-
-name_opt = ca_default
-cert_opt = ca_default
-default_days = 3650
-preserve = no
-policy = policy_loose
-
-
-[ policy_strict ]
-# The root CA should only sign intermediate certificates that match.
-# See the POLICY FORMAT section of `man ca`.
-countryName = match
-stateOrProvinceName = match
-organizationName = match
-organizationalUnitName = optional
-commonName = supplied
-emailAddress = optional
-
-[ policy_loose ]
-# Allow the intermediate CA to sign a more diverse range of certificates.
-# See the POLICY FORMAT section of the `ca` man page.
-countryName = optional
-stateOrProvinceName = optional
-localityName = optional
-organizationName = optional
-organizationalUnitName = optional
-commonName = supplied
-emailAddress = optional
-
-[ req ]
-# Options for the `req` tool (`man req`).
-default_bits = 2048
-distinguished_name = req_distinguished_name
-string_mask = utf8only
-
-# SHA-384 is default
-default_md = sha384
-
-# Extension to add when the -x509 option is used.
-x509_extensions = v3_ca
-
-[ req_distinguished_name ]
-countryName = US
-stateOrProvinceName = Washington
-localityName = Seattle
-0.organizationName = wolfSSL
-organizationalUnitName = Development
-commonName = www.wolfssl.com
-emailAddress = info@wolfssl.com
-
-[ v3_ca ]
-# Extensions for a typical CA (`man x509v3_config`).
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer
-basicConstraints = critical, CA:true
-keyUsage = critical, digitalSignature, cRLSign, keyCertSign
-
-[ v3_intermediate_ca ]
-# Extensions for a typical intermediate CA (`man x509v3_config`).
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer
-basicConstraints = critical, CA:true, pathlen:0
-keyUsage = critical, digitalSignature, cRLSign, keyCertSign
-
-[ usr_cert ]
-# Extensions for client certificates (`man x509v3_config`).
-basicConstraints = CA:FALSE
-nsCertType = client, email
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer
-keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment
-extendedKeyUsage = clientAuth, emailProtection
-
-[ server_cert ]
-# Extensions for server certificates (`man x509v3_config`).
-basicConstraints = CA:FALSE
-nsCertType = server
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
-keyUsage = critical, digitalSignature, keyEncipherment, keyAgreement
-extendedKeyUsage = serverAuth
-
-[ crl_ext ]
-# Extension for CRLs (`man x509v3_config`).
-authorityKeyIdentifier=keyid:always
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-key.der
deleted file mode 100644
index fd4449c86..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-key.pem
deleted file mode 100644
index a4b1eb08b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-key.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN EDDSA PRIVATE KEY-----
-MFICAQAwBQYDK2VwBCIEIALLg+oVSN6eOx+rCjIui2cYL3VyBkk2pWBdv1+JXJBy
-oSIEIGWqfwWkBDSg6q0fqYbw2H9y36kOE6A4ZiZe60gwgEhJ
------END EDDSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-priv.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-priv.der
deleted file mode 100644
index 1618c73b2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-priv.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-priv.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-priv.pem
deleted file mode 100644
index 7edc455eb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519-priv.pem
+++ /dev/null
@@ -1,3 +0,0 @@
------BEGIN PRIVATE KEY-----
-MC4CAQAwBQYDK2VwBCIEIALLg+oVSN6eOx+rCjIui2cYL3VyBkk2pWBdv1+JXJBy
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519.der
deleted file mode 100644
index b6c11045e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519.pem
deleted file mode 100644
index 9b4070d9b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/ca-ed25519.pem
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICYDCCAhKgAwIBAgIQAIC6aHfvpeVCfcZzLFSFuDAFBgMrZXAwgZ8xCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMQ0wCwYD
-VQQEDARSb290MRAwDgYDVQQKDAd3b2xmU1NMMRAwDgYDVQQLDAdFRDI1NTE5MRgw
-FgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb20wIhgPMjAxODA0MTIxNjIyMTdaGA8yMDIxMDEwNzE1MjIxN1owgZ0x
-CzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFu
-MQswCQYDVQQEDAJDQTEQMA4GA1UECgwHd29sZlNTTDEQMA4GA1UECwwHRUQyNTUx
-OTEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZv
-QHdvbGZzc2wuY29tMCowBQYDK2VwAyEAZap/BaQENKDqrR+phvDYf3LfqQ4ToDhm
-Jl7rSDCASEmjYDBeMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFJI/lnIC+mEcIW2I
-3evdPJsXxJ+3MB8GA1UdIwQYMBaAFP4BRn9vKz4csG/hzE0CJfdNCpW4MA4GA1Ud
-DwEB/wQEAwIBxjAFBgMrZXADQQBMQNB/vPv0ohpY9nLj6NoYDZTcDv3B5wKleu7L
-wn76ofwVmv4e4Dfff6t2UAbUPRplcz+S1ERip0yzKgGH4wYG
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-key.der
deleted file mode 100644
index f4990b312..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-key.pem
deleted file mode 100644
index fa3c91922..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-key.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN EDDSA PRIVATE KEY-----
-MFICAQAwBQYDK2VwBCIEICejNCo11Lu44dzY7A/BoNGiXPkG8ERdO5dNvd9KO6NO
-oSIEIKLxJkCbolna2+YVf5oRtUhfVbpe7Ub3mGe+DJPjpI4Y
------END EDDSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-priv.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-priv.der
deleted file mode 100644
index 6ca194a93..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-priv.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-priv.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-priv.pem
deleted file mode 100644
index 0104b1620..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519-priv.pem
+++ /dev/null
@@ -1,3 +0,0 @@
------BEGIN PRIVATE KEY-----
-MC4CAQAwBQYDK2VwBCIEICejNCo11Lu44dzY7A/BoNGiXPkG8ERdO5dNvd9KO6NO
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519.der
deleted file mode 100644
index 0fab773ca..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519.pem
deleted file mode 100644
index 5cc566714..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/client-ed25519.pem
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICWDCCAgqgAwIBAgIQAI8vNbJTvU+S0f8dS0ClSTAFBgMrZXAwgaExCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMQ8wDQYD
-VQQEDAZjbGllbnQxEDAOBgNVBAoMB3dvbGZTU0wxEDAOBgNVBAsMB0VEMjU1MTkx
-GDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3
-b2xmc3NsLmNvbTAiGA8yMDE4MDQxMjE2MjIxN1oYDzIwMjEwMTA3MTUyMjE3WjCB
-oTELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVt
-YW4xDzANBgNVBAQMBmNsaWVudDEQMA4GA1UECgwHd29sZlNTTDEQMA4GA1UECwwH
-RUQyNTUxOTEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkB
-FhBpbmZvQHdvbGZzc2wuY29tMCowBQYDK2VwAyEAovEmQJuiWdrb5hV/mhG1SF9V
-ul7tRveYZ74Mk+OkjhijUjBQMB0GA1UdDgQWBBT+AUZ/bys+HLBv4cxNAiX3TQqV
-uDAfBgNVHSMEGDAWgBT+AUZ/bys+HLBv4cxNAiX3TQqVuDAOBgNVHQ8BAf8EBAMC
-BsAwBQYDK2VwA0EAKfZp4rlzEtFk64/pa2HbX+mnYmwQiUGA4+j9H9ATrpUAr/d3
-4SIyrUZP3H7+rryKH5YK2p/Jk1InGLCL2r6BCQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/include.am b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/include.am
deleted file mode 100644
index ad2897684..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/include.am
+++ /dev/null
@@ -1,30 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- certs/ed25519/ca-ed25519.der \
- certs/ed25519/ca-ed25519.pem \
- certs/ed25519/ca-ed25519-key.der \
- certs/ed25519/ca-ed25519-key.pem \
- certs/ed25519/ca-ed25519-priv.der \
- certs/ed25519/ca-ed25519-priv.pem \
- certs/ed25519/client-ed25519.der \
- certs/ed25519/client-ed25519.pem \
- certs/ed25519/client-ed25519-key.der \
- certs/ed25519/client-ed25519-key.pem \
- certs/ed25519/client-ed25519-priv.der \
- certs/ed25519/client-ed25519-priv.pem \
- certs/ed25519/root-ed25519.der \
- certs/ed25519/root-ed25519.pem \
- certs/ed25519/root-ed25519-key.der \
- certs/ed25519/root-ed25519-key.pem \
- certs/ed25519/root-ed25519-priv.der \
- certs/ed25519/root-ed25519-priv.pem \
- certs/ed25519/server-ed25519.der \
- certs/ed25519/server-ed25519.pem \
- certs/ed25519/server-ed25519-cert.pem \
- certs/ed25519/server-ed25519-key.der \
- certs/ed25519/server-ed25519-key.pem \
- certs/ed25519/server-ed25519-priv.der \
- certs/ed25519/server-ed25519-priv.pem
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-key.der
deleted file mode 100644
index f4990b312..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-key.pem
deleted file mode 100644
index fa3c91922..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-key.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN EDDSA PRIVATE KEY-----
-MFICAQAwBQYDK2VwBCIEICejNCo11Lu44dzY7A/BoNGiXPkG8ERdO5dNvd9KO6NO
-oSIEIKLxJkCbolna2+YVf5oRtUhfVbpe7Ub3mGe+DJPjpI4Y
------END EDDSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-priv.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-priv.der
deleted file mode 100644
index 6ca194a93..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-priv.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-priv.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-priv.pem
deleted file mode 100644
index 0104b1620..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519-priv.pem
+++ /dev/null
@@ -1,3 +0,0 @@
------BEGIN PRIVATE KEY-----
-MC4CAQAwBQYDK2VwBCIEICejNCo11Lu44dzY7A/BoNGiXPkG8ERdO5dNvd9KO6NO
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519.der
deleted file mode 100644
index c1675faf0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519.pem
deleted file mode 100644
index 75d7a9dbd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/root-ed25519.pem
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICYjCCAhSgAwIBAgIQAI8vNbJTvU+S0f8dS0ClSTAFBgMrZXAwgZ8xCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMQ0wCwYD
-VQQEDARSb290MRAwDgYDVQQKDAd3b2xmU1NMMRAwDgYDVQQLDAdFRDI1NTE5MRgw
-FgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb20wIhgPMjAxODA0MTIxNjIyMTdaGA8yMDIxMDEwNzE1MjIxN1owgZ8x
-CzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFu
-MQ0wCwYDVQQEDARSb290MRAwDgYDVQQKDAd3b2xmU1NMMRAwDgYDVQQLDAdFRDI1
-NTE5MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGlu
-Zm9Ad29sZnNzbC5jb20wKjAFBgMrZXADIQCi8SZAm6JZ2tvmFX+aEbVIX1W6Xu1G
-95hnvgyT46SOGKNgMF4wDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQU/gFGf28rPhyw
-b+HMTQIl900KlbgwHwYDVR0jBBgwFoAU/gFGf28rPhywb+HMTQIl900KlbgwDgYD
-VR0PAQH/BAQDAgHGMAUGAytlcANBAEaxLiB1c316UlvcVyZ3bJ19dvCgG0Y8+2De
-GGbS7KdC/RauChf9sxLzVoNj2P5Al5dsHeqpECevSCbCD9LGpAA=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-cert.pem
deleted file mode 100644
index 555f30e83..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-cert.pem
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICUjCCAgSgAwIBAgIQAM3yL77cB/q7ZQPi/+pqmTAFBgMrZXAwgZ0xCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMQswCQYD
-VQQEDAJDQTEQMA4GA1UECgwHd29sZlNTTDEQMA4GA1UECwwHRUQyNTUxOTEYMBYG
-A1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tMCIYDzIwMTgwNDEyMTYyMjE3WhgPMjAyMTAxMDcxNTIyMTdaMIGfMQsw
-CQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEN
-MAsGA1UEBAwETGVhZjEQMA4GA1UECgwHd29sZlNTTDEQMA4GA1UECwwHRUQyNTUx
-OTEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZv
-QHdvbGZzc2wuY29tMCowBQYDK2VwAyEAYV3st0WTyYR7aCFKTfQEi73NbF09t2Is
-LSXDIknIhvKjUjBQMB0GA1UdDgQWBBQzyChjjPRX7h6wxxISdoqAMDrLEDAfBgNV
-HSMEGDAWgBSSP5ZyAvphHCFtiN3r3TybF8SftzAOBgNVHQ8BAf8EBAMCBsAwBQYD
-K2VwA0EAFYiG/GbR4PbPyQlG0FDiAV33z1e4upCEy/EkS++llX1pkoioiWPMkEDC
-QTpAdrEtqKiXyXPHgjAkYbCqyqpoAA==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-key.der
deleted file mode 100644
index a15640668..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-key.pem
deleted file mode 100644
index 60d9106c1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-key.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN EDDSA PRIVATE KEY-----
-MFICAQAwBQYDK2VwBCIEIAIvxf+6jtDSvwOOdo/IhoBxh5cx4kCs37uQFVJuJKE5
-oSIEIGFd7LdFk8mEe2ghSk30BIu9zWxdPbdiLC0lwyJJyIby
------END EDDSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-priv.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-priv.der
deleted file mode 100644
index 2245c976d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-priv.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-priv.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-priv.pem
deleted file mode 100644
index 86b0d2843..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519-priv.pem
+++ /dev/null
@@ -1,3 +0,0 @@
------BEGIN PRIVATE KEY-----
-MC4CAQAwBQYDK2VwBCIEIAIvxf+6jtDSvwOOdo/IhoBxh5cx4kCs37uQFVJuJKE5
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519.der
deleted file mode 100644
index 1100e971d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519.pem
deleted file mode 100644
index e38cb58bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed25519/server-ed25519.pem
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICUjCCAgSgAwIBAgIQAM3yL77cB/q7ZQPi/+pqmTAFBgMrZXAwgZ0xCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMQswCQYD
-VQQEDAJDQTEQMA4GA1UECgwHd29sZlNTTDEQMA4GA1UECwwHRUQyNTUxOTEYMBYG
-A1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tMCIYDzIwMTgwNDEyMTYyMjE3WhgPMjAyMTAxMDcxNTIyMTdaMIGfMQsw
-CQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEN
-MAsGA1UEBAwETGVhZjEQMA4GA1UECgwHd29sZlNTTDEQMA4GA1UECwwHRUQyNTUx
-OTEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZv
-QHdvbGZzc2wuY29tMCowBQYDK2VwAyEAYV3st0WTyYR7aCFKTfQEi73NbF09t2Is
-LSXDIknIhvKjUjBQMB0GA1UdDgQWBBQzyChjjPRX7h6wxxISdoqAMDrLEDAfBgNV
-HSMEGDAWgBSSP5ZyAvphHCFtiN3r3TybF8SftzAOBgNVHQ8BAf8EBAMCBsAwBQYD
-K2VwA0EAFYiG/GbR4PbPyQlG0FDiAV33z1e4upCEy/EkS++llX1pkoioiWPMkEDC
-QTpAdrEtqKiXyXPHgjAkYbCqyqpoAA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICYDCCAhKgAwIBAgIQAIC6aHfvpeVCfcZzLFSFuDAFBgMrZXAwgZ8xCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMQ0wCwYD
-VQQEDARSb290MRAwDgYDVQQKDAd3b2xmU1NMMRAwDgYDVQQLDAdFRDI1NTE5MRgw
-FgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb20wIhgPMjAxODA0MTIxNjIyMTdaGA8yMDIxMDEwNzE1MjIxN1owgZ0x
-CzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFu
-MQswCQYDVQQEDAJDQTEQMA4GA1UECgwHd29sZlNTTDEQMA4GA1UECwwHRUQyNTUx
-OTEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZv
-QHdvbGZzc2wuY29tMCowBQYDK2VwAyEAZap/BaQENKDqrR+phvDYf3LfqQ4ToDhm
-Jl7rSDCASEmjYDBeMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFJI/lnIC+mEcIW2I
-3evdPJsXxJ+3MB8GA1UdIwQYMBaAFP4BRn9vKz4csG/hzE0CJfdNCpW4MA4GA1Ud
-DwEB/wQEAwIBxjAFBgMrZXADQQBMQNB/vPv0ohpY9nLj6NoYDZTcDv3B5wKleu7L
-wn76ofwVmv4e4Dfff6t2UAbUPRplcz+S1ERip0yzKgGH4wYG
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-key.der
deleted file mode 100644
index a3daad5ba..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-key.pem
deleted file mode 100644
index 442e1914a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-key.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN PUBLIC KEY-----
-MEMwBQYDK2VxAzoADuK0duXSzMJLe7ApvpL7w69ppZS6cCToo+/IY5rdpq9YQzgE
-JPAQkb6nAZFU889phUy5l4ykN6oA
------END PUBLIC KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-priv.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-priv.der
deleted file mode 100644
index 27def8cd3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-priv.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-priv.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-priv.pem
deleted file mode 100644
index 6bb628e7f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448-priv.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN PRIVATE KEY-----
-MEcCAQAwBQYDK2VxBDsEOQ0MPBFXhJUxmYnuqZQxWjxEvbqS7lm1D8fdInwsP7Sl
-ZUr4yoXSFWuuzJapAjBD/+b8nl7xUB+h9g==
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448.der
deleted file mode 100644
index e63ce3e3c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448.pem
deleted file mode 100644
index 2e8926ffd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/ca-ed448.pem
+++ /dev/null
@@ -1,52 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: ED448
- Issuer: C = US, ST = Montana, L = Bozeman, O = wolfSSL_Ed448, OU = Root-Ed448, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Feb 13 01:35:44 2020 GMT
- Not After : Nov 9 01:35:44 2022 GMT
- Subject: C = US, ST = Montana, L = Bozeman, O = wolfSSL_ed448, OU = CA-ed448, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: ED448
- ED448 Public-Key:
- pub:
- 0e:e2:b4:76:e5:d2:cc:c2:4b:7b:b0:29:be:92:fb:
- c3:af:69:a5:94:ba:70:24:e8:a3:ef:c8:63:9a:dd:
- a6:af:58:43:38:04:24:f0:10:91:be:a7:01:91:54:
- f3:cf:69:85:4c:b9:97:8c:a4:37:aa:00
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 38:59:45:E8:DD:44:2C:B5:7D:A5:25:D6:0B:CC:39:F0:72:C0:94:63
- X509v3 Authority Key Identifier:
- keyid:DA:69:98:C9:26:4A:75:FB:59:5E:53:9A:63:4B:0C:B8:88:0B:0F:1E
-
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- Signature Algorithm: ED448
- a0:94:c1:de:f0:7f:40:b2:88:77:f7:f7:7b:da:42:b3:3f:f6:
- 32:57:a9:e9:41:7f:51:53:1c:f3:5e:d5:77:d7:fa:55:f9:0e:
- 54:eb:d8:6b:4e:bc:e9:0d:38:ea:da:c4:81:23:2c:84:bd:8b:
- 65:e3:80:ad:26:ce:a9:e5:21:65:59:5c:e7:44:75:a3:d5:c5:
- 2d:70:30:48:55:76:64:58:dd:a5:6a:77:3c:e5:46:aa:54:49:
- a9:cd:48:f7:7b:ac:36:01:4a:61:aa:f3:3b:0b:fe:9f:56:5a:
- ba:51:e4:33:2e:00
------BEGIN CERTIFICATE-----
-MIICjzCCAg+gAwIBAgIBATAFBgMrZXEwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQI
-DAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMRYwFAYDVQQKDA13b2xmU1NMX0Vk
-NDQ4MRMwEQYDVQQLDApSb290LUVkNDQ4MRgwFgYDVQQDDA93d3cud29sZnNzbC5j
-b20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMjAwMjEzMDEz
-NTQ0WhcNMjIxMTA5MDEzNTQ0WjCBlzELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01v
-bnRhbmExEDAOBgNVBAcMB0JvemVtYW4xFjAUBgNVBAoMDXdvbGZTU0xfZWQ0NDgx
-ETAPBgNVBAsMCENBLWVkNDQ4MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAd
-BgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wQzAFBgMrZXEDOgAO4rR25dLM
-wkt7sCm+kvvDr2mllLpwJOij78hjmt2mr1hDOAQk8BCRvqcBkVTzz2mFTLmXjKQ3
-qgCjYzBhMB0GA1UdDgQWBBQ4WUXo3UQstX2lJdYLzDnwcsCUYzAfBgNVHSMEGDAW
-gBTaaZjJJkp1+1leU5pjSwy4iAsPHjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBhjAFBgMrZXEDcwCglMHe8H9Asoh39/d72kKzP/YyV6npQX9RUxzzXtV3
-1/pV+Q5U69hrTrzpDTjq2sSBIyyEvYtl44CtJs6p5SFlWVznRHWj1cUtcDBIVXZk
-WN2lanc85UaqVEmpzUj3e6w2AUphqvM7C/6fVlq6UeQzLgA=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-key.der
deleted file mode 100644
index 7151dce84..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-key.pem
deleted file mode 100644
index 606313935..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-key.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN PUBLIC KEY-----
-MEMwBQYDK2VxAzoAEMCCL40K7GUSUkA5qnpgaI4xIkmtm8H8ceU+eFc1yHazszCP
-h3jmJlon2Aw4nns8Ey/MpClsgO+A
------END PUBLIC KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-priv.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-priv.der
deleted file mode 100644
index 2bc7530da..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-priv.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-priv.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-priv.pem
deleted file mode 100644
index ac2c00c6e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448-priv.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN PRIVATE KEY-----
-MEcCAQAwBQYDK2VxBDsEOeKh6lG5syIN7WHlIePnstcOgeEy+yHkTLEH2zqcNNHq
-KrcLezHBu7MXvpBoBvKBELmtS4gZhOX7nQ==
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448.der
deleted file mode 100644
index 667cabab0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448.pem
deleted file mode 100644
index 7cd3d70d1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/client-ed448.pem
+++ /dev/null
@@ -1,60 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 1a:76:b6:ab:cd:57:de:dd:57:71:9e:7a:af:d0:6e:20:18:de:ef:f9
- Signature Algorithm: ED448
- Issuer: C = US, ST = Montana, L = Bozeman, O = wolfSSL_ed448, OU = Client-ed448, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Feb 13 01:35:44 2020 GMT
- Not After : Nov 9 01:35:44 2022 GMT
- Subject: C = US, ST = Montana, L = Bozeman, O = wolfSSL_ed448, OU = Client-ed448, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: ED448
- ED448 Public-Key:
- pub:
- 10:c0:82:2f:8d:0a:ec:65:12:52:40:39:aa:7a:60:
- 68:8e:31:22:49:ad:9b:c1:fc:71:e5:3e:78:57:35:
- c8:76:b3:b3:30:8f:87:78:e6:26:5a:27:d8:0c:38:
- 9e:7b:3c:13:2f:cc:a4:29:6c:80:ef:80
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- F3:C7:66:93:0D:CB:0E:1B:80:08:00:CF:E3:4E:11:4D:58:2B:4B:D4
- X509v3 Authority Key Identifier:
- keyid:F3:C7:66:93:0D:CB:0E:1B:80:08:00:CF:E3:4E:11:4D:58:2B:4B:D4
- DirName:/C=US/ST=Montana/L=Bozeman/O=wolfSSL_ed448/OU=Client-ed448/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:1A:76:B6:AB:CD:57:DE:DD:57:71:9E:7A:AF:D0:6E:20:18:DE:EF:F9
-
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Alternative Name:
- DNS:example.com
- Signature Algorithm: ED448
- 8b:89:9a:40:37:a5:3a:8a:e0:aa:d2:a7:de:2a:9d:84:be:8e:
- 42:af:d7:fb:16:7b:7b:e4:02:49:07:b2:31:6d:9b:a5:37:cb:
- 5d:8b:5f:b5:a1:6d:ed:95:5d:a7:06:5b:c5:31:f6:f3:a8:65:
- 19:2a:00:2c:46:7d:bd:7c:56:82:01:8f:3b:25:38:d0:97:be:
- 65:f0:68:c5:fc:45:b3:2a:56:05:bc:2f:30:a6:48:37:bf:0a:
- b3:d7:38:ca:f0:84:d8:2b:f4:8b:56:32:27:a9:f8:e2:6a:da:
- 9a:26:cb:47:2d:00
------BEGIN CERTIFICATE-----
-MIIDbjCCAu6gAwIBAgIUGna2q81X3t1XcZ56r9BuIBje7/kwBQYDK2VxMIGbMQsw
-CQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEW
-MBQGA1UECgwNd29sZlNTTF9lZDQ0ODEVMBMGA1UECwwMQ2xpZW50LWVkNDQ4MRgw
-FgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb20wHhcNMjAwMjEzMDEzNTQ0WhcNMjIxMTA5MDEzNTQ0WjCBmzELMAkG
-A1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xFjAU
-BgNVBAoMDXdvbGZTU0xfZWQ0NDgxFTATBgNVBAsMDENsaWVudC1lZDQ0ODEYMBYG
-A1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tMEMwBQYDK2VxAzoAEMCCL40K7GUSUkA5qnpgaI4xIkmtm8H8ceU+eFc1
-yHazszCPh3jmJlon2Aw4nns8Ey/MpClsgO+Ao4IBJzCCASMwHQYDVR0OBBYEFPPH
-ZpMNyw4bgAgAz+NOEU1YK0vUMIHbBgNVHSMEgdMwgdCAFPPHZpMNyw4bgAgAz+NO
-EU1YK0vUoYGhpIGeMIGbMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQ
-MA4GA1UEBwwHQm96ZW1hbjEWMBQGA1UECgwNd29sZlNTTF9lZDQ0ODEVMBMGA1UE
-CwwMQ2xpZW50LWVkNDQ4MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkq
-hkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CFBp2tqvNV97dV3Geeq/QbiAY3u/5
-MAwGA1UdEwQFMAMBAf8wFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wBQYDK2VxA3MA
-i4maQDelOorgqtKn3iqdhL6OQq/X+xZ7e+QCSQeyMW2bpTfLXYtftaFt7ZVdpwZb
-xTH286hlGSoALEZ9vXxWggGPOyU40Je+ZfBoxfxFsypWBbwvMKZIN78Ks9c4yvCE
-2Cv0i1YyJ6n44mramibLRy0A
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/include.am b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/include.am
deleted file mode 100644
index 7ad7aefb8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/include.am
+++ /dev/null
@@ -1,30 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- certs/ed448/ca-ed448.der \
- certs/ed448/ca-ed448.pem \
- certs/ed448/ca-ed448-key.der \
- certs/ed448/ca-ed448-key.pem \
- certs/ed448/ca-ed448-priv.der \
- certs/ed448/ca-ed448-priv.pem \
- certs/ed448/client-ed448.der \
- certs/ed448/client-ed448.pem \
- certs/ed448/client-ed448-key.der \
- certs/ed448/client-ed448-key.pem \
- certs/ed448/client-ed448-priv.der \
- certs/ed448/client-ed448-priv.pem \
- certs/ed448/root-ed448.der \
- certs/ed448/root-ed448.pem \
- certs/ed448/root-ed448-key.der \
- certs/ed448/root-ed448-key.pem \
- certs/ed448/root-ed448-priv.der \
- certs/ed448/root-ed448-priv.pem \
- certs/ed448/server-ed448.der \
- certs/ed448/server-ed448.pem \
- certs/ed448/server-ed448-cert.pem \
- certs/ed448/server-ed448-key.der \
- certs/ed448/server-ed448-key.pem \
- certs/ed448/server-ed448-priv.der \
- certs/ed448/server-ed448-priv.pem
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-key.der
deleted file mode 100644
index 843190390..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-key.pem
deleted file mode 100644
index 95630424c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-key.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN PUBLIC KEY-----
-MEMwBQYDK2VxAzoAC2QmKM+1RpvuP+o79WZ6MtT+ffiAX1hXbNd57maiPVSPjQiv
-y7hDlFBd5VNiach1gqZeRMpLWwsA
------END PUBLIC KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-priv.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-priv.der
deleted file mode 100644
index 41480571f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-priv.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-priv.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-priv.pem
deleted file mode 100644
index 0b28472a5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448-priv.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN PRIVATE KEY-----
-MEcCAQAwBQYDK2VxBDsEOQxfZe2BkQRH7cZPOS+FhWwSoBWzeihu166i8UZYsnU2
-uv2MLSFWPPC7jzd/QGSDopBIRcUaMqkEyg==
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448.der
deleted file mode 100644
index 181a58397..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448.pem
deleted file mode 100644
index 8cfaf623f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/root-ed448.pem
+++ /dev/null
@@ -1,54 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 4c:ed:9f:66:e8:c6:f4:c2:6d:5d:bc:da:14:f7:e9:61:92:fb:8d:d8
- Signature Algorithm: ED448
- Issuer: C = US, ST = Montana, L = Bozeman, O = wolfSSL_Ed448, OU = Root-Ed448, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Feb 13 01:35:44 2020 GMT
- Not After : Nov 9 01:35:44 2022 GMT
- Subject: C = US, ST = Montana, L = Bozeman, O = wolfSSL_Ed448, OU = Root-Ed448, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: ED448
- ED448 Public-Key:
- pub:
- 0b:64:26:28:cf:b5:46:9b:ee:3f:ea:3b:f5:66:7a:
- 32:d4:fe:7d:f8:80:5f:58:57:6c:d7:79:ee:66:a2:
- 3d:54:8f:8d:08:af:cb:b8:43:94:50:5d:e5:53:62:
- 69:c8:75:82:a6:5e:44:ca:4b:5b:0b:00
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- DA:69:98:C9:26:4A:75:FB:59:5E:53:9A:63:4B:0C:B8:88:0B:0F:1E
- X509v3 Authority Key Identifier:
- keyid:DA:69:98:C9:26:4A:75:FB:59:5E:53:9A:63:4B:0C:B8:88:0B:0F:1E
-
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- Signature Algorithm: ED448
- 32:f2:95:d6:56:9f:c4:5c:2a:36:da:51:b7:96:cb:97:f7:c5:
- 02:f2:20:f4:20:fa:a8:25:6f:dc:f9:c4:b7:ac:be:39:68:3b:
- 9e:58:4a:42:c3:74:e2:55:bd:44:54:40:18:7c:d4:30:47:6f:
- 53:03:80:c9:21:50:a5:e9:1f:27:44:42:5f:ce:d4:a7:a4:bf:
- 5e:3b:00:86:1c:8e:a7:4a:4f:4b:24:63:1c:fc:4e:06:39:af:
- 04:7d:84:7f:66:a9:e4:e9:e7:ba:b7:87:e8:27:7c:1a:d5:55:
- 3d:7e:bd:90:30:00
------BEGIN CERTIFICATE-----
-MIICpDCCAiSgAwIBAgIUTO2fZujG9MJtXbzaFPfpYZL7jdgwBQYDK2VxMIGZMQsw
-CQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEW
-MBQGA1UECgwNd29sZlNTTF9FZDQ0ODETMBEGA1UECwwKUm9vdC1FZDQ0ODEYMBYG
-A1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tMB4XDTIwMDIxMzAxMzU0NFoXDTIyMTEwOTAxMzU0NFowgZkxCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMRYwFAYD
-VQQKDA13b2xmU1NMX0VkNDQ4MRMwEQYDVQQLDApSb290LUVkNDQ4MRgwFgYDVQQD
-DA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wQzAFBgMrZXEDOgALZCYoz7VGm+4/6jv1Znoy1P59+IBfWFds13nuZqI9VI+N
-CK/LuEOUUF3lU2JpyHWCpl5EyktbCwCjYzBhMB0GA1UdDgQWBBTaaZjJJkp1+1le
-U5pjSwy4iAsPHjAfBgNVHSMEGDAWgBTaaZjJJkp1+1leU5pjSwy4iAsPHjAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAFBgMrZXEDcwAy8pXWVp/EXCo2
-2lG3lsuX98UC8iD0IPqoJW/c+cS3rL45aDueWEpCw3TiVb1EVEAYfNQwR29TA4DJ
-IVCl6R8nREJfztSnpL9eOwCGHI6nSk9LJGMc/E4GOa8EfYR/Zqnk6ee6t4foJ3wa
-1VU9fr2QMAA=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-cert.pem
deleted file mode 100644
index c239c13db..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-cert.pem
+++ /dev/null
@@ -1,57 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: ED448
- Issuer: C = US, ST = Montana, L = Bozeman, O = wolfSSL_ed448, OU = CA-ed448, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Feb 13 01:35:44 2020 GMT
- Not After : Nov 9 01:35:44 2022 GMT
- Subject: C = US, ST = Montana, L = Bozeman, O = wolfSSL_ed448, OU = Server-ed448, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: ED448
- ED448 Public-Key:
- pub:
- 54:81:39:01:eb:37:d9:a9:07:cd:01:bc:9d:70:16:
- c2:2c:2b:75:5b:63:db:ee:3a:2d:44:92:46:b4:7b:
- 07:03:4f:a2:ae:86:86:dc:8b:4b:2c:7f:e8:6b:14:
- 8d:58:dd:6d:e7:6f:3a:05:95:a8:ef:00
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 7C:AB:5C:12:A9:68:D8:18:10:28:7D:92:C5:4A:B8:4C:4C:76:0E:DB
- X509v3 Authority Key Identifier:
- keyid:38:59:45:E8:DD:44:2C:B5:7D:A5:25:D6:0B:CC:39:F0:72:C0:94:63
-
- X509v3 Basic Constraints: critical
- CA:FALSE
- X509v3 Key Usage: critical
- Digital Signature, Key Encipherment, Key Agreement
- X509v3 Extended Key Usage:
- TLS Web Server Authentication
- Netscape Cert Type:
- SSL Server
- Signature Algorithm: ED448
- 91:15:fc:8e:a6:00:50:bf:8e:44:4e:14:39:a3:91:29:12:25:
- a5:8b:42:5b:85:a0:c3:d7:b3:6a:1b:4c:d9:4f:20:5a:92:5b:
- 58:2a:f4:86:21:35:0b:d6:a5:b1:ca:98:6a:cb:09:c7:98:a5:
- 22:b6:00:a2:ef:81:19:4f:4d:28:4e:80:47:6a:3c:82:88:84:
- 8b:03:99:48:5b:cc:c4:75:98:b2:70:b1:93:6c:24:a7:8e:01:
- 6a:2f:15:53:25:c2:45:5c:b6:25:db:17:93:fb:9c:1d:0f:c6:
- a6:88:70:44:2e:00
------BEGIN CERTIFICATE-----
-MIICuDCCAjigAwIBAgIBATAFBgMrZXEwgZcxCzAJBgNVBAYTAlVTMRAwDgYDVQQI
-DAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMRYwFAYDVQQKDA13b2xmU1NMX2Vk
-NDQ4MREwDwYDVQQLDAhDQS1lZDQ0ODEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t
-MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTIwMDIxMzAxMzU0
-NFoXDTIyMTEwOTAxMzU0NFowgZsxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250
-YW5hMRAwDgYDVQQHDAdCb3plbWFuMRYwFAYDVQQKDA13b2xmU1NMX2VkNDQ4MRUw
-EwYDVQQLDAxTZXJ2ZXItZWQ0NDgxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEf
-MB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTBDMAUGAytlcQM6AFSBOQHr
-N9mpB80BvJ1wFsIsK3VbY9vuOi1Ekka0ewcDT6Kuhobci0ssf+hrFI1Y3W3nbzoF
-lajvAKOBiTCBhjAdBgNVHQ4EFgQUfKtcEqlo2BgQKH2SxUq4TEx2DtswHwYDVR0j
-BBgwFoAUOFlF6N1ELLV9pSXWC8w58HLAlGMwDAYDVR0TAQH/BAIwADAOBgNVHQ8B
-Af8EBAMCA6gwEwYDVR0lBAwwCgYIKwYBBQUHAwEwEQYJYIZIAYb4QgEBBAQDAgZA
-MAUGAytlcQNzAJEV/I6mAFC/jkROFDmjkSkSJaWLQluFoMPXs2obTNlPIFqSW1gq
-9IYhNQvWpbHKmGrLCceYpSK2AKLvgRlPTShOgEdqPIKIhIsDmUhbzMR1mLJwsZNs
-JKeOAWovFVMlwkVctiXbF5P7nB0PxqaIcEQuAA==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-key.der
deleted file mode 100644
index 4804c53be..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-key.pem
deleted file mode 100644
index efb1224ec..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-key.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN PUBLIC KEY-----
-MEMwBQYDK2VxAzoAVIE5Aes32akHzQG8nXAWwiwrdVtj2+46LUSSRrR7BwNPoq6G
-htyLSyx/6GsUjVjdbedvOgWVqO8A
------END PUBLIC KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-priv.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-priv.der
deleted file mode 100644
index 53514f569..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-priv.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-priv.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-priv.pem
deleted file mode 100644
index 9be220d0e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448-priv.pem
+++ /dev/null
@@ -1,4 +0,0 @@
------BEGIN PRIVATE KEY-----
-MEcCAQAwBQYDK2VxBDsEOZjjRigtoqT2f3SQ+CwZc4ZSLxmBR0ovViBY5iOQko+1
-4E4SJfNhLBO+v9OdFlzL0xJ+tPaq+iGVvw==
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448.der b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448.der
deleted file mode 100644
index c9971b413..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448.pem
deleted file mode 100644
index 6dfa73000..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ed448/server-ed448.pem
+++ /dev/null
@@ -1,109 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: ED448
- Issuer: C = US, ST = Montana, L = Bozeman, O = wolfSSL_ed448, OU = CA-ed448, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Feb 13 01:35:44 2020 GMT
- Not After : Nov 9 01:35:44 2022 GMT
- Subject: C = US, ST = Montana, L = Bozeman, O = wolfSSL_ed448, OU = Server-ed448, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: ED448
- ED448 Public-Key:
- pub:
- 54:81:39:01:eb:37:d9:a9:07:cd:01:bc:9d:70:16:
- c2:2c:2b:75:5b:63:db:ee:3a:2d:44:92:46:b4:7b:
- 07:03:4f:a2:ae:86:86:dc:8b:4b:2c:7f:e8:6b:14:
- 8d:58:dd:6d:e7:6f:3a:05:95:a8:ef:00
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 7C:AB:5C:12:A9:68:D8:18:10:28:7D:92:C5:4A:B8:4C:4C:76:0E:DB
- X509v3 Authority Key Identifier:
- keyid:38:59:45:E8:DD:44:2C:B5:7D:A5:25:D6:0B:CC:39:F0:72:C0:94:63
-
- X509v3 Basic Constraints: critical
- CA:FALSE
- X509v3 Key Usage: critical
- Digital Signature, Key Encipherment, Key Agreement
- X509v3 Extended Key Usage:
- TLS Web Server Authentication
- Netscape Cert Type:
- SSL Server
- Signature Algorithm: ED448
- 91:15:fc:8e:a6:00:50:bf:8e:44:4e:14:39:a3:91:29:12:25:
- a5:8b:42:5b:85:a0:c3:d7:b3:6a:1b:4c:d9:4f:20:5a:92:5b:
- 58:2a:f4:86:21:35:0b:d6:a5:b1:ca:98:6a:cb:09:c7:98:a5:
- 22:b6:00:a2:ef:81:19:4f:4d:28:4e:80:47:6a:3c:82:88:84:
- 8b:03:99:48:5b:cc:c4:75:98:b2:70:b1:93:6c:24:a7:8e:01:
- 6a:2f:15:53:25:c2:45:5c:b6:25:db:17:93:fb:9c:1d:0f:c6:
- a6:88:70:44:2e:00
------BEGIN CERTIFICATE-----
-MIICuDCCAjigAwIBAgIBATAFBgMrZXEwgZcxCzAJBgNVBAYTAlVTMRAwDgYDVQQI
-DAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMRYwFAYDVQQKDA13b2xmU1NMX2Vk
-NDQ4MREwDwYDVQQLDAhDQS1lZDQ0ODEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t
-MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTIwMDIxMzAxMzU0
-NFoXDTIyMTEwOTAxMzU0NFowgZsxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250
-YW5hMRAwDgYDVQQHDAdCb3plbWFuMRYwFAYDVQQKDA13b2xmU1NMX2VkNDQ4MRUw
-EwYDVQQLDAxTZXJ2ZXItZWQ0NDgxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEf
-MB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTBDMAUGAytlcQM6AFSBOQHr
-N9mpB80BvJ1wFsIsK3VbY9vuOi1Ekka0ewcDT6Kuhobci0ssf+hrFI1Y3W3nbzoF
-lajvAKOBiTCBhjAdBgNVHQ4EFgQUfKtcEqlo2BgQKH2SxUq4TEx2DtswHwYDVR0j
-BBgwFoAUOFlF6N1ELLV9pSXWC8w58HLAlGMwDAYDVR0TAQH/BAIwADAOBgNVHQ8B
-Af8EBAMCA6gwEwYDVR0lBAwwCgYIKwYBBQUHAwEwEQYJYIZIAYb4QgEBBAQDAgZA
-MAUGAytlcQNzAJEV/I6mAFC/jkROFDmjkSkSJaWLQluFoMPXs2obTNlPIFqSW1gq
-9IYhNQvWpbHKmGrLCceYpSK2AKLvgRlPTShOgEdqPIKIhIsDmUhbzMR1mLJwsZNs
-JKeOAWovFVMlwkVctiXbF5P7nB0PxqaIcEQuAA==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: ED448
- Issuer: C = US, ST = Montana, L = Bozeman, O = wolfSSL_Ed448, OU = Root-Ed448, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Feb 13 01:35:44 2020 GMT
- Not After : Nov 9 01:35:44 2022 GMT
- Subject: C = US, ST = Montana, L = Bozeman, O = wolfSSL_ed448, OU = CA-ed448, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: ED448
- ED448 Public-Key:
- pub:
- 0e:e2:b4:76:e5:d2:cc:c2:4b:7b:b0:29:be:92:fb:
- c3:af:69:a5:94:ba:70:24:e8:a3:ef:c8:63:9a:dd:
- a6:af:58:43:38:04:24:f0:10:91:be:a7:01:91:54:
- f3:cf:69:85:4c:b9:97:8c:a4:37:aa:00
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 38:59:45:E8:DD:44:2C:B5:7D:A5:25:D6:0B:CC:39:F0:72:C0:94:63
- X509v3 Authority Key Identifier:
- keyid:DA:69:98:C9:26:4A:75:FB:59:5E:53:9A:63:4B:0C:B8:88:0B:0F:1E
-
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- Signature Algorithm: ED448
- a0:94:c1:de:f0:7f:40:b2:88:77:f7:f7:7b:da:42:b3:3f:f6:
- 32:57:a9:e9:41:7f:51:53:1c:f3:5e:d5:77:d7:fa:55:f9:0e:
- 54:eb:d8:6b:4e:bc:e9:0d:38:ea:da:c4:81:23:2c:84:bd:8b:
- 65:e3:80:ad:26:ce:a9:e5:21:65:59:5c:e7:44:75:a3:d5:c5:
- 2d:70:30:48:55:76:64:58:dd:a5:6a:77:3c:e5:46:aa:54:49:
- a9:cd:48:f7:7b:ac:36:01:4a:61:aa:f3:3b:0b:fe:9f:56:5a:
- ba:51:e4:33:2e:00
------BEGIN CERTIFICATE-----
-MIICjzCCAg+gAwIBAgIBATAFBgMrZXEwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQI
-DAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMRYwFAYDVQQKDA13b2xmU1NMX0Vk
-NDQ4MRMwEQYDVQQLDApSb290LUVkNDQ4MRgwFgYDVQQDDA93d3cud29sZnNzbC5j
-b20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMjAwMjEzMDEz
-NTQ0WhcNMjIxMTA5MDEzNTQ0WjCBlzELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01v
-bnRhbmExEDAOBgNVBAcMB0JvemVtYW4xFjAUBgNVBAoMDXdvbGZTU0xfZWQ0NDgx
-ETAPBgNVBAsMCENBLWVkNDQ4MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAd
-BgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wQzAFBgMrZXEDOgAO4rR25dLM
-wkt7sCm+kvvDr2mllLpwJOij78hjmt2mr1hDOAQk8BCRvqcBkVTzz2mFTLmXjKQ3
-qgCjYzBhMB0GA1UdDgQWBBQ4WUXo3UQstX2lJdYLzDnwcsCUYzAfBgNVHSMEGDAW
-gBTaaZjJJkp1+1leU5pjSwy4iAsPHjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBhjAFBgMrZXEDcwCglMHe8H9Asoh39/d72kKzP/YyV6npQX9RUxzzXtV3
-1/pV+Q5U69hrTrzpDTjq2sSBIyyEvYtl44CtJs6p5SFlWVznRHWj1cUtcDBIVXZk
-WN2lanc85UaqVEmpzUj3e6w2AUphqvM7C/6fVlq6UeQzLgA=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/external/baltimore-cybertrust-root.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/external/baltimore-cybertrust-root.pem
deleted file mode 100644
index 519028c63..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/external/baltimore-cybertrust-root.pem
+++ /dev/null
@@ -1,21 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
-RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
-VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
-DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
-ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
-VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
-mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
-IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
-mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
-XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
-dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
-jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
-BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
-DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
-9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
-jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
-Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
-ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
-R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/external/ca-digicert-ev.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/external/ca-digicert-ev.pem
deleted file mode 100644
index 9e6810ab7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/external/ca-digicert-ev.pem
+++ /dev/null
@@ -1,23 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
-ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
-MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
-LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
-RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
-+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
-PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
-xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
-Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
-hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
-EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
-FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
-nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
-eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
-hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
-Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
-+OkuE6N36B9K
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/external/ca-globalsign-root.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/external/ca-globalsign-root.pem
deleted file mode 100644
index 48e3e7cc8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/external/ca-globalsign-root.pem
+++ /dev/null
@@ -1,42 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
-MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
-RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
-gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
-KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
-QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
-XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
-DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
-LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
-RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
-jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
-6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
-mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
-Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
-WD9f
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
-A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
-b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
-MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
-YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
-aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
-jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
-xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
-1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
-snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
-U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
-9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
-BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
-AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
-yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
-38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
-AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
-DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
-HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/external/ca-google-root.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/external/ca-google-root.pem
deleted file mode 100644
index 6f0f8db0d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/external/ca-google-root.pem
+++ /dev/null
@@ -1,22 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
-MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
-v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
-eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
-tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
-C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
-zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
-mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
-V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
-bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
-3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
-J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
-291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
-ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
-AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/external/include.am b/FreeRTOS-Plus/Source/WolfSSL/certs/external/include.am
deleted file mode 100644
index 3ab9650e6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/external/include.am
+++ /dev/null
@@ -1,9 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- certs/external/ca-globalsign-root.pem \
- certs/external/ca-google-root.pem\
- certs/external/ca-digicert-ev.pem \
- certs/external/baltimore-cybertrust-root.pem
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/include.am b/FreeRTOS-Plus/Source/WolfSSL/certs/include.am
deleted file mode 100644
index 45193b5ae..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/include.am
+++ /dev/null
@@ -1,113 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- certs/ca-cert-chain.der \
- certs/ca-cert.pem \
- certs/ca-key.pem \
- certs/client-cert.pem \
- certs/client-keyEnc.pem \
- certs/client-key.pem \
- certs/client-uri-cert.pem \
- certs/client-relative-uri.pem \
- certs/ecc-key.pem \
- certs/ecc-privkey.pem \
- certs/ecc-privkeyPkcs8.der \
- certs/ecc-privkeyPkcs8.pem \
- certs/ecc-keyPkcs8Enc.pem \
- certs/ecc-keyPkcs8Enc.der \
- certs/ecc-key-comp.pem \
- certs/ecc-keyPkcs8.pem \
- certs/ecc-keyPkcs8.der \
- certs/ecc-client-key.pem \
- certs/ecc-client-keyPub.pem \
- certs/client-ecc-cert.pem \
- certs/client-ca.pem \
- certs/ntru-cert.pem \
- certs/dh2048.pem \
- certs/server-cert.pem \
- certs/server-ecc.pem \
- certs/server-ecc-self.pem \
- certs/server-ecc-comp.pem \
- certs/server-ecc-rsa.pem \
- certs/server-keyEnc.pem \
- certs/server-key.pem \
- certs/server-keyPkcs8.der \
- certs/server-keyPkcs8Enc12.pem \
- certs/server-keyPkcs8Enc2.pem \
- certs/server-keyPkcs8Enc.pem \
- certs/server-keyPkcs8Enc.der \
- certs/server-keyPkcs8.pem \
- certs/server-revoked-cert.pem \
- certs/server-revoked-key.pem \
- certs/wolfssl-website-ca.pem \
- certs/test-degenerate.p7b \
- certs/test-ber-exp02-05-2022.p7b \
- certs/test-servercert.p12 \
- certs/ecc-rsa-server.p12 \
- certs/dsaparams.pem \
- certs/ecc-privOnlyKey.pem \
- certs/ecc-privOnlyCert.pem \
- certs/dh3072.pem \
- certs/dh4096.pem \
- certs/client-cert-ext.pem
-
-EXTRA_DIST += \
- certs/ca-key.der \
- certs/ca-cert.der \
- certs/client-cert.der \
- certs/client-key.der \
- certs/client-ecc-cert.der \
- certs/client-keyPub.der \
- certs/dh2048.der \
- certs/dh3072.der \
- certs/dh4096.der \
- certs/rsa2048.der \
- certs/rsa-pub-2048.pem \
- certs/rsa3072.der \
- certs/dsa2048.der \
- certs/dsa3072.der \
- certs/ecc-client-key.der \
- certs/ecc-client-keyPub.der \
- certs/ecc-key.der \
- certs/ecc-keyPub.der \
- certs/server-key.der \
- certs/server-cert.der \
- certs/server-ecc-comp.der \
- certs/server-ecc.der \
- certs/server-ecc-self.der \
- certs/server-ecc-rsa.der \
- certs/server-cert-chain.der \
- certs/client-cert-ext.der
-
-# ECC CA prime256v1
-EXTRA_DIST += \
- certs/ca-ecc-cert.der \
- certs/ca-ecc-cert.pem \
- certs/ca-ecc-key.der \
- certs/ca-ecc-key.pem
-
-# ECC CA SECP384R1
-EXTRA_DIST += \
- certs/ca-ecc384-cert.der \
- certs/ca-ecc384-cert.pem \
- certs/ca-ecc384-key.der \
- certs/ca-ecc384-key.pem
-
-dist_doc_DATA+= certs/taoCert.txt
-
-EXTRA_DIST+= certs/ntru-key.raw
-
-include certs/1024/include.am
-include certs/3072/include.am
-include certs/4096/include.am
-include certs/crl/include.am
-include certs/ecc/include.am
-include certs/ed25519/include.am
-include certs/ed448/include.am
-include certs/external/include.am
-include certs/ocsp/include.am
-include certs/test/include.am
-include certs/test-pathlen/include.am
-include certs/intermediate/include.am
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-cert.der
deleted file mode 100644
index d7c9a71d6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-cert.pem
deleted file mode 100644
index e2ccd52d7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-cert.pem
+++ /dev/null
@@ -1,83 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 4096 (0x1000)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Dec 21 17:54:00 2018 GMT
- Not After : Dec 16 17:54:00 2038 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Intermediate CA/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c3:a2:73:5d:21:62:20:ce:3a:71:38:a7:94:bb:
- db:87:04:1c:5a:1b:9e:4b:0d:3e:ca:f8:a5:f7:0d:
- 6a:dc:23:90:22:6a:2b:58:63:4a:28:6a:48:a8:e7:
- 73:1f:a2:55:d8:4d:02:3b:e2:cb:6b:e2:83:c9:51:
- 8f:77:fd:dc:2d:5d:23:b7:23:9a:7e:b6:29:68:e8:
- 2a:4e:a9:fe:32:70:31:9e:f0:ef:ee:f8:8d:e3:fc:
- f3:d7:28:dd:7a:1d:9e:ad:23:2b:f1:a6:7f:34:52:
- 29:66:d2:e5:64:55:64:d6:dd:4b:41:3b:55:83:6e:
- c0:11:0e:6e:20:c2:16:73:eb:30:ff:09:46:bb:e7:
- cc:c6:03:44:41:11:c6:c1:6c:36:2f:4a:f9:91:55:
- ca:58:5e:37:b8:28:10:30:89:40:96:77:cf:70:66:
- a4:55:fb:69:0b:e7:d9:b2:33:65:db:72:3a:77:b7:
- 2b:49:fc:b6:cd:58:10:8d:ab:aa:cb:40:45:77:02:
- 39:18:b3:8f:33:01:48:77:50:be:8e:73:a7:de:36:
- a0:49:8e:2c:16:af:b9:fb:42:2d:35:6a:db:34:37:
- d5:14:59:7d:65:72:e5:8b:65:55:4b:20:5e:47:f9:
- f8:3a:d3:6c:d9:3a:f5:c7:01:46:31:c3:79:9a:18:
- be:49
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- EF:69:E0:F7:D5:1D:E6:99:EC:DC:6D:D0:F7:E2:B9:5C:64:71:83:35
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
-
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:0
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 5e:cd:30:ce:13:06:a8:a3:25:6d:85:68:bf:88:3b:68:12:6a:
- 5e:5f:22:82:51:4a:fd:b1:ae:b2:c2:3e:a1:e4:73:97:6f:77:
- 1f:5e:0a:a6:3e:8a:20:93:4c:3f:68:64:69:a8:d7:ae:3e:a5:
- 58:e4:d0:45:e4:7a:5f:cc:68:23:3d:7b:df:8d:33:8d:ba:0b:
- 73:dd:97:41:99:1a:26:7f:17:87:c4:76:bb:3b:b5:15:24:b0:
- 82:4f:2e:0a:c3:fe:ab:75:c9:4d:59:74:1a:c7:33:e7:4f:14:
- 45:5b:f4:d3:c3:a9:9d:34:a8:e1:2a:33:ea:10:07:db:9e:33:
- 83:60:f0:dd:7c:27:0d:6b:92:ef:90:cc:35:b3:4e:e3:fa:ca:
- 87:55:31:e8:7b:8c:c2:35:19:41:6a:76:6c:6c:7a:d0:6a:d1:
- 2d:a8:a6:97:40:73:52:9c:3c:43:a7:4b:f1:b7:04:af:e0:d1:
- 32:3c:ac:df:a7:4a:15:fb:2e:56:d8:5c:4c:99:9d:3c:f0:6d:
- a0:20:25:96:c9:24:fc:84:4c:dc:de:1d:29:e8:d4:e1:ff:ca:
- 06:2f:39:ed:24:dc:79:f9:2a:18:00:ae:d2:8b:44:eb:2a:94:
- fb:c8:02:86:0d:7e:1f:65:c7:20:06:5e:ca:50:af:bd:71:cb:
- 06:da:12:ff
------BEGIN CERTIFICATE-----
-MIIEFzCCAv+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
-MRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhT
-YXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZz
-c2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MTIy
-MTE3NTQwMFoXDTM4MTIxNjE3NTQwMFowgZ8xCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NM
-MRQwEgYDVQQLDAtEZXZlbG9wbWVudDEgMB4GA1UEAwwXd29sZlNTTCBJbnRlcm1l
-ZGlhdGUgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDonNdIWIgzjpxOKeUu9uHBBxaG55L
-DT7K+KX3DWrcI5AiaitYY0ooakio53MfolXYTQI74str4oPJUY93/dwtXSO3I5p+
-tilo6CpOqf4ycDGe8O/u+I3j/PPXKN16HZ6tIyvxpn80Uilm0uVkVWTW3UtBO1WD
-bsARDm4gwhZz6zD/CUa758zGA0RBEcbBbDYvSvmRVcpYXje4KBAwiUCWd89wZqRV
-+2kL59myM2Xbcjp3tytJ/LbNWBCNq6rLQEV3AjkYs48zAUh3UL6Oc6feNqBJjiwW
-r7n7Qi01ats0N9UUWX1lcuWLZVVLIF5H+fg602zZOvXHAUYxw3maGL5JAgMBAAGj
-ZjBkMB0GA1UdDgQWBBTvaeD31R3mmezcbdD34rlcZHGDNTAfBgNVHSMEGDAWgBQn
-jmcRdMMmHT/tM2OzpNgdMOXo1TASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB
-/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAXs0wzhMGqKMlbYVov4g7aBJqXl8i
-glFK/bGussI+oeRzl293H14Kpj6KIJNMP2hkaajXrj6lWOTQReR6X8xoIz17340z
-jboLc92XQZkaJn8Xh8R2uzu1FSSwgk8uCsP+q3XJTVl0Gscz508URVv008OpnTSo
-4Soz6hAH254zg2Dw3XwnDWuS75DMNbNO4/rKh1Ux6HuMwjUZQWp2bGx60GrRLaim
-l0BzUpw8Q6dL8bcEr+DRMjys36dKFfsuVthcTJmdPPBtoCAllskk/IRM3N4dKejU
-4f/KBi857STcefkqGACu0otE6yqU+8gChg1+H2XHIAZeylCvvXHLBtoS/w==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-cert.der
deleted file mode 100644
index 171c86b1d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-cert.pem
deleted file mode 100644
index 885ebf484..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-cert.pem
+++ /dev/null
@@ -1,52 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 4099 (0x1003)
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Dec 21 17:54:01 2018 GMT
- Not After : Dec 16 17:54:01 2038 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Intermediate CA ECC/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (256 bit)
- pub:
- 04:95:df:1c:b2:9e:20:a9:1d:a2:5b:ab:5c:9b:a8:
- 66:06:29:e6:b2:d8:e3:14:a6:c3:c1:b4:ad:4d:44:
- 18:20:1e:5d:67:fd:15:1d:6d:25:e1:17:b1:71:ca:
- 85:03:f0:d2:af:41:66:46:36:6d:ea:41:cb:4f:c8:
- 4a:d0:a0:61:8c
- ASN1 OID: prime256v1
- NIST CURVE: P-256
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 97:1D:60:C3:87:22:59:9B:60:1F:84:B4:99:1C:88:4D:BF:DA:1E:6E
- X509v3 Authority Key Identifier:
- keyid:56:8E:9A:C3:F0:42:DE:18:B9:45:55:6E:F9:93:CF:EA:C3:F3:A5:21
-
- X509v3 Basic Constraints: critical
- CA:TRUE, pathlen:0
- X509v3 Key Usage: critical
- Digital Signature, Certificate Sign, CRL Sign
- Signature Algorithm: ecdsa-with-SHA256
- 30:44:02:20:20:8d:bd:bc:08:8a:52:20:ab:bc:f0:94:0c:3c:
- 38:9c:9e:c0:18:53:94:94:7f:57:3d:15:8e:75:5f:8c:82:79:
- 02:20:40:3e:0f:27:9a:e8:ba:9b:f4:99:cf:71:36:68:d1:ed:
- 31:54:37:e8:2e:37:d0:9e:49:a9:27:79:c1:03:34:50
------BEGIN CERTIFICATE-----
-MIICkTCCAjigAwIBAgICEAMwCgYIKoZIzj0EAwIwgZcxCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3
-b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEYMBYGA1UEAwwPd3d3LndvbGZz
-c2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MTIy
-MTE3NTQwMVoXDTM4MTIxNjE3NTQwMVowgaMxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NM
-MRQwEgYDVQQLDAtEZXZlbG9wbWVudDEkMCIGA1UEAwwbd29sZlNTTCBJbnRlcm1l
-ZGlhdGUgQ0EgRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMFkw
-EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEld8csp4gqR2iW6tcm6hmBinmstjjFKbD
-wbStTUQYIB5dZ/0VHW0l4RexccqFA/DSr0FmRjZt6kHLT8hK0KBhjKNmMGQwHQYD
-VR0OBBYEFJcdYMOHIlmbYB+EtJkciE2/2h5uMB8GA1UdIwQYMBaAFFaOmsPwQt4Y
-uUVVbvmTz+rD86UhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGG
-MAoGCCqGSM49BAMCA0cAMEQCICCNvbwIilIgq7zwlAw8OJyewBhTlJR/Vz0VjnVf
-jIJ5AiBAPg8nmui6m/SZz3E2aNHtMVQ36C430J5JqSd5wQM0UA==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-key.der
deleted file mode 100644
index 7917cfccf..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-key.pem
deleted file mode 100644
index 47215bd06..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-ecc-key.pem
+++ /dev/null
@@ -1,5 +0,0 @@
------BEGIN EC PRIVATE KEY-----
-MHcCAQEEIDOGXhoaF5CDp/zS7ulq2RPH/WnHFq2fZ0T+vCWd0+LXoAoGCCqGSM49
-AwEHoUQDQgAEld8csp4gqR2iW6tcm6hmBinmstjjFKbDwbStTUQYIB5dZ/0VHW0l
-4RexccqFA/DSr0FmRjZt6kHLT8hK0KBhjA==
------END EC PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-key.der
deleted file mode 100644
index be3ed6b87..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-key.pem
deleted file mode 100644
index 0b050b6b8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/ca-int-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpgIBAAKCAQEAw6JzXSFiIM46cTinlLvbhwQcWhueSw0+yvil9w1q3COQImor
-WGNKKGpIqOdzH6JV2E0CO+LLa+KDyVGPd/3cLV0jtyOafrYpaOgqTqn+MnAxnvDv
-7viN4/zz1yjdeh2erSMr8aZ/NFIpZtLlZFVk1t1LQTtVg27AEQ5uIMIWc+sw/wlG
-u+fMxgNEQRHGwWw2L0r5kVXKWF43uCgQMIlAlnfPcGakVftpC+fZsjNl23I6d7cr
-Sfy2zVgQjauqy0BFdwI5GLOPMwFId1C+jnOn3jagSY4sFq+5+0ItNWrbNDfVFFl9
-ZXLli2VVSyBeR/n4OtNs2Tr1xwFGMcN5mhi+SQIDAQABAoIBAQCwoB1pyrcOiULI
-b+8U4Jpthq+WRvMeLYIwvFcS+uEsiUsbVyF1NoeAf5zEKdqNiAHbPIO0z6j66VI0
-U1elbOP5bOrO8O0OU6aFWX7A8MdYgGS8bCkjZvKsEPeRnQqAsvdMt8F39etIsJlC
-hUunz1UwjDDiXxBwjnAHtjCFkNW2pt6LscUgqSPr/dYIM6H5ZdSINvUYd9v6xvYz
-KQhOZSyikO2sqs/d+tTl1/Onca3HWxynhT4HCe47RQnxaCk+6qa25nrXCIHS+cNh
-Ro79iBqkSsG43nYtZ14ZRsPh4jeie0myP1CzYL94fTNuc9wRXJ/dOIjZu3uCHDxt
-opSopKSBAoGBAPH4m7hf4DbFtBQCXq3sQw2FqQB4WeEiOSGoZLhivAcarc6gUNZ0
-7/eVUJJJ+pW3UlDtZ5aF1yewBXTNackI/pNvHQziSf/hzRzDdsk4ei3cMnctshMk
-XM6oHxw1MyR9g3YhYcAvzmDlevwYj/k2ABhnUva2yM3gD77ao0hjwIyZAoGBAM76
-Gr3ZwT3hh/CzO8GDZuzwLPahLTcBUmCEb+yfr9ELjPH++p4xOw7QZybxaHKlzla0
-wDZ+L5mSL+HciRYIR1JUH+K6PxGqp0ufu6dclLAcNBCEotAtoWSLW3Z7h4LX7/x4
-IafDkxHWMWQxYJaLN5REbJArurY0lu1z5uBqpJ0xAoGBALI2NBpbIru0aKjEBg96
-jvgKlSoveaMCnalYaLYUof9petFP6bnJbmOeqTTVH6Xc2teXwk9uS8SDM8GO+HaE
-FVto3rB6iZ3YJEUnAPm6iuHz54c3NIw8n83krOUNmZkqiAQdGe1+SDW9ThMV1BPr
-3a4bi1MB1GsstuwOA2xxa4MhAoGBAIoPNDU9AfRH8shwlcRv5QDY9/UO770ICa3N
-yWaZ4cncHYjyHrPUfONVyeilEJmg1bDqYmg25YNXis7qrxpeLUzSRm6S8yzSm0ML
-aj2puJh8R5JZFs0sEsKhXkH7BhoV9cN/Ulu4TeqQ6GM/uIDSniEtPwkv0hxlmeML
-843wNJuRAoGBAKloBRB17AOMxVrB51GLWmVDOvbb398bL5WDHnM+j5QjEdL25rVx
-9jDsw9ysikfkjTvs9UfQ6XUIjwurR40hhWoB5KGKvXU3rO/8ds3Gu1EbGmk0h9dS
-seC5knwR/3QrRKHerNP5hzDIeRYaPOnko4Zhoo+28UFAHZcItQGF3lF/
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-alt-ecc.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-alt-ecc.pem
deleted file mode 100644
index 58bb755f0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-alt-ecc.pem
+++ /dev/null
@@ -1,55 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICxjCCAmygAwIBAgICEAUwCgYIKoZIzj0EAwIwgaMxCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3
-b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEkMCIGA1UEAwwbd29sZlNTTCBJ
-bnRlcm1lZGlhdGUgQ0EgRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE4MTIyMTE3NTQwMVoXDTI4MTIxODE3NTQwMVowgaAxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYD
-VQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEhMB8GA1UEAwwYd29s
-ZlNTTCBDbGllbnQgQ2hhaW4gRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVb/0D0RQmj3Om7fwxU31
-cHvU7CSOGYDsWkyiJANiLJva76I1EkOEdhbGVpUGzAGpvfZ1GkL3vamyNiJfx11/
-tKOBkDCBjTAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIFoDAdBgNVHQ4EFgQU
-69RLWWuVYT9RV7YETYlBiERcq/IwHwYDVR0jBBgwFoAUlx1gw4ciWZtgH4S0mRyI
-Tb/aHm4wDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
-BQcDBDAKBggqhkjOPQQDAgNIADBFAiBe6My62YzVR/EAn/a2IjlFpCektOZbCnJ0
-wFB0KiilZQIhAKofLu9dYlzn5JMB77wMijSohui3fABOA7QX43L+ZYHf
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICkTCCAjigAwIBAgICEAMwCgYIKoZIzj0EAwIwgZcxCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3
-b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEYMBYGA1UEAwwPd3d3LndvbGZz
-c2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MTIy
-MTE3NTQwMVoXDTM4MTIxNjE3NTQwMVowgaMxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NM
-MRQwEgYDVQQLDAtEZXZlbG9wbWVudDEkMCIGA1UEAwwbd29sZlNTTCBJbnRlcm1l
-ZGlhdGUgQ0EgRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMFkw
-EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEld8csp4gqR2iW6tcm6hmBinmstjjFKbD
-wbStTUQYIB5dZ/0VHW0l4RexccqFA/DSr0FmRjZt6kHLT8hK0KBhjKNmMGQwHQYD
-VR0OBBYEFJcdYMOHIlmbYB+EtJkciE2/2h5uMB8GA1UdIwQYMBaAFFaOmsPwQt4Y
-uUVVbvmTz+rD86UhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGG
-MAoGCCqGSM49BAMCA0cAMEQCICCNvbwIilIgq7zwlAw8OJyewBhTlJR/Vz0VjnVf
-jIJ5AiBAPg8nmui6m/SZz3E2aNHtMVQ36C430J5JqSd5wQM0UA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
-MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
-v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
-eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
-tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
-C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
-zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
-mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
-V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
-bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
-3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
-J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
-291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
-ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
-AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-alt.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-alt.pem
deleted file mode 100644
index 6ace19174..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-alt.pem
+++ /dev/null
@@ -1,71 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIESjCCAzKgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwgZ8xCzAJBgNVBAYTAlVT
-MRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQK
-DAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEgMB4GA1UEAwwXd29sZlNT
-TCBJbnRlcm1lZGlhdGUgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wHhcNMTgxMjIxMTc1NDAwWhcNMjgxMjE4MTc1NDAwWjCBnDELMAkGA1UEBhMC
-VVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNV
-BAoMB3dvbGZTU0wxFDASBgNVBAsMC0RldmVsb3BtZW50MR0wGwYDVQQDDBR3b2xm
-U1NMIENsaWVudCBDaGFpbjEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNv
-bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMMD0Sv+OaQyRTtTyIQr
-Knx0mr2qKlIHR9amNrIHMo7Quml7xsNEntSBSP0taKKLZ7uhdcg2LErSG/eLus8N
-+e/s8YEee5sDR5q/Zcx/ZSRppugUiVvkNPfFsBST9Wd7Onp44QFWVpGmE0KN0jxA
-nEzv0YbfN1EbDKE79fGjSjXk4c6W3xt+v06X0BDoqAgwga8gC0MUxXRntDKCb42G
-wohAmTaDuh5AciIX11JlJHOwzu8Zza7/eGx7wBID1E5yDVBtO6M7o5lencjZDIWz
-2YrZVCbbbfqsu/8lTMTRefRx04ZAGBOwY7VyTjDEl4SGLVYv1xX3f8Cu9fxb5fuh
-utMCAwEAAaOBkDCBjTAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIFoDAdBgNV
-HQ4EFgQUM9hFZtdohxh+VA1wJ5HHJteFZcAwHwYDVR0jBBgwFoAU72ng99Ud5pns
-3G3Q9+K5XGRxgzUwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMC
-BggrBgEFBQcDBDANBgkqhkiG9w0BAQsFAAOCAQEAiIEheKwEinl+zaW6O/5SYeic
-XSiRymhyMZnVFXiZ0QP/thNZI0iekpTMkQGT3Bk2aNdIU6uZ2CP8KJhD8+uf4i/E
-TLMcSDWSbVNGXcEgIQdxJaE3iRqb7PXj0RWg/hAuzWfVPW7WufU4jToSyS754anI
-b9YEBWbfPDpp16prXnEN41M4PYdKHseIeByHWiG9D4b0fIa9UX2cy/KypkF6+LsI
-EWdqMZ9I9tEHojaHg3NoO8kRXquj0GGa341SuYp50vNdsD0Vae6jtcK+tD8RsAbT
-uLQyRZX/dkjrYwsdeQ9VldZ8htRhIPkPooKkH7EQU9joyCezvZh7CsRbgtBszw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEFzCCAv+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
-MRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhT
-YXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZz
-c2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MTIy
-MTE3NTQwMFoXDTM4MTIxNjE3NTQwMFowgZ8xCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NM
-MRQwEgYDVQQLDAtEZXZlbG9wbWVudDEgMB4GA1UEAwwXd29sZlNTTCBJbnRlcm1l
-ZGlhdGUgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDonNdIWIgzjpxOKeUu9uHBBxaG55L
-DT7K+KX3DWrcI5AiaitYY0ooakio53MfolXYTQI74str4oPJUY93/dwtXSO3I5p+
-tilo6CpOqf4ycDGe8O/u+I3j/PPXKN16HZ6tIyvxpn80Uilm0uVkVWTW3UtBO1WD
-bsARDm4gwhZz6zD/CUa758zGA0RBEcbBbDYvSvmRVcpYXje4KBAwiUCWd89wZqRV
-+2kL59myM2Xbcjp3tytJ/LbNWBCNq6rLQEV3AjkYs48zAUh3UL6Oc6feNqBJjiwW
-r7n7Qi01ats0N9UUWX1lcuWLZVVLIF5H+fg602zZOvXHAUYxw3maGL5JAgMBAAGj
-ZjBkMB0GA1UdDgQWBBTvaeD31R3mmezcbdD34rlcZHGDNTAfBgNVHSMEGDAWgBQn
-jmcRdMMmHT/tM2OzpNgdMOXo1TASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB
-/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAXs0wzhMGqKMlbYVov4g7aBJqXl8i
-glFK/bGussI+oeRzl293H14Kpj6KIJNMP2hkaajXrj6lWOTQReR6X8xoIz17340z
-jboLc92XQZkaJn8Xh8R2uzu1FSSwgk8uCsP+q3XJTVl0Gscz508URVv008OpnTSo
-4Soz6hAH254zg2Dw3XwnDWuS75DMNbNO4/rKh1Ux6HuMwjUZQWp2bGx60GrRLaim
-l0BzUpw8Q6dL8bcEr+DRMjys36dKFfsuVthcTJmdPPBtoCAllskk/IRM3N4dKejU
-4f/KBi857STcefkqGACu0otE6yqU+8gChg1+H2XHIAZeylCvvXHLBtoS/w==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
-MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
-v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
-eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
-tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
-C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
-zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
-mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
-V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
-bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
-3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
-J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
-291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
-ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
-AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-ecc.der b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-ecc.der
deleted file mode 100644
index b067fe290..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-ecc.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-ecc.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-ecc.pem
deleted file mode 100644
index 5138cf271..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain-ecc.pem
+++ /dev/null
@@ -1,33 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICxjCCAmygAwIBAgICEAUwCgYIKoZIzj0EAwIwgaMxCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3
-b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEkMCIGA1UEAwwbd29sZlNTTCBJ
-bnRlcm1lZGlhdGUgQ0EgRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE4MTIyMTE3NTQwMVoXDTI4MTIxODE3NTQwMVowgaAxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYD
-VQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEhMB8GA1UEAwwYd29s
-ZlNTTCBDbGllbnQgQ2hhaW4gRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVb/0D0RQmj3Om7fwxU31
-cHvU7CSOGYDsWkyiJANiLJva76I1EkOEdhbGVpUGzAGpvfZ1GkL3vamyNiJfx11/
-tKOBkDCBjTAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIFoDAdBgNVHQ4EFgQU
-69RLWWuVYT9RV7YETYlBiERcq/IwHwYDVR0jBBgwFoAUlx1gw4ciWZtgH4S0mRyI
-Tb/aHm4wDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
-BQcDBDAKBggqhkjOPQQDAgNIADBFAiBe6My62YzVR/EAn/a2IjlFpCektOZbCnJ0
-wFB0KiilZQIhAKofLu9dYlzn5JMB77wMijSohui3fABOA7QX43L+ZYHf
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICkTCCAjigAwIBAgICEAMwCgYIKoZIzj0EAwIwgZcxCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3
-b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEYMBYGA1UEAwwPd3d3LndvbGZz
-c2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MTIy
-MTE3NTQwMVoXDTM4MTIxNjE3NTQwMVowgaMxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NM
-MRQwEgYDVQQLDAtEZXZlbG9wbWVudDEkMCIGA1UEAwwbd29sZlNTTCBJbnRlcm1l
-ZGlhdGUgQ0EgRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMFkw
-EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEld8csp4gqR2iW6tcm6hmBinmstjjFKbD
-wbStTUQYIB5dZ/0VHW0l4RexccqFA/DSr0FmRjZt6kHLT8hK0KBhjKNmMGQwHQYD
-VR0OBBYEFJcdYMOHIlmbYB+EtJkciE2/2h5uMB8GA1UdIwQYMBaAFFaOmsPwQt4Y
-uUVVbvmTz+rD86UhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGG
-MAoGCCqGSM49BAMCA0cAMEQCICCNvbwIilIgq7zwlAw8OJyewBhTlJR/Vz0VjnVf
-jIJ5AiBAPg8nmui6m/SZz3E2aNHtMVQ36C430J5JqSd5wQM0UA==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain.der b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain.der
deleted file mode 100644
index 0097d2b2c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain.pem
deleted file mode 100644
index 9404a453e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-chain.pem
+++ /dev/null
@@ -1,49 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIESjCCAzKgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwgZ8xCzAJBgNVBAYTAlVT
-MRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQK
-DAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEgMB4GA1UEAwwXd29sZlNT
-TCBJbnRlcm1lZGlhdGUgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wHhcNMTgxMjIxMTc1NDAwWhcNMjgxMjE4MTc1NDAwWjCBnDELMAkGA1UEBhMC
-VVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNV
-BAoMB3dvbGZTU0wxFDASBgNVBAsMC0RldmVsb3BtZW50MR0wGwYDVQQDDBR3b2xm
-U1NMIENsaWVudCBDaGFpbjEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNv
-bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMMD0Sv+OaQyRTtTyIQr
-Knx0mr2qKlIHR9amNrIHMo7Quml7xsNEntSBSP0taKKLZ7uhdcg2LErSG/eLus8N
-+e/s8YEee5sDR5q/Zcx/ZSRppugUiVvkNPfFsBST9Wd7Onp44QFWVpGmE0KN0jxA
-nEzv0YbfN1EbDKE79fGjSjXk4c6W3xt+v06X0BDoqAgwga8gC0MUxXRntDKCb42G
-wohAmTaDuh5AciIX11JlJHOwzu8Zza7/eGx7wBID1E5yDVBtO6M7o5lencjZDIWz
-2YrZVCbbbfqsu/8lTMTRefRx04ZAGBOwY7VyTjDEl4SGLVYv1xX3f8Cu9fxb5fuh
-utMCAwEAAaOBkDCBjTAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIFoDAdBgNV
-HQ4EFgQUM9hFZtdohxh+VA1wJ5HHJteFZcAwHwYDVR0jBBgwFoAU72ng99Ud5pns
-3G3Q9+K5XGRxgzUwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMC
-BggrBgEFBQcDBDANBgkqhkiG9w0BAQsFAAOCAQEAiIEheKwEinl+zaW6O/5SYeic
-XSiRymhyMZnVFXiZ0QP/thNZI0iekpTMkQGT3Bk2aNdIU6uZ2CP8KJhD8+uf4i/E
-TLMcSDWSbVNGXcEgIQdxJaE3iRqb7PXj0RWg/hAuzWfVPW7WufU4jToSyS754anI
-b9YEBWbfPDpp16prXnEN41M4PYdKHseIeByHWiG9D4b0fIa9UX2cy/KypkF6+LsI
-EWdqMZ9I9tEHojaHg3NoO8kRXquj0GGa341SuYp50vNdsD0Vae6jtcK+tD8RsAbT
-uLQyRZX/dkjrYwsdeQ9VldZ8htRhIPkPooKkH7EQU9joyCezvZh7CsRbgtBszw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEFzCCAv+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
-MRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhT
-YXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZz
-c2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MTIy
-MTE3NTQwMFoXDTM4MTIxNjE3NTQwMFowgZ8xCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NM
-MRQwEgYDVQQLDAtEZXZlbG9wbWVudDEgMB4GA1UEAwwXd29sZlNTTCBJbnRlcm1l
-ZGlhdGUgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDonNdIWIgzjpxOKeUu9uHBBxaG55L
-DT7K+KX3DWrcI5AiaitYY0ooakio53MfolXYTQI74str4oPJUY93/dwtXSO3I5p+
-tilo6CpOqf4ycDGe8O/u+I3j/PPXKN16HZ6tIyvxpn80Uilm0uVkVWTW3UtBO1WD
-bsARDm4gwhZz6zD/CUa758zGA0RBEcbBbDYvSvmRVcpYXje4KBAwiUCWd89wZqRV
-+2kL59myM2Xbcjp3tytJ/LbNWBCNq6rLQEV3AjkYs48zAUh3UL6Oc6feNqBJjiwW
-r7n7Qi01ats0N9UUWX1lcuWLZVVLIF5H+fg602zZOvXHAUYxw3maGL5JAgMBAAGj
-ZjBkMB0GA1UdDgQWBBTvaeD31R3mmezcbdD34rlcZHGDNTAfBgNVHSMEGDAWgBQn
-jmcRdMMmHT/tM2OzpNgdMOXo1TASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB
-/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAXs0wzhMGqKMlbYVov4g7aBJqXl8i
-glFK/bGussI+oeRzl293H14Kpj6KIJNMP2hkaajXrj6lWOTQReR6X8xoIz17340z
-jboLc92XQZkaJn8Xh8R2uzu1FSSwgk8uCsP+q3XJTVl0Gscz508URVv008OpnTSo
-4Soz6hAH254zg2Dw3XwnDWuS75DMNbNO4/rKh1Ux6HuMwjUZQWp2bGx60GrRLaim
-l0BzUpw8Q6dL8bcEr+DRMjys36dKFfsuVthcTJmdPPBtoCAllskk/IRM3N4dKejU
-4f/KBi857STcefkqGACu0otE6yqU+8gChg1+H2XHIAZeylCvvXHLBtoS/w==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-cert.der
deleted file mode 100644
index e61086695..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-cert.pem
deleted file mode 100644
index 105ba85bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-cert.pem
+++ /dev/null
@@ -1,88 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 4098 (0x1002)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Intermediate CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Dec 21 17:54:00 2018 GMT
- Not After : Dec 18 17:54:00 2028 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Client Chain/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c3:03:d1:2b:fe:39:a4:32:45:3b:53:c8:84:2b:
- 2a:7c:74:9a:bd:aa:2a:52:07:47:d6:a6:36:b2:07:
- 32:8e:d0:ba:69:7b:c6:c3:44:9e:d4:81:48:fd:2d:
- 68:a2:8b:67:bb:a1:75:c8:36:2c:4a:d2:1b:f7:8b:
- ba:cf:0d:f9:ef:ec:f1:81:1e:7b:9b:03:47:9a:bf:
- 65:cc:7f:65:24:69:a6:e8:14:89:5b:e4:34:f7:c5:
- b0:14:93:f5:67:7b:3a:7a:78:e1:01:56:56:91:a6:
- 13:42:8d:d2:3c:40:9c:4c:ef:d1:86:df:37:51:1b:
- 0c:a1:3b:f5:f1:a3:4a:35:e4:e1:ce:96:df:1b:7e:
- bf:4e:97:d0:10:e8:a8:08:30:81:af:20:0b:43:14:
- c5:74:67:b4:32:82:6f:8d:86:c2:88:40:99:36:83:
- ba:1e:40:72:22:17:d7:52:65:24:73:b0:ce:ef:19:
- cd:ae:ff:78:6c:7b:c0:12:03:d4:4e:72:0d:50:6d:
- 3b:a3:3b:a3:99:5e:9d:c8:d9:0c:85:b3:d9:8a:d9:
- 54:26:db:6d:fa:ac:bb:ff:25:4c:c4:d1:79:f4:71:
- d3:86:40:18:13:b0:63:b5:72:4e:30:c4:97:84:86:
- 2d:56:2f:d7:15:f7:7f:c0:ae:f5:fc:5b:e5:fb:a1:
- ba:d3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- Netscape Cert Type:
- SSL Client, S/MIME
- X509v3 Subject Key Identifier:
- 33:D8:45:66:D7:68:87:18:7E:54:0D:70:27:91:C7:26:D7:85:65:C0
- X509v3 Authority Key Identifier:
- keyid:EF:69:E0:F7:D5:1D:E6:99:EC:DC:6D:D0:F7:E2:B9:5C:64:71:83:35
-
- X509v3 Key Usage: critical
- Digital Signature, Non Repudiation, Key Encipherment
- X509v3 Extended Key Usage:
- TLS Web Client Authentication, E-mail Protection
- Signature Algorithm: sha256WithRSAEncryption
- 88:81:21:78:ac:04:8a:79:7e:cd:a5:ba:3b:fe:52:61:e8:9c:
- 5d:28:91:ca:68:72:31:99:d5:15:78:99:d1:03:ff:b6:13:59:
- 23:48:9e:92:94:cc:91:01:93:dc:19:36:68:d7:48:53:ab:99:
- d8:23:fc:28:98:43:f3:eb:9f:e2:2f:c4:4c:b3:1c:48:35:92:
- 6d:53:46:5d:c1:20:21:07:71:25:a1:37:89:1a:9b:ec:f5:e3:
- d1:15:a0:fe:10:2e:cd:67:d5:3d:6e:d6:b9:f5:38:8d:3a:12:
- c9:2e:f9:e1:a9:c8:6f:d6:04:05:66:df:3c:3a:69:d7:aa:6b:
- 5e:71:0d:e3:53:38:3d:87:4a:1e:c7:88:78:1c:87:5a:21:bd:
- 0f:86:f4:7c:86:bd:51:7d:9c:cb:f2:b2:a6:41:7a:f8:bb:08:
- 11:67:6a:31:9f:48:f6:d1:07:a2:36:87:83:73:68:3b:c9:11:
- 5e:ab:a3:d0:61:9a:df:8d:52:b9:8a:79:d2:f3:5d:b0:3d:15:
- 69:ee:a3:b5:c2:be:b4:3f:11:b0:06:d3:b8:b4:32:45:95:ff:
- 76:48:eb:63:0b:1d:79:0f:55:95:d6:7c:86:d4:61:20:f9:0f:
- a2:82:a4:1f:b1:10:53:d8:e8:c8:27:b3:bd:98:7b:0a:c4:5b:
- 82:d0:6c:cf
------BEGIN CERTIFICATE-----
-MIIESjCCAzKgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwgZ8xCzAJBgNVBAYTAlVT
-MRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQK
-DAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEgMB4GA1UEAwwXd29sZlNT
-TCBJbnRlcm1lZGlhdGUgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wHhcNMTgxMjIxMTc1NDAwWhcNMjgxMjE4MTc1NDAwWjCBnDELMAkGA1UEBhMC
-VVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNV
-BAoMB3dvbGZTU0wxFDASBgNVBAsMC0RldmVsb3BtZW50MR0wGwYDVQQDDBR3b2xm
-U1NMIENsaWVudCBDaGFpbjEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNv
-bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMMD0Sv+OaQyRTtTyIQr
-Knx0mr2qKlIHR9amNrIHMo7Quml7xsNEntSBSP0taKKLZ7uhdcg2LErSG/eLus8N
-+e/s8YEee5sDR5q/Zcx/ZSRppugUiVvkNPfFsBST9Wd7Onp44QFWVpGmE0KN0jxA
-nEzv0YbfN1EbDKE79fGjSjXk4c6W3xt+v06X0BDoqAgwga8gC0MUxXRntDKCb42G
-wohAmTaDuh5AciIX11JlJHOwzu8Zza7/eGx7wBID1E5yDVBtO6M7o5lencjZDIWz
-2YrZVCbbbfqsu/8lTMTRefRx04ZAGBOwY7VyTjDEl4SGLVYv1xX3f8Cu9fxb5fuh
-utMCAwEAAaOBkDCBjTAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIFoDAdBgNV
-HQ4EFgQUM9hFZtdohxh+VA1wJ5HHJteFZcAwHwYDVR0jBBgwFoAU72ng99Ud5pns
-3G3Q9+K5XGRxgzUwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMC
-BggrBgEFBQcDBDANBgkqhkiG9w0BAQsFAAOCAQEAiIEheKwEinl+zaW6O/5SYeic
-XSiRymhyMZnVFXiZ0QP/thNZI0iekpTMkQGT3Bk2aNdIU6uZ2CP8KJhD8+uf4i/E
-TLMcSDWSbVNGXcEgIQdxJaE3iRqb7PXj0RWg/hAuzWfVPW7WufU4jToSyS754anI
-b9YEBWbfPDpp16prXnEN41M4PYdKHseIeByHWiG9D4b0fIa9UX2cy/KypkF6+LsI
-EWdqMZ9I9tEHojaHg3NoO8kRXquj0GGa341SuYp50vNdsD0Vae6jtcK+tD8RsAbT
-uLQyRZX/dkjrYwsdeQ9VldZ8htRhIPkPooKkH7EQU9joyCezvZh7CsRbgtBszw==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-ecc-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-ecc-cert.der
deleted file mode 100644
index 6b806bbc5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-ecc-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-ecc-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-ecc-cert.pem
deleted file mode 100644
index 4b9fbddd2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/client-int-ecc-cert.pem
+++ /dev/null
@@ -1,57 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 4101 (0x1005)
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Intermediate CA ECC/emailAddress=info@wolfssl.com
- Validity
- Not Before: Dec 21 17:54:01 2018 GMT
- Not After : Dec 18 17:54:01 2028 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Client Chain ECC/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (256 bit)
- pub:
- 04:55:bf:f4:0f:44:50:9a:3d:ce:9b:b7:f0:c5:4d:
- f5:70:7b:d4:ec:24:8e:19:80:ec:5a:4c:a2:24:03:
- 62:2c:9b:da:ef:a2:35:12:43:84:76:16:c6:56:95:
- 06:cc:01:a9:bd:f6:75:1a:42:f7:bd:a9:b2:36:22:
- 5f:c7:5d:7f:b4
- ASN1 OID: prime256v1
- NIST CURVE: P-256
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- Netscape Cert Type:
- SSL Client, S/MIME
- X509v3 Subject Key Identifier:
- EB:D4:4B:59:6B:95:61:3F:51:57:B6:04:4D:89:41:88:44:5C:AB:F2
- X509v3 Authority Key Identifier:
- keyid:97:1D:60:C3:87:22:59:9B:60:1F:84:B4:99:1C:88:4D:BF:DA:1E:6E
-
- X509v3 Key Usage: critical
- Digital Signature, Non Repudiation, Key Encipherment
- X509v3 Extended Key Usage:
- TLS Web Client Authentication, E-mail Protection
- Signature Algorithm: ecdsa-with-SHA256
- 30:45:02:20:5e:e8:cc:ba:d9:8c:d5:47:f1:00:9f:f6:b6:22:
- 39:45:a4:27:a4:b4:e6:5b:0a:72:74:c0:50:74:2a:28:a5:65:
- 02:21:00:aa:1f:2e:ef:5d:62:5c:e7:e4:93:01:ef:bc:0c:8a:
- 34:a8:86:e8:b7:7c:00:4e:03:b4:17:e3:72:fe:65:81:df
------BEGIN CERTIFICATE-----
-MIICxjCCAmygAwIBAgICEAUwCgYIKoZIzj0EAwIwgaMxCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3
-b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEkMCIGA1UEAwwbd29sZlNTTCBJ
-bnRlcm1lZGlhdGUgQ0EgRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE4MTIyMTE3NTQwMVoXDTI4MTIxODE3NTQwMVowgaAxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYD
-VQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEhMB8GA1UEAwwYd29s
-ZlNTTCBDbGllbnQgQ2hhaW4gRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVb/0D0RQmj3Om7fwxU31
-cHvU7CSOGYDsWkyiJANiLJva76I1EkOEdhbGVpUGzAGpvfZ1GkL3vamyNiJfx11/
-tKOBkDCBjTAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIFoDAdBgNVHQ4EFgQU
-69RLWWuVYT9RV7YETYlBiERcq/IwHwYDVR0jBBgwFoAUlx1gw4ciWZtgH4S0mRyI
-Tb/aHm4wDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
-BQcDBDAKBggqhkjOPQQDAgNIADBFAiBe6My62YzVR/EAn/a2IjlFpCektOZbCnJ0
-wFB0KiilZQIhAKofLu9dYlzn5JMB77wMijSohui3fABOA7QX43L+ZYHf
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/genintcerts.sh b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/genintcerts.sh
deleted file mode 100644
index 920b6f94d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/genintcerts.sh
+++ /dev/null
@@ -1,293 +0,0 @@
-#!/bin/sh
-
-# Script for generating RSA and ECC Intermediate CA and server/client certs based on it.
-
-# Result is chains that looks like:
-# RSA Server
-# ROOT: ./certs/ca-cert.pem
-# C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com)
-# INTERMEDIATE: ./certs/intermediate/ca-int-cert.pem
-# C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Intermediate CA/emailAddress=info@wolfssl.com
-# SERVER: ./certs/intermediate/server-int-cert.pem
-# C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Server Chain/emailAddress=info@wolfssl.com
-
-# RSA Client
-# ROOT: ./certs/ca-cert.pem
-# C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com)
-# INTERMEDIATE: ./certs/intermediate/ca-int-cert.pem
-# C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Intermediate CA/emailAddress=info@wolfssl.com
-# CLIENT: ./certs/intermediate/client-int-cert.pem
-# C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Client Chain/emailAddress=info@wolfssl.com
-
-# ECC Server
-# ROOT: ./certs/ca-ecc-cert.pem
-# C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
-# INTERMEDIATE: ./certs/intermediate/ca-int-ecc-cert.pem
-# C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Intermediate CA ECC/emailAddress=info@wolfssl.com
-# SERVER: ./certs/intermediate/server-int-ecc-cert.pem
-# C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Server Chain ECC/emailAddress=info@wolfssl.com
-
-# ECC Client
-# ROOT: ./certs/ca-ecc-cert.pem
-# C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
-# INTERMEDIATE: ./certs/intermediate/ca-int-ecc-cert.pem
-# C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Intermediate CA ECC/emailAddress=info@wolfssl.com
-# CLIENT: ./certs/intermediate/client-int-ecc-cert.pem
-# C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Client Chain ECC/emailAddress=info@wolfssl.com
-
-
-# Run from wolfssl-root as `./certs/intermediate/genintcerts.sh`
-# To cleanup temp files use `./certs/intermediate/genintcerts.sh clean`
-# To cleanup all files use `./certs/intermediate/genintcerts.sh cleanall`
-
-dir="."
-
-cleanup_files(){
- rm -f ./certs/intermediate/index.*
- rm -f ./certs/intermediate/*.old
- rm -f ./certs/intermediate/serial
- rm -f ./certs/intermediate/crlnumber
- rm -f ./certs/intermediate/*.cnf
- rm -rf ./certs/intermediate/new_certs
- exit 0
-}
-
-check_result() {
- if [ $1 -ne 0 ]; then
- echo "Step Failed, Abort"
- exit 1
- else
- echo "Step Succeeded!"
- fi
-}
-
-# Args: 1=CnfFile, 2=Key, 3=Cert
-create_ca_config() {
- echo "# Generated openssl conf" > "$1"
- echo "[ ca ]" >> "$1"
- echo "default_ca = CA_default" >> "$1"
- echo "" >> "$1"
- echo "[ CA_default ]" >> "$1"
- echo "certs = $dir/certs/intermediate" >> "$1"
- echo "new_certs_dir = $dir/certs/intermediate/new_certs">> "$1"
- echo "database = $dir/certs/intermediate/index.txt">> "$1"
- echo "serial = $dir/certs/intermediate/serial" >> "$1"
- echo "RANDFILE = $dir/private/.rand" >> "$1"
- echo "" >> "$1"
- echo "private_key = $dir/$2" >> "$1"
- echo "certificate = $dir/$3" >> "$1"
- echo "" >> "$1"
- echo "crlnumber = $dir/certs/intermediate/crlnumber">> "$1"
- echo "crl_extensions = crl_ext" >> "$1"
- echo "default_crl_days = 1000" >> "$1"
- echo "default_md = sha256" >> "$1"
- echo "" >> "$1"
- echo "name_opt = ca_default" >> "$1"
- echo "cert_opt = ca_default" >> "$1"
- echo "default_days = 3650" >> "$1"
- echo "preserve = no" >> "$1"
- echo "policy = policy_loose" >> "$1"
- echo "" >> "$1"
- echo "[ policy_strict ]" >> "$1"
- echo "countryName = match" >> "$1"
- echo "stateOrProvinceName = match" >> "$1"
- echo "organizationName = match" >> "$1"
- echo "organizationalUnitName = optional" >> "$1"
- echo "commonName = supplied" >> "$1"
- echo "emailAddress = optional" >> "$1"
- echo "" >> "$1"
- echo "[ policy_loose ]" >> "$1"
- echo "countryName = optional" >> "$1"
- echo "stateOrProvinceName = optional" >> "$1"
- echo "localityName = optional" >> "$1"
- echo "organizationName = optional" >> "$1"
- echo "organizationalUnitName = optional" >> "$1"
- echo "commonName = supplied" >> "$1"
- echo "emailAddress = optional" >> "$1"
- echo "" >> "$1"
- echo "[ req ]" >> "$1"
- echo "default_bits = 2048" >> "$1"
- echo "distinguished_name = req_distinguished_name" >> "$1"
- echo "string_mask = utf8only" >> "$1"
- echo "default_md = sha256" >> "$1"
- echo "x509_extensions = v3_ca" >> "$1"
- echo "" >> "$1"
- echo "[ req_distinguished_name ]" >> "$1"
- echo "countryName = US" >> "$1"
- echo "stateOrProvinceName = Washington" >> "$1"
- echo "localityName = Seattle" >> "$1"
- echo "organizationName = wolfSSL" >> "$1"
- echo "organizationalUnitName = Development" >> "$1"
- echo "commonName = www.wolfssl.com" >> "$1"
- echo "emailAddress = info@wolfssl.com" >> "$1"
- echo "" >> "$1"
- echo "[ v3_ca ]" >> "$1"
- echo "subjectKeyIdentifier = hash" >> "$1"
- echo "authorityKeyIdentifier = keyid:always,issuer" >> "$1"
- echo "basicConstraints = critical, CA:true" >> "$1"
- echo "keyUsage = critical, digitalSignature, cRLSign, keyCertSign">> "$1"
- echo "" >> "$1"
- echo "[ v3_intermediate_ca ]" >> "$1"
- echo "subjectKeyIdentifier = hash" >> "$1"
- echo "authorityKeyIdentifier = keyid:always,issuer" >> "$1"
- echo "basicConstraints = critical, CA:true, pathlen:0" >> "$1"
- echo "keyUsage = critical, digitalSignature, cRLSign, keyCertSign">> "$1"
- echo "" >> "$1"
- echo "[ usr_cert ]" >> "$1"
- echo "basicConstraints = CA:FALSE" >> "$1"
- echo "nsCertType = client, email" >> "$1"
- echo "subjectKeyIdentifier = hash" >> "$1"
- echo "authorityKeyIdentifier = keyid,issuer" >> "$1"
- echo "keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment">> "$1"
- echo "extendedKeyUsage = clientAuth, emailProtection" >> "$1"
- echo "" >> "$1"
- echo "[ server_cert ]" >> "$1"
- echo "basicConstraints = CA:FALSE" >> "$1"
- echo "nsCertType = server" >> "$1"
- echo "subjectKeyIdentifier = hash" >> "$1"
- echo "authorityKeyIdentifier = keyid,issuer:always" >> "$1"
- echo "keyUsage = critical, digitalSignature, keyEncipherment, keyAgreement">> "$1"
- echo "extendedKeyUsage = serverAuth" >> "$1"
- echo "" >> "$1"
- echo "[ crl_ext ]" >> "$1"
- echo "authorityKeyIdentifier=keyid:always" >> "$1"
-}
-
-# Args: 1=reqcnf, 2=signcnf, 3=keyfile, 4=certfile, 5=ext, 6=subj, 7=days
-create_cert() {
- openssl req -config ./certs/intermediate/$1.cnf -new -sha256 \
- -key $3 \
- -out ./certs/intermediate/tmp.csr \
- -subj "/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Development/CN=$6/emailAddress=info@wolfssl.com"
- check_result $?
- openssl ca -config ./certs/intermediate/$2.cnf -extensions $5 -days $7 -notext -md sha256 \
- -in ./certs/intermediate/tmp.csr -out ./certs/intermediate/$4.pem -batch
- check_result $?
- rm ./certs/intermediate/tmp.csr
-
- # Convert Cert to DER
- openssl x509 -in ./certs/intermediate/$4.pem -inform PEM -out ./certs/intermediate/$4.der -outform DER
- check_result $?
-
- # Add text to cert PEM file
- openssl x509 -in ./certs/intermediate/$4.pem -text > ./certs/intermediate/tmp.pem
- check_result $?
- mv ./certs/intermediate/tmp.pem ./certs/intermediate/$4.pem
-}
-
-if [ "$1" == "clean" ]; then
- echo "Cleaning temp files"
- cleanup_files
-fi
-if [ "$1" == "cleanall" ]; then
- echo "Cleaning all files"
- rm -f ./certs/intermediate/*.pem
- rm -f ./certs/intermediate/*.der
- rm -f ./certs/intermediate/*.csr
- cleanup_files
-fi
-
-# Make sure required CA files exist and are populated
-rm -f ./certs/intermediate/index.*
-touch ./certs/intermediate/index.txt
-if [ ! -f ./certs/intermediate/serial ]; then
- echo 1000 > ./certs/intermediate/serial
-fi
-if [ ! -f ./certs/intermediate/crlnumber ]; then
- echo 2000 > ./certs/intermediate/crlnumber
-fi
-if [ ! -d ./certs/intermediate/new_certs ]; then
- mkdir ./certs/intermediate/new_certs
-fi
-
-
-# RSA
-echo "Creating RSA CA configuration cnf files"
-create_ca_config ./certs/intermediate/wolfssl_root.cnf certs/ca-key.pem certs/ca-cert.pem
-create_ca_config ./certs/intermediate/wolfssl_int.cnf certs/intermediate/ca-int-key.pem certs/intermediate/ca-int-cert.pem
-
-if [ ! -f ./certs/intermediate/ca-int-key.pem ]; then
- echo "Make Intermediate RSA CA Key"
- openssl genrsa -out ./certs/intermediate/ca-int-key.pem 2048
- check_result $?
- openssl rsa -in ./certs/intermediate/ca-int-key.pem -inform PEM -out ./certs/intermediate/ca-int-key.der -outform DER
- check_result $?
-fi
-
-echo "Create RSA Intermediate CA signed by root"
-create_cert wolfssl_int wolfssl_root ./certs/intermediate/ca-int-key.pem ca-int-cert v3_intermediate_ca "wolfSSL Intermediate CA" 7300
-
-echo "Create RSA Server Certificate signed by intermediate"
-create_cert wolfssl_int wolfssl_int ./certs/server-key.pem server-int-cert server_cert "wolfSSL Server Chain" 3650
-
-echo "Create RSA Client Certificate signed by intermediate"
-create_cert wolfssl_int wolfssl_int ./certs/client-key.pem client-int-cert usr_cert "wolfSSL Client Chain" 3650
-
-echo "Generate CRLs for new certificates"
-openssl ca -config ./certs/intermediate/wolfssl_root.cnf -gencrl -crldays 1000 -out ./certs/crl/ca-int.pem -keyfile ./certs/intermediate/ca-int-key.pem -cert ./certs/intermediate/ca-int-cert.pem
-check_result $?
-openssl ca -config ./certs/intermediate/wolfssl_int.cnf -gencrl -crldays 1000 -out ./certs/crl/server-int.pem -keyfile ./certs/server-key.pem -cert ./certs/intermediate/server-int-cert.pem
-check_result $?
-openssl ca -config ./certs/intermediate/wolfssl_int.cnf -gencrl -crldays 1000 -out ./certs/crl/client-int.pem -keyfile ./certs/client-key.pem -cert ./certs/intermediate/client-int-cert.pem
-check_result $?
-
-echo "Assemble test chains - peer first, then intermediate"
-openssl x509 -in ./certs/intermediate/server-int-cert.pem > ./certs/intermediate/server-chain.pem
-openssl x509 -in ./certs/intermediate/ca-int-cert.pem >> ./certs/intermediate/server-chain.pem
-cat ./certs/intermediate/server-int-cert.der ./certs/intermediate/ca-int-cert.der > ./certs/intermediate/server-chain.der
-
-openssl x509 -in ./certs/intermediate/client-int-cert.pem > ./certs/intermediate/client-chain.pem
-openssl x509 -in ./certs/intermediate/ca-int-cert.pem >> ./certs/intermediate/client-chain.pem
-cat ./certs/intermediate/client-int-cert.der ./certs/intermediate/ca-int-cert.der > ./certs/intermediate/client-chain.der
-
-echo "Assemble cert chain with extra cert for testing alternate chains"
-cp ./certs/intermediate/server-chain.pem ./certs/intermediate/server-chain-alt.pem
-cp ./certs/intermediate/client-chain.pem ./certs/intermediate/client-chain-alt.pem
-openssl x509 -in ./certs/external/ca-google-root.pem >> ./certs/intermediate/server-chain-alt.pem
-openssl x509 -in ./certs/external/ca-google-root.pem >> ./certs/intermediate/client-chain-alt.pem
-
-
-# ECC
-echo "Creating ECC CA configuration cnf files"
-create_ca_config ./certs/intermediate/wolfssl_root_ecc.cnf certs/ca-ecc-key.pem certs/ca-ecc-cert.pem
-create_ca_config ./certs/intermediate/wolfssl_int_ecc.cnf certs/intermediate/ca-int-ecc-key.pem certs/intermediate/ca-int-ecc-cert.pem
-
-if [ ! -f ./certs/intermediate/ca-int-ecc-key.pem ]; then
- echo "Make Intermediate ECC CA Key"
- openssl ecparam -name prime256v1 -genkey -noout -out ./certs/intermediate/ca-int-ecc-key.pem
- check_result $?
- openssl ec -in ./certs/intermediate/ca-int-ecc-key.pem -inform PEM -out ./certs/intermediate/ca-int-ecc-key.der -outform DER
- check_result $?
-fi
-
-echo "Create ECC Intermediate CA signed by root"
-create_cert wolfssl_int_ecc wolfssl_root_ecc ./certs/intermediate/ca-int-ecc-key.pem ca-int-ecc-cert v3_intermediate_ca "wolfSSL Intermediate CA ECC" 7300
-
-echo "Create ECC Server Certificate signed by intermediate"
-create_cert wolfssl_int_ecc wolfssl_int_ecc ./certs/ecc-key.pem server-int-ecc-cert server_cert "wolfSSL Server Chain ECC" 3650
-
-echo "Create ECC Client Certificate signed by intermediate"
-create_cert wolfssl_int_ecc wolfssl_int_ecc ./certs/ecc-client-key.pem client-int-ecc-cert usr_cert "wolfSSL Client Chain ECC" 3650
-
-echo "Generate CRLs for new certificates"
-openssl ca -config ./certs/intermediate/wolfssl_root_ecc.cnf -gencrl -crldays 1000 -out ./certs/crl/ca-int-ecc.pem -keyfile ./certs/intermediate/ca-int-ecc-key.pem -cert ./certs/intermediate/ca-int-ecc-cert.pem
-check_result $?
-openssl ca -config ./certs/intermediate/wolfssl_int_ecc.cnf -gencrl -crldays 1000 -out ./certs/crl/server-int-ecc.pem -keyfile ./certs/ecc-key.pem -cert ./certs/intermediate/server-int-ecc-cert.pem
-check_result $?
-openssl ca -config ./certs/intermediate/wolfssl_int_ecc.cnf -gencrl -crldays 1000 -out ./certs/crl/client-int-ecc.pem -keyfile ./certs/ecc-client-key.pem -cert ./certs/intermediate/client-int-ecc-cert.pem
-check_result $?
-
-echo "Assemble test chains - peer first, then intermediate"
-openssl x509 -in ./certs/intermediate/server-int-ecc-cert.pem > ./certs/intermediate/server-chain-ecc.pem
-openssl x509 -in ./certs/intermediate/ca-int-ecc-cert.pem >> ./certs/intermediate/server-chain-ecc.pem
-cat ./certs/intermediate/server-int-ecc-cert.der ./certs/intermediate/ca-int-ecc-cert.der > ./certs/intermediate/server-chain-ecc.der
-
-openssl x509 -in ./certs/intermediate/client-int-ecc-cert.pem > ./certs/intermediate/client-chain-ecc.pem
-openssl x509 -in ./certs/intermediate/ca-int-ecc-cert.pem >> ./certs/intermediate/client-chain-ecc.pem
-cat ./certs/intermediate/client-int-ecc-cert.der ./certs/intermediate/ca-int-ecc-cert.der > ./certs/intermediate/client-chain-ecc.der
-
-echo "Assemble cert chain with extra untrusted cert for testing alternate chains"
-cp ./certs/intermediate/server-chain-ecc.pem ./certs/intermediate/server-chain-alt-ecc.pem
-cp ./certs/intermediate/client-chain-ecc.pem ./certs/intermediate/client-chain-alt-ecc.pem
-openssl x509 -in ./certs/external/ca-google-root.pem >> ./certs/intermediate/server-chain-alt-ecc.pem
-openssl x509 -in ./certs/external/ca-google-root.pem >> ./certs/intermediate/client-chain-alt-ecc.pem
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/include.am b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/include.am
deleted file mode 100644
index 183f96c33..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/include.am
+++ /dev/null
@@ -1,34 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- certs/intermediate/genintcerts.sh \
- certs/intermediate/ca-int-cert.der \
- certs/intermediate/ca-int-cert.pem \
- certs/intermediate/ca-int-ecc-cert.der \
- certs/intermediate/ca-int-ecc-cert.pem \
- certs/intermediate/ca-int-ecc-key.der \
- certs/intermediate/ca-int-ecc-key.pem \
- certs/intermediate/ca-int-key.der \
- certs/intermediate/ca-int-key.pem \
- certs/intermediate/client-chain-alt-ecc.pem \
- certs/intermediate/client-chain-alt.pem \
- certs/intermediate/client-chain-ecc.der \
- certs/intermediate/client-chain-ecc.pem \
- certs/intermediate/client-chain.der \
- certs/intermediate/client-chain.pem \
- certs/intermediate/client-int-cert.der \
- certs/intermediate/client-int-cert.pem \
- certs/intermediate/client-int-ecc-cert.der \
- certs/intermediate/client-int-ecc-cert.pem \
- certs/intermediate/server-chain-alt-ecc.pem \
- certs/intermediate/server-chain-alt.pem \
- certs/intermediate/server-chain-ecc.der \
- certs/intermediate/server-chain-ecc.pem \
- certs/intermediate/server-chain.der \
- certs/intermediate/server-chain.pem \
- certs/intermediate/server-int-cert.der \
- certs/intermediate/server-int-cert.pem \
- certs/intermediate/server-int-ecc-cert.der \
- certs/intermediate/server-int-ecc-cert.pem
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-alt-ecc.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-alt-ecc.pem
deleted file mode 100644
index 6655c17f3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-alt-ecc.pem
+++ /dev/null
@@ -1,59 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDZDCCAwugAwIBAgICEAQwCgYIKoZIzj0EAwIwgaMxCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3
-b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEkMCIGA1UEAwwbd29sZlNTTCBJ
-bnRlcm1lZGlhdGUgQ0EgRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE4MTIyMTE3NTQwMVoXDTI4MTIxODE3NTQwMVowgaAxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYD
-VQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEhMB8GA1UEAwwYd29s
-ZlNTTCBTZXJ2ZXIgQ2hhaW4gRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuzOsTCdQSsZKpQTDPN6f
-NttyLc6U6iv6yyAJOSwW6GEC6a9N0wKTmjFbl5Ihf/DPGNqREQI0huggWDMLgDSJ
-2KOCAS4wggEqMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMB0GA1UdDgQW
-BBRdXSbvrH42+Zt2FStKJQIj77KJMDCBxQYDVR0jBIG9MIG6gBSXHWDDhyJZm2Af
-hLSZHIhNv9oebqGBnaSBmjCBlzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hp
-bmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZTU0wxFDASBgNV
-BAsMC0RldmVsb3BtZW50MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkq
-hkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CAhADMA4GA1UdDwEB/wQEAwIDqDAT
-BgNVHSUEDDAKBggrBgEFBQcDATAKBggqhkjOPQQDAgNHADBEAiB0XGkL2vHYzyG8
-gayx5cWzOHL5nPFQLTEmSVjD3svlfQIgeJ0/W+ISuxstPSXbK6j0dgKQeySoHUmW
-RVZXi7tZVPo=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICkTCCAjigAwIBAgICEAMwCgYIKoZIzj0EAwIwgZcxCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3
-b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEYMBYGA1UEAwwPd3d3LndvbGZz
-c2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MTIy
-MTE3NTQwMVoXDTM4MTIxNjE3NTQwMVowgaMxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NM
-MRQwEgYDVQQLDAtEZXZlbG9wbWVudDEkMCIGA1UEAwwbd29sZlNTTCBJbnRlcm1l
-ZGlhdGUgQ0EgRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMFkw
-EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEld8csp4gqR2iW6tcm6hmBinmstjjFKbD
-wbStTUQYIB5dZ/0VHW0l4RexccqFA/DSr0FmRjZt6kHLT8hK0KBhjKNmMGQwHQYD
-VR0OBBYEFJcdYMOHIlmbYB+EtJkciE2/2h5uMB8GA1UdIwQYMBaAFFaOmsPwQt4Y
-uUVVbvmTz+rD86UhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGG
-MAoGCCqGSM49BAMCA0cAMEQCICCNvbwIilIgq7zwlAw8OJyewBhTlJR/Vz0VjnVf
-jIJ5AiBAPg8nmui6m/SZz3E2aNHtMVQ36C430J5JqSd5wQM0UA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
-MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
-v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
-eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
-tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
-C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
-zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
-mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
-V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
-bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
-3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
-J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
-291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
-ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
-AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-alt.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-alt.pem
deleted file mode 100644
index 73118091b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-alt.pem
+++ /dev/null
@@ -1,75 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgICEAEwDQYJKoZIhvcNAQELBQAwgZ8xCzAJBgNVBAYTAlVT
-MRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQK
-DAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEgMB4GA1UEAwwXd29sZlNT
-TCBJbnRlcm1lZGlhdGUgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wHhcNMTgxMjIxMTc1NDAwWhcNMjgxMjE4MTc1NDAwWjCBnDELMAkGA1UEBhMC
-VVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNV
-BAoMB3dvbGZTU0wxFDASBgNVBAsMC0RldmVsb3BtZW50MR0wGwYDVQQDDBR3b2xm
-U1NMIFNlcnZlciBDaGFpbjEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNv
-bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMCVCOFXQfJxbbfSRUEn
-AWXGRa7yvCQwuJXOL07W9hyIvHyf+6hnf/5cnFF194rKB+c1L4/hvXvAL3yrZKgX
-/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/XGQ0lT+FjY1GLC2Q/rUO4pRxcNLOuAKBj
-xfZ/C1loeHOmjBipAm2vwxkBLrgQ48bMQLRpo0YzaYduxLsXpvPo3a1zvHsvIbX9
-ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq0KGWSrzh1Bpbx6DAwWN4D0Q3MDKWgDIj
-laF3uhPSl3PiXSXJag3DOWCktLBpQkIJ6dgIvDMgs1gip6rrxOHmYYPF0pbf2dBP
-rdcCAwEAAaOCASswggEnMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMB0G
-A1UdDgQWBBSzETLJkpiE4sn40DtuA0LKHw6OPDCBwgYDVR0jBIG6MIG3gBTvaeD3
-1R3mmezcbdD34rlcZHGDNaGBmqSBlzCBlDELMAkGA1UEBhMCVVMxEDAOBgNVBAgM
-B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNhd3Rvb3RoMRMw
-EQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAd
-BgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CAhAAMA4GA1UdDwEB/wQEAwID
-qDATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAQEAPbWNZn6F
-oIfMU6THyWNr1MREx0XQce8vWJJgfcg37WTqsasAG1b+93d4dv1kY314/9SuWBvw
-FOnnvUvsNm80y5GwQyVmi8BZ0ertJQ1ccoop3orId1G51cTlJlAMvdeh6/qT7D02
-j8/utmtcqE8bccZNLK/S2iDIifP824TCqfaXYqyqp2v7OyFRhXpzVTSCm/iZy5aJ
-otM5X7MNX46eRkpVV6veEc+AHyXJ7G9I/c5b0gUHa078DRCgioL75Hc6J+AODPtD
-ZF+QjiYSlNuXGOwZlBtWXLm7JpscFVwH39EtnUGWwCpaSp5fnmaajGz/bMqhfbYS
-o9QzCwAeul09eg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEFzCCAv+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
-MRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhT
-YXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZz
-c2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MTIy
-MTE3NTQwMFoXDTM4MTIxNjE3NTQwMFowgZ8xCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NM
-MRQwEgYDVQQLDAtEZXZlbG9wbWVudDEgMB4GA1UEAwwXd29sZlNTTCBJbnRlcm1l
-ZGlhdGUgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDonNdIWIgzjpxOKeUu9uHBBxaG55L
-DT7K+KX3DWrcI5AiaitYY0ooakio53MfolXYTQI74str4oPJUY93/dwtXSO3I5p+
-tilo6CpOqf4ycDGe8O/u+I3j/PPXKN16HZ6tIyvxpn80Uilm0uVkVWTW3UtBO1WD
-bsARDm4gwhZz6zD/CUa758zGA0RBEcbBbDYvSvmRVcpYXje4KBAwiUCWd89wZqRV
-+2kL59myM2Xbcjp3tytJ/LbNWBCNq6rLQEV3AjkYs48zAUh3UL6Oc6feNqBJjiwW
-r7n7Qi01ats0N9UUWX1lcuWLZVVLIF5H+fg602zZOvXHAUYxw3maGL5JAgMBAAGj
-ZjBkMB0GA1UdDgQWBBTvaeD31R3mmezcbdD34rlcZHGDNTAfBgNVHSMEGDAWgBQn
-jmcRdMMmHT/tM2OzpNgdMOXo1TASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB
-/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAXs0wzhMGqKMlbYVov4g7aBJqXl8i
-glFK/bGussI+oeRzl293H14Kpj6KIJNMP2hkaajXrj6lWOTQReR6X8xoIz17340z
-jboLc92XQZkaJn8Xh8R2uzu1FSSwgk8uCsP+q3XJTVl0Gscz508URVv008OpnTSo
-4Soz6hAH254zg2Dw3XwnDWuS75DMNbNO4/rKh1Ux6HuMwjUZQWp2bGx60GrRLaim
-l0BzUpw8Q6dL8bcEr+DRMjys36dKFfsuVthcTJmdPPBtoCAllskk/IRM3N4dKejU
-4f/KBi857STcefkqGACu0otE6yqU+8gChg1+H2XHIAZeylCvvXHLBtoS/w==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
-MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
-v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
-eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
-tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
-C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
-zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
-mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
-V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
-bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
-3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
-J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
-291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
-ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
-AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-ecc.der b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-ecc.der
deleted file mode 100644
index 2e1c7742d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-ecc.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-ecc.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-ecc.pem
deleted file mode 100644
index 379f945fa..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain-ecc.pem
+++ /dev/null
@@ -1,37 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDZDCCAwugAwIBAgICEAQwCgYIKoZIzj0EAwIwgaMxCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3
-b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEkMCIGA1UEAwwbd29sZlNTTCBJ
-bnRlcm1lZGlhdGUgQ0EgRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE4MTIyMTE3NTQwMVoXDTI4MTIxODE3NTQwMVowgaAxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYD
-VQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEhMB8GA1UEAwwYd29s
-ZlNTTCBTZXJ2ZXIgQ2hhaW4gRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuzOsTCdQSsZKpQTDPN6f
-NttyLc6U6iv6yyAJOSwW6GEC6a9N0wKTmjFbl5Ihf/DPGNqREQI0huggWDMLgDSJ
-2KOCAS4wggEqMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMB0GA1UdDgQW
-BBRdXSbvrH42+Zt2FStKJQIj77KJMDCBxQYDVR0jBIG9MIG6gBSXHWDDhyJZm2Af
-hLSZHIhNv9oebqGBnaSBmjCBlzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hp
-bmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZTU0wxFDASBgNV
-BAsMC0RldmVsb3BtZW50MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkq
-hkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CAhADMA4GA1UdDwEB/wQEAwIDqDAT
-BgNVHSUEDDAKBggrBgEFBQcDATAKBggqhkjOPQQDAgNHADBEAiB0XGkL2vHYzyG8
-gayx5cWzOHL5nPFQLTEmSVjD3svlfQIgeJ0/W+ISuxstPSXbK6j0dgKQeySoHUmW
-RVZXi7tZVPo=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICkTCCAjigAwIBAgICEAMwCgYIKoZIzj0EAwIwgZcxCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3
-b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEYMBYGA1UEAwwPd3d3LndvbGZz
-c2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MTIy
-MTE3NTQwMVoXDTM4MTIxNjE3NTQwMVowgaMxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NM
-MRQwEgYDVQQLDAtEZXZlbG9wbWVudDEkMCIGA1UEAwwbd29sZlNTTCBJbnRlcm1l
-ZGlhdGUgQ0EgRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMFkw
-EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEld8csp4gqR2iW6tcm6hmBinmstjjFKbD
-wbStTUQYIB5dZ/0VHW0l4RexccqFA/DSr0FmRjZt6kHLT8hK0KBhjKNmMGQwHQYD
-VR0OBBYEFJcdYMOHIlmbYB+EtJkciE2/2h5uMB8GA1UdIwQYMBaAFFaOmsPwQt4Y
-uUVVbvmTz+rD86UhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGG
-MAoGCCqGSM49BAMCA0cAMEQCICCNvbwIilIgq7zwlAw8OJyewBhTlJR/Vz0VjnVf
-jIJ5AiBAPg8nmui6m/SZz3E2aNHtMVQ36C430J5JqSd5wQM0UA==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain.der b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain.der
deleted file mode 100644
index 04c47848f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain.pem
deleted file mode 100644
index bf66d2bf8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-chain.pem
+++ /dev/null
@@ -1,53 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgICEAEwDQYJKoZIhvcNAQELBQAwgZ8xCzAJBgNVBAYTAlVT
-MRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQK
-DAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEgMB4GA1UEAwwXd29sZlNT
-TCBJbnRlcm1lZGlhdGUgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wHhcNMTgxMjIxMTc1NDAwWhcNMjgxMjE4MTc1NDAwWjCBnDELMAkGA1UEBhMC
-VVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNV
-BAoMB3dvbGZTU0wxFDASBgNVBAsMC0RldmVsb3BtZW50MR0wGwYDVQQDDBR3b2xm
-U1NMIFNlcnZlciBDaGFpbjEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNv
-bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMCVCOFXQfJxbbfSRUEn
-AWXGRa7yvCQwuJXOL07W9hyIvHyf+6hnf/5cnFF194rKB+c1L4/hvXvAL3yrZKgX
-/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/XGQ0lT+FjY1GLC2Q/rUO4pRxcNLOuAKBj
-xfZ/C1loeHOmjBipAm2vwxkBLrgQ48bMQLRpo0YzaYduxLsXpvPo3a1zvHsvIbX9
-ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq0KGWSrzh1Bpbx6DAwWN4D0Q3MDKWgDIj
-laF3uhPSl3PiXSXJag3DOWCktLBpQkIJ6dgIvDMgs1gip6rrxOHmYYPF0pbf2dBP
-rdcCAwEAAaOCASswggEnMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMB0G
-A1UdDgQWBBSzETLJkpiE4sn40DtuA0LKHw6OPDCBwgYDVR0jBIG6MIG3gBTvaeD3
-1R3mmezcbdD34rlcZHGDNaGBmqSBlzCBlDELMAkGA1UEBhMCVVMxEDAOBgNVBAgM
-B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNhd3Rvb3RoMRMw
-EQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAd
-BgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CAhAAMA4GA1UdDwEB/wQEAwID
-qDATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAQEAPbWNZn6F
-oIfMU6THyWNr1MREx0XQce8vWJJgfcg37WTqsasAG1b+93d4dv1kY314/9SuWBvw
-FOnnvUvsNm80y5GwQyVmi8BZ0ertJQ1ccoop3orId1G51cTlJlAMvdeh6/qT7D02
-j8/utmtcqE8bccZNLK/S2iDIifP824TCqfaXYqyqp2v7OyFRhXpzVTSCm/iZy5aJ
-otM5X7MNX46eRkpVV6veEc+AHyXJ7G9I/c5b0gUHa078DRCgioL75Hc6J+AODPtD
-ZF+QjiYSlNuXGOwZlBtWXLm7JpscFVwH39EtnUGWwCpaSp5fnmaajGz/bMqhfbYS
-o9QzCwAeul09eg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEFzCCAv+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT
-MRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhT
-YXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZz
-c2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MTIy
-MTE3NTQwMFoXDTM4MTIxNjE3NTQwMFowgZ8xCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NM
-MRQwEgYDVQQLDAtEZXZlbG9wbWVudDEgMB4GA1UEAwwXd29sZlNTTCBJbnRlcm1l
-ZGlhdGUgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDonNdIWIgzjpxOKeUu9uHBBxaG55L
-DT7K+KX3DWrcI5AiaitYY0ooakio53MfolXYTQI74str4oPJUY93/dwtXSO3I5p+
-tilo6CpOqf4ycDGe8O/u+I3j/PPXKN16HZ6tIyvxpn80Uilm0uVkVWTW3UtBO1WD
-bsARDm4gwhZz6zD/CUa758zGA0RBEcbBbDYvSvmRVcpYXje4KBAwiUCWd89wZqRV
-+2kL59myM2Xbcjp3tytJ/LbNWBCNq6rLQEV3AjkYs48zAUh3UL6Oc6feNqBJjiwW
-r7n7Qi01ats0N9UUWX1lcuWLZVVLIF5H+fg602zZOvXHAUYxw3maGL5JAgMBAAGj
-ZjBkMB0GA1UdDgQWBBTvaeD31R3mmezcbdD34rlcZHGDNTAfBgNVHSMEGDAWgBQn
-jmcRdMMmHT/tM2OzpNgdMOXo1TASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB
-/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAXs0wzhMGqKMlbYVov4g7aBJqXl8i
-glFK/bGussI+oeRzl293H14Kpj6KIJNMP2hkaajXrj6lWOTQReR6X8xoIz17340z
-jboLc92XQZkaJn8Xh8R2uzu1FSSwgk8uCsP+q3XJTVl0Gscz508URVv008OpnTSo
-4Soz6hAH254zg2Dw3XwnDWuS75DMNbNO4/rKh1Ux6HuMwjUZQWp2bGx60GrRLaim
-l0BzUpw8Q6dL8bcEr+DRMjys36dKFfsuVthcTJmdPPBtoCAllskk/IRM3N4dKejU
-4f/KBi857STcefkqGACu0otE6yqU+8gChg1+H2XHIAZeylCvvXHLBtoS/w==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-cert.der
deleted file mode 100644
index 3af5f5a1e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-cert.pem
deleted file mode 100644
index 66edf0b5b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-cert.pem
+++ /dev/null
@@ -1,94 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 4097 (0x1001)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Intermediate CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Dec 21 17:54:00 2018 GMT
- Not After : Dec 18 17:54:00 2028 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Server Chain/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- Netscape Cert Type:
- SSL Server
- X509v3 Subject Key Identifier:
- B3:11:32:C9:92:98:84:E2:C9:F8:D0:3B:6E:03:42:CA:1F:0E:8E:3C
- X509v3 Authority Key Identifier:
- keyid:EF:69:E0:F7:D5:1D:E6:99:EC:DC:6D:D0:F7:E2:B9:5C:64:71:83:35
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:10:00
-
- X509v3 Key Usage: critical
- Digital Signature, Key Encipherment, Key Agreement
- X509v3 Extended Key Usage:
- TLS Web Server Authentication
- Signature Algorithm: sha256WithRSAEncryption
- 3d:b5:8d:66:7e:85:a0:87:cc:53:a4:c7:c9:63:6b:d4:c4:44:
- c7:45:d0:71:ef:2f:58:92:60:7d:c8:37:ed:64:ea:b1:ab:00:
- 1b:56:fe:f7:77:78:76:fd:64:63:7d:78:ff:d4:ae:58:1b:f0:
- 14:e9:e7:bd:4b:ec:36:6f:34:cb:91:b0:43:25:66:8b:c0:59:
- d1:ea:ed:25:0d:5c:72:8a:29:de:8a:c8:77:51:b9:d5:c4:e5:
- 26:50:0c:bd:d7:a1:eb:fa:93:ec:3d:36:8f:cf:ee:b6:6b:5c:
- a8:4f:1b:71:c6:4d:2c:af:d2:da:20:c8:89:f3:fc:db:84:c2:
- a9:f6:97:62:ac:aa:a7:6b:fb:3b:21:51:85:7a:73:55:34:82:
- 9b:f8:99:cb:96:89:a2:d3:39:5f:b3:0d:5f:8e:9e:46:4a:55:
- 57:ab:de:11:cf:80:1f:25:c9:ec:6f:48:fd:ce:5b:d2:05:07:
- 6b:4e:fc:0d:10:a0:8a:82:fb:e4:77:3a:27:e0:0e:0c:fb:43:
- 64:5f:90:8e:26:12:94:db:97:18:ec:19:94:1b:56:5c:b9:bb:
- 26:9b:1c:15:5c:07:df:d1:2d:9d:41:96:c0:2a:5a:4a:9e:5f:
- 9e:66:9a:8c:6c:ff:6c:ca:a1:7d:b6:12:a3:d4:33:0b:00:1e:
- ba:5d:3d:7a
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgICEAEwDQYJKoZIhvcNAQELBQAwgZ8xCzAJBgNVBAYTAlVT
-MRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQK
-DAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEgMB4GA1UEAwwXd29sZlNT
-TCBJbnRlcm1lZGlhdGUgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wHhcNMTgxMjIxMTc1NDAwWhcNMjgxMjE4MTc1NDAwWjCBnDELMAkGA1UEBhMC
-VVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNV
-BAoMB3dvbGZTU0wxFDASBgNVBAsMC0RldmVsb3BtZW50MR0wGwYDVQQDDBR3b2xm
-U1NMIFNlcnZlciBDaGFpbjEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNv
-bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMCVCOFXQfJxbbfSRUEn
-AWXGRa7yvCQwuJXOL07W9hyIvHyf+6hnf/5cnFF194rKB+c1L4/hvXvAL3yrZKgX
-/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/XGQ0lT+FjY1GLC2Q/rUO4pRxcNLOuAKBj
-xfZ/C1loeHOmjBipAm2vwxkBLrgQ48bMQLRpo0YzaYduxLsXpvPo3a1zvHsvIbX9
-ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq0KGWSrzh1Bpbx6DAwWN4D0Q3MDKWgDIj
-laF3uhPSl3PiXSXJag3DOWCktLBpQkIJ6dgIvDMgs1gip6rrxOHmYYPF0pbf2dBP
-rdcCAwEAAaOCASswggEnMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMB0G
-A1UdDgQWBBSzETLJkpiE4sn40DtuA0LKHw6OPDCBwgYDVR0jBIG6MIG3gBTvaeD3
-1R3mmezcbdD34rlcZHGDNaGBmqSBlzCBlDELMAkGA1UEBhMCVVMxEDAOBgNVBAgM
-B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNhd3Rvb3RoMRMw
-EQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAd
-BgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CAhAAMA4GA1UdDwEB/wQEAwID
-qDATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAQEAPbWNZn6F
-oIfMU6THyWNr1MREx0XQce8vWJJgfcg37WTqsasAG1b+93d4dv1kY314/9SuWBvw
-FOnnvUvsNm80y5GwQyVmi8BZ0ertJQ1ccoop3orId1G51cTlJlAMvdeh6/qT7D02
-j8/utmtcqE8bccZNLK/S2iDIifP824TCqfaXYqyqp2v7OyFRhXpzVTSCm/iZy5aJ
-otM5X7MNX46eRkpVV6veEc+AHyXJ7G9I/c5b0gUHa078DRCgioL75Hc6J+AODPtD
-ZF+QjiYSlNuXGOwZlBtWXLm7JpscFVwH39EtnUGWwCpaSp5fnmaajGz/bMqhfbYS
-o9QzCwAeul09eg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-ecc-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-ecc-cert.der
deleted file mode 100644
index e51fff2a6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-ecc-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-ecc-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-ecc-cert.pem
deleted file mode 100644
index 8b19fcd0e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/intermediate/server-int-ecc-cert.pem
+++ /dev/null
@@ -1,63 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 4100 (0x1004)
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Intermediate CA ECC/emailAddress=info@wolfssl.com
- Validity
- Not Before: Dec 21 17:54:01 2018 GMT
- Not After : Dec 18 17:54:01 2028 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=wolfSSL Server Chain ECC/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (256 bit)
- pub:
- 04:bb:33:ac:4c:27:50:4a:c6:4a:a5:04:c3:3c:de:
- 9f:36:db:72:2d:ce:94:ea:2b:fa:cb:20:09:39:2c:
- 16:e8:61:02:e9:af:4d:d3:02:93:9a:31:5b:97:92:
- 21:7f:f0:cf:18:da:91:11:02:34:86:e8:20:58:33:
- 0b:80:34:89:d8
- ASN1 OID: prime256v1
- NIST CURVE: P-256
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- Netscape Cert Type:
- SSL Server
- X509v3 Subject Key Identifier:
- 5D:5D:26:EF:AC:7E:36:F9:9B:76:15:2B:4A:25:02:23:EF:B2:89:30
- X509v3 Authority Key Identifier:
- keyid:97:1D:60:C3:87:22:59:9B:60:1F:84:B4:99:1C:88:4D:BF:DA:1E:6E
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Development/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:10:03
-
- X509v3 Key Usage: critical
- Digital Signature, Key Encipherment, Key Agreement
- X509v3 Extended Key Usage:
- TLS Web Server Authentication
- Signature Algorithm: ecdsa-with-SHA256
- 30:44:02:20:74:5c:69:0b:da:f1:d8:cf:21:bc:81:ac:b1:e5:
- c5:b3:38:72:f9:9c:f1:50:2d:31:26:49:58:c3:de:cb:e5:7d:
- 02:20:78:9d:3f:5b:e2:12:bb:1b:2d:3d:25:db:2b:a8:f4:76:
- 02:90:7b:24:a8:1d:49:96:45:56:57:8b:bb:59:54:fa
------BEGIN CERTIFICATE-----
-MIIDZDCCAwugAwIBAgICEAQwCgYIKoZIzj0EAwIwgaMxCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3
-b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEkMCIGA1UEAwwbd29sZlNTTCBJ
-bnRlcm1lZGlhdGUgQ0EgRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE4MTIyMTE3NTQwMVoXDTI4MTIxODE3NTQwMVowgaAxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYD
-VQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEhMB8GA1UEAwwYd29s
-ZlNTTCBTZXJ2ZXIgQ2hhaW4gRUNDMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuzOsTCdQSsZKpQTDPN6f
-NttyLc6U6iv6yyAJOSwW6GEC6a9N0wKTmjFbl5Ihf/DPGNqREQI0huggWDMLgDSJ
-2KOCAS4wggEqMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZAMB0GA1UdDgQW
-BBRdXSbvrH42+Zt2FStKJQIj77KJMDCBxQYDVR0jBIG9MIG6gBSXHWDDhyJZm2Af
-hLSZHIhNv9oebqGBnaSBmjCBlzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hp
-bmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZTU0wxFDASBgNV
-BAsMC0RldmVsb3BtZW50MRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkq
-hkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CAhADMA4GA1UdDwEB/wQEAwIDqDAT
-BgNVHSUEDDAKBggrBgEFBQcDATAKBggqhkjOPQQDAgNHADBEAiB0XGkL2vHYzyG8
-gayx5cWzOHL5nPFQLTEmSVjD3svlfQIgeJ0/W+ISuxstPSXbK6j0dgKQeySoHUmW
-RVZXi7tZVPo=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ntru-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ntru-cert.pem
deleted file mode 100644
index 47677f70b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ntru-cert.pem
+++ /dev/null
@@ -1,29 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIE8DCCA9igAwIBAgIQAJRoi3ieHovpl5HPgCG/LTANBgkqhkiG9w0BAQUFADCB
-lDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVt
-YW4xETAPBgNVBAoMCFNhd3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYD
-VQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wIhgPMjAxODA0MTIxNjIzMDJaGA8yMDIxMDEwNzE1MjMwMlowgaMxCzAJ
-BgNVBAYTAlVTMQ8wDQYDVQQIDAZPcmdlb24xETAPBgNVBAcMCFBvcnRsYW5kMQ0w
-CwYDVQQEDARUZXN0MRAwDgYDVQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9w
-bWVudDEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBp
-bmZvQHdvbGZzc2wuY29tMIICTTAaBgsrBgEEAcEWAQEBAQYLKwYBBAHBFgEBAi4D
-ggItAASCAiiZEHm4vGsXiO64RwVglZIonsSRfqdQno0pBIk93shwAryAnF7ufVJf
-4+Bhb9E4GJap88Kof6kSF8FsyWYU3xly0ZSitmGCHXpF7pqQ2V5n1n6mnvYcV4Ql
-WR0tPe+1CEkxYsdQaIr7QXLW5ZW4rmZGmL42uioCro4k13x/YhWBsmHuo1C3vnj8
-t5D215pZ6FOD1SMcWIwEzQVncLzvMIous804sY5WYvGzJAkmSv+hgWY52+CoYxUU
-LlYA81m5VksOLV8DxsNRvRIOYiUkBqKxzXMcuoOO/TzS/POYoyZ/DupuveP8fNFn
-GuvpFwApCFEfVSz3uwHctziuQUnXvpstRY6mmdqbipISrddXwxfTgIp//M4JlV8X
-wC3PrfoGx4xR6xmu0iUaJuBmwx1D4l0m4dPXFLKrMV+evZVo5rlYPBbNot7c9BeN
-yE9nqnsKFT2PphPM1JlSEQHTZoVYGopAVRES/L+wBiy023gjU3Q9/HrQy5TWwkwH
-RhyhvP1WTumNCB6Z+cofi02e7CJr20BX0+T9Q6xkOiX2rZ7bii4j68lxITcs7mWk
-FHvlgWk+sdxZ0CPm+V4VmU7kRouZVmXuTE8lZuXByayKiDEUcB7fC7uynV7Vd+UR
-XaXw2iU6ytK1qPw2i5O3cCO+BSjDYyVDHrvaJOfyi+1WfzZLJav3ogm5FtaUmr/+
-tAe/4sxscqwUmmPjgab5y+WL9AMXNEuUJnBGG4R3MwAwDQYJKoZIhvcNAQEFBQAD
-ggEBAKFpalpswsMwzjLbT2UL/TpR8CpQ5tdN0OmDvW6Rr70RgFp8FDT50+H9b+Db
-OdoT8CI5dlTK47sN/R/Q1IoABUr8ymW4oFwSmyNgEK4RdQg4MN9PEeChR0V1TLKM
-p77IMksd9RZpiDsrmZl+rOTwGDkt+7INZmyvrJqurjmxYYZs4UsgEivUPZqA48xF
-LbwLdfifLe0O+2tDixiiVPdL5RarT90SVB1yyU7EMHUmI4Mv6dssn9qd0Wou1fVf
-bL66woDcr/vkV9O94RqlKsWKSnHNKQxmItHM3yO5yWWpTcITQLokyVPBxl1e3cT0
-Hln0y5owdmjr0+rPnvUZoZROfto=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ntru-key.raw b/FreeRTOS-Plus/Source/WolfSSL/certs/ntru-key.raw
deleted file mode 100644
index 725f6c82a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ntru-key.raw
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/include.am b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/include.am
deleted file mode 100644
index 73c5f285d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/include.am
+++ /dev/null
@@ -1,35 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- certs/ocsp/index-ca-and-intermediate-cas.txt \
- certs/ocsp/index-ca-and-intermediate-cas.txt.attr \
- certs/ocsp/index-intermediate1-ca-issued-certs.txt \
- certs/ocsp/index-intermediate1-ca-issued-certs.txt.attr \
- certs/ocsp/index-intermediate2-ca-issued-certs.txt \
- certs/ocsp/index-intermediate2-ca-issued-certs.txt.attr \
- certs/ocsp/index-intermediate3-ca-issued-certs.txt \
- certs/ocsp/index-intermediate3-ca-issued-certs.txt.attr \
- certs/ocsp/openssl.cnf \
- certs/ocsp/renewcerts-for-test.sh \
- certs/ocsp/intermediate1-ca-key.pem \
- certs/ocsp/intermediate1-ca-cert.pem \
- certs/ocsp/intermediate2-ca-key.pem \
- certs/ocsp/intermediate2-ca-cert.pem \
- certs/ocsp/intermediate3-ca-key.pem \
- certs/ocsp/intermediate3-ca-cert.pem \
- certs/ocsp/ocsp-responder-key.pem \
- certs/ocsp/ocsp-responder-cert.pem \
- certs/ocsp/server1-key.pem \
- certs/ocsp/server1-cert.pem \
- certs/ocsp/server2-key.pem \
- certs/ocsp/server2-cert.pem \
- certs/ocsp/server3-key.pem \
- certs/ocsp/server3-cert.pem \
- certs/ocsp/server4-key.pem \
- certs/ocsp/server4-cert.pem \
- certs/ocsp/server5-key.pem \
- certs/ocsp/server5-cert.pem \
- certs/ocsp/root-ca-key.pem \
- certs/ocsp/root-ca-cert.pem
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-ca-and-intermediate-cas.txt b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-ca-and-intermediate-cas.txt
deleted file mode 100644
index 256b8ab58..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-ca-and-intermediate-cas.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-V 161213070133Z 63 unknown /C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
-V 161213070133Z 01 unknown /C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL intermediate CA 1/emailAddress=info@wolfssl.com
-V 161213070133Z 02 unknown /C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL intermediate CA 2/emailAddress=info@wolfssl.com
-R 161213070133Z 151201070133Z 03 unknown /C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL REVOKED intermediate CA/emailAddress=info@wolfssl.com
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-ca-and-intermediate-cas.txt.attr b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-ca-and-intermediate-cas.txt.attr
deleted file mode 100644
index 3a7e39e6e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-ca-and-intermediate-cas.txt.attr
+++ /dev/null
@@ -1 +0,0 @@
-unique_subject = no
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate1-ca-issued-certs.txt b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate1-ca-issued-certs.txt
deleted file mode 100644
index a49ec58a3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate1-ca-issued-certs.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-V 161213070133Z 05 unknown /C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=www1.wolfssl.com/emailAddress=info@wolfssl.com
-R 161213070133Z 151201070133Z 06 unknown /C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=www2.wolfssl.com/emailAddress=info@wolfssl.com
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate1-ca-issued-certs.txt.attr b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate1-ca-issued-certs.txt.attr
deleted file mode 100644
index 3a7e39e6e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate1-ca-issued-certs.txt.attr
+++ /dev/null
@@ -1 +0,0 @@
-unique_subject = no
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate2-ca-issued-certs.txt b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate2-ca-issued-certs.txt
deleted file mode 100644
index 0a163f7b6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate2-ca-issued-certs.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-V 161213070133Z 07 unknown /C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=www3.wolfssl.com/emailAddress=info@wolfssl.com
-R 161213070133Z 151201070133Z 08 unknown /C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=www4.wolfssl.com/emailAddress=info@wolfssl.com
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate2-ca-issued-certs.txt.attr b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate2-ca-issued-certs.txt.attr
deleted file mode 100644
index 3a7e39e6e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate2-ca-issued-certs.txt.attr
+++ /dev/null
@@ -1 +0,0 @@
-unique_subject = no
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate3-ca-issued-certs.txt b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate3-ca-issued-certs.txt
deleted file mode 100644
index eb6d3c048..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate3-ca-issued-certs.txt
+++ /dev/null
@@ -1 +0,0 @@
-V 161213070133Z 09 unknown /C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=www5.wolfssl.com/emailAddress=info@wolfssl.com
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate3-ca-issued-certs.txt.attr b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate3-ca-issued-certs.txt.attr
deleted file mode 100644
index 3a7e39e6e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/index-intermediate3-ca-issued-certs.txt.attr
+++ /dev/null
@@ -1 +0,0 @@
-unique_subject = no
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate1-ca-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate1-ca-cert.pem
deleted file mode 100644
index a0593b2f7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate1-ca-cert.pem
+++ /dev/null
@@ -1,186 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL intermediate CA 1/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:de:b4:c8:5c:77:e0:2d:b1:f5:b9:ad:16:47:35:
- a0:35:65:65:c6:e1:40:ab:1e:b4:b9:13:b7:cb:8c:
- bb:77:a5:76:da:6d:87:87:f6:4a:4d:13:e4:26:3e:
- 27:87:ee:5b:c7:6a:3f:45:30:61:55:5c:f6:35:d1:
- 65:fa:98:11:a3:a7:55:d5:be:91:82:4b:fc:be:90:
- d6:50:53:63:9a:2c:22:e1:35:11:dc:78:02:97:8a:
- e4:46:92:9c:53:08:76:de:1f:53:b6:b8:ca:77:3e:
- 79:6e:bc:d0:e3:0d:30:5b:4c:f6:94:0d:30:29:64:
- 9f:04:e5:db:fb:89:60:67:bb:af:26:83:51:77:24:
- 2f:2b:0b:a1:94:81:10:98:e8:eb:26:a8:1e:7c:e4:
- c4:6c:67:06:95:55:4a:dd:52:f4:f2:60:6d:01:2b:
- 19:91:35:6d:a4:08:47:06:71:24:00:d9:de:c6:56:
- f3:8b:53:2c:e2:9a:96:a5:f3:62:e5:c4:e3:23:f2:
- d2:fc:21:ea:0f:62:76:8d:d5:99:48:ce:dc:58:c4:
- bb:7f:da:94:2c:80:74:83:c5:e0:b0:15:7e:41:fd:
- 0e:f2:f4:f0:78:76:7b:ad:26:0d:aa:48:96:17:2f:
- 21:e3:95:2b:26:37:f9:aa:80:2f:fe:de:f6:5e:bc:
- 97:7f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 83:C6:3A:89:2C:81:F4:02:D7:9D:4C:E2:2A:C0:71:82:64:44:DA:0E
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 18:a3:09:fe:c3:53:c7:ce:11:f0:36:86:43:9c:46:9b:43:42:
- a0:20:6e:b6:32:29:34:22:fa:27:a1:00:0c:e5:51:c3:35:7b:
- 2f:ce:2c:48:7f:47:cf:1b:45:f9:30:b2:d0:17:15:a0:c3:a8:
- 3a:e4:5f:a4:96:e4:25:ea:4e:80:90:2e:8d:f5:19:98:ae:2a:
- 6d:39:f0:06:8f:e6:0b:c4:2b:dd:07:4a:ad:3d:34:11:79:3d:
- 15:db:65:c6:33:60:6b:2f:2d:47:26:bb:91:53:28:35:5c:fd:
- 57:3b:27:1b:a1:85:03:24:74:84:f4:f2:b2:e3:53:41:83:9c:
- 6b:5a:0c:0f:3b:c4:5f:a7:4b:8b:04:f2:0d:f5:81:aa:16:33:
- d2:f4:f5:8d:83:c1:10:2d:57:55:f8:d3:16:62:27:50:b2:57:
- 20:1d:a3:07:0c:b8:8d:c5:5a:2f:d9:d3:c4:6a:c3:1e:51:10:
- de:7e:60:cf:d0:78:2c:00:d4:da:df:de:de:ee:ed:1d:25:da:
- 6c:9f:57:69:2a:f1:a2:6c:8a:fe:72:c0:57:9f:f8:6e:b7:47:
- f1:4f:f6:4b:9c:a2:2a:d2:10:9c:4e:bc:b4:8a:a2:8e:51:5a:
- c1:e7:9c:f1:7c:9c:f9:7d:d7:9c:8f:ed:e9:57:91:0a:6c:4b:
- b4:ac:6f:30
------BEGIN CERTIFICATE-----
-MIIE8DCCA9igAwIBAgIBATANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBoTELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMSIwIAYDVQQDDBl3b2xmU1NMIGludGVy
-bWVkaWF0ZSBDQSAxMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3rTIXHfgLbH1ua0WRzWgNWVl
-xuFAqx60uRO3y4y7d6V22m2Hh/ZKTRPkJj4nh+5bx2o/RTBhVVz2NdFl+pgRo6dV
-1b6Rgkv8vpDWUFNjmiwi4TUR3HgCl4rkRpKcUwh23h9TtrjKdz55brzQ4w0wW0z2
-lA0wKWSfBOXb+4lgZ7uvJoNRdyQvKwuhlIEQmOjrJqgefOTEbGcGlVVK3VL08mBt
-ASsZkTVtpAhHBnEkANnexlbzi1Ms4pqWpfNi5cTjI/LS/CHqD2J2jdWZSM7cWMS7
-f9qULIB0g8XgsBV+Qf0O8vTweHZ7rSYNqkiWFy8h45UrJjf5qoAv/t72XryXfwID
-AQABo4IBOTCCATUwDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUg8Y6iSyB9ALXnUzi
-KsBxgmRE2g4wgcQGA1UdIwSBvDCBuYAUc7AcpC+Cy89HpTjXsASCOn5yFSGhgZ2k
-gZowgZcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH
-DAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtFbmdpbmVlcmlu
-ZzEYMBYGA1UEAwwPd29sZlNTTCByb290IENBMR8wHQYJKoZIhvcNAQkBFhBpbmZv
-QHdvbGZzc2wuY29tggFjMAsGA1UdDwQEAwIBBjAyBggrBgEFBQcBAQQmMCQwIgYI
-KwYBBQUHMAGGFmh0dHA6Ly8xMjcuMC4wLjE6MjIyMjAwDQYJKoZIhvcNAQELBQAD
-ggEBABijCf7DU8fOEfA2hkOcRptDQqAgbrYyKTQi+iehAAzlUcM1ey/OLEh/R88b
-RfkwstAXFaDDqDrkX6SW5CXqToCQLo31GZiuKm058AaP5gvEK90HSq09NBF5PRXb
-ZcYzYGsvLUcmu5FTKDVc/Vc7JxuhhQMkdIT08rLjU0GDnGtaDA87xF+nS4sE8g31
-gaoWM9L09Y2DwRAtV1X40xZiJ1CyVyAdowcMuI3FWi/Z08Rqwx5REN5+YM/QeCwA
-1Nrf3t7u7R0l2myfV2kq8aJsiv5ywFef+G63R/FP9kucoirSEJxOvLSKoo5RWsHn
-nPF8nPl915yP7elXkQpsS7SsbzA=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 99 (0x63)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ab:2c:b4:2f:1d:06:09:ef:4e:29:86:84:7e:cc:
- bf:a6:79:7c:f0:c0:c1:64:25:8c:75:b7:10:05:ca:
- 48:27:0c:0e:32:1c:b0:fe:99:85:39:b6:b9:a2:f7:
- 27:ff:6d:3c:8c:16:73:29:21:7f:8b:a6:54:71:90:
- ad:cc:05:b9:9f:15:c7:0a:3f:5f:69:f4:0a:5f:8c:
- 71:b5:2c:bf:66:e2:03:9a:32:f4:d2:ec:2a:89:4b:
- f9:35:88:14:33:47:4e:2e:05:79:01:ed:64:36:76:
- b9:f8:85:cd:01:88:ac:c5:b2:b1:59:b8:cd:5a:f4:
- 09:09:38:9b:da:5a:cf:ce:78:99:1f:49:3d:41:d6:
- 06:7c:52:99:c8:97:d1:b3:80:3a:a2:4f:36:c4:c5:
- 96:30:77:31:38:c8:70:cc:e1:67:06:b3:2b:2f:93:
- b5:69:cf:83:7e:88:53:9b:0f:46:21:4c:d6:05:36:
- 44:99:60:68:47:e5:32:01:12:d4:10:73:ae:9a:34:
- 94:fa:6e:b8:58:4f:7b:5b:8a:92:97:ad:fd:97:b9:
- 75:ca:c2:d4:45:7d:17:6b:cd:2f:f3:63:7a:0e:30:
- b5:0b:a9:d9:a6:7c:74:60:9d:cc:09:03:43:f1:0f:
- 90:d3:b7:fe:6c:9f:d9:cd:78:4b:15:ae:8c:5b:f9:
- 99:81
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 6b:10:b1:f8:cb:77:ef:72:f5:f8:fc:70:6d:18:dc:34:fe:d7:
- 95:d8:fd:85:8e:ca:4b:f3:be:1f:eb:14:08:dc:23:34:78:98:
- 39:d7:9f:c3:52:f6:14:3d:e9:de:5c:c2:d8:b1:4b:a8:4c:5b:
- 91:42:66:da:7f:3c:e9:03:20:5e:08:0f:76:79:b9:21:10:89:
- b7:73:46:44:7e:6e:28:0c:00:e4:f4:3e:65:aa:f5:c6:27:57:
- 2c:bb:1d:ae:e5:94:57:a3:73:9e:6b:44:00:35:4a:f3:c7:34:
- 9c:a2:a7:aa:62:9f:1d:ef:a8:6c:be:07:ad:ef:ae:ee:93:0b:
- ba:c3:59:4e:90:40:2d:00:5e:f0:0f:0a:de:18:2a:b3:97:31:
- 63:84:ff:18:1c:b6:d8:7d:ee:33:ed:99:f0:f5:7f:88:58:b3:
- 0d:90:db:eb:44:7e:06:37:61:d4:34:b9:f6:fd:3e:8d:07:e4:
- b5:b0:ae:09:ce:98:e4:b0:1b:d5:7b:53:94:dd:8a:b2:20:d6:
- b0:72:f8:b1:bc:76:df:16:86:39:7b:e4:a9:15:47:57:ae:ca:
- 41:d6:3a:ba:15:d1:c0:b5:38:66:0b:0f:80:8b:a2:07:b4:fc:
- 80:1f:a3:4c:1f:d2:65:97:c1:2c:ae:46:31:61:49:0d:d7:5f:
- ac:d2:a6:05
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIBYzANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBlzELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NMIHJvb3Qg
-Q0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCrLLQvHQYJ704phoR+zL+meXzwwMFkJYx1txAF
-ykgnDA4yHLD+mYU5trmi9yf/bTyMFnMpIX+LplRxkK3MBbmfFccKP19p9ApfjHG1
-LL9m4gOaMvTS7CqJS/k1iBQzR04uBXkB7WQ2drn4hc0BiKzFsrFZuM1a9AkJOJva
-Ws/OeJkfST1B1gZ8UpnIl9GzgDqiTzbExZYwdzE4yHDM4WcGsysvk7Vpz4N+iFOb
-D0YhTNYFNkSZYGhH5TIBEtQQc66aNJT6brhYT3tbipKXrf2XuXXKwtRFfRdrzS/z
-Y3oOMLULqdmmfHRgncwJA0PxD5DTt/5sn9nNeEsVroxb+ZmBAgMBAAGjggE5MIIB
-NTAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRzsBykL4LLz0elONewBII6fnIVITCB
-xAYDVR0jBIG8MIG5gBRzsBykL4LLz0elONewBII6fnIVIaGBnaSBmjCBlzELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-EDAOBgNVBAoMB3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQD
-DA93b2xmU1NMIHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b22CAWMwCwYDVR0PBAQDAgEGMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYW
-aHR0cDovLzEyNy4wLjAuMToyMjIyMDANBgkqhkiG9w0BAQsFAAOCAQEAaxCx+Mt3
-73L1+PxwbRjcNP7Xldj9hY7KS/O+H+sUCNwjNHiYOdefw1L2FD3p3lzC2LFLqExb
-kUJm2n886QMgXggPdnm5IRCJt3NGRH5uKAwA5PQ+Zar1xidXLLsdruWUV6NznmtE
-ADVK88c0nKKnqmKfHe+obL4Hre+u7pMLusNZTpBALQBe8A8K3hgqs5cxY4T/GBy2
-2H3uM+2Z8PV/iFizDZDb60R+Bjdh1DS59v0+jQfktbCuCc6Y5LAb1XtTlN2KsiDW
-sHL4sbx23xaGOXvkqRVHV67KQdY6uhXRwLU4ZgsPgIuiB7T8gB+jTB/SZZfBLK5G
-MWFJDddfrNKmBQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate1-ca-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate1-ca-key.pem
deleted file mode 100644
index 7147c9b0b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate1-ca-key.pem
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDetMhcd+AtsfW5
-rRZHNaA1ZWXG4UCrHrS5E7fLjLt3pXbabYeH9kpNE+QmPieH7lvHaj9FMGFVXPY1
-0WX6mBGjp1XVvpGCS/y+kNZQU2OaLCLhNRHceAKXiuRGkpxTCHbeH1O2uMp3Pnlu
-vNDjDTBbTPaUDTApZJ8E5dv7iWBnu68mg1F3JC8rC6GUgRCY6OsmqB585MRsZwaV
-VUrdUvTyYG0BKxmRNW2kCEcGcSQA2d7GVvOLUyzimpal82LlxOMj8tL8IeoPYnaN
-1ZlIztxYxLt/2pQsgHSDxeCwFX5B/Q7y9PB4dnutJg2qSJYXLyHjlSsmN/mqgC/+
-3vZevJd/AgMBAAECggEBAJC4sitEyy1mo+QREpUbyAxq5ASlhDyvK4nJwnpH7dsG
-b4HqA1TbO9Vyw6QGZ/HxdzrTVGJF2jp6upSmirqZ73yF1UWdHTmq34eG3347clJR
-tCjdL8oxQp3v5//kbimXKoeVm/T1iLyMoKTRlny1qWLrVKFJIK8FcEDijl2bHEbL
-fdlPSJTN+y0zWoS3urRi/IPrsob23B4ILj0n+yUR4eOK25I3trqgsqcfTyMhX8tH
-eyD4C+ir0j5evnmBhsKL0cUgGxGj8aVdOgab8dlKlDNi7HH5fe/FTMAQ344uege8
-D5dytc1H4wWq3le1PsvCh56lyPx7P4BamNzuJ85OnWECgYEA8xSw544oIe6RzMxh
-51pYLyf1aU8zd9w0ISkXnXQ4RxcNubbFHLu/S/vSlbE5qqSf128H3XkAP6HT6UJe
-JS/WqJbUcdWkzULjj7fLXJ2oer3hrVXq2L9Me1l0XrYoBvRuap15AtQ/cxafxMUZ
-HpEWam0EPxoTkTp4EUWi++U09yMCgYEA6org2l1qdqChHw3ihlfl3rKMY/DT+f1b
-uMnbMKNhqgyV3ItSh7MnVJurvJ56CQVuVay+T11qfyo3cKzxNYLYTGLvAtBeK/aC
-B/hdCvxMBpXd71Vlnz0w6qJi0mkGNNTFGzxwqwPByqP0NyKStPN3W98HwFhiqKmU
-y8wpv5ZeUfUCgYEAx1Ba8bLdc10zzbJ0QIgSsK/aCXx4njo/wET6aQ/HqXrctT+J
-BlNnur0EYduMhkAwFCylTVMPAh4GLUhO+7zrDReHoMNmOywyfUBeDlXztJkHd+Jw
-C0NoSegChDpmPbWk5+SxOcGhORP+8xAN1cNvltpG1hrimn1PwBHSXysEr/MCgYEA
-hLVUCPp2dOzqfcHDfLRbcqigWyQ3LOo4bdR5W4n2httcKFAEwJeUF4GFqNIaxuP1
-zDBT9mArFAz1FaIlUVvZu073YiY4QrPWW2AidUbQVaGS1AsD1xguh3SeaePXCSmi
-5YhLT9huXJRsaI39aLmhva/ymNjp6fkaIj5BGRCiCckCgYEAkZjADCg9gcqJo5oc
-RDMpHT8C6SjE6+W0+00AnH1rSK0ev7uAGb6/rOpsShRiGubo7Ekil1MyMuOFmLPK
-9K5oi4KKmVfTaPMfm2UnVCC2Dv2nMXkmYdQKiGgwbAhYfu/wGQXj682r2YYD4Xsa
-qz7cWosuOKihAVhA52vZ7YacW2c=
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate2-ca-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate2-ca-cert.pem
deleted file mode 100644
index 7305fe0e1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate2-ca-cert.pem
+++ /dev/null
@@ -1,186 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 2 (0x2)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL intermediate CA 2/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:d0:20:3c:35:19:6f:2c:44:b4:7e:42:c7:75:b4:
- 6a:2b:a9:23:85:bf:87:b4:ee:ca:d7:4b:1f:31:d7:
- 11:02:a1:ab:58:3d:fb:dc:51:ca:3a:1d:1f:95:a6:
- 56:82:f7:8f:ff:6b:50:bb:ea:10:e1:47:1d:35:77:
- 2e:4b:28:c5:53:46:23:2b:82:fd:5a:d3:f4:21:db:
- 0e:e0:f2:76:33:47:b3:00:be:3a:b1:23:98:53:eb:
- ea:a0:de:1b:cc:05:4e:ee:63:a8:2c:93:24:d6:98:
- 78:74:03:e4:c8:89:43:61:f1:25:b8:cd:3b:87:c1:
- 31:25:fd:ba:4c:fc:29:94:45:9e:69:d7:67:0a:8a:
- 8e:d5:52:93:30:a2:0e:dd:6a:1c:b0:94:77:db:52:
- 52:b7:89:21:be:96:75:24:cb:e9:49:df:81:9d:9d:
- f8:55:7d:01:2a:eb:78:03:12:e2:20:6e:db:63:35:
- cd:a1:96:f0:f8:8c:20:35:69:87:01:ca:b4:54:36:
- a0:15:e0:23:7d:b9:fb:be:99:05:50:f0:bf:ec:7f:
- 12:e1:3d:75:15:4e:c8:c2:30:e6:8b:fe:e5:8b:55:
- f8:44:5e:e5:e3:56:e0:66:2d:6f:42:5a:45:6b:96:
- aa:c7:5d:41:08:5f:ce:d7:dc:9f:20:e4:46:78:ff:
- d9:99
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 05:D1:BA:86:00:A2:EE:2A:05:24:B7:11:AD:2D:60:F1:90:14:8F:17
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 92:6e:c1:af:88:af:46:f2:6e:8a:8c:27:06:8e:b4:38:35:9b:
- 47:92:24:20:e5:a5:13:d8:35:d3:2e:37:ca:74:47:e5:16:a3:
- 03:63:16:b4:28:2b:d9:04:ab:ee:e4:0a:e5:87:da:d4:00:3a:
- 53:c6:c9:25:6a:8f:49:d2:2e:34:f2:40:65:6e:02:fc:b9:42:
- 3f:ef:cb:8c:79:84:03:84:dc:a0:68:1e:c7:c7:36:8c:60:14:
- 55:f2:5f:f9:c1:3f:2b:f6:a2:1e:34:1f:83:ba:73:bc:b7:62:
- bc:97:66:84:09:b9:2d:76:71:c8:91:fd:e2:e1:39:cf:dd:ec:
- 98:a8:49:69:89:a8:18:2a:42:e7:fc:ab:2c:cf:13:ab:63:fe:
- b0:19:ea:1a:38:22:16:11:31:34:43:fc:50:c6:ec:19:97:03:
- db:e8:07:28:48:88:3a:e5:35:a2:fd:83:12:df:55:70:72:61:
- 0d:f8:66:18:52:58:c9:46:97:86:31:9e:a2:43:0c:b9:0f:d3:
- eb:35:c9:e5:19:4e:b4:8b:d2:ac:ea:bf:83:2a:48:9d:20:a0:
- 08:45:60:92:8a:27:06:93:77:74:bb:0e:22:8e:54:17:f2:d4:
- e7:7f:f3:90:4d:cc:75:e7:16:c5:9c:4a:cf:dc:f2:19:18:12:
- f5:72:8e:2e
------BEGIN CERTIFICATE-----
-MIIE8DCCA9igAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBoTELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMSIwIAYDVQQDDBl3b2xmU1NMIGludGVy
-bWVkaWF0ZSBDQSAyMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0CA8NRlvLES0fkLHdbRqK6kj
-hb+HtO7K10sfMdcRAqGrWD373FHKOh0flaZWgveP/2tQu+oQ4UcdNXcuSyjFU0Yj
-K4L9WtP0IdsO4PJ2M0ezAL46sSOYU+vqoN4bzAVO7mOoLJMk1ph4dAPkyIlDYfEl
-uM07h8ExJf26TPwplEWeaddnCoqO1VKTMKIO3WocsJR321JSt4khvpZ1JMvpSd+B
-nZ34VX0BKut4AxLiIG7bYzXNoZbw+IwgNWmHAcq0VDagFeAjfbn7vpkFUPC/7H8S
-4T11FU7IwjDmi/7li1X4RF7l41bgZi1vQlpFa5aqx11BCF/O19yfIORGeP/ZmQID
-AQABo4IBOTCCATUwDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUBdG6hgCi7ioFJLcR
-rS1g8ZAUjxcwgcQGA1UdIwSBvDCBuYAUc7AcpC+Cy89HpTjXsASCOn5yFSGhgZ2k
-gZowgZcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH
-DAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtFbmdpbmVlcmlu
-ZzEYMBYGA1UEAwwPd29sZlNTTCByb290IENBMR8wHQYJKoZIhvcNAQkBFhBpbmZv
-QHdvbGZzc2wuY29tggFjMAsGA1UdDwQEAwIBBjAyBggrBgEFBQcBAQQmMCQwIgYI
-KwYBBQUHMAGGFmh0dHA6Ly8xMjcuMC4wLjE6MjIyMjAwDQYJKoZIhvcNAQELBQAD
-ggEBAJJuwa+Ir0byboqMJwaOtDg1m0eSJCDlpRPYNdMuN8p0R+UWowNjFrQoK9kE
-q+7kCuWH2tQAOlPGySVqj0nSLjTyQGVuAvy5Qj/vy4x5hAOE3KBoHsfHNoxgFFXy
-X/nBPyv2oh40H4O6c7y3YryXZoQJuS12cciR/eLhOc/d7JioSWmJqBgqQuf8qyzP
-E6tj/rAZ6ho4IhYRMTRD/FDG7BmXA9voByhIiDrlNaL9gxLfVXByYQ34ZhhSWMlG
-l4YxnqJDDLkP0+s1yeUZTrSL0qzqv4MqSJ0goAhFYJKKJwaTd3S7DiKOVBfy1Od/
-85BNzHXnFsWcSs/c8hkYEvVyji4=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 99 (0x63)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ab:2c:b4:2f:1d:06:09:ef:4e:29:86:84:7e:cc:
- bf:a6:79:7c:f0:c0:c1:64:25:8c:75:b7:10:05:ca:
- 48:27:0c:0e:32:1c:b0:fe:99:85:39:b6:b9:a2:f7:
- 27:ff:6d:3c:8c:16:73:29:21:7f:8b:a6:54:71:90:
- ad:cc:05:b9:9f:15:c7:0a:3f:5f:69:f4:0a:5f:8c:
- 71:b5:2c:bf:66:e2:03:9a:32:f4:d2:ec:2a:89:4b:
- f9:35:88:14:33:47:4e:2e:05:79:01:ed:64:36:76:
- b9:f8:85:cd:01:88:ac:c5:b2:b1:59:b8:cd:5a:f4:
- 09:09:38:9b:da:5a:cf:ce:78:99:1f:49:3d:41:d6:
- 06:7c:52:99:c8:97:d1:b3:80:3a:a2:4f:36:c4:c5:
- 96:30:77:31:38:c8:70:cc:e1:67:06:b3:2b:2f:93:
- b5:69:cf:83:7e:88:53:9b:0f:46:21:4c:d6:05:36:
- 44:99:60:68:47:e5:32:01:12:d4:10:73:ae:9a:34:
- 94:fa:6e:b8:58:4f:7b:5b:8a:92:97:ad:fd:97:b9:
- 75:ca:c2:d4:45:7d:17:6b:cd:2f:f3:63:7a:0e:30:
- b5:0b:a9:d9:a6:7c:74:60:9d:cc:09:03:43:f1:0f:
- 90:d3:b7:fe:6c:9f:d9:cd:78:4b:15:ae:8c:5b:f9:
- 99:81
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 6b:10:b1:f8:cb:77:ef:72:f5:f8:fc:70:6d:18:dc:34:fe:d7:
- 95:d8:fd:85:8e:ca:4b:f3:be:1f:eb:14:08:dc:23:34:78:98:
- 39:d7:9f:c3:52:f6:14:3d:e9:de:5c:c2:d8:b1:4b:a8:4c:5b:
- 91:42:66:da:7f:3c:e9:03:20:5e:08:0f:76:79:b9:21:10:89:
- b7:73:46:44:7e:6e:28:0c:00:e4:f4:3e:65:aa:f5:c6:27:57:
- 2c:bb:1d:ae:e5:94:57:a3:73:9e:6b:44:00:35:4a:f3:c7:34:
- 9c:a2:a7:aa:62:9f:1d:ef:a8:6c:be:07:ad:ef:ae:ee:93:0b:
- ba:c3:59:4e:90:40:2d:00:5e:f0:0f:0a:de:18:2a:b3:97:31:
- 63:84:ff:18:1c:b6:d8:7d:ee:33:ed:99:f0:f5:7f:88:58:b3:
- 0d:90:db:eb:44:7e:06:37:61:d4:34:b9:f6:fd:3e:8d:07:e4:
- b5:b0:ae:09:ce:98:e4:b0:1b:d5:7b:53:94:dd:8a:b2:20:d6:
- b0:72:f8:b1:bc:76:df:16:86:39:7b:e4:a9:15:47:57:ae:ca:
- 41:d6:3a:ba:15:d1:c0:b5:38:66:0b:0f:80:8b:a2:07:b4:fc:
- 80:1f:a3:4c:1f:d2:65:97:c1:2c:ae:46:31:61:49:0d:d7:5f:
- ac:d2:a6:05
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIBYzANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBlzELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NMIHJvb3Qg
-Q0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCrLLQvHQYJ704phoR+zL+meXzwwMFkJYx1txAF
-ykgnDA4yHLD+mYU5trmi9yf/bTyMFnMpIX+LplRxkK3MBbmfFccKP19p9ApfjHG1
-LL9m4gOaMvTS7CqJS/k1iBQzR04uBXkB7WQ2drn4hc0BiKzFsrFZuM1a9AkJOJva
-Ws/OeJkfST1B1gZ8UpnIl9GzgDqiTzbExZYwdzE4yHDM4WcGsysvk7Vpz4N+iFOb
-D0YhTNYFNkSZYGhH5TIBEtQQc66aNJT6brhYT3tbipKXrf2XuXXKwtRFfRdrzS/z
-Y3oOMLULqdmmfHRgncwJA0PxD5DTt/5sn9nNeEsVroxb+ZmBAgMBAAGjggE5MIIB
-NTAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRzsBykL4LLz0elONewBII6fnIVITCB
-xAYDVR0jBIG8MIG5gBRzsBykL4LLz0elONewBII6fnIVIaGBnaSBmjCBlzELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-EDAOBgNVBAoMB3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQD
-DA93b2xmU1NMIHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b22CAWMwCwYDVR0PBAQDAgEGMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYW
-aHR0cDovLzEyNy4wLjAuMToyMjIyMDANBgkqhkiG9w0BAQsFAAOCAQEAaxCx+Mt3
-73L1+PxwbRjcNP7Xldj9hY7KS/O+H+sUCNwjNHiYOdefw1L2FD3p3lzC2LFLqExb
-kUJm2n886QMgXggPdnm5IRCJt3NGRH5uKAwA5PQ+Zar1xidXLLsdruWUV6NznmtE
-ADVK88c0nKKnqmKfHe+obL4Hre+u7pMLusNZTpBALQBe8A8K3hgqs5cxY4T/GBy2
-2H3uM+2Z8PV/iFizDZDb60R+Bjdh1DS59v0+jQfktbCuCc6Y5LAb1XtTlN2KsiDW
-sHL4sbx23xaGOXvkqRVHV67KQdY6uhXRwLU4ZgsPgIuiB7T8gB+jTB/SZZfBLK5G
-MWFJDddfrNKmBQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate2-ca-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate2-ca-key.pem
deleted file mode 100644
index 61cec0879..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate2-ca-key.pem
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDQIDw1GW8sRLR+
-Qsd1tGorqSOFv4e07srXSx8x1xECoatYPfvcUco6HR+VplaC94//a1C76hDhRx01
-dy5LKMVTRiMrgv1a0/Qh2w7g8nYzR7MAvjqxI5hT6+qg3hvMBU7uY6gskyTWmHh0
-A+TIiUNh8SW4zTuHwTEl/bpM/CmURZ5p12cKio7VUpMwog7dahywlHfbUlK3iSG+
-lnUky+lJ34GdnfhVfQEq63gDEuIgbttjNc2hlvD4jCA1aYcByrRUNqAV4CN9ufu+
-mQVQ8L/sfxLhPXUVTsjCMOaL/uWLVfhEXuXjVuBmLW9CWkVrlqrHXUEIX87X3J8g
-5EZ4/9mZAgMBAAECggEAR2vofWhfCFgDgJi2DiR9ksIWWJ2jmmmf3kX/TIE7ayXD
-wSJ0PeUresnnvtk4MvV1yvcu2221oTlgQqrFjjFNlggppZLsErFNxBiCgJt0CKEA
-Qq8FQSiv64y4FcBi1Z60uYYlfjZ4m9Py8g0sA81m/ENe6I41cZ7QmPL7bdPTCPhE
-cGwPKjkw1xwDn6EeK5x5sscfCrlKXsH4zhXH67r2iwQ7x5+t4pWApdT15rMX+r0E
-HzBoj4wjhR7yo9nZDqhBZiOJF/zQGTCkj6J451Rj47s42fLTYgVyW5D1DO9wBvQQ
-i7AwwDuimVqKNGW7J/oRjhiBAKFr2IOGcAFJJbM3SQKBgQD1JRO9umdNfqj38kw5
-DMeydVITvhYjSfc+F2R1hldX9kSdowttJ3GwArnjsZLSfttj7/gnRVPJC+OWvJGm
-AmegmCXJGl/mtDAlN+MDJw2/KEdcC4CHMqRokrNNF3zafbTDIDq24kAMx1wef46k
-8+9F3IPY+arD50LSkS5+gUUk1wKBgQDZV4R9yCeAE8o+ejks7lBC8kk5CxZKbXPA
-o4vPHGKOknmZGqfKJY9Auk7nk4g56K9GxlotlsjwCwuSBdkqjDkqMypHG9odh6s8
-8iFjVGvJvY6x+PXONW6cjG2K6Lif0o0/bx+C+2Sy05koV1eYY4+EskafqTxbQgSa
-0t85a6u3DwKBgGK4g7KsFl3G3BS9pqRy2Ris1ljM++1KJB8FHJeXeiUaL5eryTYz
-5DyVXHatVAsguwkL4ksuSAd2mjhhx+WqokCyBMVvsZ8egST71Je4anjIp7QRjbjk
-VAEo0rwA8W6roNfTatGrW0/KGPbPN4qGEZ14qEAAixxJTUeu36JiPI4RAoGASK43
-pEh2zSHRFCuTSy82r+yOCAFpJuKLPvRyIISBgOQCvexoB/WffinPkSmI+LSTSLu0
-FGLEN2G6MM673LqfszkA/l6WBiIEZZEjETB+CyzUtzdmG9tKbheX2kgQ1YF3sqra
-gtbGyfZw1UjABjnlGJ71dxcFFA9zssKp223iMokCgYAEBpHy/x90qWR6d9ApXZnC
-PMvcZCa2EgQWBabOkyxF7Ao8mIu0K4rqRM9XBlboRRBQdEP3qL7whJ2voZ7frZYH
-E9hcwnH4F6rBki9PHbEaU80FfTUplKr+qMJavhQ8O1zGhWr7JSF6ByqTQDYWI8BX
-3Q6DAbgdQeeCKFpi4256AA==
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate3-ca-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate3-ca-cert.pem
deleted file mode 100644
index 365426bb5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate3-ca-cert.pem
+++ /dev/null
@@ -1,186 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 3 (0x3)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL REVOKED intermediate CA/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:de:c5:04:10:7d:c2:21:e9:12:45:da:d5:ba:28:
- fd:a6:f4:30:44:a0:df:f9:70:5e:17:26:97:59:5c:
- 31:eb:13:70:ea:4a:dd:58:3e:4f:33:14:66:59:69:
- 7a:aa:90:e0:7c:c4:b2:36:c1:0a:f4:df:3e:34:6c:
- 1a:e9:2b:f1:a5:92:7e:a9:68:70:ba:a4:68:88:f3:
- ec:10:40:64:a5:64:7d:d9:1e:51:49:9d:7f:c8:cc:
- 2b:6d:71:2a:06:ff:e6:1f:84:28:8a:c1:ed:a8:52:
- f4:89:a5:c0:77:d8:13:66:c2:65:a5:63:03:98:b0:
- 4b:05:4f:0c:84:a0:f4:2d:72:73:6b:fa:0d:e1:cf:
- 45:27:ed:a3:8c:02:d7:ee:99:e2:a1:f0:e3:a0:ad:
- 69:ed:59:e4:27:41:8f:ef:fa:83:73:8f:5f:2b:68:
- 89:13:46:26:dc:f6:28:6b:3b:b2:b8:9b:52:2a:17:
- 1b:dc:72:45:73:da:75:24:35:8b:00:5e:23:37:64:
- 6a:16:74:b8:ee:fe:b7:11:71:be:0a:73:c8:54:c2:
- d9:04:d2:1b:f5:53:ac:8d:2a:4f:fe:33:79:e6:5e:
- e7:f3:86:d3:dc:bb:4b:d7:39:7f:5b:3c:67:fe:5e:
- 88:51:05:96:f2:b4:9a:45:09:4c:51:f0:6a:4d:88:
- 2a:17
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- BB:15:9E:32:4D:E0:F8:AA:8A:B0:2E:0C:17:2B:5A:41:74:4B:06:45
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 63:bf:90:58:0c:44:08:57:7d:94:7e:eb:fd:9d:90:f6:1d:a5:
- 91:2a:32:38:a7:f7:39:c2:c0:9c:93:26:bc:f4:4b:81:0a:0f:
- 07:2d:4f:a9:20:9a:3e:2c:24:0c:30:10:d7:be:96:ab:ee:1f:
- 2c:f8:71:7c:1a:c1:ae:b7:64:e1:7e:18:53:c3:ae:d5:04:16:
- f7:e5:34:c2:d1:a3:31:d4:9b:f4:b7:c1:96:1f:a7:3c:3a:bf:
- fd:06:be:76:f4:da:95:f9:6f:be:4f:24:a7:0f:b0:2c:12:4d:
- d6:55:ea:f8:0a:30:91:32:4f:a3:14:6d:ec:cd:85:12:1f:da:
- 78:8a:b1:9a:74:fb:fd:00:45:4a:30:83:45:16:a0:8f:b7:7f:
- 23:33:91:c6:81:ac:f3:9b:cd:53:6b:9a:fa:36:9b:5d:3c:72:
- a8:73:4f:1e:b5:da:ba:08:3d:9b:ca:7a:d6:c2:bf:6e:9f:a5:
- 9e:db:61:bc:a5:42:a7:d4:92:4a:7e:a3:3d:1b:aa:d3:c2:93:
- ad:ce:3b:0e:2b:61:44:1e:3c:61:54:0d:6a:26:21:54:c6:e0:
- ed:3d:da:27:cd:89:5a:f8:1f:0f:46:80:c1:f2:80:cc:52:f1:
- 7f:ce:10:68:66:3f:ee:90:25:45:d4:f8:87:f9:5d:5d:74:3d:
- aa:3d:43:1c
------BEGIN CERTIFICATE-----
-MIIE9jCCA96gAwIBAgIBAzANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBpzELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMSgwJgYDVQQDDB93b2xmU1NMIFJFVk9L
-RUQgaW50ZXJtZWRpYXRlIENBMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3sUEEH3CIekSRdrV
-uij9pvQwRKDf+XBeFyaXWVwx6xNw6krdWD5PMxRmWWl6qpDgfMSyNsEK9N8+NGwa
-6SvxpZJ+qWhwuqRoiPPsEEBkpWR92R5RSZ1/yMwrbXEqBv/mH4QoisHtqFL0iaXA
-d9gTZsJlpWMDmLBLBU8MhKD0LXJza/oN4c9FJ+2jjALX7pniofDjoK1p7VnkJ0GP
-7/qDc49fK2iJE0Ym3PYoazuyuJtSKhcb3HJFc9p1JDWLAF4jN2RqFnS47v63EXG+
-CnPIVMLZBNIb9VOsjSpP/jN55l7n84bT3LtL1zl/Wzxn/l6IUQWW8rSaRQlMUfBq
-TYgqFwIDAQABo4IBOTCCATUwDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUuxWeMk3g
-+KqKsC4MFytaQXRLBkUwgcQGA1UdIwSBvDCBuYAUc7AcpC+Cy89HpTjXsASCOn5y
-FSGhgZ2kgZowgZcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAw
-DgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtFbmdp
-bmVlcmluZzEYMBYGA1UEAwwPd29sZlNTTCByb290IENBMR8wHQYJKoZIhvcNAQkB
-FhBpbmZvQHdvbGZzc2wuY29tggFjMAsGA1UdDwQEAwIBBjAyBggrBgEFBQcBAQQm
-MCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly8xMjcuMC4wLjE6MjIyMjAwDQYJKoZIhvcN
-AQELBQADggEBAGO/kFgMRAhXfZR+6/2dkPYdpZEqMjin9znCwJyTJrz0S4EKDwct
-T6kgmj4sJAwwENe+lqvuHyz4cXwawa63ZOF+GFPDrtUEFvflNMLRozHUm/S3wZYf
-pzw6v/0Gvnb02pX5b75PJKcPsCwSTdZV6vgKMJEyT6MUbezNhRIf2niKsZp0+/0A
-RUowg0UWoI+3fyMzkcaBrPObzVNrmvo2m108cqhzTx612roIPZvKetbCv26fpZ7b
-YbylQqfUkkp+oz0bqtPCk63OOw4rYUQePGFUDWomIVTG4O092ifNiVr4Hw9GgMHy
-gMxS8X/OEGhmP+6QJUXU+If5XV10Pao9Qxw=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 99 (0x63)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ab:2c:b4:2f:1d:06:09:ef:4e:29:86:84:7e:cc:
- bf:a6:79:7c:f0:c0:c1:64:25:8c:75:b7:10:05:ca:
- 48:27:0c:0e:32:1c:b0:fe:99:85:39:b6:b9:a2:f7:
- 27:ff:6d:3c:8c:16:73:29:21:7f:8b:a6:54:71:90:
- ad:cc:05:b9:9f:15:c7:0a:3f:5f:69:f4:0a:5f:8c:
- 71:b5:2c:bf:66:e2:03:9a:32:f4:d2:ec:2a:89:4b:
- f9:35:88:14:33:47:4e:2e:05:79:01:ed:64:36:76:
- b9:f8:85:cd:01:88:ac:c5:b2:b1:59:b8:cd:5a:f4:
- 09:09:38:9b:da:5a:cf:ce:78:99:1f:49:3d:41:d6:
- 06:7c:52:99:c8:97:d1:b3:80:3a:a2:4f:36:c4:c5:
- 96:30:77:31:38:c8:70:cc:e1:67:06:b3:2b:2f:93:
- b5:69:cf:83:7e:88:53:9b:0f:46:21:4c:d6:05:36:
- 44:99:60:68:47:e5:32:01:12:d4:10:73:ae:9a:34:
- 94:fa:6e:b8:58:4f:7b:5b:8a:92:97:ad:fd:97:b9:
- 75:ca:c2:d4:45:7d:17:6b:cd:2f:f3:63:7a:0e:30:
- b5:0b:a9:d9:a6:7c:74:60:9d:cc:09:03:43:f1:0f:
- 90:d3:b7:fe:6c:9f:d9:cd:78:4b:15:ae:8c:5b:f9:
- 99:81
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 6b:10:b1:f8:cb:77:ef:72:f5:f8:fc:70:6d:18:dc:34:fe:d7:
- 95:d8:fd:85:8e:ca:4b:f3:be:1f:eb:14:08:dc:23:34:78:98:
- 39:d7:9f:c3:52:f6:14:3d:e9:de:5c:c2:d8:b1:4b:a8:4c:5b:
- 91:42:66:da:7f:3c:e9:03:20:5e:08:0f:76:79:b9:21:10:89:
- b7:73:46:44:7e:6e:28:0c:00:e4:f4:3e:65:aa:f5:c6:27:57:
- 2c:bb:1d:ae:e5:94:57:a3:73:9e:6b:44:00:35:4a:f3:c7:34:
- 9c:a2:a7:aa:62:9f:1d:ef:a8:6c:be:07:ad:ef:ae:ee:93:0b:
- ba:c3:59:4e:90:40:2d:00:5e:f0:0f:0a:de:18:2a:b3:97:31:
- 63:84:ff:18:1c:b6:d8:7d:ee:33:ed:99:f0:f5:7f:88:58:b3:
- 0d:90:db:eb:44:7e:06:37:61:d4:34:b9:f6:fd:3e:8d:07:e4:
- b5:b0:ae:09:ce:98:e4:b0:1b:d5:7b:53:94:dd:8a:b2:20:d6:
- b0:72:f8:b1:bc:76:df:16:86:39:7b:e4:a9:15:47:57:ae:ca:
- 41:d6:3a:ba:15:d1:c0:b5:38:66:0b:0f:80:8b:a2:07:b4:fc:
- 80:1f:a3:4c:1f:d2:65:97:c1:2c:ae:46:31:61:49:0d:d7:5f:
- ac:d2:a6:05
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIBYzANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBlzELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NMIHJvb3Qg
-Q0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCrLLQvHQYJ704phoR+zL+meXzwwMFkJYx1txAF
-ykgnDA4yHLD+mYU5trmi9yf/bTyMFnMpIX+LplRxkK3MBbmfFccKP19p9ApfjHG1
-LL9m4gOaMvTS7CqJS/k1iBQzR04uBXkB7WQ2drn4hc0BiKzFsrFZuM1a9AkJOJva
-Ws/OeJkfST1B1gZ8UpnIl9GzgDqiTzbExZYwdzE4yHDM4WcGsysvk7Vpz4N+iFOb
-D0YhTNYFNkSZYGhH5TIBEtQQc66aNJT6brhYT3tbipKXrf2XuXXKwtRFfRdrzS/z
-Y3oOMLULqdmmfHRgncwJA0PxD5DTt/5sn9nNeEsVroxb+ZmBAgMBAAGjggE5MIIB
-NTAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRzsBykL4LLz0elONewBII6fnIVITCB
-xAYDVR0jBIG8MIG5gBRzsBykL4LLz0elONewBII6fnIVIaGBnaSBmjCBlzELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-EDAOBgNVBAoMB3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQD
-DA93b2xmU1NMIHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b22CAWMwCwYDVR0PBAQDAgEGMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYW
-aHR0cDovLzEyNy4wLjAuMToyMjIyMDANBgkqhkiG9w0BAQsFAAOCAQEAaxCx+Mt3
-73L1+PxwbRjcNP7Xldj9hY7KS/O+H+sUCNwjNHiYOdefw1L2FD3p3lzC2LFLqExb
-kUJm2n886QMgXggPdnm5IRCJt3NGRH5uKAwA5PQ+Zar1xidXLLsdruWUV6NznmtE
-ADVK88c0nKKnqmKfHe+obL4Hre+u7pMLusNZTpBALQBe8A8K3hgqs5cxY4T/GBy2
-2H3uM+2Z8PV/iFizDZDb60R+Bjdh1DS59v0+jQfktbCuCc6Y5LAb1XtTlN2KsiDW
-sHL4sbx23xaGOXvkqRVHV67KQdY6uhXRwLU4ZgsPgIuiB7T8gB+jTB/SZZfBLK5G
-MWFJDddfrNKmBQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate3-ca-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate3-ca-key.pem
deleted file mode 100644
index 03ebd4154..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/intermediate3-ca-key.pem
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDexQQQfcIh6RJF
-2tW6KP2m9DBEoN/5cF4XJpdZXDHrE3DqSt1YPk8zFGZZaXqqkOB8xLI2wQr03z40
-bBrpK/Glkn6paHC6pGiI8+wQQGSlZH3ZHlFJnX/IzCttcSoG/+YfhCiKwe2oUvSJ
-pcB32BNmwmWlYwOYsEsFTwyEoPQtcnNr+g3hz0Un7aOMAtfumeKh8OOgrWntWeQn
-QY/v+oNzj18raIkTRibc9ihrO7K4m1IqFxvcckVz2nUkNYsAXiM3ZGoWdLju/rcR
-cb4Kc8hUwtkE0hv1U6yNKk/+M3nmXufzhtPcu0vXOX9bPGf+XohRBZbytJpFCUxR
-8GpNiCoXAgMBAAECggEAFkESRd96TE7vT2EsJru/kzUjuUdk+JM8Iw3s4rVuGzDG
-//DYqd8XpF+uVdJOucldU7mGoCeqw4mlujDug0qrikHXO28+i7au5rePZpQ4ObmP
-ROhdcIA2asXStM0wSKC5yX43Wp1C86TN3w5a6t4AGizjYKFCk7dQ10ftVTaLDhsI
-I4uuEZAHA7ruKmQp1DbE+/696kY4GUh2SXYQxee1zb/yYDvA6lGhuDW2Jev+4v4l
-+1LZq8E2bE4GsmiLEALiHAdGvOrkZ5MUkiHVTnhGz7THK0OMj/4dJlNCwusyO+O5
-4Zr2LJQ2rnAtVGdtKuVsgwHwQBPpV9bJPkDXEzlXUQKBgQD38kxnjJ5nv0plMA+E
-QViItp0qgQeXX18YTlh8yicqVe+t9kKnHm1tqZx/djvvR/51p0SkMfWNvMn8JYXa
-dfT3ZX0djrzR9o6FgR8rL+LmPg6jyIn71wBqmMf7A6WQVYuG7fQk3IJNtx52BKcS
-f8r2tsdPX8d/FBsCn3m/ZxaEyQKBgQDmAV5xxTbJKdea5pfH33BOCp6HTqSYgf4Y
-/5GEO0YLmQoBXAKbX+zcAeiaOt5WvLQgw7LfkznitPlxCkpHr9VcgVarlEjXHa7y
-SeJfik5cIFbMZtXqaQ/DIUvOTgnb/ngLxEdrzX4JUnlv/z1BEhWvEYaHn0asEsc4
-zbbcKoEH3wKBgQDRisobcPGmSDm9TmKuqPMDhyFH/IfH2+foCL4rqER1OO84G7i0
-t7hPR1plNizsyfE4yUXvZfFZ+cTR/Xwj5jBCrFiSlEDrSO2l0jvfKbceUi/ZJu/G
-ECvf6oKHlstjMYibXZpJVLoip7Fsl/4CWlHTMyE56X4V3Y3+J3yiz6JuUQKBgDPS
-byMXGibs5IUkG2KPN1B+GAXIdFFgSI39Vx4B9OA8FQMFZhj33fgb/fpx9RJ55ePT
-9ANnuo0X1XPgq6fHOD1lbs+t01OUfoxclUKNeOZM6wGW0e/EyCZg5CGRd6s3hHiy
-Op1RaWpUSMQxL+3vUy9ktXjtLBEtEfH8d4zXjsblAoGBAMPAdSskbG+upEYcNR2O
-++R9X8BkWhaTDqkAuygsGJDomIgH89wROdlTnsi5LXe/r3uCocRC+M1ChRXm7Zqs
-81QjVdls6HVZu5rG82S8itqdXHOXCajb1ls+lNiu7/9tPJVmpYfjfjD4/QHV0vF/
-FqdfthIOUXePjrAKccJDiJIk
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/ocsp-responder-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/ocsp-responder-cert.pem
deleted file mode 100644
index 447bc0f77..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/ocsp-responder-cert.pem
+++ /dev/null
@@ -1,182 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 4 (0x4)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL OCSP Responder/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b8:ba:23:b4:f6:c3:7b:14:c3:a4:f5:1d:61:a1:
- f5:1e:63:b9:85:23:34:50:6d:f8:7c:a2:8a:04:8b:
- d5:75:5c:2d:f7:63:88:d1:07:7a:ea:0b:45:35:2b:
- eb:1f:b1:22:b4:94:41:38:e2:9d:74:d6:8b:30:22:
- 10:51:c5:db:ca:3f:46:2b:fe:e5:5a:3f:41:74:67:
- 75:95:a9:94:d5:c3:ee:42:f8:8d:eb:92:95:e1:d9:
- 65:b7:43:c4:18:de:16:80:90:ce:24:35:21:c4:55:
- ac:5a:51:e0:2e:2d:b3:0a:5a:4f:4a:73:31:50:ee:
- 4a:16:bd:39:8b:ad:05:48:87:b1:99:e2:10:a7:06:
- 72:67:ca:5c:d1:97:bd:c8:f1:76:f8:e0:4a:ec:bc:
- 93:f4:66:4c:28:71:d1:d8:66:03:b4:90:30:bb:17:
- b0:fe:97:f5:1e:e8:c7:5d:9b:8b:11:19:12:3c:ab:
- 82:71:78:ff:ae:3f:32:b2:08:71:b2:1b:8c:27:ac:
- 11:b8:d8:43:49:cf:b0:70:b1:f0:8c:ae:da:24:87:
- 17:3b:d8:04:65:6c:00:76:50:ef:15:08:d7:b4:73:
- 68:26:14:87:95:c3:5f:6e:61:b8:87:84:fa:80:1a:
- 0a:8b:98:f3:e3:ff:4e:44:1c:65:74:7c:71:54:65:
- e5:39
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- X509v3 Subject Key Identifier:
- 32:67:E1:B1:79:D2:81:FC:9F:23:0C:70:40:50:B5:46:56:B8:30:36
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Extended Key Usage:
- OCSP Signing
- Signature Algorithm: sha256WithRSAEncryption
- 9b:56:c5:5f:b9:b2:00:30:ca:05:2a:e8:c6:96:ba:aa:23:40:
- 40:89:6d:a2:7a:93:f2:c9:8a:6f:0e:5d:5f:6f:ce:5e:4b:38:
- a9:d2:ab:97:78:e3:73:3d:3d:27:e9:00:ce:16:d9:c5:c5:06:
- a8:eb:c6:e5:76:4c:f7:60:1a:69:ae:35:d6:f8:0f:da:9c:83:
- c6:fb:74:a6:12:e5:c7:64:ae:e7:2c:b6:d3:62:1f:f3:20:11:
- 2e:09:9b:14:f0:a3:17:d0:2c:be:4a:39:3a:55:58:2f:90:37:
- 04:c5:54:27:9d:0e:51:97:da:21:df:05:ec:ca:79:a8:ca:02:
- ca:cf:b7:05:ef:04:fa:f9:81:20:10:c1:7d:4a:a7:93:13:28:
- 1e:98:a7:3e:4c:01:13:c3:6b:14:e1:87:37:5f:3a:d3:7d:b6:
- d4:d9:0d:56:93:7f:1d:e9:c2:35:c7:11:7f:42:d0:d5:3d:5f:
- f6:fc:23:24:e3:45:7f:4f:9e:18:df:7b:41:80:fa:bb:bd:16:
- e1:eb:c5:78:52:88:cd:82:c7:92:3a:ce:cb:c6:07:05:ec:70:
- 0e:e8:db:44:8f:3b:f3:41:de:b2:19:b0:f6:e0:5a:06:48:d9:
- b9:e2:2b:0f:ec:ec:1f:fb:83:4d:80:d4:6e:34:ed:78:a1:be:
- a2:cb:07:ab
------BEGIN CERTIFICATE-----
-MIIEvjCCA6agAwIBAgIBBDANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBnjELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMR8wHQYDVQQDDBZ3b2xmU1NMIE9DU1Ag
-UmVzcG9uZGVyMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuLojtPbDexTDpPUdYaH1HmO5hSM0
-UG34fKKKBIvVdVwt92OI0Qd66gtFNSvrH7EitJRBOOKddNaLMCIQUcXbyj9GK/7l
-Wj9BdGd1lamU1cPuQviN65KV4dllt0PEGN4WgJDOJDUhxFWsWlHgLi2zClpPSnMx
-UO5KFr05i60FSIexmeIQpwZyZ8pc0Ze9yPF2+OBK7LyT9GZMKHHR2GYDtJAwuxew
-/pf1HujHXZuLERkSPKuCcXj/rj8ysghxshuMJ6wRuNhDSc+wcLHwjK7aJIcXO9gE
-ZWwAdlDvFQjXtHNoJhSHlcNfbmG4h4T6gBoKi5jz4/9ORBxldHxxVGXlOQIDAQAB
-o4IBCjCCAQYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUMmfhsXnSgfyfIwxwQFC1Rla4
-MDYwgcQGA1UdIwSBvDCBuYAUc7AcpC+Cy89HpTjXsASCOn5yFSGhgZ2kgZowgZcx
-CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0
-dGxlMRAwDgYDVQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEYMBYG
-A1UEAwwPd29sZlNTTCByb290IENBMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tggFjMBMGA1UdJQQMMAoGCCsGAQUFBwMJMA0GCSqGSIb3DQEBCwUAA4IB
-AQCbVsVfubIAMMoFKujGlrqqI0BAiW2iepPyyYpvDl1fb85eSzip0quXeONzPT0n
-6QDOFtnFxQao68bldkz3YBpprjXW+A/anIPG+3SmEuXHZK7nLLbTYh/zIBEuCZsU
-8KMX0Cy+Sjk6VVgvkDcExVQnnQ5Rl9oh3wXsynmoygLKz7cF7wT6+YEgEMF9SqeT
-EygemKc+TAETw2sU4Yc3XzrTfbbU2Q1Wk38d6cI1xxF/QtDVPV/2/CMk40V/T54Y
-33tBgPq7vRbh68V4UojNgseSOs7LxgcF7HAO6NtEjzvzQd6yGbD24FoGSNm54isP
-7Owf+4NNgNRuNO14ob6iywer
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 99 (0x63)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ab:2c:b4:2f:1d:06:09:ef:4e:29:86:84:7e:cc:
- bf:a6:79:7c:f0:c0:c1:64:25:8c:75:b7:10:05:ca:
- 48:27:0c:0e:32:1c:b0:fe:99:85:39:b6:b9:a2:f7:
- 27:ff:6d:3c:8c:16:73:29:21:7f:8b:a6:54:71:90:
- ad:cc:05:b9:9f:15:c7:0a:3f:5f:69:f4:0a:5f:8c:
- 71:b5:2c:bf:66:e2:03:9a:32:f4:d2:ec:2a:89:4b:
- f9:35:88:14:33:47:4e:2e:05:79:01:ed:64:36:76:
- b9:f8:85:cd:01:88:ac:c5:b2:b1:59:b8:cd:5a:f4:
- 09:09:38:9b:da:5a:cf:ce:78:99:1f:49:3d:41:d6:
- 06:7c:52:99:c8:97:d1:b3:80:3a:a2:4f:36:c4:c5:
- 96:30:77:31:38:c8:70:cc:e1:67:06:b3:2b:2f:93:
- b5:69:cf:83:7e:88:53:9b:0f:46:21:4c:d6:05:36:
- 44:99:60:68:47:e5:32:01:12:d4:10:73:ae:9a:34:
- 94:fa:6e:b8:58:4f:7b:5b:8a:92:97:ad:fd:97:b9:
- 75:ca:c2:d4:45:7d:17:6b:cd:2f:f3:63:7a:0e:30:
- b5:0b:a9:d9:a6:7c:74:60:9d:cc:09:03:43:f1:0f:
- 90:d3:b7:fe:6c:9f:d9:cd:78:4b:15:ae:8c:5b:f9:
- 99:81
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 6b:10:b1:f8:cb:77:ef:72:f5:f8:fc:70:6d:18:dc:34:fe:d7:
- 95:d8:fd:85:8e:ca:4b:f3:be:1f:eb:14:08:dc:23:34:78:98:
- 39:d7:9f:c3:52:f6:14:3d:e9:de:5c:c2:d8:b1:4b:a8:4c:5b:
- 91:42:66:da:7f:3c:e9:03:20:5e:08:0f:76:79:b9:21:10:89:
- b7:73:46:44:7e:6e:28:0c:00:e4:f4:3e:65:aa:f5:c6:27:57:
- 2c:bb:1d:ae:e5:94:57:a3:73:9e:6b:44:00:35:4a:f3:c7:34:
- 9c:a2:a7:aa:62:9f:1d:ef:a8:6c:be:07:ad:ef:ae:ee:93:0b:
- ba:c3:59:4e:90:40:2d:00:5e:f0:0f:0a:de:18:2a:b3:97:31:
- 63:84:ff:18:1c:b6:d8:7d:ee:33:ed:99:f0:f5:7f:88:58:b3:
- 0d:90:db:eb:44:7e:06:37:61:d4:34:b9:f6:fd:3e:8d:07:e4:
- b5:b0:ae:09:ce:98:e4:b0:1b:d5:7b:53:94:dd:8a:b2:20:d6:
- b0:72:f8:b1:bc:76:df:16:86:39:7b:e4:a9:15:47:57:ae:ca:
- 41:d6:3a:ba:15:d1:c0:b5:38:66:0b:0f:80:8b:a2:07:b4:fc:
- 80:1f:a3:4c:1f:d2:65:97:c1:2c:ae:46:31:61:49:0d:d7:5f:
- ac:d2:a6:05
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIBYzANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBlzELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NMIHJvb3Qg
-Q0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCrLLQvHQYJ704phoR+zL+meXzwwMFkJYx1txAF
-ykgnDA4yHLD+mYU5trmi9yf/bTyMFnMpIX+LplRxkK3MBbmfFccKP19p9ApfjHG1
-LL9m4gOaMvTS7CqJS/k1iBQzR04uBXkB7WQ2drn4hc0BiKzFsrFZuM1a9AkJOJva
-Ws/OeJkfST1B1gZ8UpnIl9GzgDqiTzbExZYwdzE4yHDM4WcGsysvk7Vpz4N+iFOb
-D0YhTNYFNkSZYGhH5TIBEtQQc66aNJT6brhYT3tbipKXrf2XuXXKwtRFfRdrzS/z
-Y3oOMLULqdmmfHRgncwJA0PxD5DTt/5sn9nNeEsVroxb+ZmBAgMBAAGjggE5MIIB
-NTAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRzsBykL4LLz0elONewBII6fnIVITCB
-xAYDVR0jBIG8MIG5gBRzsBykL4LLz0elONewBII6fnIVIaGBnaSBmjCBlzELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-EDAOBgNVBAoMB3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQD
-DA93b2xmU1NMIHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b22CAWMwCwYDVR0PBAQDAgEGMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYW
-aHR0cDovLzEyNy4wLjAuMToyMjIyMDANBgkqhkiG9w0BAQsFAAOCAQEAaxCx+Mt3
-73L1+PxwbRjcNP7Xldj9hY7KS/O+H+sUCNwjNHiYOdefw1L2FD3p3lzC2LFLqExb
-kUJm2n886QMgXggPdnm5IRCJt3NGRH5uKAwA5PQ+Zar1xidXLLsdruWUV6NznmtE
-ADVK88c0nKKnqmKfHe+obL4Hre+u7pMLusNZTpBALQBe8A8K3hgqs5cxY4T/GBy2
-2H3uM+2Z8PV/iFizDZDb60R+Bjdh1DS59v0+jQfktbCuCc6Y5LAb1XtTlN2KsiDW
-sHL4sbx23xaGOXvkqRVHV67KQdY6uhXRwLU4ZgsPgIuiB7T8gB+jTB/SZZfBLK5G
-MWFJDddfrNKmBQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/ocsp-responder-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/ocsp-responder-key.pem
deleted file mode 100644
index 61c5616a9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/ocsp-responder-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEAuLojtPbDexTDpPUdYaH1HmO5hSM0UG34fKKKBIvVdVwt92OI
-0Qd66gtFNSvrH7EitJRBOOKddNaLMCIQUcXbyj9GK/7lWj9BdGd1lamU1cPuQviN
-65KV4dllt0PEGN4WgJDOJDUhxFWsWlHgLi2zClpPSnMxUO5KFr05i60FSIexmeIQ
-pwZyZ8pc0Ze9yPF2+OBK7LyT9GZMKHHR2GYDtJAwuxew/pf1HujHXZuLERkSPKuC
-cXj/rj8ysghxshuMJ6wRuNhDSc+wcLHwjK7aJIcXO9gEZWwAdlDvFQjXtHNoJhSH
-lcNfbmG4h4T6gBoKi5jz4/9ORBxldHxxVGXlOQIDAQABAoIBAGI2tR1VxYD+/TYL
-DGAIV+acZtqeaQYKMf8x++eG4SrQo6/QP8HDFFqzO0yV2SC0cRtJZ5PzCHxCRSaG
-Nd8EL2NMWOazUwW0c/yLtTypOPSeg2Mf+3SwLvgxOZ9CbFQ8YAJi+vbNOPLGCijL
-N0HWEkcC1P1kWWgKCWIloR7eEt0IQOb5PPSCu3buq/rForb6qUf+L+ESpWed6bnc
-uhIrHDuQ/PopW05fW1r61zI286wKdLRyatQsljNqPvVdFVhtCKqCqMHdIzMg2cbh
-q9DJMWc/KLjzBk6YPMZKm/4k4RXj+IwS+iITbpUNrhYj2TMevBMPW3AIRobD823D
-ehQv+rECgYEA3CWL+G9zJ5PXRDAdQ69lN+CE/Uf9444CN5idMO+qRQ+QE8hWYT/U
-PFH/aUgd1k3WJZseR/GTWx29VsRPSDWZXzwzLfUNKnqvp0b2oZe/EdYiRSo8OCPp
-kF07HbTKe4Cyma7HdgDkNkS+UW5JujnuLcuee+wTq6xU0289juwFBc8CgYEA1s/d
-VtwXqBf3qMxfi+eMa77fqxptAFGtZNKNkYwX42Ow6Hehj8EnoPqYEF+9MzKn/BFh
-ROnQ76axKBN8mkRUjpv7d2+zMlDnGrWul8q6VrfGiU2P7jd4L6GY/V1MYktnIBsd
-Ld/jW8P0FFfI2RIREPWdrATxBhQpTJfXd/7rLncCgYB1wrvyBCQUSrg/KIGvADbj
-wf1Bw23jeMZk2QVU9Q8e7ClE+8iBMvSj47T9q28SgQaJjUWQdIA/oFP1AwPp+4n0
-cK5r6gbF72Tg1Uv+ur6hmuswFlyqJ0O8TrLdvCUIFZr0LJNT4zwwb2tjAdz8ehqX
-crFvVqRbE884XuwN9ODm7wKBgQDIEnKlI/kkpq4UmcWkGNXAxNauFr7PPUOyVCln
-FoRpVcC/xCzGJ7ExTjWzing950BulgFynhPsIeV+3id/x4S6Dq34YCEXDCMzzWQA
-HOHRQvm3iHY1+ZQHSQulb/Bk3LYAQUC8KXspTSlYiSqYgytCEIH6Zd/XOY/9tq8J
-JHUHoQKBgHYIB2mRCuDK5C3dCspdPVeAUqptK1nnXxWY/MXA6v+M4wFsIxV7Iwg7
-HEjeD5yKH4619syPCFz3jrCxL0oJqVTD2tnrbLf8idEt2eaV/3o2mUGFjvWpTywg
-F8DewhrGh6z7FWHp4cMrxpq1hkdi6k+481T1GKBJ1zBSTzskTHQB
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/openssl.cnf b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/openssl.cnf
deleted file mode 100644
index c518d33a5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/openssl.cnf
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# openssl configuration file for OCSP certificates
-#
-
-# Extensions to add to a certificate request (intermediate1-ca)
-[ v3_req1 ]
-basicConstraints = CA:false
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer:always
-keyUsage = nonRepudiation, digitalSignature, keyEncipherment
-authorityInfoAccess = OCSP;URI:http://127.0.0.1:22221
-
-# Extensions to add to a certificate request (intermediate2-ca)
-[ v3_req2 ]
-basicConstraints = CA:false
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer:always
-keyUsage = nonRepudiation, digitalSignature, keyEncipherment
-authorityInfoAccess = OCSP;URI:http://127.0.0.1:22222
-
-# Extensions to add to a certificate request (intermediate3-ca)
-[ v3_req3 ]
-basicConstraints = CA:false
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer:always
-keyUsage = nonRepudiation, digitalSignature, keyEncipherment
-authorityInfoAccess = OCSP;URI:http://127.0.0.1:22223
-
-# Extensions for a typical CA
-[ v3_ca ]
-basicConstraints = CA:true
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer:always
-keyUsage = keyCertSign, cRLSign
-authorityInfoAccess = OCSP;URI:http://127.0.0.1:22220
-
-# OCSP extensions.
-[ v3_ocsp ]
-basicConstraints = CA:false
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer:always
-extendedKeyUsage = OCSPSigning
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/renewcerts-for-test.sh b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/renewcerts-for-test.sh
deleted file mode 100644
index 7bae1005d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/renewcerts-for-test.sh
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/sh
-
-# $1 cert, $2 name, $3 ca, $4 extensions, $5 serial
-update_cert(){
-
- openssl req \
- -new \
- -key $1-key.pem \
- -out $1-cert.csr \
- -subj "/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=$2/emailAddress=info@wolfssl.com"
-
- openssl x509 \
- -req -in $1-cert.csr \
- -extfile $6 \
- -extensions $4 \
- -days 1000 \
- -CA $3-cert.pem \
- -CAkey $3-key.pem \
- -set_serial $5 \
- -out $1-cert.pem \
- -sha256
-
- rm $1-cert.csr
- openssl x509 -in $1-cert.pem -text > $1_tmp.pem
- mv $1_tmp.pem $1-cert.pem
- cat $3-cert.pem >> $1-cert.pem
-}
-
-
-
-printf '%s\n' "Using CNF: $1"
-
-openssl req \
- -new \
- -key root-ca-key.pem \
- -out root-ca-cert.csr \
- -subj "/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com"
-
-openssl x509 \
- -req -in root-ca-cert.csr \
- -extfile $1 \
- -extensions v3_ca \
- -days 1000 \
- -signkey root-ca-key.pem \
- -set_serial 99 \
- -out root-ca-cert.pem \
- -sha256
-
-rm root-ca-cert.csr
-openssl x509 -in root-ca-cert.pem -text > tmp.pem
-mv tmp.pem root-ca-cert.pem
-
-update_cert intermediate1-ca "wolfSSL intermediate CA 1" root-ca v3_ca 01 $1
-update_cert intermediate2-ca "wolfSSL intermediate CA 2" root-ca v3_ca 02 $1
-update_cert intermediate3-ca "wolfSSL REVOKED intermediate CA" root-ca v3_ca 03 $1 # REVOKED
-
-update_cert ocsp-responder "wolfSSL OCSP Responder" root-ca v3_ocsp 04 $1
-
-update_cert server1 "www1.wolfssl.com" intermediate1-ca v3_req1 05 $1
-update_cert server2 "www2.wolfssl.com" intermediate1-ca v3_req1 06 $1 # REVOKED
-update_cert server3 "www3.wolfssl.com" intermediate2-ca v3_req2 07 $1
-update_cert server4 "www4.wolfssl.com" intermediate2-ca v3_req2 08 $1 # REVOKED
-update_cert server5 "www5.wolfssl.com" intermediate3-ca v3_req3 09 $1
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/root-ca-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/root-ca-cert.pem
deleted file mode 100644
index a6fb14512..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/root-ca-cert.pem
+++ /dev/null
@@ -1,93 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 99 (0x63)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ab:2c:b4:2f:1d:06:09:ef:4e:29:86:84:7e:cc:
- bf:a6:79:7c:f0:c0:c1:64:25:8c:75:b7:10:05:ca:
- 48:27:0c:0e:32:1c:b0:fe:99:85:39:b6:b9:a2:f7:
- 27:ff:6d:3c:8c:16:73:29:21:7f:8b:a6:54:71:90:
- ad:cc:05:b9:9f:15:c7:0a:3f:5f:69:f4:0a:5f:8c:
- 71:b5:2c:bf:66:e2:03:9a:32:f4:d2:ec:2a:89:4b:
- f9:35:88:14:33:47:4e:2e:05:79:01:ed:64:36:76:
- b9:f8:85:cd:01:88:ac:c5:b2:b1:59:b8:cd:5a:f4:
- 09:09:38:9b:da:5a:cf:ce:78:99:1f:49:3d:41:d6:
- 06:7c:52:99:c8:97:d1:b3:80:3a:a2:4f:36:c4:c5:
- 96:30:77:31:38:c8:70:cc:e1:67:06:b3:2b:2f:93:
- b5:69:cf:83:7e:88:53:9b:0f:46:21:4c:d6:05:36:
- 44:99:60:68:47:e5:32:01:12:d4:10:73:ae:9a:34:
- 94:fa:6e:b8:58:4f:7b:5b:8a:92:97:ad:fd:97:b9:
- 75:ca:c2:d4:45:7d:17:6b:cd:2f:f3:63:7a:0e:30:
- b5:0b:a9:d9:a6:7c:74:60:9d:cc:09:03:43:f1:0f:
- 90:d3:b7:fe:6c:9f:d9:cd:78:4b:15:ae:8c:5b:f9:
- 99:81
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 6b:10:b1:f8:cb:77:ef:72:f5:f8:fc:70:6d:18:dc:34:fe:d7:
- 95:d8:fd:85:8e:ca:4b:f3:be:1f:eb:14:08:dc:23:34:78:98:
- 39:d7:9f:c3:52:f6:14:3d:e9:de:5c:c2:d8:b1:4b:a8:4c:5b:
- 91:42:66:da:7f:3c:e9:03:20:5e:08:0f:76:79:b9:21:10:89:
- b7:73:46:44:7e:6e:28:0c:00:e4:f4:3e:65:aa:f5:c6:27:57:
- 2c:bb:1d:ae:e5:94:57:a3:73:9e:6b:44:00:35:4a:f3:c7:34:
- 9c:a2:a7:aa:62:9f:1d:ef:a8:6c:be:07:ad:ef:ae:ee:93:0b:
- ba:c3:59:4e:90:40:2d:00:5e:f0:0f:0a:de:18:2a:b3:97:31:
- 63:84:ff:18:1c:b6:d8:7d:ee:33:ed:99:f0:f5:7f:88:58:b3:
- 0d:90:db:eb:44:7e:06:37:61:d4:34:b9:f6:fd:3e:8d:07:e4:
- b5:b0:ae:09:ce:98:e4:b0:1b:d5:7b:53:94:dd:8a:b2:20:d6:
- b0:72:f8:b1:bc:76:df:16:86:39:7b:e4:a9:15:47:57:ae:ca:
- 41:d6:3a:ba:15:d1:c0:b5:38:66:0b:0f:80:8b:a2:07:b4:fc:
- 80:1f:a3:4c:1f:d2:65:97:c1:2c:ae:46:31:61:49:0d:d7:5f:
- ac:d2:a6:05
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIBYzANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBlzELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NMIHJvb3Qg
-Q0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCrLLQvHQYJ704phoR+zL+meXzwwMFkJYx1txAF
-ykgnDA4yHLD+mYU5trmi9yf/bTyMFnMpIX+LplRxkK3MBbmfFccKP19p9ApfjHG1
-LL9m4gOaMvTS7CqJS/k1iBQzR04uBXkB7WQ2drn4hc0BiKzFsrFZuM1a9AkJOJva
-Ws/OeJkfST1B1gZ8UpnIl9GzgDqiTzbExZYwdzE4yHDM4WcGsysvk7Vpz4N+iFOb
-D0YhTNYFNkSZYGhH5TIBEtQQc66aNJT6brhYT3tbipKXrf2XuXXKwtRFfRdrzS/z
-Y3oOMLULqdmmfHRgncwJA0PxD5DTt/5sn9nNeEsVroxb+ZmBAgMBAAGjggE5MIIB
-NTAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRzsBykL4LLz0elONewBII6fnIVITCB
-xAYDVR0jBIG8MIG5gBRzsBykL4LLz0elONewBII6fnIVIaGBnaSBmjCBlzELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-EDAOBgNVBAoMB3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQD
-DA93b2xmU1NMIHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b22CAWMwCwYDVR0PBAQDAgEGMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYW
-aHR0cDovLzEyNy4wLjAuMToyMjIyMDANBgkqhkiG9w0BAQsFAAOCAQEAaxCx+Mt3
-73L1+PxwbRjcNP7Xldj9hY7KS/O+H+sUCNwjNHiYOdefw1L2FD3p3lzC2LFLqExb
-kUJm2n886QMgXggPdnm5IRCJt3NGRH5uKAwA5PQ+Zar1xidXLLsdruWUV6NznmtE
-ADVK88c0nKKnqmKfHe+obL4Hre+u7pMLusNZTpBALQBe8A8K3hgqs5cxY4T/GBy2
-2H3uM+2Z8PV/iFizDZDb60R+Bjdh1DS59v0+jQfktbCuCc6Y5LAb1XtTlN2KsiDW
-sHL4sbx23xaGOXvkqRVHV67KQdY6uhXRwLU4ZgsPgIuiB7T8gB+jTB/SZZfBLK5G
-MWFJDddfrNKmBQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/root-ca-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/root-ca-key.pem
deleted file mode 100644
index a7cbcbb60..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/root-ca-key.pem
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCrLLQvHQYJ704p
-hoR+zL+meXzwwMFkJYx1txAFykgnDA4yHLD+mYU5trmi9yf/bTyMFnMpIX+LplRx
-kK3MBbmfFccKP19p9ApfjHG1LL9m4gOaMvTS7CqJS/k1iBQzR04uBXkB7WQ2drn4
-hc0BiKzFsrFZuM1a9AkJOJvaWs/OeJkfST1B1gZ8UpnIl9GzgDqiTzbExZYwdzE4
-yHDM4WcGsysvk7Vpz4N+iFObD0YhTNYFNkSZYGhH5TIBEtQQc66aNJT6brhYT3tb
-ipKXrf2XuXXKwtRFfRdrzS/zY3oOMLULqdmmfHRgncwJA0PxD5DTt/5sn9nNeEsV
-roxb+ZmBAgMBAAECggEAd0Qjm3wOfBeYD0jhwnOoyTZ2vkyfssaS0mYlrNMfaM12
-iqYBELQo5miReaHZ5ZfYCweNX8guVUAkMCiNX81RYy3KTDKRqYJXQ/HYPFMcXXP2
-7Ja6jMfub1FXJ1xULtJs/5XilVwxad1ZgHbBu2LedrUl6wzfUJMeRKWDuiVyCzpK
-J2+F1iVH+whBI/eN8qopHM4JeR0W9k7rFJayQZ9iAIfrl2In1hTay9S7HCEdmWz/
-BVI818QXsgCuulR9G2erS0gS181P090YcZeuzh5YfvAnzn7m8BTboJojix5pkfQt
-gM5E7YD4nYU1V796P2cfAaMJoQyCW4NSn+kwgLT5rQKBgQDXnHvs/fk+gxFiBt/U
-tRfU+iUoiMofrcAZswMBvOZVy40RbtxuNXwnGo9+Bko7XVKekVO6TGUyPSpv1VXR
-QCjlk+PsXyx0DD2+Hb3r69wXJ3Wfxe0K+p6CHIuspJUmNrHdpJOBTO8GbHNxuaD/
-kDJvBq+ZkXEKUm9a5BeU5WiwMwKBgQDLPUkr+Mm2pJIIEBF8z3Lr3bWIbZsinxhM
-ErQRAQC0J+oBj1kuUoXYoh1hzQK/E90bM2fRUMhgVGIBvwDMv0c+Z2Fb6zK0r3mP
-dOLYGOrfavl/f7zhd4TjzPkAF1fbbYbciFQIWW3//q8PXY68eKvwrhGqT+CCwLef
-tWC3xrpLewKBgQC7Ht7abgxa+UsjxQ2Kv+O//Zw0EotAdP2sEBUC9Br+yJpUT99U
-cmyeT0nLONBBtxtV7JA6tcR5lmX3CrHg2Yrku7XqVSrySBFppsxGLLslCSTnFdJE
-Xf8ksntxyKB8uqkgz40IgWlMLOEACPc19MIgYzAQ2g29xI9J1Xy1x2dUywKBgBFo
-HVU7yKLw82TnY2gKKHCVG5Akuw27DIyvaWavbE0BwiQCEARMoxQLxnJy6ZJN9Dj5
-LSIbRh4h/AbkQgBHPaXVmtwRh9U71jB4NVmGwM8DzXyjBx1UbDhKfOUKGsc7WTqY
-HoJcjnRHbtzlCW2Q9ED316F7l+H6+X8fPLpgteHzAoGARc6B/pWJWkUVM87ObGmr
-hiA5YByyC6Rq8HyFEeXiS2fiQPfQF0UC9Qxq9/CBkezb8v+Yb/UT4ieL26c270s5
-JkyYqMoBLgkOKG6nPDD4hxoR24cFmC090RNQOhwwHskh+KjVmf3c/m9wNBSdHTpt
-URu+xdmbaoKaH9dIJMUKasc=
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server1-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server1-cert.pem
deleted file mode 100644
index f41c534f5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server1-cert.pem
+++ /dev/null
@@ -1,279 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 5 (0x5)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL intermediate CA 1/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=www1.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:e6:96:55:75:cf:8a:97:68:8c:b6:38:f6:7a:05:
- be:33:b6:51:47:37:8a:f7:db:91:be:92:6b:b7:00:
- 8c:f2:c5:24:6e:18:e9:92:00:81:01:dc:b3:4c:28:
- a9:b7:80:f1:96:cf:23:7a:2f:ae:f8:e3:0f:2d:d3:
- 5e:23:e7:db:4c:b2:5d:89:16:17:be:be:81:db:fb:
- 12:6d:28:4b:10:a0:12:04:27:c1:c9:d0:79:95:ef:
- e8:8d:8c:59:9b:4e:72:7d:bc:49:2b:22:4e:f8:4f:
- e2:0c:f1:e9:e9:97:f9:df:8c:5a:0a:aa:38:1d:43:
- 04:a3:a7:89:a1:e2:83:a4:4b:b5:4e:45:88:a6:22:
- 5d:ac:a9:58:67:88:c1:d5:61:ef:bd:11:05:27:94:
- 47:bb:33:a5:8a:ca:ee:1f:8d:c0:6e:24:af:cd:ca:
- bf:80:47:71:95:ac:a9:f1:5d:23:6c:f5:4b:b4:a9:
- e1:c4:66:fb:e5:c4:a1:9f:a7:51:d1:78:cd:2e:b4:
- 3f:2e:e2:82:f3:7f:c4:a7:f4:31:cf:76:27:3f:db:
- 2e:d2:6e:c3:47:23:82:a3:48:40:8c:a7:c1:13:f0:
- 63:50:54:43:f6:71:12:e1:6f:a5:7a:58:26:f7:fd:
- 8b:3b:70:18:a0:43:ba:01:6b:b3:f8:d5:be:05:13:
- 64:31
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- X509v3 Subject Key Identifier:
- CC:55:15:00:E2:44:89:92:63:6D:10:5D:B9:9E:73:B6:5D:3A:19:CA
- X509v3 Authority Key Identifier:
- keyid:83:C6:3A:89:2C:81:F4:02:D7:9D:4C:E2:2A:C0:71:82:64:44:DA:0E
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:01
-
- X509v3 Key Usage:
- Digital Signature, Non Repudiation, Key Encipherment
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22221
-
- Signature Algorithm: sha256WithRSAEncryption
- 13:fc:55:34:0b:04:b3:16:06:81:b7:11:e8:ec:b4:37:3e:52:
- 21:50:8a:48:3f:9b:3d:80:04:8e:d1:8e:b2:0f:84:f8:0a:8c:
- 79:6e:65:e3:33:5f:29:9c:39:2b:3c:20:80:96:94:ee:87:2e:
- 4a:05:7e:a7:30:8f:d8:ea:56:6d:ce:4b:e5:23:34:80:b1:cb:
- 37:11:39:ad:60:3d:ce:87:d1:af:96:3c:53:03:5e:50:c9:70:
- ab:d1:38:ba:ea:53:d8:17:03:59:42:f3:cf:8f:68:98:31:4b:
- 6b:8f:e6:67:b6:42:d1:9d:24:b5:ab:d3:40:81:bd:6d:d4:d7:
- 8a:0d:49:11:eb:b6:be:27:d2:bb:f2:6d:3c:7e:e4:f4:d4:f1:
- 03:88:57:8b:25:ce:3e:6e:62:2c:01:9d:1f:c1:11:15:ab:37:
- 5a:56:1f:75:aa:5a:70:ac:57:d1:8a:38:c1:e5:a1:b0:1f:33:
- e3:84:7d:6b:f9:1a:f2:0a:9c:fa:ed:10:41:ad:56:57:9d:76:
- d0:d8:3d:ac:fd:f5:13:3d:01:8e:a3:2c:8f:bd:ab:4d:a9:39:
- 52:c9:76:a2:80:49:18:20:8b:4b:85:86:11:1e:19:d1:26:6c:
- 92:72:2c:28:eb:38:67:ce:a0:d3:4f:7c:f7:a8:fe:1a:3f:17:
- 83:2b:b6:9a
------BEGIN CERTIFICATE-----
-MIIE7jCCA9agAwIBAgIBBTANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMSIwIAYDVQQDDBl3b2xmU1NM
-IGludGVybWVkaWF0ZSBDQSAxMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE4MDQxMzE1MjMxMFoXDTIxMDEwNzE1MjMxMFowgZgxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYD
-VQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEZMBcGA1UEAwwQd3d3
-MS53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOaWVXXPipdojLY49noFvjO2
-UUc3ivfbkb6Sa7cAjPLFJG4Y6ZIAgQHcs0woqbeA8ZbPI3ovrvjjDy3TXiPn20yy
-XYkWF76+gdv7Em0oSxCgEgQnwcnQeZXv6I2MWZtOcn28SSsiTvhP4gzx6emX+d+M
-WgqqOB1DBKOniaHig6RLtU5FiKYiXaypWGeIwdVh770RBSeUR7szpYrK7h+NwG4k
-r83Kv4BHcZWsqfFdI2z1S7Sp4cRm++XEoZ+nUdF4zS60Py7igvN/xKf0Mc92Jz/b
-LtJuw0cjgqNIQIynwRPwY1BUQ/ZxEuFvpXpYJvf9iztwGKBDugFrs/jVvgUTZDEC
-AwEAAaOCATYwggEyMAkGA1UdEwQCMAAwHQYDVR0OBBYEFMxVFQDiRImSY20QXbme
-c7ZdOhnKMIHEBgNVHSMEgbwwgbmAFIPGOoksgfQC151M4irAcYJkRNoOoYGdpIGa
-MIGXMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwH
-U2VhdHRsZTEQMA4GA1UECgwHd29sZlNTTDEUMBIGA1UECwwLRW5naW5lZXJpbmcx
-GDAWBgNVBAMMD3dvbGZTU0wgcm9vdCBDQTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3
-b2xmc3NsLmNvbYIBATALBgNVHQ8EBAMCBeAwMgYIKwYBBQUHAQEEJjAkMCIGCCsG
-AQUFBzABhhZodHRwOi8vMTI3LjAuMC4xOjIyMjIxMA0GCSqGSIb3DQEBCwUAA4IB
-AQAT/FU0CwSzFgaBtxHo7LQ3PlIhUIpIP5s9gASO0Y6yD4T4Cox5bmXjM18pnDkr
-PCCAlpTuhy5KBX6nMI/Y6lZtzkvlIzSAscs3ETmtYD3Oh9GvljxTA15QyXCr0Ti6
-6lPYFwNZQvPPj2iYMUtrj+ZntkLRnSS1q9NAgb1t1NeKDUkR67a+J9K78m08fuT0
-1PEDiFeLJc4+bmIsAZ0fwREVqzdaVh91qlpwrFfRijjB5aGwHzPjhH1r+RryCpz6
-7RBBrVZXnXbQ2D2s/fUTPQGOoyyPvatNqTlSyXaigEkYIItLhYYRHhnRJmySciwo
-6zhnzqDTT3z3qP4aPxeDK7aa
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL intermediate CA 1/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:de:b4:c8:5c:77:e0:2d:b1:f5:b9:ad:16:47:35:
- a0:35:65:65:c6:e1:40:ab:1e:b4:b9:13:b7:cb:8c:
- bb:77:a5:76:da:6d:87:87:f6:4a:4d:13:e4:26:3e:
- 27:87:ee:5b:c7:6a:3f:45:30:61:55:5c:f6:35:d1:
- 65:fa:98:11:a3:a7:55:d5:be:91:82:4b:fc:be:90:
- d6:50:53:63:9a:2c:22:e1:35:11:dc:78:02:97:8a:
- e4:46:92:9c:53:08:76:de:1f:53:b6:b8:ca:77:3e:
- 79:6e:bc:d0:e3:0d:30:5b:4c:f6:94:0d:30:29:64:
- 9f:04:e5:db:fb:89:60:67:bb:af:26:83:51:77:24:
- 2f:2b:0b:a1:94:81:10:98:e8:eb:26:a8:1e:7c:e4:
- c4:6c:67:06:95:55:4a:dd:52:f4:f2:60:6d:01:2b:
- 19:91:35:6d:a4:08:47:06:71:24:00:d9:de:c6:56:
- f3:8b:53:2c:e2:9a:96:a5:f3:62:e5:c4:e3:23:f2:
- d2:fc:21:ea:0f:62:76:8d:d5:99:48:ce:dc:58:c4:
- bb:7f:da:94:2c:80:74:83:c5:e0:b0:15:7e:41:fd:
- 0e:f2:f4:f0:78:76:7b:ad:26:0d:aa:48:96:17:2f:
- 21:e3:95:2b:26:37:f9:aa:80:2f:fe:de:f6:5e:bc:
- 97:7f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 83:C6:3A:89:2C:81:F4:02:D7:9D:4C:E2:2A:C0:71:82:64:44:DA:0E
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 18:a3:09:fe:c3:53:c7:ce:11:f0:36:86:43:9c:46:9b:43:42:
- a0:20:6e:b6:32:29:34:22:fa:27:a1:00:0c:e5:51:c3:35:7b:
- 2f:ce:2c:48:7f:47:cf:1b:45:f9:30:b2:d0:17:15:a0:c3:a8:
- 3a:e4:5f:a4:96:e4:25:ea:4e:80:90:2e:8d:f5:19:98:ae:2a:
- 6d:39:f0:06:8f:e6:0b:c4:2b:dd:07:4a:ad:3d:34:11:79:3d:
- 15:db:65:c6:33:60:6b:2f:2d:47:26:bb:91:53:28:35:5c:fd:
- 57:3b:27:1b:a1:85:03:24:74:84:f4:f2:b2:e3:53:41:83:9c:
- 6b:5a:0c:0f:3b:c4:5f:a7:4b:8b:04:f2:0d:f5:81:aa:16:33:
- d2:f4:f5:8d:83:c1:10:2d:57:55:f8:d3:16:62:27:50:b2:57:
- 20:1d:a3:07:0c:b8:8d:c5:5a:2f:d9:d3:c4:6a:c3:1e:51:10:
- de:7e:60:cf:d0:78:2c:00:d4:da:df:de:de:ee:ed:1d:25:da:
- 6c:9f:57:69:2a:f1:a2:6c:8a:fe:72:c0:57:9f:f8:6e:b7:47:
- f1:4f:f6:4b:9c:a2:2a:d2:10:9c:4e:bc:b4:8a:a2:8e:51:5a:
- c1:e7:9c:f1:7c:9c:f9:7d:d7:9c:8f:ed:e9:57:91:0a:6c:4b:
- b4:ac:6f:30
------BEGIN CERTIFICATE-----
-MIIE8DCCA9igAwIBAgIBATANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBoTELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMSIwIAYDVQQDDBl3b2xmU1NMIGludGVy
-bWVkaWF0ZSBDQSAxMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3rTIXHfgLbH1ua0WRzWgNWVl
-xuFAqx60uRO3y4y7d6V22m2Hh/ZKTRPkJj4nh+5bx2o/RTBhVVz2NdFl+pgRo6dV
-1b6Rgkv8vpDWUFNjmiwi4TUR3HgCl4rkRpKcUwh23h9TtrjKdz55brzQ4w0wW0z2
-lA0wKWSfBOXb+4lgZ7uvJoNRdyQvKwuhlIEQmOjrJqgefOTEbGcGlVVK3VL08mBt
-ASsZkTVtpAhHBnEkANnexlbzi1Ms4pqWpfNi5cTjI/LS/CHqD2J2jdWZSM7cWMS7
-f9qULIB0g8XgsBV+Qf0O8vTweHZ7rSYNqkiWFy8h45UrJjf5qoAv/t72XryXfwID
-AQABo4IBOTCCATUwDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUg8Y6iSyB9ALXnUzi
-KsBxgmRE2g4wgcQGA1UdIwSBvDCBuYAUc7AcpC+Cy89HpTjXsASCOn5yFSGhgZ2k
-gZowgZcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH
-DAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtFbmdpbmVlcmlu
-ZzEYMBYGA1UEAwwPd29sZlNTTCByb290IENBMR8wHQYJKoZIhvcNAQkBFhBpbmZv
-QHdvbGZzc2wuY29tggFjMAsGA1UdDwQEAwIBBjAyBggrBgEFBQcBAQQmMCQwIgYI
-KwYBBQUHMAGGFmh0dHA6Ly8xMjcuMC4wLjE6MjIyMjAwDQYJKoZIhvcNAQELBQAD
-ggEBABijCf7DU8fOEfA2hkOcRptDQqAgbrYyKTQi+iehAAzlUcM1ey/OLEh/R88b
-RfkwstAXFaDDqDrkX6SW5CXqToCQLo31GZiuKm058AaP5gvEK90HSq09NBF5PRXb
-ZcYzYGsvLUcmu5FTKDVc/Vc7JxuhhQMkdIT08rLjU0GDnGtaDA87xF+nS4sE8g31
-gaoWM9L09Y2DwRAtV1X40xZiJ1CyVyAdowcMuI3FWi/Z08Rqwx5REN5+YM/QeCwA
-1Nrf3t7u7R0l2myfV2kq8aJsiv5ywFef+G63R/FP9kucoirSEJxOvLSKoo5RWsHn
-nPF8nPl915yP7elXkQpsS7SsbzA=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 99 (0x63)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ab:2c:b4:2f:1d:06:09:ef:4e:29:86:84:7e:cc:
- bf:a6:79:7c:f0:c0:c1:64:25:8c:75:b7:10:05:ca:
- 48:27:0c:0e:32:1c:b0:fe:99:85:39:b6:b9:a2:f7:
- 27:ff:6d:3c:8c:16:73:29:21:7f:8b:a6:54:71:90:
- ad:cc:05:b9:9f:15:c7:0a:3f:5f:69:f4:0a:5f:8c:
- 71:b5:2c:bf:66:e2:03:9a:32:f4:d2:ec:2a:89:4b:
- f9:35:88:14:33:47:4e:2e:05:79:01:ed:64:36:76:
- b9:f8:85:cd:01:88:ac:c5:b2:b1:59:b8:cd:5a:f4:
- 09:09:38:9b:da:5a:cf:ce:78:99:1f:49:3d:41:d6:
- 06:7c:52:99:c8:97:d1:b3:80:3a:a2:4f:36:c4:c5:
- 96:30:77:31:38:c8:70:cc:e1:67:06:b3:2b:2f:93:
- b5:69:cf:83:7e:88:53:9b:0f:46:21:4c:d6:05:36:
- 44:99:60:68:47:e5:32:01:12:d4:10:73:ae:9a:34:
- 94:fa:6e:b8:58:4f:7b:5b:8a:92:97:ad:fd:97:b9:
- 75:ca:c2:d4:45:7d:17:6b:cd:2f:f3:63:7a:0e:30:
- b5:0b:a9:d9:a6:7c:74:60:9d:cc:09:03:43:f1:0f:
- 90:d3:b7:fe:6c:9f:d9:cd:78:4b:15:ae:8c:5b:f9:
- 99:81
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 6b:10:b1:f8:cb:77:ef:72:f5:f8:fc:70:6d:18:dc:34:fe:d7:
- 95:d8:fd:85:8e:ca:4b:f3:be:1f:eb:14:08:dc:23:34:78:98:
- 39:d7:9f:c3:52:f6:14:3d:e9:de:5c:c2:d8:b1:4b:a8:4c:5b:
- 91:42:66:da:7f:3c:e9:03:20:5e:08:0f:76:79:b9:21:10:89:
- b7:73:46:44:7e:6e:28:0c:00:e4:f4:3e:65:aa:f5:c6:27:57:
- 2c:bb:1d:ae:e5:94:57:a3:73:9e:6b:44:00:35:4a:f3:c7:34:
- 9c:a2:a7:aa:62:9f:1d:ef:a8:6c:be:07:ad:ef:ae:ee:93:0b:
- ba:c3:59:4e:90:40:2d:00:5e:f0:0f:0a:de:18:2a:b3:97:31:
- 63:84:ff:18:1c:b6:d8:7d:ee:33:ed:99:f0:f5:7f:88:58:b3:
- 0d:90:db:eb:44:7e:06:37:61:d4:34:b9:f6:fd:3e:8d:07:e4:
- b5:b0:ae:09:ce:98:e4:b0:1b:d5:7b:53:94:dd:8a:b2:20:d6:
- b0:72:f8:b1:bc:76:df:16:86:39:7b:e4:a9:15:47:57:ae:ca:
- 41:d6:3a:ba:15:d1:c0:b5:38:66:0b:0f:80:8b:a2:07:b4:fc:
- 80:1f:a3:4c:1f:d2:65:97:c1:2c:ae:46:31:61:49:0d:d7:5f:
- ac:d2:a6:05
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIBYzANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBlzELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NMIHJvb3Qg
-Q0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCrLLQvHQYJ704phoR+zL+meXzwwMFkJYx1txAF
-ykgnDA4yHLD+mYU5trmi9yf/bTyMFnMpIX+LplRxkK3MBbmfFccKP19p9ApfjHG1
-LL9m4gOaMvTS7CqJS/k1iBQzR04uBXkB7WQ2drn4hc0BiKzFsrFZuM1a9AkJOJva
-Ws/OeJkfST1B1gZ8UpnIl9GzgDqiTzbExZYwdzE4yHDM4WcGsysvk7Vpz4N+iFOb
-D0YhTNYFNkSZYGhH5TIBEtQQc66aNJT6brhYT3tbipKXrf2XuXXKwtRFfRdrzS/z
-Y3oOMLULqdmmfHRgncwJA0PxD5DTt/5sn9nNeEsVroxb+ZmBAgMBAAGjggE5MIIB
-NTAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRzsBykL4LLz0elONewBII6fnIVITCB
-xAYDVR0jBIG8MIG5gBRzsBykL4LLz0elONewBII6fnIVIaGBnaSBmjCBlzELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-EDAOBgNVBAoMB3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQD
-DA93b2xmU1NMIHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b22CAWMwCwYDVR0PBAQDAgEGMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYW
-aHR0cDovLzEyNy4wLjAuMToyMjIyMDANBgkqhkiG9w0BAQsFAAOCAQEAaxCx+Mt3
-73L1+PxwbRjcNP7Xldj9hY7KS/O+H+sUCNwjNHiYOdefw1L2FD3p3lzC2LFLqExb
-kUJm2n886QMgXggPdnm5IRCJt3NGRH5uKAwA5PQ+Zar1xidXLLsdruWUV6NznmtE
-ADVK88c0nKKnqmKfHe+obL4Hre+u7pMLusNZTpBALQBe8A8K3hgqs5cxY4T/GBy2
-2H3uM+2Z8PV/iFizDZDb60R+Bjdh1DS59v0+jQfktbCuCc6Y5LAb1XtTlN2KsiDW
-sHL4sbx23xaGOXvkqRVHV67KQdY6uhXRwLU4ZgsPgIuiB7T8gB+jTB/SZZfBLK5G
-MWFJDddfrNKmBQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server1-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server1-key.pem
deleted file mode 100644
index e44f63129..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server1-key.pem
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDmllV1z4qXaIy2
-OPZ6Bb4ztlFHN4r325G+kmu3AIzyxSRuGOmSAIEB3LNMKKm3gPGWzyN6L6744w8t
-014j59tMsl2JFhe+voHb+xJtKEsQoBIEJ8HJ0HmV7+iNjFmbTnJ9vEkrIk74T+IM
-8enpl/nfjFoKqjgdQwSjp4mh4oOkS7VORYimIl2sqVhniMHVYe+9EQUnlEe7M6WK
-yu4fjcBuJK/Nyr+AR3GVrKnxXSNs9Uu0qeHEZvvlxKGfp1HReM0utD8u4oLzf8Sn
-9DHPdic/2y7SbsNHI4KjSECMp8ET8GNQVEP2cRLhb6V6WCb3/Ys7cBigQ7oBa7P4
-1b4FE2QxAgMBAAECggEBAMcAl2DFbOae5FGfd5h3vF8EycCcvuKKLI4775pQb1RV
-r8sU1P+cT7o7rsHblh04u0dcHVImNOu3ijISaPyz7R+UEAVve66y23/uf0iVrbL7
-cpEDfsudkFFGa30901elrEm3Za5EPcMvrfdeEHH5Jz02876giS032ZkjzjRYOSRg
-TuFhiqjRTMfE6AB63KSRWcb6AYEocHV/jF+IEQcz9ctsv6XKKKJtge4+Y3+gQU4N
-ALUE6OjBsD5KpMVuMYBSfTucYi5g2eOK05PoCOR8lTqgvsbof+ALj+84zEpG20aK
-p0KdMVwiMolXaYcvKBOGPxZKt7sQaIMitbs0iuErMQECgYEA+cLVZh4qkRnsjPVc
-/27qC/VLeWo2QAL7TWC7YgkY0MgNtZXRkJZdKOlzYWo/iJmuxHj7eUFLkoHpPNV2
-X6WG+CGHD1qq/BqLQNlJKS/MtI2VNzOjBJ/J3SktOGo3BwL+Q5uSRNHukQip0YnD
-c9GCU4UhfBHr/UNitMBH6N5aPqUCgYEA7FjjTGomVseF5wNbfw2xLjBmRuQ2DDgJ
-/OvCtV6it+OiVU9R+cYcz/hVl1QLIkGBHt5hb8O6np4tW5ehKd5LNTtolIO+/BLL
-2xPZCLY7U+LES5dgUTC/wb5t5igAmPuOMi9qNQ1kYxbKYJVLRUdwfOM8FNE4gjZF
-kj2BIb6OxZ0CgYEAmuXXvWZ2FdmTGHTPwWdDZjkyHtHdZWO0AXA9pnZn2oxH3FdX
-SinHCymFsmPXlVtixV0W8UOqn+lMAruMl5MsGtWIUuBzbLj1pjlcI1wOw+ePJFY1
-AxgqdKwl7HgLOqEDmmBwnZfpMi/CSj77ZegIwM2vT6g5yK+zFtCtiGHmbDUCgYBf
-L2VLbyzFolGBOk7tGnyTF5b5UguaXC9ZlzGxjc2Gtby5Etr29xy/fUorSgO55hu0
-bOdc9b0BCL9HtgeILyim5ag2t+CA8Kj9MD8mTQ4TuK5Jq0t1J2bzBliIau/irN0V
-xRbHCv+1EIas4zOPUTgyc+nMkH5roqPeQ7rv9ijV2QKBgQDJiNmAJv3dlie2x+bj
-rX5RDF1Q/egVVGx41jPyuzh0oFLwEQG2lSHEAKgF+gWt0ZMwNzPB9oue2LBSpNFl
-7ZdpFCpzD+3OcaxnWYEGT+qNhczbf0PvVNBOzOI33Trr7maktWi0Mh9qmXqoNuwG
-uCnrEriJlBk2MV88tIG/ZJ+bvQ==
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server2-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server2-cert.pem
deleted file mode 100644
index 455d18de5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server2-cert.pem
+++ /dev/null
@@ -1,279 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 6 (0x6)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL intermediate CA 1/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=www2.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c6:35:8a:e8:aa:bd:33:c9:5e:84:43:67:42:65:
- 2a:3c:e3:89:b4:a6:67:a1:3b:ee:6d:85:d1:d3:2b:
- 6e:b1:62:d4:f1:22:43:a0:d5:b7:a5:7d:b5:f5:6c:
- 09:06:7c:8c:ef:87:af:4f:34:ce:27:eb:f3:4a:37:
- 57:c3:d7:d8:ee:e4:a0:77:65:2c:a7:c2:10:65:6b:
- 7b:48:c4:d8:28:fe:4c:4e:4f:7e:2f:20:c4:49:5b:
- 71:38:40:0d:36:a3:57:b3:44:da:be:cd:54:14:15:
- 66:0f:d3:05:08:f2:2e:03:67:2e:5c:5d:e1:b0:e6:
- c0:25:8f:58:77:5b:d3:d7:a8:22:ea:56:d3:0e:01:
- 6d:38:34:56:47:aa:12:c4:ba:2a:ef:ec:18:f5:d4:
- db:b9:fa:6f:dc:50:eb:ee:10:a2:14:b5:9a:12:e1:
- e3:85:0f:79:14:b8:70:6d:0d:1c:1d:38:57:85:6a:
- 82:0c:d6:bd:2c:bf:20:f1:28:2e:f6:34:80:a7:0d:
- 32:82:35:4f:c1:b1:e5:9e:26:d5:f8:b9:39:57:43:
- ef:ed:f1:10:5c:3e:32:ba:d9:e4:9e:40:cd:28:ea:
- 26:46:9b:a9:34:8d:9f:b9:fd:45:7d:14:f7:ce:ca:
- 3b:85:87:a7:64:74:9c:65:29:18:b3:f5:b1:ad:92:
- 62:39
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- X509v3 Subject Key Identifier:
- 7D:6D:FD:F6:0B:4F:3F:4A:62:91:F5:F3:13:60:51:86:C3:5A:9F:D6
- X509v3 Authority Key Identifier:
- keyid:83:C6:3A:89:2C:81:F4:02:D7:9D:4C:E2:2A:C0:71:82:64:44:DA:0E
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:01
-
- X509v3 Key Usage:
- Digital Signature, Non Repudiation, Key Encipherment
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22221
-
- Signature Algorithm: sha256WithRSAEncryption
- 1d:d0:b5:1d:a1:ae:ef:5e:36:00:36:b3:ae:22:13:32:37:22:
- 00:24:b6:b9:c2:b3:a2:55:e5:de:e1:82:83:e9:78:5c:a1:50:
- 62:c3:ca:92:2f:21:aa:85:d9:26:56:b1:b0:a1:3c:1f:41:ca:
- e6:1a:a3:b0:c1:b1:4c:d2:c0:ab:55:dc:fa:e9:d6:46:63:83:
- 2f:8e:c5:ec:28:0e:a9:e5:1b:d9:de:2b:8a:5d:58:56:3a:f8:
- 88:bd:99:c4:3a:33:6a:83:4a:26:aa:e3:74:40:a4:82:5a:b2:
- 26:23:3b:6d:aa:09:bc:c0:78:2c:c4:75:74:f1:19:e9:ad:39:
- 74:53:11:6d:ad:33:b2:f8:45:51:06:f5:5b:19:fd:a7:26:d1:
- 11:77:09:f4:c5:07:97:a1:fe:36:3a:6a:fb:64:f1:ed:9b:c4:
- 4c:64:cd:6a:bf:17:b8:5b:3f:b7:36:20:4a:cc:34:3e:ec:f5:
- a2:68:ae:8d:87:e5:4e:e3:c0:d8:70:67:6a:3c:41:04:0a:36:
- 07:40:52:6c:97:15:52:d3:13:a0:fb:c5:b7:f1:c9:40:03:40:
- e6:1e:fb:b0:11:77:80:fa:ec:17:24:88:ca:e6:17:1b:b4:f3:
- b2:38:bc:bf:c2:98:ec:69:14:c9:2e:75:99:6c:16:78:cc:c5:
- 36:d9:0f:f0
------BEGIN CERTIFICATE-----
-MIIE7jCCA9agAwIBAgIBBjANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMSIwIAYDVQQDDBl3b2xmU1NM
-IGludGVybWVkaWF0ZSBDQSAxMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE4MDQxMzE1MjMxMFoXDTIxMDEwNzE1MjMxMFowgZgxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYD
-VQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEZMBcGA1UEAwwQd3d3
-Mi53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMY1iuiqvTPJXoRDZ0JlKjzj
-ibSmZ6E77m2F0dMrbrFi1PEiQ6DVt6V9tfVsCQZ8jO+Hr080zifr80o3V8PX2O7k
-oHdlLKfCEGVre0jE2Cj+TE5Pfi8gxElbcThADTajV7NE2r7NVBQVZg/TBQjyLgNn
-Llxd4bDmwCWPWHdb09eoIupW0w4BbTg0VkeqEsS6Ku/sGPXU27n6b9xQ6+4QohS1
-mhLh44UPeRS4cG0NHB04V4VqggzWvSy/IPEoLvY0gKcNMoI1T8Gx5Z4m1fi5OVdD
-7+3xEFw+MrrZ5J5AzSjqJkabqTSNn7n9RX0U987KO4WHp2R0nGUpGLP1sa2SYjkC
-AwEAAaOCATYwggEyMAkGA1UdEwQCMAAwHQYDVR0OBBYEFH1t/fYLTz9KYpH18xNg
-UYbDWp/WMIHEBgNVHSMEgbwwgbmAFIPGOoksgfQC151M4irAcYJkRNoOoYGdpIGa
-MIGXMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwH
-U2VhdHRsZTEQMA4GA1UECgwHd29sZlNTTDEUMBIGA1UECwwLRW5naW5lZXJpbmcx
-GDAWBgNVBAMMD3dvbGZTU0wgcm9vdCBDQTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3
-b2xmc3NsLmNvbYIBATALBgNVHQ8EBAMCBeAwMgYIKwYBBQUHAQEEJjAkMCIGCCsG
-AQUFBzABhhZodHRwOi8vMTI3LjAuMC4xOjIyMjIxMA0GCSqGSIb3DQEBCwUAA4IB
-AQAd0LUdoa7vXjYANrOuIhMyNyIAJLa5wrOiVeXe4YKD6XhcoVBiw8qSLyGqhdkm
-VrGwoTwfQcrmGqOwwbFM0sCrVdz66dZGY4MvjsXsKA6p5RvZ3iuKXVhWOviIvZnE
-OjNqg0omquN0QKSCWrImIzttqgm8wHgsxHV08RnprTl0UxFtrTOy+EVRBvVbGf2n
-JtERdwn0xQeXof42Omr7ZPHtm8RMZM1qvxe4Wz+3NiBKzDQ+7PWiaK6Nh+VO48DY
-cGdqPEEECjYHQFJslxVS0xOg+8W38clAA0DmHvuwEXeA+uwXJIjK5hcbtPOyOLy/
-wpjsaRTJLnWZbBZ4zMU22Q/w
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL intermediate CA 1/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:de:b4:c8:5c:77:e0:2d:b1:f5:b9:ad:16:47:35:
- a0:35:65:65:c6:e1:40:ab:1e:b4:b9:13:b7:cb:8c:
- bb:77:a5:76:da:6d:87:87:f6:4a:4d:13:e4:26:3e:
- 27:87:ee:5b:c7:6a:3f:45:30:61:55:5c:f6:35:d1:
- 65:fa:98:11:a3:a7:55:d5:be:91:82:4b:fc:be:90:
- d6:50:53:63:9a:2c:22:e1:35:11:dc:78:02:97:8a:
- e4:46:92:9c:53:08:76:de:1f:53:b6:b8:ca:77:3e:
- 79:6e:bc:d0:e3:0d:30:5b:4c:f6:94:0d:30:29:64:
- 9f:04:e5:db:fb:89:60:67:bb:af:26:83:51:77:24:
- 2f:2b:0b:a1:94:81:10:98:e8:eb:26:a8:1e:7c:e4:
- c4:6c:67:06:95:55:4a:dd:52:f4:f2:60:6d:01:2b:
- 19:91:35:6d:a4:08:47:06:71:24:00:d9:de:c6:56:
- f3:8b:53:2c:e2:9a:96:a5:f3:62:e5:c4:e3:23:f2:
- d2:fc:21:ea:0f:62:76:8d:d5:99:48:ce:dc:58:c4:
- bb:7f:da:94:2c:80:74:83:c5:e0:b0:15:7e:41:fd:
- 0e:f2:f4:f0:78:76:7b:ad:26:0d:aa:48:96:17:2f:
- 21:e3:95:2b:26:37:f9:aa:80:2f:fe:de:f6:5e:bc:
- 97:7f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 83:C6:3A:89:2C:81:F4:02:D7:9D:4C:E2:2A:C0:71:82:64:44:DA:0E
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 18:a3:09:fe:c3:53:c7:ce:11:f0:36:86:43:9c:46:9b:43:42:
- a0:20:6e:b6:32:29:34:22:fa:27:a1:00:0c:e5:51:c3:35:7b:
- 2f:ce:2c:48:7f:47:cf:1b:45:f9:30:b2:d0:17:15:a0:c3:a8:
- 3a:e4:5f:a4:96:e4:25:ea:4e:80:90:2e:8d:f5:19:98:ae:2a:
- 6d:39:f0:06:8f:e6:0b:c4:2b:dd:07:4a:ad:3d:34:11:79:3d:
- 15:db:65:c6:33:60:6b:2f:2d:47:26:bb:91:53:28:35:5c:fd:
- 57:3b:27:1b:a1:85:03:24:74:84:f4:f2:b2:e3:53:41:83:9c:
- 6b:5a:0c:0f:3b:c4:5f:a7:4b:8b:04:f2:0d:f5:81:aa:16:33:
- d2:f4:f5:8d:83:c1:10:2d:57:55:f8:d3:16:62:27:50:b2:57:
- 20:1d:a3:07:0c:b8:8d:c5:5a:2f:d9:d3:c4:6a:c3:1e:51:10:
- de:7e:60:cf:d0:78:2c:00:d4:da:df:de:de:ee:ed:1d:25:da:
- 6c:9f:57:69:2a:f1:a2:6c:8a:fe:72:c0:57:9f:f8:6e:b7:47:
- f1:4f:f6:4b:9c:a2:2a:d2:10:9c:4e:bc:b4:8a:a2:8e:51:5a:
- c1:e7:9c:f1:7c:9c:f9:7d:d7:9c:8f:ed:e9:57:91:0a:6c:4b:
- b4:ac:6f:30
------BEGIN CERTIFICATE-----
-MIIE8DCCA9igAwIBAgIBATANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBoTELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMSIwIAYDVQQDDBl3b2xmU1NMIGludGVy
-bWVkaWF0ZSBDQSAxMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3rTIXHfgLbH1ua0WRzWgNWVl
-xuFAqx60uRO3y4y7d6V22m2Hh/ZKTRPkJj4nh+5bx2o/RTBhVVz2NdFl+pgRo6dV
-1b6Rgkv8vpDWUFNjmiwi4TUR3HgCl4rkRpKcUwh23h9TtrjKdz55brzQ4w0wW0z2
-lA0wKWSfBOXb+4lgZ7uvJoNRdyQvKwuhlIEQmOjrJqgefOTEbGcGlVVK3VL08mBt
-ASsZkTVtpAhHBnEkANnexlbzi1Ms4pqWpfNi5cTjI/LS/CHqD2J2jdWZSM7cWMS7
-f9qULIB0g8XgsBV+Qf0O8vTweHZ7rSYNqkiWFy8h45UrJjf5qoAv/t72XryXfwID
-AQABo4IBOTCCATUwDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUg8Y6iSyB9ALXnUzi
-KsBxgmRE2g4wgcQGA1UdIwSBvDCBuYAUc7AcpC+Cy89HpTjXsASCOn5yFSGhgZ2k
-gZowgZcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH
-DAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtFbmdpbmVlcmlu
-ZzEYMBYGA1UEAwwPd29sZlNTTCByb290IENBMR8wHQYJKoZIhvcNAQkBFhBpbmZv
-QHdvbGZzc2wuY29tggFjMAsGA1UdDwQEAwIBBjAyBggrBgEFBQcBAQQmMCQwIgYI
-KwYBBQUHMAGGFmh0dHA6Ly8xMjcuMC4wLjE6MjIyMjAwDQYJKoZIhvcNAQELBQAD
-ggEBABijCf7DU8fOEfA2hkOcRptDQqAgbrYyKTQi+iehAAzlUcM1ey/OLEh/R88b
-RfkwstAXFaDDqDrkX6SW5CXqToCQLo31GZiuKm058AaP5gvEK90HSq09NBF5PRXb
-ZcYzYGsvLUcmu5FTKDVc/Vc7JxuhhQMkdIT08rLjU0GDnGtaDA87xF+nS4sE8g31
-gaoWM9L09Y2DwRAtV1X40xZiJ1CyVyAdowcMuI3FWi/Z08Rqwx5REN5+YM/QeCwA
-1Nrf3t7u7R0l2myfV2kq8aJsiv5ywFef+G63R/FP9kucoirSEJxOvLSKoo5RWsHn
-nPF8nPl915yP7elXkQpsS7SsbzA=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 99 (0x63)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ab:2c:b4:2f:1d:06:09:ef:4e:29:86:84:7e:cc:
- bf:a6:79:7c:f0:c0:c1:64:25:8c:75:b7:10:05:ca:
- 48:27:0c:0e:32:1c:b0:fe:99:85:39:b6:b9:a2:f7:
- 27:ff:6d:3c:8c:16:73:29:21:7f:8b:a6:54:71:90:
- ad:cc:05:b9:9f:15:c7:0a:3f:5f:69:f4:0a:5f:8c:
- 71:b5:2c:bf:66:e2:03:9a:32:f4:d2:ec:2a:89:4b:
- f9:35:88:14:33:47:4e:2e:05:79:01:ed:64:36:76:
- b9:f8:85:cd:01:88:ac:c5:b2:b1:59:b8:cd:5a:f4:
- 09:09:38:9b:da:5a:cf:ce:78:99:1f:49:3d:41:d6:
- 06:7c:52:99:c8:97:d1:b3:80:3a:a2:4f:36:c4:c5:
- 96:30:77:31:38:c8:70:cc:e1:67:06:b3:2b:2f:93:
- b5:69:cf:83:7e:88:53:9b:0f:46:21:4c:d6:05:36:
- 44:99:60:68:47:e5:32:01:12:d4:10:73:ae:9a:34:
- 94:fa:6e:b8:58:4f:7b:5b:8a:92:97:ad:fd:97:b9:
- 75:ca:c2:d4:45:7d:17:6b:cd:2f:f3:63:7a:0e:30:
- b5:0b:a9:d9:a6:7c:74:60:9d:cc:09:03:43:f1:0f:
- 90:d3:b7:fe:6c:9f:d9:cd:78:4b:15:ae:8c:5b:f9:
- 99:81
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 6b:10:b1:f8:cb:77:ef:72:f5:f8:fc:70:6d:18:dc:34:fe:d7:
- 95:d8:fd:85:8e:ca:4b:f3:be:1f:eb:14:08:dc:23:34:78:98:
- 39:d7:9f:c3:52:f6:14:3d:e9:de:5c:c2:d8:b1:4b:a8:4c:5b:
- 91:42:66:da:7f:3c:e9:03:20:5e:08:0f:76:79:b9:21:10:89:
- b7:73:46:44:7e:6e:28:0c:00:e4:f4:3e:65:aa:f5:c6:27:57:
- 2c:bb:1d:ae:e5:94:57:a3:73:9e:6b:44:00:35:4a:f3:c7:34:
- 9c:a2:a7:aa:62:9f:1d:ef:a8:6c:be:07:ad:ef:ae:ee:93:0b:
- ba:c3:59:4e:90:40:2d:00:5e:f0:0f:0a:de:18:2a:b3:97:31:
- 63:84:ff:18:1c:b6:d8:7d:ee:33:ed:99:f0:f5:7f:88:58:b3:
- 0d:90:db:eb:44:7e:06:37:61:d4:34:b9:f6:fd:3e:8d:07:e4:
- b5:b0:ae:09:ce:98:e4:b0:1b:d5:7b:53:94:dd:8a:b2:20:d6:
- b0:72:f8:b1:bc:76:df:16:86:39:7b:e4:a9:15:47:57:ae:ca:
- 41:d6:3a:ba:15:d1:c0:b5:38:66:0b:0f:80:8b:a2:07:b4:fc:
- 80:1f:a3:4c:1f:d2:65:97:c1:2c:ae:46:31:61:49:0d:d7:5f:
- ac:d2:a6:05
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIBYzANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBlzELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NMIHJvb3Qg
-Q0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCrLLQvHQYJ704phoR+zL+meXzwwMFkJYx1txAF
-ykgnDA4yHLD+mYU5trmi9yf/bTyMFnMpIX+LplRxkK3MBbmfFccKP19p9ApfjHG1
-LL9m4gOaMvTS7CqJS/k1iBQzR04uBXkB7WQ2drn4hc0BiKzFsrFZuM1a9AkJOJva
-Ws/OeJkfST1B1gZ8UpnIl9GzgDqiTzbExZYwdzE4yHDM4WcGsysvk7Vpz4N+iFOb
-D0YhTNYFNkSZYGhH5TIBEtQQc66aNJT6brhYT3tbipKXrf2XuXXKwtRFfRdrzS/z
-Y3oOMLULqdmmfHRgncwJA0PxD5DTt/5sn9nNeEsVroxb+ZmBAgMBAAGjggE5MIIB
-NTAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRzsBykL4LLz0elONewBII6fnIVITCB
-xAYDVR0jBIG8MIG5gBRzsBykL4LLz0elONewBII6fnIVIaGBnaSBmjCBlzELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-EDAOBgNVBAoMB3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQD
-DA93b2xmU1NMIHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b22CAWMwCwYDVR0PBAQDAgEGMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYW
-aHR0cDovLzEyNy4wLjAuMToyMjIyMDANBgkqhkiG9w0BAQsFAAOCAQEAaxCx+Mt3
-73L1+PxwbRjcNP7Xldj9hY7KS/O+H+sUCNwjNHiYOdefw1L2FD3p3lzC2LFLqExb
-kUJm2n886QMgXggPdnm5IRCJt3NGRH5uKAwA5PQ+Zar1xidXLLsdruWUV6NznmtE
-ADVK88c0nKKnqmKfHe+obL4Hre+u7pMLusNZTpBALQBe8A8K3hgqs5cxY4T/GBy2
-2H3uM+2Z8PV/iFizDZDb60R+Bjdh1DS59v0+jQfktbCuCc6Y5LAb1XtTlN2KsiDW
-sHL4sbx23xaGOXvkqRVHV67KQdY6uhXRwLU4ZgsPgIuiB7T8gB+jTB/SZZfBLK5G
-MWFJDddfrNKmBQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server2-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server2-key.pem
deleted file mode 100644
index e4b6181e8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server2-key.pem
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDGNYroqr0zyV6E
-Q2dCZSo844m0pmehO+5thdHTK26xYtTxIkOg1belfbX1bAkGfIzvh69PNM4n6/NK
-N1fD19ju5KB3ZSynwhBla3tIxNgo/kxOT34vIMRJW3E4QA02o1ezRNq+zVQUFWYP
-0wUI8i4DZy5cXeGw5sAlj1h3W9PXqCLqVtMOAW04NFZHqhLEuirv7Bj11Nu5+m/c
-UOvuEKIUtZoS4eOFD3kUuHBtDRwdOFeFaoIM1r0svyDxKC72NICnDTKCNU/BseWe
-JtX4uTlXQ+/t8RBcPjK62eSeQM0o6iZGm6k0jZ+5/UV9FPfOyjuFh6dkdJxlKRiz
-9bGtkmI5AgMBAAECggEAL6rWwke1gsvNyD8xiR0tQEF0b5aJW5Q/LeW95WwPjed3
-0Jnt67MaHFmUNfaKYR35Au39si2/2of7FYEjwTyatjETikMxrxKTwOBNYN2+InWt
-wjOJ5CmcKwwruVxmERrNT5aiiLp2mvHefrXAAzvC5xycYKhPS6zizuWfX+0ckEM5
-yJnl8TRTjfqExxHS1ciTY4B1w8nfWdYY/xiQW23sCPZ8toqsqAuHJjREmMcj+oer
-z8Md1tZNa0ujDy0ejSovCnqzWIi4Umg3SndhRDYKNRAFGPNQmYRM+EWEqQufMaXP
-ghD+Heb5RUPSkNW98KdjDGK4WiIeqF45tb+YQ4AvgQKBgQDt2X+FMHG/s7FAEAxA
-x6TzIcDedqwEKtO3JbaC+Q0FKwRTGwP1tGOnyqbVrw4cSlza5EvUnK8CZK9I2HFd
-qfbP3rtFCtHl9/bpVZPNkaVImzqkfmzmGJIREsCDIPu8THFNyxL2TC27VKCNsSmZ
-ui2tuxRJ6/O0DroGdvdnFL89SQKBgQDVVaZjiA5Cr1e5Eo6q3dNNeMSBfTuI90Ja
-W1OmVovp2yWYjfFFTW2B9vb4RDaRvIuykGhHgAnGKGmHtv7f0GlY7n6Qr0czvyn5
-6s+fRVIcPzEaTVnxC1g20+XHc41XdqnIOcaUjUz7oqC6g7+Y56WKdvvKitV0Lb98
-ua7ZOM6tcQKBgGWtRMY7H2VD+9HXCmXm8qy9ESYItSBS7o6soIj8zoQXD5I3SkoP
-A0sHZqqSWwXdBDTOw1vwXyA2ynfpjwzrS4cxP/0T0wbsKbE11ClcybtwIHGRWhxD
-BK4nxgRIZVTpmMYYudJwXlxmoPvxcEc3P6+0+cdgBp5CbWO2F60JQXeBAoGAHxLs
-u46z1Q7JTlHfqg/JmX0/0kS1iUvKxHKNCquMkbG0FjaGsDuI+edJLfxxnmTCTG4w
-YknKIqz8QiJrmZo33hZPJTACxQzRRm/nciGcxjSGKHif4zZt0P6od5bjPZwxOtL/
-k9/JGNYlZ0WNgO4s9LBEGMqEMPoA7F/3kfhuUmECgYEA6WzFZjs31OqTLE0vnCfL
-/b/wPeozaAyjtR/24TNkAFwP/LrBAA5gFOoL8p94ce87yXdm80x3bK6OGbNmor7c
-qT/OJgnXV1wTrKYSkFUu7LTC7DihpYy2MqyGg8xGxB4kK1IR+ROB4v3c5RkIqaGF
-lTSpXFge771NjCimucIOl/Y=
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server3-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server3-cert.pem
deleted file mode 100644
index 34cc27c12..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server3-cert.pem
+++ /dev/null
@@ -1,279 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 7 (0x7)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL intermediate CA 2/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=www3.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:be:19:65:1e:17:39:d4:33:fc:97:64:69:80:51:
- fb:6c:7c:ca:e1:ba:2a:ab:d2:dd:30:61:f3:2e:47:
- c1:d4:33:c0:ff:53:21:ba:2d:14:a6:b9:7c:66:ca:
- 45:7b:1c:7d:8f:fc:75:f3:9a:69:f1:6c:25:46:a0:
- 92:5d:00:93:e3:22:a6:60:b9:97:05:37:7f:a1:aa:
- cd:22:81:72:b1:22:47:3d:7c:8d:46:55:bc:32:4d:
- d2:84:43:5c:15:43:07:22:70:36:39:93:1b:e8:a1:
- 46:bb:02:85:ba:1d:31:ac:b1:3c:84:5b:eb:8f:1f:
- 62:8a:71:52:9e:0b:63:b6:e6:d6:46:cc:19:06:d6:
- bb:06:81:e4:0b:25:14:6c:63:94:70:1a:27:37:95:
- 24:40:07:30:f5:24:73:c3:bd:f9:0e:5f:b6:cd:4f:
- 18:88:f0:d7:a3:9b:f5:b0:1e:fe:04:03:a5:8d:73:
- f7:6b:31:74:85:fd:61:fa:9e:53:37:75:90:e6:f8:
- b5:98:66:e8:52:4d:4a:4c:39:05:65:c1:34:f9:c6:
- 95:27:b0:07:c1:51:96:a8:82:1b:22:cf:41:df:de:
- b4:94:b7:0d:ba:61:fb:f4:40:7c:a1:fc:a2:29:a3:
- 47:4d:b4:94:9d:7b:51:ec:e4:13:fb:cd:e9:26:ca:
- a7:93
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- X509v3 Subject Key Identifier:
- C1:CD:C0:2C:34:F4:3B:BB:E3:CA:98:35:7D:6A:15:33:94:5C:11:3A
- X509v3 Authority Key Identifier:
- keyid:05:D1:BA:86:00:A2:EE:2A:05:24:B7:11:AD:2D:60:F1:90:14:8F:17
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:02
-
- X509v3 Key Usage:
- Digital Signature, Non Repudiation, Key Encipherment
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22222
-
- Signature Algorithm: sha256WithRSAEncryption
- 4e:22:d8:3b:f8:92:f0:1a:0d:6f:94:a6:88:d8:27:b8:28:a4:
- 86:4a:2f:4e:6e:ed:38:62:8e:6d:d8:de:33:e9:9d:c8:b1:a8:
- f2:0a:66:b8:17:f0:34:79:c0:bf:4a:0b:fe:00:c3:38:db:c0:
- 40:1b:84:22:58:b1:e6:60:87:c8:28:f7:52:5c:2b:02:cf:3d:
- d4:28:84:3c:cb:74:8a:5a:da:4b:50:ce:95:81:ef:df:c8:dd:
- 45:f0:8d:a0:62:3e:4a:b3:d8:0b:3d:d9:75:d5:0d:43:65:01:
- fc:f4:70:92:ae:f9:30:6c:21:7c:17:d4:b6:00:1d:97:7b:e6:
- 1d:c4:9f:a7:d5:00:87:e7:bd:5a:80:ba:14:9f:56:fc:f1:b5:
- f8:ed:14:61:1c:24:7f:ac:39:03:41:dc:c2:da:b2:2e:df:06:
- 70:6a:81:1d:6d:a6:e4:cf:f1:5a:c8:80:8d:ea:13:f3:3b:73:
- 17:41:87:f2:fa:25:c8:47:73:86:d5:ba:e3:8f:ab:f7:f0:b1:
- 1f:b7:33:57:0f:76:01:5c:59:55:fe:13:05:69:2c:e1:02:85:
- ac:28:72:48:f7:2d:8c:6b:da:72:fa:95:d5:8f:23:1d:d0:37:
- 5d:70:97:af:53:aa:37:11:5d:9e:c3:79:da:bf:c2:01:f3:32:
- a2:e4:b0:bd
------BEGIN CERTIFICATE-----
-MIIE7jCCA9agAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMSIwIAYDVQQDDBl3b2xmU1NM
-IGludGVybWVkaWF0ZSBDQSAyMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE4MDQxMzE1MjMxMFoXDTIxMDEwNzE1MjMxMFowgZgxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYD
-VQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEZMBcGA1UEAwwQd3d3
-My53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL4ZZR4XOdQz/JdkaYBR+2x8
-yuG6KqvS3TBh8y5HwdQzwP9TIbotFKa5fGbKRXscfY/8dfOaafFsJUagkl0Ak+Mi
-pmC5lwU3f6GqzSKBcrEiRz18jUZVvDJN0oRDXBVDByJwNjmTG+ihRrsChbodMayx
-PIRb648fYopxUp4LY7bm1kbMGQbWuwaB5AslFGxjlHAaJzeVJEAHMPUkc8O9+Q5f
-ts1PGIjw16Ob9bAe/gQDpY1z92sxdIX9YfqeUzd1kOb4tZhm6FJNSkw5BWXBNPnG
-lSewB8FRlqiCGyLPQd/etJS3Dbph+/RAfKH8oimjR020lJ17UezkE/vN6SbKp5MC
-AwEAAaOCATYwggEyMAkGA1UdEwQCMAAwHQYDVR0OBBYEFMHNwCw09Du748qYNX1q
-FTOUXBE6MIHEBgNVHSMEgbwwgbmAFAXRuoYAou4qBSS3Ea0tYPGQFI8XoYGdpIGa
-MIGXMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwH
-U2VhdHRsZTEQMA4GA1UECgwHd29sZlNTTDEUMBIGA1UECwwLRW5naW5lZXJpbmcx
-GDAWBgNVBAMMD3dvbGZTU0wgcm9vdCBDQTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3
-b2xmc3NsLmNvbYIBAjALBgNVHQ8EBAMCBeAwMgYIKwYBBQUHAQEEJjAkMCIGCCsG
-AQUFBzABhhZodHRwOi8vMTI3LjAuMC4xOjIyMjIyMA0GCSqGSIb3DQEBCwUAA4IB
-AQBOItg7+JLwGg1vlKaI2Ce4KKSGSi9Obu04Yo5t2N4z6Z3IsajyCma4F/A0ecC/
-Sgv+AMM428BAG4QiWLHmYIfIKPdSXCsCzz3UKIQ8y3SKWtpLUM6Vge/fyN1F8I2g
-Yj5Ks9gLPdl11Q1DZQH89HCSrvkwbCF8F9S2AB2Xe+YdxJ+n1QCH571agLoUn1b8
-8bX47RRhHCR/rDkDQdzC2rIu3wZwaoEdbabkz/FayICN6hPzO3MXQYfy+iXIR3OG
-1brjj6v38LEftzNXD3YBXFlV/hMFaSzhAoWsKHJI9y2Ma9py+pXVjyMd0DddcJev
-U6o3EV2ew3nav8IB8zKi5LC9
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 2 (0x2)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL intermediate CA 2/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:d0:20:3c:35:19:6f:2c:44:b4:7e:42:c7:75:b4:
- 6a:2b:a9:23:85:bf:87:b4:ee:ca:d7:4b:1f:31:d7:
- 11:02:a1:ab:58:3d:fb:dc:51:ca:3a:1d:1f:95:a6:
- 56:82:f7:8f:ff:6b:50:bb:ea:10:e1:47:1d:35:77:
- 2e:4b:28:c5:53:46:23:2b:82:fd:5a:d3:f4:21:db:
- 0e:e0:f2:76:33:47:b3:00:be:3a:b1:23:98:53:eb:
- ea:a0:de:1b:cc:05:4e:ee:63:a8:2c:93:24:d6:98:
- 78:74:03:e4:c8:89:43:61:f1:25:b8:cd:3b:87:c1:
- 31:25:fd:ba:4c:fc:29:94:45:9e:69:d7:67:0a:8a:
- 8e:d5:52:93:30:a2:0e:dd:6a:1c:b0:94:77:db:52:
- 52:b7:89:21:be:96:75:24:cb:e9:49:df:81:9d:9d:
- f8:55:7d:01:2a:eb:78:03:12:e2:20:6e:db:63:35:
- cd:a1:96:f0:f8:8c:20:35:69:87:01:ca:b4:54:36:
- a0:15:e0:23:7d:b9:fb:be:99:05:50:f0:bf:ec:7f:
- 12:e1:3d:75:15:4e:c8:c2:30:e6:8b:fe:e5:8b:55:
- f8:44:5e:e5:e3:56:e0:66:2d:6f:42:5a:45:6b:96:
- aa:c7:5d:41:08:5f:ce:d7:dc:9f:20:e4:46:78:ff:
- d9:99
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 05:D1:BA:86:00:A2:EE:2A:05:24:B7:11:AD:2D:60:F1:90:14:8F:17
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 92:6e:c1:af:88:af:46:f2:6e:8a:8c:27:06:8e:b4:38:35:9b:
- 47:92:24:20:e5:a5:13:d8:35:d3:2e:37:ca:74:47:e5:16:a3:
- 03:63:16:b4:28:2b:d9:04:ab:ee:e4:0a:e5:87:da:d4:00:3a:
- 53:c6:c9:25:6a:8f:49:d2:2e:34:f2:40:65:6e:02:fc:b9:42:
- 3f:ef:cb:8c:79:84:03:84:dc:a0:68:1e:c7:c7:36:8c:60:14:
- 55:f2:5f:f9:c1:3f:2b:f6:a2:1e:34:1f:83:ba:73:bc:b7:62:
- bc:97:66:84:09:b9:2d:76:71:c8:91:fd:e2:e1:39:cf:dd:ec:
- 98:a8:49:69:89:a8:18:2a:42:e7:fc:ab:2c:cf:13:ab:63:fe:
- b0:19:ea:1a:38:22:16:11:31:34:43:fc:50:c6:ec:19:97:03:
- db:e8:07:28:48:88:3a:e5:35:a2:fd:83:12:df:55:70:72:61:
- 0d:f8:66:18:52:58:c9:46:97:86:31:9e:a2:43:0c:b9:0f:d3:
- eb:35:c9:e5:19:4e:b4:8b:d2:ac:ea:bf:83:2a:48:9d:20:a0:
- 08:45:60:92:8a:27:06:93:77:74:bb:0e:22:8e:54:17:f2:d4:
- e7:7f:f3:90:4d:cc:75:e7:16:c5:9c:4a:cf:dc:f2:19:18:12:
- f5:72:8e:2e
------BEGIN CERTIFICATE-----
-MIIE8DCCA9igAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBoTELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMSIwIAYDVQQDDBl3b2xmU1NMIGludGVy
-bWVkaWF0ZSBDQSAyMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0CA8NRlvLES0fkLHdbRqK6kj
-hb+HtO7K10sfMdcRAqGrWD373FHKOh0flaZWgveP/2tQu+oQ4UcdNXcuSyjFU0Yj
-K4L9WtP0IdsO4PJ2M0ezAL46sSOYU+vqoN4bzAVO7mOoLJMk1ph4dAPkyIlDYfEl
-uM07h8ExJf26TPwplEWeaddnCoqO1VKTMKIO3WocsJR321JSt4khvpZ1JMvpSd+B
-nZ34VX0BKut4AxLiIG7bYzXNoZbw+IwgNWmHAcq0VDagFeAjfbn7vpkFUPC/7H8S
-4T11FU7IwjDmi/7li1X4RF7l41bgZi1vQlpFa5aqx11BCF/O19yfIORGeP/ZmQID
-AQABo4IBOTCCATUwDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUBdG6hgCi7ioFJLcR
-rS1g8ZAUjxcwgcQGA1UdIwSBvDCBuYAUc7AcpC+Cy89HpTjXsASCOn5yFSGhgZ2k
-gZowgZcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH
-DAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtFbmdpbmVlcmlu
-ZzEYMBYGA1UEAwwPd29sZlNTTCByb290IENBMR8wHQYJKoZIhvcNAQkBFhBpbmZv
-QHdvbGZzc2wuY29tggFjMAsGA1UdDwQEAwIBBjAyBggrBgEFBQcBAQQmMCQwIgYI
-KwYBBQUHMAGGFmh0dHA6Ly8xMjcuMC4wLjE6MjIyMjAwDQYJKoZIhvcNAQELBQAD
-ggEBAJJuwa+Ir0byboqMJwaOtDg1m0eSJCDlpRPYNdMuN8p0R+UWowNjFrQoK9kE
-q+7kCuWH2tQAOlPGySVqj0nSLjTyQGVuAvy5Qj/vy4x5hAOE3KBoHsfHNoxgFFXy
-X/nBPyv2oh40H4O6c7y3YryXZoQJuS12cciR/eLhOc/d7JioSWmJqBgqQuf8qyzP
-E6tj/rAZ6ho4IhYRMTRD/FDG7BmXA9voByhIiDrlNaL9gxLfVXByYQ34ZhhSWMlG
-l4YxnqJDDLkP0+s1yeUZTrSL0qzqv4MqSJ0goAhFYJKKJwaTd3S7DiKOVBfy1Od/
-85BNzHXnFsWcSs/c8hkYEvVyji4=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 99 (0x63)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ab:2c:b4:2f:1d:06:09:ef:4e:29:86:84:7e:cc:
- bf:a6:79:7c:f0:c0:c1:64:25:8c:75:b7:10:05:ca:
- 48:27:0c:0e:32:1c:b0:fe:99:85:39:b6:b9:a2:f7:
- 27:ff:6d:3c:8c:16:73:29:21:7f:8b:a6:54:71:90:
- ad:cc:05:b9:9f:15:c7:0a:3f:5f:69:f4:0a:5f:8c:
- 71:b5:2c:bf:66:e2:03:9a:32:f4:d2:ec:2a:89:4b:
- f9:35:88:14:33:47:4e:2e:05:79:01:ed:64:36:76:
- b9:f8:85:cd:01:88:ac:c5:b2:b1:59:b8:cd:5a:f4:
- 09:09:38:9b:da:5a:cf:ce:78:99:1f:49:3d:41:d6:
- 06:7c:52:99:c8:97:d1:b3:80:3a:a2:4f:36:c4:c5:
- 96:30:77:31:38:c8:70:cc:e1:67:06:b3:2b:2f:93:
- b5:69:cf:83:7e:88:53:9b:0f:46:21:4c:d6:05:36:
- 44:99:60:68:47:e5:32:01:12:d4:10:73:ae:9a:34:
- 94:fa:6e:b8:58:4f:7b:5b:8a:92:97:ad:fd:97:b9:
- 75:ca:c2:d4:45:7d:17:6b:cd:2f:f3:63:7a:0e:30:
- b5:0b:a9:d9:a6:7c:74:60:9d:cc:09:03:43:f1:0f:
- 90:d3:b7:fe:6c:9f:d9:cd:78:4b:15:ae:8c:5b:f9:
- 99:81
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 6b:10:b1:f8:cb:77:ef:72:f5:f8:fc:70:6d:18:dc:34:fe:d7:
- 95:d8:fd:85:8e:ca:4b:f3:be:1f:eb:14:08:dc:23:34:78:98:
- 39:d7:9f:c3:52:f6:14:3d:e9:de:5c:c2:d8:b1:4b:a8:4c:5b:
- 91:42:66:da:7f:3c:e9:03:20:5e:08:0f:76:79:b9:21:10:89:
- b7:73:46:44:7e:6e:28:0c:00:e4:f4:3e:65:aa:f5:c6:27:57:
- 2c:bb:1d:ae:e5:94:57:a3:73:9e:6b:44:00:35:4a:f3:c7:34:
- 9c:a2:a7:aa:62:9f:1d:ef:a8:6c:be:07:ad:ef:ae:ee:93:0b:
- ba:c3:59:4e:90:40:2d:00:5e:f0:0f:0a:de:18:2a:b3:97:31:
- 63:84:ff:18:1c:b6:d8:7d:ee:33:ed:99:f0:f5:7f:88:58:b3:
- 0d:90:db:eb:44:7e:06:37:61:d4:34:b9:f6:fd:3e:8d:07:e4:
- b5:b0:ae:09:ce:98:e4:b0:1b:d5:7b:53:94:dd:8a:b2:20:d6:
- b0:72:f8:b1:bc:76:df:16:86:39:7b:e4:a9:15:47:57:ae:ca:
- 41:d6:3a:ba:15:d1:c0:b5:38:66:0b:0f:80:8b:a2:07:b4:fc:
- 80:1f:a3:4c:1f:d2:65:97:c1:2c:ae:46:31:61:49:0d:d7:5f:
- ac:d2:a6:05
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIBYzANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBlzELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NMIHJvb3Qg
-Q0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCrLLQvHQYJ704phoR+zL+meXzwwMFkJYx1txAF
-ykgnDA4yHLD+mYU5trmi9yf/bTyMFnMpIX+LplRxkK3MBbmfFccKP19p9ApfjHG1
-LL9m4gOaMvTS7CqJS/k1iBQzR04uBXkB7WQ2drn4hc0BiKzFsrFZuM1a9AkJOJva
-Ws/OeJkfST1B1gZ8UpnIl9GzgDqiTzbExZYwdzE4yHDM4WcGsysvk7Vpz4N+iFOb
-D0YhTNYFNkSZYGhH5TIBEtQQc66aNJT6brhYT3tbipKXrf2XuXXKwtRFfRdrzS/z
-Y3oOMLULqdmmfHRgncwJA0PxD5DTt/5sn9nNeEsVroxb+ZmBAgMBAAGjggE5MIIB
-NTAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRzsBykL4LLz0elONewBII6fnIVITCB
-xAYDVR0jBIG8MIG5gBRzsBykL4LLz0elONewBII6fnIVIaGBnaSBmjCBlzELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-EDAOBgNVBAoMB3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQD
-DA93b2xmU1NMIHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b22CAWMwCwYDVR0PBAQDAgEGMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYW
-aHR0cDovLzEyNy4wLjAuMToyMjIyMDANBgkqhkiG9w0BAQsFAAOCAQEAaxCx+Mt3
-73L1+PxwbRjcNP7Xldj9hY7KS/O+H+sUCNwjNHiYOdefw1L2FD3p3lzC2LFLqExb
-kUJm2n886QMgXggPdnm5IRCJt3NGRH5uKAwA5PQ+Zar1xidXLLsdruWUV6NznmtE
-ADVK88c0nKKnqmKfHe+obL4Hre+u7pMLusNZTpBALQBe8A8K3hgqs5cxY4T/GBy2
-2H3uM+2Z8PV/iFizDZDb60R+Bjdh1DS59v0+jQfktbCuCc6Y5LAb1XtTlN2KsiDW
-sHL4sbx23xaGOXvkqRVHV67KQdY6uhXRwLU4ZgsPgIuiB7T8gB+jTB/SZZfBLK5G
-MWFJDddfrNKmBQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server3-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server3-key.pem
deleted file mode 100644
index 30e108011..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server3-key.pem
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC+GWUeFznUM/yX
-ZGmAUftsfMrhuiqr0t0wYfMuR8HUM8D/UyG6LRSmuXxmykV7HH2P/HXzmmnxbCVG
-oJJdAJPjIqZguZcFN3+hqs0igXKxIkc9fI1GVbwyTdKEQ1wVQwcicDY5kxvooUa7
-AoW6HTGssTyEW+uPH2KKcVKeC2O25tZGzBkG1rsGgeQLJRRsY5RwGic3lSRABzD1
-JHPDvfkOX7bNTxiI8Nejm/WwHv4EA6WNc/drMXSF/WH6nlM3dZDm+LWYZuhSTUpM
-OQVlwTT5xpUnsAfBUZaoghsiz0Hf3rSUtw26Yfv0QHyh/KIpo0dNtJSde1Hs5BP7
-zekmyqeTAgMBAAECggEARDViddCJnF1m5X9O548C8qM4PJQK2YoYeVK76cAviQ9k
-0XgnouCoB0aIn202Tv0jBHXmcJjYKJrQKS5WNe6OIbJ+FjihOmr2bbCWWCowV+Rf
-wW0eV71NgJMx1OlCchKRzcaLfk8NdYPgmBtIlkYBW+BgQXGl7L2rIteUeEbH6Yj9
-yCn7ORQeFSbhZJTn2WdXhK3GWjV+1GyHyUyL2SSa2+G2LZ54Ifquq/F6rMGYB9lY
-2K6Q6DB18aVxd/I/OYKeyBZcmJ9COgPUW7/fg0He73aduYdVvWZCRP1ygGdqSZFr
-oqLVe34bEVFANUKylzRplRJdC4oKSUyTSubiOMKZ+QKBgQDf0mk3PolyvsfE2YGb
-9/DsURIxZg14o9Pysp3yD1vvIYNz6WaddtJaj5OM7NzN8spu3wJSoeVgL6KYI6ah
-ZTIYqy4ehOGPKBVL7SvLF+7q/QBMTdfllpdK7GLTtjBnz92TZl9bS/rBc9dCnnBC
-EDkPPrc3nbk5/ADWd+K4RPG3HwKBgQDZbdiQCKY2ulppRcwjcAEIjhrFpShV21P6
-JNKt17HDBqULIAn+G9T/Gg/6yHWeY1DUgVBu1avb4L3jdnMPe2O+1jeaDzNRo6Xj
-9v6PgGsiv4q7gfz7XqVwylUWIY7O52Ox/q+/QJBfwE0qe+E0t4syb44W4QvD9+k7
-fv77R7dFDQKBgQCe0SfVimtvX05TMN9V87YhiVk2ciqm6uDO+s02YI2kfgxPqFMm
-8pRKrExPmBcJj/jyeQ2l4rjm6oYeHFX1ed/1PyoHf9SphxCtgoornzzpw0J94lKK
-17Nc96Ucgs+QKiAYonCRULWKpY8d91zCk85ZMfBB54nySg2yIPlgNZOqkwKBgFO/
-Xqnj2vm7f7WKv91qd8tuyNsWCVpAl7EC2+8/5GVlOs71MUQiPkFgLYWADuXKBUlE
-4dE/FeokP5/McPcmpL3Nzy7U6gRpDy2mZlipsxp4QpyErge4Zery1CEpHdOOBrV5
-jwIQgUuQS2iwvIbMp53uoAEp/5kk9T4IZXguIGZFAoGAMA/j0kHArT7FINf+O6R4
-3EyUTR139emLKHU2OlH/HfHVRZhHo4AmfUYksf+Njb81A6MKFd1XVmNnaumBIfq+
-6Ohoz1VMoO6aUiMMqbmBGaTHc30FVEtAQIRq2C8UDrEN67Sx3O/ngl0Br7lNri29
-LMSCe8fxf8+Kq0k+6tcsht4=
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server4-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server4-cert.pem
deleted file mode 100644
index 95eb15a0a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server4-cert.pem
+++ /dev/null
@@ -1,279 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 8 (0x8)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL intermediate CA 2/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=www4.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:9c:ef:8a:7e:84:4d:58:7a:b1:91:c8:cb:68:76:
- df:fe:0a:29:fe:7f:74:35:d5:c3:fd:43:be:d7:89:
- fc:59:51:5a:30:e9:50:14:84:24:d0:c8:72:7d:d6:
- 75:42:12:8b:16:ad:5a:e8:d3:84:a7:07:2b:9e:12:
- ef:6a:cd:3e:83:14:b7:26:a2:53:7b:3d:6c:96:7f:
- 9c:c5:09:08:0e:55:08:19:b7:5a:1c:46:32:09:da:
- 44:b2:ca:fd:4a:e4:be:d0:02:c9:c9:48:03:13:a5:
- ad:3e:7b:21:cf:05:3a:b9:25:f5:c1:b8:4e:4d:eb:
- 33:99:d1:50:4a:eb:f7:1a:08:6b:d0:5c:9d:48:eb:
- 98:fd:dc:89:0f:aa:74:d3:7f:03:1b:59:65:f5:86:
- e1:d9:53:ab:e4:53:ab:85:3c:79:8b:45:39:7b:fd:
- e9:a2:10:b9:fa:92:71:0e:68:36:66:6e:8c:fb:e2:
- 8a:5d:5f:72:66:b0:47:2d:c5:b4:93:ce:61:7f:90:
- 1a:64:02:dd:57:9d:f1:f1:e8:75:21:e2:af:44:e3:
- 96:f5:1c:e3:73:87:dc:b7:05:12:ad:a5:8f:0c:d8:
- 2c:b4:90:b3:d9:e7:13:e1:e5:5e:4c:9b:24:89:08:
- 07:9e:aa:6b:9f:64:01:da:ec:95:05:45:84:d9:a9:
- db:c7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- X509v3 Subject Key Identifier:
- 9A:D6:EF:4E:0A:7B:8B:74:E6:14:EC:35:9A:05:2A:94:68:09:61:58
- X509v3 Authority Key Identifier:
- keyid:05:D1:BA:86:00:A2:EE:2A:05:24:B7:11:AD:2D:60:F1:90:14:8F:17
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:02
-
- X509v3 Key Usage:
- Digital Signature, Non Repudiation, Key Encipherment
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22222
-
- Signature Algorithm: sha256WithRSAEncryption
- 18:72:41:57:9a:c3:fa:b0:30:f4:bc:16:81:bf:3a:38:99:d2:
- ac:24:b9:80:24:57:d2:9b:e6:29:ad:5d:7c:7c:f7:50:dd:9d:
- 0b:0f:90:b5:cb:96:a1:19:3f:5b:6d:28:52:ee:a4:bb:28:3e:
- 38:54:73:bb:9a:13:91:3d:f5:57:cf:bc:a8:21:64:dc:5c:d1:
- 19:94:a6:8a:80:f8:92:e4:10:f9:19:c2:2b:b3:78:6b:2c:3d:
- 81:9c:e9:3d:61:78:01:34:dd:f1:be:54:db:31:54:ed:ef:67:
- a3:9b:c1:a1:5b:9b:ce:be:23:3a:6b:ab:92:34:1b:a1:d6:0b:
- 1d:65:8a:cd:e2:f3:d1:ce:a9:c5:bf:19:a9:25:15:e6:98:f5:
- 3f:3f:fa:22:72:48:a6:65:64:06:74:0c:49:bd:fe:7d:4e:5b:
- 23:20:a8:a7:18:0e:7a:39:7e:d2:1f:a6:03:c2:31:6e:ce:49:
- de:81:3c:7d:9f:1c:39:bb:df:8b:5c:58:8f:7a:08:77:f7:f8:
- e3:f0:fe:14:73:0f:40:35:6a:1c:5a:46:79:b8:8b:4e:dd:75:
- e0:55:89:57:d9:19:43:91:ca:66:39:00:7e:9b:0d:b2:3d:fc:
- 35:7e:15:74:ed:36:61:94:7b:37:e2:17:37:4a:43:63:2e:24:
- a7:e6:01:cb
------BEGIN CERTIFICATE-----
-MIIE7jCCA9agAwIBAgIBCDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMSIwIAYDVQQDDBl3b2xmU1NM
-IGludGVybWVkaWF0ZSBDQSAyMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE4MDQxMzE1MjMxMFoXDTIxMDEwNzE1MjMxMFowgZgxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYD
-VQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEZMBcGA1UEAwwQd3d3
-NC53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJzvin6ETVh6sZHIy2h23/4K
-Kf5/dDXVw/1DvteJ/FlRWjDpUBSEJNDIcn3WdUISixatWujThKcHK54S72rNPoMU
-tyaiU3s9bJZ/nMUJCA5VCBm3WhxGMgnaRLLK/UrkvtACyclIAxOlrT57Ic8FOrkl
-9cG4Tk3rM5nRUErr9xoIa9BcnUjrmP3ciQ+qdNN/AxtZZfWG4dlTq+RTq4U8eYtF
-OXv96aIQufqScQ5oNmZujPviil1fcmawRy3FtJPOYX+QGmQC3Ved8fHodSHir0Tj
-lvUc43OH3LcFEq2ljwzYLLSQs9nnE+HlXkybJIkIB56qa59kAdrslQVFhNmp28cC
-AwEAAaOCATYwggEyMAkGA1UdEwQCMAAwHQYDVR0OBBYEFJrW704Ke4t05hTsNZoF
-KpRoCWFYMIHEBgNVHSMEgbwwgbmAFAXRuoYAou4qBSS3Ea0tYPGQFI8XoYGdpIGa
-MIGXMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwH
-U2VhdHRsZTEQMA4GA1UECgwHd29sZlNTTDEUMBIGA1UECwwLRW5naW5lZXJpbmcx
-GDAWBgNVBAMMD3dvbGZTU0wgcm9vdCBDQTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3
-b2xmc3NsLmNvbYIBAjALBgNVHQ8EBAMCBeAwMgYIKwYBBQUHAQEEJjAkMCIGCCsG
-AQUFBzABhhZodHRwOi8vMTI3LjAuMC4xOjIyMjIyMA0GCSqGSIb3DQEBCwUAA4IB
-AQAYckFXmsP6sDD0vBaBvzo4mdKsJLmAJFfSm+YprV18fPdQ3Z0LD5C1y5ahGT9b
-bShS7qS7KD44VHO7mhORPfVXz7yoIWTcXNEZlKaKgPiS5BD5GcIrs3hrLD2BnOk9
-YXgBNN3xvlTbMVTt72ejm8GhW5vOviM6a6uSNBuh1gsdZYrN4vPRzqnFvxmpJRXm
-mPU/P/oickimZWQGdAxJvf59TlsjIKinGA56OX7SH6YDwjFuzknegTx9nxw5u9+L
-XFiPegh39/jj8P4Ucw9ANWocWkZ5uItO3XXgVYlX2RlDkcpmOQB+mw2yPfw1fhV0
-7TZhlHs34hc3SkNjLiSn5gHL
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 2 (0x2)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL intermediate CA 2/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:d0:20:3c:35:19:6f:2c:44:b4:7e:42:c7:75:b4:
- 6a:2b:a9:23:85:bf:87:b4:ee:ca:d7:4b:1f:31:d7:
- 11:02:a1:ab:58:3d:fb:dc:51:ca:3a:1d:1f:95:a6:
- 56:82:f7:8f:ff:6b:50:bb:ea:10:e1:47:1d:35:77:
- 2e:4b:28:c5:53:46:23:2b:82:fd:5a:d3:f4:21:db:
- 0e:e0:f2:76:33:47:b3:00:be:3a:b1:23:98:53:eb:
- ea:a0:de:1b:cc:05:4e:ee:63:a8:2c:93:24:d6:98:
- 78:74:03:e4:c8:89:43:61:f1:25:b8:cd:3b:87:c1:
- 31:25:fd:ba:4c:fc:29:94:45:9e:69:d7:67:0a:8a:
- 8e:d5:52:93:30:a2:0e:dd:6a:1c:b0:94:77:db:52:
- 52:b7:89:21:be:96:75:24:cb:e9:49:df:81:9d:9d:
- f8:55:7d:01:2a:eb:78:03:12:e2:20:6e:db:63:35:
- cd:a1:96:f0:f8:8c:20:35:69:87:01:ca:b4:54:36:
- a0:15:e0:23:7d:b9:fb:be:99:05:50:f0:bf:ec:7f:
- 12:e1:3d:75:15:4e:c8:c2:30:e6:8b:fe:e5:8b:55:
- f8:44:5e:e5:e3:56:e0:66:2d:6f:42:5a:45:6b:96:
- aa:c7:5d:41:08:5f:ce:d7:dc:9f:20:e4:46:78:ff:
- d9:99
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 05:D1:BA:86:00:A2:EE:2A:05:24:B7:11:AD:2D:60:F1:90:14:8F:17
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 92:6e:c1:af:88:af:46:f2:6e:8a:8c:27:06:8e:b4:38:35:9b:
- 47:92:24:20:e5:a5:13:d8:35:d3:2e:37:ca:74:47:e5:16:a3:
- 03:63:16:b4:28:2b:d9:04:ab:ee:e4:0a:e5:87:da:d4:00:3a:
- 53:c6:c9:25:6a:8f:49:d2:2e:34:f2:40:65:6e:02:fc:b9:42:
- 3f:ef:cb:8c:79:84:03:84:dc:a0:68:1e:c7:c7:36:8c:60:14:
- 55:f2:5f:f9:c1:3f:2b:f6:a2:1e:34:1f:83:ba:73:bc:b7:62:
- bc:97:66:84:09:b9:2d:76:71:c8:91:fd:e2:e1:39:cf:dd:ec:
- 98:a8:49:69:89:a8:18:2a:42:e7:fc:ab:2c:cf:13:ab:63:fe:
- b0:19:ea:1a:38:22:16:11:31:34:43:fc:50:c6:ec:19:97:03:
- db:e8:07:28:48:88:3a:e5:35:a2:fd:83:12:df:55:70:72:61:
- 0d:f8:66:18:52:58:c9:46:97:86:31:9e:a2:43:0c:b9:0f:d3:
- eb:35:c9:e5:19:4e:b4:8b:d2:ac:ea:bf:83:2a:48:9d:20:a0:
- 08:45:60:92:8a:27:06:93:77:74:bb:0e:22:8e:54:17:f2:d4:
- e7:7f:f3:90:4d:cc:75:e7:16:c5:9c:4a:cf:dc:f2:19:18:12:
- f5:72:8e:2e
------BEGIN CERTIFICATE-----
-MIIE8DCCA9igAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBoTELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMSIwIAYDVQQDDBl3b2xmU1NMIGludGVy
-bWVkaWF0ZSBDQSAyMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0CA8NRlvLES0fkLHdbRqK6kj
-hb+HtO7K10sfMdcRAqGrWD373FHKOh0flaZWgveP/2tQu+oQ4UcdNXcuSyjFU0Yj
-K4L9WtP0IdsO4PJ2M0ezAL46sSOYU+vqoN4bzAVO7mOoLJMk1ph4dAPkyIlDYfEl
-uM07h8ExJf26TPwplEWeaddnCoqO1VKTMKIO3WocsJR321JSt4khvpZ1JMvpSd+B
-nZ34VX0BKut4AxLiIG7bYzXNoZbw+IwgNWmHAcq0VDagFeAjfbn7vpkFUPC/7H8S
-4T11FU7IwjDmi/7li1X4RF7l41bgZi1vQlpFa5aqx11BCF/O19yfIORGeP/ZmQID
-AQABo4IBOTCCATUwDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUBdG6hgCi7ioFJLcR
-rS1g8ZAUjxcwgcQGA1UdIwSBvDCBuYAUc7AcpC+Cy89HpTjXsASCOn5yFSGhgZ2k
-gZowgZcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH
-DAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtFbmdpbmVlcmlu
-ZzEYMBYGA1UEAwwPd29sZlNTTCByb290IENBMR8wHQYJKoZIhvcNAQkBFhBpbmZv
-QHdvbGZzc2wuY29tggFjMAsGA1UdDwQEAwIBBjAyBggrBgEFBQcBAQQmMCQwIgYI
-KwYBBQUHMAGGFmh0dHA6Ly8xMjcuMC4wLjE6MjIyMjAwDQYJKoZIhvcNAQELBQAD
-ggEBAJJuwa+Ir0byboqMJwaOtDg1m0eSJCDlpRPYNdMuN8p0R+UWowNjFrQoK9kE
-q+7kCuWH2tQAOlPGySVqj0nSLjTyQGVuAvy5Qj/vy4x5hAOE3KBoHsfHNoxgFFXy
-X/nBPyv2oh40H4O6c7y3YryXZoQJuS12cciR/eLhOc/d7JioSWmJqBgqQuf8qyzP
-E6tj/rAZ6ho4IhYRMTRD/FDG7BmXA9voByhIiDrlNaL9gxLfVXByYQ34ZhhSWMlG
-l4YxnqJDDLkP0+s1yeUZTrSL0qzqv4MqSJ0goAhFYJKKJwaTd3S7DiKOVBfy1Od/
-85BNzHXnFsWcSs/c8hkYEvVyji4=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 99 (0x63)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ab:2c:b4:2f:1d:06:09:ef:4e:29:86:84:7e:cc:
- bf:a6:79:7c:f0:c0:c1:64:25:8c:75:b7:10:05:ca:
- 48:27:0c:0e:32:1c:b0:fe:99:85:39:b6:b9:a2:f7:
- 27:ff:6d:3c:8c:16:73:29:21:7f:8b:a6:54:71:90:
- ad:cc:05:b9:9f:15:c7:0a:3f:5f:69:f4:0a:5f:8c:
- 71:b5:2c:bf:66:e2:03:9a:32:f4:d2:ec:2a:89:4b:
- f9:35:88:14:33:47:4e:2e:05:79:01:ed:64:36:76:
- b9:f8:85:cd:01:88:ac:c5:b2:b1:59:b8:cd:5a:f4:
- 09:09:38:9b:da:5a:cf:ce:78:99:1f:49:3d:41:d6:
- 06:7c:52:99:c8:97:d1:b3:80:3a:a2:4f:36:c4:c5:
- 96:30:77:31:38:c8:70:cc:e1:67:06:b3:2b:2f:93:
- b5:69:cf:83:7e:88:53:9b:0f:46:21:4c:d6:05:36:
- 44:99:60:68:47:e5:32:01:12:d4:10:73:ae:9a:34:
- 94:fa:6e:b8:58:4f:7b:5b:8a:92:97:ad:fd:97:b9:
- 75:ca:c2:d4:45:7d:17:6b:cd:2f:f3:63:7a:0e:30:
- b5:0b:a9:d9:a6:7c:74:60:9d:cc:09:03:43:f1:0f:
- 90:d3:b7:fe:6c:9f:d9:cd:78:4b:15:ae:8c:5b:f9:
- 99:81
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 6b:10:b1:f8:cb:77:ef:72:f5:f8:fc:70:6d:18:dc:34:fe:d7:
- 95:d8:fd:85:8e:ca:4b:f3:be:1f:eb:14:08:dc:23:34:78:98:
- 39:d7:9f:c3:52:f6:14:3d:e9:de:5c:c2:d8:b1:4b:a8:4c:5b:
- 91:42:66:da:7f:3c:e9:03:20:5e:08:0f:76:79:b9:21:10:89:
- b7:73:46:44:7e:6e:28:0c:00:e4:f4:3e:65:aa:f5:c6:27:57:
- 2c:bb:1d:ae:e5:94:57:a3:73:9e:6b:44:00:35:4a:f3:c7:34:
- 9c:a2:a7:aa:62:9f:1d:ef:a8:6c:be:07:ad:ef:ae:ee:93:0b:
- ba:c3:59:4e:90:40:2d:00:5e:f0:0f:0a:de:18:2a:b3:97:31:
- 63:84:ff:18:1c:b6:d8:7d:ee:33:ed:99:f0:f5:7f:88:58:b3:
- 0d:90:db:eb:44:7e:06:37:61:d4:34:b9:f6:fd:3e:8d:07:e4:
- b5:b0:ae:09:ce:98:e4:b0:1b:d5:7b:53:94:dd:8a:b2:20:d6:
- b0:72:f8:b1:bc:76:df:16:86:39:7b:e4:a9:15:47:57:ae:ca:
- 41:d6:3a:ba:15:d1:c0:b5:38:66:0b:0f:80:8b:a2:07:b4:fc:
- 80:1f:a3:4c:1f:d2:65:97:c1:2c:ae:46:31:61:49:0d:d7:5f:
- ac:d2:a6:05
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIBYzANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBlzELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NMIHJvb3Qg
-Q0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCrLLQvHQYJ704phoR+zL+meXzwwMFkJYx1txAF
-ykgnDA4yHLD+mYU5trmi9yf/bTyMFnMpIX+LplRxkK3MBbmfFccKP19p9ApfjHG1
-LL9m4gOaMvTS7CqJS/k1iBQzR04uBXkB7WQ2drn4hc0BiKzFsrFZuM1a9AkJOJva
-Ws/OeJkfST1B1gZ8UpnIl9GzgDqiTzbExZYwdzE4yHDM4WcGsysvk7Vpz4N+iFOb
-D0YhTNYFNkSZYGhH5TIBEtQQc66aNJT6brhYT3tbipKXrf2XuXXKwtRFfRdrzS/z
-Y3oOMLULqdmmfHRgncwJA0PxD5DTt/5sn9nNeEsVroxb+ZmBAgMBAAGjggE5MIIB
-NTAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRzsBykL4LLz0elONewBII6fnIVITCB
-xAYDVR0jBIG8MIG5gBRzsBykL4LLz0elONewBII6fnIVIaGBnaSBmjCBlzELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-EDAOBgNVBAoMB3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQD
-DA93b2xmU1NMIHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b22CAWMwCwYDVR0PBAQDAgEGMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYW
-aHR0cDovLzEyNy4wLjAuMToyMjIyMDANBgkqhkiG9w0BAQsFAAOCAQEAaxCx+Mt3
-73L1+PxwbRjcNP7Xldj9hY7KS/O+H+sUCNwjNHiYOdefw1L2FD3p3lzC2LFLqExb
-kUJm2n886QMgXggPdnm5IRCJt3NGRH5uKAwA5PQ+Zar1xidXLLsdruWUV6NznmtE
-ADVK88c0nKKnqmKfHe+obL4Hre+u7pMLusNZTpBALQBe8A8K3hgqs5cxY4T/GBy2
-2H3uM+2Z8PV/iFizDZDb60R+Bjdh1DS59v0+jQfktbCuCc6Y5LAb1XtTlN2KsiDW
-sHL4sbx23xaGOXvkqRVHV67KQdY6uhXRwLU4ZgsPgIuiB7T8gB+jTB/SZZfBLK5G
-MWFJDddfrNKmBQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server4-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server4-key.pem
deleted file mode 100644
index 39a93b209..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server4-key.pem
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCc74p+hE1YerGR
-yMtodt/+Cin+f3Q11cP9Q77XifxZUVow6VAUhCTQyHJ91nVCEosWrVro04SnByue
-Eu9qzT6DFLcmolN7PWyWf5zFCQgOVQgZt1ocRjIJ2kSyyv1K5L7QAsnJSAMTpa0+
-eyHPBTq5JfXBuE5N6zOZ0VBK6/caCGvQXJ1I65j93IkPqnTTfwMbWWX1huHZU6vk
-U6uFPHmLRTl7/emiELn6knEOaDZmboz74opdX3JmsEctxbSTzmF/kBpkAt1XnfHx
-6HUh4q9E45b1HONzh9y3BRKtpY8M2Cy0kLPZ5xPh5V5MmySJCAeeqmufZAHa7JUF
-RYTZqdvHAgMBAAECggEAMmlQF6vwHIftGmNh08C72yLwsmvGrLRqLKTiXOJaSWa0
-jhmkO7LnEJoTDREiwYKrYzF0jm3DotPO0wxKFAiyF/FDlAl4v5HPm9iKR1DLYa82
-1uvq6kIyOLAAeV5zVud7093Ra/LR6jHCINv01EddwbPL6dqGbMks3jA6lpaN3bJt
-85VSy3h6rC2pIZrGddJxDV5jR2gm4N4j8GJoPWpYIGZa/i+GhFmx0OJfUAWTBsGQ
-flt4HxtxoR0OkAQ1MnBbBLqadQQiJ3tt47vD5Ma98GGkuq/l9y2rCuJ/t7sjY7+1
-1dnXrMj4VHKTNYEIkmpNti9lblT55P9v5HAYj4SoIQKBgQDP6/Tf1sf12XKZoQvi
-qwww32brRqMnj7xpiK9PfsPdnBvq1u8aApQ2XRsHLkH/aq7S91DdLKhn+5fX9TZq
-fGtix0V5/JVB11+0Y8hB6YonKtmTxGPScSKQdsSdnvo27yuBfSSp2QuSqYsAqKdV
-dU/F++jAeNJFr5lg+X3zo+7gMwKBgQDBOXB3cO6Xjr1vzkxdtxpbKYTVYK5XGFpy
-lGDJ9QasDMD6iX8EsTzp0/3CRtITnfYFBiBDXSFDwoUm7TqjdlDh9ahFcvkre/33
-6SmXqHshn/RBl+JCAKYolw7cJmuWAFrJNZPbnbfiuqDNg8wkD3P2VTVkKWjsDpxA
-f+99Xm2yHQKBgBBlWvoLxdjtPMxAlt9Y/a0c8NC80UDdZM4tqSVrqaZgGRN7v38d
-lPJ0hR0b2Lh7gS3Bsu6+BsmsXVz6SUA8b3tqm1/zOxHmGfXvqGsKL4rHJkEwy25c
-3Yzm0LpdPv31/khHxgxewTrfg8aZhhiHF7NVGhWTcYFtR3sOMZB07PFhAoGAf9to
-RkDeQD9druwNsD2HHSeeFCvDcTJWN1djrH+MiLBvydjNyecV7YwvcCy4ue5eavig
-xLKNXm8K+LUlhiC2aK7LSBlKM7H6Xd9VfFsqDxfu4rCEMTSIvncmiBqMOlfFuzrO
-uhXlJgxkd1ls7bej/i5oA/06xmjsj+mYKZcgcykCgYAbONjSKF28CILSDKLepNqx
-euRSnKaSgTjcu8B5C6ZWUY8+EsD3Lw6VK2Xn+PPPSS2+Pw7dgLdYybyCgPOLXV+9
-we3d0OyuIPiLiRpfnHVTXdYQBc7qa8khw12LZpodkXwKT85St8jdwJzL1KTZAWqf
-N2KyjDHPGPz8paCzS8LfuQ==
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server5-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server5-cert.pem
deleted file mode 100644
index 1a6b81c67..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server5-cert.pem
+++ /dev/null
@@ -1,279 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 9 (0x9)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL REVOKED intermediate CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=www5.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ac:73:6d:e9:fa:8c:36:72:3e:89:3b:52:29:bd:
- 14:70:a2:00:b4:08:58:b6:c6:c0:bf:80:6a:1f:a5:
- f0:15:fc:f4:19:a2:67:f9:6a:5d:22:69:2e:9c:29:
- 53:1e:5a:4a:d1:27:d5:b8:3b:65:37:8a:a2:eb:1b:
- d4:5d:90:11:35:11:af:e3:d1:8c:24:5b:b5:90:c0:
- bf:de:cb:7a:05:71:1b:ef:76:d7:9d:43:47:85:dc:
- 24:b8:b8:54:fc:53:bf:c3:fd:e1:12:c6:fc:1b:6f:
- 95:aa:cf:bb:8e:22:af:83:bd:4e:6b:66:fe:7e:7e:
- 98:6f:b1:b9:fc:f9:8a:8a:18:92:9a:4c:27:5d:78:
- 6b:e9:d0:14:1c:ed:69:6d:29:4c:4e:52:e6:92:24:
- 53:b0:2e:c3:a4:94:8f:20:1c:29:5c:97:70:1a:32:
- 85:90:71:f7:d7:a5:99:4f:48:c7:3d:fc:3d:a7:e1:
- f9:96:ea:c1:6b:ea:31:e0:9b:fb:68:3e:4b:ad:a4:
- 2b:06:90:c2:b4:27:ea:f3:a3:3e:6e:32:75:aa:70:
- 6a:e3:33:29:fb:42:09:94:79:a5:eb:3c:4e:89:02:
- 77:08:fd:da:ba:fc:14:c6:8e:c1:5e:db:6d:d0:07:
- 4f:02:79:60:e7:95:c3:c8:f4:54:83:21:12:79:03:
- 7f:e1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- X509v3 Subject Key Identifier:
- 2A:48:B6:8B:00:F0:4B:35:73:94:07:87:52:A3:69:5E:E6:D8:42:87
- X509v3 Authority Key Identifier:
- keyid:BB:15:9E:32:4D:E0:F8:AA:8A:B0:2E:0C:17:2B:5A:41:74:4B:06:45
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:03
-
- X509v3 Key Usage:
- Digital Signature, Non Repudiation, Key Encipherment
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22223
-
- Signature Algorithm: sha256WithRSAEncryption
- ba:fe:ad:1d:d4:33:69:13:86:4d:1a:ea:fc:a0:61:00:9a:bd:
- 83:7d:53:3d:b5:63:a9:c8:c2:b6:10:4d:fb:5f:f2:e5:b1:e4:
- 1a:9b:85:36:8f:3c:d3:09:98:4c:c5:3e:10:ed:a3:74:a5:3c:
- fc:d9:b2:80:38:6c:be:f4:8b:52:40:0e:45:e8:fd:a2:29:d8:
- 5c:f9:1d:14:76:3d:8d:41:74:3c:56:05:d2:a3:2e:14:5b:35:
- 95:97:cf:c1:01:cf:a2:26:38:0b:76:12:bd:c4:68:f2:f5:49:
- ed:7e:eb:4e:08:73:fe:82:06:8e:ce:c4:22:d5:16:ef:0e:62:
- d5:f1:08:b8:2e:02:75:23:52:04:cf:cb:aa:1c:ce:77:b6:3a:
- e9:78:53:c4:37:d4:cc:7f:96:5d:97:89:35:da:a6:23:77:87:
- 60:4a:a8:f8:b6:e6:1a:00:c5:74:98:88:b2:01:fd:23:81:05:
- f5:bb:96:60:55:ae:3b:9f:bf:c9:82:e1:24:d6:1d:1f:5d:9c:
- f7:1b:cb:37:3e:4f:c8:ca:65:c1:33:69:75:62:83:bb:87:45:
- 47:bd:b2:b6:55:ef:8f:7c:5f:fd:14:75:96:4f:3e:19:d8:88:
- 67:5d:75:ae:77:8f:38:3f:a2:7e:f6:f8:b8:c8:57:28:10:9d:
- 1e:cd:c3:5c
------BEGIN CERTIFICATE-----
-MIIE9DCCA9ygAwIBAgIBCTANBgkqhkiG9w0BAQsFADCBpzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMSgwJgYDVQQDDB93b2xmU1NM
-IFJFVk9LRUQgaW50ZXJtZWRpYXRlIENBMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tMB4XDTE4MDQxMzE1MjMxMFoXDTIxMDEwNzE1MjMxMFowgZgxCzAJ
-BgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxl
-MRAwDgYDVQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEZMBcGA1UE
-AwwQd3d3NS53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3Ns
-LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKxzben6jDZyPok7
-Uim9FHCiALQIWLbGwL+Aah+l8BX89BmiZ/lqXSJpLpwpUx5aStEn1bg7ZTeKousb
-1F2QETURr+PRjCRbtZDAv97LegVxG+92151DR4XcJLi4VPxTv8P94RLG/BtvlarP
-u44ir4O9Tmtm/n5+mG+xufz5iooYkppMJ114a+nQFBztaW0pTE5S5pIkU7Auw6SU
-jyAcKVyXcBoyhZBx99elmU9Ixz38Pafh+ZbqwWvqMeCb+2g+S62kKwaQwrQn6vOj
-Pm4ydapwauMzKftCCZR5pes8TokCdwj92rr8FMaOwV7bbdAHTwJ5YOeVw8j0VIMh
-EnkDf+ECAwEAAaOCATYwggEyMAkGA1UdEwQCMAAwHQYDVR0OBBYEFCpItosA8Es1
-c5QHh1KjaV7m2EKHMIHEBgNVHSMEgbwwgbmAFLsVnjJN4PiqirAuDBcrWkF0SwZF
-oYGdpIGaMIGXMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4G
-A1UEBwwHU2VhdHRsZTEQMA4GA1UECgwHd29sZlNTTDEUMBIGA1UECwwLRW5naW5l
-ZXJpbmcxGDAWBgNVBAMMD3dvbGZTU0wgcm9vdCBDQTEfMB0GCSqGSIb3DQEJARYQ
-aW5mb0B3b2xmc3NsLmNvbYIBAzALBgNVHQ8EBAMCBeAwMgYIKwYBBQUHAQEEJjAk
-MCIGCCsGAQUFBzABhhZodHRwOi8vMTI3LjAuMC4xOjIyMjIzMA0GCSqGSIb3DQEB
-CwUAA4IBAQC6/q0d1DNpE4ZNGur8oGEAmr2DfVM9tWOpyMK2EE37X/LlseQam4U2
-jzzTCZhMxT4Q7aN0pTz82bKAOGy+9ItSQA5F6P2iKdhc+R0Udj2NQXQ8VgXSoy4U
-WzWVl8/BAc+iJjgLdhK9xGjy9UntfutOCHP+ggaOzsQi1RbvDmLV8Qi4LgJ1I1IE
-z8uqHM53tjrpeFPEN9TMf5Zdl4k12qYjd4dgSqj4tuYaAMV0mIiyAf0jgQX1u5Zg
-Va47n7/JguEk1h0fXZz3G8s3Pk/IymXBM2l1YoO7h0VHvbK2Ve+PfF/9FHWWTz4Z
-2IhnXXWud484P6J+9vi4yFcoEJ0ezcNc
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 3 (0x3)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL REVOKED intermediate CA/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:de:c5:04:10:7d:c2:21:e9:12:45:da:d5:ba:28:
- fd:a6:f4:30:44:a0:df:f9:70:5e:17:26:97:59:5c:
- 31:eb:13:70:ea:4a:dd:58:3e:4f:33:14:66:59:69:
- 7a:aa:90:e0:7c:c4:b2:36:c1:0a:f4:df:3e:34:6c:
- 1a:e9:2b:f1:a5:92:7e:a9:68:70:ba:a4:68:88:f3:
- ec:10:40:64:a5:64:7d:d9:1e:51:49:9d:7f:c8:cc:
- 2b:6d:71:2a:06:ff:e6:1f:84:28:8a:c1:ed:a8:52:
- f4:89:a5:c0:77:d8:13:66:c2:65:a5:63:03:98:b0:
- 4b:05:4f:0c:84:a0:f4:2d:72:73:6b:fa:0d:e1:cf:
- 45:27:ed:a3:8c:02:d7:ee:99:e2:a1:f0:e3:a0:ad:
- 69:ed:59:e4:27:41:8f:ef:fa:83:73:8f:5f:2b:68:
- 89:13:46:26:dc:f6:28:6b:3b:b2:b8:9b:52:2a:17:
- 1b:dc:72:45:73:da:75:24:35:8b:00:5e:23:37:64:
- 6a:16:74:b8:ee:fe:b7:11:71:be:0a:73:c8:54:c2:
- d9:04:d2:1b:f5:53:ac:8d:2a:4f:fe:33:79:e6:5e:
- e7:f3:86:d3:dc:bb:4b:d7:39:7f:5b:3c:67:fe:5e:
- 88:51:05:96:f2:b4:9a:45:09:4c:51:f0:6a:4d:88:
- 2a:17
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- BB:15:9E:32:4D:E0:F8:AA:8A:B0:2E:0C:17:2B:5A:41:74:4B:06:45
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 63:bf:90:58:0c:44:08:57:7d:94:7e:eb:fd:9d:90:f6:1d:a5:
- 91:2a:32:38:a7:f7:39:c2:c0:9c:93:26:bc:f4:4b:81:0a:0f:
- 07:2d:4f:a9:20:9a:3e:2c:24:0c:30:10:d7:be:96:ab:ee:1f:
- 2c:f8:71:7c:1a:c1:ae:b7:64:e1:7e:18:53:c3:ae:d5:04:16:
- f7:e5:34:c2:d1:a3:31:d4:9b:f4:b7:c1:96:1f:a7:3c:3a:bf:
- fd:06:be:76:f4:da:95:f9:6f:be:4f:24:a7:0f:b0:2c:12:4d:
- d6:55:ea:f8:0a:30:91:32:4f:a3:14:6d:ec:cd:85:12:1f:da:
- 78:8a:b1:9a:74:fb:fd:00:45:4a:30:83:45:16:a0:8f:b7:7f:
- 23:33:91:c6:81:ac:f3:9b:cd:53:6b:9a:fa:36:9b:5d:3c:72:
- a8:73:4f:1e:b5:da:ba:08:3d:9b:ca:7a:d6:c2:bf:6e:9f:a5:
- 9e:db:61:bc:a5:42:a7:d4:92:4a:7e:a3:3d:1b:aa:d3:c2:93:
- ad:ce:3b:0e:2b:61:44:1e:3c:61:54:0d:6a:26:21:54:c6:e0:
- ed:3d:da:27:cd:89:5a:f8:1f:0f:46:80:c1:f2:80:cc:52:f1:
- 7f:ce:10:68:66:3f:ee:90:25:45:d4:f8:87:f9:5d:5d:74:3d:
- aa:3d:43:1c
------BEGIN CERTIFICATE-----
-MIIE9jCCA96gAwIBAgIBAzANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBpzELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMSgwJgYDVQQDDB93b2xmU1NMIFJFVk9L
-RUQgaW50ZXJtZWRpYXRlIENBMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3sUEEH3CIekSRdrV
-uij9pvQwRKDf+XBeFyaXWVwx6xNw6krdWD5PMxRmWWl6qpDgfMSyNsEK9N8+NGwa
-6SvxpZJ+qWhwuqRoiPPsEEBkpWR92R5RSZ1/yMwrbXEqBv/mH4QoisHtqFL0iaXA
-d9gTZsJlpWMDmLBLBU8MhKD0LXJza/oN4c9FJ+2jjALX7pniofDjoK1p7VnkJ0GP
-7/qDc49fK2iJE0Ym3PYoazuyuJtSKhcb3HJFc9p1JDWLAF4jN2RqFnS47v63EXG+
-CnPIVMLZBNIb9VOsjSpP/jN55l7n84bT3LtL1zl/Wzxn/l6IUQWW8rSaRQlMUfBq
-TYgqFwIDAQABo4IBOTCCATUwDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUuxWeMk3g
-+KqKsC4MFytaQXRLBkUwgcQGA1UdIwSBvDCBuYAUc7AcpC+Cy89HpTjXsASCOn5y
-FSGhgZ2kgZowgZcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAw
-DgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtFbmdp
-bmVlcmluZzEYMBYGA1UEAwwPd29sZlNTTCByb290IENBMR8wHQYJKoZIhvcNAQkB
-FhBpbmZvQHdvbGZzc2wuY29tggFjMAsGA1UdDwQEAwIBBjAyBggrBgEFBQcBAQQm
-MCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly8xMjcuMC4wLjE6MjIyMjAwDQYJKoZIhvcN
-AQELBQADggEBAGO/kFgMRAhXfZR+6/2dkPYdpZEqMjin9znCwJyTJrz0S4EKDwct
-T6kgmj4sJAwwENe+lqvuHyz4cXwawa63ZOF+GFPDrtUEFvflNMLRozHUm/S3wZYf
-pzw6v/0Gvnb02pX5b75PJKcPsCwSTdZV6vgKMJEyT6MUbezNhRIf2niKsZp0+/0A
-RUowg0UWoI+3fyMzkcaBrPObzVNrmvo2m108cqhzTx612roIPZvKetbCv26fpZ7b
-YbylQqfUkkp+oz0bqtPCk63OOw4rYUQePGFUDWomIVTG4O092ifNiVr4Hw9GgMHy
-gMxS8X/OEGhmP+6QJUXU+If5XV10Pao9Qxw=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 99 (0x63)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Engineering, CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:ab:2c:b4:2f:1d:06:09:ef:4e:29:86:84:7e:cc:
- bf:a6:79:7c:f0:c0:c1:64:25:8c:75:b7:10:05:ca:
- 48:27:0c:0e:32:1c:b0:fe:99:85:39:b6:b9:a2:f7:
- 27:ff:6d:3c:8c:16:73:29:21:7f:8b:a6:54:71:90:
- ad:cc:05:b9:9f:15:c7:0a:3f:5f:69:f4:0a:5f:8c:
- 71:b5:2c:bf:66:e2:03:9a:32:f4:d2:ec:2a:89:4b:
- f9:35:88:14:33:47:4e:2e:05:79:01:ed:64:36:76:
- b9:f8:85:cd:01:88:ac:c5:b2:b1:59:b8:cd:5a:f4:
- 09:09:38:9b:da:5a:cf:ce:78:99:1f:49:3d:41:d6:
- 06:7c:52:99:c8:97:d1:b3:80:3a:a2:4f:36:c4:c5:
- 96:30:77:31:38:c8:70:cc:e1:67:06:b3:2b:2f:93:
- b5:69:cf:83:7e:88:53:9b:0f:46:21:4c:d6:05:36:
- 44:99:60:68:47:e5:32:01:12:d4:10:73:ae:9a:34:
- 94:fa:6e:b8:58:4f:7b:5b:8a:92:97:ad:fd:97:b9:
- 75:ca:c2:d4:45:7d:17:6b:cd:2f:f3:63:7a:0e:30:
- b5:0b:a9:d9:a6:7c:74:60:9d:cc:09:03:43:f1:0f:
- 90:d3:b7:fe:6c:9f:d9:cd:78:4b:15:ae:8c:5b:f9:
- 99:81
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Subject Key Identifier:
- 73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- X509v3 Authority Key Identifier:
- keyid:73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Engineering/CN=wolfSSL root CA/emailAddress=info@wolfssl.com
- serial:63
-
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Authority Information Access:
- OCSP - URI:http://127.0.0.1:22220
-
- Signature Algorithm: sha256WithRSAEncryption
- 6b:10:b1:f8:cb:77:ef:72:f5:f8:fc:70:6d:18:dc:34:fe:d7:
- 95:d8:fd:85:8e:ca:4b:f3:be:1f:eb:14:08:dc:23:34:78:98:
- 39:d7:9f:c3:52:f6:14:3d:e9:de:5c:c2:d8:b1:4b:a8:4c:5b:
- 91:42:66:da:7f:3c:e9:03:20:5e:08:0f:76:79:b9:21:10:89:
- b7:73:46:44:7e:6e:28:0c:00:e4:f4:3e:65:aa:f5:c6:27:57:
- 2c:bb:1d:ae:e5:94:57:a3:73:9e:6b:44:00:35:4a:f3:c7:34:
- 9c:a2:a7:aa:62:9f:1d:ef:a8:6c:be:07:ad:ef:ae:ee:93:0b:
- ba:c3:59:4e:90:40:2d:00:5e:f0:0f:0a:de:18:2a:b3:97:31:
- 63:84:ff:18:1c:b6:d8:7d:ee:33:ed:99:f0:f5:7f:88:58:b3:
- 0d:90:db:eb:44:7e:06:37:61:d4:34:b9:f6:fd:3e:8d:07:e4:
- b5:b0:ae:09:ce:98:e4:b0:1b:d5:7b:53:94:dd:8a:b2:20:d6:
- b0:72:f8:b1:bc:76:df:16:86:39:7b:e4:a9:15:47:57:ae:ca:
- 41:d6:3a:ba:15:d1:c0:b5:38:66:0b:0f:80:8b:a2:07:b4:fc:
- 80:1f:a3:4c:1f:d2:65:97:c1:2c:ae:46:31:61:49:0d:d7:5f:
- ac:d2:a6:05
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIBYzANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoM
-B3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NM
-IHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgw
-NDEzMTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBlzELMAkGA1UEBhMCVVMxEzARBgNV
-BAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB3dvbGZT
-U0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQDDA93b2xmU1NMIHJvb3Qg
-Q0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCrLLQvHQYJ704phoR+zL+meXzwwMFkJYx1txAF
-ykgnDA4yHLD+mYU5trmi9yf/bTyMFnMpIX+LplRxkK3MBbmfFccKP19p9ApfjHG1
-LL9m4gOaMvTS7CqJS/k1iBQzR04uBXkB7WQ2drn4hc0BiKzFsrFZuM1a9AkJOJva
-Ws/OeJkfST1B1gZ8UpnIl9GzgDqiTzbExZYwdzE4yHDM4WcGsysvk7Vpz4N+iFOb
-D0YhTNYFNkSZYGhH5TIBEtQQc66aNJT6brhYT3tbipKXrf2XuXXKwtRFfRdrzS/z
-Y3oOMLULqdmmfHRgncwJA0PxD5DTt/5sn9nNeEsVroxb+ZmBAgMBAAGjggE5MIIB
-NTAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRzsBykL4LLz0elONewBII6fnIVITCB
-xAYDVR0jBIG8MIG5gBRzsBykL4LLz0elONewBII6fnIVIaGBnaSBmjCBlzELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-EDAOBgNVBAoMB3dvbGZTU0wxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRgwFgYDVQQD
-DA93b2xmU1NMIHJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b22CAWMwCwYDVR0PBAQDAgEGMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYW
-aHR0cDovLzEyNy4wLjAuMToyMjIyMDANBgkqhkiG9w0BAQsFAAOCAQEAaxCx+Mt3
-73L1+PxwbRjcNP7Xldj9hY7KS/O+H+sUCNwjNHiYOdefw1L2FD3p3lzC2LFLqExb
-kUJm2n886QMgXggPdnm5IRCJt3NGRH5uKAwA5PQ+Zar1xidXLLsdruWUV6NznmtE
-ADVK88c0nKKnqmKfHe+obL4Hre+u7pMLusNZTpBALQBe8A8K3hgqs5cxY4T/GBy2
-2H3uM+2Z8PV/iFizDZDb60R+Bjdh1DS59v0+jQfktbCuCc6Y5LAb1XtTlN2KsiDW
-sHL4sbx23xaGOXvkqRVHV67KQdY6uhXRwLU4ZgsPgIuiB7T8gB+jTB/SZZfBLK5G
-MWFJDddfrNKmBQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server5-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server5-key.pem
deleted file mode 100644
index a45a1c6e9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/ocsp/server5-key.pem
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsc23p+ow2cj6J
-O1IpvRRwogC0CFi2xsC/gGofpfAV/PQZomf5al0iaS6cKVMeWkrRJ9W4O2U3iqLr
-G9RdkBE1Ea/j0YwkW7WQwL/ey3oFcRvvdtedQ0eF3CS4uFT8U7/D/eESxvwbb5Wq
-z7uOIq+DvU5rZv5+fphvsbn8+YqKGJKaTCddeGvp0BQc7WltKUxOUuaSJFOwLsOk
-lI8gHClcl3AaMoWQcffXpZlPSMc9/D2n4fmW6sFr6jHgm/toPkutpCsGkMK0J+rz
-oz5uMnWqcGrjMyn7QgmUeaXrPE6JAncI/dq6/BTGjsFe223QB08CeWDnlcPI9FSD
-IRJ5A3/hAgMBAAECggEABz5+EoMc2rin2dntFKXFswmLIATtvRfSRvkc/CFbWYEb
-u+vvlDGcofJrK9IslKzUUb7romaUVOX0/A1aOWfw4RrSGa7WxTw4/1CpfrFreckL
-lF6YphmKapwZysyrfUIDXzdN+hzzwC9KyTcauNjKKK2OGsLj0+p7es2rc24EHNLj
-vFpNj5TC84qsibATY1ny3tcL7SBcNLtiHsm+0JDagGqlW3ptT0oErrzH6jtUAI9j
-LLm87mxwJyp4rBZvnP3s4jnOLLCJH40QyrCPKR6L4bAzSaA9kEnBUu+y1y1PyUP7
-goWIPJmfclDFqgB2U7K/QbbfPFpt8pFB9SmbsoIlMQKBgQDgvgf/pdc6q9jAL9UQ
-sTYa+iJJIFcjQKA95aCRoUeUjWvjA+2ROmYgLcMi7pxfNyFvYkaOXjBTL+aqSEWI
-wQVbnGK4aqG16w2o/P+bWUatpMMWNbwsZGAkXpcgdrg+SbNjrQ2lY35EdmPc025G
-Fqx5ouOk7wDlKWQolIwWDh3WNQKBgQDEb47VbrIo8BNnO/xxVjAsU7uQIYZkr/GR
-6V5oN+kIXrttReZnY/bUVrV84r49E3cNfoZXlfZa7fAEVb9GWbZMk+9M/s78aU5M
-xeFNj7HBfbgG3I+1SZQZaAEK6BZuq8GRCLV2JKOn9iInVQQL57/qz6APjC/a52zJ
-asNmmcdIfQKBgBmEWgIjwUEvG8gOZkGj7UG43sWwv1QIVWlRth5y0l7Cg9pdqs6P
-c+L5byt7LhP9fXVZEiu98/yt9qGk3Qg+6i3Rnr/Tk5LFImLqftcTltvGVkQiS8A6
-kVPvzXbpI9gmpBCQKHl7x21ch9AdzWp1zpVs8i3a2R4ryex1mUYzyh11AoGAWhKZ
-WS7IDNOA4i50Y/fUYQ8IC2AEAvlWeMScoIc6mLbvlHyf2LrSvK0BzUEfYFwjlBF3
-QoQmEa3XB/XVnkmWuOiAqzqP6NfUqol19R21sXaXQrYyQzt46GlzSPABEUA6oulu
-Y70LOgI3yPdHwrnCm8YWq+ppKyRBEt6cuNg8s/UCgYEAl3J4fMTYcDjt4H/OTgba
-IjKLPV0LuBUfx/PTA0oi81x1c11fM8a/ZeD0QkXDjjrjXM33mbkR0lzFEl7ZOCnh
-sRDkkM8MvOsq4KMGnBLQBN0QvKSgsuYDqIEUmFdMHiyckBjuwntMVXnfKYtEJ1Q9
-zYHlJn4e4/2VqGK9PWrgAtA=
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/rsa-pub-2048.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/rsa-pub-2048.pem
deleted file mode 100644
index 95daf3389..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/rsa-pub-2048.pem
+++ /dev/null
@@ -1,9 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuwQ1KqA3hewLXsG9fHD7
-UI3fQu5ylQiDeRWEwsFovmiDfDNo7P/VuByvQmVR30p3GzNnZdMsj8jVlLD/Wny1
-nU/O2T00KQ95SJhiEGGCVWirRf/7F1KrFGP7HuiQ76FQwqtRxBDQw3QOm2PXp20E
-pyzGdYpY13EkY6n0FLumWoJxL+2gTW0ECyLulxXFK9wXCNWnY+ji5V8VwDfkXk7W
-XYzMawnFnKNiSJ99jkfJ28lo+Ba8LAfvHM6ygeudWndri6pGkA/R0Z3knca6yz5Y
-JCMph5AKgj9beOaLsIWEbdbmZA7fzuu8QhBK6cjvjUbS6iPVDEfBnI6TOpGPJxvW
-NwIDAQAB
------END PUBLIC KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/rsa2048.der b/FreeRTOS-Plus/Source/WolfSSL/certs/rsa2048.der
deleted file mode 100644
index 837095b95..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/rsa2048.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/rsa3072.der b/FreeRTOS-Plus/Source/WolfSSL/certs/rsa3072.der
deleted file mode 100644
index 0db1ea3d1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/rsa3072.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-cert-chain.der b/FreeRTOS-Plus/Source/WolfSSL/certs/server-cert-chain.der
deleted file mode 100644
index 37a1929b6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-cert-chain.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/server-cert.der
deleted file mode 100644
index 0dc446b09..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/server-cert.pem
deleted file mode 100644
index c44ba3e64..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-cert.pem
+++ /dev/null
@@ -1,172 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL, OU=Support, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- B3:11:32:C9:92:98:84:E2:C9:F8:D0:3B:6E:03:42:CA:1F:0E:8E:3C
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- b4:54:60:ad:a0:03:32:de:02:7f:21:4a:81:c6:ed:cd:cd:d8:
- 12:8a:c0:ba:82:5b:75:ad:54:e3:7c:80:6a:ac:2e:6c:20:4e:
- be:4d:82:a7:47:13:5c:f4:c6:6a:2b:10:99:58:de:ab:6b:7c:
- 22:05:c1:83:9d:cb:ff:3c:e4:2d:57:6a:a6:96:df:d3:c1:68:
- e3:d2:c6:83:4b:97:e2:c6:32:0e:be:c4:03:b9:07:8a:5b:b8:
- 84:ba:c5:39:3f:1c:58:a7:55:d7:f0:9b:e8:d2:45:b9:e3:83:
- 2e:ee:b6:71:56:b9:3a:ee:3f:27:d8:77:e8:fb:44:48:65:27:
- 47:4c:fb:fe:72:c3:ac:05:7b:1d:cb:eb:5e:65:9a:ab:02:e4:
- 88:5b:3b:8b:0b:c7:cc:a9:a6:8b:e1:87:b0:19:1a:0c:28:58:
- 6f:99:52:7e:ed:b0:3a:68:3b:8c:0a:08:74:72:ab:b9:09:c5:
- ed:04:7e:6f:0b:1c:09:21:d0:cd:7f:f9:c4:5e:27:20:e4:85:
- 73:52:05:d2:ba:f8:d5:8f:41:cc:23:2e:12:6d:bc:31:98:e7:
- 63:a3:8e:26:cd:e8:2b:88:ee:e2:fe:3a:74:52:34:0e:fd:12:
- e5:5e:69:50:20:31:34:e4:31:f1:e7:e4:5b:03:13:da:ac:41:
- 6c:e7:cf:2b
------BEGIN CERTIFICATE-----
-MIIEnjCCA4agAwIBAgIBATANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgwNDEz
-MTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBkDELMAkGA1UEBhMCVVMxEDAOBgNVBAgM
-B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xEDAOBgNVBAoMB3dvbGZTU0wxEDAO
-BgNVBAsMB1N1cHBvcnQxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqG
-SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAMCVCOFXQfJxbbfSRUEnAWXGRa7yvCQwuJXOL07W9hyIvHyf+6hn
-f/5cnFF194rKB+c1L4/hvXvAL3yrZKgX/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/X
-GQ0lT+FjY1GLC2Q/rUO4pRxcNLOuAKBjxfZ/C1loeHOmjBipAm2vwxkBLrgQ48bM
-QLRpo0YzaYduxLsXpvPo3a1zvHsvIbX9ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq
-0KGWSrzh1Bpbx6DAwWN4D0Q3MDKWgDIjlaF3uhPSl3PiXSXJag3DOWCktLBpQkIJ
-6dgIvDMgs1gip6rrxOHmYYPF0pbf2dBPrdcCAwEAAaOB/DCB+TAdBgNVHQ4EFgQU
-sxEyyZKYhOLJ+NA7bgNCyh8OjjwwgckGA1UdIwSBwTCBvoAUJ45nEXTDJh0/7TNj
-s6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5h
-MRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290aDETMBEGA1UECwwK
-Q29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcN
-AQkBFhBpbmZvQHdvbGZzc2wuY29tggkAhv/1jhDeuPswDAYDVR0TBAUwAwEB/zAN
-BgkqhkiG9w0BAQsFAAOCAQEAtFRgraADMt4CfyFKgcbtzc3YEorAuoJbda1U43yA
-aqwubCBOvk2Cp0cTXPTGaisQmVjeq2t8IgXBg53L/zzkLVdqppbf08Fo49LGg0uX
-4sYyDr7EA7kHilu4hLrFOT8cWKdV1/Cb6NJFueODLu62cVa5Ou4/J9h36PtESGUn
-R0z7/nLDrAV7HcvrXmWaqwLkiFs7iwvHzKmmi+GHsBkaDChYb5lSfu2wOmg7jAoI
-dHKruQnF7QR+bwscCSHQzX/5xF4nIOSFc1IF0rr41Y9BzCMuEm28MZjnY6OOJs3o
-K4ju4v46dFI0Dv0S5V5pUCAxNOQx8efkWwMT2qxBbOfPKw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 9727763710660753659 (0x86fff58e10deb8fb)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:09 2018 GMT
- Not After : Jan 7 15:23:09 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a:
- f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac:
- de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98:
- 21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77:
- 32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1:
- 8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3:
- a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed:
- a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95:
- 82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c:
- 3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db:
- 76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc:
- 73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98:
- de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68:
- cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2:
- b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3:
- 13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98:
- ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed:
- 36:79
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 9e:28:88:72:00:ca:e6:e7:97:ca:c1:f1:1f:9e:12:b2:b8:c7:
- 51:ea:28:e1:36:b5:2d:e6:2f:08:23:cb:a9:4a:87:25:c6:5d:
- 89:45:ea:f5:00:98:ac:76:fb:1b:af:f0:ce:64:9e:da:08:bf:
- b6:eb:b4:b5:0c:a0:e7:f6:47:59:1c:61:cf:2e:0e:58:a4:82:
- ac:0f:3f:ec:c4:ae:80:f7:b0:8a:1e:85:41:e8:ff:fe:fe:4f:
- 1a:24:d5:49:fa:fb:fe:5e:e5:d3:91:0e:4f:4e:0c:21:51:71:
- 83:04:6b:62:7b:4f:59:76:48:81:1e:b4:f7:04:47:8a:91:57:
- a3:11:a9:f2:20:b4:78:33:62:3d:b0:5e:0d:f9:86:38:82:da:
- a1:98:8d:19:06:87:21:39:b7:02:f7:da:7d:58:ba:52:15:d8:
- 3b:c9:7b:58:34:a0:c7:e2:7c:a9:83:13:e1:b6:ec:01:bf:52:
- 33:0b:c4:fe:43:d3:c6:a4:8e:2f:87:7f:7a:44:ea:ca:53:6c:
- 85:ed:65:76:73:31:03:4e:ea:bd:35:54:13:f3:64:87:6b:df:
- 34:dd:34:a1:88:3b:db:4d:af:1b:64:90:92:71:30:8e:c8:cc:
- e5:60:24:af:31:16:39:33:91:50:f9:ab:68:42:74:7a:35:d9:
- dd:c8:c4:52
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIJAIb/9Y4Q3rj7MA0GCSqGSIb3DQEBCwUAMIGUMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
-A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
-dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe
-Fw0xODA0MTMxNTIzMDlaFw0yMTAxMDcxNTIzMDlaMIGUMQswCQYDVQQGEwJVUzEQ
-MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3
-dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns
-LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAL8Myi0Ush6EQlvNOB9K8k11EPG2NZ/fyn0D
-mNOs3gNm7irx2LB9bgdUCxCYIU2AyxIg58xP3kV9yXJ3MurKkLtpUhADL6jzlcXx
-i2JWG+9nb6QQQZWtCpvjpcCw0nB2UDBbqOgILHztp6J6jTgpHKzH7fJ8lbCVgn1J
-XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc
-/hr8fat6Nj+Y3oR8BWfOahQ4h6nxjLVoy2h/cSAr9aBj9VYvoybSt2+xWhfXOJkI
-/pNYb/7DE0kIFgunTWcAUjFnI06Y7VFFHbkE2Qvs2CizS73tNnkCAwEAAaOB/DCB
-+TAdBgNVHQ4EFgQUJ45nEXTDJh0/7TNjs6TYHTDl6NUwgckGA1UdIwSBwTCBvoAU
-J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD
-VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290
-aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t
-MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAhv/1jhDeuPswDAYD
-VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAniiIcgDK5ueXysHxH54SsrjH
-Ueoo4Ta1LeYvCCPLqUqHJcZdiUXq9QCYrHb7G6/wzmSe2gi/tuu0tQyg5/ZHWRxh
-zy4OWKSCrA8/7MSugPewih6FQej//v5PGiTVSfr7/l7l05EOT04MIVFxgwRrYntP
-WXZIgR609wRHipFXoxGp8iC0eDNiPbBeDfmGOILaoZiNGQaHITm3AvfafVi6UhXY
-O8l7WDSgx+J8qYMT4bbsAb9SMwvE/kPTxqSOL4d/ekTqylNshe1ldnMxA07qvTVU
-E/Nkh2vfNN00oYg7202vG2SQknEwjsjM5WAkrzEWOTORUPmraEJ0ejXZ3cjEUg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-comp.der b/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-comp.der
deleted file mode 100644
index b53fe8c81..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-comp.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-comp.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-comp.pem
deleted file mode 100644
index 1f40a07a8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-comp.pem
+++ /dev/null
@@ -1,53 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 9257370821982864771 (0x8078c9b7065ac583)
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: C=US, ST=Montana, L=Bozeman, O=Elliptic - comp, OU=Server ECC-comp, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=Elliptic - comp, OU=Server ECC-comp, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (256 bit)
- pub:
- 02:bb:33:ac:4c:27:50:4a:c6:4a:a5:04:c3:3c:de:
- 9f:36:db:72:2d:ce:94:ea:2b:fa:cb:20:09:39:2c:
- 16:e8:61
- ASN1 OID: prime256v1
- NIST CURVE: P-256
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 8C:38:3A:6B:B8:24:B7:DF:6E:F4:59:AC:56:4E:AA:E2:58:A6:5A:18
- X509v3 Authority Key Identifier:
- keyid:8C:38:3A:6B:B8:24:B7:DF:6E:F4:59:AC:56:4E:AA:E2:58:A6:5A:18
- DirName:/C=US/ST=Montana/L=Bozeman/O=Elliptic - comp/OU=Server ECC-comp/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:80:78:C9:B7:06:5A:C5:83
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: ecdsa-with-SHA256
- 30:44:02:20:31:44:d0:4e:d7:c4:b4:96:a3:e6:25:fd:fa:d6:
- 28:a8:67:51:72:90:95:31:f9:cd:10:bf:11:e4:ec:b7:42:5b:
- 02:20:45:db:45:0a:24:58:8e:2e:e6:ea:0c:6c:bc:72:4f:0a:
- 1b:f3:2d:97:e9:c2:19:f9:97:3a:60:dd:08:d3:52:3e
------BEGIN CERTIFICATE-----
-MIIDIzCCAsqgAwIBAgIJAIB4ybcGWsWDMAoGCCqGSM49BAMCMIGgMQswCQYDVQQG
-EwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEYMBYGA1UE
-CgwPRWxsaXB0aWMgLSBjb21wMRgwFgYDVQQLDA9TZXJ2ZXIgRUNDLWNvbXAxGDAW
-BgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xm
-c3NsLmNvbTAeFw0xODA0MTMxNTIzMTBaFw0yMTAxMDcxNTIzMTBaMIGgMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEYMBYG
-A1UECgwPRWxsaXB0aWMgLSBjb21wMRgwFgYDVQQLDA9TZXJ2ZXIgRUNDLWNvbXAx
-GDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3
-b2xmc3NsLmNvbTA5MBMGByqGSM49AgEGCCqGSM49AwEHAyIAArszrEwnUErGSqUE
-wzzenzbbci3OlOor+ssgCTksFuhho4IBCTCCAQUwHQYDVR0OBBYEFIw4Omu4JLff
-bvRZrFZOquJYploYMIHVBgNVHSMEgc0wgcqAFIw4Omu4JLffbvRZrFZOquJYploY
-oYGmpIGjMIGgMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UE
-BwwHQm96ZW1hbjEYMBYGA1UECgwPRWxsaXB0aWMgLSBjb21wMRgwFgYDVQQLDA9T
-ZXJ2ZXIgRUNDLWNvbXAxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqG
-SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIB4ybcGWsWDMAwGA1UdEwQFMAMB
-Af8wCgYIKoZIzj0EAwIDRwAwRAIgMUTQTtfEtJaj5iX9+tYoqGdRcpCVMfnNEL8R
-5Oy3QlsCIEXbRQokWI4u5uoMbLxyTwob8y2X6cIZ+Zc6YN0I01I+
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-rsa.der b/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-rsa.der
deleted file mode 100644
index 82aba2a5d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-rsa.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-rsa.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-rsa.pem
deleted file mode 100644
index ab51f6dd6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-rsa.pem
+++ /dev/null
@@ -1,70 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=Elliptic - RSAsig, OU=ECC-RSAsig, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (256 bit)
- pub:
- 04:bb:33:ac:4c:27:50:4a:c6:4a:a5:04:c3:3c:de:
- 9f:36:db:72:2d:ce:94:ea:2b:fa:cb:20:09:39:2c:
- 16:e8:61:02:e9:af:4d:d3:02:93:9a:31:5b:97:92:
- 21:7f:f0:cf:18:da:91:11:02:34:86:e8:20:58:33:
- 0b:80:34:89:d8
- ASN1 OID: prime256v1
- NIST CURVE: P-256
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 5D:5D:26:EF:AC:7E:36:F9:9B:76:15:2B:4A:25:02:23:EF:B2:89:30
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 0c:bb:67:bd:fc:cd:53:6c:fb:4e:58:c8:ea:52:92:eb:e4:c8:
- bc:57:0f:08:20:c8:83:b0:d5:ea:57:27:bd:68:91:fb:99:84:
- 8d:15:9e:4f:8f:c4:cb:34:61:c0:59:12:9b:c8:82:17:38:4f:
- 9e:53:08:a3:69:2e:2f:c0:b4:2f:a2:4e:10:64:b0:07:a1:51:
- 08:1d:91:53:a2:79:55:20:41:65:35:3e:0b:38:01:57:02:8c:
- 25:e7:ab:4f:8b:59:f0:ed:8e:4a:15:0b:32:fb:7a:8b:02:ea:
- 9d:e1:ab:c4:07:cc:da:0f:a3:16:db:8e:5b:bc:96:ab:10:b8:
- de:09:8b:f7:cb:a7:78:66:17:e3:25:6e:57:9d:13:61:7b:55:
- 1a:df:8f:39:15:4e:42:22:00:85:c4:51:0b:6b:a6:67:c0:fb:
- ea:22:77:7d:48:76:ab:39:20:09:d5:52:89:3e:6b:30:7b:50:
- 18:e8:62:05:be:bb:7f:16:77:9c:bb:5a:22:96:99:b0:96:83:
- b7:43:31:97:cf:fd:85:52:d8:52:c8:67:5c:f8:22:72:35:93:
- 92:6c:ec:3c:6a:c6:81:20:a5:cd:50:f9:21:7a:a6:7a:1e:e7:
- 59:22:5d:8a:93:51:8e:fb:29:56:fb:be:9b:87:48:5f:a5:72:
- e7:4e:fe:5e
------BEGIN CERTIFICATE-----
-MIID4DCCAsigAwIBAgIBATANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgwNDEz
-MTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBnTELMAkGA1UEBhMCVVMxEDAOBgNVBAgM
-B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xGjAYBgNVBAoMEUVsbGlwdGljIC0g
-UlNBc2lnMRMwEQYDVQQLDApFQ0MtUlNBc2lnMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wWTATBgcqhkjO
-PQIBBggqhkjOPQMBBwNCAAS7M6xMJ1BKxkqlBMM83p8223ItzpTqK/rLIAk5LBbo
-YQLpr03TApOaMVuXkiF/8M8Y2pERAjSG6CBYMwuANInYo4H8MIH5MB0GA1UdDgQW
-BBRdXSbvrH42+Zt2FStKJQIj77KJMDCByQYDVR0jBIHBMIG+gBQnjmcRdMMmHT/t
-M2OzpNgdMOXo1aGBmqSBlzCBlDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRh
-bmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNhd3Rvb3RoMRMwEQYDVQQL
-DApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG
-9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CCQCG//WOEN64+zAMBgNVHRMEBTADAQH/
-MA0GCSqGSIb3DQEBCwUAA4IBAQAMu2e9/M1TbPtOWMjqUpLr5Mi8Vw8IIMiDsNXq
-Vye9aJH7mYSNFZ5Pj8TLNGHAWRKbyIIXOE+eUwijaS4vwLQvok4QZLAHoVEIHZFT
-onlVIEFlNT4LOAFXAowl56tPi1nw7Y5KFQsy+3qLAuqd4avEB8zaD6MW245bvJar
-ELjeCYv3y6d4ZhfjJW5XnRNhe1Ua3485FU5CIgCFxFELa6ZnwPvqInd9SHarOSAJ
-1VKJPmswe1AY6GIFvrt/Fnecu1oilpmwloO3QzGXz/2FUthSyGdc+CJyNZOSbOw8
-asaBIKXNUPkheqZ6HudZIl2Kk1GO+ylW+76bh0hfpXLnTv5e
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-self.der b/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-self.der
deleted file mode 100644
index c28dec1cb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-self.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-self.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-self.pem
deleted file mode 100644
index 06c0e913f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc-self.pem
+++ /dev/null
@@ -1,55 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 13895948352942430886 (0xc0d85367324edaa6)
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: C=US, ST=Washington, L=Seattle, O=Eliptic, OU=ECC, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Jul 18 17:12:20 2019 GMT
- Not After : Apr 13 17:12:20 2022 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=Eliptic, OU=ECC, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (256 bit)
- pub:
- 04:bb:33:ac:4c:27:50:4a:c6:4a:a5:04:c3:3c:de:
- 9f:36:db:72:2d:ce:94:ea:2b:fa:cb:20:09:39:2c:
- 16:e8:61:02:e9:af:4d:d3:02:93:9a:31:5b:97:92:
- 21:7f:f0:cf:18:da:91:11:02:34:86:e8:20:58:33:
- 0b:80:34:89:d8
- ASN1 OID: prime256v1
- NIST CURVE: P-256
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 5D:5D:26:EF:AC:7E:36:F9:9B:76:15:2B:4A:25:02:23:EF:B2:89:30
- X509v3 Authority Key Identifier:
- keyid:5D:5D:26:EF:AC:7E:36:F9:9B:76:15:2B:4A:25:02:23:EF:B2:89:30
- DirName:/C=US/ST=Washington/L=Seattle/O=Eliptic/OU=ECC/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:C0:D8:53:67:32:4E:DA:A6
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: ecdsa-with-SHA256
- 30:45:02:20:01:0e:83:d8:81:53:76:e4:ce:4b:51:69:a4:bc:
- 50:2e:46:02:e1:27:d6:04:e4:76:36:e9:fe:4a:ed:87:d1:72:
- 02:21:00:97:87:68:62:34:53:45:41:7a:e1:a9:f1:80:c4:51:
- 27:e0:e4:6a:0e:54:c4:22:39:ec:85:c0:54:b5:57:62:8c
------BEGIN CERTIFICATE-----
-MIIDDzCCArWgAwIBAgIJAMDYU2cyTtqmMAoGCCqGSM49BAMCMIGPMQswCQYDVQQG
-EwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEQMA4G
-A1UECgwHRWxpcHRpYzEMMAoGA1UECwwDRUNDMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkwNzE4
-MTcxMjIwWhcNMjIwNDEzMTcxMjIwWjCBjzELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxEDAOBgNVBAoMB0VsaXB0aWMx
-DDAKBgNVBAsMA0VDQzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZI
-hvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD
-QgAEuzOsTCdQSsZKpQTDPN6fNttyLc6U6iv6yyAJOSwW6GEC6a9N0wKTmjFbl5Ih
-f/DPGNqREQI0huggWDMLgDSJ2KOB9zCB9DAdBgNVHQ4EFgQUXV0m76x+NvmbdhUr
-SiUCI++yiTAwgcQGA1UdIwSBvDCBuYAUXV0m76x+NvmbdhUrSiUCI++yiTChgZWk
-gZIwgY8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH
-DAdTZWF0dGxlMRAwDgYDVQQKDAdFbGlwdGljMQwwCgYDVQQLDANFQ0MxGDAWBgNV
-BAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3Ns
-LmNvbYIJAMDYU2cyTtqmMAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIg
-AQ6D2IFTduTOS1FppLxQLkYC4SfWBOR2Nun+Su2H0XICIQCXh2hiNFNFQXrhqfGA
-xFEn4ORqDlTEIjnshcBUtVdijA==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc.der b/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc.der
deleted file mode 100644
index 837396770..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc.pem
deleted file mode 100644
index b68297414..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-ecc.pem
+++ /dev/null
@@ -1,62 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 4096 (0x1000)
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Oct 20 18:19:06 2017 GMT
- Not After : Oct 18 18:19:06 2027 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=Eliptic, OU=ECC, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (256 bit)
- pub:
- 04:bb:33:ac:4c:27:50:4a:c6:4a:a5:04:c3:3c:de:
- 9f:36:db:72:2d:ce:94:ea:2b:fa:cb:20:09:39:2c:
- 16:e8:61:02:e9:af:4d:d3:02:93:9a:31:5b:97:92:
- 21:7f:f0:cf:18:da:91:11:02:34:86:e8:20:58:33:
- 0b:80:34:89:d8
- ASN1 OID: prime256v1
- NIST CURVE: P-256
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- Netscape Cert Type:
- SSL Server
- X509v3 Subject Key Identifier:
- 5D:5D:26:EF:AC:7E:36:F9:9B:76:15:2B:4A:25:02:23:EF:B2:89:30
- X509v3 Authority Key Identifier:
- keyid:56:8E:9A:C3:F0:42:DE:18:B9:45:55:6E:F9:93:CF:EA:C3:F3:A5:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Development/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:97:B4:BD:16:78:F8:47:F2
-
- X509v3 Key Usage: critical
- Digital Signature, Key Encipherment, Key Agreement
- X509v3 Extended Key Usage:
- TLS Web Server Authentication
- Signature Algorithm: ecdsa-with-SHA256
- 30:46:02:21:00:be:b8:58:f0:e4:15:01:1f:df:70:54:73:4a:
- 6c:40:1f:77:a8:b4:eb:52:1e:bf:f5:0d:b1:33:ca:6a:c4:76:
- b9:02:21:00:97:08:de:2c:28:c1:45:71:b6:2c:54:87:98:63:
- 76:a8:21:34:90:a8:f7:9e:3f:fc:02:b0:e7:d3:09:31:27:e4
------BEGIN CERTIFICATE-----
-MIIDUDCCAvWgAwIBAgICEAAwCgYIKoZIzj0EAwIwgZcxCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3
-b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEYMBYGA1UEAwwPd3d3LndvbGZz
-c2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE3MTAy
-MDE4MTkwNloXDTI3MTAxODE4MTkwNlowgY8xCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAdFbGlwdGlj
-MQwwCgYDVQQLDANFQ0MxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqG
-SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEH
-A0IABLszrEwnUErGSqUEwzzenzbbci3OlOor+ssgCTksFuhhAumvTdMCk5oxW5eS
-IX/wzxjakRECNIboIFgzC4A0idijggE1MIIBMTAJBgNVHRMEAjAAMBEGCWCGSAGG
-+EIBAQQEAwIGQDAdBgNVHQ4EFgQUXV0m76x+NvmbdhUrSiUCI++yiTAwgcwGA1Ud
-IwSBxDCBwYAUVo6aw/BC3hi5RVVu+ZPP6sPzpSGhgZ2kgZowgZcxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYD
-VQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEYMBYGA1UEAwwPd3d3
-LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkA
-l7S9Fnj4R/IwDgYDVR0PAQH/BAQDAgOoMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAoG
-CCqGSM49BAMCA0kAMEYCIQC+uFjw5BUBH99wVHNKbEAfd6i061Iev/UNsTPKasR2
-uQIhAJcI3iwowUVxtixUh5hjdqghNJCo954//AKw59MJMSfk
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-key.der b/FreeRTOS-Plus/Source/WolfSSL/certs/server-key.der
deleted file mode 100644
index 868f0543c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-key.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/server-key.pem
deleted file mode 100644
index d1627f4d4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpQIBAAKCAQEAwJUI4VdB8nFtt9JFQScBZcZFrvK8JDC4lc4vTtb2HIi8fJ/7
-qGd//lycUXX3isoH5zUvj+G9e8AvfKtkqBf8yl17uuAh5XIuby6G2JVz2qwbU7lf
-P9cZDSVP4WNjUYsLZD+tQ7ilHFw0s64AoGPF9n8LWWh4c6aMGKkCba/DGQEuuBDj
-xsxAtGmjRjNph27Euxem8+jdrXO8ey8htf1mUQy9VLPhbV8cvCNz0QkDiRTSELlk
-wyrQoZZKvOHUGlvHoMDBY3gPRDcwMpaAMiOVoXe6E9KXc+JdJclqDcM5YKS0sGlC
-Qgnp2Ai8MyCzWCKnquvE4eZhg8XSlt/Z0E+t1wIDAQABAoIBAQCa0DQPUmIFUAHv
-n+1kbsLE2hryhNeSEEiSxOlq64t1bMZ5OPLJckqGZFSVd8vDmp231B2kAMieTuTd
-x7pnFsF0vKnWlI8rMBr77d8hBSPZSjm9mGtlmrjcxH3upkMVLj2+HSJgKnMw1T7Y
-oqyGQy7E9WReP4l1DxHYUSVOn9iqo85gs+KK2X4b8GTKmlsFC1uqy+XjP24yIgXz
-0PrvdFKB4l90073/MYNFdfpjepcu1rYZxpIm5CgGUFAOeC6peA0Ul7QS2DFAq6EB
-QcIw+AdfFuRhd9Jg8p+N6PS662PeKpeB70xs5lU0USsoNPRTHMRYCj+7r7X3SoVD
-LTzxWFiBAoGBAPIsVHY5I2PJEDK3k62vvhl1loFk5rW4iUJB0W3QHBv4G6xpyzY8
-ZH3c9Bm4w2CxV0hfUk9ZOlV/MsAZQ1A/rs5vF/MOn0DKTq0VO8l56cBZOHNwnAp8
-yTpIMqfYSXUKhcLC/RVz2pkJKmmanwpxv7AEpox6Wm9IWlQ7xrFTF9/nAoGBAMuT
-3ncVXbdcXHzYkKmYLdZpDmOzo9ymzItqpKISjI57SCyySzfcBhh96v52odSh6T8N
-zRtfr1+elltbD6F8r7ObkNtXczrtsCNErkFPHwdCEyNMy/r0FKTV9542fFufqDzB
-hV900jkt/9CE3/uzIHoumxeu5roLrl9TpFLtG8SRAoGBAOyY2rvV/vlSSn0CVUlv
-VW5SL4SjK7OGYrNU0mNS2uOIdqDvixWl0xgUcndex6MEH54ZYrUbG57D8rUy+UzB
-qusMJn3UX0pRXKRFBnBEp1bA1CIUdp7YY1CJkNPiv4GVkjFBhzkaQwsYpVMfORpf
-H0O8h2rfbtMiAP4imHBOGhkpAoGBAIpBVihRnl/Ungs7mKNU8mxW1KrpaTOFJAza
-1AwtxL9PAmk4fNTm3Ezt1xYRwz4A58MmwFEC3rt1nG9WnHrzju/PisUr0toGakTJ
-c/5umYf4W77xfOZltU9s8MnF/xbKixsX4lg9ojerAby/QM5TjI7t7+5ZneBj5nxe
-9Y5L8TvBAoGATUX5QIzFW/QqGoq08hysa+kMVja3TnKW1eWK0uL/8fEYEz2GCbjY
-dqfJHHFSlDBD4PF4dP1hG0wJzOZoKnGtHN9DvFbbpaS+NXCkXs9P/ABVmTo9I89n
-WvUi+LUp0EQR6zUuRr79jhiyX6i/GTKh9dwD5nyaHwx8qbAOITc78bA=
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyEnc.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyEnc.pem
deleted file mode 100644
index e5ab57d4c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyEnc.pem
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-CBC,136C7D8A69656668
-
-jvNTyPaztxPIoAzbdmZnD0Zw2+60tMxNc0GMHNmeOyG25aHP/dT+TWiKFpFVkkkY
-uoCIhYUyw7gmpw+CnRJwWd+ans4nrvAjwy5oWJvarvsyUpjqvnPoIlAqd+d4TDKN
-eESzcI76+gHdisAtCrQD+fGqgTZhli5TgDbnpasL/QnY2qDlutvakkVw7gPXe156
-2Phy8WN+efr65J6wt3K/dj7Datl9u4JeHQK81gYyWBVX+EagEjPGDzkFQCj9Z0q7
-8K3iB5GW1JAqJS0IfZPB40AnSTF/n1TL1SN3qfU3l7hTGNrx9o7580bgDEoAR7pI
-F8eZlS15KHtZmh11AnU1KTKZ6kmgnNqeMTGMN6N0ct2wMKW1dV87eTDlF0oiR2ol
-XwtFgKmrIjfpmzkdWjbJmWnGMjD56KdiFZga/ZyKMsPrVoYLgfJEpn36iQspfygx
-HCGNTf0PjIsjEWU0WyQiF86t+c45W3wNFsv/AxVyfMl+su02yrd6u2ecuQDir3Cs
-b2k8IKtQgVe/NIpEWLKuiHG5oedIPPQyDYK5uq+gHxCGeOoKnWlsWFEHZRiza4X5
-tbgTrJB8Sw0ENWrvVGGmQZN4pSImlsMwzQ2qik5CQ00N1b3+56/obn0z75I3bUSb
-tC5g8DRjl6oclAenNgh/MYMT287y5W2dD4npxHcekX4O3J2CDXNfg4vV2j5GRxtg
-LVJdYE2p7bpYePCDHrYng8b9ubBprx0CrEnkIvvtUjzNPf6VDL0+MBKl+XgR2/nz
-iRqTuZnlGGOyM+KYDwXpgwfs/HfvFGksxTAlO/40GkGh+WGPaIoNyCK0SgQKhyb4
-JIkR0vd2/yLg3lWMJrGwh7A0Gm07Z/781oURP3uWd+PaCOgGcd5ipcAjcEyuxNly
-AthipWqmQWUcbf6Z2N9j3OA22Hv2Uzk8HSfi9VOZtL9svdEEZ0NnOekJgnc6stQp
-bXiknlK/T5WdrWxSyCfgUq68Vf6DFfIRAVuFdJ3WHT2wVXHrDfft6D+Ne/XCxPoE
-8zGmkyusaph33UHQ1oNyUbLbwcDCDSmOo8gYoedD3IwxtMA3wJRugomqosItwV8X
-vkgmcy8eSE/+gZUxJEN2gnLcfKFhCkC80J6oFhmoDD6vuUnPHcFdKZgVPw2rzPk5
-Vb1kX+gpORplYmKpq1vz/ujscL4T0TmYLz02hkIS4edpW55ncTTv7JWefpRiTB1J
-RB3td3me4htqR+YIDWJ+emrOmqsCG2WvpAS+MTw2mj1jYk9LL/ZYobTjSCEWmuwT
-yVK6m303irR7HQDauxhslRFgoK21w63viOyj5NKIU1gQtaAANGDxcgORC1XLjjgt
-oNutSQA+7P42vfHSHK4cnTBXl6V32H/GyVpdHQOZqSrqIjgLmUZodSmRPROxosZF
-a46B1O7m/rJFxkiKW4vod+/WqjoE0Hhfrb8rRrkRjzGeCqqSSnQ3vrunVkvF8hlA
-b6FOv4ZBJL4piC1GKH+rscqke9NEiDqXN8C3iYz86jbck/Ha21yUS8T3X7N52sg+
-B3AmOGnLK6BebYeto9vZxQjacChJZSixSxLV+l9/nVQ0+mW42azHdzk0ru59TGAj
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8.der b/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8.der
deleted file mode 100644
index 5a5873543..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8.pem
deleted file mode 100644
index a24c5a26a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8.pem
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDAlQjhV0HycW23
-0kVBJwFlxkWu8rwkMLiVzi9O1vYciLx8n/uoZ3/+XJxRdfeKygfnNS+P4b17wC98
-q2SoF/zKXXu64CHlci5vLobYlXParBtTuV8/1xkNJU/hY2NRiwtkP61DuKUcXDSz
-rgCgY8X2fwtZaHhzpowYqQJtr8MZAS64EOPGzEC0aaNGM2mHbsS7F6bz6N2tc7x7
-LyG1/WZRDL1Us+FtXxy8I3PRCQOJFNIQuWTDKtChlkq84dQaW8egwMFjeA9ENzAy
-loAyI5Whd7oT0pdz4l0lyWoNwzlgpLSwaUJCCenYCLwzILNYIqeq68Th5mGDxdKW
-39nQT63XAgMBAAECggEBAJrQNA9SYgVQAe+f7WRuwsTaGvKE15IQSJLE6Wrri3Vs
-xnk48slySoZkVJV3y8OanbfUHaQAyJ5O5N3HumcWwXS8qdaUjyswGvvt3yEFI9lK
-Ob2Ya2WauNzEfe6mQxUuPb4dImAqczDVPtiirIZDLsT1ZF4/iXUPEdhRJU6f2Kqj
-zmCz4orZfhvwZMqaWwULW6rL5eM/bjIiBfPQ+u90UoHiX3TTvf8xg0V1+mN6ly7W
-thnGkibkKAZQUA54Lql4DRSXtBLYMUCroQFBwjD4B18W5GF30mDyn43o9LrrY94q
-l4HvTGzmVTRRKyg09FMcxFgKP7uvtfdKhUMtPPFYWIECgYEA8ixUdjkjY8kQMreT
-ra++GXWWgWTmtbiJQkHRbdAcG/gbrGnLNjxkfdz0GbjDYLFXSF9ST1k6VX8ywBlD
-UD+uzm8X8w6fQMpOrRU7yXnpwFk4c3CcCnzJOkgyp9hJdQqFwsL9FXPamQkqaZqf
-CnG/sASmjHpab0haVDvGsVMX3+cCgYEAy5PedxVdt1xcfNiQqZgt1mkOY7Oj3KbM
-i2qkohKMjntILLJLN9wGGH3q/nah1KHpPw3NG1+vX56WW1sPoXyvs5uQ21dzOu2w
-I0SuQU8fB0ITI0zL+vQUpNX3njZ8W5+oPMGFX3TSOS3/0ITf+7Mgei6bF67muguu
-X1OkUu0bxJECgYEA7Jjau9X++VJKfQJVSW9VblIvhKMrs4Zis1TSY1La44h2oO+L
-FaXTGBRyd17HowQfnhlitRsbnsPytTL5TMGq6wwmfdRfSlFcpEUGcESnVsDUIhR2
-nthjUImQ0+K/gZWSMUGHORpDCxilUx85Gl8fQ7yHat9u0yIA/iKYcE4aGSkCgYEA
-ikFWKFGeX9SeCzuYo1TybFbUqulpM4UkDNrUDC3Ev08CaTh81ObcTO3XFhHDPgDn
-wybAUQLeu3Wcb1acevOO78+KxSvS2gZqRMlz/m6Zh/hbvvF85mW1T2zwycX/FsqL
-GxfiWD2iN6sBvL9AzlOMju3v7lmd4GPmfF71jkvxO8ECgYBNRflAjMVb9CoairTy
-HKxr6QxWNrdOcpbV5YrS4v/x8RgTPYYJuNh2p8kccVKUMEPg8Xh0/WEbTAnM5mgq
-ca0c30O8VtulpL41cKRez0/8AFWZOj0jz2da9SL4tSnQRBHrNS5Gvv2OGLJfqL8Z
-MqH13APmfJofDHypsA4hNzvxsA==
------END PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc.der b/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc.der
deleted file mode 100644
index c098580ba..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc.pem
deleted file mode 100644
index 4be31a326..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc.pem
+++ /dev/null
@@ -1,29 +0,0 @@
------BEGIN ENCRYPTED PRIVATE KEY-----
-MIIE6TAbBgkqhkiG9w0BBQMwDgQIr3AyvPqfFRQCAggABIIEyPUs6wCboqtKmExH
-zfez3vfHn2cp6s3X563Bz73hYn/8vXtI/q0oDNOpgav60/N7rMy50fno3LmW0/6E
-+UN4MwofmBS3lp1ZVY3KmzDy6lz5vcFo4GCCj+X6dacsyBQ4lFOge5BihQ3R9cKt
-dSrd1EFKwGGu3qTDG7ajTZukmYjxuRqpyHqPO5OJO7yXxHOB7B7sSKIyJRCkkucd
-oBC86kQdWraweSYj+Klza6VjKzmNzDBx9Fyhrj9XGXJ3rJLhjgNpelwX+PIMU31i
-/yklI4jm0aMSoAvXgdBXZuOsnsI27GXxy//i7AOgLLWi+Bu4dJSSl5PMtespf83u
-5jSysJymXiNcN6vEautGyjCujdMs5c/FEMbgubAMXymCI9DsAN+5dNMDY8Zrfqdl
-hFKfctcu8BxFa+0tavJ28fOEBuEyJLsQ9OvvS7dn4AV502JRKWObfsw7fi+mMzMu
-oxhYo99MRqic6a9uDmYB3SPeU31eOHiEi0n51D7Gtcn++F+IaDFwSHMirThzakGn
-go3nj0yq62euzVcEuhIfTTAe3F2tqzpzznVFbs1XgrGVREJ6gp5vRgMUUGYIqQir
-p5oW0HVRI4iuoSjdN4/wNAxIP9zakwYx+vWx1VXhDVEJfgNmxDRvEbF+OOz+iJCf
-7A2e8L+kZ/5oC3HO8h7GdHNTUjRRdh8FUM8lGo+HbMYDznMy/bJlIP2bx9hIIha7
-U70i09glS2Z7Ei+VecJbvFzdro0vdYyGO2ef8bWwCc5JMucxDcRklWdUxK6amKJN
-VpXL3TW0VYCfr1rLmZXUfBGk/KXM20/BoM04WLjeR3oiV/2b7SYK7GnJ7kBmAHHx
-gnrwMDO3JvH89CwlHRizVSQl59ViqEMGLmbHThcMqkEOkFphB2xox7/IOVyp6cFn
-mY0ZCrbhdX+L6t5jiyq/4us5bzF7FOBYsJr6n1Rm9b8eeOL693y/6uM3CvTJcTOb
-5RqWiHgTgmefeOeUQ0/dVgvEOIWz2yqBQmHKiB4+0CGGIRwUOXBrTKSLilumsjQe
-qGhJ6yw25VIpdXsMD1WVviczgRTNYjdldIJoHQdvpCEAhQ1RR3rkuIPniTumJFmY
-CnjfNqjtkaZWIN1nOCmcu50tswksWEEFEfkcP1xyzhr3EVCYAoFncLTp5vHBtdmg
-6KBdar40/OFGAcbDGDX1g3XEEi6jHmy0Lyz7M3DwESgaMgwzscsQLr+wMITk1IUN
-yfiXHl1CQjGxhDj8KoAhdDjjPENkSlCSd1vEO+lg1/IFb1dtnL2DJp6BQt9/VLHo
-Fp3pdZ7r95H20+pEhCZp0HXLNo1o8xjJQ5RWUCs1Zc1cauDOAh8lAjps6MBxTa3a
-LOgTW9lgiAQ+S1g2jK4BmqbLvZUF+Z6xupc8uE3E3HhJolmDRYojMNFNmmvODa8M
-CneWmj3T1KvqEToAIq46mStlTfQufSMpaJ73Wds4gmIiGwn5hIuUN6f3kybbt4f2
-4DLZXMcjYweLi9tJtFC+JaO0rS5gtX/k/ys1QSblSU5qfRu1XfwNAcZO1ReKgGYN
-ymI78cSACGIcEvAwin8CdRu3W99NbMqHW9AcCETFlTsC3wNlQxyYSem75sjPaWVF
-sxLy7YxEJ8tDEJZbSQ==
------END ENCRYPTED PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc12.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc12.pem
deleted file mode 100644
index f9d30d2b3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc12.pem
+++ /dev/null
@@ -1,29 +0,0 @@
------BEGIN ENCRYPTED PRIVATE KEY-----
-MIIE6jAcBgoqhkiG9w0BDAEDMA4ECAGQiv1ZBAPqAgIIAASCBMhFUVwujBcs/XvB
-vmxHOJWn27QJFXXADhKYA7pRFsSx3hlLAAZfQnRuulwoKUVLbyNN7wTB5z8R2PHb
-WY1R/d34PIGfYTNZs2uzw3KMn6M4gio+dHwVoMN5eidda4sO861UpTRyy99Y2UXK
-tNE84qQdm+ZbjN5PjFyvfpu5jRGyJWWnvvjlbTBoMP4exHJEEVfvV/QguaL5tOHv
-lZqQ9Lynx6gy+Jt2dF87rz+90MdbjZgaaxqoMx6JYmCCRpkcIjCVdtWVmrUHzbIV
-ee0w1/FiIKx+m63/8DzKxAsCvYuI8dAmWbNZ4KY7kWmGZ7A4dwZaqU87gUSvSnyL
-J67K7+v7Tnx2y8muBkqVMX19EP5fnFRiM16x7/PIikR4Q4zJrN7sK6+zBSeq6szh
-x3N94qm3EzBYY6nJAViEggY+Z+4+SQlErxZkBRfs7hGAejG1RoyyAr0/9ojwUH9p
-0J4PiDmtnOq14eraRMMeWdIu+3301cZzrZLhBGXXPq1mYcoZxpt+vKTPHPfTSyEh
-FuFSVDu43s89MwHpsK5b4FAqMd/rpLoXPYEboD6ZK3mhPKiIYkpjdOpQCCjcQ6Kf
-acrFXo5jz+Zafz2U80qhpWxDz3RZQC/MBCwWVS8+iNv8KoxE40SSmlCFMcXSXNwP
-dTRsZnRvNX91b8UAn37+dzRE1lJX79xT51uC1UjlkVeWz/ZV5KwupJ0MvdGDNVDN
-4F+GpLvd/g2Q3xx4rl1Vx+fUPh+IDRIWRmaJ5rJqqgn1pzZx4tS+0Rjoekk28SUD
-DIzmZFswWus385DYhYcn6FAWf2dTq3LulJcX2DovGLiGu3TUA4JlVl3ejWvf5FZY
-kQx/Z9Cf7+nW69Okuwa+DX3d8g1pFPqWyoFN5cLqiNIiolqP/pIVTlCp5WZHRCJx
-HO2f+mxt7lvymOKLrlq35DywLhYYj4J8OAXI95LRLGWY5GV68f4BKcVpPweAVrHm
-V2zVgCvIDqe2rlXF/hB5eQiiUa9FOaoKJ2NAhfcCar8Ty0PnYwgFpcBh1fXaxfj+
-hwv7Pb2ioRDQOgaxtvF26phms79tMxK3HnDXfBvRzIn2pATOJr5om4z4JYna6DSp
-dILlW9X5U5/OATIY9DdtvZiAom36YMUfXbHjHf6cZwIgkJQP3KF+2Jd9iMhQwAmQ
-xiA114zmxlXzvJqGA1LTwVDPA3VyUTQXAZg/2RroB8rTufYRTYKC37h+YXXwtCkP
-gLQtG6gsWPaQ23xddLQI1pk3HvLFR3y0Zr2vR7OYbv5CFXH3pCVeKN+Y9r6c/IbC
-CRS2S7iwiEuI0YTvUrfscVIQGuc3iC2mJRjCrQUB28LQ6cbCccLk/P/2ynse/lyu
-+29/QLZCL3GJlYHvOL1GBnupHygTOETtVW34+j/jDjyOVvZLTuOwtzb7+8R157OI
-bUQujZ9f5IRYeRNTliwsZYQXjOI+iMheWHl1kd/qV3FFO946hp9BV1TeFQwCf1Vx
-b8kWLgUpZpHz5d07EBKhzSQb0OacMEm5FsS3IRRIdnmqvpMsW1wsOjE6VxkS/Ozg
-QE8YGeT1F10bfcJtp2m9uVRpPfffcckW89wBsI9uLsj6pETzLtHVVyepB7NxKRtT
-3ChWuLWbwCQsrzyPdms=
------END ENCRYPTED PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc2.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc2.pem
deleted file mode 100644
index 297f2a020..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-keyPkcs8Enc2.pem
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN ENCRYPTED PRIVATE KEY-----
-MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIxaI9IblN3acCAggA
-MBQGCCqGSIb3DQMHBAi7kwdRvCrqMgSCBMjkSOSVfmu42O0q2GzFrJVr3cam9ZKe
-InQsxqtgADdBxMgJJVnr360tUNPQyyvfCH//Duhz+aJIC0MQZkWR3ZSy5pfHX+vr
-C3wd741VOlI44uEdzRktlPc11saMDyKS04/K9aaYIDqspOiobt9WZLQildXl1n8j
-N+7Laj7A/vxJ5GUJ4hdPwQOIeuJXTDDzn+Ld12XXGH+Iw1M5Cx3tBw1TNizSnmXQ
-vf/MsfsWsZbHBppCXZbF27jJA+6Bg7dGT0OZM0pI+ZQvyHr+qjog0hollY9KjwTG
-h+hsM7umWFJdeRMrmkTrX/R9HY/c5I4ExNSp1AtMmFeeU8h2VTJtYcoykUU1q2pF
-KHfjPghwmYromQGR4nPA9sqa9s+VMq9OaqoJDoBwNobdFr7sEtMLT08vTa0+rMX7
-bmjAF44/dVBYpBxXjTQ0pXVeb24Q00Sn6NOI4fTsBnkR+WTtuwz/L0qaGnJlh10y
-sQ3+95cUtZc3SZS67yYUx5auswqT3V4JCmhJcHNi+/jHyrj9D8nVWibQ2TBmgUf+
-0NzvdKb7sraEx7PSgFWDMLoQrd2+cqsJArpY9TbLSLhBDrOVc8v/lXYuK6QI0gMd
-HIwAZARUZMoI3WS6icTLYyLdQPMsFzI6U0arkbrdhjNNd3kVqeFEJ+oF0rkuAcJJ
-K8eUcsby1AIBS/9tuW1gSYubmuXsZX8xbYbJnHUqGOTAVa7jo8eVUTiyUfPXa+0N
-s1tTpZXtOOlqncZ08mPHppshdKF2cpuh0JNjiR6fHvXytGWFGMsKtxdwKs/14UCg
-qoTW0EQU4ONfBxR2PtX8PlNV4bOt704HP8Vc0H9JV2uWpJaLRzY2bBiPgKcrO9Eh
-83zFrPu/0obBQTxnP3mMihxvCndflHQqeJ0V1YYw9n4+XbgBqULXDQs7OetRohnY
-gYyc//NdC2I8mbdabFYvUTWSH6oMA6lqkwTjTTwtn5E8BJkRi1sIq4jNFUekpm2T
-5AwP7xWn//PM+B12CPoIgYtYT6Yhbf8arXuGU28y1Ahhi/hKcpR9HRPQeyaR62vi
-skjjycfn38wcj0WrIVnOceGgPa3EBrkkTaPUHvMQ5G/xzMZ82o3CnmwdnH+lp3eg
-TLcLm8Yp9InkMJNVOrGLxFvmTljl3h9x2JVuE0wtuWt91QVmfCZo0k3Cx46ad7xB
-eK20veTy+PySy2U3W1twGfsXXXRwaQiXXRrgPciK0LcGXZneShZuebk04U31sq4F
-rYaMAzIDDmvwbjh+UpNcl1VdBDGGePxzzOD3HHYPbm240HVMPuS85P2kFjak3PdJ
-GqsRUS1SRp1e451aFGjzggPLXFjAfDMaxrgjSWapRzu78i+xvcvf69979oX0KO9Y
-KMSC14RnmnT1+UdKxX+p9r1AwfH/vJxM34AOSva1uLiSJckRGYGOzuaYsTT9ZAx/
-q3CNALF4qFUMWmJnvQDYmCUnw6lJl3CazbtV5RI2ILQX6ZHR6YAHT5hYY43k+AnZ
-mFW6BGKoX/f4iVqYtjQWiGWAJAf6C9+548O2t9MiVcgQf4Nvj6lFLM00pzFn7jW4
-DsDFUBmmrSF8wfR7SRpOc/ViVZBRleYPLsMu0tmD29fowqqBY0MEkxqSahFAGTgk
-sao=
------END ENCRYPTED PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-revoked-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/server-revoked-cert.pem
deleted file mode 100644
index 09dbb1dd0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-revoked-cert.pem
+++ /dev/null
@@ -1,173 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 2 (0x2)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL_revoked, OU=Support_revoked, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:b0:14:16:3a:43:dd:e1:50:45:4f:cf:80:b3:dd:
- 66:96:c7:e9:f4:dc:de:b6:6b:24:1b:76:48:ac:c6:
- 23:a5:a7:e4:05:19:bd:b7:f6:de:fa:ff:ed:5b:3c:
- 79:8a:a9:d5:f1:fb:eb:c8:b1:e4:b2:ab:52:72:89:
- 93:22:5c:ba:cd:8a:36:2a:2c:d1:40:ec:a8:66:0e:
- c3:76:cd:e7:b3:a3:0a:1e:dd:4a:07:82:17:81:ba:
- de:57:ce:b6:32:81:c7:bd:11:bb:e9:15:22:4e:e2:
- 16:ac:e3:d4:c0:68:88:6c:11:fc:c2:bd:1b:db:1d:
- fd:e6:43:c7:1b:33:b8:f4:e5:1b:59:39:12:38:4d:
- 2d:9b:64:68:98:fc:8d:72:12:91:f2:24:25:6c:4c:
- 4a:48:57:92:00:cc:7e:d8:d4:3d:b8:1d:f2:9e:ea:
- b2:23:0f:51:0f:11:41:1c:f5:27:00:1b:08:7a:12:
- 3a:05:5b:03:24:fe:b1:7b:20:fa:e4:a8:58:c6:ca:
- ce:7f:be:95:01:12:9d:05:e6:39:13:1b:c0:3e:56:
- 2e:2b:9f:76:37:de:de:9b:e0:0d:7a:63:0d:a7:22:
- 58:db:31:c7:f7:b4:46:5c:ba:b6:4b:48:b1:18:9a:
- 68:b3:63:47:fd:af:12:5f:2f:fe:10:cb:58:2b:33:
- 68:85
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- D8:09:2B:59:E1:2A:EE:D9:EE:40:AA:9C:AB:F0:5D:28:09:4F:22:BB
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 41:29:ba:25:3f:17:70:85:1e:5c:e2:2c:8c:8d:16:1b:d5:1f:
- d6:05:e8:e8:8b:43:a0:5b:62:e8:19:7d:d1:1c:60:26:2f:3a:
- 6f:7a:3f:ec:ad:96:c6:9a:cc:53:3f:12:d9:12:14:ee:2a:f0:
- a5:2c:31:c7:ae:5c:12:9a:80:3f:ef:de:f3:be:bc:9d:0e:d6:
- c6:8b:e2:8c:58:4e:15:78:4f:16:2e:20:ef:f8:c9:57:6e:a3:
- d2:d0:03:32:47:72:84:59:af:5a:46:dd:65:54:d4:9b:7c:42:
- 5d:9d:86:eb:21:e8:fc:0f:f7:37:ae:95:43:75:6d:f2:12:f3:
- a5:e5:10:25:7c:63:ee:03:ce:8f:48:c8:ab:a5:74:2d:1c:dd:
- d4:28:9a:eb:c6:94:fa:ed:57:31:aa:7e:d9:44:40:69:9f:44:
- f6:b3:9f:0e:d3:d8:58:66:d4:fc:c0:83:67:a7:85:ae:03:f7:
- 83:b4:45:3b:0f:a9:3d:4f:f8:07:31:b0:8a:50:6d:80:f4:36:
- be:86:df:ae:da:7c:f5:bc:e2:fc:d3:ed:da:18:7a:f4:f0:ac:
- 84:1f:6a:73:00:41:42:71:d4:19:3f:d7:d3:29:9e:b1:94:fd:
- 49:d8:a5:e6:1d:a9:40:b5:1d:c4:28:42:a9:24:b7:54:c2:94:
- 5d:16:05:c0
------BEGIN CERTIFICATE-----
-MIIErjCCA5agAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgwNDEz
-MTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBoDELMAkGA1UEBhMCVVMxEDAOBgNVBAgM
-B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xGDAWBgNVBAoMD3dvbGZTU0xfcmV2
-b2tlZDEYMBYGA1UECwwPU3VwcG9ydF9yZXZva2VkMRgwFgYDVQQDDA93d3cud29s
-ZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCwFBY6Q93hUEVPz4Cz3WaWx+n03N62
-ayQbdkisxiOlp+QFGb239t76/+1bPHmKqdXx++vIseSyq1JyiZMiXLrNijYqLNFA
-7KhmDsN2zeezowoe3UoHgheBut5XzrYygce9EbvpFSJO4has49TAaIhsEfzCvRvb
-Hf3mQ8cbM7j05RtZORI4TS2bZGiY/I1yEpHyJCVsTEpIV5IAzH7Y1D24HfKe6rIj
-D1EPEUEc9ScAGwh6EjoFWwMk/rF7IPrkqFjGys5/vpUBEp0F5jkTG8A+Vi4rn3Y3
-3t6b4A16Yw2nIljbMcf3tEZcurZLSLEYmmizY0f9rxJfL/4Qy1grM2iFAgMBAAGj
-gfwwgfkwHQYDVR0OBBYEFNgJK1nhKu7Z7kCqnKvwXSgJTyK7MIHJBgNVHSMEgcEw
-gb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJVUzEQ
-MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3
-dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns
-LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q3rj7
-MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAEEpuiU/F3CFHlziLIyN
-FhvVH9YF6OiLQ6BbYugZfdEcYCYvOm96P+ytlsaazFM/EtkSFO4q8KUsMceuXBKa
-gD/v3vO+vJ0O1saL4oxYThV4TxYuIO/4yVduo9LQAzJHcoRZr1pG3WVU1Jt8Ql2d
-hush6PwP9zeulUN1bfIS86XlECV8Y+4Dzo9IyKuldC0c3dQomuvGlPrtVzGqftlE
-QGmfRPaznw7T2Fhm1PzAg2enha4D94O0RTsPqT1P+AcxsIpQbYD0Nr6G367afPW8
-4vzT7doYevTwrIQfanMAQUJx1Bk/19MpnrGU/UnYpeYdqUC1HcQoQqkkt1TClF0W
-BcA=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 9727763710660753659 (0x86fff58e10deb8fb)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:09 2018 GMT
- Not After : Jan 7 15:23:09 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a:
- f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac:
- de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98:
- 21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77:
- 32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1:
- 8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3:
- a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed:
- a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95:
- 82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c:
- 3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db:
- 76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc:
- 73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98:
- de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68:
- cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2:
- b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3:
- 13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98:
- ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed:
- 36:79
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 9e:28:88:72:00:ca:e6:e7:97:ca:c1:f1:1f:9e:12:b2:b8:c7:
- 51:ea:28:e1:36:b5:2d:e6:2f:08:23:cb:a9:4a:87:25:c6:5d:
- 89:45:ea:f5:00:98:ac:76:fb:1b:af:f0:ce:64:9e:da:08:bf:
- b6:eb:b4:b5:0c:a0:e7:f6:47:59:1c:61:cf:2e:0e:58:a4:82:
- ac:0f:3f:ec:c4:ae:80:f7:b0:8a:1e:85:41:e8:ff:fe:fe:4f:
- 1a:24:d5:49:fa:fb:fe:5e:e5:d3:91:0e:4f:4e:0c:21:51:71:
- 83:04:6b:62:7b:4f:59:76:48:81:1e:b4:f7:04:47:8a:91:57:
- a3:11:a9:f2:20:b4:78:33:62:3d:b0:5e:0d:f9:86:38:82:da:
- a1:98:8d:19:06:87:21:39:b7:02:f7:da:7d:58:ba:52:15:d8:
- 3b:c9:7b:58:34:a0:c7:e2:7c:a9:83:13:e1:b6:ec:01:bf:52:
- 33:0b:c4:fe:43:d3:c6:a4:8e:2f:87:7f:7a:44:ea:ca:53:6c:
- 85:ed:65:76:73:31:03:4e:ea:bd:35:54:13:f3:64:87:6b:df:
- 34:dd:34:a1:88:3b:db:4d:af:1b:64:90:92:71:30:8e:c8:cc:
- e5:60:24:af:31:16:39:33:91:50:f9:ab:68:42:74:7a:35:d9:
- dd:c8:c4:52
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIJAIb/9Y4Q3rj7MA0GCSqGSIb3DQEBCwUAMIGUMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
-A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
-dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe
-Fw0xODA0MTMxNTIzMDlaFw0yMTAxMDcxNTIzMDlaMIGUMQswCQYDVQQGEwJVUzEQ
-MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3
-dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns
-LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAL8Myi0Ush6EQlvNOB9K8k11EPG2NZ/fyn0D
-mNOs3gNm7irx2LB9bgdUCxCYIU2AyxIg58xP3kV9yXJ3MurKkLtpUhADL6jzlcXx
-i2JWG+9nb6QQQZWtCpvjpcCw0nB2UDBbqOgILHztp6J6jTgpHKzH7fJ8lbCVgn1J
-XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc
-/hr8fat6Nj+Y3oR8BWfOahQ4h6nxjLVoy2h/cSAr9aBj9VYvoybSt2+xWhfXOJkI
-/pNYb/7DE0kIFgunTWcAUjFnI06Y7VFFHbkE2Qvs2CizS73tNnkCAwEAAaOB/DCB
-+TAdBgNVHQ4EFgQUJ45nEXTDJh0/7TNjs6TYHTDl6NUwgckGA1UdIwSBwTCBvoAU
-J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD
-VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290
-aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t
-MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAhv/1jhDeuPswDAYD
-VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAniiIcgDK5ueXysHxH54SsrjH
-Ueoo4Ta1LeYvCCPLqUqHJcZdiUXq9QCYrHb7G6/wzmSe2gi/tuu0tQyg5/ZHWRxh
-zy4OWKSCrA8/7MSugPewih6FQej//v5PGiTVSfr7/l7l05EOT04MIVFxgwRrYntP
-WXZIgR609wRHipFXoxGp8iC0eDNiPbBeDfmGOILaoZiNGQaHITm3AvfafVi6UhXY
-O8l7WDSgx+J8qYMT4bbsAb9SMwvE/kPTxqSOL4d/ekTqylNshe1ldnMxA07qvTVU
-E/Nkh2vfNN00oYg7202vG2SQknEwjsjM5WAkrzEWOTORUPmraEJ0ejXZ3cjEUg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/server-revoked-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/server-revoked-key.pem
deleted file mode 100644
index 3cf5640ec..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/server-revoked-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpQIBAAKCAQEAsBQWOkPd4VBFT8+As91mlsfp9NzetmskG3ZIrMYjpafkBRm9
-t/be+v/tWzx5iqnV8fvryLHksqtScomTIly6zYo2KizRQOyoZg7Dds3ns6MKHt1K
-B4IXgbreV862MoHHvRG76RUiTuIWrOPUwGiIbBH8wr0b2x395kPHGzO49OUbWTkS
-OE0tm2RomPyNchKR8iQlbExKSFeSAMx+2NQ9uB3ynuqyIw9RDxFBHPUnABsIehI6
-BVsDJP6xeyD65KhYxsrOf76VARKdBeY5ExvAPlYuK592N97em+ANemMNpyJY2zHH
-97RGXLq2S0ixGJpos2NH/a8SXy/+EMtYKzNohQIDAQABAoIBAQCfamBBekZ9gxZt
-ztmgfvgt1WutZPdCwzgaoPnlazLE/X9FWuvYjeuN5n44V0VXVLK99q6fsufzF4d6
-6bHLr5b1Fog5oQAHPvysAfvYKU345sj37rPinla3/r7lUuLEUZnMRS0TNy4rqyiK
-eW+akEnLRnHIwjxhIwNIId83cpmnJfE7ZV7svZvk6Ctc//prFa/Y2AwkZcM2j2iG
-xc4kOXr0Y8DE4FYQEZgdJCoYfVDihcwtVXUGm+ZMBNhLzK/KuSxdjL6ySzdCSE9M
-mS4ZJPManR9LOIGsKlFsJrGWnFOm/GOMkzdBSLoEqRogHhYsvn7oDnLMHqPA/gE0
-M85ytBkVAoGBAOO/tTCd94kDfkXar+5+KvcYwQbwnMIbrN0TiIudpaSnE0dBFqU3
-oNC2K+PoGBgwEsEr2ThZCMAbz7NQJYmmNlNlSMNBzeud59F3BqMk3J6k62E0+Fnt
-C8OFfZ8V0vbdGehmeArEqHDcRJZBFsrUWb2/9/j4OYpnsozkp6H1pWQrAoGBAMXr
-jouX1qXLfKvYEpOKaSf+yjfULjT33ib885Nw2xlRzI6wkjHFsb8DERK36PA3CakU
-cdXb923tMMlLoCvSdDd6Qnx1TLRbYaJSFaOLt2we94AvjHtijM6vO7ftd1XvRWer
-/Ip9NT9X1NZxP/NTyUL3DgRmXE4L32fr2FFQEJ4PAoGBAKr2QeFY83RatvNhEigJ
-dd8/Kcc337SmacEa5KlJkgpjkMkwRvuHIqUJ2zCeDVg63hk7/TebPkJXnjaQt1z4
-9Fbt9Qz93MI+KsLGgqj9Bs/gJQE3biazFt2S25YMH+1IVCZspTgQIBF4h9Py0FU5
-ypPyAwdV7nvDE/lHu76MU7c5AoGBALUxR5ioc0vplMNF1wvXpRmGet7Nk1fOrESJ
-QvzyTsNJTbo8EDscv/Mc/Z5jXA++c0uleenNrSGoCgffAk3cJ6U6em+ye3yKREH0
-X/cPy+ZiGzfxT+0NddcqOcPS1HOJz8Jvg43Nvte0sxd3KpK7W//AacbBZzPUTry2
-/5zBbdUlAoGAYglAtoHIC0mQxAe6PXy/QRmgj87fPGsbVFOUwBf8Il2UKpfX9blv
-0rHb0kenc/DP7ZHZTgdc5qGgRyg0d3+O7W2rWTv1MiX85rUE03TCcyC2l1+M+iyx
-6IdHDjYwa4Kt0nT1JxEMjJxe1uhzJfgYJlcz5Iy4ff0xb8/aH0veedc=
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/taoCert.txt b/FreeRTOS-Plus/Source/WolfSSL/certs/taoCert.txt
deleted file mode 100644
index 0973defb2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/taoCert.txt
+++ /dev/null
@@ -1,176 +0,0 @@
-
-***** Create a self signed cert ************
-
-1) openssl genrsa 1024 > client-key.pem
-
-2) openssl req -new -x509 -nodes -sha1 -days 1000 -key client-key.pem > client-cert.pem
-
-3) note md5 would be -md5
-
--- adding metadata to beginning
-
-3) openssl x509 -in client-cert.pem -text > tmp.pem
-
-4) mv tmp.pem client-cert.pem
-
-
-***** Create a CA, signing authority **********
-
-same as self signed, use ca prefix instead of client
-
-
-***** Create a cert signed by CA **************
-
-1) openssl req -newkey rsa:1024 -sha1 -days 1000 -nodes -keyout server-key.pem > server-req.pem
-
-* note if using existing key do: -new -key keyName
-
-2) copy ca-key.pem ca-cert.srl (why ????)
-
-3) openssl x509 -req -in server-req.pem -days 1000 -sha1 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem
-
-
-***** Adding Subject Key ID and Authentication Key ID extensions to a cert *****
-
-Create a config file for OpenSSL with the example contents:
-
- [skidakid]
- subjectKeyIdentifier=hash
- authorityKeyIdentifier=keyid
-
-Add to the openssl command for creating a cert signed by a CA step 3 the
-following options:
-
- -extfile <file.cnf> -extensions skidakid
-
-anywhere before the redirect. This will add the cert's public key hash as the
-Subject Key Identifier, and the signer's SKID as the Authentication Key ID.
-
-
-***** To create a dsa cert ********************
-
-1) openssl dsaparam 512 > dsa512.param # creates group params
-
-2) openssl gendsa dsa512.param > dsa512.pem # creates private key
-
-3) openssl req -new -x509 -nodes -days 1000 -key dsa512.pem > dsa-cert.pem
-
-
-
-
-***** To convert from PEM to DER **************
-
-a) openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER
-
-to convert rsa private PEM to DER :
-
-b) openssl rsa -in key.pem -outform DER -out key.der
-
-
-**** To encrypt rsa key already in pem **********
-
-a) openssl rsa <server-key.pem.bak -des >server-keyEnc.pem
-
-note location of des, pass = yassl123
-
-
-*** To make a public key from a private key ******
-
-
-openssl rsa -in 1024rsa.priv -pubout -out 1024rsa.pub
-
-
-**** To convert to pkcs8 *******
-
-openssl pkcs8 -nocrypt -topk8 -in server-key.pem -out server-keyPkcs8.pem
-
-
-**** To convert to pkcs8 encrypted *******
-
-openssl pkcs8 -topk8 -in server-key.pem -out server-keyPkcs8Enc.pem
-
-passwd: yassl123
-
-to use PKCS#5 v2 instead of v1.5 which is default add
-
--v2 des3 # file Pkcs8Enc2
-
-to use PKCS#12 instead use -v1 witch a 12 algo like
-
--v1 PBE-SHA1-3DES # file Pkcs8Enc12 , see man pkcs8 for more info
--v1 PBE-SHA1-RC4-128 # no longer file Pkcs8Enc12, arc4 now off by default
-
-
-**** To convert from pkcs8 to traditional ****
-
-openssl pkcs8 -nocrypt -in server-keyPkcs8.pem -out server-key.pem
-
-
-*** DH parameters ***
-
-openssl dhparam 2048 > dh2048.param
-
-to add metadata
-
-openssl dhparam -in dh2048.param -text > dh2048.pem
-
-**** ECC ******
-
-1) make a key
-
- to see types available do
- openssl ecparam -list_curves
-
- make a new key
- openssl ecparam -genkey -text -name secp256r1 -out ecc-key.pem
-
- convert to compressed
- openssl ec -in ecc-key.pem -conv_form compressed -out ecc-key-comp.pem
-
-*** CRL ***
-
-1) create a crl
-
-a) openssl ca -gencrl -crldays 120 -out crl.pem -keyfile ./ca-key.pem -cert ./ca-cert.pem
-
-Error No ./CA root/index.txt so:
-
-b) touch ./CA root/index.txt
-
-a) again
-
-Error No ./CA root/crlnumber so:
-
-c) touch ./CA root/crlnumber
-
-a) again
-
-Error unable to load CRL number
-
-d) add '01' to crlnumber file
-
-a) again
-
-2) view crl file
-
-openssl crl -in crl.pem -text
-
-3) revoke
-
-openssl ca -revoke server-cert.pem -keyfile ./ca-key.pem -cert ./ca-cert.pem
-
-Then regenerate crl with a)
-
-4) verify
-
-openssl verify -CAfile ./ca-cert.pem ./server-cert.pem
-
-OK
-
-Make file with both ca and crl
-
-cat ca-cert.pem crl.pem > ca-crl.pem
-
-openssl verify -CAfile ./ca-crl.pem -crl_check ./ca-cert.pem
-
-revoked
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-ber-exp02-05-2022.p7b b/FreeRTOS-Plus/Source/WolfSSL/certs/test-ber-exp02-05-2022.p7b
deleted file mode 100644
index 4fc8671e7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-ber-exp02-05-2022.p7b
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-degenerate.p7b b/FreeRTOS-Plus/Source/WolfSSL/certs/test-degenerate.p7b
deleted file mode 100644
index f52482f9b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-degenerate.p7b
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-ICA1-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-ICA1-key.pem
deleted file mode 100644
index 8cd09c8d1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-ICA1-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEAsiuhP77AWL06vA0ZrMp/uTvwjDD/BLE0fiaGljZrUy5EHaH0
-vFF5VQXKu6CnnTMBk5YUZ+z0wy5mJ9FBaDSsjWRj2FWGnWIkme23/8tNnUBU1eOq
-Raam2/5zQpRCwdAyXMQhrpyTALdKH56VpihtS9jAZefto23KGLP638lnGnUjYIOl
-A19hveXWjZ0FRyN+oI3Rf0JOOKzOcLy/ewVbD4ICsJqNwBTK0EVelxDRoeEj2txp
-nM5TzGiJxkBNabyrT8cRXmKi3+KlNHw5NidnNBEELCqzFtuO/dd7HZNfM8LKliIq
-Q4KKSEYHE/9sHLC6C/DNP0zcNBePInBpnSLXxwIDAQABAoIBAH+tbFw14bi1wgVI
-jgGZC3Y+Ud7krZs7MZbFHOVAEiEFoqJpkOvyprQa9nEGa5bnGlYc0nq2/59u/J3E
-As8eEBkyu6onf9QApKH6DEUt92yc0S6Fe1t2VVSJPyeS/1PMUorPsiNi6KU2s9N8
-3Vi417nmldlxHoZjAtQ5BaqgtVXrMMIS05Q3bySULdOXYNu8hBGvGkR99tSyKQ1S
-qVfJWi7dHrjiRPbYSW7aOaYID3QjB3GIqkcoUMWXTzdogE/EPKZL52CL+hBBw8C2
-4Q/8o0Wy60Futj/1Hdax6o/sVPDmoypDzYbbQ5IVcGM+SWykDn2+tNJDvfFp1T6k
-+az1H0ECgYEA41cCvONXUQQ9PWSeNutdxS49c+tr0UN5/F09Yy6vVEWkjKuUwYzj
-9RMxH6Hf0t6k3Qvm4x0m9jWFWTiUQVGDg9EU9AWSGeQ73TZN9gUaI5meWUQnZoiL
-kJqkKvdiXfCSBwCRQuW3vrKyi8miLYTVTeBewjoUbZnkVkIN3+f0Vb8CgYEAyKHD
-P0JE4UegsTB3r0VZtXHF+en2TcJ0kl4tc09O+R3FOmslmXpaG7ZMx+KVVCrmTlPl
-pzScv1kNEhQYSJPIfbc1YxLOQNUf96oiTeG4RsCMm+zSIgYQKe5VKvEPrw4OfOQW
-bqUyHGHfm4NSxmTZgi6ukgZqpTcD5KUyajZaz/kCgYBeWLfcKAUOrFG17tHyPM+X
-i08ZknQWToiLgS5+wNsmgBiAAJ0ljhD0nlheplE7NAb7bXsOegS3XRLQKjjsuqV3
-yQeHFeDCOgPWFDlahleIurIKncw0MyqogmTrJ+t8zN/tZADk4GzXCVYrySwy89OK
-FDl/JZdgvOMUISmc6KhwBQKBgGWOrJya2O8IKOlIVW0dN7nG66YDri/SXNuyXGNg
-I+OqFCnsDs5Pxsj8UIVlxp0iUg4YHcmzshyR4THjhh9G31fzo0yROmJK/7GIJ3Ew
-7uyxjvtmtz+NviTbhbUE7SF5hg/mDQzZBjKjwGKh6QaQCiIBq1Aze0xCOvBERu7I
-sNNRAoGBAN5bKB0JoskQcd5uJTgwTrATrY4FNBPs2s/I8XIBYCLuvhGyiR95B7Uy
-nZobhWFx2xwWWHksrJ8CKXodQuojtQPEC+JnoKeUvzEs95KvHwdxNGH74VMT8bqg
-Q3qKoHsd8dkclcJbIPI3KCkpuaimqNits4ma+oVTuB0JyYFXEg+X
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-ICA1-pathlen0.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-ICA1-pathlen0.pem
deleted file mode 100644
index f4e62b953..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-ICA1-pathlen0.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:08 2019 GMT
- Not After : Jul 7 00:28:08 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainA-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:b2:2b:a1:3f:be:c0:58:bd:3a:bc:0d:19:ac:ca:
- 7f:b9:3b:f0:8c:30:ff:04:b1:34:7e:26:86:96:36:
- 6b:53:2e:44:1d:a1:f4:bc:51:79:55:05:ca:bb:a0:
- a7:9d:33:01:93:96:14:67:ec:f4:c3:2e:66:27:d1:
- 41:68:34:ac:8d:64:63:d8:55:86:9d:62:24:99:ed:
- b7:ff:cb:4d:9d:40:54:d5:e3:aa:45:a6:a6:db:fe:
- 73:42:94:42:c1:d0:32:5c:c4:21:ae:9c:93:00:b7:
- 4a:1f:9e:95:a6:28:6d:4b:d8:c0:65:e7:ed:a3:6d:
- ca:18:b3:fa:df:c9:67:1a:75:23:60:83:a5:03:5f:
- 61:bd:e5:d6:8d:9d:05:47:23:7e:a0:8d:d1:7f:42:
- 4e:38:ac:ce:70:bc:bf:7b:05:5b:0f:82:02:b0:9a:
- 8d:c0:14:ca:d0:45:5e:97:10:d1:a1:e1:23:da:dc:
- 69:9c:ce:53:cc:68:89:c6:40:4d:69:bc:ab:4f:c7:
- 11:5e:62:a2:df:e2:a5:34:7c:39:36:27:67:34:11:
- 04:2c:2a:b3:16:db:8e:fd:d7:7b:1d:93:5f:33:c2:
- ca:96:22:2a:43:82:8a:48:46:07:13:ff:6c:1c:b0:
- ba:0b:f0:cd:3f:4c:dc:34:17:8f:22:70:69:9d:22:
- d7:c7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- A8:10:EA:C8:EF:4F:00:CD:E3:79:C3:EB:DF:F6:C8:86:9D:44:6C:26
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:0
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 2a:15:34:be:88:ed:0b:5d:97:b4:c0:9e:f7:45:a2:ba:bb:a0:
- 7f:a0:b3:93:15:79:38:27:36:25:91:5d:73:10:bb:d0:f9:f3:
- e9:5f:98:c6:9b:6b:da:08:60:48:3e:26:17:2b:ae:22:08:ac:
- 10:ed:a1:28:65:96:7f:94:75:c8:da:6c:c9:f6:4c:4c:b1:a3:
- 45:4b:74:c7:de:49:f6:c1:1c:2c:eb:41:3c:2d:56:52:75:5b:
- 7c:13:c0:dc:41:34:02:c0:e5:5e:79:71:65:ac:d1:f3:36:f7:
- 55:d5:13:8f:0a:42:49:d9:fc:7f:5c:a4:cb:ad:7b:72:2f:98:
- e2:56:92:9e:11:1a:b2:9d:5b:b9:2c:14:1e:51:f5:c5:b7:2c:
- c2:39:52:90:0f:4e:04:5e:59:23:6f:d8:f9:75:2b:54:b0:6e:
- 98:0a:54:3a:45:fd:9a:63:31:ce:a3:a8:ae:7b:be:03:81:a5:
- 18:d3:00:51:a4:29:d4:f7:8d:53:31:72:85:80:c0:62:71:06:
- 2b:07:b6:0a:b2:12:cf:2b:bd:99:34:6b:5e:ea:94:0c:1a:e8:
- 2b:ee:e5:d6:3d:cb:7a:f6:f8:6e:e4:e2:f4:25:07:13:11:b1:
- 18:b3:75:29:40:dc:bc:31:57:37:71:7c:09:bb:74:1c:9e:b4:
- 3e:1d:47:20
------BEGIN CERTIFICATE-----
-MIIEwTCCA6mgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA4WhcNMjIwNzA3MDAyODA4WjCBoTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNoYWluQS1JQ0Ex
-LXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsiuhP77AWL06vA0ZrMp/uTvwjDD/
-BLE0fiaGljZrUy5EHaH0vFF5VQXKu6CnnTMBk5YUZ+z0wy5mJ9FBaDSsjWRj2FWG
-nWIkme23/8tNnUBU1eOqRaam2/5zQpRCwdAyXMQhrpyTALdKH56VpihtS9jAZeft
-o23KGLP638lnGnUjYIOlA19hveXWjZ0FRyN+oI3Rf0JOOKzOcLy/ewVbD4ICsJqN
-wBTK0EVelxDRoeEj2txpnM5TzGiJxkBNabyrT8cRXmKi3+KlNHw5NidnNBEELCqz
-FtuO/dd7HZNfM8LKliIqQ4KKSEYHE/9sHLC6C/DNP0zcNBePInBpnSLXxwIDAQAB
-o4IBDTCCAQkwHQYDVR0OBBYEFKgQ6sjvTwDN43nD69/2yIadRGwmMIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MA8GA1UdEwQIMAYBAf8CAQAwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUA
-A4IBAQAqFTS+iO0LXZe0wJ73RaK6u6B/oLOTFXk4JzYlkV1zELvQ+fPpX5jGm2va
-CGBIPiYXK64iCKwQ7aEoZZZ/lHXI2mzJ9kxMsaNFS3TH3kn2wRws60E8LVZSdVt8
-E8DcQTQCwOVeeXFlrNHzNvdV1ROPCkJJ2fx/XKTLrXtyL5jiVpKeERqynVu5LBQe
-UfXFtyzCOVKQD04EXlkjb9j5dStUsG6YClQ6Rf2aYzHOo6iue74DgaUY0wBRpCnU
-941TMXKFgMBicQYrB7YKshLPK72ZNGte6pQMGugr7uXWPct69vhu5OL0JQcTEbEY
-s3UpQNy8MVc3cXwJu3QcnrQ+HUcg
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-assembled.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-assembled.pem
deleted file mode 100644
index 0661644ff..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-assembled.pem
+++ /dev/null
@@ -1,175 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainA-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:08 2019 GMT
- Not After : Jul 7 00:28:08 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainA-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d0:7a:d8:c8:6c:4f:a5:cd:72:25:87:ff:12:a3:
- 65:0e:1d:1f:78:b2:d7:1a:65:a1:e7:4e:bd:05:b5:
- 05:3e:39:3e:85:ad:90:c7:5b:a5:81:42:b5:01:00:
- 57:87:29:a3:45:ce:f4:02:fa:80:8f:3b:8e:99:40:
- 2c:fc:c8:b0:8b:2b:19:c3:20:c6:af:db:a0:d9:d5:
- 70:32:6d:66:c3:ca:c4:ea:63:fb:08:0e:35:bc:50:
- 7f:85:c7:62:f4:e2:85:e4:89:59:52:71:f2:e3:d1:
- 63:3e:1d:08:6d:ff:86:cb:e5:eb:bc:1f:de:13:f0:
- b2:f8:92:ee:23:9d:64:e7:b0:49:6f:26:a2:64:bc:
- 9c:18:8a:f3:c6:db:83:a4:6c:b0:56:23:16:40:57:
- b0:95:5e:1b:3d:c5:3f:10:7a:84:e0:3e:bb:78:e8:
- 7d:c1:63:f3:fe:ee:af:16:db:ce:28:02:21:df:8b:
- ca:f3:c3:1e:d1:47:c0:59:5f:1c:48:ec:50:6a:e3:
- cc:fb:b6:16:45:40:c8:50:cf:dc:3e:2d:2d:cb:cd:
- 19:2a:17:74:41:7f:bc:26:4d:cd:97:b2:2b:67:57:
- 8e:6e:75:b5:d8:ec:6b:69:ab:09:3d:95:85:2c:0f:
- d7:8d:29:75:1f:9b:88:56:bc:e8:11:a3:c8:65:e5:
- 2b:23
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- D6:56:A1:9C:F1:66:E4:05:17:36:32:74:BA:72:97:50:13:58:B3:3D
- X509v3 Authority Key Identifier:
- keyid:A8:10:EA:C8:EF:4F:00:CD:E3:79:C3:EB:DF:F6:C8:86:9D:44:6C:26
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 72:8d:c5:a7:a8:d5:4a:bc:d9:72:ef:46:79:53:5c:e8:32:10:
- f5:29:ee:b0:6c:ef:68:80:a3:f6:0f:fe:ba:73:ce:a9:c4:93:
- 01:ba:78:eb:a9:4a:f3:32:e2:4c:74:6c:f7:23:c9:70:44:a1:
- d1:f7:59:d7:fd:34:12:ab:81:91:16:20:60:59:dd:ff:d5:6f:
- 1f:d6:25:d9:95:85:7f:9d:dc:18:49:39:44:43:03:03:98:db:
- 2e:03:a8:88:27:13:d2:a5:52:0e:15:a0:e5:5d:15:81:2b:3d:
- 1c:cb:41:58:46:d3:4f:37:be:ae:45:eb:7d:9c:52:91:50:98:
- a5:c1:e6:7b:1a:60:e0:d6:61:7e:88:19:b7:ec:8a:33:07:24:
- 04:9f:78:89:50:97:9c:a4:1e:15:fc:ef:bf:29:4d:c3:8c:19:
- d7:59:68:30:d2:08:d8:80:d8:7e:32:31:2b:ee:cf:7f:b4:47:
- a4:bb:7d:cf:b6:64:9d:55:5c:e9:44:0a:43:ed:3b:c2:ae:1d:
- 34:1c:bf:7e:5b:91:8c:26:76:fb:68:d9:3e:6b:68:22:ae:60:
- 56:d3:4e:f3:b7:d1:de:da:47:03:2e:22:74:85:ea:52:de:22:
- fd:90:55:21:8d:b2:e4:35:c3:15:44:f6:1a:01:3c:0a:56:f8:
- 89:98:59:4a
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluQS1JQ0ExLXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOFoXDTIyMDcwNzAwMjgwOFowgZoxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRYwFAYDVQQD
-DA1jaGFpbkEtZW50aXR5MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29t
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0HrYyGxPpc1yJYf/EqNl
-Dh0feLLXGmWh5069BbUFPjk+ha2Qx1ulgUK1AQBXhymjRc70AvqAjzuOmUAs/Miw
-iysZwyDGr9ug2dVwMm1mw8rE6mP7CA41vFB/hcdi9OKF5IlZUnHy49FjPh0Ibf+G
-y+XrvB/eE/Cy+JLuI51k57BJbyaiZLycGIrzxtuDpGywViMWQFewlV4bPcU/EHqE
-4D67eOh9wWPz/u6vFtvOKAIh34vK88Me0UfAWV8cSOxQauPM+7YWRUDIUM/cPi0t
-y80ZKhd0QX+8Jk3Nl7IrZ1eObnW12OxraasJPZWFLA/XjSl1H5uIVrzoEaPIZeUr
-IwIDAQABo4HxMIHuMB0GA1UdDgQWBBTWVqGc8WbkBRc2MnS6cpdQE1izPTCBwQYD
-VR0jBIG5MIG2gBSoEOrI708AzeN5w+vf9siGnURsJqGBmqSBlzCBlDELMAkGA1UE
-BhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNV
-BAoMCFNhd3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cu
-d29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CAWQw
-CQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAco3Fp6jVSrzZcu9GeVNc6DIQ
-9SnusGzvaICj9g/+unPOqcSTAbp466lK8zLiTHRs9yPJcESh0fdZ1/00EquBkRYg
-YFnd/9VvH9Yl2ZWFf53cGEk5REMDA5jbLgOoiCcT0qVSDhWg5V0VgSs9HMtBWEbT
-Tze+rkXrfZxSkVCYpcHmexpg4NZhfogZt+yKMwckBJ94iVCXnKQeFfzvvylNw4wZ
-11loMNII2IDYfjIxK+7Pf7RHpLt9z7ZknVVc6UQKQ+07wq4dNBy/fluRjCZ2+2jZ
-PmtoIq5gVtNO87fR3tpHAy4idIXqUt4i/ZBVIY2y5DXDFUT2GgE8Clb4iZhZSg==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:08 2019 GMT
- Not After : Jul 7 00:28:08 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainA-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:b2:2b:a1:3f:be:c0:58:bd:3a:bc:0d:19:ac:ca:
- 7f:b9:3b:f0:8c:30:ff:04:b1:34:7e:26:86:96:36:
- 6b:53:2e:44:1d:a1:f4:bc:51:79:55:05:ca:bb:a0:
- a7:9d:33:01:93:96:14:67:ec:f4:c3:2e:66:27:d1:
- 41:68:34:ac:8d:64:63:d8:55:86:9d:62:24:99:ed:
- b7:ff:cb:4d:9d:40:54:d5:e3:aa:45:a6:a6:db:fe:
- 73:42:94:42:c1:d0:32:5c:c4:21:ae:9c:93:00:b7:
- 4a:1f:9e:95:a6:28:6d:4b:d8:c0:65:e7:ed:a3:6d:
- ca:18:b3:fa:df:c9:67:1a:75:23:60:83:a5:03:5f:
- 61:bd:e5:d6:8d:9d:05:47:23:7e:a0:8d:d1:7f:42:
- 4e:38:ac:ce:70:bc:bf:7b:05:5b:0f:82:02:b0:9a:
- 8d:c0:14:ca:d0:45:5e:97:10:d1:a1:e1:23:da:dc:
- 69:9c:ce:53:cc:68:89:c6:40:4d:69:bc:ab:4f:c7:
- 11:5e:62:a2:df:e2:a5:34:7c:39:36:27:67:34:11:
- 04:2c:2a:b3:16:db:8e:fd:d7:7b:1d:93:5f:33:c2:
- ca:96:22:2a:43:82:8a:48:46:07:13:ff:6c:1c:b0:
- ba:0b:f0:cd:3f:4c:dc:34:17:8f:22:70:69:9d:22:
- d7:c7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- A8:10:EA:C8:EF:4F:00:CD:E3:79:C3:EB:DF:F6:C8:86:9D:44:6C:26
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:0
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 2a:15:34:be:88:ed:0b:5d:97:b4:c0:9e:f7:45:a2:ba:bb:a0:
- 7f:a0:b3:93:15:79:38:27:36:25:91:5d:73:10:bb:d0:f9:f3:
- e9:5f:98:c6:9b:6b:da:08:60:48:3e:26:17:2b:ae:22:08:ac:
- 10:ed:a1:28:65:96:7f:94:75:c8:da:6c:c9:f6:4c:4c:b1:a3:
- 45:4b:74:c7:de:49:f6:c1:1c:2c:eb:41:3c:2d:56:52:75:5b:
- 7c:13:c0:dc:41:34:02:c0:e5:5e:79:71:65:ac:d1:f3:36:f7:
- 55:d5:13:8f:0a:42:49:d9:fc:7f:5c:a4:cb:ad:7b:72:2f:98:
- e2:56:92:9e:11:1a:b2:9d:5b:b9:2c:14:1e:51:f5:c5:b7:2c:
- c2:39:52:90:0f:4e:04:5e:59:23:6f:d8:f9:75:2b:54:b0:6e:
- 98:0a:54:3a:45:fd:9a:63:31:ce:a3:a8:ae:7b:be:03:81:a5:
- 18:d3:00:51:a4:29:d4:f7:8d:53:31:72:85:80:c0:62:71:06:
- 2b:07:b6:0a:b2:12:cf:2b:bd:99:34:6b:5e:ea:94:0c:1a:e8:
- 2b:ee:e5:d6:3d:cb:7a:f6:f8:6e:e4:e2:f4:25:07:13:11:b1:
- 18:b3:75:29:40:dc:bc:31:57:37:71:7c:09:bb:74:1c:9e:b4:
- 3e:1d:47:20
------BEGIN CERTIFICATE-----
-MIIEwTCCA6mgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA4WhcNMjIwNzA3MDAyODA4WjCBoTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNoYWluQS1JQ0Ex
-LXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsiuhP77AWL06vA0ZrMp/uTvwjDD/
-BLE0fiaGljZrUy5EHaH0vFF5VQXKu6CnnTMBk5YUZ+z0wy5mJ9FBaDSsjWRj2FWG
-nWIkme23/8tNnUBU1eOqRaam2/5zQpRCwdAyXMQhrpyTALdKH56VpihtS9jAZeft
-o23KGLP638lnGnUjYIOlA19hveXWjZ0FRyN+oI3Rf0JOOKzOcLy/ewVbD4ICsJqN
-wBTK0EVelxDRoeEj2txpnM5TzGiJxkBNabyrT8cRXmKi3+KlNHw5NidnNBEELCqz
-FtuO/dd7HZNfM8LKliIqQ4KKSEYHE/9sHLC6C/DNP0zcNBePInBpnSLXxwIDAQAB
-o4IBDTCCAQkwHQYDVR0OBBYEFKgQ6sjvTwDN43nD69/2yIadRGwmMIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MA8GA1UdEwQIMAYBAf8CAQAwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUA
-A4IBAQAqFTS+iO0LXZe0wJ73RaK6u6B/oLOTFXk4JzYlkV1zELvQ+fPpX5jGm2va
-CGBIPiYXK64iCKwQ7aEoZZZ/lHXI2mzJ9kxMsaNFS3TH3kn2wRws60E8LVZSdVt8
-E8DcQTQCwOVeeXFlrNHzNvdV1ROPCkJJ2fx/XKTLrXtyL5jiVpKeERqynVu5LBQe
-UfXFtyzCOVKQD04EXlkjb9j5dStUsG6YClQ6Rf2aYzHOo6iue74DgaUY0wBRpCnU
-941TMXKFgMBicQYrB7YKshLPK72ZNGte6pQMGugr7uXWPct69vhu5OL0JQcTEbEY
-s3UpQNy8MVc3cXwJu3QcnrQ+HUcg
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-entity-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-entity-key.pem
deleted file mode 100644
index 59730e1a2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-entity-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpQIBAAKCAQEA0HrYyGxPpc1yJYf/EqNlDh0feLLXGmWh5069BbUFPjk+ha2Q
-x1ulgUK1AQBXhymjRc70AvqAjzuOmUAs/MiwiysZwyDGr9ug2dVwMm1mw8rE6mP7
-CA41vFB/hcdi9OKF5IlZUnHy49FjPh0Ibf+Gy+XrvB/eE/Cy+JLuI51k57BJbyai
-ZLycGIrzxtuDpGywViMWQFewlV4bPcU/EHqE4D67eOh9wWPz/u6vFtvOKAIh34vK
-88Me0UfAWV8cSOxQauPM+7YWRUDIUM/cPi0ty80ZKhd0QX+8Jk3Nl7IrZ1eObnW1
-2OxraasJPZWFLA/XjSl1H5uIVrzoEaPIZeUrIwIDAQABAoIBAQCpeFMkiTctlpYF
-gEmOwxfwoyfkG6zTnm4/8zegnggHDs2OKQsZo5wkOS+eAsMj8mrw4kxk53D9/fHr
-DcoEKreoSX8FqW0ZozVcHi64L0psOjZcOq3jXHm9/MnM28nLOyCQKD5d0JcbLii4
-Yy1pDWBr+xjnshf6qZ0yh23hsZ5G3wUadf4CwFfEeTdUFw4vOAZRPdKQqGooR6NW
-u7C6NWcrcoilX3tpcz6W+5TFfth0Uuyd10K9oBiGoQIx/qQcGg4wHVi+Si8PkRbX
-9cRxOeJ6ozmoNikfTB6RUcAnCWJC3CtFZQHUX+CpBXc1pbQMKRGyo5WhqX32BI/s
-8CE9pVYRAoGBAOfDlJMe6rPeP8e0s0Zc/tV2NCOZzhO8WLlPSnt731PXVooRjfPy
-65gq6v7Wg6vdoniFC+NxVmeTTrTAPSuts8tqCKXq59CSoGkj1rxEsCgnEZJXtjZU
-HUrukCyTPksnEjsOSR1obh7NUABut4ZVFMs6s2DSadyV4a9dw7y2zbrvAoGBAOZH
-8Nt1OlCxJ2lmbADHRQCNW48oiWNB05xQkii0ZdOMKWHBbKkJa0JW67ru6issvzTe
-RbzVcBQsipECTGFTmeJShTWs9yZPeOObIMHo8mEuzRf0n6W3O2AdB/XqGjO1idR/
-VyBiuP8Ttc5ofVyGg7tpPfYPcJ9s2MVi56MhXCMNAoGAWaafJ1XTRiaXl2G/41z/
-uoTR4F+ThrDZxTz1u9SL6/ulXx0xQwdZuPAJHPDP2ECQo3wbwCxMVx51WJfwUaAM
-p4fptnyqlVTStjkFzKfpWG7cbjZ9poBdIGot3QBMHXgMpkl9YOHPjxyucKxjU5Q/
-yel4D+D00D4uIc7sc2hnJoMCgYEAhJsKxKVF1m+dPWGgcfZN8tpzzgVO0Bx46buv
-3sa7GE3PCp7inphw7nu1NSkdKY2T8bLJP8s8xjE7/fLv3t/QbnaMhPM8QxBikdaj
-z2YAJRxZOCFCyZ+xDlDJY7/SJNK2Muq9VkXjN+e2usyK2/wN4Z7h8k7D0NpSHaAt
-uU+digUCgYEAiU2KYqosro3lzNh5vLc5ad/ZsE4m9RHf5AixXb3cf8CnAavczkPr
-/X2k81+7Vbq7nv6WD9kMtaAfaYUU5tkqzlLO4i51IYXfzgyUNW4//wSMYqPDvhEt
-M7+tIdaUTubZ8IhrCwgqHbs7VHejoWnFfIA2kgvWtR5m0UrXg0hGAmM=
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-entity.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-entity.pem
deleted file mode 100644
index 277c4a644..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainA-entity.pem
+++ /dev/null
@@ -1,86 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainA-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:08 2019 GMT
- Not After : Jul 7 00:28:08 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainA-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d0:7a:d8:c8:6c:4f:a5:cd:72:25:87:ff:12:a3:
- 65:0e:1d:1f:78:b2:d7:1a:65:a1:e7:4e:bd:05:b5:
- 05:3e:39:3e:85:ad:90:c7:5b:a5:81:42:b5:01:00:
- 57:87:29:a3:45:ce:f4:02:fa:80:8f:3b:8e:99:40:
- 2c:fc:c8:b0:8b:2b:19:c3:20:c6:af:db:a0:d9:d5:
- 70:32:6d:66:c3:ca:c4:ea:63:fb:08:0e:35:bc:50:
- 7f:85:c7:62:f4:e2:85:e4:89:59:52:71:f2:e3:d1:
- 63:3e:1d:08:6d:ff:86:cb:e5:eb:bc:1f:de:13:f0:
- b2:f8:92:ee:23:9d:64:e7:b0:49:6f:26:a2:64:bc:
- 9c:18:8a:f3:c6:db:83:a4:6c:b0:56:23:16:40:57:
- b0:95:5e:1b:3d:c5:3f:10:7a:84:e0:3e:bb:78:e8:
- 7d:c1:63:f3:fe:ee:af:16:db:ce:28:02:21:df:8b:
- ca:f3:c3:1e:d1:47:c0:59:5f:1c:48:ec:50:6a:e3:
- cc:fb:b6:16:45:40:c8:50:cf:dc:3e:2d:2d:cb:cd:
- 19:2a:17:74:41:7f:bc:26:4d:cd:97:b2:2b:67:57:
- 8e:6e:75:b5:d8:ec:6b:69:ab:09:3d:95:85:2c:0f:
- d7:8d:29:75:1f:9b:88:56:bc:e8:11:a3:c8:65:e5:
- 2b:23
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- D6:56:A1:9C:F1:66:E4:05:17:36:32:74:BA:72:97:50:13:58:B3:3D
- X509v3 Authority Key Identifier:
- keyid:A8:10:EA:C8:EF:4F:00:CD:E3:79:C3:EB:DF:F6:C8:86:9D:44:6C:26
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 72:8d:c5:a7:a8:d5:4a:bc:d9:72:ef:46:79:53:5c:e8:32:10:
- f5:29:ee:b0:6c:ef:68:80:a3:f6:0f:fe:ba:73:ce:a9:c4:93:
- 01:ba:78:eb:a9:4a:f3:32:e2:4c:74:6c:f7:23:c9:70:44:a1:
- d1:f7:59:d7:fd:34:12:ab:81:91:16:20:60:59:dd:ff:d5:6f:
- 1f:d6:25:d9:95:85:7f:9d:dc:18:49:39:44:43:03:03:98:db:
- 2e:03:a8:88:27:13:d2:a5:52:0e:15:a0:e5:5d:15:81:2b:3d:
- 1c:cb:41:58:46:d3:4f:37:be:ae:45:eb:7d:9c:52:91:50:98:
- a5:c1:e6:7b:1a:60:e0:d6:61:7e:88:19:b7:ec:8a:33:07:24:
- 04:9f:78:89:50:97:9c:a4:1e:15:fc:ef:bf:29:4d:c3:8c:19:
- d7:59:68:30:d2:08:d8:80:d8:7e:32:31:2b:ee:cf:7f:b4:47:
- a4:bb:7d:cf:b6:64:9d:55:5c:e9:44:0a:43:ed:3b:c2:ae:1d:
- 34:1c:bf:7e:5b:91:8c:26:76:fb:68:d9:3e:6b:68:22:ae:60:
- 56:d3:4e:f3:b7:d1:de:da:47:03:2e:22:74:85:ea:52:de:22:
- fd:90:55:21:8d:b2:e4:35:c3:15:44:f6:1a:01:3c:0a:56:f8:
- 89:98:59:4a
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluQS1JQ0ExLXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOFoXDTIyMDcwNzAwMjgwOFowgZoxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRYwFAYDVQQD
-DA1jaGFpbkEtZW50aXR5MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29t
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0HrYyGxPpc1yJYf/EqNl
-Dh0feLLXGmWh5069BbUFPjk+ha2Qx1ulgUK1AQBXhymjRc70AvqAjzuOmUAs/Miw
-iysZwyDGr9ug2dVwMm1mw8rE6mP7CA41vFB/hcdi9OKF5IlZUnHy49FjPh0Ibf+G
-y+XrvB/eE/Cy+JLuI51k57BJbyaiZLycGIrzxtuDpGywViMWQFewlV4bPcU/EHqE
-4D67eOh9wWPz/u6vFtvOKAIh34vK88Me0UfAWV8cSOxQauPM+7YWRUDIUM/cPi0t
-y80ZKhd0QX+8Jk3Nl7IrZ1eObnW12OxraasJPZWFLA/XjSl1H5uIVrzoEaPIZeUr
-IwIDAQABo4HxMIHuMB0GA1UdDgQWBBTWVqGc8WbkBRc2MnS6cpdQE1izPTCBwQYD
-VR0jBIG5MIG2gBSoEOrI708AzeN5w+vf9siGnURsJqGBmqSBlzCBlDELMAkGA1UE
-BhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNV
-BAoMCFNhd3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cu
-d29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CAWQw
-CQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAco3Fp6jVSrzZcu9GeVNc6DIQ
-9SnusGzvaICj9g/+unPOqcSTAbp466lK8zLiTHRs9yPJcESh0fdZ1/00EquBkRYg
-YFnd/9VvH9Yl2ZWFf53cGEk5REMDA5jbLgOoiCcT0qVSDhWg5V0VgSs9HMtBWEbT
-Tze+rkXrfZxSkVCYpcHmexpg4NZhfogZt+yKMwckBJ94iVCXnKQeFfzvvylNw4wZ
-11loMNII2IDYfjIxK+7Pf7RHpLt9z7ZknVVc6UQKQ+07wq4dNBy/fluRjCZ2+2jZ
-PmtoIq5gVtNO87fR3tpHAy4idIXqUt4i/ZBVIY2y5DXDFUT2GgE8Clb4iZhZSg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA1-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA1-key.pem
deleted file mode 100644
index ee660fb61..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA1-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAsveqrpHRJEFSoSLg05eb4AyUnErks4WuqUOf7HoF3Yhc5RlS
-UzmGirLihierA5q+xFRnr7msZeJhl3hmYCmQYghikaCWKw8wbNo9cDVSqKfVhUkl
-alZZvGtFkcM3/AYNoqlG4imCG3emSTX7V18zApLla2fCYeI3nBJctSybKqWFlyJz
-PTZQVRpqWdnarC0/5mqxHWBSAwVAX88GaPAyhlpvtQJj5i4enwmCjAMYGeR51TVu
-2RefPMHZO5X5b/MZ0dO4XXyTN8N8O6BYx/vlLfVY05ty80N6Kexr9IaByOZgiyvF
-rVnlpKAFlwkCAKdV3Fvv5IuDGu7IHLW25mFr0QIDAQABAoIBAAqE3BdeorhKzpyB
-/EzzgEnu810sWbzjgpyYSPIRSf73YN5mWpxhqTLFyOKxui+ADO5lN6Lwet2SLMJG
-ZV4Jk17vtztwAOOPBP2g5jOOLsmS883dusFBSgz1ESW8H7JEeNCyumPYpLkQk0mC
-Tr+X7Nud3rYtZxNxxGr7+U78zDH5Z3G7CErHyZ27+wks/IjxZhvnjVByEjAo+wkK
-wVm40vDj8QmdTG8z+1OSqCM5lY/k0VibuZyvQ9gbsXIpzPqxsd2HnrJSf4gShtBR
-L6OV2QQFW923PxWCwG26rPdT4vVSDlBuPQ6BjFKsvjnsonxZYnNTSMAKFM+E0OSV
-C6EmRwECgYEA2sY94Dt6FoYWPBYGioiNlDJ20lUal1s64yjrNjA209V1s1FYJIhN
-utMQNqq+DwkQoLcy7TV/cleRs5lPp1nM++w+6HoMLqUUzPhygmLcvh9f7r/VLpUm
-+8encqEOcUsr6V0fVt2s/Wj7611rzR1tXVklxEbWwke4libinDT//HkCgYEA0Wtx
-3VIDLXqj5Z1pIX1ZBXgHdgsJvbJ6qrQ+1gnK3vnOixsz0HrTMh10IcC5J0XWKIHk
-ldC6bt0+ZhvP0Jdu6yx19cYeIFkgATd7duicllFqn05RPwAmM2LcUj95gew/rHKY
-9hJ+Mqb3x+eL5maO2ij6Wi6qEDQiOuffUZM25BkCgYEAwE5SRbECeJoVIWwbA9tU
-2Fgjqm+0mCdRdCyb1V48U6jndWCjojlOWlL9hZBA0Oae/ycKVQkZpmDjaoPxSKHf
-VfMsuR3PZ5Ek36fkwEg20ciygyONOQ1S3y95OYHpOB1j1BZPXgQt8/M8vn+4Ku0b
-HVsnn4jFbrGsyBAWUkkkW8ECgYAljymq0gyz2W0Pv32dfge7TV25NB2ZIiuR9iXW
-6YazGwaKOGTAnWbHdDTh4NjUTFguh61hmT/2pkOMuKw68w33q8+0NsYscw+kaDkC
-iJGc/BktXTSBIhu316FANxYp0R9SZHM+nu53Uy7ZcZPLzNUOF49fIUNrCI6jFfcd
-gFO18QKBgQCJL8qVYFIh5A8IicIM1fD17QiKPHI06f0KOXqQU33VLdGLRGwYruTh
-NTlcvzevFMxEDyS7rhZk30PmNP9XpAVtoFYIdhJbA0Xnf2H8R1sN+zYZV/YgU1Og
-E+pE9ay8jKsrmr1mvVVomPAtz0/yvZLsEt6ymL2tQm1A5CraeVhMTA==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA1-pathlen0.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA1-pathlen0.pem
deleted file mode 100644
index 138560784..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA1-pathlen0.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainB-ICA2-pathlen1, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:08 2019 GMT
- Not After : Jul 7 00:28:08 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainB-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:b2:f7:aa:ae:91:d1:24:41:52:a1:22:e0:d3:97:
- 9b:e0:0c:94:9c:4a:e4:b3:85:ae:a9:43:9f:ec:7a:
- 05:dd:88:5c:e5:19:52:53:39:86:8a:b2:e2:86:27:
- ab:03:9a:be:c4:54:67:af:b9:ac:65:e2:61:97:78:
- 66:60:29:90:62:08:62:91:a0:96:2b:0f:30:6c:da:
- 3d:70:35:52:a8:a7:d5:85:49:25:6a:56:59:bc:6b:
- 45:91:c3:37:fc:06:0d:a2:a9:46:e2:29:82:1b:77:
- a6:49:35:fb:57:5f:33:02:92:e5:6b:67:c2:61:e2:
- 37:9c:12:5c:b5:2c:9b:2a:a5:85:97:22:73:3d:36:
- 50:55:1a:6a:59:d9:da:ac:2d:3f:e6:6a:b1:1d:60:
- 52:03:05:40:5f:cf:06:68:f0:32:86:5a:6f:b5:02:
- 63:e6:2e:1e:9f:09:82:8c:03:18:19:e4:79:d5:35:
- 6e:d9:17:9f:3c:c1:d9:3b:95:f9:6f:f3:19:d1:d3:
- b8:5d:7c:93:37:c3:7c:3b:a0:58:c7:fb:e5:2d:f5:
- 58:d3:9b:72:f3:43:7a:29:ec:6b:f4:86:81:c8:e6:
- 60:8b:2b:c5:ad:59:e5:a4:a0:05:97:09:02:00:a7:
- 55:dc:5b:ef:e4:8b:83:1a:ee:c8:1c:b5:b6:e6:61:
- 6b:d1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- D7:90:E4:86:59:24:F9:2B:B8:06:8E:B1:8F:33:E5:2C:63:F1:03:16
- X509v3 Authority Key Identifier:
- keyid:EE:59:9D:56:0B:7C:0A:45:44:E3:15:57:E2:B2:F3:1D:64:6F:AF:7A
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:0
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- cd:0b:7e:66:b9:1d:a8:14:81:a8:e0:b3:74:d9:79:8a:c1:e5:
- 15:cf:6a:a7:a3:ca:d2:ad:f8:f6:9f:c2:be:67:ee:cf:9a:3c:
- 1c:a3:c4:db:2b:c8:a9:b1:55:94:a1:9e:e3:c2:6c:3a:95:90:
- 7e:8f:29:56:c6:99:d2:e5:3b:8f:f3:9a:11:4a:97:22:07:d9:
- e2:e5:f8:3e:0f:08:50:43:ea:66:13:6c:20:2e:71:95:10:07:
- 88:89:2d:30:9c:96:b1:7e:42:5f:63:c3:8b:71:c6:1d:00:ee:
- 83:d7:80:1b:fa:f4:fe:f5:b1:29:f8:c1:ca:1d:89:9b:7c:2a:
- 84:00:e4:f5:04:2d:35:be:12:c1:fa:78:cb:bc:c9:04:8a:bf:
- 87:57:99:3a:9f:0a:88:a5:e8:94:db:2b:8f:ba:5f:b4:75:7f:
- ac:56:75:b4:db:7f:57:24:17:cb:89:f8:cb:8b:c4:b2:44:4a:
- d9:57:82:fb:ce:0c:84:e2:2b:a5:f2:90:63:aa:b3:c5:e1:00:
- 22:60:8f:23:1f:a8:97:4b:49:f7:f7:cb:92:f7:94:80:52:5b:
- 8d:4a:c1:f1:d1:3e:9f:28:96:61:af:8e:72:8d:b6:9e:14:ed:
- 14:db:ea:f0:fc:50:39:ca:c8:ab:1e:49:c3:9e:97:0a:d7:1c:
- 6f:b2:17:9a
------BEGIN CERTIFICATE-----
-MIIExjCCA66gAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluQi1JQ0EyLXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOFoXDTIyMDcwNzAwMjgwOFowgaExCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR0wGwYDVQQD
-DBRjaGFpbkItSUNBMS1wYXRobGVuMDEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xm
-c3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALL3qq6R0SRB
-UqEi4NOXm+AMlJxK5LOFrqlDn+x6Bd2IXOUZUlM5hoqy4oYnqwOavsRUZ6+5rGXi
-YZd4ZmApkGIIYpGglisPMGzaPXA1Uqin1YVJJWpWWbxrRZHDN/wGDaKpRuIpght3
-pkk1+1dfMwKS5WtnwmHiN5wSXLUsmyqlhZcicz02UFUaalnZ2qwtP+ZqsR1gUgMF
-QF/PBmjwMoZab7UCY+YuHp8JgowDGBnkedU1btkXnzzB2TuV+W/zGdHTuF18kzfD
-fDugWMf75S31WNObcvNDeinsa/SGgcjmYIsrxa1Z5aSgBZcJAgCnVdxb7+SLgxru
-yBy1tuZha9ECAwEAAaOCAQUwggEBMB0GA1UdDgQWBBTXkOSGWST5K7gGjrGPM+Us
-Y/EDFjCBwQYDVR0jBIG5MIG2gBTuWZ1WC3wKRUTjFVfisvMdZG+veqGBmqSBlzCB
-lDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVt
-YW4xETAPBgNVBAoMCFNhd3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYD
-VQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb22CAWQwDwYDVR0TBAgwBgEB/wIBADALBgNVHQ8EBAMCAQYwDQYJKoZIhvcN
-AQELBQADggEBAM0Lfma5HagUgajgs3TZeYrB5RXPaqejytKt+Pafwr5n7s+aPByj
-xNsryKmxVZShnuPCbDqVkH6PKVbGmdLlO4/zmhFKlyIH2eLl+D4PCFBD6mYTbCAu
-cZUQB4iJLTCclrF+Ql9jw4txxh0A7oPXgBv69P71sSn4wcodiZt8KoQA5PUELTW+
-EsH6eMu8yQSKv4dXmTqfCoil6JTbK4+6X7R1f6xWdbTbf1ckF8uJ+MuLxLJEStlX
-gvvODITiK6XykGOqs8XhACJgjyMfqJdLSff3y5L3lIBSW41KwfHRPp8olmGvjnKN
-tp4U7RTb6vD8UDnKyKseScOelwrXHG+yF5o=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA2-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA2-key.pem
deleted file mode 100644
index 14062373a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA2-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEA0H+CBZ1bxEngPh+HbhcF6+IK0dGl9cy+HUbYzahuIs49XDlx
-pA0D+nh+u2zoUeWY76ZeYtIw+juPIV+3X5i3n6hWejnKwt+hVv6Vl1ZeW/502fIu
-yn7bUHda0ZDcItb+S8BXocY7SrqtBRTJJGh2teIm1ctQ/dB3DowMuV73pJpFNWxi
-yuk41BCaXDClTyZHAwNzVoWMvvXQwAkGPg7o5X3QGVTtV+xRz7yVFZHP0JqE3YpQ
-fDPCGmFwMZoZFyizjNpfuNIGa4I/tmooKYa0IMulr3Nm5Dc2gfA/rb8FuNsuxCLi
-60aH9GDRpn/unEGn86rpN93a1vDNSKxR0XeNoQIDAQABAoIBAQCGBNAA5+squwnn
-JMEa5LWrr/qgcBArdVXm37lQSKmyubr7YvlHKA6cm4Nq2lBjBCBQOzKEdvOAhXQ1
-UZ8/VZ0ChWRA4JESvkio8LAbPSseGuvlhCTLiMtUZ8P63RCDXIrNCm/JzvAh0uiQ
-UZIRUwyrURkBZ9VBsRQ2R5OOPBsWs+FpVbx9w7Zvkq2shFDbqTm8bCPbM9huCNZb
-Z01Zp9+j5MfxzK4tgkKct3fbNOKzKGmOivloMQFY1fABWHg6dsvT/EprqBYcuRfy
-gf1a4wJM22Zkv6+7rN3qmly0bEriVLlkw+dbGawEScCnI9+ormrQG9B22ynUFj0c
-nK+odMk5AoGBAPhxZ5jZI9APgXcdWhgThSCtzmm9sHyUEBEkVYWqtc4qnBGREB9e
-cuDDOTCppc8fJvDo+MnrEHxIIhBdMCMAg1JIEOXgDNzgBPb7y/43qQLV9bYfHJ7P
-jvYeZ/S7PASK0lYjFq+1BlTa7m47ajwA/fwgW1Z6aga4dEm+LOpwaAw3AoGBANbX
-Dpw/lHOgLOa/Zz/AUHmdQcXwiZbGJSdRI2yKOaE6TUvOman/WrDy4UQyej3gT4M8
-3pUYl34Cn/gl8K3QpRMHT7C11iF1IX4vS/eSvxf7fwCwG+3MaP4LEuOiJ84a2ILo
-8WM20/L8unGb1+0WlzV0TJFTe97RtYViHHG3G7jnAoGAGWkH7oMu/YXIeRVgdJvy
-ftAoD3qeRW+jYQ11TdGS/L4w7j8HBh5T45c0Dz0av19xTSyW3ZgUPJHoIgJV/Q59
-X/oM+GX9Cs5C07wXNi4dNDQMCI+QDtItzhB4E3je/5vvPW4jUN9UAXPO9SlQiUiU
-safhj6u/kmZlRnGUCHpsuesCgYBIUbpkVG63gWq7/iBWcHlmhs42QGNActDc7E49
-YkZGBKcyZoiJliDEQe4ck9VccN6zMdFHZTDRxTZuRO9Aw2ReBG8J8Bv1xUUSAf/T
-hf13qDw3UhEEunN5WObx44r8sULCxoFDQZiVSgfE6I4GDD24S77eiLjA59zv2nfy
-u43EbwKBgQDpH5SnH3GEqWAyDpehK2gK2f5Ho7ZPANo5Z0lllv7Ic+7aHWBAEiiq
-vtRTvtl4GXzjvOuhcb3hPYft+YPTj8L8V1a2Bac4Ohxq73diwbTFgS1D4owJ/1jc
-0mnPyANCeoe85znU1D1FGveQfBYqUSRiX9iEQsN42C1GPR/xBhm6oQ==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA2-pathlen1.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA2-pathlen1.pem
deleted file mode 100644
index 5197a077d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-ICA2-pathlen1.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:08 2019 GMT
- Not After : Jul 7 00:28:08 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainB-ICA2-pathlen1, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d0:7f:82:05:9d:5b:c4:49:e0:3e:1f:87:6e:17:
- 05:eb:e2:0a:d1:d1:a5:f5:cc:be:1d:46:d8:cd:a8:
- 6e:22:ce:3d:5c:39:71:a4:0d:03:fa:78:7e:bb:6c:
- e8:51:e5:98:ef:a6:5e:62:d2:30:fa:3b:8f:21:5f:
- b7:5f:98:b7:9f:a8:56:7a:39:ca:c2:df:a1:56:fe:
- 95:97:56:5e:5b:fe:74:d9:f2:2e:ca:7e:db:50:77:
- 5a:d1:90:dc:22:d6:fe:4b:c0:57:a1:c6:3b:4a:ba:
- ad:05:14:c9:24:68:76:b5:e2:26:d5:cb:50:fd:d0:
- 77:0e:8c:0c:b9:5e:f7:a4:9a:45:35:6c:62:ca:e9:
- 38:d4:10:9a:5c:30:a5:4f:26:47:03:03:73:56:85:
- 8c:be:f5:d0:c0:09:06:3e:0e:e8:e5:7d:d0:19:54:
- ed:57:ec:51:cf:bc:95:15:91:cf:d0:9a:84:dd:8a:
- 50:7c:33:c2:1a:61:70:31:9a:19:17:28:b3:8c:da:
- 5f:b8:d2:06:6b:82:3f:b6:6a:28:29:86:b4:20:cb:
- a5:af:73:66:e4:37:36:81:f0:3f:ad:bf:05:b8:db:
- 2e:c4:22:e2:eb:46:87:f4:60:d1:a6:7f:ee:9c:41:
- a7:f3:aa:e9:37:dd:da:d6:f0:cd:48:ac:51:d1:77:
- 8d:a1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- EE:59:9D:56:0B:7C:0A:45:44:E3:15:57:E2:B2:F3:1D:64:6F:AF:7A
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:1
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- ab:c7:2b:9d:15:73:97:47:e0:88:32:9d:10:71:81:53:62:97:
- dc:c4:72:73:49:3e:50:50:10:03:1e:22:58:82:e0:b3:da:ca:
- 89:92:70:c8:54:0d:8e:a6:44:a0:26:5d:5d:52:d2:fb:63:e4:
- 13:7e:30:9a:13:25:4e:c8:34:a1:c9:e6:69:24:64:98:e3:88:
- 9c:86:18:62:53:70:ae:f0:d9:ed:f3:0c:e8:ec:5b:e5:27:85:
- 16:d0:b0:f6:bd:5d:9a:62:41:26:25:31:88:70:fe:25:97:48:
- f1:e6:21:1c:78:f7:68:03:59:21:db:f1:c5:92:96:24:b8:23:
- fc:ab:52:95:70:6a:52:16:4d:fc:36:6b:5f:58:4f:3f:c9:f4:
- e7:6e:52:41:42:99:41:07:c2:75:74:db:c2:49:84:7c:3f:c1:
- ac:bd:d4:d5:8f:d0:73:95:18:8a:5d:f0:8d:dd:2d:f0:b7:61:
- 8d:8a:ef:14:9f:fd:30:ba:10:e8:57:d3:1b:8e:2d:9b:74:b3:
- 63:0d:0e:8c:f9:a2:f7:42:c8:e6:5e:83:6f:0f:9a:85:3b:6e:
- 66:48:b9:a7:a8:fc:da:19:47:0c:90:26:0d:ce:15:fe:6a:1e:
- 47:5a:49:f8:76:0f:3a:a8:68:cd:a6:38:4c:a6:ca:b2:b0:9b:
- c7:46:43:cd
------BEGIN CERTIFICATE-----
-MIIEwTCCA6mgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA4WhcNMjIwNzA3MDAyODA4WjCBoTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNoYWluQi1JQ0Ey
-LXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0H+CBZ1bxEngPh+HbhcF6+IK0dGl
-9cy+HUbYzahuIs49XDlxpA0D+nh+u2zoUeWY76ZeYtIw+juPIV+3X5i3n6hWejnK
-wt+hVv6Vl1ZeW/502fIuyn7bUHda0ZDcItb+S8BXocY7SrqtBRTJJGh2teIm1ctQ
-/dB3DowMuV73pJpFNWxiyuk41BCaXDClTyZHAwNzVoWMvvXQwAkGPg7o5X3QGVTt
-V+xRz7yVFZHP0JqE3YpQfDPCGmFwMZoZFyizjNpfuNIGa4I/tmooKYa0IMulr3Nm
-5Dc2gfA/rb8FuNsuxCLi60aH9GDRpn/unEGn86rpN93a1vDNSKxR0XeNoQIDAQAB
-o4IBDTCCAQkwHQYDVR0OBBYEFO5ZnVYLfApFROMVV+Ky8x1kb696MIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MA8GA1UdEwQIMAYBAf8CAQEwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUA
-A4IBAQCrxyudFXOXR+CIMp0QcYFTYpfcxHJzST5QUBADHiJYguCz2sqJknDIVA2O
-pkSgJl1dUtL7Y+QTfjCaEyVOyDShyeZpJGSY44ichhhiU3Cu8Nnt8wzo7FvlJ4UW
-0LD2vV2aYkEmJTGIcP4ll0jx5iEcePdoA1kh2/HFkpYkuCP8q1KVcGpSFk38Nmtf
-WE8/yfTnblJBQplBB8J1dNvCSYR8P8GsvdTVj9BzlRiKXfCN3S3wt2GNiu8Un/0w
-uhDoV9Mbji2bdLNjDQ6M+aL3QsjmXoNvD5qFO25mSLmnqPzaGUcMkCYNzhX+ah5H
-Wkn4dg86qGjNpjhMpsqysJvHRkPN
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-assembled.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-assembled.pem
deleted file mode 100644
index 7f83c5f55..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-assembled.pem
+++ /dev/null
@@ -1,265 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainB-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:08 2019 GMT
- Not After : Jul 7 00:28:08 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainB-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d7:5f:d9:3d:d7:5b:11:aa:3e:53:31:d0:32:78:
- 87:fb:c0:8e:80:6d:fc:68:73:1f:9c:77:66:16:35:
- fc:2f:d7:e4:ca:ba:2a:73:5f:14:94:12:f0:48:31:
- a2:40:ad:b4:e3:07:0c:02:47:b4:0a:07:69:d5:d2:
- 85:bf:c8:bc:14:8c:c7:87:ba:5f:87:c5:07:f4:df:
- a4:46:1e:b7:13:0f:9d:7e:f6:1a:7b:29:09:55:4c:
- 17:ee:c8:b0:9d:39:0c:89:6e:18:9c:06:7f:5d:95:
- d2:4c:71:b3:1f:ea:5d:d2:f6:2c:69:a8:16:15:59:
- e5:7d:03:d7:bd:1a:34:e3:f1:27:e3:b9:7d:68:e0:
- 39:3f:35:62:2f:20:20:fa:19:62:37:1a:30:47:6c:
- a3:f9:8e:9c:f3:67:2e:bb:38:4c:2e:0a:21:9b:70:
- b6:97:a2:1b:b3:98:0d:5b:74:97:33:f0:b8:6c:4e:
- ad:b4:1f:48:62:c9:9a:af:2d:a6:a1:06:ae:98:30:
- 54:5e:cb:dd:23:77:d5:ee:5c:fb:81:f0:2b:ad:6f:
- fa:e3:b1:0e:98:bd:3e:0b:f4:7c:c5:e3:50:bf:08:
- 9b:bf:be:f8:6a:d9:db:78:36:84:f2:7e:7b:7d:5e:
- a7:8f:42:81:5f:41:f4:77:5c:30:51:f5:3f:2d:25:
- 95:4d
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 7F:17:7E:8E:A8:2C:AD:9C:C7:22:7E:A6:C6:90:9E:63:C4:5F:33:9E
- X509v3 Authority Key Identifier:
- keyid:D7:90:E4:86:59:24:F9:2B:B8:06:8E:B1:8F:33:E5:2C:63:F1:03:16
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainB-ICA2-pathlen1/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 1f:ee:5c:85:ed:4e:3b:39:6b:29:a2:ef:65:b9:f3:c7:47:85:
- 8e:79:a0:35:1b:aa:0e:98:67:a8:df:03:9c:2b:81:24:ed:cb:
- cc:c0:42:49:76:bf:78:7b:b9:39:ca:f6:06:35:76:dd:e3:59:
- c5:70:3b:b3:cf:62:0a:09:1d:07:90:96:c4:0e:0a:38:97:f7:
- 31:1d:ad:44:f9:03:f9:30:22:b6:68:01:00:38:23:3d:f6:e7:
- 71:5a:e4:d4:59:52:4f:80:86:ec:8f:ca:92:1d:9b:07:93:fe:
- 34:22:ac:9a:a2:aa:9e:fe:f5:7b:99:fd:72:32:40:98:88:d8:
- 42:1d:33:59:4c:38:2e:97:f2:9d:a2:fc:b7:33:cd:84:c1:c6:
- ef:f5:c5:d9:be:32:ba:44:66:06:62:5c:55:31:38:b4:25:1a:
- 6a:64:de:14:39:b4:38:74:1b:d7:c4:ec:81:fc:3a:13:4b:e1:
- d1:b1:5f:3c:8e:25:bc:63:7f:30:78:04:4e:79:3a:83:97:52:
- f6:00:6a:9e:d8:b5:c6:06:21:97:4a:98:ee:cf:e8:83:94:23:
- 11:6c:00:d7:e9:35:1f:89:77:85:9a:d7:8f:29:90:c6:61:14:
- e5:7d:55:5b:66:65:60:44:79:8a:1b:58:88:b9:0f:5f:a6:5f:
- 7a:ca:6b:0c
------BEGIN CERTIFICATE-----
-MIIEtzCCA5+gAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluQi1JQ0ExLXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOFoXDTIyMDcwNzAwMjgwOFowgZoxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRYwFAYDVQQD
-DA1jaGFpbkItZW50aXR5MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29t
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA11/ZPddbEao+UzHQMniH
-+8COgG38aHMfnHdmFjX8L9fkyroqc18UlBLwSDGiQK204wcMAke0Cgdp1dKFv8i8
-FIzHh7pfh8UH9N+kRh63Ew+dfvYaeykJVUwX7siwnTkMiW4YnAZ/XZXSTHGzH+pd
-0vYsaagWFVnlfQPXvRo04/En47l9aOA5PzViLyAg+hliNxowR2yj+Y6c82cuuzhM
-Lgohm3C2l6Ibs5gNW3SXM/C4bE6ttB9IYsmary2moQaumDBUXsvdI3fV7lz7gfAr
-rW/647EOmL0+C/R8xeNQvwibv774atnbeDaE8n57fV6nj0KBX0H0d1wwUfU/LSWV
-TQIDAQABo4H+MIH7MB0GA1UdDgQWBBR/F36OqCytnMcifqbGkJ5jxF8znjCBzgYD
-VR0jBIHGMIHDgBTXkOSGWST5K7gGjrGPM+UsY/EDFqGBp6SBpDCBoTELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNV
-BAMMFGNoYWluQi1JQ0EyLXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tggFkMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAB/uXIXt
-Tjs5aymi72W588dHhY55oDUbqg6YZ6jfA5wrgSTty8zAQkl2v3h7uTnK9gY1dt3j
-WcVwO7PPYgoJHQeQlsQOCjiX9zEdrUT5A/kwIrZoAQA4Iz3253Fa5NRZUk+AhuyP
-ypIdmweT/jQirJqiqp7+9XuZ/XIyQJiI2EIdM1lMOC6X8p2i/LczzYTBxu/1xdm+
-MrpEZgZiXFUxOLQlGmpk3hQ5tDh0G9fE7IH8OhNL4dGxXzyOJbxjfzB4BE55OoOX
-UvYAap7YtcYGIZdKmO7P6IOUIxFsANfpNR+Jd4Wa148pkMZhFOV9VVtmZWBEeYob
-WIi5D1+mX3rKaww=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainB-ICA2-pathlen1, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:08 2019 GMT
- Not After : Jul 7 00:28:08 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainB-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:b2:f7:aa:ae:91:d1:24:41:52:a1:22:e0:d3:97:
- 9b:e0:0c:94:9c:4a:e4:b3:85:ae:a9:43:9f:ec:7a:
- 05:dd:88:5c:e5:19:52:53:39:86:8a:b2:e2:86:27:
- ab:03:9a:be:c4:54:67:af:b9:ac:65:e2:61:97:78:
- 66:60:29:90:62:08:62:91:a0:96:2b:0f:30:6c:da:
- 3d:70:35:52:a8:a7:d5:85:49:25:6a:56:59:bc:6b:
- 45:91:c3:37:fc:06:0d:a2:a9:46:e2:29:82:1b:77:
- a6:49:35:fb:57:5f:33:02:92:e5:6b:67:c2:61:e2:
- 37:9c:12:5c:b5:2c:9b:2a:a5:85:97:22:73:3d:36:
- 50:55:1a:6a:59:d9:da:ac:2d:3f:e6:6a:b1:1d:60:
- 52:03:05:40:5f:cf:06:68:f0:32:86:5a:6f:b5:02:
- 63:e6:2e:1e:9f:09:82:8c:03:18:19:e4:79:d5:35:
- 6e:d9:17:9f:3c:c1:d9:3b:95:f9:6f:f3:19:d1:d3:
- b8:5d:7c:93:37:c3:7c:3b:a0:58:c7:fb:e5:2d:f5:
- 58:d3:9b:72:f3:43:7a:29:ec:6b:f4:86:81:c8:e6:
- 60:8b:2b:c5:ad:59:e5:a4:a0:05:97:09:02:00:a7:
- 55:dc:5b:ef:e4:8b:83:1a:ee:c8:1c:b5:b6:e6:61:
- 6b:d1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- D7:90:E4:86:59:24:F9:2B:B8:06:8E:B1:8F:33:E5:2C:63:F1:03:16
- X509v3 Authority Key Identifier:
- keyid:EE:59:9D:56:0B:7C:0A:45:44:E3:15:57:E2:B2:F3:1D:64:6F:AF:7A
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:0
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- cd:0b:7e:66:b9:1d:a8:14:81:a8:e0:b3:74:d9:79:8a:c1:e5:
- 15:cf:6a:a7:a3:ca:d2:ad:f8:f6:9f:c2:be:67:ee:cf:9a:3c:
- 1c:a3:c4:db:2b:c8:a9:b1:55:94:a1:9e:e3:c2:6c:3a:95:90:
- 7e:8f:29:56:c6:99:d2:e5:3b:8f:f3:9a:11:4a:97:22:07:d9:
- e2:e5:f8:3e:0f:08:50:43:ea:66:13:6c:20:2e:71:95:10:07:
- 88:89:2d:30:9c:96:b1:7e:42:5f:63:c3:8b:71:c6:1d:00:ee:
- 83:d7:80:1b:fa:f4:fe:f5:b1:29:f8:c1:ca:1d:89:9b:7c:2a:
- 84:00:e4:f5:04:2d:35:be:12:c1:fa:78:cb:bc:c9:04:8a:bf:
- 87:57:99:3a:9f:0a:88:a5:e8:94:db:2b:8f:ba:5f:b4:75:7f:
- ac:56:75:b4:db:7f:57:24:17:cb:89:f8:cb:8b:c4:b2:44:4a:
- d9:57:82:fb:ce:0c:84:e2:2b:a5:f2:90:63:aa:b3:c5:e1:00:
- 22:60:8f:23:1f:a8:97:4b:49:f7:f7:cb:92:f7:94:80:52:5b:
- 8d:4a:c1:f1:d1:3e:9f:28:96:61:af:8e:72:8d:b6:9e:14:ed:
- 14:db:ea:f0:fc:50:39:ca:c8:ab:1e:49:c3:9e:97:0a:d7:1c:
- 6f:b2:17:9a
------BEGIN CERTIFICATE-----
-MIIExjCCA66gAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluQi1JQ0EyLXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOFoXDTIyMDcwNzAwMjgwOFowgaExCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR0wGwYDVQQD
-DBRjaGFpbkItSUNBMS1wYXRobGVuMDEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xm
-c3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALL3qq6R0SRB
-UqEi4NOXm+AMlJxK5LOFrqlDn+x6Bd2IXOUZUlM5hoqy4oYnqwOavsRUZ6+5rGXi
-YZd4ZmApkGIIYpGglisPMGzaPXA1Uqin1YVJJWpWWbxrRZHDN/wGDaKpRuIpght3
-pkk1+1dfMwKS5WtnwmHiN5wSXLUsmyqlhZcicz02UFUaalnZ2qwtP+ZqsR1gUgMF
-QF/PBmjwMoZab7UCY+YuHp8JgowDGBnkedU1btkXnzzB2TuV+W/zGdHTuF18kzfD
-fDugWMf75S31WNObcvNDeinsa/SGgcjmYIsrxa1Z5aSgBZcJAgCnVdxb7+SLgxru
-yBy1tuZha9ECAwEAAaOCAQUwggEBMB0GA1UdDgQWBBTXkOSGWST5K7gGjrGPM+Us
-Y/EDFjCBwQYDVR0jBIG5MIG2gBTuWZ1WC3wKRUTjFVfisvMdZG+veqGBmqSBlzCB
-lDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVt
-YW4xETAPBgNVBAoMCFNhd3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYD
-VQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb22CAWQwDwYDVR0TBAgwBgEB/wIBADALBgNVHQ8EBAMCAQYwDQYJKoZIhvcN
-AQELBQADggEBAM0Lfma5HagUgajgs3TZeYrB5RXPaqejytKt+Pafwr5n7s+aPByj
-xNsryKmxVZShnuPCbDqVkH6PKVbGmdLlO4/zmhFKlyIH2eLl+D4PCFBD6mYTbCAu
-cZUQB4iJLTCclrF+Ql9jw4txxh0A7oPXgBv69P71sSn4wcodiZt8KoQA5PUELTW+
-EsH6eMu8yQSKv4dXmTqfCoil6JTbK4+6X7R1f6xWdbTbf1ckF8uJ+MuLxLJEStlX
-gvvODITiK6XykGOqs8XhACJgjyMfqJdLSff3y5L3lIBSW41KwfHRPp8olmGvjnKN
-tp4U7RTb6vD8UDnKyKseScOelwrXHG+yF5o=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:08 2019 GMT
- Not After : Jul 7 00:28:08 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainB-ICA2-pathlen1, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d0:7f:82:05:9d:5b:c4:49:e0:3e:1f:87:6e:17:
- 05:eb:e2:0a:d1:d1:a5:f5:cc:be:1d:46:d8:cd:a8:
- 6e:22:ce:3d:5c:39:71:a4:0d:03:fa:78:7e:bb:6c:
- e8:51:e5:98:ef:a6:5e:62:d2:30:fa:3b:8f:21:5f:
- b7:5f:98:b7:9f:a8:56:7a:39:ca:c2:df:a1:56:fe:
- 95:97:56:5e:5b:fe:74:d9:f2:2e:ca:7e:db:50:77:
- 5a:d1:90:dc:22:d6:fe:4b:c0:57:a1:c6:3b:4a:ba:
- ad:05:14:c9:24:68:76:b5:e2:26:d5:cb:50:fd:d0:
- 77:0e:8c:0c:b9:5e:f7:a4:9a:45:35:6c:62:ca:e9:
- 38:d4:10:9a:5c:30:a5:4f:26:47:03:03:73:56:85:
- 8c:be:f5:d0:c0:09:06:3e:0e:e8:e5:7d:d0:19:54:
- ed:57:ec:51:cf:bc:95:15:91:cf:d0:9a:84:dd:8a:
- 50:7c:33:c2:1a:61:70:31:9a:19:17:28:b3:8c:da:
- 5f:b8:d2:06:6b:82:3f:b6:6a:28:29:86:b4:20:cb:
- a5:af:73:66:e4:37:36:81:f0:3f:ad:bf:05:b8:db:
- 2e:c4:22:e2:eb:46:87:f4:60:d1:a6:7f:ee:9c:41:
- a7:f3:aa:e9:37:dd:da:d6:f0:cd:48:ac:51:d1:77:
- 8d:a1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- EE:59:9D:56:0B:7C:0A:45:44:E3:15:57:E2:B2:F3:1D:64:6F:AF:7A
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:1
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- ab:c7:2b:9d:15:73:97:47:e0:88:32:9d:10:71:81:53:62:97:
- dc:c4:72:73:49:3e:50:50:10:03:1e:22:58:82:e0:b3:da:ca:
- 89:92:70:c8:54:0d:8e:a6:44:a0:26:5d:5d:52:d2:fb:63:e4:
- 13:7e:30:9a:13:25:4e:c8:34:a1:c9:e6:69:24:64:98:e3:88:
- 9c:86:18:62:53:70:ae:f0:d9:ed:f3:0c:e8:ec:5b:e5:27:85:
- 16:d0:b0:f6:bd:5d:9a:62:41:26:25:31:88:70:fe:25:97:48:
- f1:e6:21:1c:78:f7:68:03:59:21:db:f1:c5:92:96:24:b8:23:
- fc:ab:52:95:70:6a:52:16:4d:fc:36:6b:5f:58:4f:3f:c9:f4:
- e7:6e:52:41:42:99:41:07:c2:75:74:db:c2:49:84:7c:3f:c1:
- ac:bd:d4:d5:8f:d0:73:95:18:8a:5d:f0:8d:dd:2d:f0:b7:61:
- 8d:8a:ef:14:9f:fd:30:ba:10:e8:57:d3:1b:8e:2d:9b:74:b3:
- 63:0d:0e:8c:f9:a2:f7:42:c8:e6:5e:83:6f:0f:9a:85:3b:6e:
- 66:48:b9:a7:a8:fc:da:19:47:0c:90:26:0d:ce:15:fe:6a:1e:
- 47:5a:49:f8:76:0f:3a:a8:68:cd:a6:38:4c:a6:ca:b2:b0:9b:
- c7:46:43:cd
------BEGIN CERTIFICATE-----
-MIIEwTCCA6mgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA4WhcNMjIwNzA3MDAyODA4WjCBoTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNoYWluQi1JQ0Ey
-LXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0H+CBZ1bxEngPh+HbhcF6+IK0dGl
-9cy+HUbYzahuIs49XDlxpA0D+nh+u2zoUeWY76ZeYtIw+juPIV+3X5i3n6hWejnK
-wt+hVv6Vl1ZeW/502fIuyn7bUHda0ZDcItb+S8BXocY7SrqtBRTJJGh2teIm1ctQ
-/dB3DowMuV73pJpFNWxiyuk41BCaXDClTyZHAwNzVoWMvvXQwAkGPg7o5X3QGVTt
-V+xRz7yVFZHP0JqE3YpQfDPCGmFwMZoZFyizjNpfuNIGa4I/tmooKYa0IMulr3Nm
-5Dc2gfA/rb8FuNsuxCLi60aH9GDRpn/unEGn86rpN93a1vDNSKxR0XeNoQIDAQAB
-o4IBDTCCAQkwHQYDVR0OBBYEFO5ZnVYLfApFROMVV+Ky8x1kb696MIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MA8GA1UdEwQIMAYBAf8CAQEwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUA
-A4IBAQCrxyudFXOXR+CIMp0QcYFTYpfcxHJzST5QUBADHiJYguCz2sqJknDIVA2O
-pkSgJl1dUtL7Y+QTfjCaEyVOyDShyeZpJGSY44ichhhiU3Cu8Nnt8wzo7FvlJ4UW
-0LD2vV2aYkEmJTGIcP4ll0jx5iEcePdoA1kh2/HFkpYkuCP8q1KVcGpSFk38Nmtf
-WE8/yfTnblJBQplBB8J1dNvCSYR8P8GsvdTVj9BzlRiKXfCN3S3wt2GNiu8Un/0w
-uhDoV9Mbji2bdLNjDQ6M+aL3QsjmXoNvD5qFO25mSLmnqPzaGUcMkCYNzhX+ah5H
-Wkn4dg86qGjNpjhMpsqysJvHRkPN
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-entity-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-entity-key.pem
deleted file mode 100644
index 1c4206298..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-entity-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEA11/ZPddbEao+UzHQMniH+8COgG38aHMfnHdmFjX8L9fkyroq
-c18UlBLwSDGiQK204wcMAke0Cgdp1dKFv8i8FIzHh7pfh8UH9N+kRh63Ew+dfvYa
-eykJVUwX7siwnTkMiW4YnAZ/XZXSTHGzH+pd0vYsaagWFVnlfQPXvRo04/En47l9
-aOA5PzViLyAg+hliNxowR2yj+Y6c82cuuzhMLgohm3C2l6Ibs5gNW3SXM/C4bE6t
-tB9IYsmary2moQaumDBUXsvdI3fV7lz7gfArrW/647EOmL0+C/R8xeNQvwibv774
-atnbeDaE8n57fV6nj0KBX0H0d1wwUfU/LSWVTQIDAQABAoIBAH2lLB5YuYc3sz5j
-rBsVl/c1oayo/XyN1N46BbNlcScUIyRlsQg3atDrr4PeeNKUxBdB8C6QWCcVpheY
-xnBZEehHLMww3TRerMKdib9igdk73dzIhDBfg1NgngGu0OIX+wld0juLytf05Ie2
-ORKgbnX5KXXGGoQAOtJQ4JYwaLSk1Ccz/Oa9LrYKPNqoDT90EagCSlie+/McEbu5
-oX/Wn4cmK2TF0XXGpcFzvZ5r1Humzvb7cbPl+HAYHdceTzS6nUREokCC37j3x+ks
-6gRgYGR78uk+oayKBk7PFK6KW5T4U/TFpMkiJ9iEYprMap74P8L/rdqgLot+VIFM
-/5y70CECgYEA9dJA/cCuIEDKMDaS1SwhigPZOqMw1iGflDjZbZw2nd5Vo7EcLghS
-G4+YDMOj/ATd/2Ukb0/uoeZqz6qg/8RePrgRs+yafYI1r5MJqV4TXAX2OZm0H9Fa
-Bcih7FWZFM7Y0BhYQAD9x816jq0fvq6mt/g95q9PAiZNp9mug1BSjQkCgYEA4Era
-Rsqhrg3OVW64RTL6iRbG5JnyWPRbclYHBubGR7adV0SFYmPNdLhlONfe1dsXtrS5
-R/2nKCSBJJKE6Mgd0iTD+BDvi7PgQhxu4SIjm3RstYDNg4LfIg3eEVChzQHG8lrZ
-23zPJAUt6rFW6EfYnPZWFF4nLeJvv8yxgxqtWyUCgYEAiePI5Q5iHmF5iRXzw3Qf
-1CVYgxXrXRI7S4+gF2YbFO8Upt/AaOnt9NvVdMOBhurMBGkdyPrTZymzHI4gBZiH
-LTNfasf72Q9jQft+3eyRe3s0pRbc/UQX9UqX2dQiLJPi9sfRKQXlVWCjsMjYF8Qs
-bOHpBy+raA9IXDE1PR+fTtECgYEAz6m+KukVhNdXgJYAmmE2wZKLF8DJNz8XI+cu
-nl8wmdkkGFZiwNPyt+y6G0UTFiHB9PGi0lqxV2NlBn15/SS7J4POxXC4uToTmmJE
-7sDzAs1qkSnuHaMgAKGiR5nGFM9eaalgJ+2Iw6rf9nm3I1zR25Hf5P+/eqY6HPTi
-LaaXdtkCgYBgvU/odZK0iBhqBsAxDfbk7BhnV9jKQOvkm7T6NupjmxhPmLQaFnWG
-d7KyYH052MpHR4+sTGo+LqFT7PGSo2FQDpRRUJ7NjocFr9jVi2LU3B3bDpQU7vKi
-Odovr+9RuHqcTiwnULPMlPeeXFIlWFT3tz2v6jodGjf8ejzv3IbH5g==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-entity.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-entity.pem
deleted file mode 100644
index cca6f6697..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainB-entity.pem
+++ /dev/null
@@ -1,87 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainB-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:08 2019 GMT
- Not After : Jul 7 00:28:08 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainB-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d7:5f:d9:3d:d7:5b:11:aa:3e:53:31:d0:32:78:
- 87:fb:c0:8e:80:6d:fc:68:73:1f:9c:77:66:16:35:
- fc:2f:d7:e4:ca:ba:2a:73:5f:14:94:12:f0:48:31:
- a2:40:ad:b4:e3:07:0c:02:47:b4:0a:07:69:d5:d2:
- 85:bf:c8:bc:14:8c:c7:87:ba:5f:87:c5:07:f4:df:
- a4:46:1e:b7:13:0f:9d:7e:f6:1a:7b:29:09:55:4c:
- 17:ee:c8:b0:9d:39:0c:89:6e:18:9c:06:7f:5d:95:
- d2:4c:71:b3:1f:ea:5d:d2:f6:2c:69:a8:16:15:59:
- e5:7d:03:d7:bd:1a:34:e3:f1:27:e3:b9:7d:68:e0:
- 39:3f:35:62:2f:20:20:fa:19:62:37:1a:30:47:6c:
- a3:f9:8e:9c:f3:67:2e:bb:38:4c:2e:0a:21:9b:70:
- b6:97:a2:1b:b3:98:0d:5b:74:97:33:f0:b8:6c:4e:
- ad:b4:1f:48:62:c9:9a:af:2d:a6:a1:06:ae:98:30:
- 54:5e:cb:dd:23:77:d5:ee:5c:fb:81:f0:2b:ad:6f:
- fa:e3:b1:0e:98:bd:3e:0b:f4:7c:c5:e3:50:bf:08:
- 9b:bf:be:f8:6a:d9:db:78:36:84:f2:7e:7b:7d:5e:
- a7:8f:42:81:5f:41:f4:77:5c:30:51:f5:3f:2d:25:
- 95:4d
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 7F:17:7E:8E:A8:2C:AD:9C:C7:22:7E:A6:C6:90:9E:63:C4:5F:33:9E
- X509v3 Authority Key Identifier:
- keyid:D7:90:E4:86:59:24:F9:2B:B8:06:8E:B1:8F:33:E5:2C:63:F1:03:16
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainB-ICA2-pathlen1/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 1f:ee:5c:85:ed:4e:3b:39:6b:29:a2:ef:65:b9:f3:c7:47:85:
- 8e:79:a0:35:1b:aa:0e:98:67:a8:df:03:9c:2b:81:24:ed:cb:
- cc:c0:42:49:76:bf:78:7b:b9:39:ca:f6:06:35:76:dd:e3:59:
- c5:70:3b:b3:cf:62:0a:09:1d:07:90:96:c4:0e:0a:38:97:f7:
- 31:1d:ad:44:f9:03:f9:30:22:b6:68:01:00:38:23:3d:f6:e7:
- 71:5a:e4:d4:59:52:4f:80:86:ec:8f:ca:92:1d:9b:07:93:fe:
- 34:22:ac:9a:a2:aa:9e:fe:f5:7b:99:fd:72:32:40:98:88:d8:
- 42:1d:33:59:4c:38:2e:97:f2:9d:a2:fc:b7:33:cd:84:c1:c6:
- ef:f5:c5:d9:be:32:ba:44:66:06:62:5c:55:31:38:b4:25:1a:
- 6a:64:de:14:39:b4:38:74:1b:d7:c4:ec:81:fc:3a:13:4b:e1:
- d1:b1:5f:3c:8e:25:bc:63:7f:30:78:04:4e:79:3a:83:97:52:
- f6:00:6a:9e:d8:b5:c6:06:21:97:4a:98:ee:cf:e8:83:94:23:
- 11:6c:00:d7:e9:35:1f:89:77:85:9a:d7:8f:29:90:c6:61:14:
- e5:7d:55:5b:66:65:60:44:79:8a:1b:58:88:b9:0f:5f:a6:5f:
- 7a:ca:6b:0c
------BEGIN CERTIFICATE-----
-MIIEtzCCA5+gAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluQi1JQ0ExLXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOFoXDTIyMDcwNzAwMjgwOFowgZoxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRYwFAYDVQQD
-DA1jaGFpbkItZW50aXR5MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29t
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA11/ZPddbEao+UzHQMniH
-+8COgG38aHMfnHdmFjX8L9fkyroqc18UlBLwSDGiQK204wcMAke0Cgdp1dKFv8i8
-FIzHh7pfh8UH9N+kRh63Ew+dfvYaeykJVUwX7siwnTkMiW4YnAZ/XZXSTHGzH+pd
-0vYsaagWFVnlfQPXvRo04/En47l9aOA5PzViLyAg+hliNxowR2yj+Y6c82cuuzhM
-Lgohm3C2l6Ibs5gNW3SXM/C4bE6ttB9IYsmary2moQaumDBUXsvdI3fV7lz7gfAr
-rW/647EOmL0+C/R8xeNQvwibv774atnbeDaE8n57fV6nj0KBX0H0d1wwUfU/LSWV
-TQIDAQABo4H+MIH7MB0GA1UdDgQWBBR/F36OqCytnMcifqbGkJ5jxF8znjCBzgYD
-VR0jBIHGMIHDgBTXkOSGWST5K7gGjrGPM+UsY/EDFqGBp6SBpDCBoTELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNV
-BAMMFGNoYWluQi1JQ0EyLXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tggFkMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAB/uXIXt
-Tjs5aymi72W588dHhY55oDUbqg6YZ6jfA5wrgSTty8zAQkl2v3h7uTnK9gY1dt3j
-WcVwO7PPYgoJHQeQlsQOCjiX9zEdrUT5A/kwIrZoAQA4Iz3253Fa5NRZUk+AhuyP
-ypIdmweT/jQirJqiqp7+9XuZ/XIyQJiI2EIdM1lMOC6X8p2i/LczzYTBxu/1xdm+
-MrpEZgZiXFUxOLQlGmpk3hQ5tDh0G9fE7IH8OhNL4dGxXzyOJbxjfzB4BE55OoOX
-UvYAap7YtcYGIZdKmO7P6IOUIxFsANfpNR+Jd4Wa148pkMZhFOV9VVtmZWBEeYob
-WIi5D1+mX3rKaww=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-ICA1-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-ICA1-key.pem
deleted file mode 100644
index 63826260e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-ICA1-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAuxpswb27mynKNT1joynNpmXEnqPFUJmtUZAKmpuDzr4Gu2ZP
-7x4xJTRvX5iuAUnDYxeEuXptwNj9DP+aAkxBN0nwGGMbT/w3Jk5UedcXOVB5bqMp
-mQetnVzY4QLnM37k2qQFvGID059qkZJm3SnQlfsvP/BZuHBbJVR7oAqfMwlk7fvU
-HC2WVEXjUJj/sX+axs8Jo9rpV60dBY8edXXn0gcz3tp9QtgOlP6ux5vDtZ7zayGf
-dMSzMnwoTg+8FTO6nAk8wUAGeLuxID9hFfYeSXNRiZUtlb801sKp0TQdjSFtT6Nu
-7/wjonb80CVTDkN2O+2C7NgjyzPvPJ2h3uZ6rQIDAQABAoIBAQCBojJeHbYBMHgg
-YRNKtij9NB+BhpisWn2COFmQe1Vchb6mUqHpW7LTQzwzMNbGn7PXUTEtTU0Dw5O4
-UNQE6Y553ymRzADdbzNKwBS5gjReCorIBBZLJ827bNv7Moa74Bxx/BjZR9O86QPu
-LlBExbb2Y11+YGnZZ0dPWvR4k0NwGM+zsEVfJQcRR7JXaQ720123sg+7TuTk30X/
-mgayttEyJhLt7UqulYagTethwKLY18fdvHTOGdES5Xiw+bWC7PKa/FePX8YXnFVN
-Cz3t4l4Us/xs22nYo4IG2lu1LSxy2IxPV92w4KX4XcrwTW3+eH8+tfPByp3gFTdP
-ZetlWehBAoGBAOLoOMIwLLSN5S0tJ4vwQaxn0YqEwJsEaSx85SUujhbsbjgyeVF6
-iN/v6TTb2EYliZvtQirkC7GMnS313AxzpUFO7+V/xf3jYDK7t+UJ1ap3zUU3vUOb
-F4FKorNbfoxYd/vtZ7wt/KvuCKvDTszv8NhUNzFhXeIEzFhf+S4SDqFdAoGBANMX
-uAZoLngBmAyw2zYcWTW5U9armeycTDpfxDpM4PjbxOs17/hK0G4IXqzCfQ2Hi0bl
-fW6KeO5FqD9d5klIYo0278w4n5FpvA3yxqVlHoqXCtSYedSWsXN/sl7Ak1d2VngW
-ecytOdrBxvQy9wqnmk3lhJby5DNWiuiUafudlxmRAoGAbFPhhRPqw+haWU8Nakmx
-kNWfvDnUmi1o6MxXuYCYZWlK1ZmDQdr2LbMj6xBqGFMjd0W2KTPmQUWYZLDT9T3g
-z2UYMsDljWhYLOBh0v72+wNnBHyv5u7MMfWn52ju6aHy5ltZAwYRcyOZECeWH1EN
-8rmCABkz8QvJYweutsf4JCECgYEAz6B7zCl602TV9l2aL/3wLSyNbw+4RYdyXtRF
-QQbPHVekt6mE0BZeLmwjGw/tSnpwnpopJqoiylJPa4xjbt84uCc59AgZw0BZzOpn
-QtVUFgL8jyEua9CQ18bZXeNSyWtHH7UTtiMITcfddeIPJTa3Sjkfkg10MZ7E4IDi
-Qa++qFECgYBRM+cS7jwo5oulYJ7Sqs8n1pj8MNGSLEcPQaTOxMUWqtkaN9iVQLx7
-lI/FYusedOReZ/+UDUrwZDdMXYrnL4/f8STXidDsY2+LOilaT2XggdBABe0bCjbf
-r/Pknwx2VkwWFbDN6h/U9tKU47allf64kCQqzgoZtzMXTefZiAxLrw==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-ICA1-pathlen1.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-ICA1-pathlen1.pem
deleted file mode 100644
index 64cbc0c6b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-ICA1-pathlen1.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:08 2019 GMT
- Not After : Jul 7 00:28:08 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainC-ICA1-pathlen1, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:bb:1a:6c:c1:bd:bb:9b:29:ca:35:3d:63:a3:29:
- cd:a6:65:c4:9e:a3:c5:50:99:ad:51:90:0a:9a:9b:
- 83:ce:be:06:bb:66:4f:ef:1e:31:25:34:6f:5f:98:
- ae:01:49:c3:63:17:84:b9:7a:6d:c0:d8:fd:0c:ff:
- 9a:02:4c:41:37:49:f0:18:63:1b:4f:fc:37:26:4e:
- 54:79:d7:17:39:50:79:6e:a3:29:99:07:ad:9d:5c:
- d8:e1:02:e7:33:7e:e4:da:a4:05:bc:62:03:d3:9f:
- 6a:91:92:66:dd:29:d0:95:fb:2f:3f:f0:59:b8:70:
- 5b:25:54:7b:a0:0a:9f:33:09:64:ed:fb:d4:1c:2d:
- 96:54:45:e3:50:98:ff:b1:7f:9a:c6:cf:09:a3:da:
- e9:57:ad:1d:05:8f:1e:75:75:e7:d2:07:33:de:da:
- 7d:42:d8:0e:94:fe:ae:c7:9b:c3:b5:9e:f3:6b:21:
- 9f:74:c4:b3:32:7c:28:4e:0f:bc:15:33:ba:9c:09:
- 3c:c1:40:06:78:bb:b1:20:3f:61:15:f6:1e:49:73:
- 51:89:95:2d:95:bf:34:d6:c2:a9:d1:34:1d:8d:21:
- 6d:4f:a3:6e:ef:fc:23:a2:76:fc:d0:25:53:0e:43:
- 76:3b:ed:82:ec:d8:23:cb:33:ef:3c:9d:a1:de:e6:
- 7a:ad
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 94:1D:2E:07:37:C6:2F:52:C1:EC:79:6B:13:CE:09:90:5F:F4:C4:51
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:1
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 65:d2:6a:a3:a2:98:ac:5a:53:e4:b4:02:66:8e:9c:64:fa:53:
- 88:a7:31:09:fa:31:4d:27:7a:17:7a:1c:8f:13:2a:e5:60:e4:
- f2:0f:6a:e6:a6:48:ed:e4:17:0e:cb:57:77:66:98:c0:37:2f:
- 00:26:1e:1a:a8:e4:ad:9e:c9:47:4d:6c:c5:57:75:79:97:be:
- 0f:82:92:aa:b0:df:0d:f4:25:49:fd:c6:6f:e7:70:f1:f0:0d:
- e7:13:81:ed:a1:1e:69:f3:10:3d:3e:3c:5b:c0:71:fb:44:47:
- e2:bc:51:62:6c:21:7a:ea:ad:74:f5:46:35:63:93:ab:f9:89:
- 31:e6:01:5f:eb:ca:df:d3:93:86:3d:8b:0a:88:79:f1:b1:47:
- df:1f:2e:a0:7e:34:f6:80:30:7d:bd:e5:70:43:0d:76:2a:fc:
- fe:38:4f:3a:bc:58:52:81:37:5e:e9:3b:26:f4:8d:20:5f:f2:
- 44:56:e8:b8:cc:42:7a:5e:67:28:34:c3:8f:a9:08:87:92:4b:
- bc:1d:3b:d1:1a:d8:79:20:eb:4a:6f:87:b3:3b:ef:2f:a6:98:
- 34:48:a6:43:ba:d4:fa:65:6f:54:9b:28:a1:e1:77:fe:0e:91:
- 0b:4f:f5:95:3e:b3:c9:4e:2d:17:67:37:5b:d5:dd:83:ef:a4:
- b4:41:53:36
------BEGIN CERTIFICATE-----
-MIIEwTCCA6mgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA4WhcNMjIwNzA3MDAyODA4WjCBoTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNoYWluQy1JQ0Ex
-LXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuxpswb27mynKNT1joynNpmXEnqPF
-UJmtUZAKmpuDzr4Gu2ZP7x4xJTRvX5iuAUnDYxeEuXptwNj9DP+aAkxBN0nwGGMb
-T/w3Jk5UedcXOVB5bqMpmQetnVzY4QLnM37k2qQFvGID059qkZJm3SnQlfsvP/BZ
-uHBbJVR7oAqfMwlk7fvUHC2WVEXjUJj/sX+axs8Jo9rpV60dBY8edXXn0gcz3tp9
-QtgOlP6ux5vDtZ7zayGfdMSzMnwoTg+8FTO6nAk8wUAGeLuxID9hFfYeSXNRiZUt
-lb801sKp0TQdjSFtT6Nu7/wjonb80CVTDkN2O+2C7NgjyzPvPJ2h3uZ6rQIDAQAB
-o4IBDTCCAQkwHQYDVR0OBBYEFJQdLgc3xi9Swex5axPOCZBf9MRRMIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MA8GA1UdEwQIMAYBAf8CAQEwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUA
-A4IBAQBl0mqjopisWlPktAJmjpxk+lOIpzEJ+jFNJ3oXehyPEyrlYOTyD2rmpkjt
-5BcOy1d3ZpjANy8AJh4aqOStnslHTWzFV3V5l74PgpKqsN8N9CVJ/cZv53Dx8A3n
-E4HtoR5p8xA9PjxbwHH7REfivFFibCF66q109UY1Y5Or+Ykx5gFf68rf05OGPYsK
-iHnxsUffHy6gfjT2gDB9veVwQw12Kvz+OE86vFhSgTde6Tsm9I0gX/JEVui4zEJ6
-XmcoNMOPqQiHkku8HTvRGth5IOtKb4ezO+8vppg0SKZDutT6ZW9Umyih4Xf+DpEL
-T/WVPrPJTi0XZzdb1d2D76S0QVM2
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-assembled.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-assembled.pem
deleted file mode 100644
index 0fae68780..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-assembled.pem
+++ /dev/null
@@ -1,175 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainC-ICA1-pathlen1, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:08 2019 GMT
- Not After : Jul 7 00:28:08 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainC-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:bf:34:e1:1c:2c:2d:a4:93:b5:c4:fc:65:40:fa:
- 94:68:74:24:ff:52:a4:df:3e:f1:7c:92:14:f0:f0:
- 91:ed:9c:7e:a0:7e:b1:07:20:38:b2:c4:a2:b8:09:
- d1:06:ee:fa:c6:7e:4d:79:be:dd:83:18:cf:e8:a7:
- 78:88:cd:44:ce:3a:40:05:7a:6e:c5:c9:e4:84:64:
- e0:01:7d:4f:f9:87:d2:94:91:e9:c8:21:bc:71:2e:
- ef:f6:61:23:46:6b:da:5f:32:23:a1:86:9c:c6:9a:
- b4:98:35:6d:36:b8:34:14:fd:9d:63:2f:75:7e:58:
- f2:08:f9:e3:32:2a:a6:d2:b1:49:05:d3:8c:d4:48:
- 5c:c2:57:07:62:4e:7a:05:23:c2:4f:ca:d5:a8:38:
- 32:92:c2:21:3b:74:3e:2d:b1:6b:57:96:81:a3:2d:
- ce:6e:9c:d9:ce:1f:e9:42:f8:2c:bb:fe:07:57:c6:
- c8:93:6e:89:d3:fc:d2:83:4b:c1:2c:ea:5e:41:c9:
- 7c:be:6c:23:01:89:75:1b:1f:57:ac:83:dc:da:e1:
- 63:55:d8:94:fc:2d:a6:99:15:d1:71:88:a5:1b:f5:
- 6f:39:0a:bd:ec:09:02:09:77:a7:5d:da:78:f8:8f:
- b1:5d:a7:83:12:10:5f:89:ae:72:c2:88:bf:3e:80:
- 98:c3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 91:79:7C:91:A7:A0:BC:E1:7B:77:9E:51:6E:5C:A7:7A:D9:3F:18:A0
- X509v3 Authority Key Identifier:
- keyid:94:1D:2E:07:37:C6:2F:52:C1:EC:79:6B:13:CE:09:90:5F:F4:C4:51
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- b7:d0:5e:86:77:76:45:77:c3:f8:5c:cd:9b:84:52:b7:8b:d6:
- 84:ed:d3:1b:fa:7f:27:d1:24:05:11:9d:bf:74:eb:14:93:ee:
- 08:2c:16:0a:d8:00:46:31:e3:43:f1:95:64:b1:72:93:49:fa:
- fe:73:e8:be:2a:02:95:e8:3a:56:f3:aa:8b:fa:cb:3a:f5:06:
- a2:00:ae:19:36:86:be:93:79:3f:58:f7:95:de:a8:e2:12:89:
- 52:2f:a0:be:09:3e:18:69:19:d5:96:7c:94:9a:ee:ab:f1:2b:
- 74:54:c9:1c:0a:5f:aa:d1:62:34:24:33:f8:5e:b2:43:9c:c9:
- e6:8c:fa:b5:89:a7:3e:6b:51:00:a6:e3:d5:c4:f9:ac:78:a5:
- 4d:85:7c:e3:7d:f9:b5:e8:ad:3e:32:56:fb:99:bf:f9:3b:a4:
- 98:04:72:cd:ea:95:08:af:7e:62:2d:74:e4:25:48:43:25:ba:
- 07:7c:00:c9:31:41:6f:59:ff:da:bb:ac:08:06:18:1a:0a:3d:
- 1d:2e:ad:98:2c:06:72:51:f2:75:7c:87:ef:e0:37:f6:80:70:
- aa:8d:d9:a8:13:e5:31:91:3c:e3:0f:21:33:0a:15:91:1c:4d:
- 3a:1b:35:f6:4c:f5:5f:70:34:b2:dc:ed:10:5d:37:58:16:e4:
- e0:83:12:90
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluQy1JQ0ExLXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOFoXDTIyMDcwNzAwMjgwOFowgZoxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRYwFAYDVQQD
-DA1jaGFpbkMtZW50aXR5MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29t
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvzThHCwtpJO1xPxlQPqU
-aHQk/1Kk3z7xfJIU8PCR7Zx+oH6xByA4ssSiuAnRBu76xn5Neb7dgxjP6Kd4iM1E
-zjpABXpuxcnkhGTgAX1P+YfSlJHpyCG8cS7v9mEjRmvaXzIjoYacxpq0mDVtNrg0
-FP2dYy91fljyCPnjMiqm0rFJBdOM1EhcwlcHYk56BSPCT8rVqDgyksIhO3Q+LbFr
-V5aBoy3ObpzZzh/pQvgsu/4HV8bIk26J0/zSg0vBLOpeQcl8vmwjAYl1Gx9XrIPc
-2uFjVdiU/C2mmRXRcYilG/VvOQq97AkCCXenXdp4+I+xXaeDEhBfia5ywoi/PoCY
-wwIDAQABo4HxMIHuMB0GA1UdDgQWBBSReXyRp6C84Xt3nlFuXKd62T8YoDCBwQYD
-VR0jBIG5MIG2gBSUHS4HN8YvUsHseWsTzgmQX/TEUaGBmqSBlzCBlDELMAkGA1UE
-BhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNV
-BAoMCFNhd3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cu
-d29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CAWQw
-CQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAt9Behnd2RXfD+FzNm4RSt4vW
-hO3TG/p/J9EkBRGdv3TrFJPuCCwWCtgARjHjQ/GVZLFyk0n6/nPovioCleg6VvOq
-i/rLOvUGogCuGTaGvpN5P1j3ld6o4hKJUi+gvgk+GGkZ1ZZ8lJruq/ErdFTJHApf
-qtFiNCQz+F6yQ5zJ5oz6tYmnPmtRAKbj1cT5rHilTYV84335teitPjJW+5m/+Tuk
-mARyzeqVCK9+Yi105CVIQyW6B3wAyTFBb1n/2rusCAYYGgo9HS6tmCwGclHydXyH
-7+A39oBwqo3ZqBPlMZE84w8hMwoVkRxNOhs19kz1X3A0stztEF03WBbk4IMSkA==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:08 2019 GMT
- Not After : Jul 7 00:28:08 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainC-ICA1-pathlen1, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:bb:1a:6c:c1:bd:bb:9b:29:ca:35:3d:63:a3:29:
- cd:a6:65:c4:9e:a3:c5:50:99:ad:51:90:0a:9a:9b:
- 83:ce:be:06:bb:66:4f:ef:1e:31:25:34:6f:5f:98:
- ae:01:49:c3:63:17:84:b9:7a:6d:c0:d8:fd:0c:ff:
- 9a:02:4c:41:37:49:f0:18:63:1b:4f:fc:37:26:4e:
- 54:79:d7:17:39:50:79:6e:a3:29:99:07:ad:9d:5c:
- d8:e1:02:e7:33:7e:e4:da:a4:05:bc:62:03:d3:9f:
- 6a:91:92:66:dd:29:d0:95:fb:2f:3f:f0:59:b8:70:
- 5b:25:54:7b:a0:0a:9f:33:09:64:ed:fb:d4:1c:2d:
- 96:54:45:e3:50:98:ff:b1:7f:9a:c6:cf:09:a3:da:
- e9:57:ad:1d:05:8f:1e:75:75:e7:d2:07:33:de:da:
- 7d:42:d8:0e:94:fe:ae:c7:9b:c3:b5:9e:f3:6b:21:
- 9f:74:c4:b3:32:7c:28:4e:0f:bc:15:33:ba:9c:09:
- 3c:c1:40:06:78:bb:b1:20:3f:61:15:f6:1e:49:73:
- 51:89:95:2d:95:bf:34:d6:c2:a9:d1:34:1d:8d:21:
- 6d:4f:a3:6e:ef:fc:23:a2:76:fc:d0:25:53:0e:43:
- 76:3b:ed:82:ec:d8:23:cb:33:ef:3c:9d:a1:de:e6:
- 7a:ad
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 94:1D:2E:07:37:C6:2F:52:C1:EC:79:6B:13:CE:09:90:5F:F4:C4:51
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:1
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 65:d2:6a:a3:a2:98:ac:5a:53:e4:b4:02:66:8e:9c:64:fa:53:
- 88:a7:31:09:fa:31:4d:27:7a:17:7a:1c:8f:13:2a:e5:60:e4:
- f2:0f:6a:e6:a6:48:ed:e4:17:0e:cb:57:77:66:98:c0:37:2f:
- 00:26:1e:1a:a8:e4:ad:9e:c9:47:4d:6c:c5:57:75:79:97:be:
- 0f:82:92:aa:b0:df:0d:f4:25:49:fd:c6:6f:e7:70:f1:f0:0d:
- e7:13:81:ed:a1:1e:69:f3:10:3d:3e:3c:5b:c0:71:fb:44:47:
- e2:bc:51:62:6c:21:7a:ea:ad:74:f5:46:35:63:93:ab:f9:89:
- 31:e6:01:5f:eb:ca:df:d3:93:86:3d:8b:0a:88:79:f1:b1:47:
- df:1f:2e:a0:7e:34:f6:80:30:7d:bd:e5:70:43:0d:76:2a:fc:
- fe:38:4f:3a:bc:58:52:81:37:5e:e9:3b:26:f4:8d:20:5f:f2:
- 44:56:e8:b8:cc:42:7a:5e:67:28:34:c3:8f:a9:08:87:92:4b:
- bc:1d:3b:d1:1a:d8:79:20:eb:4a:6f:87:b3:3b:ef:2f:a6:98:
- 34:48:a6:43:ba:d4:fa:65:6f:54:9b:28:a1:e1:77:fe:0e:91:
- 0b:4f:f5:95:3e:b3:c9:4e:2d:17:67:37:5b:d5:dd:83:ef:a4:
- b4:41:53:36
------BEGIN CERTIFICATE-----
-MIIEwTCCA6mgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA4WhcNMjIwNzA3MDAyODA4WjCBoTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNoYWluQy1JQ0Ex
-LXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuxpswb27mynKNT1joynNpmXEnqPF
-UJmtUZAKmpuDzr4Gu2ZP7x4xJTRvX5iuAUnDYxeEuXptwNj9DP+aAkxBN0nwGGMb
-T/w3Jk5UedcXOVB5bqMpmQetnVzY4QLnM37k2qQFvGID059qkZJm3SnQlfsvP/BZ
-uHBbJVR7oAqfMwlk7fvUHC2WVEXjUJj/sX+axs8Jo9rpV60dBY8edXXn0gcz3tp9
-QtgOlP6ux5vDtZ7zayGfdMSzMnwoTg+8FTO6nAk8wUAGeLuxID9hFfYeSXNRiZUt
-lb801sKp0TQdjSFtT6Nu7/wjonb80CVTDkN2O+2C7NgjyzPvPJ2h3uZ6rQIDAQAB
-o4IBDTCCAQkwHQYDVR0OBBYEFJQdLgc3xi9Swex5axPOCZBf9MRRMIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MA8GA1UdEwQIMAYBAf8CAQEwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUA
-A4IBAQBl0mqjopisWlPktAJmjpxk+lOIpzEJ+jFNJ3oXehyPEyrlYOTyD2rmpkjt
-5BcOy1d3ZpjANy8AJh4aqOStnslHTWzFV3V5l74PgpKqsN8N9CVJ/cZv53Dx8A3n
-E4HtoR5p8xA9PjxbwHH7REfivFFibCF66q109UY1Y5Or+Ykx5gFf68rf05OGPYsK
-iHnxsUffHy6gfjT2gDB9veVwQw12Kvz+OE86vFhSgTde6Tsm9I0gX/JEVui4zEJ6
-XmcoNMOPqQiHkku8HTvRGth5IOtKb4ezO+8vppg0SKZDutT6ZW9Umyih4Xf+DpEL
-T/WVPrPJTi0XZzdb1d2D76S0QVM2
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-entity-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-entity-key.pem
deleted file mode 100644
index 1043ec961..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-entity-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpgIBAAKCAQEAvzThHCwtpJO1xPxlQPqUaHQk/1Kk3z7xfJIU8PCR7Zx+oH6x
-ByA4ssSiuAnRBu76xn5Neb7dgxjP6Kd4iM1EzjpABXpuxcnkhGTgAX1P+YfSlJHp
-yCG8cS7v9mEjRmvaXzIjoYacxpq0mDVtNrg0FP2dYy91fljyCPnjMiqm0rFJBdOM
-1EhcwlcHYk56BSPCT8rVqDgyksIhO3Q+LbFrV5aBoy3ObpzZzh/pQvgsu/4HV8bI
-k26J0/zSg0vBLOpeQcl8vmwjAYl1Gx9XrIPc2uFjVdiU/C2mmRXRcYilG/VvOQq9
-7AkCCXenXdp4+I+xXaeDEhBfia5ywoi/PoCYwwIDAQABAoIBAQCSlHYyQ8flz/rb
-/WWeD7sv7EHknjWYk0dLaS22m6YzUvJcFWOfA9uTaF0Z2ySsPQ5wlqjMOT7VXnMc
-dy5XKY2iz1L/ICHFbQXLXQ3A9pEVyULs9IMVEo/E8OeyqDsDpHDu46AfFvQe6MCj
-oumLtmDu6pH6VIqtBoDd0ruSXNIw17a99b7kdCsGq4cobwbPmQtqc4+bpEd1+5si
-EErSmHA+x1u/M2B1xJo9KPFAHKifGTBpU7t/uSPAmGmA/oq1fkhAkqYmBlxbLi72
-E6T7BoXpZ42dzaZnKXRU1M2uo3hocaZaZdZ4eRWrJcjpAnL12HyfpotOKFUJbNZY
-ILZlVIMpAoGBAOMr6kz51tfSTLj/vcp/U/zelSE6J9VGlhGoeW8fkyI1rZ2scOo1
-kHQgOcaOwptAatNmclJuAChc3cwflN232egbRLEMWDdUXTwydSH/Aldjj0SZkgqz
-n4wlOmXW05faInU8DeIHq8m1IoTcjciH5QLc/Gq24dBElSsXLFOS7mdNAoGBANd4
-k1dPyoYkGPjEO89E6rSnwv2pGvj+Eu9EANpCtkx6o341yxWCou6GDTxiepZe18Ed
-RGV/QWQCYPRQXJf+XwTrmxMJ3VN8+jHN8kd/iZPbIgti4Tn68Svkjq97yEBMcAjH
-sYyMo2Iuo6e8kWGJJJe+5JuLflu8YjZQglANfZhPAoGBAIls4ZqbcUqyX9Nycn/z
-sv1AMXseUUaGIvafsoZ01W9Whabi0JP+v1pgvFLPvg5pU7Z7PSF8hf/k3hBD8qyG
-Mf5lsJJiY2NlV9m4tH9SYzo2ck8Pj/eFXjlLtB4zbWFphnrhT4yzE0s8lptFSUhM
-XU/0G4b7B3QUaSDeLeSI+EvpAoGBANXlak7IdMGI4AlDtCPjxCKmTxlEX/RBNEa0
-+SuyAgoVzGsjt4CY+GlURZtmH09aw09/YEBpfV5sRhcCF4kDCQx3XrAdoMqaTDxY
-t2RmpQpUBI3NEMxf4j2yXDqz5Gx/9M+ifQyLKD31Ep0WwjNS0zKYW5RVe5BRiCVm
-8pXJbp5dAoGBAJiN8lryCqG+0VZ+SKU8UI9paR6G64IFO3A2SjBJf7YrQ8fivhOk
-gEdB/Aph2ztx0AZP56b38y7EievsKW95kg1LhGi0bhlKygVuZRWJa4Kj9DaTlAss
-2ufqrz1VGK7o0elCrNnNp0F/ocWMAvVFBPOA90WMKd2z97HpcgvzXGj6
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-entity.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-entity.pem
deleted file mode 100644
index 34f198f2e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainC-entity.pem
+++ /dev/null
@@ -1,86 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainC-ICA1-pathlen1, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:08 2019 GMT
- Not After : Jul 7 00:28:08 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainC-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:bf:34:e1:1c:2c:2d:a4:93:b5:c4:fc:65:40:fa:
- 94:68:74:24:ff:52:a4:df:3e:f1:7c:92:14:f0:f0:
- 91:ed:9c:7e:a0:7e:b1:07:20:38:b2:c4:a2:b8:09:
- d1:06:ee:fa:c6:7e:4d:79:be:dd:83:18:cf:e8:a7:
- 78:88:cd:44:ce:3a:40:05:7a:6e:c5:c9:e4:84:64:
- e0:01:7d:4f:f9:87:d2:94:91:e9:c8:21:bc:71:2e:
- ef:f6:61:23:46:6b:da:5f:32:23:a1:86:9c:c6:9a:
- b4:98:35:6d:36:b8:34:14:fd:9d:63:2f:75:7e:58:
- f2:08:f9:e3:32:2a:a6:d2:b1:49:05:d3:8c:d4:48:
- 5c:c2:57:07:62:4e:7a:05:23:c2:4f:ca:d5:a8:38:
- 32:92:c2:21:3b:74:3e:2d:b1:6b:57:96:81:a3:2d:
- ce:6e:9c:d9:ce:1f:e9:42:f8:2c:bb:fe:07:57:c6:
- c8:93:6e:89:d3:fc:d2:83:4b:c1:2c:ea:5e:41:c9:
- 7c:be:6c:23:01:89:75:1b:1f:57:ac:83:dc:da:e1:
- 63:55:d8:94:fc:2d:a6:99:15:d1:71:88:a5:1b:f5:
- 6f:39:0a:bd:ec:09:02:09:77:a7:5d:da:78:f8:8f:
- b1:5d:a7:83:12:10:5f:89:ae:72:c2:88:bf:3e:80:
- 98:c3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 91:79:7C:91:A7:A0:BC:E1:7B:77:9E:51:6E:5C:A7:7A:D9:3F:18:A0
- X509v3 Authority Key Identifier:
- keyid:94:1D:2E:07:37:C6:2F:52:C1:EC:79:6B:13:CE:09:90:5F:F4:C4:51
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- b7:d0:5e:86:77:76:45:77:c3:f8:5c:cd:9b:84:52:b7:8b:d6:
- 84:ed:d3:1b:fa:7f:27:d1:24:05:11:9d:bf:74:eb:14:93:ee:
- 08:2c:16:0a:d8:00:46:31:e3:43:f1:95:64:b1:72:93:49:fa:
- fe:73:e8:be:2a:02:95:e8:3a:56:f3:aa:8b:fa:cb:3a:f5:06:
- a2:00:ae:19:36:86:be:93:79:3f:58:f7:95:de:a8:e2:12:89:
- 52:2f:a0:be:09:3e:18:69:19:d5:96:7c:94:9a:ee:ab:f1:2b:
- 74:54:c9:1c:0a:5f:aa:d1:62:34:24:33:f8:5e:b2:43:9c:c9:
- e6:8c:fa:b5:89:a7:3e:6b:51:00:a6:e3:d5:c4:f9:ac:78:a5:
- 4d:85:7c:e3:7d:f9:b5:e8:ad:3e:32:56:fb:99:bf:f9:3b:a4:
- 98:04:72:cd:ea:95:08:af:7e:62:2d:74:e4:25:48:43:25:ba:
- 07:7c:00:c9:31:41:6f:59:ff:da:bb:ac:08:06:18:1a:0a:3d:
- 1d:2e:ad:98:2c:06:72:51:f2:75:7c:87:ef:e0:37:f6:80:70:
- aa:8d:d9:a8:13:e5:31:91:3c:e3:0f:21:33:0a:15:91:1c:4d:
- 3a:1b:35:f6:4c:f5:5f:70:34:b2:dc:ed:10:5d:37:58:16:e4:
- e0:83:12:90
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluQy1JQ0ExLXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOFoXDTIyMDcwNzAwMjgwOFowgZoxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRYwFAYDVQQD
-DA1jaGFpbkMtZW50aXR5MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29t
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvzThHCwtpJO1xPxlQPqU
-aHQk/1Kk3z7xfJIU8PCR7Zx+oH6xByA4ssSiuAnRBu76xn5Neb7dgxjP6Kd4iM1E
-zjpABXpuxcnkhGTgAX1P+YfSlJHpyCG8cS7v9mEjRmvaXzIjoYacxpq0mDVtNrg0
-FP2dYy91fljyCPnjMiqm0rFJBdOM1EhcwlcHYk56BSPCT8rVqDgyksIhO3Q+LbFr
-V5aBoy3ObpzZzh/pQvgsu/4HV8bIk26J0/zSg0vBLOpeQcl8vmwjAYl1Gx9XrIPc
-2uFjVdiU/C2mmRXRcYilG/VvOQq97AkCCXenXdp4+I+xXaeDEhBfia5ywoi/PoCY
-wwIDAQABo4HxMIHuMB0GA1UdDgQWBBSReXyRp6C84Xt3nlFuXKd62T8YoDCBwQYD
-VR0jBIG5MIG2gBSUHS4HN8YvUsHseWsTzgmQX/TEUaGBmqSBlzCBlDELMAkGA1UE
-BhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNV
-BAoMCFNhd3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cu
-d29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CAWQw
-CQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEAt9Behnd2RXfD+FzNm4RSt4vW
-hO3TG/p/J9EkBRGdv3TrFJPuCCwWCtgARjHjQ/GVZLFyk0n6/nPovioCleg6VvOq
-i/rLOvUGogCuGTaGvpN5P1j3ld6o4hKJUi+gvgk+GGkZ1ZZ8lJruq/ErdFTJHApf
-qtFiNCQz+F6yQ5zJ5oz6tYmnPmtRAKbj1cT5rHilTYV84335teitPjJW+5m/+Tuk
-mARyzeqVCK9+Yi105CVIQyW6B3wAyTFBb1n/2rusCAYYGgo9HS6tmCwGclHydXyH
-7+A39oBwqo3ZqBPlMZE84w8hMwoVkRxNOhs19kz1X3A0stztEF03WBbk4IMSkA==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-ICA1-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-ICA1-key.pem
deleted file mode 100644
index 5898278a3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-ICA1-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEA14F4qRmZEtHPPVFUHdMUlO0+3v/gI+T3I/xcSSTYNpPmKu6n
-q8aNya1ARclEBkdMDWUJ3dvi8L3NeRzs0Y3e8v9m9bK9Q8xYfx3bS5elg1yHXptz
-h8gdK0eSVeTbvlHV63bCqllye/YnL77A29w88uIZybAwuy6ilUgGvY6dvYxrXsaa
-c0tssCCWR0TTCWtqK/qGXx0Lp2IictVWHKqXjM5Xow/mvM1jVFVgh1Dr+ozpFXCz
-XE0OJ2D9B26M7D+gJcUBWaP8LYBLhEwQtcina7HlxcGasNZLMCG6QmXgP1nPf0lL
-O89iBvSJrluBXRVj+3wpprXP87W1ZgZPo9pnOQIDAQABAoIBAFEIoxlawb9c20Ng
-SHPqggu55fEuX9a/atrCMuViEFb9aAfus2eZAom6NrfHBWgi+Qr0WjBtVTlW9WM8
-KCRn51SSCuIKcraCqSgrTuFuxVLOwSwm4dtFuQokIHdh1esLlJe0kWBCwBSyq2t9
-m8FQYC6oLDA1qy1HTOU7LyWp8dBqwnbplTSUax9ske3hQ51uLVI3ESWIHwoC2t9D
-fCAPQII7CIIOAO9hmi5324Z06Pi8LkuRY/ayiZ+CxMn2gSG3HuE2yg8fbbbVwN5u
-w6Luwc0qPh8CmBDWXFftLjgY7u+PJOlYDz8GKYSaykVAvyjl9YeAMXKVo+dgER/H
-4nBrWvECgYEA/Q+k2BIwr5gyE8dWoY7nVUQY/UlOX3WIQG13GCJBiUh23rZui3YQ
-+tCTi1CRdoLkbyN2gPorMBxEjaQ+tKGhd/fSXeeftWMAIrQuKdxlYwBIG3xNCG69
-heL9Bcv9HKYtTWjEw9cR8OaXj9G3ExCqrdeJ2oA3Ow9xNTexSidT7o0CgYEA2gIs
-rRzYtqIxgCML1iMUU5BwMeO7kqtQD9pl8jsoMgTFD83C3pS8iZcm3A53vmBi+l5a
-ELljofTq4Sx9PLFLKITRjyMXZI0HJg7gaZRKcR8W8K38gIVTYT+KIp4fTsa51jKD
-u7VWxKwCsTSRr50cvhUtW2kydgxrOShOiWz3Nl0CgYEAkdrLaxII55wz+LxizRk9
-ciKeuJXgyxpF3sR46PsNhN+0S6cgTddN8BH5iEl2nbTRjtEEw0/tRnx0cqLg1WF3
-XFsE78TJg1U9RcNN/CigcxA9f0IEcEDLkXiD1yx8hV+uKrig+DNkjtGJN4ZrG1z2
-0t2xAbP2oV7EJCUmVRQXxx0CgYEAw2erj8cJYDnk0IuZMmji8TvHtJABMqem7W6+
-be4kSyEHWPD/N+5tR45Z4Gh/X/6Y+PzVEaR571LNrOLpphrr2Pejtf6oGxJlU/GF
-qFyolNhfAX+RkcjvQX1oXTsJqNxq+djxRrB1g3cCOr95zcSvXJkyvHqAJltfSC4e
-pwMqWmkCgYBsEbkdUr9thcGrDeb+g4ZefnhkVwt9c80zwPFpfFsdp7en2c4isjZw
-UyCA0qQPXBG+ChbtL3mRd/sAt10vFzBfTwjhU55rDBNjLUljEBkGpOQM1Hgi6IdY
-A/J9/DoRY6Tg66bgQxu7iqwkCWTEnSjyRyeTDrem7zED/B/CNpbTtA==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-ICA1-pathlen127.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-ICA1-pathlen127.pem
deleted file mode 100644
index 97ad8d4f5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-ICA1-pathlen127.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainD-ICA1-pathlen127, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d7:81:78:a9:19:99:12:d1:cf:3d:51:54:1d:d3:
- 14:94:ed:3e:de:ff:e0:23:e4:f7:23:fc:5c:49:24:
- d8:36:93:e6:2a:ee:a7:ab:c6:8d:c9:ad:40:45:c9:
- 44:06:47:4c:0d:65:09:dd:db:e2:f0:bd:cd:79:1c:
- ec:d1:8d:de:f2:ff:66:f5:b2:bd:43:cc:58:7f:1d:
- db:4b:97:a5:83:5c:87:5e:9b:73:87:c8:1d:2b:47:
- 92:55:e4:db:be:51:d5:eb:76:c2:aa:59:72:7b:f6:
- 27:2f:be:c0:db:dc:3c:f2:e2:19:c9:b0:30:bb:2e:
- a2:95:48:06:bd:8e:9d:bd:8c:6b:5e:c6:9a:73:4b:
- 6c:b0:20:96:47:44:d3:09:6b:6a:2b:fa:86:5f:1d:
- 0b:a7:62:22:72:d5:56:1c:aa:97:8c:ce:57:a3:0f:
- e6:bc:cd:63:54:55:60:87:50:eb:fa:8c:e9:15:70:
- b3:5c:4d:0e:27:60:fd:07:6e:8c:ec:3f:a0:25:c5:
- 01:59:a3:fc:2d:80:4b:84:4c:10:b5:c8:a7:6b:b1:
- e5:c5:c1:9a:b0:d6:4b:30:21:ba:42:65:e0:3f:59:
- cf:7f:49:4b:3b:cf:62:06:f4:89:ae:5b:81:5d:15:
- 63:fb:7c:29:a6:b5:cf:f3:b5:b5:66:06:4f:a3:da:
- 67:39
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 67:78:F9:AD:1C:53:41:1F:46:BD:49:9B:73:2E:7C:DC:5C:2D:0B:FB
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:127
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 12:87:4f:82:bb:5a:21:b0:95:f6:b5:2b:95:53:a5:10:fc:f6:
- fe:7e:03:9c:fa:cf:d7:d5:a1:72:1d:33:69:1b:0e:07:07:62:
- 74:9b:0c:2b:46:d2:b8:80:b1:72:f3:c1:83:13:62:fd:dd:17:
- 15:14:0b:64:57:26:db:70:e5:3d:44:88:05:f9:91:b0:9a:4a:
- c0:f9:87:3c:70:16:d6:1c:58:51:d9:b9:b8:ac:11:d2:4d:94:
- 58:cf:fd:9e:74:51:28:b0:4f:ed:7d:88:25:ce:6b:eb:5e:ca:
- e8:f9:ce:31:e1:b9:2d:e6:d9:0c:13:ff:3f:24:1f:fa:25:e8:
- cd:cd:25:88:e7:98:dc:b5:f8:cd:21:d2:a8:71:d1:b9:18:dd:
- 18:5d:0b:97:a7:82:04:d5:e8:36:29:4b:dc:7f:d9:42:85:55:
- 81:dc:da:f9:ca:58:38:f3:2c:df:b4:2c:23:65:d3:17:01:ed:
- f4:8b:f6:9b:0b:b5:32:ea:28:cb:c2:fb:16:2a:fe:3d:3d:0b:
- e6:f3:bf:8f:43:75:a7:d1:b8:c9:04:31:4f:60:3a:3a:4a:b0:
- 1b:16:7d:24:b8:78:be:be:7a:80:a5:81:8c:77:7c:aa:79:75:
- 4d:3f:a2:14:36:5a:81:1f:6c:44:7d:d1:9a:db:a6:f6:e3:48:
- d3:bb:ea:9c
------BEGIN CERTIFICATE-----
-MIIEwzCCA6ugAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA5WhcNMjIwNzA3MDAyODA5WjCBozELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNoYWluRC1JQ0Ex
-LXBhdGhsZW4xMjcxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDXgXipGZkS0c89UVQd0xSU7T7e
-/+Aj5Pcj/FxJJNg2k+Yq7qerxo3JrUBFyUQGR0wNZQnd2+Lwvc15HOzRjd7y/2b1
-sr1DzFh/HdtLl6WDXIdem3OHyB0rR5JV5Nu+UdXrdsKqWXJ79icvvsDb3Dzy4hnJ
-sDC7LqKVSAa9jp29jGtexppzS2ywIJZHRNMJa2or+oZfHQunYiJy1VYcqpeMzlej
-D+a8zWNUVWCHUOv6jOkVcLNcTQ4nYP0HbozsP6AlxQFZo/wtgEuETBC1yKdrseXF
-wZqw1kswIbpCZeA/Wc9/SUs7z2IG9ImuW4FdFWP7fCmmtc/ztbVmBk+j2mc5AgMB
-AAGjggENMIIBCTAdBgNVHQ4EFgQUZ3j5rRxTQR9GvUmbcy583FwtC/swgckGA1Ud
-IwSBwTCBvoAUJ45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYT
-AlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQK
-DAhTYXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3Lndv
-bGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAhv/1
-jhDeuPswDwYDVR0TBAgwBgEB/wIBfzALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEL
-BQADggEBABKHT4K7WiGwlfa1K5VTpRD89v5+A5z6z9fVoXIdM2kbDgcHYnSbDCtG
-0riAsXLzwYMTYv3dFxUUC2RXJttw5T1EiAX5kbCaSsD5hzxwFtYcWFHZubisEdJN
-lFjP/Z50USiwT+19iCXOa+teyuj5zjHhuS3m2QwT/z8kH/ol6M3NJYjnmNy1+M0h
-0qhx0bkY3RhdC5enggTV6DYpS9x/2UKFVYHc2vnKWDjzLN+0LCNl0xcB7fSL9psL
-tTLqKMvC+xYq/j09C+bzv49DdafRuMkEMU9gOjpKsBsWfSS4eL6+eoClgYx3fKp5
-dU0/ohQ2WoEfbER90ZrbpvbjSNO76pw=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-assembled.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-assembled.pem
deleted file mode 100644
index 28cc30acd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-assembled.pem
+++ /dev/null
@@ -1,175 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainD-ICA1-pathlen127, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainD-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:e2:5d:f4:bd:06:b6:a1:21:3a:2d:7f:cc:f2:5a:
- 15:36:28:0a:f2:bb:16:b5:ec:f9:e7:5b:92:ec:17:
- 75:76:89:f4:1b:7c:a9:79:cb:62:4b:55:8a:ca:cc:
- f9:f0:a9:a2:05:61:ee:d8:8b:d0:5d:c5:49:bc:7d:
- 28:26:7d:3a:22:cc:20:71:55:4c:3a:f7:24:d7:95:
- ac:ce:18:7d:0d:7b:20:4f:11:a9:7b:02:08:09:e6:
- 85:91:e4:4e:80:b9:a4:76:0f:28:cc:07:f6:f2:be:
- c1:54:63:d2:b7:81:59:09:0b:c1:bd:0d:27:70:55:
- c7:5f:bc:54:ee:73:16:7e:d2:b4:4c:df:a8:a9:81:
- cc:e3:a6:8c:eb:e3:98:49:84:0b:a0:da:f3:e1:5f:
- 32:69:6a:b0:50:69:4f:96:72:04:3f:e7:1c:80:b1:
- 2c:6f:7d:ff:41:f2:bb:0b:17:b7:b5:ce:21:ea:e6:
- c2:bd:cd:28:08:40:43:04:e5:40:e2:7d:41:35:b5:
- 51:bf:e8:20:01:99:85:a2:38:f1:6e:69:40:da:6e:
- 9f:d3:40:63:89:19:de:4d:49:d2:79:10:b6:2a:bb:
- 6f:66:fa:25:5f:96:c1:e8:38:96:e3:e5:28:28:b4:
- ca:3c:21:1c:95:cd:b5:5e:50:f1:c9:3e:c2:4c:f2:
- cb:33
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 58:92:0B:B2:E4:12:D8:A3:31:37:D9:89:F2:9E:6E:62:22:40:42:82
- X509v3 Authority Key Identifier:
- keyid:67:78:F9:AD:1C:53:41:1F:46:BD:49:9B:73:2E:7C:DC:5C:2D:0B:FB
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 58:fd:0d:2f:47:32:d2:11:b4:b5:a5:b5:ea:26:23:66:85:cc:
- 46:b5:42:fc:63:98:57:14:84:ca:2a:02:30:9e:a0:64:d4:24:
- cb:42:2e:53:a3:0f:d7:24:46:cb:37:0c:ba:d9:73:50:11:15:
- d0:4a:4a:f5:10:15:db:c9:e5:e6:a2:c3:91:89:70:c8:df:59:
- c3:2f:c3:94:a4:50:5b:f5:d8:71:e8:ba:fa:85:ee:aa:f4:b1:
- 64:29:54:62:08:cc:89:a3:41:be:df:03:d3:75:f8:92:41:95:
- 4b:06:cc:95:30:ef:a8:6f:01:9a:2e:bc:a0:7e:4c:08:4e:d4:
- f0:91:fe:b4:a3:67:0f:9c:5d:4d:7d:ad:04:d7:cf:e4:79:d8:
- b2:18:78:33:fd:a3:cb:14:d3:50:1b:50:62:ef:9d:1b:88:8d:
- 7b:42:76:ce:c7:88:70:58:40:f4:bf:7c:1e:c5:26:8c:23:b7:
- 7e:d2:85:67:c7:fe:ae:59:98:06:60:54:43:1e:31:74:25:c9:
- 1e:4c:05:d2:6d:01:3e:33:ac:5d:42:c5:47:c4:20:9f:04:30:
- ca:c7:22:63:bd:8e:16:0a:42:4c:5b:2c:3b:b4:77:3c:b4:43:
- bb:6d:4d:40:d6:ed:30:df:29:a4:3e:e2:78:c3:4f:11:a4:53:
- 65:33:e0:c9
------BEGIN CERTIFICATE-----
-MIIErDCCA5SgAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluRC1JQ0ExLXBhdGhsZW4xMjcxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMDAyODA5WhcNMjIwNzA3MDAyODA5WjCBmjELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxFjAUBgNV
-BAMMDWNoYWluRC1lbnRpdHkxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDiXfS9BrahITotf8zy
-WhU2KAryuxa17PnnW5LsF3V2ifQbfKl5y2JLVYrKzPnwqaIFYe7Yi9BdxUm8fSgm
-fToizCBxVUw69yTXlazOGH0NeyBPEal7AggJ5oWR5E6AuaR2DyjMB/byvsFUY9K3
-gVkJC8G9DSdwVcdfvFTucxZ+0rRM36ipgczjpozr45hJhAug2vPhXzJparBQaU+W
-cgQ/5xyAsSxvff9B8rsLF7e1ziHq5sK9zSgIQEME5UDifUE1tVG/6CABmYWiOPFu
-aUDabp/TQGOJGd5NSdJ5ELYqu29m+iVflsHoOJbj5SgotMo8IRyVzbVeUPHJPsJM
-8sszAgMBAAGjgfEwge4wHQYDVR0OBBYEFFiSC7LkEtijMTfZifKebmIiQEKCMIHB
-BgNVHSMEgbkwgbaAFGd4+a0cU0EfRr1Jm3MufNxcLQv7oYGapIGXMIGUMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
-A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
-dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIB
-ZDAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBY/Q0vRzLSEbS1pbXqJiNm
-hcxGtUL8Y5hXFITKKgIwnqBk1CTLQi5Tow/XJEbLNwy62XNQERXQSkr1EBXbyeXm
-osORiXDI31nDL8OUpFBb9dhx6Lr6he6q9LFkKVRiCMyJo0G+3wPTdfiSQZVLBsyV
-MO+obwGaLrygfkwITtTwkf60o2cPnF1Nfa0E18/kediyGHgz/aPLFNNQG1Bi750b
-iI17QnbOx4hwWED0v3wexSaMI7d+0oVnx/6uWZgGYFRDHjF0JckeTAXSbQE+M6xd
-QsVHxCCfBDDKxyJjvY4WCkJMWyw7tHc8tEO7bU1A1u0w3ymkPuJ4w08RpFNlM+DJ
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainD-ICA1-pathlen127, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d7:81:78:a9:19:99:12:d1:cf:3d:51:54:1d:d3:
- 14:94:ed:3e:de:ff:e0:23:e4:f7:23:fc:5c:49:24:
- d8:36:93:e6:2a:ee:a7:ab:c6:8d:c9:ad:40:45:c9:
- 44:06:47:4c:0d:65:09:dd:db:e2:f0:bd:cd:79:1c:
- ec:d1:8d:de:f2:ff:66:f5:b2:bd:43:cc:58:7f:1d:
- db:4b:97:a5:83:5c:87:5e:9b:73:87:c8:1d:2b:47:
- 92:55:e4:db:be:51:d5:eb:76:c2:aa:59:72:7b:f6:
- 27:2f:be:c0:db:dc:3c:f2:e2:19:c9:b0:30:bb:2e:
- a2:95:48:06:bd:8e:9d:bd:8c:6b:5e:c6:9a:73:4b:
- 6c:b0:20:96:47:44:d3:09:6b:6a:2b:fa:86:5f:1d:
- 0b:a7:62:22:72:d5:56:1c:aa:97:8c:ce:57:a3:0f:
- e6:bc:cd:63:54:55:60:87:50:eb:fa:8c:e9:15:70:
- b3:5c:4d:0e:27:60:fd:07:6e:8c:ec:3f:a0:25:c5:
- 01:59:a3:fc:2d:80:4b:84:4c:10:b5:c8:a7:6b:b1:
- e5:c5:c1:9a:b0:d6:4b:30:21:ba:42:65:e0:3f:59:
- cf:7f:49:4b:3b:cf:62:06:f4:89:ae:5b:81:5d:15:
- 63:fb:7c:29:a6:b5:cf:f3:b5:b5:66:06:4f:a3:da:
- 67:39
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 67:78:F9:AD:1C:53:41:1F:46:BD:49:9B:73:2E:7C:DC:5C:2D:0B:FB
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:127
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 12:87:4f:82:bb:5a:21:b0:95:f6:b5:2b:95:53:a5:10:fc:f6:
- fe:7e:03:9c:fa:cf:d7:d5:a1:72:1d:33:69:1b:0e:07:07:62:
- 74:9b:0c:2b:46:d2:b8:80:b1:72:f3:c1:83:13:62:fd:dd:17:
- 15:14:0b:64:57:26:db:70:e5:3d:44:88:05:f9:91:b0:9a:4a:
- c0:f9:87:3c:70:16:d6:1c:58:51:d9:b9:b8:ac:11:d2:4d:94:
- 58:cf:fd:9e:74:51:28:b0:4f:ed:7d:88:25:ce:6b:eb:5e:ca:
- e8:f9:ce:31:e1:b9:2d:e6:d9:0c:13:ff:3f:24:1f:fa:25:e8:
- cd:cd:25:88:e7:98:dc:b5:f8:cd:21:d2:a8:71:d1:b9:18:dd:
- 18:5d:0b:97:a7:82:04:d5:e8:36:29:4b:dc:7f:d9:42:85:55:
- 81:dc:da:f9:ca:58:38:f3:2c:df:b4:2c:23:65:d3:17:01:ed:
- f4:8b:f6:9b:0b:b5:32:ea:28:cb:c2:fb:16:2a:fe:3d:3d:0b:
- e6:f3:bf:8f:43:75:a7:d1:b8:c9:04:31:4f:60:3a:3a:4a:b0:
- 1b:16:7d:24:b8:78:be:be:7a:80:a5:81:8c:77:7c:aa:79:75:
- 4d:3f:a2:14:36:5a:81:1f:6c:44:7d:d1:9a:db:a6:f6:e3:48:
- d3:bb:ea:9c
------BEGIN CERTIFICATE-----
-MIIEwzCCA6ugAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA5WhcNMjIwNzA3MDAyODA5WjCBozELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNoYWluRC1JQ0Ex
-LXBhdGhsZW4xMjcxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDXgXipGZkS0c89UVQd0xSU7T7e
-/+Aj5Pcj/FxJJNg2k+Yq7qerxo3JrUBFyUQGR0wNZQnd2+Lwvc15HOzRjd7y/2b1
-sr1DzFh/HdtLl6WDXIdem3OHyB0rR5JV5Nu+UdXrdsKqWXJ79icvvsDb3Dzy4hnJ
-sDC7LqKVSAa9jp29jGtexppzS2ywIJZHRNMJa2or+oZfHQunYiJy1VYcqpeMzlej
-D+a8zWNUVWCHUOv6jOkVcLNcTQ4nYP0HbozsP6AlxQFZo/wtgEuETBC1yKdrseXF
-wZqw1kswIbpCZeA/Wc9/SUs7z2IG9ImuW4FdFWP7fCmmtc/ztbVmBk+j2mc5AgMB
-AAGjggENMIIBCTAdBgNVHQ4EFgQUZ3j5rRxTQR9GvUmbcy583FwtC/swgckGA1Ud
-IwSBwTCBvoAUJ45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYT
-AlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQK
-DAhTYXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3Lndv
-bGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAhv/1
-jhDeuPswDwYDVR0TBAgwBgEB/wIBfzALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEL
-BQADggEBABKHT4K7WiGwlfa1K5VTpRD89v5+A5z6z9fVoXIdM2kbDgcHYnSbDCtG
-0riAsXLzwYMTYv3dFxUUC2RXJttw5T1EiAX5kbCaSsD5hzxwFtYcWFHZubisEdJN
-lFjP/Z50USiwT+19iCXOa+teyuj5zjHhuS3m2QwT/z8kH/ol6M3NJYjnmNy1+M0h
-0qhx0bkY3RhdC5enggTV6DYpS9x/2UKFVYHc2vnKWDjzLN+0LCNl0xcB7fSL9psL
-tTLqKMvC+xYq/j09C+bzv49DdafRuMkEMU9gOjpKsBsWfSS4eL6+eoClgYx3fKp5
-dU0/ohQ2WoEfbER90ZrbpvbjSNO76pw=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-entity-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-entity-key.pem
deleted file mode 100644
index 28c6fd2a8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-entity-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEA4l30vQa2oSE6LX/M8loVNigK8rsWtez551uS7Bd1don0G3yp
-ectiS1WKysz58KmiBWHu2IvQXcVJvH0oJn06IswgcVVMOvck15Wszhh9DXsgTxGp
-ewIICeaFkeROgLmkdg8ozAf28r7BVGPSt4FZCQvBvQ0ncFXHX7xU7nMWftK0TN+o
-qYHM46aM6+OYSYQLoNrz4V8yaWqwUGlPlnIEP+ccgLEsb33/QfK7Cxe3tc4h6ubC
-vc0oCEBDBOVA4n1BNbVRv+ggAZmFojjxbmlA2m6f00BjiRneTUnSeRC2KrtvZvol
-X5bB6DiW4+UoKLTKPCEclc21XlDxyT7CTPLLMwIDAQABAoIBAA0VeSvj03KExSQU
-Gvh3FHrI3bkh7zIcvGUO+fMDeBqd5qogDnunscrA6wDF0DyE0YSWIIQLsMN6v8RR
-R5zR6CZSvh1O3NUbq9l6IT7YU4IP99IaJz2g5G4OEPJZy9/M2yCnx6fjXfax5+LE
-0k0hANBxCYWv2PO5QYjbDd2qcUZrM4Sepm7jX7ZhQGQI4q5fumfGqLZprvvxaOWF
-lpLyxUO2C/FD/eNFglpe6XWhYRDTgsT5dfglzYMnbzVlXDyfS1p3tNPIGxcNJUis
-qbzP4h67PyZXZParZwPIFzFN0L9LQG2RXWqI7NZaOjkEoMJydx/KSFCpTFl5MM4s
-pLOEuuECgYEA8T76XF7sx5u8u3nVauc2ViB4QBde334Clh7HG+XVvde1rWM/ctcC
-Ku9shZpW7xBqsg6F2YUFB6CNRX67jEJNKXtGtI9oj8svXVMzToXXcqrLlm7fEyOt
-bOS9eIxBHXIk3igZa5B73qEgnY4NnMxPw9I44GcMQeNdryoQeYgVPs0CgYEA8DYH
-JycMDyocuQd1zKgnz3yHbw2xBgli6MvSlYMaxhqn3F+ty3yuRVPKV7xAvJpEGzcx
-Z6BVIBHxAYXaqN4f3+v3LU77cxL8YcPxMuSs6QrHrJAAUEG3NbigJ4zGzrYnwH9d
-albr5K2cZT82TyPy1zlsawVJW4EQTTUdVGHUMf8CgYAjd5HRMLd45SGLIm9I5zMq
-2F01dvogu2Lf9ShqppCU93ijRBsY5BlSfJ6kybsMLIqzIMV25EKIC4eZdvdVuI2l
-kpUjiI3jzghpnQjG+5BgMFH8DNLI+o7NmpdseJo+HQDklFqgYL6FTYUBBNhle/gi
-Hu7zttKrgSTN0s5XP7V35QKBgQCA3gtSVuFiVU5ZeYYaCHBrILyruGWq/mggyhAs
-g8xeUTiSwoXDcB0yNjSMgwMb64r0KtUHaf2hGd742S2ogJoLEFVn6kJ9xsa9UFha
-3FFjKJRcoFh6tfarDGRnM2AIz7Jd1DZycTVWVklcC+B/7qI+EqF2fLyRKZlsQj18
-4orrUwKBgCe+cDVeBCwxCfRehb6niIQE3lkGxIHRFzBM4eSURUKoVIHof8nuESf2
-HDe5PYLU4Zq0RIeuIqIVIp0kh554j6GQZsJt3mWd7MxjF8Y4N4MtPsoOBrZygdrm
-9lXqawKwYMawlGb6n/D+KjjneKDtOVUKMuJk5FiMjWwi+BSeheHG
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-entity.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-entity.pem
deleted file mode 100644
index 640b8394e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainD-entity.pem
+++ /dev/null
@@ -1,86 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainD-ICA1-pathlen127, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainD-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:e2:5d:f4:bd:06:b6:a1:21:3a:2d:7f:cc:f2:5a:
- 15:36:28:0a:f2:bb:16:b5:ec:f9:e7:5b:92:ec:17:
- 75:76:89:f4:1b:7c:a9:79:cb:62:4b:55:8a:ca:cc:
- f9:f0:a9:a2:05:61:ee:d8:8b:d0:5d:c5:49:bc:7d:
- 28:26:7d:3a:22:cc:20:71:55:4c:3a:f7:24:d7:95:
- ac:ce:18:7d:0d:7b:20:4f:11:a9:7b:02:08:09:e6:
- 85:91:e4:4e:80:b9:a4:76:0f:28:cc:07:f6:f2:be:
- c1:54:63:d2:b7:81:59:09:0b:c1:bd:0d:27:70:55:
- c7:5f:bc:54:ee:73:16:7e:d2:b4:4c:df:a8:a9:81:
- cc:e3:a6:8c:eb:e3:98:49:84:0b:a0:da:f3:e1:5f:
- 32:69:6a:b0:50:69:4f:96:72:04:3f:e7:1c:80:b1:
- 2c:6f:7d:ff:41:f2:bb:0b:17:b7:b5:ce:21:ea:e6:
- c2:bd:cd:28:08:40:43:04:e5:40:e2:7d:41:35:b5:
- 51:bf:e8:20:01:99:85:a2:38:f1:6e:69:40:da:6e:
- 9f:d3:40:63:89:19:de:4d:49:d2:79:10:b6:2a:bb:
- 6f:66:fa:25:5f:96:c1:e8:38:96:e3:e5:28:28:b4:
- ca:3c:21:1c:95:cd:b5:5e:50:f1:c9:3e:c2:4c:f2:
- cb:33
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 58:92:0B:B2:E4:12:D8:A3:31:37:D9:89:F2:9E:6E:62:22:40:42:82
- X509v3 Authority Key Identifier:
- keyid:67:78:F9:AD:1C:53:41:1F:46:BD:49:9B:73:2E:7C:DC:5C:2D:0B:FB
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 58:fd:0d:2f:47:32:d2:11:b4:b5:a5:b5:ea:26:23:66:85:cc:
- 46:b5:42:fc:63:98:57:14:84:ca:2a:02:30:9e:a0:64:d4:24:
- cb:42:2e:53:a3:0f:d7:24:46:cb:37:0c:ba:d9:73:50:11:15:
- d0:4a:4a:f5:10:15:db:c9:e5:e6:a2:c3:91:89:70:c8:df:59:
- c3:2f:c3:94:a4:50:5b:f5:d8:71:e8:ba:fa:85:ee:aa:f4:b1:
- 64:29:54:62:08:cc:89:a3:41:be:df:03:d3:75:f8:92:41:95:
- 4b:06:cc:95:30:ef:a8:6f:01:9a:2e:bc:a0:7e:4c:08:4e:d4:
- f0:91:fe:b4:a3:67:0f:9c:5d:4d:7d:ad:04:d7:cf:e4:79:d8:
- b2:18:78:33:fd:a3:cb:14:d3:50:1b:50:62:ef:9d:1b:88:8d:
- 7b:42:76:ce:c7:88:70:58:40:f4:bf:7c:1e:c5:26:8c:23:b7:
- 7e:d2:85:67:c7:fe:ae:59:98:06:60:54:43:1e:31:74:25:c9:
- 1e:4c:05:d2:6d:01:3e:33:ac:5d:42:c5:47:c4:20:9f:04:30:
- ca:c7:22:63:bd:8e:16:0a:42:4c:5b:2c:3b:b4:77:3c:b4:43:
- bb:6d:4d:40:d6:ed:30:df:29:a4:3e:e2:78:c3:4f:11:a4:53:
- 65:33:e0:c9
------BEGIN CERTIFICATE-----
-MIIErDCCA5SgAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluRC1JQ0ExLXBhdGhsZW4xMjcxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMDAyODA5WhcNMjIwNzA3MDAyODA5WjCBmjELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxFjAUBgNV
-BAMMDWNoYWluRC1lbnRpdHkxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDiXfS9BrahITotf8zy
-WhU2KAryuxa17PnnW5LsF3V2ifQbfKl5y2JLVYrKzPnwqaIFYe7Yi9BdxUm8fSgm
-fToizCBxVUw69yTXlazOGH0NeyBPEal7AggJ5oWR5E6AuaR2DyjMB/byvsFUY9K3
-gVkJC8G9DSdwVcdfvFTucxZ+0rRM36ipgczjpozr45hJhAug2vPhXzJparBQaU+W
-cgQ/5xyAsSxvff9B8rsLF7e1ziHq5sK9zSgIQEME5UDifUE1tVG/6CABmYWiOPFu
-aUDabp/TQGOJGd5NSdJ5ELYqu29m+iVflsHoOJbj5SgotMo8IRyVzbVeUPHJPsJM
-8sszAgMBAAGjgfEwge4wHQYDVR0OBBYEFFiSC7LkEtijMTfZifKebmIiQEKCMIHB
-BgNVHSMEgbkwgbaAFGd4+a0cU0EfRr1Jm3MufNxcLQv7oYGapIGXMIGUMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
-A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
-dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIB
-ZDAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBY/Q0vRzLSEbS1pbXqJiNm
-hcxGtUL8Y5hXFITKKgIwnqBk1CTLQi5Tow/XJEbLNwy62XNQERXQSkr1EBXbyeXm
-osORiXDI31nDL8OUpFBb9dhx6Lr6he6q9LFkKVRiCMyJo0G+3wPTdfiSQZVLBsyV
-MO+obwGaLrygfkwITtTwkf60o2cPnF1Nfa0E18/kediyGHgz/aPLFNNQG1Bi750b
-iI17QnbOx4hwWED0v3wexSaMI7d+0oVnx/6uWZgGYFRDHjF0JckeTAXSbQE+M6xd
-QsVHxCCfBDDKxyJjvY4WCkJMWyw7tHc8tEO7bU1A1u0w3ymkPuJ4w08RpFNlM+DJ
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-ICA1-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-ICA1-key.pem
deleted file mode 100644
index c7d2f61f8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-ICA1-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEA1vNvuNsQ34nfO9kuesE0GlaXbHME/BVQBJNmyxe6+/koudbO
-fvV4u7FPqkv4gDXZrv6ZdffNeQvPytrLWJpum5Eh9Bf9Vrg6z8/t95Bqc2wGme8O
-j2Xc0Ojbe8HoTW1hnsxaIN6GOliB+rHUXzx0Q0VhNiz+pDWu4jnH/d2zg9YX3PWZ
-P2cOwWDRaY08+WLpg65mEKpAkWMLKuXBqB+OipsRn7+mRfsWcO1sGxSYgGkEw70T
-IufZM0idimwPnDkIKZKDe3Oj2obWSgAPp8J7v6wPKmKWWzvvn+EIu0S6xJlPoLle
-Tctzc/7ugmlPr8dZWjaBRMbjUDu/jRTvfpbvwQIDAQABAoIBABqvTgdc6tNVgmkj
-pSmIIrfCWDoWbV/+JVjsE67S21u8qtmnWStZvgtPD9zMYaVJCiU3ZkXG5bNJTBqa
-3vO4+FJHyjdLYyAI7wQthBVf0FdT6d3iV6RluOwWfGj4waYbFitooyfBeFh19Gzy
-9rJ8BtLzIgZfv50TLQrYsYNKqqaLC0NGAWaAnW/hj98Em1heFJapt+qalMrnR3iF
-CpIgFAXK8dh2msQDLynoHTfG7ErZy4gtZcDC2hN07aU9ljVNqm8Z97MxrG5Xzj3W
-ZfHRpNx0TbTk/wgpAj71jPvkxGoQmwTrOmMynrF8zl/0IktbJ815gZwNyv3hl9yN
-HsjD3YECgYEA+L6eujveySdena54FnA5twGFdw4udkwOm2l1JLCIeaYjFlov+vM6
-v0JJmpXx6rWWfVByAssn735QTv5+JKhVbi3a3IGhUvVfkVrtgOPNYdz9eIYIh/2j
-sSe2VKQFcXzatFHupKS00i5XwhozlNlbdd9na4gUDh3QOtqd/vreJeUCgYEA3Th6
-d+sNTuZPvWde1JHtIb7gvAavKP85LQ5TEIh/emck7NEAFjjje0UQ11Ak0Po0wEb2
-DB8X7QhSIu5AHzg8NyijDII2AluUn6CkL1tBKY1P35pzGsoVxucum2BxXnYnqn0p
-5cLbqvW/V84T7bODMwDvVX/NCrKnP0fUeYRkxK0CgYEAzA91H8rl5ZeKo0jx81Z1
-wpBY8WaM7zdN9Gj7VPINw95rgnbSTckkNKsovsyr/aSipINORMRtKqgxMdzNlz0R
-eKXdmnAt7GSn1hMGLGq1nscwmaM7dHS7ySWPCrjUTlnjAXMFl8QXIyYpkG72SfJW
-ecigizLDYSFMJjwayYb8n5ECgYBgRB6PJpsw9WpHyr7qk+H0KGMVj3cTyRSxdaVR
-8YQ/2Lip0T1PbkwXrXNprveGdQsVjQuvNKytukw75R/ENi2F90oUvGkSV5XybO5l
-qTlPAq56aHSkeMJHPvz6IlrTN2mFeFgOIuCCodQ1OnlTnCWAwWxk8Wtht2KuV+yv
-QJy1NQKBgQCWk7epAmek0e7fSE/otqqtW6XZHwj1pjTUHRxmw+5Xv73a2bdCBrh/
-GIcaxPaC2KwGTPqJikgxqRThnDlh3n1ArW8vmoDOYpanQzjrY/vEhIcFQPCyNHfX
-i+yiFo5fa/EkqBQvmt/fKabXV6ICwDNdiR7/5vBB3qhknrI1w97YKQ==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-ICA1-pathlen128.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-ICA1-pathlen128.pem
deleted file mode 100644
index da10c86f7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-ICA1-pathlen128.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainE-ICA1-pathlen128, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d6:f3:6f:b8:db:10:df:89:df:3b:d9:2e:7a:c1:
- 34:1a:56:97:6c:73:04:fc:15:50:04:93:66:cb:17:
- ba:fb:f9:28:b9:d6:ce:7e:f5:78:bb:b1:4f:aa:4b:
- f8:80:35:d9:ae:fe:99:75:f7:cd:79:0b:cf:ca:da:
- cb:58:9a:6e:9b:91:21:f4:17:fd:56:b8:3a:cf:cf:
- ed:f7:90:6a:73:6c:06:99:ef:0e:8f:65:dc:d0:e8:
- db:7b:c1:e8:4d:6d:61:9e:cc:5a:20:de:86:3a:58:
- 81:fa:b1:d4:5f:3c:74:43:45:61:36:2c:fe:a4:35:
- ae:e2:39:c7:fd:dd:b3:83:d6:17:dc:f5:99:3f:67:
- 0e:c1:60:d1:69:8d:3c:f9:62:e9:83:ae:66:10:aa:
- 40:91:63:0b:2a:e5:c1:a8:1f:8e:8a:9b:11:9f:bf:
- a6:45:fb:16:70:ed:6c:1b:14:98:80:69:04:c3:bd:
- 13:22:e7:d9:33:48:9d:8a:6c:0f:9c:39:08:29:92:
- 83:7b:73:a3:da:86:d6:4a:00:0f:a7:c2:7b:bf:ac:
- 0f:2a:62:96:5b:3b:ef:9f:e1:08:bb:44:ba:c4:99:
- 4f:a0:b9:5e:4d:cb:73:73:fe:ee:82:69:4f:af:c7:
- 59:5a:36:81:44:c6:e3:50:3b:bf:8d:14:ef:7e:96:
- ef:c1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 44:7B:00:7C:9C:1C:97:9F:97:AA:6B:F2:5E:E6:81:7C:0E:AE:E6:2B
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:128
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 81:17:73:e0:8e:30:5f:5e:a7:25:a8:c0:89:f0:2a:c5:cc:72:
- 30:0a:55:f2:c8:13:34:de:3c:7c:5e:e1:56:5e:72:04:10:8b:
- 4b:05:3b:14:3c:37:0e:48:68:23:a1:2c:f5:72:f0:36:57:79:
- fa:6f:ee:b0:17:83:f0:8a:1f:f0:6b:88:3b:57:c8:b2:57:c9:
- 4e:35:14:a8:d7:31:db:68:74:8c:30:24:b3:9d:c9:8d:8c:36:
- 34:30:0e:f3:4e:74:bd:14:77:c8:13:7f:bc:d3:21:34:e8:87:
- e7:a3:80:62:ea:20:4b:40:ef:f5:97:db:c7:63:6b:e4:06:12:
- 1a:b7:55:da:5a:34:32:95:59:c4:68:85:2c:87:dd:77:5f:ff:
- 28:cf:95:c3:68:f8:c4:32:af:8e:c6:2c:39:6b:bd:3a:dd:18:
- 16:a8:a7:0e:9d:93:6d:8e:77:b1:0e:86:55:0d:a4:aa:e6:3f:
- f5:69:1d:d5:c0:5e:1a:b1:bc:ab:5f:eb:1f:76:6a:c5:22:57:
- a9:f1:ee:55:56:37:61:9e:49:e6:bc:8b:e9:9d:6b:11:6f:90:
- cb:d6:18:3c:81:f2:c8:4c:92:e4:4d:73:d1:a1:be:8d:fe:d7:
- 54:20:d4:df:43:7d:e7:57:f1:dd:9f:a0:6d:cd:e3:ab:30:fa:
- cc:29:0b:01
------BEGIN CERTIFICATE-----
-MIIExDCCA6ygAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA5WhcNMjIwNzA3MDAyODA5WjCBozELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNoYWluRS1JQ0Ex
-LXBhdGhsZW4xMjgxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDW82+42xDfid872S56wTQaVpds
-cwT8FVAEk2bLF7r7+Si51s5+9Xi7sU+qS/iANdmu/pl19815C8/K2stYmm6bkSH0
-F/1WuDrPz+33kGpzbAaZ7w6PZdzQ6Nt7wehNbWGezFog3oY6WIH6sdRfPHRDRWE2
-LP6kNa7iOcf93bOD1hfc9Zk/Zw7BYNFpjTz5YumDrmYQqkCRYwsq5cGoH46KmxGf
-v6ZF+xZw7WwbFJiAaQTDvRMi59kzSJ2KbA+cOQgpkoN7c6PahtZKAA+nwnu/rA8q
-YpZbO++f4Qi7RLrEmU+guV5Ny3Nz/u6CaU+vx1laNoFExuNQO7+NFO9+lu/BAgMB
-AAGjggEOMIIBCjAdBgNVHQ4EFgQURHsAfJwcl5+XqmvyXuaBfA6u5iswgckGA1Ud
-IwSBwTCBvoAUJ45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYT
-AlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQK
-DAhTYXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3Lndv
-bGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAhv/1
-jhDeuPswEAYDVR0TBAkwBwEB/wICAIAwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEB
-CwUAA4IBAQCBF3PgjjBfXqclqMCJ8CrFzHIwClXyyBM03jx8XuFWXnIEEItLBTsU
-PDcOSGgjoSz1cvA2V3n6b+6wF4Pwih/wa4g7V8iyV8lONRSo1zHbaHSMMCSzncmN
-jDY0MA7zTnS9FHfIE3+80yE06Ifno4Bi6iBLQO/1l9vHY2vkBhIat1XaWjQylVnE
-aIUsh913X/8oz5XDaPjEMq+Oxiw5a7063RgWqKcOnZNtjnexDoZVDaSq5j/1aR3V
-wF4asbyrX+sfdmrFIlep8e5VVjdhnknmvIvpnWsRb5DL1hg8gfLITJLkTXPRob6N
-/tdUINTfQ33nV/Hdn6BtzeOrMPrMKQsB
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-assembled.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-assembled.pem
deleted file mode 100644
index be49ab5be..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-assembled.pem
+++ /dev/null
@@ -1,175 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainE-ICA1-pathlen128, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainE-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d8:6f:49:bb:56:ea:34:4c:25:a6:8c:44:f6:c9:
- 75:8f:6b:83:b8:8b:ec:c6:f6:d3:c7:40:e2:d1:b2:
- d8:77:92:e9:97:c4:b6:57:ad:10:c8:cb:e7:0a:40:
- ef:3c:a8:38:dc:94:22:08:e7:53:2a:c8:7a:26:90:
- 41:43:6f:7b:8f:4e:58:74:69:20:92:9f:12:aa:6a:
- c5:cf:7f:24:d1:d0:89:2f:6c:5e:62:31:0a:20:23:
- 6b:07:c2:a0:7d:4d:ed:05:6d:2c:b1:9a:85:e6:41:
- 61:12:6c:85:d3:d4:be:7e:cf:23:d9:79:b1:46:23:
- d7:1a:f7:d6:f4:97:43:a5:08:03:7a:51:0d:b0:e7:
- 56:62:86:37:07:81:e8:21:f1:10:63:41:b6:82:6d:
- f2:cd:d9:7f:80:6f:a7:4b:77:10:15:54:02:9c:7a:
- d0:6e:b8:29:98:72:34:08:7b:ce:d7:24:91:48:a6:
- c3:f2:9d:77:fc:aa:73:13:70:60:f9:8f:37:4c:d7:
- 34:5c:fa:51:b1:c0:d5:25:e1:75:b2:e2:cd:23:97:
- c9:a6:bf:d3:5e:21:4b:12:f5:b2:d0:df:92:7f:4c:
- a8:b2:21:43:2c:f9:3e:fb:14:99:1f:ed:76:2c:87:
- 5a:df:72:d3:85:a3:a8:92:1a:ad:66:19:50:44:8a:
- 05:e1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 26:FC:70:E0:8F:A1:3D:52:82:76:6B:CB:C7:0F:89:9D:2B:86:69:F5
- X509v3 Authority Key Identifier:
- keyid:44:7B:00:7C:9C:1C:97:9F:97:AA:6B:F2:5E:E6:81:7C:0E:AE:E6:2B
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 1a:af:fd:cb:5e:63:ed:ac:39:c5:e1:0f:32:2c:6e:f2:0b:23:
- 1d:d8:61:e4:39:d6:a6:e6:69:a3:df:f7:3b:80:84:22:72:58:
- 0e:bc:ef:92:10:65:93:16:20:e4:69:d7:d1:58:0b:33:f2:68:
- a2:6b:76:36:d0:f0:36:3c:61:31:dc:44:a0:00:e2:80:9e:62:
- d5:fe:cc:08:66:ca:23:88:b3:e0:48:32:be:d8:dd:d2:a6:f9:
- 20:13:1a:1f:a0:65:80:8d:d8:c5:c6:c5:3f:1a:ec:ae:2a:a5:
- ac:de:97:eb:56:96:c7:55:16:ee:5f:e2:74:e2:03:1f:91:69:
- 70:b8:fb:5a:42:26:7a:fa:5e:8d:19:eb:5a:2e:32:09:c9:95:
- be:9e:34:d4:90:88:42:7e:ad:70:8b:cf:7d:5d:d0:a8:91:aa:
- 93:1a:d1:15:7c:2d:a7:af:c2:d2:d7:65:20:5e:8b:3d:b1:df:
- 98:5f:56:ad:ed:57:ca:53:ac:0e:f7:86:a4:80:d2:ea:f2:01:
- e6:b0:5f:6f:4f:12:17:31:7c:8e:24:43:ac:94:06:aa:6d:a4:
- eb:eb:43:b6:64:ed:76:24:bf:73:d8:7c:56:7e:d5:8b:66:f6:
- cb:09:0d:f7:44:34:a3:93:d8:e7:36:1a:5f:0f:51:22:09:79:
- 24:dd:31:9e
------BEGIN CERTIFICATE-----
-MIIErDCCA5SgAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluRS1JQ0ExLXBhdGhsZW4xMjgxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMDAyODA5WhcNMjIwNzA3MDAyODA5WjCBmjELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxFjAUBgNV
-BAMMDWNoYWluRS1lbnRpdHkxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYb0m7Vuo0TCWmjET2
-yXWPa4O4i+zG9tPHQOLRsth3kumXxLZXrRDIy+cKQO88qDjclCII51MqyHomkEFD
-b3uPTlh0aSCSnxKqasXPfyTR0IkvbF5iMQogI2sHwqB9Te0FbSyxmoXmQWESbIXT
-1L5+zyPZebFGI9ca99b0l0OlCAN6UQ2w51ZihjcHgegh8RBjQbaCbfLN2X+Ab6dL
-dxAVVAKcetBuuCmYcjQIe87XJJFIpsPynXf8qnMTcGD5jzdM1zRc+lGxwNUl4XWy
-4s0jl8mmv9NeIUsS9bLQ35J/TKiyIUMs+T77FJkf7XYsh1rfctOFo6iSGq1mGVBE
-igXhAgMBAAGjgfEwge4wHQYDVR0OBBYEFCb8cOCPoT1SgnZry8cPiZ0rhmn1MIHB
-BgNVHSMEgbkwgbaAFER7AHycHJefl6pr8l7mgXwOruYroYGapIGXMIGUMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
-A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
-dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIB
-ZDAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAar/3LXmPtrDnF4Q8yLG7y
-CyMd2GHkOdam5mmj3/c7gIQiclgOvO+SEGWTFiDkadfRWAsz8miia3Y20PA2PGEx
-3ESgAOKAnmLV/swIZsojiLPgSDK+2N3SpvkgExofoGWAjdjFxsU/GuyuKqWs3pfr
-VpbHVRbuX+J04gMfkWlwuPtaQiZ6+l6NGetaLjIJyZW+njTUkIhCfq1wi899XdCo
-kaqTGtEVfC2nr8LS12UgXos9sd+YX1at7VfKU6wO94akgNLq8gHmsF9vTxIXMXyO
-JEOslAaqbaTr60O2ZO12JL9z2HxWftWLZvbLCQ33RDSjk9jnNhpfD1EiCXkk3TGe
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainE-ICA1-pathlen128, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d6:f3:6f:b8:db:10:df:89:df:3b:d9:2e:7a:c1:
- 34:1a:56:97:6c:73:04:fc:15:50:04:93:66:cb:17:
- ba:fb:f9:28:b9:d6:ce:7e:f5:78:bb:b1:4f:aa:4b:
- f8:80:35:d9:ae:fe:99:75:f7:cd:79:0b:cf:ca:da:
- cb:58:9a:6e:9b:91:21:f4:17:fd:56:b8:3a:cf:cf:
- ed:f7:90:6a:73:6c:06:99:ef:0e:8f:65:dc:d0:e8:
- db:7b:c1:e8:4d:6d:61:9e:cc:5a:20:de:86:3a:58:
- 81:fa:b1:d4:5f:3c:74:43:45:61:36:2c:fe:a4:35:
- ae:e2:39:c7:fd:dd:b3:83:d6:17:dc:f5:99:3f:67:
- 0e:c1:60:d1:69:8d:3c:f9:62:e9:83:ae:66:10:aa:
- 40:91:63:0b:2a:e5:c1:a8:1f:8e:8a:9b:11:9f:bf:
- a6:45:fb:16:70:ed:6c:1b:14:98:80:69:04:c3:bd:
- 13:22:e7:d9:33:48:9d:8a:6c:0f:9c:39:08:29:92:
- 83:7b:73:a3:da:86:d6:4a:00:0f:a7:c2:7b:bf:ac:
- 0f:2a:62:96:5b:3b:ef:9f:e1:08:bb:44:ba:c4:99:
- 4f:a0:b9:5e:4d:cb:73:73:fe:ee:82:69:4f:af:c7:
- 59:5a:36:81:44:c6:e3:50:3b:bf:8d:14:ef:7e:96:
- ef:c1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 44:7B:00:7C:9C:1C:97:9F:97:AA:6B:F2:5E:E6:81:7C:0E:AE:E6:2B
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:128
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 81:17:73:e0:8e:30:5f:5e:a7:25:a8:c0:89:f0:2a:c5:cc:72:
- 30:0a:55:f2:c8:13:34:de:3c:7c:5e:e1:56:5e:72:04:10:8b:
- 4b:05:3b:14:3c:37:0e:48:68:23:a1:2c:f5:72:f0:36:57:79:
- fa:6f:ee:b0:17:83:f0:8a:1f:f0:6b:88:3b:57:c8:b2:57:c9:
- 4e:35:14:a8:d7:31:db:68:74:8c:30:24:b3:9d:c9:8d:8c:36:
- 34:30:0e:f3:4e:74:bd:14:77:c8:13:7f:bc:d3:21:34:e8:87:
- e7:a3:80:62:ea:20:4b:40:ef:f5:97:db:c7:63:6b:e4:06:12:
- 1a:b7:55:da:5a:34:32:95:59:c4:68:85:2c:87:dd:77:5f:ff:
- 28:cf:95:c3:68:f8:c4:32:af:8e:c6:2c:39:6b:bd:3a:dd:18:
- 16:a8:a7:0e:9d:93:6d:8e:77:b1:0e:86:55:0d:a4:aa:e6:3f:
- f5:69:1d:d5:c0:5e:1a:b1:bc:ab:5f:eb:1f:76:6a:c5:22:57:
- a9:f1:ee:55:56:37:61:9e:49:e6:bc:8b:e9:9d:6b:11:6f:90:
- cb:d6:18:3c:81:f2:c8:4c:92:e4:4d:73:d1:a1:be:8d:fe:d7:
- 54:20:d4:df:43:7d:e7:57:f1:dd:9f:a0:6d:cd:e3:ab:30:fa:
- cc:29:0b:01
------BEGIN CERTIFICATE-----
-MIIExDCCA6ygAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA5WhcNMjIwNzA3MDAyODA5WjCBozELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNoYWluRS1JQ0Ex
-LXBhdGhsZW4xMjgxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDW82+42xDfid872S56wTQaVpds
-cwT8FVAEk2bLF7r7+Si51s5+9Xi7sU+qS/iANdmu/pl19815C8/K2stYmm6bkSH0
-F/1WuDrPz+33kGpzbAaZ7w6PZdzQ6Nt7wehNbWGezFog3oY6WIH6sdRfPHRDRWE2
-LP6kNa7iOcf93bOD1hfc9Zk/Zw7BYNFpjTz5YumDrmYQqkCRYwsq5cGoH46KmxGf
-v6ZF+xZw7WwbFJiAaQTDvRMi59kzSJ2KbA+cOQgpkoN7c6PahtZKAA+nwnu/rA8q
-YpZbO++f4Qi7RLrEmU+guV5Ny3Nz/u6CaU+vx1laNoFExuNQO7+NFO9+lu/BAgMB
-AAGjggEOMIIBCjAdBgNVHQ4EFgQURHsAfJwcl5+XqmvyXuaBfA6u5iswgckGA1Ud
-IwSBwTCBvoAUJ45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYT
-AlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQK
-DAhTYXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3Lndv
-bGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAhv/1
-jhDeuPswEAYDVR0TBAkwBwEB/wICAIAwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEB
-CwUAA4IBAQCBF3PgjjBfXqclqMCJ8CrFzHIwClXyyBM03jx8XuFWXnIEEItLBTsU
-PDcOSGgjoSz1cvA2V3n6b+6wF4Pwih/wa4g7V8iyV8lONRSo1zHbaHSMMCSzncmN
-jDY0MA7zTnS9FHfIE3+80yE06Ifno4Bi6iBLQO/1l9vHY2vkBhIat1XaWjQylVnE
-aIUsh913X/8oz5XDaPjEMq+Oxiw5a7063RgWqKcOnZNtjnexDoZVDaSq5j/1aR3V
-wF4asbyrX+sfdmrFIlep8e5VVjdhnknmvIvpnWsRb5DL1hg8gfLITJLkTXPRob6N
-/tdUINTfQ33nV/Hdn6BtzeOrMPrMKQsB
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-entity-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-entity-key.pem
deleted file mode 100644
index a896306eb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-entity-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpQIBAAKCAQEA2G9Ju1bqNEwlpoxE9sl1j2uDuIvsxvbTx0Di0bLYd5Lpl8S2
-V60QyMvnCkDvPKg43JQiCOdTKsh6JpBBQ297j05YdGkgkp8SqmrFz38k0dCJL2xe
-YjEKICNrB8KgfU3tBW0ssZqF5kFhEmyF09S+fs8j2XmxRiPXGvfW9JdDpQgDelEN
-sOdWYoY3B4HoIfEQY0G2gm3yzdl/gG+nS3cQFVQCnHrQbrgpmHI0CHvO1ySRSKbD
-8p13/KpzE3Bg+Y83TNc0XPpRscDVJeF1suLNI5fJpr/TXiFLEvWy0N+Sf0yosiFD
-LPk++xSZH+12LIda33LThaOokhqtZhlQRIoF4QIDAQABAoIBAQCWY23WMKR4Rlj7
-Cwh4eq+nQku6le+mqKerEhkJIL5tB7YscNFKxsSc4aHebBRQD4vDKWMk0KfnWHoY
-BbBzjSlMAGJSMSIi/0lXBO4CKhSJfd91BlXm4LBqeHHMaJ5fsx/4301o8zgLMG6l
-AKdU88SSFJiSao6VcB3tbTz9o4WrS0jQjRClC+f2LWbn8ua/JhP0q1Tfji10fdLR
-dVc5dzB8R59f4CuA0dIuACwV021E2sL0wRWCb4FV6IQBDD3hFgQjhJOTTkVOHsxq
-nAwWQTJO2N2aODC33+ZTAQsMBnFhXjBUk0UWJHLAWVbN+q4O8o6J5fk4VSQG9/u4
-PMjvK0GJAoGBAPTF4AbmG8vAVCMRE6K2pq1Hqw79XWd22le4jvwahle7F+CgUeiO
-Nj2HOgzZwUg9diXxjjYpRuW0x2HgyvC07NRXPNDeb08W3z35pv/SJFj6uiy/Itwi
-W7527KfRoVz1kWzIs4Erod+a+W0dJCZsFYqlc4Yl2JdKDGQhcZFmc/2HAoGBAOJc
-qlDioL5gAnHtUD9b0KkMafnQ8KzI+YPeLvxxP/9P8lVTMno0JpByNrxkpKx9JUBc
-DdOCXUj0dkynuNEfRfKydCez6oThLJHHfxvFniX+3Xm32j9+gj7SqLtpGiHuP9nj
-UInKsKDokPZLQLF7KNjNfBjjc29MPP+cmRPg+XtXAoGATjVbW1jy0KtnNr0iFP9f
-SkZ39ZYm3gQvx4+EwDCJdEanXnJbOX8W/ZnThn+dLkPVGFKSKeQObx7QBgoZTcfB
-VCd7mxE3Z4HbWqYGIf829edGzT1VGhkwTy8YdpaYhGdCTAvkrwUN97BAughxoIUw
-bNhojRhSmCRkySmWa+rcbMkCgYEAlfiG7qf3j6nUdN6huBiAmj+bRuPjUNamWXOu
-9ZmiqOiyyU0huE0s7658DT0wzQbs00Mp9eP9IgS1C/xjOknZ8f3BbzyIOBlnif3+
-fMvlB49f9PCWLFMIv86Z8/CiW7CZpSYxidk8RJ9Qy5z3856BZYJeoa6wICEGmOOL
-l9wJ7mkCgYEAkJAteZKula8p1kNvI3hfzpCSjm8JJId8S58T3U0Lql9FT3M50xSx
-81Aoxn0sAcTihtcjjTTQVFPAxs6g/W4WcpR8EbTb1XJ+jdCywZZkCZCMm1D2RF8b
-kJ0w2xuBUDwgUsaLMzxPpEY6SIwStAmTbWOAYXdx8Zg4sUwroE9F/YU=
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-entity.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-entity.pem
deleted file mode 100644
index a4b979416..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainE-entity.pem
+++ /dev/null
@@ -1,86 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainE-ICA1-pathlen128, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainE-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d8:6f:49:bb:56:ea:34:4c:25:a6:8c:44:f6:c9:
- 75:8f:6b:83:b8:8b:ec:c6:f6:d3:c7:40:e2:d1:b2:
- d8:77:92:e9:97:c4:b6:57:ad:10:c8:cb:e7:0a:40:
- ef:3c:a8:38:dc:94:22:08:e7:53:2a:c8:7a:26:90:
- 41:43:6f:7b:8f:4e:58:74:69:20:92:9f:12:aa:6a:
- c5:cf:7f:24:d1:d0:89:2f:6c:5e:62:31:0a:20:23:
- 6b:07:c2:a0:7d:4d:ed:05:6d:2c:b1:9a:85:e6:41:
- 61:12:6c:85:d3:d4:be:7e:cf:23:d9:79:b1:46:23:
- d7:1a:f7:d6:f4:97:43:a5:08:03:7a:51:0d:b0:e7:
- 56:62:86:37:07:81:e8:21:f1:10:63:41:b6:82:6d:
- f2:cd:d9:7f:80:6f:a7:4b:77:10:15:54:02:9c:7a:
- d0:6e:b8:29:98:72:34:08:7b:ce:d7:24:91:48:a6:
- c3:f2:9d:77:fc:aa:73:13:70:60:f9:8f:37:4c:d7:
- 34:5c:fa:51:b1:c0:d5:25:e1:75:b2:e2:cd:23:97:
- c9:a6:bf:d3:5e:21:4b:12:f5:b2:d0:df:92:7f:4c:
- a8:b2:21:43:2c:f9:3e:fb:14:99:1f:ed:76:2c:87:
- 5a:df:72:d3:85:a3:a8:92:1a:ad:66:19:50:44:8a:
- 05:e1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 26:FC:70:E0:8F:A1:3D:52:82:76:6B:CB:C7:0F:89:9D:2B:86:69:F5
- X509v3 Authority Key Identifier:
- keyid:44:7B:00:7C:9C:1C:97:9F:97:AA:6B:F2:5E:E6:81:7C:0E:AE:E6:2B
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 1a:af:fd:cb:5e:63:ed:ac:39:c5:e1:0f:32:2c:6e:f2:0b:23:
- 1d:d8:61:e4:39:d6:a6:e6:69:a3:df:f7:3b:80:84:22:72:58:
- 0e:bc:ef:92:10:65:93:16:20:e4:69:d7:d1:58:0b:33:f2:68:
- a2:6b:76:36:d0:f0:36:3c:61:31:dc:44:a0:00:e2:80:9e:62:
- d5:fe:cc:08:66:ca:23:88:b3:e0:48:32:be:d8:dd:d2:a6:f9:
- 20:13:1a:1f:a0:65:80:8d:d8:c5:c6:c5:3f:1a:ec:ae:2a:a5:
- ac:de:97:eb:56:96:c7:55:16:ee:5f:e2:74:e2:03:1f:91:69:
- 70:b8:fb:5a:42:26:7a:fa:5e:8d:19:eb:5a:2e:32:09:c9:95:
- be:9e:34:d4:90:88:42:7e:ad:70:8b:cf:7d:5d:d0:a8:91:aa:
- 93:1a:d1:15:7c:2d:a7:af:c2:d2:d7:65:20:5e:8b:3d:b1:df:
- 98:5f:56:ad:ed:57:ca:53:ac:0e:f7:86:a4:80:d2:ea:f2:01:
- e6:b0:5f:6f:4f:12:17:31:7c:8e:24:43:ac:94:06:aa:6d:a4:
- eb:eb:43:b6:64:ed:76:24:bf:73:d8:7c:56:7e:d5:8b:66:f6:
- cb:09:0d:f7:44:34:a3:93:d8:e7:36:1a:5f:0f:51:22:09:79:
- 24:dd:31:9e
------BEGIN CERTIFICATE-----
-MIIErDCCA5SgAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluRS1JQ0ExLXBhdGhsZW4xMjgxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMDAyODA5WhcNMjIwNzA3MDAyODA5WjCBmjELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxFjAUBgNV
-BAMMDWNoYWluRS1lbnRpdHkxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYb0m7Vuo0TCWmjET2
-yXWPa4O4i+zG9tPHQOLRsth3kumXxLZXrRDIy+cKQO88qDjclCII51MqyHomkEFD
-b3uPTlh0aSCSnxKqasXPfyTR0IkvbF5iMQogI2sHwqB9Te0FbSyxmoXmQWESbIXT
-1L5+zyPZebFGI9ca99b0l0OlCAN6UQ2w51ZihjcHgegh8RBjQbaCbfLN2X+Ab6dL
-dxAVVAKcetBuuCmYcjQIe87XJJFIpsPynXf8qnMTcGD5jzdM1zRc+lGxwNUl4XWy
-4s0jl8mmv9NeIUsS9bLQ35J/TKiyIUMs+T77FJkf7XYsh1rfctOFo6iSGq1mGVBE
-igXhAgMBAAGjgfEwge4wHQYDVR0OBBYEFCb8cOCPoT1SgnZry8cPiZ0rhmn1MIHB
-BgNVHSMEgbkwgbaAFER7AHycHJefl6pr8l7mgXwOruYroYGapIGXMIGUMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
-A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
-dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIB
-ZDAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAar/3LXmPtrDnF4Q8yLG7y
-CyMd2GHkOdam5mmj3/c7gIQiclgOvO+SEGWTFiDkadfRWAsz8miia3Y20PA2PGEx
-3ESgAOKAnmLV/swIZsojiLPgSDK+2N3SpvkgExofoGWAjdjFxsU/GuyuKqWs3pfr
-VpbHVRbuX+J04gMfkWlwuPtaQiZ6+l6NGetaLjIJyZW+njTUkIhCfq1wi899XdCo
-kaqTGtEVfC2nr8LS12UgXos9sd+YX1at7VfKU6wO94akgNLq8gHmsF9vTxIXMXyO
-JEOslAaqbaTr60O2ZO12JL9z2HxWftWLZvbLCQ33RDSjk9jnNhpfD1EiCXkk3TGe
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA1-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA1-key.pem
deleted file mode 100644
index efe224d61..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA1-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEA4BPJsI6dP4jUMEq06BEhk1wgRQj4epG5LK3/YKoWnxy7iLg9
-CjnBial2yo5scnJ+bnSmNixp3zPW6WZwZX+6KkQXYp8zRhLmA6Wm4lwJB8+8jXb+
-oP3XckqUyMovlZGcCnd/giO+cicpRc1Bz+zhhM9n0BiYuTG+yf6YXT+q0oN2RYWr
-CIZjWFuz5UpDPaGZ4oDRK7IG4/AQhfmmNrhSK51zOzQjUT3+Vi/pObJoBz5vUnv0
-QNRy+mkZyv8iyEWVBV6RCD8nLUHRdKUGnPNAvbv8ZWOG7YAiUMH2T9yPQ0xe+7/Z
-bR+0hA8e6MZdxVPVLMl/a5iTp101mhdikS4gwQIDAQABAoIBAQC8aacToDc0rxbM
-LGUFJTJ4N+SiZ7KXTWTI3t13KE2xKHW/tjsNGBdWa3oJQ8yIRyFsOwVvU9UJ6wrw
-YkRr9ARTecG4GWkBqO5jbqxudTjaqqA+yym7sPWxkmiclPWB7FeqrWQ3x1phnfAk
-UzzdWq8d/0+pOKViQyPLsRnofppiOril9LTJnklrBMDkf7wE9X6gpbpRfM7fd8nH
-5mekM3pxKUi2v03yCyAJT15L5f7f7BIgXaz+QCXZpT6O+6c4D7neI3ne6b8JHgvT
-XGXRXyvwC38wENCbsvBIsPAF1UDMS//F7oLK5qysCeoStPYX0uIbtTLwlfOHL//g
-rYtnskmpAoGBAPyHWs11M7Xr1AWX0cgStgF8lkzu9YjxDr/HvWr+1Jr03YYKTOMj
-XY/PKDRbjn/FXZ2Dw0WjmsKhsgnHsWfARHMLrZ7eQzhuhd2w6NsaAiREA7zh0FUF
-D0+K8m5L4cob3OU7/sLS7+ubvGrIWuvVs1GAo4+/Q5MPJ9h+WOrZC4rTAoGBAOMo
-UBxFWKpaDu7cekWcLDxqK3d77gDG0Xo4bDtRVTa7fn+jdqqMNuLG2D+8t/Cqjr2z
-CNvTTdTohzsHsCay5u6RX3GSe9z3jdXu8CFNMnDVceYY/uxQio9biq4pXIKtfobn
-2orzAOmqN9LeR76fME4WYwXTCPQVVcQzQN55WMGbAoGAGrLw3cIjent5ijHYAzA/
-P/79IRsuqJDb/1jN5Q8WSV/UQAS8xlMJ5FeBp696bHXghPPWZHl8tlFEMpaDYjXI
-xuUYMTDMqJ2+14aJyAiC63SpdIHndeW4Da/iG9k4ARdbDn1+XPjSVvW7QQr32fFZ
-KSfRozQUn+q9Sr1pB0N1XfMCgYEA3UL7JU522xf1y7x+bSd9/yr7Q9s3LRJ8IKys
-3+qNMk7XHMTAZcdF/wboxMyx7n5zo1usmVLtUSFd96W5czh3sJFxglLIy6dmRKgE
-xqtHIpkF5LccOFsLXDAymQo4ziDoSce1G/svPGtNDNzuzUKJ7sXnlljFM9tEO2Qh
-H5LbXVkCgYBYzArfIhOCL1pGBSh5ocpyXG16Dn7dd6HmWPsD0kVwftlW+gJAmnXY
-3cFzrQSacqe1Z76OqtmFfUGKE4pw50ayshkO9PG0DFi+b9SZgQX0yrDY1lHHS74v
-MbuiJNOxHZugawEd2LUYQzry4PKNqYg31VuxpIQKjHrUvGivCyTALA==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA1-pathlen1.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA1-pathlen1.pem
deleted file mode 100644
index 580610852..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA1-pathlen1.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainF-ICA2-pathlen0, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainF-ICA1-pathlen1, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:e0:13:c9:b0:8e:9d:3f:88:d4:30:4a:b4:e8:11:
- 21:93:5c:20:45:08:f8:7a:91:b9:2c:ad:ff:60:aa:
- 16:9f:1c:bb:88:b8:3d:0a:39:c1:89:a9:76:ca:8e:
- 6c:72:72:7e:6e:74:a6:36:2c:69:df:33:d6:e9:66:
- 70:65:7f:ba:2a:44:17:62:9f:33:46:12:e6:03:a5:
- a6:e2:5c:09:07:cf:bc:8d:76:fe:a0:fd:d7:72:4a:
- 94:c8:ca:2f:95:91:9c:0a:77:7f:82:23:be:72:27:
- 29:45:cd:41:cf:ec:e1:84:cf:67:d0:18:98:b9:31:
- be:c9:fe:98:5d:3f:aa:d2:83:76:45:85:ab:08:86:
- 63:58:5b:b3:e5:4a:43:3d:a1:99:e2:80:d1:2b:b2:
- 06:e3:f0:10:85:f9:a6:36:b8:52:2b:9d:73:3b:34:
- 23:51:3d:fe:56:2f:e9:39:b2:68:07:3e:6f:52:7b:
- f4:40:d4:72:fa:69:19:ca:ff:22:c8:45:95:05:5e:
- 91:08:3f:27:2d:41:d1:74:a5:06:9c:f3:40:bd:bb:
- fc:65:63:86:ed:80:22:50:c1:f6:4f:dc:8f:43:4c:
- 5e:fb:bf:d9:6d:1f:b4:84:0f:1e:e8:c6:5d:c5:53:
- d5:2c:c9:7f:6b:98:93:a7:5d:35:9a:17:62:91:2e:
- 20:c1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 75:32:21:05:2B:60:FE:44:17:AF:18:65:86:85:19:82:3F:F9:64:83
- X509v3 Authority Key Identifier:
- keyid:4A:53:4A:B7:30:78:35:91:B4:CB:DD:C8:22:74:89:AF:80:0F:7F:68
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:1
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 6a:e9:07:00:56:3b:70:9a:2b:3d:42:e9:93:ad:76:a9:43:82:
- a9:44:2a:35:a2:c7:56:d4:1e:cd:26:7c:d4:3f:49:19:3a:1e:
- 88:ed:f7:3d:b5:88:65:41:b4:69:81:59:fd:bd:93:b3:5c:ba:
- ae:60:b9:0b:e7:4b:60:a7:e4:b1:fa:ec:85:09:2b:e8:ff:84:
- 77:71:75:63:c2:8a:10:51:76:7a:c9:6f:9a:a3:8b:10:b4:ed:
- 9d:75:18:52:f5:a9:8a:ed:e0:0c:a4:23:96:f8:39:f6:fd:ce:
- 58:21:54:2c:b1:a2:a1:73:eb:9f:93:99:0c:12:1e:9a:bb:3d:
- 1e:91:da:df:b3:66:6a:cb:44:33:a8:d2:5d:31:76:d5:96:30:
- 51:dd:d0:12:e9:7b:9b:9f:98:ac:35:03:0f:6f:2d:b5:b6:e1:
- 30:14:50:31:2e:4c:fd:65:f5:d2:20:7b:8d:1d:a3:7f:6c:4f:
- 47:d6:c8:97:26:cf:28:65:d8:a0:19:d1:ca:2e:e8:f7:11:cb:
- ab:a6:32:2b:82:4d:c1:df:0a:c5:e5:9e:00:39:65:20:7e:55:
- ad:81:ac:14:b1:f9:f3:88:96:94:26:e1:66:44:96:68:1b:1a:
- 8d:db:f3:b9:e7:b8:9b:50:0b:03:19:53:70:c8:58:75:70:1f:
- 0e:a4:bb:9f
------BEGIN CERTIFICATE-----
-MIIExjCCA66gAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluRi1JQ0EyLXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOVoXDTIyMDcwNzAwMjgwOVowgaExCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR0wGwYDVQQD
-DBRjaGFpbkYtSUNBMS1wYXRobGVuMTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xm
-c3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOATybCOnT+I
-1DBKtOgRIZNcIEUI+HqRuSyt/2CqFp8cu4i4PQo5wYmpdsqObHJyfm50pjYsad8z
-1ulmcGV/uipEF2KfM0YS5gOlpuJcCQfPvI12/qD913JKlMjKL5WRnAp3f4IjvnIn
-KUXNQc/s4YTPZ9AYmLkxvsn+mF0/qtKDdkWFqwiGY1hbs+VKQz2hmeKA0SuyBuPw
-EIX5pja4Uiudczs0I1E9/lYv6TmyaAc+b1J79EDUcvppGcr/IshFlQVekQg/Jy1B
-0XSlBpzzQL27/GVjhu2AIlDB9k/cj0NMXvu/2W0ftIQPHujGXcVT1SzJf2uYk6dd
-NZoXYpEuIMECAwEAAaOCAQUwggEBMB0GA1UdDgQWBBR1MiEFK2D+RBevGGWGhRmC
-P/lkgzCBwQYDVR0jBIG5MIG2gBRKU0q3MHg1kbTL3cgidImvgA9/aKGBmqSBlzCB
-lDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVt
-YW4xETAPBgNVBAoMCFNhd3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYD
-VQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb22CAWQwDwYDVR0TBAgwBgEB/wIBATALBgNVHQ8EBAMCAQYwDQYJKoZIhvcN
-AQELBQADggEBAGrpBwBWO3CaKz1C6ZOtdqlDgqlEKjWix1bUHs0mfNQ/SRk6Hojt
-9z21iGVBtGmBWf29k7Ncuq5guQvnS2Cn5LH67IUJK+j/hHdxdWPCihBRdnrJb5qj
-ixC07Z11GFL1qYrt4AykI5b4Ofb9zlghVCyxoqFz65+TmQwSHpq7PR6R2t+zZmrL
-RDOo0l0xdtWWMFHd0BLpe5ufmKw1Aw9vLbW24TAUUDEuTP1l9dIge40do39sT0fW
-yJcmzyhl2KAZ0cou6PcRy6umMiuCTcHfCsXlngA5ZSB+Va2BrBSx+fOIlpQm4WZE
-lmgbGo3b87nnuJtQCwMZU3DIWHVwHw6ku58=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA2-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA2-key.pem
deleted file mode 100644
index 07b4753b3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA2-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEA2joiZfhtHLcch90n9Nd1qnwcNzG01qU0SzZA6lUIcqD/WOJd
-JhH1uG7e18O7JlHI0DYUAHZCTQNz74i5N/TonWFFluGObHhY4fbPRorWpXlNR4jK
-bGlOKNSNhKjhbB3TNn4j42TVCqP8NomQCv9+i/ouZvvHM0SS3w9DsuskfiuusEOp
-rVOC+N4XGSZfyoysDB8kvRXtT12C6hDrBXBPA2DZI20hB00SnPNk7nb7nfnD2Bo7
-bqmCey0usHS3E9ZligbyJXTCJulxZlRh/io0JwfJje+gooaTQUdzCAEHzE3s/oCI
-k/uutJEW+oOWhGZTzfNS2tQl4QkVIOIQ6t057wIDAQABAoIBAFHY4/XiyumuM+Ex
-LT9DYDpk+iApYG3w4EAlRQuegOCdSagInm8c5VAbJTE/k/23Rt3wqmfR8uP3m5AH
-c5BtJqGATh1c05ITQSLe8ra+c+r0J+vgfitTA6GEtt8+h+2I8iLKBKPQuaaYAoxh
-48h8MvZFCwpM/FVaLsvCad29G57GCh4oMK8Q4loQhA4xIKDZkW1djjqckJcGwZnk
-ST4+QcFt3gVNW8Ceezws4K7BBe7+bcpiWuFFILyv3lYrazzCeLPa/hOCPWSZ31Wq
-cH4OTRaiTCnMxAdNXFPFNKjXV5oADUe226whk7G1Bp8oEWisi3r/ctSnl5bhqO0W
-eRxMwWECgYEA7NXGKuQPA4GKLLQzE2DppSfDYJKsE1LmMMe2Y+ys9QURKedezgS3
-ri91KugHfOW7ZZ3TGI68WPFY7h6OvV2F334rOa3dCJ1SH3kgvZNQ2kQx5cPnqNb7
-NmlbD59Ph3lV8SykuCaJe/ZAxCqjeW+TYJ5PWivI6UMr0LPxmEE6JPsCgYEA6+Lh
-qF7aFXPhvtTg0FQzZXiYTWQ//dwPv3FniNychkf4Sa0rRFNBaFDpyJbPmOHGVnhu
-0y7p2ahRXfXnyzfGko/MXp9VOedVX4MzVAI2QvahXoSoYZGfZ6nKOQUAUTFaTvmv
-HpeNHMEjnnbnUJtdd6tXAa5kzZE6dmOHzH6/5J0CgYAoh0CdMF+9WtqZYdDnvQre
-n1pY2WCnAeWwbUyx9tt2JoLUZ+qaWMZSAX8Mc55saifScNqh9jMXCV4NiZ8lmq6B
-G2csPKt5gOp/xkurBV2trEPZrNek1f0xR4A0wS9r4ICrf9dESBv44aAdsao96rEO
-tKihpqKAAGWsFk7+nhLkJwKBgQDT5o+iifrNVLlRjbibTViSagAfXdRif2KiLwS8
-HLp7ooF35hk9GrFiPXWWXWwGQaPDoBKmobkvbxYRG0tr8iHvHUCRK/8KsjauQ5VD
-fW0zQIz79J2ycHfLTuq7yDNdvMEMux3GlIwOba5KtzPa5IbVbtUNTJV/WVw0Z/rh
-CGfnvQKBgQCRJpXicdarhdf5iHmZJ5SEgxfKk7nIXUq3mIadSHnD1ar8vZ83Lv6y
-wXVfGVytjd4k8ezcpKHNoeBUBnFLfUJkkBOXWghWi+TkX5f8Ci33ffgIie8RPZtO
-8EP3Q7yOI//JCEcgIiuqUZOug45m8UCCcky6dOCFLSH1a1Fj1doCWA==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA2-pathlen0.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA2-pathlen0.pem
deleted file mode 100644
index 128b32370..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-ICA2-pathlen0.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainF-ICA2-pathlen0, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:da:3a:22:65:f8:6d:1c:b7:1c:87:dd:27:f4:d7:
- 75:aa:7c:1c:37:31:b4:d6:a5:34:4b:36:40:ea:55:
- 08:72:a0:ff:58:e2:5d:26:11:f5:b8:6e:de:d7:c3:
- bb:26:51:c8:d0:36:14:00:76:42:4d:03:73:ef:88:
- b9:37:f4:e8:9d:61:45:96:e1:8e:6c:78:58:e1:f6:
- cf:46:8a:d6:a5:79:4d:47:88:ca:6c:69:4e:28:d4:
- 8d:84:a8:e1:6c:1d:d3:36:7e:23:e3:64:d5:0a:a3:
- fc:36:89:90:0a:ff:7e:8b:fa:2e:66:fb:c7:33:44:
- 92:df:0f:43:b2:eb:24:7e:2b:ae:b0:43:a9:ad:53:
- 82:f8:de:17:19:26:5f:ca:8c:ac:0c:1f:24:bd:15:
- ed:4f:5d:82:ea:10:eb:05:70:4f:03:60:d9:23:6d:
- 21:07:4d:12:9c:f3:64:ee:76:fb:9d:f9:c3:d8:1a:
- 3b:6e:a9:82:7b:2d:2e:b0:74:b7:13:d6:65:8a:06:
- f2:25:74:c2:26:e9:71:66:54:61:fe:2a:34:27:07:
- c9:8d:ef:a0:a2:86:93:41:47:73:08:01:07:cc:4d:
- ec:fe:80:88:93:fb:ae:b4:91:16:fa:83:96:84:66:
- 53:cd:f3:52:da:d4:25:e1:09:15:20:e2:10:ea:dd:
- 39:ef
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 4A:53:4A:B7:30:78:35:91:B4:CB:DD:C8:22:74:89:AF:80:0F:7F:68
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:0
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 1a:93:21:25:ab:3a:1a:d6:18:60:81:26:16:9c:d6:4b:2f:62:
- 3e:57:e2:e7:a8:59:77:fc:22:33:8b:0d:bd:14:79:80:cf:95:
- 8a:d5:4f:3c:92:a0:eb:65:42:76:81:80:10:aa:03:21:ea:68:
- 5d:72:98:ce:e3:01:65:f8:b2:1a:e8:8d:a9:d6:0a:2b:22:cf:
- 11:22:fb:d0:7c:9f:d2:bb:04:4a:34:07:b4:4d:71:31:48:5b:
- a0:08:83:ec:96:6d:5e:9a:fb:e3:da:63:32:b6:83:87:37:cb:
- 67:dc:8e:7f:9d:a7:83:5c:13:bc:af:82:a0:9a:d2:b2:b7:1e:
- 38:38:5c:e5:64:75:37:10:4a:82:a0:4d:f6:f8:5e:bf:36:f3:
- 68:01:1a:0a:6b:e3:03:50:79:d6:14:da:26:48:d9:b6:8e:23:
- 28:8a:a7:6e:c9:b0:54:c3:0b:48:25:7b:bf:e6:9f:be:f3:f0:
- b9:1d:c2:30:11:e4:fc:5f:90:96:69:d9:c0:cd:89:89:58:51:
- 43:8b:4c:d9:2a:d0:90:04:fc:db:21:32:c0:32:50:e4:4b:88:
- 4c:42:9c:d5:2a:ba:30:6e:5e:49:87:a1:c7:03:9e:6c:45:cc:
- bb:cf:d2:4a:af:1d:18:1c:9e:cb:66:50:e9:f9:b8:0b:08:bf:
- 39:95:bb:62
------BEGIN CERTIFICATE-----
-MIIEwTCCA6mgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA5WhcNMjIwNzA3MDAyODA5WjCBoTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNoYWluRi1JQ0Ey
-LXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2joiZfhtHLcch90n9Nd1qnwcNzG0
-1qU0SzZA6lUIcqD/WOJdJhH1uG7e18O7JlHI0DYUAHZCTQNz74i5N/TonWFFluGO
-bHhY4fbPRorWpXlNR4jKbGlOKNSNhKjhbB3TNn4j42TVCqP8NomQCv9+i/ouZvvH
-M0SS3w9DsuskfiuusEOprVOC+N4XGSZfyoysDB8kvRXtT12C6hDrBXBPA2DZI20h
-B00SnPNk7nb7nfnD2Bo7bqmCey0usHS3E9ZligbyJXTCJulxZlRh/io0JwfJje+g
-ooaTQUdzCAEHzE3s/oCIk/uutJEW+oOWhGZTzfNS2tQl4QkVIOIQ6t057wIDAQAB
-o4IBDTCCAQkwHQYDVR0OBBYEFEpTSrcweDWRtMvdyCJ0ia+AD39oMIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MA8GA1UdEwQIMAYBAf8CAQAwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUA
-A4IBAQAakyElqzoa1hhggSYWnNZLL2I+V+LnqFl3/CIziw29FHmAz5WK1U88kqDr
-ZUJ2gYAQqgMh6mhdcpjO4wFl+LIa6I2p1gorIs8RIvvQfJ/SuwRKNAe0TXExSFug
-CIPslm1emvvj2mMytoOHN8tn3I5/naeDXBO8r4KgmtKytx44OFzlZHU3EEqCoE32
-+F6/NvNoARoKa+MDUHnWFNomSNm2jiMoiqduybBUwwtIJXu/5p++8/C5HcIwEeT8
-X5CWadnAzYmJWFFDi0zZKtCQBPzbITLAMlDkS4hMQpzVKrowbl5Jh6HHA55sRcy7
-z9JKrx0YHJ7LZlDp+bgLCL85lbti
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-assembled.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-assembled.pem
deleted file mode 100644
index 14b0e0b25..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-assembled.pem
+++ /dev/null
@@ -1,265 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainF-ICA1-pathlen1, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainF-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:c9:f8:2c:ad:25:a9:65:3b:72:13:5d:aa:7f:5b:
- 71:f5:e0:43:c4:3a:b3:36:0d:34:61:35:86:77:a0:
- 2a:81:de:2c:7c:7d:01:fb:f4:c3:00:b0:17:b9:49:
- 93:1d:c2:1b:6f:40:ee:86:e0:a7:f3:5e:ad:23:43:
- 99:5f:34:38:c8:58:02:9b:cc:9e:59:da:81:5b:b1:
- 40:74:ca:c1:b8:67:14:ba:3f:71:16:d9:ba:a9:cd:
- f1:96:1b:52:e2:d2:07:6d:6a:d6:cf:e7:a8:c8:e0:
- 4f:eb:35:64:bc:aa:1a:17:af:98:de:d0:9b:08:73:
- 72:d8:fe:e2:e5:4e:7e:97:37:37:58:9e:5c:65:91:
- b9:5d:38:da:ba:db:00:c0:f6:4a:6f:9c:86:23:ad:
- b0:c4:ff:b7:dd:d6:9a:b0:de:8d:15:87:e2:4b:04:
- 85:6d:5d:cc:5f:65:6f:e1:ae:22:44:80:18:ba:c2:
- 95:a4:a3:28:c5:3f:7b:4c:85:6c:0f:11:14:56:d2:
- d5:a7:f7:03:e9:f7:ce:ef:d9:18:02:f0:f2:6e:81:
- ef:ac:50:87:0e:b0:46:9f:ae:c0:77:8f:03:28:8a:
- 9d:6e:87:50:8f:37:46:b3:29:57:a4:c2:ef:25:cd:
- 23:1a:ef:1a:03:c9:59:69:cd:45:5f:39:3f:76:d4:
- 79:53
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- E9:27:36:DA:64:81:70:89:C9:C1:F9:E3:92:7A:67:11:07:01:4A:49
- X509v3 Authority Key Identifier:
- keyid:75:32:21:05:2B:60:FE:44:17:AF:18:65:86:85:19:82:3F:F9:64:83
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainF-ICA2-pathlen0/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 24:20:aa:3a:98:e1:d4:42:a1:0f:7b:58:10:83:72:da:d4:ed:
- e2:e6:08:0d:d2:fb:c0:ff:5b:97:72:03:b1:20:fa:b1:88:60:
- 29:af:44:64:82:51:44:75:a7:cb:90:0d:af:63:a3:93:6f:a8:
- 12:18:16:60:2f:58:37:ec:be:23:64:1b:06:ad:a7:d6:fa:cf:
- 34:06:3d:99:21:19:d4:27:24:19:a0:00:8a:28:80:7b:8a:48:
- ea:61:63:20:4f:14:f2:60:a0:a3:3a:5a:45:4a:b1:24:1d:46:
- 69:84:76:0e:ff:29:5b:4b:74:a2:75:2c:f1:4b:ba:dc:c5:4b:
- dd:b3:52:b9:fd:45:8d:fd:71:68:78:71:f8:3e:7c:62:50:a2:
- 8d:07:df:45:a7:39:9c:df:df:9d:78:de:a4:9e:ef:e6:0a:7a:
- 53:42:0c:9e:7e:4a:bf:9c:70:66:a7:08:ab:bf:b5:f8:b3:3b:
- 99:28:2c:73:f4:6f:da:4d:21:59:35:82:58:f4:5e:59:25:1e:
- d6:7a:0a:c8:7f:4a:74:33:16:86:b4:bb:65:2e:9b:32:e5:78:
- 53:95:33:38:a4:8a:04:36:eb:fa:51:d5:46:94:72:7d:d7:16:
- c9:e7:e3:45:94:ab:ec:08:b6:87:e4:3a:34:7c:ca:dd:f9:27:
- 65:21:c5:5f
------BEGIN CERTIFICATE-----
-MIIEtzCCA5+gAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluRi1JQ0ExLXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOVoXDTIyMDcwNzAwMjgwOVowgZoxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRYwFAYDVQQD
-DA1jaGFpbkYtZW50aXR5MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29t
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyfgsrSWpZTtyE12qf1tx
-9eBDxDqzNg00YTWGd6Aqgd4sfH0B+/TDALAXuUmTHcIbb0DuhuCn816tI0OZXzQ4
-yFgCm8yeWdqBW7FAdMrBuGcUuj9xFtm6qc3xlhtS4tIHbWrWz+eoyOBP6zVkvKoa
-F6+Y3tCbCHNy2P7i5U5+lzc3WJ5cZZG5XTjautsAwPZKb5yGI62wxP+33daasN6N
-FYfiSwSFbV3MX2Vv4a4iRIAYusKVpKMoxT97TIVsDxEUVtLVp/cD6ffO79kYAvDy
-boHvrFCHDrBGn67Ad48DKIqdbodQjzdGsylXpMLvJc0jGu8aA8lZac1FXzk/dtR5
-UwIDAQABo4H+MIH7MB0GA1UdDgQWBBTpJzbaZIFwicnB+eOSemcRBwFKSTCBzgYD
-VR0jBIHGMIHDgBR1MiEFK2D+RBevGGWGhRmCP/lkg6GBp6SBpDCBoTELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNV
-BAMMFGNoYWluRi1JQ0EyLXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tggFkMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACQgqjqY
-4dRCoQ97WBCDctrU7eLmCA3S+8D/W5dyA7Eg+rGIYCmvRGSCUUR1p8uQDa9jo5Nv
-qBIYFmAvWDfsviNkGwatp9b6zzQGPZkhGdQnJBmgAIoogHuKSOphYyBPFPJgoKM6
-WkVKsSQdRmmEdg7/KVtLdKJ1LPFLutzFS92zUrn9RY39cWh4cfg+fGJQoo0H30Wn
-OZzf35143qSe7+YKelNCDJ5+Sr+ccGanCKu/tfizO5koLHP0b9pNIVk1glj0Xlkl
-HtZ6Csh/SnQzFoa0u2UumzLleFOVMzikigQ26/pR1UaUcn3XFsnn40WUq+wItofk
-OjR8yt35J2UhxV8=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainF-ICA2-pathlen0, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainF-ICA1-pathlen1, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:e0:13:c9:b0:8e:9d:3f:88:d4:30:4a:b4:e8:11:
- 21:93:5c:20:45:08:f8:7a:91:b9:2c:ad:ff:60:aa:
- 16:9f:1c:bb:88:b8:3d:0a:39:c1:89:a9:76:ca:8e:
- 6c:72:72:7e:6e:74:a6:36:2c:69:df:33:d6:e9:66:
- 70:65:7f:ba:2a:44:17:62:9f:33:46:12:e6:03:a5:
- a6:e2:5c:09:07:cf:bc:8d:76:fe:a0:fd:d7:72:4a:
- 94:c8:ca:2f:95:91:9c:0a:77:7f:82:23:be:72:27:
- 29:45:cd:41:cf:ec:e1:84:cf:67:d0:18:98:b9:31:
- be:c9:fe:98:5d:3f:aa:d2:83:76:45:85:ab:08:86:
- 63:58:5b:b3:e5:4a:43:3d:a1:99:e2:80:d1:2b:b2:
- 06:e3:f0:10:85:f9:a6:36:b8:52:2b:9d:73:3b:34:
- 23:51:3d:fe:56:2f:e9:39:b2:68:07:3e:6f:52:7b:
- f4:40:d4:72:fa:69:19:ca:ff:22:c8:45:95:05:5e:
- 91:08:3f:27:2d:41:d1:74:a5:06:9c:f3:40:bd:bb:
- fc:65:63:86:ed:80:22:50:c1:f6:4f:dc:8f:43:4c:
- 5e:fb:bf:d9:6d:1f:b4:84:0f:1e:e8:c6:5d:c5:53:
- d5:2c:c9:7f:6b:98:93:a7:5d:35:9a:17:62:91:2e:
- 20:c1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 75:32:21:05:2B:60:FE:44:17:AF:18:65:86:85:19:82:3F:F9:64:83
- X509v3 Authority Key Identifier:
- keyid:4A:53:4A:B7:30:78:35:91:B4:CB:DD:C8:22:74:89:AF:80:0F:7F:68
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:1
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 6a:e9:07:00:56:3b:70:9a:2b:3d:42:e9:93:ad:76:a9:43:82:
- a9:44:2a:35:a2:c7:56:d4:1e:cd:26:7c:d4:3f:49:19:3a:1e:
- 88:ed:f7:3d:b5:88:65:41:b4:69:81:59:fd:bd:93:b3:5c:ba:
- ae:60:b9:0b:e7:4b:60:a7:e4:b1:fa:ec:85:09:2b:e8:ff:84:
- 77:71:75:63:c2:8a:10:51:76:7a:c9:6f:9a:a3:8b:10:b4:ed:
- 9d:75:18:52:f5:a9:8a:ed:e0:0c:a4:23:96:f8:39:f6:fd:ce:
- 58:21:54:2c:b1:a2:a1:73:eb:9f:93:99:0c:12:1e:9a:bb:3d:
- 1e:91:da:df:b3:66:6a:cb:44:33:a8:d2:5d:31:76:d5:96:30:
- 51:dd:d0:12:e9:7b:9b:9f:98:ac:35:03:0f:6f:2d:b5:b6:e1:
- 30:14:50:31:2e:4c:fd:65:f5:d2:20:7b:8d:1d:a3:7f:6c:4f:
- 47:d6:c8:97:26:cf:28:65:d8:a0:19:d1:ca:2e:e8:f7:11:cb:
- ab:a6:32:2b:82:4d:c1:df:0a:c5:e5:9e:00:39:65:20:7e:55:
- ad:81:ac:14:b1:f9:f3:88:96:94:26:e1:66:44:96:68:1b:1a:
- 8d:db:f3:b9:e7:b8:9b:50:0b:03:19:53:70:c8:58:75:70:1f:
- 0e:a4:bb:9f
------BEGIN CERTIFICATE-----
-MIIExjCCA66gAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluRi1JQ0EyLXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOVoXDTIyMDcwNzAwMjgwOVowgaExCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR0wGwYDVQQD
-DBRjaGFpbkYtSUNBMS1wYXRobGVuMTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xm
-c3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOATybCOnT+I
-1DBKtOgRIZNcIEUI+HqRuSyt/2CqFp8cu4i4PQo5wYmpdsqObHJyfm50pjYsad8z
-1ulmcGV/uipEF2KfM0YS5gOlpuJcCQfPvI12/qD913JKlMjKL5WRnAp3f4IjvnIn
-KUXNQc/s4YTPZ9AYmLkxvsn+mF0/qtKDdkWFqwiGY1hbs+VKQz2hmeKA0SuyBuPw
-EIX5pja4Uiudczs0I1E9/lYv6TmyaAc+b1J79EDUcvppGcr/IshFlQVekQg/Jy1B
-0XSlBpzzQL27/GVjhu2AIlDB9k/cj0NMXvu/2W0ftIQPHujGXcVT1SzJf2uYk6dd
-NZoXYpEuIMECAwEAAaOCAQUwggEBMB0GA1UdDgQWBBR1MiEFK2D+RBevGGWGhRmC
-P/lkgzCBwQYDVR0jBIG5MIG2gBRKU0q3MHg1kbTL3cgidImvgA9/aKGBmqSBlzCB
-lDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVt
-YW4xETAPBgNVBAoMCFNhd3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYD
-VQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb22CAWQwDwYDVR0TBAgwBgEB/wIBATALBgNVHQ8EBAMCAQYwDQYJKoZIhvcN
-AQELBQADggEBAGrpBwBWO3CaKz1C6ZOtdqlDgqlEKjWix1bUHs0mfNQ/SRk6Hojt
-9z21iGVBtGmBWf29k7Ncuq5guQvnS2Cn5LH67IUJK+j/hHdxdWPCihBRdnrJb5qj
-ixC07Z11GFL1qYrt4AykI5b4Ofb9zlghVCyxoqFz65+TmQwSHpq7PR6R2t+zZmrL
-RDOo0l0xdtWWMFHd0BLpe5ufmKw1Aw9vLbW24TAUUDEuTP1l9dIge40do39sT0fW
-yJcmzyhl2KAZ0cou6PcRy6umMiuCTcHfCsXlngA5ZSB+Va2BrBSx+fOIlpQm4WZE
-lmgbGo3b87nnuJtQCwMZU3DIWHVwHw6ku58=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainF-ICA2-pathlen0, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:da:3a:22:65:f8:6d:1c:b7:1c:87:dd:27:f4:d7:
- 75:aa:7c:1c:37:31:b4:d6:a5:34:4b:36:40:ea:55:
- 08:72:a0:ff:58:e2:5d:26:11:f5:b8:6e:de:d7:c3:
- bb:26:51:c8:d0:36:14:00:76:42:4d:03:73:ef:88:
- b9:37:f4:e8:9d:61:45:96:e1:8e:6c:78:58:e1:f6:
- cf:46:8a:d6:a5:79:4d:47:88:ca:6c:69:4e:28:d4:
- 8d:84:a8:e1:6c:1d:d3:36:7e:23:e3:64:d5:0a:a3:
- fc:36:89:90:0a:ff:7e:8b:fa:2e:66:fb:c7:33:44:
- 92:df:0f:43:b2:eb:24:7e:2b:ae:b0:43:a9:ad:53:
- 82:f8:de:17:19:26:5f:ca:8c:ac:0c:1f:24:bd:15:
- ed:4f:5d:82:ea:10:eb:05:70:4f:03:60:d9:23:6d:
- 21:07:4d:12:9c:f3:64:ee:76:fb:9d:f9:c3:d8:1a:
- 3b:6e:a9:82:7b:2d:2e:b0:74:b7:13:d6:65:8a:06:
- f2:25:74:c2:26:e9:71:66:54:61:fe:2a:34:27:07:
- c9:8d:ef:a0:a2:86:93:41:47:73:08:01:07:cc:4d:
- ec:fe:80:88:93:fb:ae:b4:91:16:fa:83:96:84:66:
- 53:cd:f3:52:da:d4:25:e1:09:15:20:e2:10:ea:dd:
- 39:ef
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 4A:53:4A:B7:30:78:35:91:B4:CB:DD:C8:22:74:89:AF:80:0F:7F:68
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:0
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 1a:93:21:25:ab:3a:1a:d6:18:60:81:26:16:9c:d6:4b:2f:62:
- 3e:57:e2:e7:a8:59:77:fc:22:33:8b:0d:bd:14:79:80:cf:95:
- 8a:d5:4f:3c:92:a0:eb:65:42:76:81:80:10:aa:03:21:ea:68:
- 5d:72:98:ce:e3:01:65:f8:b2:1a:e8:8d:a9:d6:0a:2b:22:cf:
- 11:22:fb:d0:7c:9f:d2:bb:04:4a:34:07:b4:4d:71:31:48:5b:
- a0:08:83:ec:96:6d:5e:9a:fb:e3:da:63:32:b6:83:87:37:cb:
- 67:dc:8e:7f:9d:a7:83:5c:13:bc:af:82:a0:9a:d2:b2:b7:1e:
- 38:38:5c:e5:64:75:37:10:4a:82:a0:4d:f6:f8:5e:bf:36:f3:
- 68:01:1a:0a:6b:e3:03:50:79:d6:14:da:26:48:d9:b6:8e:23:
- 28:8a:a7:6e:c9:b0:54:c3:0b:48:25:7b:bf:e6:9f:be:f3:f0:
- b9:1d:c2:30:11:e4:fc:5f:90:96:69:d9:c0:cd:89:89:58:51:
- 43:8b:4c:d9:2a:d0:90:04:fc:db:21:32:c0:32:50:e4:4b:88:
- 4c:42:9c:d5:2a:ba:30:6e:5e:49:87:a1:c7:03:9e:6c:45:cc:
- bb:cf:d2:4a:af:1d:18:1c:9e:cb:66:50:e9:f9:b8:0b:08:bf:
- 39:95:bb:62
------BEGIN CERTIFICATE-----
-MIIEwTCCA6mgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA5WhcNMjIwNzA3MDAyODA5WjCBoTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNoYWluRi1JQ0Ey
-LXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2joiZfhtHLcch90n9Nd1qnwcNzG0
-1qU0SzZA6lUIcqD/WOJdJhH1uG7e18O7JlHI0DYUAHZCTQNz74i5N/TonWFFluGO
-bHhY4fbPRorWpXlNR4jKbGlOKNSNhKjhbB3TNn4j42TVCqP8NomQCv9+i/ouZvvH
-M0SS3w9DsuskfiuusEOprVOC+N4XGSZfyoysDB8kvRXtT12C6hDrBXBPA2DZI20h
-B00SnPNk7nb7nfnD2Bo7bqmCey0usHS3E9ZligbyJXTCJulxZlRh/io0JwfJje+g
-ooaTQUdzCAEHzE3s/oCIk/uutJEW+oOWhGZTzfNS2tQl4QkVIOIQ6t057wIDAQAB
-o4IBDTCCAQkwHQYDVR0OBBYEFEpTSrcweDWRtMvdyCJ0ia+AD39oMIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MA8GA1UdEwQIMAYBAf8CAQAwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUA
-A4IBAQAakyElqzoa1hhggSYWnNZLL2I+V+LnqFl3/CIziw29FHmAz5WK1U88kqDr
-ZUJ2gYAQqgMh6mhdcpjO4wFl+LIa6I2p1gorIs8RIvvQfJ/SuwRKNAe0TXExSFug
-CIPslm1emvvj2mMytoOHN8tn3I5/naeDXBO8r4KgmtKytx44OFzlZHU3EEqCoE32
-+F6/NvNoARoKa+MDUHnWFNomSNm2jiMoiqduybBUwwtIJXu/5p++8/C5HcIwEeT8
-X5CWadnAzYmJWFFDi0zZKtCQBPzbITLAMlDkS4hMQpzVKrowbl5Jh6HHA55sRcy7
-z9JKrx0YHJ7LZlDp+bgLCL85lbti
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-entity-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-entity-key.pem
deleted file mode 100644
index 6c7d78071..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-entity-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAyfgsrSWpZTtyE12qf1tx9eBDxDqzNg00YTWGd6Aqgd4sfH0B
-+/TDALAXuUmTHcIbb0DuhuCn816tI0OZXzQ4yFgCm8yeWdqBW7FAdMrBuGcUuj9x
-Ftm6qc3xlhtS4tIHbWrWz+eoyOBP6zVkvKoaF6+Y3tCbCHNy2P7i5U5+lzc3WJ5c
-ZZG5XTjautsAwPZKb5yGI62wxP+33daasN6NFYfiSwSFbV3MX2Vv4a4iRIAYusKV
-pKMoxT97TIVsDxEUVtLVp/cD6ffO79kYAvDyboHvrFCHDrBGn67Ad48DKIqdbodQ
-jzdGsylXpMLvJc0jGu8aA8lZac1FXzk/dtR5UwIDAQABAoIBAEnbhYr0ANRSPs8y
-K41TRYNitaVmye50Oblqt3e7jI/dTWtg037t7Pmta5+IdlIlj57JofCU6xYmgy4o
-JEgacsFg3eNXmnjFXRTI5wdOtjTXDU9mr9ZpXMeH1lbMOy1THQA4V8HDt4dt8AvV
-hLcxhUUwI7knk+otPcx4uUSdxdFJ6uAGsBOqHRQNvZ+UQKWPu4wcbhOyIhPAVHmg
-jc4mRSixY48rWCjfHu4eL4vIVotaqHMKl1p5Z/i9umEMnJu9i4Nw7ZfWFlPUcg3B
-oC/2AsQZ7O2PNy1fMW15da1RZ7aXedMersHb7sX9ZTd9vqIUXVdXSHc9N13zd9pS
-GjHGgtECgYEA+XhITJiF82ldFOBamngzBCYy7BHq5ZJKaUcOSTrVDIG2CVi4tXEw
-FE1Y1d4aelLkDzR3Qo17YAVpMFkp8AnMAb6+89JON1TOq+hyrMeQpjo8KV9P+O29
-5Tg2KZSxp5io33ENX0QncI7TtIIMSNfxDFw7b4hgjkcIp2Ii3QtxjaUCgYEAz0GW
-g7zJSCP7X4H+VeZ8drg/QdYci23RJC7GBFozFUzt8BlA8g7FyYheyn0COwObL0xz
-rRrzNB8JVv3LJ9ggfBksVRq7NnufeJaEq5rZFGa52nk5KS3ukbi1FCzmO+E+OIEH
-KEGGvVF5WCPQaa0WhkQcXvo/mRb83p2ipv94qZcCgYEAg0Lhr8O0/11aB6kAozRJ
-i45ZztKiqMZvdrNXdfqJrPn3ATX4giebJ6OG8Yjan7BLpSBy+8abuus97J2NrmpJ
-OEXYDUyDsSNjVxqIdBbRKlWL4CzxVEYrW5dXEEvXqhpuCJtgcNbYdaYBCIJA2ncc
-suc4sresLlB74i6Fr47c4a0CgYEAm6eipyXt9aQwcjZrEZCdAXy25Xcs0PqVDBuk
-1Df6DZFNUfllcWXu3cDxkBn6xt+aeRdt+SA4b3ivxwmsvivvmcQ+K1x8JhsKVcKV
-uVv+lPfhtVc9utOoTQDv3ksqTuaHmGAvQ+iSjTTXcX7UU8mPFR+qPxqrEQrWt0qk
-kc9ki9kCgYBxdSt1rwvIEHnQUeRPQqFcIcMhjSDhHArzqnOo2EZkZBcB5U6qcjZH
-EBgZKOcNVIBMlmjVHJIAQz8rog8zv0xZjW0W9ijzV93zUq2K0p9uDhDkpFhpNa+0
-UStzpcOI+NZMbwlxYcgAAjOBapsvriqzSeGq93BmW9B6mu5fTet6/w==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-entity.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-entity.pem
deleted file mode 100644
index 27bd2dcd7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainF-entity.pem
+++ /dev/null
@@ -1,87 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainF-ICA1-pathlen1, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainF-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:c9:f8:2c:ad:25:a9:65:3b:72:13:5d:aa:7f:5b:
- 71:f5:e0:43:c4:3a:b3:36:0d:34:61:35:86:77:a0:
- 2a:81:de:2c:7c:7d:01:fb:f4:c3:00:b0:17:b9:49:
- 93:1d:c2:1b:6f:40:ee:86:e0:a7:f3:5e:ad:23:43:
- 99:5f:34:38:c8:58:02:9b:cc:9e:59:da:81:5b:b1:
- 40:74:ca:c1:b8:67:14:ba:3f:71:16:d9:ba:a9:cd:
- f1:96:1b:52:e2:d2:07:6d:6a:d6:cf:e7:a8:c8:e0:
- 4f:eb:35:64:bc:aa:1a:17:af:98:de:d0:9b:08:73:
- 72:d8:fe:e2:e5:4e:7e:97:37:37:58:9e:5c:65:91:
- b9:5d:38:da:ba:db:00:c0:f6:4a:6f:9c:86:23:ad:
- b0:c4:ff:b7:dd:d6:9a:b0:de:8d:15:87:e2:4b:04:
- 85:6d:5d:cc:5f:65:6f:e1:ae:22:44:80:18:ba:c2:
- 95:a4:a3:28:c5:3f:7b:4c:85:6c:0f:11:14:56:d2:
- d5:a7:f7:03:e9:f7:ce:ef:d9:18:02:f0:f2:6e:81:
- ef:ac:50:87:0e:b0:46:9f:ae:c0:77:8f:03:28:8a:
- 9d:6e:87:50:8f:37:46:b3:29:57:a4:c2:ef:25:cd:
- 23:1a:ef:1a:03:c9:59:69:cd:45:5f:39:3f:76:d4:
- 79:53
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- E9:27:36:DA:64:81:70:89:C9:C1:F9:E3:92:7A:67:11:07:01:4A:49
- X509v3 Authority Key Identifier:
- keyid:75:32:21:05:2B:60:FE:44:17:AF:18:65:86:85:19:82:3F:F9:64:83
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainF-ICA2-pathlen0/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 24:20:aa:3a:98:e1:d4:42:a1:0f:7b:58:10:83:72:da:d4:ed:
- e2:e6:08:0d:d2:fb:c0:ff:5b:97:72:03:b1:20:fa:b1:88:60:
- 29:af:44:64:82:51:44:75:a7:cb:90:0d:af:63:a3:93:6f:a8:
- 12:18:16:60:2f:58:37:ec:be:23:64:1b:06:ad:a7:d6:fa:cf:
- 34:06:3d:99:21:19:d4:27:24:19:a0:00:8a:28:80:7b:8a:48:
- ea:61:63:20:4f:14:f2:60:a0:a3:3a:5a:45:4a:b1:24:1d:46:
- 69:84:76:0e:ff:29:5b:4b:74:a2:75:2c:f1:4b:ba:dc:c5:4b:
- dd:b3:52:b9:fd:45:8d:fd:71:68:78:71:f8:3e:7c:62:50:a2:
- 8d:07:df:45:a7:39:9c:df:df:9d:78:de:a4:9e:ef:e6:0a:7a:
- 53:42:0c:9e:7e:4a:bf:9c:70:66:a7:08:ab:bf:b5:f8:b3:3b:
- 99:28:2c:73:f4:6f:da:4d:21:59:35:82:58:f4:5e:59:25:1e:
- d6:7a:0a:c8:7f:4a:74:33:16:86:b4:bb:65:2e:9b:32:e5:78:
- 53:95:33:38:a4:8a:04:36:eb:fa:51:d5:46:94:72:7d:d7:16:
- c9:e7:e3:45:94:ab:ec:08:b6:87:e4:3a:34:7c:ca:dd:f9:27:
- 65:21:c5:5f
------BEGIN CERTIFICATE-----
-MIIEtzCCA5+gAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluRi1JQ0ExLXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOVoXDTIyMDcwNzAwMjgwOVowgZoxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRYwFAYDVQQD
-DA1jaGFpbkYtZW50aXR5MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29t
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyfgsrSWpZTtyE12qf1tx
-9eBDxDqzNg00YTWGd6Aqgd4sfH0B+/TDALAXuUmTHcIbb0DuhuCn816tI0OZXzQ4
-yFgCm8yeWdqBW7FAdMrBuGcUuj9xFtm6qc3xlhtS4tIHbWrWz+eoyOBP6zVkvKoa
-F6+Y3tCbCHNy2P7i5U5+lzc3WJ5cZZG5XTjautsAwPZKb5yGI62wxP+33daasN6N
-FYfiSwSFbV3MX2Vv4a4iRIAYusKVpKMoxT97TIVsDxEUVtLVp/cD6ffO79kYAvDy
-boHvrFCHDrBGn67Ad48DKIqdbodQjzdGsylXpMLvJc0jGu8aA8lZac1FXzk/dtR5
-UwIDAQABo4H+MIH7MB0GA1UdDgQWBBTpJzbaZIFwicnB+eOSemcRBwFKSTCBzgYD
-VR0jBIHGMIHDgBR1MiEFK2D+RBevGGWGhRmCP/lkg6GBp6SBpDCBoTELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNV
-BAMMFGNoYWluRi1JQ0EyLXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tggFkMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACQgqjqY
-4dRCoQ97WBCDctrU7eLmCA3S+8D/W5dyA7Eg+rGIYCmvRGSCUUR1p8uQDa9jo5Nv
-qBIYFmAvWDfsviNkGwatp9b6zzQGPZkhGdQnJBmgAIoogHuKSOphYyBPFPJgoKM6
-WkVKsSQdRmmEdg7/KVtLdKJ1LPFLutzFS92zUrn9RY39cWh4cfg+fGJQoo0H30Wn
-OZzf35143qSe7+YKelNCDJ5+Sr+ccGanCKu/tfizO5koLHP0b9pNIVk1glj0Xlkl
-HtZ6Csh/SnQzFoa0u2UumzLleFOVMzikigQ26/pR1UaUcn3XFsnn40WUq+wItofk
-OjR8yt35J2UhxV8=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA1-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA1-key.pem
deleted file mode 100644
index dd86a5a55..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA1-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEA0ia+UZhC4B+u/MLLutUPRDsLYNhJ7ANDawbO8igZ+0icC1x/
-AKMin7zpKlvk4RbYnLnDCzDjHIN9wLmkP9o47Is4vkXEpx3BaBgoGbDykwY6vSNn
-qgWJMTvCtF6zEss785zW30zty0IbJYAtq8Rnj6X/2mzxGP2hmIzYH2dsKMfLTruw
-J+olsV1z0CrpRFC59WVk5s89ktjAbe2WjuLThHDQ2/5wY0T6+Ns10ZWtGJUhZM7i
-I35ebC/vp2P+gkrLzCPPnSalZu2cBn5wdgNymdv6vqXDOItAJMFr15y7J4YiqWLg
-sr3nteSB6mTbGBYkYoFsqPKDP687tf2w2ISyIQIDAQABAoIBAFOyFHhAsNm8JKAM
-IMGPG15sOZLfcUlq303fz0nISNi4SVWJCBfD4QVHYoF5ScWPqMN6hECPvtPbVpkM
-FmtLyQIETJwTA0gfZKjFfisFOwbtIzWyxRWE0Ofnyhq14JHqmTzjyPv0EnyyHkeo
-LghL14bxcN2YJ8lxMgukhGq1cPEoL7Te9MorQ3pgI2CV5iR8iriXp50RS2xyCO8L
-3TL4/tkZ2/RF7+9KNDP5ViYJOmfU9bOxLT7gxIAjjL8uCDk/r1RgT03+jLpoEZSi
-o1Sa06fogqV02Y7bkJLXtu5jxAeIcWG0iF6FdC291TcQaM7hv4HwLuxZnxJcgc4I
-AxnOuAECgYEA/prt+B7DQ2qWyrATnMP3ScKAMQ3yuE8K7z/u533eZ1TTCmueKjbg
-4pmMVCt+E3pSB5WbzTdAx4Gm5ACHkobJnmRb7Y2gjaD27W4Vn+jd/+U3GbHNQDIa
-srSxkTBjQakSckqI/KucYAcF+MtXPAeXJp/IklXDxFoGpcwaisMlSuECgYEA0014
-PDe4Ujglay4utpxkyL6d/nlzFseZn+7BJ9ClJiBKCJBF3mlqVArxmwv5fCn+be05
-Ikfljvt7sCUzYseccCYKe5zPa6v7622ERIn8jkTUo43Tm47WzBZsXasNeLdYAu7p
-pEjn0AP7w5kRruHI3xqOZScXDhtrrQuogU9Zj0ECgYBWshLOJkt/LVBjfElxXBlc
-eGqGSaWYtPGYPkDveqC8ttmV9sdIwJ8bCgYKszSfFUvRYVRIMMRSKwfVI4kGj/cf
-hDT5UvyUvXbXqmCarwTJGhgFG9I0RdtpdrXwJnXl6dhqKo8y2ozI9htGeJcfzcXe
-VRJLIgEjXzRcSH/ROFn+gQKBgEr/WyacbEqabQWOvbvI5Kivp2oz9xplu+wdFOep
-0YQnv78sXfAkID42KCzs4h8k1I51vWqidCL8tZj+iy+LQ8Y2alAXhzNjNqYIGAMv
-qrlgSszGQQ4cc7a6WrogRUbMZGueGsVZrxWQ5GI3SSR2NRKi3Vmftzoll2EzGxrS
-bCpBAoGBAI/msQiuFLzbbxbtOLmjbh4iptOM8kJY2PpxZAKIxUqwEuOuoF6yY6G7
-jN0QBoN8RtP2syWpoY8G4YqX/zNWOOuL7p/uWRiatGrAc/qUWjNB8yO5Z/LVkOEU
-QOcdeEvBUkgVc0qSkDgAAQ0Vktoba4X+Xc6MsD8F3xTJQOe5oToP
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA1-pathlen0.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA1-pathlen0.pem
deleted file mode 100644
index ad1f9456c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA1-pathlen0.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA2-pathlen1, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d2:26:be:51:98:42:e0:1f:ae:fc:c2:cb:ba:d5:
- 0f:44:3b:0b:60:d8:49:ec:03:43:6b:06:ce:f2:28:
- 19:fb:48:9c:0b:5c:7f:00:a3:22:9f:bc:e9:2a:5b:
- e4:e1:16:d8:9c:b9:c3:0b:30:e3:1c:83:7d:c0:b9:
- a4:3f:da:38:ec:8b:38:be:45:c4:a7:1d:c1:68:18:
- 28:19:b0:f2:93:06:3a:bd:23:67:aa:05:89:31:3b:
- c2:b4:5e:b3:12:cb:3b:f3:9c:d6:df:4c:ed:cb:42:
- 1b:25:80:2d:ab:c4:67:8f:a5:ff:da:6c:f1:18:fd:
- a1:98:8c:d8:1f:67:6c:28:c7:cb:4e:bb:b0:27:ea:
- 25:b1:5d:73:d0:2a:e9:44:50:b9:f5:65:64:e6:cf:
- 3d:92:d8:c0:6d:ed:96:8e:e2:d3:84:70:d0:db:fe:
- 70:63:44:fa:f8:db:35:d1:95:ad:18:95:21:64:ce:
- e2:23:7e:5e:6c:2f:ef:a7:63:fe:82:4a:cb:cc:23:
- cf:9d:26:a5:66:ed:9c:06:7e:70:76:03:72:99:db:
- fa:be:a5:c3:38:8b:40:24:c1:6b:d7:9c:bb:27:86:
- 22:a9:62:e0:b2:bd:e7:b5:e4:81:ea:64:db:18:16:
- 24:62:81:6c:a8:f2:83:3f:af:3b:b5:fd:b0:d8:84:
- b2:21
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 47:C0:19:4B:ED:C4:DA:97:B1:60:EA:5A:0A:42:6D:A5:D3:D8:25:31
- X509v3 Authority Key Identifier:
- keyid:E1:E6:9B:28:CF:FD:AB:45:C1:B7:A7:C4:C9:58:FC:41:E3:1A:5C:74
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainG-ICA3-pathlen99/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:0
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 56:81:8e:f1:e8:5f:b2:9f:ab:8f:2e:ec:79:c7:3d:0d:af:f2:
- 18:f7:d2:2e:07:2c:d0:1d:2a:90:c7:c1:fc:ac:aa:0d:86:f0:
- 78:6d:33:43:81:02:70:3b:e6:d9:75:db:2e:ca:4a:61:4d:20:
- cb:a9:3e:0c:a9:b3:ca:ff:bb:52:cb:06:14:2d:53:b5:68:9f:
- a7:02:83:90:3d:f8:b6:a2:46:e4:2b:c5:48:ed:50:7f:ea:27:
- cf:7b:9d:88:1f:1c:5d:16:b7:21:0a:42:95:0b:67:6c:29:34:
- 64:61:c0:f5:00:6f:36:dc:e9:68:e3:81:bd:07:a6:bc:6c:9d:
- f0:61:b0:50:14:d5:89:46:1f:34:b0:90:42:a0:c3:09:64:6e:
- a4:46:13:c6:6a:86:98:63:c7:8e:79:d3:a2:d6:73:23:68:a9:
- 8d:ac:b0:93:b0:89:f5:ee:08:cc:47:14:95:3b:1f:d3:eb:42:
- 3f:68:b8:6b:80:11:8d:85:8c:90:39:29:e8:5d:7d:e5:c1:c2:
- 5c:e7:92:8c:ab:79:17:74:60:a5:ee:fe:52:ff:4a:78:62:5c:
- 1b:4b:f8:44:41:8c:05:c7:11:e7:5a:c9:a1:a1:d3:6b:82:36:
- c3:1f:23:19:ce:68:9d:c3:80:d5:08:8d:68:d2:49:52:95:44:
- 3f:1b:50:9d
------BEGIN CERTIFICATE-----
-MIIE1DCCA7ygAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluRy1JQ0EyLXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOVoXDTIyMDcwNzAwMjgwOVowgaExCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR0wGwYDVQQD
-DBRjaGFpbkctSUNBMS1wYXRobGVuMDEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xm
-c3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANImvlGYQuAf
-rvzCy7rVD0Q7C2DYSewDQ2sGzvIoGftInAtcfwCjIp+86Spb5OEW2Jy5wwsw4xyD
-fcC5pD/aOOyLOL5FxKcdwWgYKBmw8pMGOr0jZ6oFiTE7wrResxLLO/Oc1t9M7ctC
-GyWALavEZ4+l/9ps8Rj9oZiM2B9nbCjHy067sCfqJbFdc9Aq6URQufVlZObPPZLY
-wG3tlo7i04Rw0Nv+cGNE+vjbNdGVrRiVIWTO4iN+Xmwv76dj/oJKy8wjz50mpWbt
-nAZ+cHYDcpnb+r6lwziLQCTBa9ecuyeGIqli4LK957Xkgepk2xgWJGKBbKjygz+v
-O7X9sNiEsiECAwEAAaOCARMwggEPMB0GA1UdDgQWBBRHwBlL7cTal7Fg6loKQm2l
-09glMTCBzwYDVR0jBIHHMIHEgBTh5psoz/2rRcG3p8TJWPxB4xpcdKGBqKSBpTCB
-ojELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1Nl
-YXR0bGUxFTATBgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJp
-bmcxHjAcBgNVBAMMFWNoYWluRy1JQ0EzLXBhdGhsZW45OTEfMB0GCSqGSIb3DQEJ
-ARYQaW5mb0B3b2xmc3NsLmNvbYIBZDAPBgNVHRMECDAGAQH/AgEAMAsGA1UdDwQE
-AwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAVoGO8ehfsp+rjy7secc9Da/yGPfSLgcs
-0B0qkMfB/KyqDYbweG0zQ4ECcDvm2XXbLspKYU0gy6k+DKmzyv+7UssGFC1TtWif
-pwKDkD34tqJG5CvFSO1Qf+onz3udiB8cXRa3IQpClQtnbCk0ZGHA9QBvNtzpaOOB
-vQemvGyd8GGwUBTViUYfNLCQQqDDCWRupEYTxmqGmGPHjnnTotZzI2ipjaywk7CJ
-9e4IzEcUlTsf0+tCP2i4a4ARjYWMkDkp6F195cHCXOeSjKt5F3Rgpe7+Uv9KeGJc
-G0v4REGMBccR51rJoaHTa4I2wx8jGc5oncOA1QiNaNJJUpVEPxtQnQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA2-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA2-key.pem
deleted file mode 100644
index c0558a0d3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA2-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEA1z7eufmp1456S/LxjPk7HM5ZMUxXDC6KD5Dw3CdVCxDDoui5
-OXUX0Z2ZQ5Sy8VZ2a7lGprg1laHS0OyOvpXceBcKQaEj38uyh8suHQJ9xP569nrY
-pY21ERrka9JmAQEDpzuVSZJdwcdJ8BrvAHE3mVqHCkDeVQ5oidznoRS/nXKTfkgp
-5OqmTwp6paE5bCGEOo/KejULCs0SZzxWBvWdJMmOSoIjyDh/rJi2slfcgmKEABN7
-6nOAJkqbwbQK8fz/RliWoCGhyY/ZmXRBC9BtMaerh5J2UULviJXMLPKbzNUpoPeq
-a+GrMhbNVcQVgGmAkdh4LAcV/cICpPQTdVC4KwIDAQABAoIBAQCeaP6yEDQXGByZ
-WKq8/Y+rm5G43l4R8Q5admlNHQVRp3zToELxLmPhOQNa4UzwoJl2nlyIxnlpLjdg
-2zgSu2gOWaaKtnUYd2lk1vuRDgxRtpf4XmCjNq9Tb188mxPHGV/+67Lq+nVV771S
-n//Va31nt2A7A5KdNoVpMNKnkgWTcS3dJ07znTsHbabcttA58mu2DPXaNVUKystz
-+0YF1I/Lp+3tWGfSM2MKqQTaFy219N+xhUtIj2/TOo55Kkz8lAGyctrIfFZZPUY6
-I1YIzxFlC8XNd1DzW2i7qVANM0vzuB85nv8D5RREbBjJ/IHwJgjWp3G2K8o8+kDZ
-ZOukmpzBAoGBAO4t4l3rVSaBbmP5F0U/JdZSqoUmGNggkGcyR3vpNT+ZEzhyzJ7d
-A1fqzdrrbxXXGVHAqDdEb/tKAuUZmv52OdKlL76ylje1DdDsvw+zzZXYTSz4nMo1
-9jIBXskDeypu4w5zE3WY4FxaDMVbpcJW3fQ1u3aLSCswmOlyKrH3t90PAoGBAOdZ
-tjJrOyYD1FELv/BD5fOVInq/3EGFZFZKXSBtLtzYDzLebUPPwrGjwCkq7VIK8BUK
-8+IxGlx3KrQL9omUrpb2DuoKjOgeVvsXEL0a1uykkVbkk8O+VBtfdcsJLZimJqhl
-kVxXKnPHAp1+cVDt+MvbdCKiE0kwaVqnkUM1H+slAoGASiHB6RWMJTX30+n9kjH7
-Zt/H7zVSWkKYb2Y41ZpaVncggltI0NFdbwnIFLFem9+dI9LhCIKmkAITMJdtpHHL
-wYJkf+g51RDnQfXN6ec+v7rZGnwu4Mk23Y2LoOkSdryYszCiB+ITQutMOkkyKHC9
-GHt444aqabbwgQhlvYqqkYUCgYA3/1/5bjkf53dhsp1f0596SRPScFQoy9fQhylp
-auQX8ngjUPFTo5s1kjQ2Arz0yc742PDVRBtkXDfK4sZm4MUtpxtPDQS0PnvBRQD5
-NODm4KKJTMRzccM76OxDG9Kci0L6KbN4jWSqJ3Z7lpppA2DgPxsqMt7GLWCi38Jq
-aRZzvQKBgFbcHMmGAjgszC+ZSMZP3EhNwMQLAdeCVoEqfZAItO6q2NwB54YhYK9l
-nvYieUYGRvFc+jdbyfqPG98BZXcgt2PuB17gA8jdajCZJFeQtCo1GKwWkSYB/2MF
-jOJmAGkTZ40jffKgngJKQ8Zs360vjhvPYr51Gr0pZ1/8NT4/yueZ
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA2-pathlen1.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA2-pathlen1.pem
deleted file mode 100644
index 1592a0143..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA2-pathlen1.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA3-pathlen99, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA2-pathlen1, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d7:3e:de:b9:f9:a9:d7:8e:7a:4b:f2:f1:8c:f9:
- 3b:1c:ce:59:31:4c:57:0c:2e:8a:0f:90:f0:dc:27:
- 55:0b:10:c3:a2:e8:b9:39:75:17:d1:9d:99:43:94:
- b2:f1:56:76:6b:b9:46:a6:b8:35:95:a1:d2:d0:ec:
- 8e:be:95:dc:78:17:0a:41:a1:23:df:cb:b2:87:cb:
- 2e:1d:02:7d:c4:fe:7a:f6:7a:d8:a5:8d:b5:11:1a:
- e4:6b:d2:66:01:01:03:a7:3b:95:49:92:5d:c1:c7:
- 49:f0:1a:ef:00:71:37:99:5a:87:0a:40:de:55:0e:
- 68:89:dc:e7:a1:14:bf:9d:72:93:7e:48:29:e4:ea:
- a6:4f:0a:7a:a5:a1:39:6c:21:84:3a:8f:ca:7a:35:
- 0b:0a:cd:12:67:3c:56:06:f5:9d:24:c9:8e:4a:82:
- 23:c8:38:7f:ac:98:b6:b2:57:dc:82:62:84:00:13:
- 7b:ea:73:80:26:4a:9b:c1:b4:0a:f1:fc:ff:46:58:
- 96:a0:21:a1:c9:8f:d9:99:74:41:0b:d0:6d:31:a7:
- ab:87:92:76:51:42:ef:88:95:cc:2c:f2:9b:cc:d5:
- 29:a0:f7:aa:6b:e1:ab:32:16:cd:55:c4:15:80:69:
- 80:91:d8:78:2c:07:15:fd:c2:02:a4:f4:13:75:50:
- b8:2b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- E1:E6:9B:28:CF:FD:AB:45:C1:B7:A7:C4:C9:58:FC:41:E3:1A:5C:74
- X509v3 Authority Key Identifier:
- keyid:C1:CD:1F:81:13:82:24:3B:CF:64:51:7A:4C:E3:65:2E:75:1E:01:23
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainG-ICA4-pathlen5/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:1
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 3b:e4:43:62:32:48:75:cf:da:f6:fa:38:4f:1b:b2:25:84:5b:
- 79:8f:ce:9c:19:10:ef:ab:b4:b5:f0:2b:d1:16:77:f6:cc:f6:
- 43:c7:1f:ca:92:f9:d7:69:3c:82:02:02:19:55:a4:a1:d0:1c:
- 7c:e8:b8:8f:4c:7b:42:6c:68:0d:0c:b0:05:ad:39:29:7c:45:
- 8e:e2:b3:54:e7:98:84:95:21:3d:73:26:33:5e:5b:59:59:f2:
- 03:13:28:86:e1:2c:da:a8:37:7e:2e:93:5e:e1:41:9c:6d:03:
- 16:0f:8a:b2:4d:67:b6:1b:65:8a:cb:30:b5:ed:ad:e7:9f:81:
- 21:a7:6d:39:f7:af:93:82:1c:89:55:ae:0d:e8:88:be:a5:27:
- 60:56:7b:f3:5c:1d:57:49:36:c2:9f:cc:50:62:a7:82:54:61:
- 36:10:01:2f:cf:85:b2:dd:d7:56:cc:18:7e:85:5d:f1:b7:b7:
- b6:c3:04:6b:01:5e:b8:68:28:9a:6b:fc:83:33:b7:28:64:55:
- 38:ee:a4:5a:d5:87:ef:89:07:c4:60:9d:8a:25:d5:71:94:5b:
- 96:3f:a4:3f:1d:80:3e:ef:97:9e:c4:25:f1:82:01:27:40:27:
- cc:61:e6:67:e0:58:33:e9:9f:35:65:89:40:17:6a:a7:6c:d9:
- 70:2c:59:a1
------BEGIN CERTIFICATE-----
-MIIE1DCCA7ygAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBojELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNo
-YWluRy1JQ0EzLXBhdGhsZW45OTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3Ns
-LmNvbTAeFw0xOTEwMTEwMDI4MDlaFw0yMjA3MDcwMDI4MDlaMIGhMQswCQYDVQQG
-EwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEVMBMG
-A1UECgwMd29sZlNTTCBJbmMuMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEdMBsGA1UE
-AwwUY2hhaW5HLUlDQTItcGF0aGxlbjExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDXPt65+anX
-jnpL8vGM+TsczlkxTFcMLooPkPDcJ1ULEMOi6Lk5dRfRnZlDlLLxVnZruUamuDWV
-odLQ7I6+ldx4FwpBoSPfy7KHyy4dAn3E/nr2etiljbURGuRr0mYBAQOnO5VJkl3B
-x0nwGu8AcTeZWocKQN5VDmiJ3OehFL+dcpN+SCnk6qZPCnqloTlsIYQ6j8p6NQsK
-zRJnPFYG9Z0kyY5KgiPIOH+smLayV9yCYoQAE3vqc4AmSpvBtArx/P9GWJagIaHJ
-j9mZdEEL0G0xp6uHknZRQu+Ilcws8pvM1Smg96pr4asyFs1VxBWAaYCR2HgsBxX9
-wgKk9BN1ULgrAgMBAAGjggESMIIBDjAdBgNVHQ4EFgQU4eabKM/9q0XBt6fEyVj8
-QeMaXHQwgc4GA1UdIwSBxjCBw4AUwc0fgROCJDvPZFF6TONlLnUeASOhgaekgaQw
-gaExCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdT
-ZWF0dGxlMRUwEwYDVQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVy
-aW5nMR0wGwYDVQQDDBRjaGFpbkctSUNBNC1wYXRobGVuNTEfMB0GCSqGSIb3DQEJ
-ARYQaW5mb0B3b2xmc3NsLmNvbYIBZDAPBgNVHRMECDAGAQH/AgEBMAsGA1UdDwQE
-AwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAO+RDYjJIdc/a9vo4TxuyJYRbeY/OnBkQ
-76u0tfAr0RZ39sz2Q8cfypL512k8ggICGVWkodAcfOi4j0x7QmxoDQywBa05KXxF
-juKzVOeYhJUhPXMmM15bWVnyAxMohuEs2qg3fi6TXuFBnG0DFg+Ksk1nthtlissw
-te2t55+BIadtOfevk4IciVWuDeiIvqUnYFZ781wdV0k2wp/MUGKnglRhNhABL8+F
-st3XVswYfoVd8be3tsMEawFeuGgommv8gzO3KGRVOO6kWtWH74kHxGCdiiXVcZRb
-lj+kPx2APu+XnsQl8YIBJ0AnzGHmZ+BYM+mfNWWJQBdqp2zZcCxZoQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA3-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA3-key.pem
deleted file mode 100644
index 357c8f061..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA3-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEArPE5Zfecnfbw0rcYFiSBMrelKdb3TjE4p1TW6weXJ6GS4ME6
-tZMGF++ndPibQpcM1tPUNslh75JMPsR0CNYZKs2b8W/oyGefKFSZzmMah1aZNjFl
-BcXWl89R5C09dBQx08MF/A58k1fN98SX11xldec1hYEn65qf16K8KEGozpI6ELk1
-KIPcsCfMbiADYBMjIrQ8JViuobIk0SGLufAohK7mAMzLm3iM+kvtc3qRBfn7bjQ7
-fq/5RZ6g1WK72M2VnqKQcifgPrmwXgqy5FWVAwymZkRl2wqfkFrTgcfiPvKwmuAF
-HN5kBMJ+yn7fofYY5ZTTdPulHy13zW5eVaOAywIDAQABAoIBAQCTPWlF9DPGlbjh
-XftG1tucx5f58EhrrSJz7JpyTesWVczMSBdpAfzdIjArOYJOhnXq7TyvTHNyWddK
-VU4JO+b/d0B+pW3GOdrapnSwr9WlRkh5SEKfUJnsdBlfsFiy3IKzrUYKHHdZpxb4
-DMvOEp9ba3c47AaF5AaUu7uAdq5298erL6/viPCwbT5am1U+d3tDGdj9PYPRlzIa
-o7QenU8tZcfW+m/6Ogut3kpFQtXRpmzS2ArtG0uAkS6oVzDrDvGu908VvbTyAZ/f
-PsYNK972RxO5QEBGsrSl5AQaeoOKOonUa0TWjKq0Q/wWkRZXdNQjKCQll96Izie4
-Ij4pYCh5AoGBANo9u4jDu5HT70U489e585NmAsNWejeQjB8GvLkSXoWqnVO0Dl/p
-VsMVwK2hQaD6D4UKHY+3f/Ino3/5nShCgaRZDIOD7ZMW0kqCJOJUNTkDZfigJhfd
-+zuQ2fytT4gcvJAwF1vjRril156yQY74k6xMJR2Xm1Px47s2fWYXM9z/AoGBAMrd
-IP8Pce4qfSTDK3ukhffdcmiaR0GR2R+gcQYMbkuWmMj9lbKAFKrPHP40bepn1Pqf
-SfZE5kIXuWv1QlfROfCqpub3/yYiv7dgKfgOqS8ThZSdtiFcVfsd6huPuXFcDYDw
-4O0VTZzEbNb4mXUgBGTPFCUlEIoQ1ZU7Xk1EWUA1AoGAKOBVJsmacTbj4vBG48oF
-cD80F0g0PgIJ7KnDYVqqb5jEPPBFnPtEb+e8HglNFIyhqYZ6gPeatE1uV0L2h5rl
-U1YGfP+R2PH2U1RK+kVRbqtPRyEf4WqHauG3opcHhXP0cYFAbsqD7YPKfgPfOZsf
-da8RaJiD1FZDFEaheCSyZxsCgYBYFtF/MAu+6cBRuFYnaHer/AL0HRoYBOcNbrPl
-dnxmYkyR6luYmTlgOnNShx27jb7T3VtWjvCVfovLr0JRs86/DLtQzBuFSc2KKT3Q
-Mz2P7aAxupIdxmSnmIPR2AUkjl5mwTJKgNek3T6N0oGAdJiz1Z/fyUp3SXwVQyRd
-1PIUiQKBgG+HlGVGmDTssZYpPMsf/qeFD/mzTfnjZJwoxYK+qCKsiwjg9KQPNg+N
-ET+Ou3rnIhjJGB8d82TuXzIvlpRVIw7WaPQDTIsTNC2x8W7CURkSTyAzefOpz4tK
-wziwYJTC9N3eQwHpSNReyuIyAxgzeYuaZuIFofoQSLfCDYeC6d0j
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA3-pathlen99.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA3-pathlen99.pem
deleted file mode 100644
index 9c6429cff..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA3-pathlen99.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA4-pathlen5, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA3-pathlen99, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:ac:f1:39:65:f7:9c:9d:f6:f0:d2:b7:18:16:24:
- 81:32:b7:a5:29:d6:f7:4e:31:38:a7:54:d6:eb:07:
- 97:27:a1:92:e0:c1:3a:b5:93:06:17:ef:a7:74:f8:
- 9b:42:97:0c:d6:d3:d4:36:c9:61:ef:92:4c:3e:c4:
- 74:08:d6:19:2a:cd:9b:f1:6f:e8:c8:67:9f:28:54:
- 99:ce:63:1a:87:56:99:36:31:65:05:c5:d6:97:cf:
- 51:e4:2d:3d:74:14:31:d3:c3:05:fc:0e:7c:93:57:
- cd:f7:c4:97:d7:5c:65:75:e7:35:85:81:27:eb:9a:
- 9f:d7:a2:bc:28:41:a8:ce:92:3a:10:b9:35:28:83:
- dc:b0:27:cc:6e:20:03:60:13:23:22:b4:3c:25:58:
- ae:a1:b2:24:d1:21:8b:b9:f0:28:84:ae:e6:00:cc:
- cb:9b:78:8c:fa:4b:ed:73:7a:91:05:f9:fb:6e:34:
- 3b:7e:af:f9:45:9e:a0:d5:62:bb:d8:cd:95:9e:a2:
- 90:72:27:e0:3e:b9:b0:5e:0a:b2:e4:55:95:03:0c:
- a6:66:44:65:db:0a:9f:90:5a:d3:81:c7:e2:3e:f2:
- b0:9a:e0:05:1c:de:64:04:c2:7e:ca:7e:df:a1:f6:
- 18:e5:94:d3:74:fb:a5:1f:2d:77:cd:6e:5e:55:a3:
- 80:cb
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- C1:CD:1F:81:13:82:24:3B:CF:64:51:7A:4C:E3:65:2E:75:1E:01:23
- X509v3 Authority Key Identifier:
- keyid:D4:92:AE:BD:3B:1C:66:4B:17:88:18:15:F8:27:AB:38:CC:07:5A:65
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainG-ICA5-pathlen20/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:99
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 77:4b:04:d7:e6:fd:c1:bb:55:0c:2d:23:bf:90:a3:20:af:cd:
- 54:11:34:97:fb:06:55:c1:11:ee:c5:bc:fe:5c:34:73:08:f9:
- e9:c3:81:b8:0d:fa:6b:44:cd:ed:4a:d0:3b:40:6d:96:e5:cf:
- 96:7d:aa:0d:65:fa:d7:6d:f7:3d:c9:9d:e5:e1:5e:be:34:7d:
- b8:62:0c:22:e1:88:c8:02:b8:90:89:9f:1c:1d:18:5c:2d:01:
- c9:95:f4:19:01:a6:5b:7a:26:6a:38:71:16:87:88:19:3f:60:
- 35:99:71:4c:79:90:db:f9:9b:73:0d:74:45:87:b1:4f:e5:63:
- a2:21:b4:38:32:d2:78:f0:15:a6:3a:ac:50:2a:a1:b2:41:f9:
- 2b:0a:5c:5b:9a:94:17:42:88:44:41:fa:aa:d3:17:49:c1:31:
- eb:a2:89:1f:c7:e7:b2:b0:71:98:64:4e:d6:de:b9:c2:5d:de:
- 0e:86:68:1d:9c:ea:7c:b0:72:ee:2a:fa:26:26:1a:21:99:60:
- 03:a2:01:67:0e:7d:4a:00:d9:23:2e:c2:c8:c8:3d:04:7a:78:
- 08:81:f7:e4:0d:dc:e2:db:b6:1f:8a:33:ab:6f:a1:0d:5f:86:
- cd:b7:c9:e1:35:a3:c8:81:da:15:3c:de:39:30:b7:d3:ec:4f:
- d3:44:fe:dc
------BEGIN CERTIFICATE-----
-MIIE1TCCA72gAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluRy1JQ0E0LXBhdGhsZW41MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOVoXDTIyMDcwNzAwMjgwOVowgaIxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR4wHAYDVQQD
-DBVjaGFpbkctSUNBMy1wYXRobGVuOTkxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs8Tll95yd
-9vDStxgWJIEyt6Up1vdOMTinVNbrB5cnoZLgwTq1kwYX76d0+JtClwzW09Q2yWHv
-kkw+xHQI1hkqzZvxb+jIZ58oVJnOYxqHVpk2MWUFxdaXz1HkLT10FDHTwwX8DnyT
-V833xJfXXGV15zWFgSfrmp/XorwoQajOkjoQuTUog9ywJ8xuIANgEyMitDwlWK6h
-siTRIYu58CiEruYAzMubeIz6S+1zepEF+ftuNDt+r/lFnqDVYrvYzZWeopByJ+A+
-ubBeCrLkVZUDDKZmRGXbCp+QWtOBx+I+8rCa4AUc3mQEwn7Kft+h9hjllNN0+6Uf
-LXfNbl5Vo4DLAgMBAAGjggETMIIBDzAdBgNVHQ4EFgQUwc0fgROCJDvPZFF6TONl
-LnUeASMwgc8GA1UdIwSBxzCBxIAU1JKuvTscZksXiBgV+CerOMwHWmWhgaikgaUw
-gaIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdT
-ZWF0dGxlMRUwEwYDVQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVy
-aW5nMR4wHAYDVQQDDBVjaGFpbkctSUNBNS1wYXRobGVuMjAxHzAdBgkqhkiG9w0B
-CQEWEGluZm9Ad29sZnNzbC5jb22CAWQwDwYDVR0TBAgwBgEB/wIBYzALBgNVHQ8E
-BAMCAQYwDQYJKoZIhvcNAQELBQADggEBAHdLBNfm/cG7VQwtI7+QoyCvzVQRNJf7
-BlXBEe7FvP5cNHMI+enDgbgN+mtEze1K0DtAbZblz5Z9qg1l+tdt9z3JneXhXr40
-fbhiDCLhiMgCuJCJnxwdGFwtAcmV9BkBplt6Jmo4cRaHiBk/YDWZcUx5kNv5m3MN
-dEWHsU/lY6IhtDgy0njwFaY6rFAqobJB+SsKXFualBdCiERB+qrTF0nBMeuiiR/H
-57KwcZhkTtbeucJd3g6GaB2c6nywcu4q+iYmGiGZYAOiAWcOfUoA2SMuwsjIPQR6
-eAiB9+QN3OLbth+KM6tvoQ1fhs23yeE1o8iB2hU83jkwt9PsT9NE/tw=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA4-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA4-key.pem
deleted file mode 100644
index fba2bbcdb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA4-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEAyUugd7hCQ5bh9I0dpizYEqJASRHrX/tsHRU+r907x/3JYUOZ
-jse8Y7xbkyTz5WbIPjqcfQ4bwWyEjJCwEaojLXiZFz7pa6CMZP0Qe2bttD6wlu82
-Hy1txJY8WtyDwunNZNNfx+rbhC4kDHfR/YzP13ivW5jpxP1m+nYdesPDZDKtuYta
-TILtOv4HRCATiN8CLNmXIaQ5pvN+i+LAzIZrWiUw1/m6Ke8bLvY/wX2xDJWOwM5z
-QUcc7DNEYEadsHUHUMgZvx6CyMM92OIZHgs2nTSVh+qgH+iAYKWxlEIeV8ig5q34
-c8iC5DiE05f8hcTe0sDFbcce6x3B8d6XJ8q+SwIDAQABAoIBAQChoV8dIk/a07ll
-UzY+a32oIK37vi7AKDLce2WVctAAuvBLcCtJ8Wl8sA7b7O0GA2zAQvHKnFx/CHK6
-J6eo13NdnJtYhgSJjiWNJYJpg/FULI5A850Clciw9G1MDAqkpHVvAybCcPuIfEAn
-3sI3lCyDeH1d0D/NFCfu7o6nN6+ZsIW0FNrNEhmSMLVEXxJvjZboXD6bMC//a9db
-/XMZPwah/HxaZebBwZGMOVtNVIAKAMwG1DfT0conX4b+xVJtz/o+dVqBv1KZ0NnQ
-KZzVeRpwP/4L4fWhicnOxUFP1h50MOmpB0BmBn7zcjlBG+D8Xhunwa1igZOTh9ft
-+UuyCPFBAoGBAPhg3Brlvw3P4xZb64nQykxpFXpP4HRC6pRby/Hyn6RjwDEd7SdC
-MQRXv9BkrOSq3WBxu6F/u+zBjFnkj6lENz65cmAijOrXCkDuMRSX9mM5uHzZFpo2
-QKt595HvGGScysG8/6G+cv/0hu5hVMNlSjwvitXlhX0nOgb0PUpjr4fhAoGBAM94
-5/78sFUlG/cdOFfaFe8HR2ddiT3ofoMzdNqP7UR1oLPwT02vjrWjZLEXoSaaCjr4
-CUu3WVV5UndaA8OW4RgplkutMAxBggSBeoC4tGau31J4755ae5HwekE59Jh/XfO9
-vc1DEf49WDzL21mBd8yMY2k739vf52Qxqa27/lurAoGALWYu9S+nU1P7UxvsGp2y
-THMsvNWa1kVg8UsyJQBPE9Iz0AaDUZi0svGDGwk73PQqULWZMTTS2byq9cdkRvE0
-E9/7uvy1uzshIasoB3abT5m+UfuwOPHPskgx61fDoqhSG0V7iEnyZTyB6VKbFrgN
-8KBUBTLVyoGABsNf7Jf5/qECgYBugL1ASKI6l2tPsRaDZDrudvgHDAC/IofPpaaF
-iscbAXO4ozP58pmWERLeZ/GDN+RfCCEbXOqN5fKQczcyA7icP/o3EGVZAcMYV0ZC
-LR6Y2mdD6/nkY9kRH/5do1qtppkJ63OeUizRNyc6KnIIODbwkY2ZTTSsTZNXAESZ
-rlmJxQKBgDJRGNWNx9WFaKx0WSX9qIvtrpJ3p7Flx8IbqvLCqWY799EXROKxbCNx
-0SZMdqs0ebc1h+sEDsGfJs8NPqTdt22C1LQjt9eJIx5eU8lBeR1gTcZ3gdQitSNv
-YJr6+6t/C1gvHsvxFWlBG0DPWgJUwqAxvYcGh4aTj9GHuNtvvLDl
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA4-pathlen5.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA4-pathlen5.pem
deleted file mode 100644
index 8467d9f36..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA4-pathlen5.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA5-pathlen20, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA4-pathlen5, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:c9:4b:a0:77:b8:42:43:96:e1:f4:8d:1d:a6:2c:
- d8:12:a2:40:49:11:eb:5f:fb:6c:1d:15:3e:af:dd:
- 3b:c7:fd:c9:61:43:99:8e:c7:bc:63:bc:5b:93:24:
- f3:e5:66:c8:3e:3a:9c:7d:0e:1b:c1:6c:84:8c:90:
- b0:11:aa:23:2d:78:99:17:3e:e9:6b:a0:8c:64:fd:
- 10:7b:66:ed:b4:3e:b0:96:ef:36:1f:2d:6d:c4:96:
- 3c:5a:dc:83:c2:e9:cd:64:d3:5f:c7:ea:db:84:2e:
- 24:0c:77:d1:fd:8c:cf:d7:78:af:5b:98:e9:c4:fd:
- 66:fa:76:1d:7a:c3:c3:64:32:ad:b9:8b:5a:4c:82:
- ed:3a:fe:07:44:20:13:88:df:02:2c:d9:97:21:a4:
- 39:a6:f3:7e:8b:e2:c0:cc:86:6b:5a:25:30:d7:f9:
- ba:29:ef:1b:2e:f6:3f:c1:7d:b1:0c:95:8e:c0:ce:
- 73:41:47:1c:ec:33:44:60:46:9d:b0:75:07:50:c8:
- 19:bf:1e:82:c8:c3:3d:d8:e2:19:1e:0b:36:9d:34:
- 95:87:ea:a0:1f:e8:80:60:a5:b1:94:42:1e:57:c8:
- a0:e6:ad:f8:73:c8:82:e4:38:84:d3:97:fc:85:c4:
- de:d2:c0:c5:6d:c7:1e:eb:1d:c1:f1:de:97:27:ca:
- be:4b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- D4:92:AE:BD:3B:1C:66:4B:17:88:18:15:F8:27:AB:38:CC:07:5A:65
- X509v3 Authority Key Identifier:
- keyid:1D:51:80:B6:9A:A7:AC:DD:80:7B:4B:A2:0B:62:BE:E4:87:30:C7:CA
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainG-ICA6-pathlen10/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:5
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- ab:ff:d4:87:51:61:f9:a5:68:8d:4e:fd:01:0c:e3:75:9a:c5:
- 16:f2:c4:1e:d8:bd:d4:ce:9e:b9:bd:72:db:f2:89:2b:7a:46:
- b4:6c:16:e5:dc:5a:eb:d0:3f:63:a8:98:82:0e:df:c6:1a:40:
- a2:1a:a0:d5:49:10:a6:f4:ae:10:61:0a:2e:91:0d:bc:cf:e9:
- bf:9e:98:23:38:30:f2:00:e3:ca:47:df:ad:46:e8:7b:b2:ae:
- 1e:af:fd:c7:2e:b7:7d:b7:46:df:cd:bf:06:77:19:29:2b:fc:
- 7c:f9:f7:2f:59:ce:90:a6:9e:70:33:58:b6:72:a4:ed:63:9b:
- 50:62:6c:38:01:73:63:48:4e:6b:34:3f:c4:d5:de:45:09:a9:
- 27:d1:78:36:59:1e:21:ad:a9:a3:1f:14:25:d1:ce:ab:90:3f:
- c0:82:7a:54:fe:6b:48:fc:52:e1:f4:69:2d:84:2e:1c:7b:6f:
- 42:4a:7b:05:91:70:0d:f3:ae:b3:d6:bc:7a:fa:9c:c8:0a:e8:
- f1:a0:fa:ee:f3:fe:1d:34:0e:31:79:d8:80:57:53:23:af:65:
- 92:94:ef:16:de:e0:9f:0a:5a:17:ba:e8:81:90:e1:e4:24:97:
- b4:73:82:4c:38:4c:45:2f:82:75:55:4b:af:b8:58:b3:b1:d1:
- 60:ab:53:5f
------BEGIN CERTIFICATE-----
-MIIE1TCCA72gAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBojELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNo
-YWluRy1JQ0E1LXBhdGhsZW4yMDEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3Ns
-LmNvbTAeFw0xOTEwMTEwMDI4MDlaFw0yMjA3MDcwMDI4MDlaMIGhMQswCQYDVQQG
-EwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEVMBMG
-A1UECgwMd29sZlNTTCBJbmMuMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEdMBsGA1UE
-AwwUY2hhaW5HLUlDQTQtcGF0aGxlbjUxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJS6B3uEJD
-luH0jR2mLNgSokBJEetf+2wdFT6v3TvH/clhQ5mOx7xjvFuTJPPlZsg+Opx9DhvB
-bISMkLARqiMteJkXPulroIxk/RB7Zu20PrCW7zYfLW3Eljxa3IPC6c1k01/H6tuE
-LiQMd9H9jM/XeK9bmOnE/Wb6dh16w8NkMq25i1pMgu06/gdEIBOI3wIs2ZchpDmm
-836L4sDMhmtaJTDX+bop7xsu9j/BfbEMlY7AznNBRxzsM0RgRp2wdQdQyBm/HoLI
-wz3Y4hkeCzadNJWH6qAf6IBgpbGUQh5XyKDmrfhzyILkOITTl/yFxN7SwMVtxx7r
-HcHx3pcnyr5LAgMBAAGjggETMIIBDzAdBgNVHQ4EFgQU1JKuvTscZksXiBgV+Cer
-OMwHWmUwgc8GA1UdIwSBxzCBxIAUHVGAtpqnrN2Ae0uiC2K+5Icwx8qhgaikgaUw
-gaIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdT
-ZWF0dGxlMRUwEwYDVQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVy
-aW5nMR4wHAYDVQQDDBVjaGFpbkctSUNBNi1wYXRobGVuMTAxHzAdBgkqhkiG9w0B
-CQEWEGluZm9Ad29sZnNzbC5jb22CAWQwDwYDVR0TBAgwBgEB/wIBBTALBgNVHQ8E
-BAMCAQYwDQYJKoZIhvcNAQELBQADggEBAKv/1IdRYfmlaI1O/QEM43WaxRbyxB7Y
-vdTOnrm9ctvyiSt6RrRsFuXcWuvQP2OomIIO38YaQKIaoNVJEKb0rhBhCi6RDbzP
-6b+emCM4MPIA48pH361G6Huyrh6v/ccut323Rt/NvwZ3GSkr/Hz59y9ZzpCmnnAz
-WLZypO1jm1BibDgBc2NITms0P8TV3kUJqSfReDZZHiGtqaMfFCXRzquQP8CCelT+
-a0j8UuH0aS2ELhx7b0JKewWRcA3zrrPWvHr6nMgK6PGg+u7z/h00DjF52IBXUyOv
-ZZKU7xbe4J8KWhe66IGQ4eQkl7Rzgkw4TEUvgnVVS6+4WLOx0WCrU18=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA5-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA5-key.pem
deleted file mode 100644
index e3e23ae9d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA5-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEAvp2YokHKZB+iNNxRfUkr9/h6/BoijToXjgCcdAYYDybR6B1V
-Sz67bphtZctvvsWYQGUd4R2vrbx8sPq2Ksuv39VSmOYBATEBP8cWBkSSVUNv3Um+
-qlLSgMo60HLzCn5Zyyx0fFsZPXWdPto1RUmLDTaEgEG3znD8qNBNC9TzTnOH2y4Y
-IEVw81rRz0/4eK18S5c88Q+K9myPejrJeYItv66A+IsdeRebdjSXsXldefowc3j8
-nO7rYiCV8aivHkqRzB40kMeJIUFBkAkQUt0hdRURqs/Y5Gx9lsjWzZDr+t+G5z02
-cxjzhsWZDg735AmPjCnxrRXpgslsh/wAe0su8QIDAQABAoIBAFM+piLuUoIpYoBt
-W1U4uHAB30vr6fz9Sr4kPC9bXfR4AqG49b/3tIlXHiefkbyhtJ0iy8q9WTSppVbx
-Fs9XxwYctoa5o+SuTxpYSqEQH0wHOHpOs2rU4sOGDets2AFULsjRMEoCyuIRVEvX
-pf4NYSGzFmigyrHonB7pYUxygpNWlb+gPdnclhTj4psk1RP4cekFcLDHVxa2aq9K
-STmHna7EE8XhbS2VeJ0+C9eRxXjcpjIMod1D9MycKjomuZMB0ElDp8lFgPvyNwf+
-I6Luv31YkRX7gi7l7HaPSnwnXgYfl7gcMCjgn8q3GHxiz7L40RBqCfdTE7of2ZJi
-Yxlq2+UCgYEA62KTMYRCX3fP9+6m0LSPLX+mYVjxzgowcEZ0wbpgTRExONDvzfB/
-JgdwrSVSXhvbmoXs9LtdOWWpISpadh+c2vkx9w8ZP5DWk0h3g3FonP8pz85/OlnR
-JaPzXvo+DuUfEG8VK4WneineOp74ZhXHoMbpKyg4zpNwloDYdWaA9dMCgYEAz09F
-0Q+tmGfkQ76ECKQcQGsvbVDUED/Fk74VE7T/6d+EJ8RiPo6OQp8j3ObRKnlxm5n2
-XRG8nDyygAlscIZKlHDNaH6Qxvh+MFt378d3ziKuXkpKe147duRkBloQjnxEl5EM
-u5bhaIR1EMhXrPjWbbxBA3jubiJ8hK9HDrgJOasCgYBJ4xuJQ5cCGL3zebprcQIw
-qg00KZNdtd0WoUctOK/aATeOOifMYV3INjWsZDbCy8PXcYq8F8RfrAW3H3Bd+/Zk
-1ixU/SxTw8dXXDwHyqWoAoDBdnSBgIgiZKCUg8DPNCTYJ8ZhbwbvVg0oIZaflN6h
-HU87+Ng8IBQLak6IK7D3eQKBgA6OqH5ntW7wTK0dIbRhocI8RJZOiLWjZMJdJKm/
-mgDYOzV3qtZtuDuhZSlL5AAxivK8OvqKFk56TKaFAuJb67zEtwfRa2Utad8HbUKf
-JSCKeugQG27STSaqHwP7KxJ2U3K5MsWxcJ6gPoAxMUbqKlSGVaJiyYteTJQcosa7
-0ZoFAoGBAOrSClY4sWV488+X/KFMkpXYdZCVbfGXqPLpaAFEOtOyNZw7PWF3ZfC6
-l3aqPxLBP1P55+KEcxz3dEEXZerr9OWfD5GOdz5/ep/Amrs0x/3ismZFQgXLa8Pm
-NKt26anSXny8DfJMMe0W+6PQ2JUjrgp4bWF3OoQzsGLMHQBVFw+u
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA5-pathlen20.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA5-pathlen20.pem
deleted file mode 100644
index f9c3486bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA5-pathlen20.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA6-pathlen10, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA5-pathlen20, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:be:9d:98:a2:41:ca:64:1f:a2:34:dc:51:7d:49:
- 2b:f7:f8:7a:fc:1a:22:8d:3a:17:8e:00:9c:74:06:
- 18:0f:26:d1:e8:1d:55:4b:3e:bb:6e:98:6d:65:cb:
- 6f:be:c5:98:40:65:1d:e1:1d:af:ad:bc:7c:b0:fa:
- b6:2a:cb:af:df:d5:52:98:e6:01:01:31:01:3f:c7:
- 16:06:44:92:55:43:6f:dd:49:be:aa:52:d2:80:ca:
- 3a:d0:72:f3:0a:7e:59:cb:2c:74:7c:5b:19:3d:75:
- 9d:3e:da:35:45:49:8b:0d:36:84:80:41:b7:ce:70:
- fc:a8:d0:4d:0b:d4:f3:4e:73:87:db:2e:18:20:45:
- 70:f3:5a:d1:cf:4f:f8:78:ad:7c:4b:97:3c:f1:0f:
- 8a:f6:6c:8f:7a:3a:c9:79:82:2d:bf:ae:80:f8:8b:
- 1d:79:17:9b:76:34:97:b1:79:5d:79:fa:30:73:78:
- fc:9c:ee:eb:62:20:95:f1:a8:af:1e:4a:91:cc:1e:
- 34:90:c7:89:21:41:41:90:09:10:52:dd:21:75:15:
- 11:aa:cf:d8:e4:6c:7d:96:c8:d6:cd:90:eb:fa:df:
- 86:e7:3d:36:73:18:f3:86:c5:99:0e:0e:f7:e4:09:
- 8f:8c:29:f1:ad:15:e9:82:c9:6c:87:fc:00:7b:4b:
- 2e:f1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 1D:51:80:B6:9A:A7:AC:DD:80:7B:4B:A2:0B:62:BE:E4:87:30:C7:CA
- X509v3 Authority Key Identifier:
- keyid:14:07:E8:A7:3A:A2:9C:DD:4C:30:B0:4D:F0:00:C4:88:C4:39:DF:73
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainG-ICA7-pathlen100/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:20
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- a4:e7:16:a9:20:7b:9c:89:49:48:94:e7:58:31:71:34:10:35:
- d5:b6:91:5f:5e:2d:63:66:48:ff:45:7f:d4:dc:53:39:6f:7b:
- 13:0a:de:37:7c:c1:43:e9:f9:b2:71:b8:93:22:12:7f:50:9b:
- b9:0c:e4:3a:47:7a:95:bc:a4:08:41:73:f0:a3:9a:88:98:7e:
- d0:7c:bb:76:ab:5c:ad:3c:41:73:78:5b:b1:0d:06:ae:46:d2:
- 81:af:9a:53:f7:d2:45:66:99:45:5e:2e:05:48:47:78:49:b4:
- 27:c9:76:5f:93:be:d4:f7:3d:a7:16:39:ef:dc:a1:57:7f:78:
- ca:d3:33:94:87:cb:dd:aa:88:07:0b:62:fa:eb:f0:c9:5f:d8:
- 3f:a3:6d:d5:dc:ea:a0:b9:c6:dc:7f:08:46:9e:ed:41:52:46:
- d2:7a:96:20:37:f6:69:ef:85:23:43:fa:a8:27:1c:2b:70:37:
- 7d:50:ce:48:4b:f7:ce:2d:6a:08:3d:45:f3:a3:e4:1f:ef:1f:
- 0e:72:e2:f2:f1:e7:5f:72:1f:84:53:1b:d6:b4:2b:e4:4a:3d:
- 39:db:a7:02:6a:02:5e:de:3a:43:05:32:de:16:e9:5e:cf:12:
- b2:0e:60:36:e1:47:12:ab:98:ce:ef:c4:76:d5:30:b6:72:ae:
- af:13:14:17
------BEGIN CERTIFICATE-----
-MIIE1zCCA7+gAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBojELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNo
-YWluRy1JQ0E2LXBhdGhsZW4xMDEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3Ns
-LmNvbTAeFw0xOTEwMTEwMDI4MDlaFw0yMjA3MDcwMDI4MDlaMIGiMQswCQYDVQQG
-EwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEVMBMG
-A1UECgwMd29sZlNTTCBJbmMuMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEeMBwGA1UE
-AwwVY2hhaW5HLUlDQTUtcGF0aGxlbjIwMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvp2YokHK
-ZB+iNNxRfUkr9/h6/BoijToXjgCcdAYYDybR6B1VSz67bphtZctvvsWYQGUd4R2v
-rbx8sPq2Ksuv39VSmOYBATEBP8cWBkSSVUNv3Um+qlLSgMo60HLzCn5Zyyx0fFsZ
-PXWdPto1RUmLDTaEgEG3znD8qNBNC9TzTnOH2y4YIEVw81rRz0/4eK18S5c88Q+K
-9myPejrJeYItv66A+IsdeRebdjSXsXldefowc3j8nO7rYiCV8aivHkqRzB40kMeJ
-IUFBkAkQUt0hdRURqs/Y5Gx9lsjWzZDr+t+G5z02cxjzhsWZDg735AmPjCnxrRXp
-gslsh/wAe0su8QIDAQABo4IBFDCCARAwHQYDVR0OBBYEFB1RgLaap6zdgHtLogti
-vuSHMMfKMIHQBgNVHSMEgcgwgcWAFBQH6Kc6opzdTDCwTfAAxIjEOd9zoYGppIGm
-MIGjMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwH
-U2VhdHRsZTEVMBMGA1UECgwMd29sZlNTTCBJbmMuMRQwEgYDVQQLDAtFbmdpbmVl
-cmluZzEfMB0GA1UEAwwWY2hhaW5HLUlDQTctcGF0aGxlbjEwMDEfMB0GCSqGSIb3
-DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIBZDAPBgNVHRMECDAGAQH/AgEUMAsGA1Ud
-DwQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEApOcWqSB7nIlJSJTnWDFxNBA11baR
-X14tY2ZI/0V/1NxTOW97EwreN3zBQ+n5snG4kyISf1CbuQzkOkd6lbykCEFz8KOa
-iJh+0Hy7dqtcrTxBc3hbsQ0GrkbSga+aU/fSRWaZRV4uBUhHeEm0J8l2X5O+1Pc9
-pxY579yhV394ytMzlIfL3aqIBwti+uvwyV/YP6Nt1dzqoLnG3H8IRp7tQVJG0nqW
-IDf2ae+FI0P6qCccK3A3fVDOSEv3zi1qCD1F86PkH+8fDnLi8vHnX3IfhFMb1rQr
-5Eo9OdunAmoCXt46QwUy3hbpXs8Ssg5gNuFHEquYzu/EdtUwtnKurxMUFw==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA6-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA6-key.pem
deleted file mode 100644
index c86bf08cc..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA6-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEA4U/J5zDqBv9lyyts8ais9s8Qa4B6r15CCg1hvm8UPJ9kbpZG
-d+JkoA7XVkH8W+b+SYYfjyDMS+w68UZ0Gn4z2arV4ngJ3Qw5IH4yEpbNltsQAei3
-quPhJ10Kj5lu7y3YyMh2qtkAnUjZzxIIlzFZwE+j4O5coTXvlHzGBKo+NKZD4Mjt
-PZFTU54ZA46/MP3ZtUvzUQtg7Sfisd0VPLBfJQ8pm1+qMWRePYMuuCBmudqntSJA
-GT0kXcPn3bZrFsNnI10xZTvLctGnyLDguaLLkIYw1s5/nLOxwzRiY8a5ZjNrW6YA
-u0XuAweWpdcvHvHS8l7C0qE2JfB6cMs9HaRvYQIDAQABAoIBAE1NR7NHR/PQqkcT
-hhQ/T+B52GNZuD30s+mo/7ELgUDvWtDKRDEbfnSfwue4SfHqBbKKDsfXc+BUk0B2
-cJ0qUXXLtAg4MQIjEHKCeYGBNdYdIJfXFTTPbE9KD7aG6NWswCTbCkPBogFUnk36
-HPJqnyVo7Yvdm/A/hgxG5tVw51i+Udw/LFi3AznJyr/if3FW64LxJaiL5HGDgHQS
-Qvs+VuP13vR//BsM2oQPeiPIXpjscTtudFMrawKQiXMSWyD45snNR4AUuBcvXhpE
-j+0sBqDWU1N6IeoZAhdTwJU/iDTbrE64VFr2f6U6bE6lI6h392/InKnoVXn6wyvR
-s9MxXRUCgYEA8ZcFayiF74z/o37yhHcTEITAngmk1D9d9NKyzTPuXhbBwSTwjPwY
-hP6f0KV/mlc+UQp00ULluE2oeM9mA69mD1/eSFqqA6nm5MvNOZsuEzqsmNN+gxk6
-XLuCOFfC7cG5uyodiJq0ooi4X2TXy186XJIZ3eNZ2gm7A0evHXat4T8CgYEA7sA0
-jt6G+oU4ojKn083qxrWNUZfyH3RT1EJv+2S/eZyzrww1kMfZZX3ZbP77iRJSFNaD
-w+m709/5mKmZ8JIpcI2P/w5189680YUM+r9dqr4m4DW10vRQshQv/xExoLcXf7ue
-dBrXpkSO7wNRaAjE+ljBFK3TBQ3ZY+mmNZ2i518CgYEA20A4zbCAJRAsbN/oDqnW
-JnakLIkKCwnbJjYVyT9pBADZJIV2viyHwCMpPP0Fmje1OW0o6UUyIBpyW/m1VoDX
-OfrCS53kj+CgyGHhRXd80Dy+qQ+/0BCUM9aEbsfPA2F+QssM9I2ag6ta0FA/u7UX
-zS1WxlXvlH6iN27WEQJE+ZcCgYEA2hSZLZNYKgd8ZrPslsy10lJNxqULVe31EKKr
-FS++ssAPZSq61welrU4aR7RVYKxqa3xSmaarmeoxXGA3LAbmcVftmyXDWkIvqRZm
-d7hLP8Y3Tn/hGNNvzmogOVWkRlBX16YyI43NQ6PGB865ElVIUAC4RUJNyYUP+HKZ
-Dspx3fMCgYBUBcxQgh8XOt8lb0zs9mZCXPkbkV401brucO0JqhyYvzGLWC4uYQEw
-BuhSW3DKSBcaXMddiuGapuMSwS9A8T6EwGZHZ4PBcndJ2ak1xS2wSr4n/+ttlFWh
-dHn8IrPC6E+gZa34CPza2LQzI1Xu3WAVUxijMNpURtC8lNWSzKXoXw==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA6-pathlen10.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA6-pathlen10.pem
deleted file mode 100644
index 8de172a62..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA6-pathlen10.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA7-pathlen100, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA6-pathlen10, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:e1:4f:c9:e7:30:ea:06:ff:65:cb:2b:6c:f1:a8:
- ac:f6:cf:10:6b:80:7a:af:5e:42:0a:0d:61:be:6f:
- 14:3c:9f:64:6e:96:46:77:e2:64:a0:0e:d7:56:41:
- fc:5b:e6:fe:49:86:1f:8f:20:cc:4b:ec:3a:f1:46:
- 74:1a:7e:33:d9:aa:d5:e2:78:09:dd:0c:39:20:7e:
- 32:12:96:cd:96:db:10:01:e8:b7:aa:e3:e1:27:5d:
- 0a:8f:99:6e:ef:2d:d8:c8:c8:76:aa:d9:00:9d:48:
- d9:cf:12:08:97:31:59:c0:4f:a3:e0:ee:5c:a1:35:
- ef:94:7c:c6:04:aa:3e:34:a6:43:e0:c8:ed:3d:91:
- 53:53:9e:19:03:8e:bf:30:fd:d9:b5:4b:f3:51:0b:
- 60:ed:27:e2:b1:dd:15:3c:b0:5f:25:0f:29:9b:5f:
- aa:31:64:5e:3d:83:2e:b8:20:66:b9:da:a7:b5:22:
- 40:19:3d:24:5d:c3:e7:dd:b6:6b:16:c3:67:23:5d:
- 31:65:3b:cb:72:d1:a7:c8:b0:e0:b9:a2:cb:90:86:
- 30:d6:ce:7f:9c:b3:b1:c3:34:62:63:c6:b9:66:33:
- 6b:5b:a6:00:bb:45:ee:03:07:96:a5:d7:2f:1e:f1:
- d2:f2:5e:c2:d2:a1:36:25:f0:7a:70:cb:3d:1d:a4:
- 6f:61
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 14:07:E8:A7:3A:A2:9C:DD:4C:30:B0:4D:F0:00:C4:88:C4:39:DF:73
- X509v3 Authority Key Identifier:
- keyid:12:E4:A4:19:85:AE:85:B7:D6:EB:63:04:D5:B9:B0:7E:57:5F:0C:16
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:10
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 70:24:57:3f:1a:0c:94:f9:64:14:2e:20:81:bf:02:ba:bb:a5:
- 21:02:2b:c0:09:0b:9e:8a:e3:c8:b2:39:4d:05:c1:34:62:44:
- 62:5c:d5:ae:0f:17:cf:c0:ab:71:f8:5c:d5:74:8d:3d:eb:90:
- d5:d6:a5:97:b8:c1:ab:d7:9c:e7:ca:4f:ee:8f:f2:5d:c7:81:
- 22:fc:2e:b0:2d:f2:ff:e3:1a:c5:85:31:21:49:3f:38:f9:5b:
- 55:e6:f3:f8:5c:63:fc:9a:c8:76:f0:3d:87:d2:fb:06:6d:5e:
- f4:f4:e9:8c:3a:99:7b:1c:8f:29:fb:f6:c3:0c:23:9a:2c:1e:
- f4:97:4f:b8:48:37:33:b4:aa:15:a6:5a:75:09:e9:c4:d5:44:
- c6:e8:4e:a2:f0:70:a8:9f:10:91:56:55:59:f4:4a:b6:36:4a:
- fc:b9:3a:60:01:e6:6e:61:58:f3:b0:ac:cd:02:38:97:bd:eb:
- d3:6b:9e:b5:a6:58:ee:ce:86:c2:1b:cf:12:b3:1b:78:00:df:
- 5f:da:77:5d:9c:8e:a5:ca:f1:77:87:c1:ed:ad:fd:cf:ea:05:
- 53:f9:7e:34:e7:95:23:de:36:36:65:59:08:76:11:6f:d9:6e:
- 55:17:af:33:1f:9e:0b:fe:fb:53:5c:67:1a:4d:8a:83:7f:5b:
- ca:ff:e4:94
------BEGIN CERTIFICATE-----
-MIIEyTCCA7GgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluRy1JQ0E3LXBhdGhsZW4xMDAxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMDAyODA5WhcNMjIwNzA3MDAyODA5WjCBojELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNV
-BAMMFWNoYWluRy1JQ0E2LXBhdGhsZW4xMDEfMB0GCSqGSIb3DQEJARYQaW5mb0B3
-b2xmc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOFPyecw
-6gb/ZcsrbPGorPbPEGuAeq9eQgoNYb5vFDyfZG6WRnfiZKAO11ZB/Fvm/kmGH48g
-zEvsOvFGdBp+M9mq1eJ4Cd0MOSB+MhKWzZbbEAHot6rj4SddCo+Zbu8t2MjIdqrZ
-AJ1I2c8SCJcxWcBPo+DuXKE175R8xgSqPjSmQ+DI7T2RU1OeGQOOvzD92bVL81EL
-YO0n4rHdFTywXyUPKZtfqjFkXj2DLrggZrnap7UiQBk9JF3D5922axbDZyNdMWU7
-y3LRp8iw4Lmiy5CGMNbOf5yzscM0YmPGuWYza1umALtF7gMHlqXXLx7x0vJewtKh
-NiXwenDLPR2kb2ECAwEAAaOCAQUwggEBMB0GA1UdDgQWBBQUB+inOqKc3UwwsE3w
-AMSIxDnfczCBwQYDVR0jBIG5MIG2gBQS5KQZha6Ft9brYwTVubB+V18MFqGBmqSB
-lzCBlDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0Jv
-emVtYW4xETAPBgNVBAoMCFNhd3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgw
-FgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb22CAWQwDwYDVR0TBAgwBgEB/wIBCjALBgNVHQ8EBAMCAQYwDQYJKoZI
-hvcNAQELBQADggEBAHAkVz8aDJT5ZBQuIIG/Arq7pSECK8AJC56K48iyOU0FwTRi
-RGJc1a4PF8/Aq3H4XNV0jT3rkNXWpZe4wavXnOfKT+6P8l3HgSL8LrAt8v/jGsWF
-MSFJPzj5W1Xm8/hcY/yayHbwPYfS+wZtXvT06Yw6mXscjyn79sMMI5osHvSXT7hI
-NzO0qhWmWnUJ6cTVRMboTqLwcKifEJFWVVn0SrY2Svy5OmAB5m5hWPOwrM0COJe9
-69NrnrWmWO7OhsIbzxKzG3gA31/ad12cjqXK8XeHwe2t/c/qBVP5fjTnlSPeNjZl
-WQh2EW/ZblUXrzMfngv++1NcZxpNioN/W8r/5JQ=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA7-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA7-key.pem
deleted file mode 100644
index cebaccc16..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA7-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEA1ozWxCkgYJ0VPQwq+yQvOIntN8T8V2cqUNjr4mocWQbybT65
-T/5JxSHAFvgpb1EM6njXDhVB2lrLC+BU1oP9D+hOMP/kRMOyAvN9OsZcToaGLHTU
-IYXB/k6LBzxUG1Se7Fqlle1aNeAIxoR85q5xEtL9wf0WCjq4xyNLr+DNEl6fT2IT
-8Mjk4qgB0zewCCHTD2zk2MEEUelMxbFtzGMjlzDu8B6rbeqTyq1Wbx7tGq6MG5EE
-6qudGztWp8HMLzkvs7qMFv1eEBCeJOpAl3S2tOUcwNNfeSwEQzqO9LFWvcclY1w0
-UE29LfEIvYw+0m/65AShUevQ0JCRl3tGxhCSrwIDAQABAoIBAFn8IguN8D11RLYh
-B1nj+EYvWyX74ZZK962G/ZAtzwvr5Pu6xgBt98TNfgJkPQSqKs+gtRn8Am2xjN3D
-TfHW0+m7Fiho+vV4Wo3wT8K59Xcd5uJ4cYxJzG57xMXZILGB0VHyRubV8PMNrsCM
-StJ5sYUipzmYi4jozhz/ibwPfhNIhbD7N7SQZe3J+Uq86fME4pSbStQpaeE8ORyN
-LeCdYt6KSY6qGDs4IM8+EJmsjsoxjWci79LVPDEqhGQ9g/cpajh9tsVKluufMt+J
-eTQ926YwjnlbY5pogpRoZlEPTlXJx2Ac9YeUs0pTLWZaQyR2XLvs5oNywO3pyR7X
-LhVEPLkCgYEA8zpW+VN8LNRPkiHehk6E/2RLdDzMYoD5XRdgB3j8Vn/0NiyvZjLd
-p+81/OLg7Yga6IFvU+3iisTefZvnZTqEKrtxyMbGL+LqAQFKGVm6eCZdX15dck4M
-V1CwGtdVUl3V5yHuWvwosWV45n4UcDGxQ23VYdY4ypaPICNJevqKWaUCgYEA4dD9
-kwo6th35cn1P19UGFRT2Bo/ArliYvXb0stHGHse1Mz7hAf5epZ7rnJH1jbxtqZMu
-OkoDK0Grulnt1AUYZm+6+y9YSbIeVFtOyKDEQeP6yH8VEQSaIScUFOYID8OpLuOq
-wzRAz41vnU+957r3kt3DaYopInC02UP8LdMfAsMCgYAb3kJa3OLsbAMV9kV90/9P
-F9nBXrn4S1jG/sek84rOCmkbz/Dk380f0bu41vH4pVCX9UShNC9xwO7RK4zOv26n
-SsTVwVix4ej35oLr9qjz3UlzhOdmEmU9l+QlnyiKgG/ixLN/v0aWVM8OccG7vSXX
-WP1K8XWeWLPbdc+UhKJXdQKBgGpqNlUoqOpRzc+qRgoMFUWyDw6gh8ihb7k5aa8r
-NBYlPrrbkuWBndCmx5mNHw6gEX2sIkjNwBiOZgL3hiA4FnuPg6oDcbOpAKn4LXRW
-bqYubWw2lxLh/FBLPidrD7l+FyhFmZ9L7I7itAqKHZAqh6jqYMBHn4LfYhpQ83IU
-37RJAoGBAKqp3j4JNrhiwq0mBJL4GxFVy7eEjoqg6golGeIVE/5ApdOkQgLQaoeC
-RrzNgjjQ3P08+XXXOQJVJRreX5ZVVjnxl/l1ixm0Hc/+SUXog7d4f+0kWWIqDAsC
-YNW8MFqvNAN1f+TCKbSfR7oNfyUaoVCV5T5T875Q0et0DjkPTRc8
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA7-pathlen100.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA7-pathlen100.pem
deleted file mode 100644
index 5382cbae0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-ICA7-pathlen100.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA7-pathlen100, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d6:8c:d6:c4:29:20:60:9d:15:3d:0c:2a:fb:24:
- 2f:38:89:ed:37:c4:fc:57:67:2a:50:d8:eb:e2:6a:
- 1c:59:06:f2:6d:3e:b9:4f:fe:49:c5:21:c0:16:f8:
- 29:6f:51:0c:ea:78:d7:0e:15:41:da:5a:cb:0b:e0:
- 54:d6:83:fd:0f:e8:4e:30:ff:e4:44:c3:b2:02:f3:
- 7d:3a:c6:5c:4e:86:86:2c:74:d4:21:85:c1:fe:4e:
- 8b:07:3c:54:1b:54:9e:ec:5a:a5:95:ed:5a:35:e0:
- 08:c6:84:7c:e6:ae:71:12:d2:fd:c1:fd:16:0a:3a:
- b8:c7:23:4b:af:e0:cd:12:5e:9f:4f:62:13:f0:c8:
- e4:e2:a8:01:d3:37:b0:08:21:d3:0f:6c:e4:d8:c1:
- 04:51:e9:4c:c5:b1:6d:cc:63:23:97:30:ee:f0:1e:
- ab:6d:ea:93:ca:ad:56:6f:1e:ed:1a:ae:8c:1b:91:
- 04:ea:ab:9d:1b:3b:56:a7:c1:cc:2f:39:2f:b3:ba:
- 8c:16:fd:5e:10:10:9e:24:ea:40:97:74:b6:b4:e5:
- 1c:c0:d3:5f:79:2c:04:43:3a:8e:f4:b1:56:bd:c7:
- 25:63:5c:34:50:4d:bd:2d:f1:08:bd:8c:3e:d2:6f:
- fa:e4:04:a1:51:eb:d0:d0:90:91:97:7b:46:c6:10:
- 92:af
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 12:E4:A4:19:85:AE:85:B7:D6:EB:63:04:D5:B9:B0:7E:57:5F:0C:16
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:100
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- ae:bd:d0:c5:e1:4f:80:0f:85:0d:d2:e0:b5:c3:dc:73:99:94:
- 90:19:01:f2:23:66:83:da:92:f2:e8:14:dc:70:e0:20:14:26:
- c5:63:88:6a:1b:b3:f3:2f:5c:28:39:1e:6b:a7:40:9b:02:12:
- ac:88:06:1e:c6:dd:9d:d4:6a:b8:22:cb:b7:aa:7a:9c:77:9a:
- 37:0a:62:54:23:f3:e7:b9:4f:e0:8a:41:bd:74:21:69:be:7c:
- 19:50:7d:d1:93:98:7c:4a:06:60:64:72:f0:09:71:6e:86:43:
- 2f:89:dc:38:4a:c1:e4:cc:bc:72:6f:c2:b1:c1:9c:38:ff:98:
- 87:92:3b:a6:f2:b5:2d:0a:41:38:0d:e7:b5:41:cf:c1:6d:96:
- 34:98:9e:97:c8:87:a9:9e:4b:bb:73:bb:34:d6:bd:61:ef:36:
- c8:45:f3:c9:31:36:2c:f1:11:68:4b:a0:f8:b6:9d:c4:a6:8a:
- dc:e3:fc:60:f7:50:d2:d4:98:d4:e5:f9:76:ca:4a:3c:74:9a:
- bb:95:ce:3c:29:ce:be:b5:9e:07:55:e2:c4:a1:1f:b4:0d:eb:
- 87:03:1d:79:1b:e2:fc:f3:aa:4b:df:3e:24:72:56:00:b9:b4:
- a0:fc:48:80:6a:76:84:1b:79:ea:03:95:32:42:bc:9d:7a:83:
- 87:be:51:d2
------BEGIN CERTIFICATE-----
-MIIEwzCCA6ugAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA5WhcNMjIwNzA3MDAyODA5WjCBozELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNoYWluRy1JQ0E3
-LXBhdGhsZW4xMDAxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWjNbEKSBgnRU9DCr7JC84ie03
-xPxXZypQ2OviahxZBvJtPrlP/knFIcAW+ClvUQzqeNcOFUHaWssL4FTWg/0P6E4w
-/+REw7IC8306xlxOhoYsdNQhhcH+TosHPFQbVJ7sWqWV7Vo14AjGhHzmrnES0v3B
-/RYKOrjHI0uv4M0SXp9PYhPwyOTiqAHTN7AIIdMPbOTYwQRR6UzFsW3MYyOXMO7w
-Hqtt6pPKrVZvHu0arowbkQTqq50bO1anwcwvOS+zuowW/V4QEJ4k6kCXdLa05RzA
-0195LARDOo70sVa9xyVjXDRQTb0t8Qi9jD7Sb/rkBKFR69DQkJGXe0bGEJKvAgMB
-AAGjggENMIIBCTAdBgNVHQ4EFgQUEuSkGYWuhbfW62ME1bmwfldfDBYwgckGA1Ud
-IwSBwTCBvoAUJ45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYT
-AlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQK
-DAhTYXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3Lndv
-bGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAhv/1
-jhDeuPswDwYDVR0TBAgwBgEB/wIBZDALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEL
-BQADggEBAK690MXhT4APhQ3S4LXD3HOZlJAZAfIjZoPakvLoFNxw4CAUJsVjiGob
-s/MvXCg5HmunQJsCEqyIBh7G3Z3Uargiy7eqepx3mjcKYlQj8+e5T+CKQb10IWm+
-fBlQfdGTmHxKBmBkcvAJcW6GQy+J3DhKweTMvHJvwrHBnDj/mIeSO6bytS0KQTgN
-57VBz8FtljSYnpfIh6meS7tzuzTWvWHvNshF88kxNizxEWhLoPi2ncSmitzj/GD3
-UNLUmNTl+XbKSjx0mruVzjwpzr61ngdV4sShH7QN64cDHXkb4vzzqkvfPiRyVgC5
-tKD8SIBqdoQbeeoDlTJCvJ16g4e+UdI=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-assembled.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-assembled.pem
deleted file mode 100644
index 39ee469f7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-assembled.pem
+++ /dev/null
@@ -1,710 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:bb:7b:82:23:a2:34:e7:cb:89:4e:64:cc:f2:98:
- c8:65:8f:e2:69:55:54:4b:3c:8b:c0:1f:67:37:7f:
- 09:cb:9e:df:5e:75:f6:99:83:12:ac:15:23:cf:64:
- a4:10:16:a5:10:af:28:86:00:20:4e:f3:4d:fd:08:
- fb:a1:a7:18:4c:13:1e:4d:90:2e:e6:9a:e3:28:03:
- b4:f4:83:ce:fd:a2:a9:86:56:02:62:33:9f:6e:98:
- 7e:0f:cc:06:71:31:8a:93:d2:d9:a3:1d:08:7a:92:
- f8:7e:bf:90:5f:a1:e6:2b:64:58:bb:a6:9a:c9:19:
- 97:fd:c9:a9:f7:08:27:8a:f3:be:e2:db:88:25:84:
- 91:13:06:e2:63:bc:e1:37:82:7e:6f:5a:da:f0:e2:
- eb:a1:2a:8f:5d:52:11:af:e2:f5:89:42:79:83:b8:
- c0:a5:95:dc:42:c6:1c:90:51:1e:33:f3:f1:c2:e4:
- d2:7b:87:c3:64:90:b7:5f:9b:38:ef:d2:d0:4f:d5:
- 51:aa:e0:3a:d1:c3:01:03:e7:32:b1:27:c6:48:5a:
- c0:ac:26:8d:94:61:76:f8:98:ff:30:6d:aa:55:c3:
- 63:fd:a4:a4:1b:3c:6b:e8:05:75:41:17:5d:ad:c9:
- 17:9b:c3:4d:6e:9f:7d:7d:36:fe:c0:a3:99:d6:e5:
- 92:ad
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 21:3A:72:3B:95:38:DF:99:DE:62:25:21:D0:14:81:6E:CA:AA:FB:A1
- X509v3 Authority Key Identifier:
- keyid:47:C0:19:4B:ED:C4:DA:97:B1:60:EA:5A:0A:42:6D:A5:D3:D8:25:31
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainG-ICA2-pathlen1/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 06:c8:08:8c:cc:5d:4e:b5:81:35:06:f3:e5:9d:4e:c8:38:3f:
- ec:87:8b:55:3c:fc:6e:4c:f8:3c:78:7d:46:03:33:a7:49:55:
- 6c:13:37:e9:11:d5:dd:8c:51:70:2c:28:18:6a:01:63:9b:35:
- 04:ba:79:49:95:10:ed:31:4b:70:5f:be:a4:67:d4:8d:2f:95:
- 45:f7:1f:3d:a0:fc:29:db:55:65:8d:98:ae:79:ad:ce:c7:b9:
- 97:54:9d:69:ca:fa:87:01:fb:0d:9b:57:67:b8:44:f6:91:14:
- e5:31:b5:c1:d8:96:b7:1d:7a:05:ed:53:d5:04:8a:8b:8e:74:
- f1:13:3d:93:d6:16:10:17:d7:de:b1:4e:13:e8:72:ae:83:91:
- 1f:46:3e:86:bd:49:79:9c:99:a9:aa:67:ff:cf:7c:34:b1:2c:
- d8:bf:e5:3a:22:c2:70:97:47:db:d0:05:77:e9:46:09:f0:c1:
- 06:1c:61:df:8b:8f:6d:a6:5b:d5:ae:9a:52:71:ed:5e:9e:38:
- e3:8c:9a:52:cf:8a:8f:20:e9:f1:e4:a3:11:bd:b9:ff:a9:1e:
- b7:f9:83:26:18:a8:0b:7b:2b:74:f5:c5:3a:58:e1:0b:71:0a:
- 3d:ef:15:ee:2c:28:b3:ba:0e:59:3c:a4:46:24:d3:b7:14:b5:
- 4a:8f:c1:25
------BEGIN CERTIFICATE-----
-MIIEtzCCA5+gAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluRy1JQ0ExLXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOVoXDTIyMDcwNzAwMjgwOVowgZoxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRYwFAYDVQQD
-DA1jaGFpbkctZW50aXR5MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29t
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu3uCI6I058uJTmTM8pjI
-ZY/iaVVUSzyLwB9nN38Jy57fXnX2mYMSrBUjz2SkEBalEK8ohgAgTvNN/Qj7oacY
-TBMeTZAu5prjKAO09IPO/aKphlYCYjOfbph+D8wGcTGKk9LZox0IepL4fr+QX6Hm
-K2RYu6aayRmX/cmp9wgnivO+4tuIJYSREwbiY7zhN4J+b1ra8OLroSqPXVIRr+L1
-iUJ5g7jApZXcQsYckFEeM/PxwuTSe4fDZJC3X5s479LQT9VRquA60cMBA+cysSfG
-SFrArCaNlGF2+Jj/MG2qVcNj/aSkGzxr6AV1QRddrckXm8NNbp99fTb+wKOZ1uWS
-rQIDAQABo4H+MIH7MB0GA1UdDgQWBBQhOnI7lTjfmd5iJSHQFIFuyqr7oTCBzgYD
-VR0jBIHGMIHDgBRHwBlL7cTal7Fg6loKQm2l09glMaGBp6SBpDCBoTELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNV
-BAMMFGNoYWluRy1JQ0EyLXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tggFkMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAAbICIzM
-XU61gTUG8+WdTsg4P+yHi1U8/G5M+Dx4fUYDM6dJVWwTN+kR1d2MUXAsKBhqAWOb
-NQS6eUmVEO0xS3BfvqRn1I0vlUX3Hz2g/CnbVWWNmK55rc7HuZdUnWnK+ocB+w2b
-V2e4RPaRFOUxtcHYlrcdegXtU9UEiouOdPETPZPWFhAX196xThPocq6DkR9GPoa9
-SXmcmamqZ//PfDSxLNi/5ToiwnCXR9vQBXfpRgnwwQYcYd+Lj22mW9WumlJx7V6e
-OOOMmlLPio8g6fHkoxG9uf+pHrf5gyYYqAt7K3T1xTpY4QtxCj3vFe4sKLO6Dlk8
-pEYk07cUtUqPwSU=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA2-pathlen1, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d2:26:be:51:98:42:e0:1f:ae:fc:c2:cb:ba:d5:
- 0f:44:3b:0b:60:d8:49:ec:03:43:6b:06:ce:f2:28:
- 19:fb:48:9c:0b:5c:7f:00:a3:22:9f:bc:e9:2a:5b:
- e4:e1:16:d8:9c:b9:c3:0b:30:e3:1c:83:7d:c0:b9:
- a4:3f:da:38:ec:8b:38:be:45:c4:a7:1d:c1:68:18:
- 28:19:b0:f2:93:06:3a:bd:23:67:aa:05:89:31:3b:
- c2:b4:5e:b3:12:cb:3b:f3:9c:d6:df:4c:ed:cb:42:
- 1b:25:80:2d:ab:c4:67:8f:a5:ff:da:6c:f1:18:fd:
- a1:98:8c:d8:1f:67:6c:28:c7:cb:4e:bb:b0:27:ea:
- 25:b1:5d:73:d0:2a:e9:44:50:b9:f5:65:64:e6:cf:
- 3d:92:d8:c0:6d:ed:96:8e:e2:d3:84:70:d0:db:fe:
- 70:63:44:fa:f8:db:35:d1:95:ad:18:95:21:64:ce:
- e2:23:7e:5e:6c:2f:ef:a7:63:fe:82:4a:cb:cc:23:
- cf:9d:26:a5:66:ed:9c:06:7e:70:76:03:72:99:db:
- fa:be:a5:c3:38:8b:40:24:c1:6b:d7:9c:bb:27:86:
- 22:a9:62:e0:b2:bd:e7:b5:e4:81:ea:64:db:18:16:
- 24:62:81:6c:a8:f2:83:3f:af:3b:b5:fd:b0:d8:84:
- b2:21
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 47:C0:19:4B:ED:C4:DA:97:B1:60:EA:5A:0A:42:6D:A5:D3:D8:25:31
- X509v3 Authority Key Identifier:
- keyid:E1:E6:9B:28:CF:FD:AB:45:C1:B7:A7:C4:C9:58:FC:41:E3:1A:5C:74
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainG-ICA3-pathlen99/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:0
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 56:81:8e:f1:e8:5f:b2:9f:ab:8f:2e:ec:79:c7:3d:0d:af:f2:
- 18:f7:d2:2e:07:2c:d0:1d:2a:90:c7:c1:fc:ac:aa:0d:86:f0:
- 78:6d:33:43:81:02:70:3b:e6:d9:75:db:2e:ca:4a:61:4d:20:
- cb:a9:3e:0c:a9:b3:ca:ff:bb:52:cb:06:14:2d:53:b5:68:9f:
- a7:02:83:90:3d:f8:b6:a2:46:e4:2b:c5:48:ed:50:7f:ea:27:
- cf:7b:9d:88:1f:1c:5d:16:b7:21:0a:42:95:0b:67:6c:29:34:
- 64:61:c0:f5:00:6f:36:dc:e9:68:e3:81:bd:07:a6:bc:6c:9d:
- f0:61:b0:50:14:d5:89:46:1f:34:b0:90:42:a0:c3:09:64:6e:
- a4:46:13:c6:6a:86:98:63:c7:8e:79:d3:a2:d6:73:23:68:a9:
- 8d:ac:b0:93:b0:89:f5:ee:08:cc:47:14:95:3b:1f:d3:eb:42:
- 3f:68:b8:6b:80:11:8d:85:8c:90:39:29:e8:5d:7d:e5:c1:c2:
- 5c:e7:92:8c:ab:79:17:74:60:a5:ee:fe:52:ff:4a:78:62:5c:
- 1b:4b:f8:44:41:8c:05:c7:11:e7:5a:c9:a1:a1:d3:6b:82:36:
- c3:1f:23:19:ce:68:9d:c3:80:d5:08:8d:68:d2:49:52:95:44:
- 3f:1b:50:9d
------BEGIN CERTIFICATE-----
-MIIE1DCCA7ygAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluRy1JQ0EyLXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOVoXDTIyMDcwNzAwMjgwOVowgaExCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR0wGwYDVQQD
-DBRjaGFpbkctSUNBMS1wYXRobGVuMDEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xm
-c3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANImvlGYQuAf
-rvzCy7rVD0Q7C2DYSewDQ2sGzvIoGftInAtcfwCjIp+86Spb5OEW2Jy5wwsw4xyD
-fcC5pD/aOOyLOL5FxKcdwWgYKBmw8pMGOr0jZ6oFiTE7wrResxLLO/Oc1t9M7ctC
-GyWALavEZ4+l/9ps8Rj9oZiM2B9nbCjHy067sCfqJbFdc9Aq6URQufVlZObPPZLY
-wG3tlo7i04Rw0Nv+cGNE+vjbNdGVrRiVIWTO4iN+Xmwv76dj/oJKy8wjz50mpWbt
-nAZ+cHYDcpnb+r6lwziLQCTBa9ecuyeGIqli4LK957Xkgepk2xgWJGKBbKjygz+v
-O7X9sNiEsiECAwEAAaOCARMwggEPMB0GA1UdDgQWBBRHwBlL7cTal7Fg6loKQm2l
-09glMTCBzwYDVR0jBIHHMIHEgBTh5psoz/2rRcG3p8TJWPxB4xpcdKGBqKSBpTCB
-ojELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1Nl
-YXR0bGUxFTATBgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJp
-bmcxHjAcBgNVBAMMFWNoYWluRy1JQ0EzLXBhdGhsZW45OTEfMB0GCSqGSIb3DQEJ
-ARYQaW5mb0B3b2xmc3NsLmNvbYIBZDAPBgNVHRMECDAGAQH/AgEAMAsGA1UdDwQE
-AwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAVoGO8ehfsp+rjy7secc9Da/yGPfSLgcs
-0B0qkMfB/KyqDYbweG0zQ4ECcDvm2XXbLspKYU0gy6k+DKmzyv+7UssGFC1TtWif
-pwKDkD34tqJG5CvFSO1Qf+onz3udiB8cXRa3IQpClQtnbCk0ZGHA9QBvNtzpaOOB
-vQemvGyd8GGwUBTViUYfNLCQQqDDCWRupEYTxmqGmGPHjnnTotZzI2ipjaywk7CJ
-9e4IzEcUlTsf0+tCP2i4a4ARjYWMkDkp6F195cHCXOeSjKt5F3Rgpe7+Uv9KeGJc
-G0v4REGMBccR51rJoaHTa4I2wx8jGc5oncOA1QiNaNJJUpVEPxtQnQ==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA3-pathlen99, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA2-pathlen1, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d7:3e:de:b9:f9:a9:d7:8e:7a:4b:f2:f1:8c:f9:
- 3b:1c:ce:59:31:4c:57:0c:2e:8a:0f:90:f0:dc:27:
- 55:0b:10:c3:a2:e8:b9:39:75:17:d1:9d:99:43:94:
- b2:f1:56:76:6b:b9:46:a6:b8:35:95:a1:d2:d0:ec:
- 8e:be:95:dc:78:17:0a:41:a1:23:df:cb:b2:87:cb:
- 2e:1d:02:7d:c4:fe:7a:f6:7a:d8:a5:8d:b5:11:1a:
- e4:6b:d2:66:01:01:03:a7:3b:95:49:92:5d:c1:c7:
- 49:f0:1a:ef:00:71:37:99:5a:87:0a:40:de:55:0e:
- 68:89:dc:e7:a1:14:bf:9d:72:93:7e:48:29:e4:ea:
- a6:4f:0a:7a:a5:a1:39:6c:21:84:3a:8f:ca:7a:35:
- 0b:0a:cd:12:67:3c:56:06:f5:9d:24:c9:8e:4a:82:
- 23:c8:38:7f:ac:98:b6:b2:57:dc:82:62:84:00:13:
- 7b:ea:73:80:26:4a:9b:c1:b4:0a:f1:fc:ff:46:58:
- 96:a0:21:a1:c9:8f:d9:99:74:41:0b:d0:6d:31:a7:
- ab:87:92:76:51:42:ef:88:95:cc:2c:f2:9b:cc:d5:
- 29:a0:f7:aa:6b:e1:ab:32:16:cd:55:c4:15:80:69:
- 80:91:d8:78:2c:07:15:fd:c2:02:a4:f4:13:75:50:
- b8:2b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- E1:E6:9B:28:CF:FD:AB:45:C1:B7:A7:C4:C9:58:FC:41:E3:1A:5C:74
- X509v3 Authority Key Identifier:
- keyid:C1:CD:1F:81:13:82:24:3B:CF:64:51:7A:4C:E3:65:2E:75:1E:01:23
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainG-ICA4-pathlen5/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:1
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 3b:e4:43:62:32:48:75:cf:da:f6:fa:38:4f:1b:b2:25:84:5b:
- 79:8f:ce:9c:19:10:ef:ab:b4:b5:f0:2b:d1:16:77:f6:cc:f6:
- 43:c7:1f:ca:92:f9:d7:69:3c:82:02:02:19:55:a4:a1:d0:1c:
- 7c:e8:b8:8f:4c:7b:42:6c:68:0d:0c:b0:05:ad:39:29:7c:45:
- 8e:e2:b3:54:e7:98:84:95:21:3d:73:26:33:5e:5b:59:59:f2:
- 03:13:28:86:e1:2c:da:a8:37:7e:2e:93:5e:e1:41:9c:6d:03:
- 16:0f:8a:b2:4d:67:b6:1b:65:8a:cb:30:b5:ed:ad:e7:9f:81:
- 21:a7:6d:39:f7:af:93:82:1c:89:55:ae:0d:e8:88:be:a5:27:
- 60:56:7b:f3:5c:1d:57:49:36:c2:9f:cc:50:62:a7:82:54:61:
- 36:10:01:2f:cf:85:b2:dd:d7:56:cc:18:7e:85:5d:f1:b7:b7:
- b6:c3:04:6b:01:5e:b8:68:28:9a:6b:fc:83:33:b7:28:64:55:
- 38:ee:a4:5a:d5:87:ef:89:07:c4:60:9d:8a:25:d5:71:94:5b:
- 96:3f:a4:3f:1d:80:3e:ef:97:9e:c4:25:f1:82:01:27:40:27:
- cc:61:e6:67:e0:58:33:e9:9f:35:65:89:40:17:6a:a7:6c:d9:
- 70:2c:59:a1
------BEGIN CERTIFICATE-----
-MIIE1DCCA7ygAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBojELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNo
-YWluRy1JQ0EzLXBhdGhsZW45OTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3Ns
-LmNvbTAeFw0xOTEwMTEwMDI4MDlaFw0yMjA3MDcwMDI4MDlaMIGhMQswCQYDVQQG
-EwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEVMBMG
-A1UECgwMd29sZlNTTCBJbmMuMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEdMBsGA1UE
-AwwUY2hhaW5HLUlDQTItcGF0aGxlbjExHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDXPt65+anX
-jnpL8vGM+TsczlkxTFcMLooPkPDcJ1ULEMOi6Lk5dRfRnZlDlLLxVnZruUamuDWV
-odLQ7I6+ldx4FwpBoSPfy7KHyy4dAn3E/nr2etiljbURGuRr0mYBAQOnO5VJkl3B
-x0nwGu8AcTeZWocKQN5VDmiJ3OehFL+dcpN+SCnk6qZPCnqloTlsIYQ6j8p6NQsK
-zRJnPFYG9Z0kyY5KgiPIOH+smLayV9yCYoQAE3vqc4AmSpvBtArx/P9GWJagIaHJ
-j9mZdEEL0G0xp6uHknZRQu+Ilcws8pvM1Smg96pr4asyFs1VxBWAaYCR2HgsBxX9
-wgKk9BN1ULgrAgMBAAGjggESMIIBDjAdBgNVHQ4EFgQU4eabKM/9q0XBt6fEyVj8
-QeMaXHQwgc4GA1UdIwSBxjCBw4AUwc0fgROCJDvPZFF6TONlLnUeASOhgaekgaQw
-gaExCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdT
-ZWF0dGxlMRUwEwYDVQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVy
-aW5nMR0wGwYDVQQDDBRjaGFpbkctSUNBNC1wYXRobGVuNTEfMB0GCSqGSIb3DQEJ
-ARYQaW5mb0B3b2xmc3NsLmNvbYIBZDAPBgNVHRMECDAGAQH/AgEBMAsGA1UdDwQE
-AwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAO+RDYjJIdc/a9vo4TxuyJYRbeY/OnBkQ
-76u0tfAr0RZ39sz2Q8cfypL512k8ggICGVWkodAcfOi4j0x7QmxoDQywBa05KXxF
-juKzVOeYhJUhPXMmM15bWVnyAxMohuEs2qg3fi6TXuFBnG0DFg+Ksk1nthtlissw
-te2t55+BIadtOfevk4IciVWuDeiIvqUnYFZ781wdV0k2wp/MUGKnglRhNhABL8+F
-st3XVswYfoVd8be3tsMEawFeuGgommv8gzO3KGRVOO6kWtWH74kHxGCdiiXVcZRb
-lj+kPx2APu+XnsQl8YIBJ0AnzGHmZ+BYM+mfNWWJQBdqp2zZcCxZoQ==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA4-pathlen5, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA3-pathlen99, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:ac:f1:39:65:f7:9c:9d:f6:f0:d2:b7:18:16:24:
- 81:32:b7:a5:29:d6:f7:4e:31:38:a7:54:d6:eb:07:
- 97:27:a1:92:e0:c1:3a:b5:93:06:17:ef:a7:74:f8:
- 9b:42:97:0c:d6:d3:d4:36:c9:61:ef:92:4c:3e:c4:
- 74:08:d6:19:2a:cd:9b:f1:6f:e8:c8:67:9f:28:54:
- 99:ce:63:1a:87:56:99:36:31:65:05:c5:d6:97:cf:
- 51:e4:2d:3d:74:14:31:d3:c3:05:fc:0e:7c:93:57:
- cd:f7:c4:97:d7:5c:65:75:e7:35:85:81:27:eb:9a:
- 9f:d7:a2:bc:28:41:a8:ce:92:3a:10:b9:35:28:83:
- dc:b0:27:cc:6e:20:03:60:13:23:22:b4:3c:25:58:
- ae:a1:b2:24:d1:21:8b:b9:f0:28:84:ae:e6:00:cc:
- cb:9b:78:8c:fa:4b:ed:73:7a:91:05:f9:fb:6e:34:
- 3b:7e:af:f9:45:9e:a0:d5:62:bb:d8:cd:95:9e:a2:
- 90:72:27:e0:3e:b9:b0:5e:0a:b2:e4:55:95:03:0c:
- a6:66:44:65:db:0a:9f:90:5a:d3:81:c7:e2:3e:f2:
- b0:9a:e0:05:1c:de:64:04:c2:7e:ca:7e:df:a1:f6:
- 18:e5:94:d3:74:fb:a5:1f:2d:77:cd:6e:5e:55:a3:
- 80:cb
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- C1:CD:1F:81:13:82:24:3B:CF:64:51:7A:4C:E3:65:2E:75:1E:01:23
- X509v3 Authority Key Identifier:
- keyid:D4:92:AE:BD:3B:1C:66:4B:17:88:18:15:F8:27:AB:38:CC:07:5A:65
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainG-ICA5-pathlen20/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:99
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 77:4b:04:d7:e6:fd:c1:bb:55:0c:2d:23:bf:90:a3:20:af:cd:
- 54:11:34:97:fb:06:55:c1:11:ee:c5:bc:fe:5c:34:73:08:f9:
- e9:c3:81:b8:0d:fa:6b:44:cd:ed:4a:d0:3b:40:6d:96:e5:cf:
- 96:7d:aa:0d:65:fa:d7:6d:f7:3d:c9:9d:e5:e1:5e:be:34:7d:
- b8:62:0c:22:e1:88:c8:02:b8:90:89:9f:1c:1d:18:5c:2d:01:
- c9:95:f4:19:01:a6:5b:7a:26:6a:38:71:16:87:88:19:3f:60:
- 35:99:71:4c:79:90:db:f9:9b:73:0d:74:45:87:b1:4f:e5:63:
- a2:21:b4:38:32:d2:78:f0:15:a6:3a:ac:50:2a:a1:b2:41:f9:
- 2b:0a:5c:5b:9a:94:17:42:88:44:41:fa:aa:d3:17:49:c1:31:
- eb:a2:89:1f:c7:e7:b2:b0:71:98:64:4e:d6:de:b9:c2:5d:de:
- 0e:86:68:1d:9c:ea:7c:b0:72:ee:2a:fa:26:26:1a:21:99:60:
- 03:a2:01:67:0e:7d:4a:00:d9:23:2e:c2:c8:c8:3d:04:7a:78:
- 08:81:f7:e4:0d:dc:e2:db:b6:1f:8a:33:ab:6f:a1:0d:5f:86:
- cd:b7:c9:e1:35:a3:c8:81:da:15:3c:de:39:30:b7:d3:ec:4f:
- d3:44:fe:dc
------BEGIN CERTIFICATE-----
-MIIE1TCCA72gAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluRy1JQ0E0LXBhdGhsZW41MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOVoXDTIyMDcwNzAwMjgwOVowgaIxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR4wHAYDVQQD
-DBVjaGFpbkctSUNBMy1wYXRobGVuOTkxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs8Tll95yd
-9vDStxgWJIEyt6Up1vdOMTinVNbrB5cnoZLgwTq1kwYX76d0+JtClwzW09Q2yWHv
-kkw+xHQI1hkqzZvxb+jIZ58oVJnOYxqHVpk2MWUFxdaXz1HkLT10FDHTwwX8DnyT
-V833xJfXXGV15zWFgSfrmp/XorwoQajOkjoQuTUog9ywJ8xuIANgEyMitDwlWK6h
-siTRIYu58CiEruYAzMubeIz6S+1zepEF+ftuNDt+r/lFnqDVYrvYzZWeopByJ+A+
-ubBeCrLkVZUDDKZmRGXbCp+QWtOBx+I+8rCa4AUc3mQEwn7Kft+h9hjllNN0+6Uf
-LXfNbl5Vo4DLAgMBAAGjggETMIIBDzAdBgNVHQ4EFgQUwc0fgROCJDvPZFF6TONl
-LnUeASMwgc8GA1UdIwSBxzCBxIAU1JKuvTscZksXiBgV+CerOMwHWmWhgaikgaUw
-gaIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdT
-ZWF0dGxlMRUwEwYDVQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVy
-aW5nMR4wHAYDVQQDDBVjaGFpbkctSUNBNS1wYXRobGVuMjAxHzAdBgkqhkiG9w0B
-CQEWEGluZm9Ad29sZnNzbC5jb22CAWQwDwYDVR0TBAgwBgEB/wIBYzALBgNVHQ8E
-BAMCAQYwDQYJKoZIhvcNAQELBQADggEBAHdLBNfm/cG7VQwtI7+QoyCvzVQRNJf7
-BlXBEe7FvP5cNHMI+enDgbgN+mtEze1K0DtAbZblz5Z9qg1l+tdt9z3JneXhXr40
-fbhiDCLhiMgCuJCJnxwdGFwtAcmV9BkBplt6Jmo4cRaHiBk/YDWZcUx5kNv5m3MN
-dEWHsU/lY6IhtDgy0njwFaY6rFAqobJB+SsKXFualBdCiERB+qrTF0nBMeuiiR/H
-57KwcZhkTtbeucJd3g6GaB2c6nywcu4q+iYmGiGZYAOiAWcOfUoA2SMuwsjIPQR6
-eAiB9+QN3OLbth+KM6tvoQ1fhs23yeE1o8iB2hU83jkwt9PsT9NE/tw=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA5-pathlen20, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA4-pathlen5, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:c9:4b:a0:77:b8:42:43:96:e1:f4:8d:1d:a6:2c:
- d8:12:a2:40:49:11:eb:5f:fb:6c:1d:15:3e:af:dd:
- 3b:c7:fd:c9:61:43:99:8e:c7:bc:63:bc:5b:93:24:
- f3:e5:66:c8:3e:3a:9c:7d:0e:1b:c1:6c:84:8c:90:
- b0:11:aa:23:2d:78:99:17:3e:e9:6b:a0:8c:64:fd:
- 10:7b:66:ed:b4:3e:b0:96:ef:36:1f:2d:6d:c4:96:
- 3c:5a:dc:83:c2:e9:cd:64:d3:5f:c7:ea:db:84:2e:
- 24:0c:77:d1:fd:8c:cf:d7:78:af:5b:98:e9:c4:fd:
- 66:fa:76:1d:7a:c3:c3:64:32:ad:b9:8b:5a:4c:82:
- ed:3a:fe:07:44:20:13:88:df:02:2c:d9:97:21:a4:
- 39:a6:f3:7e:8b:e2:c0:cc:86:6b:5a:25:30:d7:f9:
- ba:29:ef:1b:2e:f6:3f:c1:7d:b1:0c:95:8e:c0:ce:
- 73:41:47:1c:ec:33:44:60:46:9d:b0:75:07:50:c8:
- 19:bf:1e:82:c8:c3:3d:d8:e2:19:1e:0b:36:9d:34:
- 95:87:ea:a0:1f:e8:80:60:a5:b1:94:42:1e:57:c8:
- a0:e6:ad:f8:73:c8:82:e4:38:84:d3:97:fc:85:c4:
- de:d2:c0:c5:6d:c7:1e:eb:1d:c1:f1:de:97:27:ca:
- be:4b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- D4:92:AE:BD:3B:1C:66:4B:17:88:18:15:F8:27:AB:38:CC:07:5A:65
- X509v3 Authority Key Identifier:
- keyid:1D:51:80:B6:9A:A7:AC:DD:80:7B:4B:A2:0B:62:BE:E4:87:30:C7:CA
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainG-ICA6-pathlen10/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:5
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- ab:ff:d4:87:51:61:f9:a5:68:8d:4e:fd:01:0c:e3:75:9a:c5:
- 16:f2:c4:1e:d8:bd:d4:ce:9e:b9:bd:72:db:f2:89:2b:7a:46:
- b4:6c:16:e5:dc:5a:eb:d0:3f:63:a8:98:82:0e:df:c6:1a:40:
- a2:1a:a0:d5:49:10:a6:f4:ae:10:61:0a:2e:91:0d:bc:cf:e9:
- bf:9e:98:23:38:30:f2:00:e3:ca:47:df:ad:46:e8:7b:b2:ae:
- 1e:af:fd:c7:2e:b7:7d:b7:46:df:cd:bf:06:77:19:29:2b:fc:
- 7c:f9:f7:2f:59:ce:90:a6:9e:70:33:58:b6:72:a4:ed:63:9b:
- 50:62:6c:38:01:73:63:48:4e:6b:34:3f:c4:d5:de:45:09:a9:
- 27:d1:78:36:59:1e:21:ad:a9:a3:1f:14:25:d1:ce:ab:90:3f:
- c0:82:7a:54:fe:6b:48:fc:52:e1:f4:69:2d:84:2e:1c:7b:6f:
- 42:4a:7b:05:91:70:0d:f3:ae:b3:d6:bc:7a:fa:9c:c8:0a:e8:
- f1:a0:fa:ee:f3:fe:1d:34:0e:31:79:d8:80:57:53:23:af:65:
- 92:94:ef:16:de:e0:9f:0a:5a:17:ba:e8:81:90:e1:e4:24:97:
- b4:73:82:4c:38:4c:45:2f:82:75:55:4b:af:b8:58:b3:b1:d1:
- 60:ab:53:5f
------BEGIN CERTIFICATE-----
-MIIE1TCCA72gAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBojELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNo
-YWluRy1JQ0E1LXBhdGhsZW4yMDEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3Ns
-LmNvbTAeFw0xOTEwMTEwMDI4MDlaFw0yMjA3MDcwMDI4MDlaMIGhMQswCQYDVQQG
-EwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEVMBMG
-A1UECgwMd29sZlNTTCBJbmMuMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEdMBsGA1UE
-AwwUY2hhaW5HLUlDQTQtcGF0aGxlbjUxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJS6B3uEJD
-luH0jR2mLNgSokBJEetf+2wdFT6v3TvH/clhQ5mOx7xjvFuTJPPlZsg+Opx9DhvB
-bISMkLARqiMteJkXPulroIxk/RB7Zu20PrCW7zYfLW3Eljxa3IPC6c1k01/H6tuE
-LiQMd9H9jM/XeK9bmOnE/Wb6dh16w8NkMq25i1pMgu06/gdEIBOI3wIs2ZchpDmm
-836L4sDMhmtaJTDX+bop7xsu9j/BfbEMlY7AznNBRxzsM0RgRp2wdQdQyBm/HoLI
-wz3Y4hkeCzadNJWH6qAf6IBgpbGUQh5XyKDmrfhzyILkOITTl/yFxN7SwMVtxx7r
-HcHx3pcnyr5LAgMBAAGjggETMIIBDzAdBgNVHQ4EFgQU1JKuvTscZksXiBgV+Cer
-OMwHWmUwgc8GA1UdIwSBxzCBxIAUHVGAtpqnrN2Ae0uiC2K+5Icwx8qhgaikgaUw
-gaIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdT
-ZWF0dGxlMRUwEwYDVQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVy
-aW5nMR4wHAYDVQQDDBVjaGFpbkctSUNBNi1wYXRobGVuMTAxHzAdBgkqhkiG9w0B
-CQEWEGluZm9Ad29sZnNzbC5jb22CAWQwDwYDVR0TBAgwBgEB/wIBBTALBgNVHQ8E
-BAMCAQYwDQYJKoZIhvcNAQELBQADggEBAKv/1IdRYfmlaI1O/QEM43WaxRbyxB7Y
-vdTOnrm9ctvyiSt6RrRsFuXcWuvQP2OomIIO38YaQKIaoNVJEKb0rhBhCi6RDbzP
-6b+emCM4MPIA48pH361G6Huyrh6v/ccut323Rt/NvwZ3GSkr/Hz59y9ZzpCmnnAz
-WLZypO1jm1BibDgBc2NITms0P8TV3kUJqSfReDZZHiGtqaMfFCXRzquQP8CCelT+
-a0j8UuH0aS2ELhx7b0JKewWRcA3zrrPWvHr6nMgK6PGg+u7z/h00DjF52IBXUyOv
-ZZKU7xbe4J8KWhe66IGQ4eQkl7Rzgkw4TEUvgnVVS6+4WLOx0WCrU18=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA6-pathlen10, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA5-pathlen20, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:be:9d:98:a2:41:ca:64:1f:a2:34:dc:51:7d:49:
- 2b:f7:f8:7a:fc:1a:22:8d:3a:17:8e:00:9c:74:06:
- 18:0f:26:d1:e8:1d:55:4b:3e:bb:6e:98:6d:65:cb:
- 6f:be:c5:98:40:65:1d:e1:1d:af:ad:bc:7c:b0:fa:
- b6:2a:cb:af:df:d5:52:98:e6:01:01:31:01:3f:c7:
- 16:06:44:92:55:43:6f:dd:49:be:aa:52:d2:80:ca:
- 3a:d0:72:f3:0a:7e:59:cb:2c:74:7c:5b:19:3d:75:
- 9d:3e:da:35:45:49:8b:0d:36:84:80:41:b7:ce:70:
- fc:a8:d0:4d:0b:d4:f3:4e:73:87:db:2e:18:20:45:
- 70:f3:5a:d1:cf:4f:f8:78:ad:7c:4b:97:3c:f1:0f:
- 8a:f6:6c:8f:7a:3a:c9:79:82:2d:bf:ae:80:f8:8b:
- 1d:79:17:9b:76:34:97:b1:79:5d:79:fa:30:73:78:
- fc:9c:ee:eb:62:20:95:f1:a8:af:1e:4a:91:cc:1e:
- 34:90:c7:89:21:41:41:90:09:10:52:dd:21:75:15:
- 11:aa:cf:d8:e4:6c:7d:96:c8:d6:cd:90:eb:fa:df:
- 86:e7:3d:36:73:18:f3:86:c5:99:0e:0e:f7:e4:09:
- 8f:8c:29:f1:ad:15:e9:82:c9:6c:87:fc:00:7b:4b:
- 2e:f1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 1D:51:80:B6:9A:A7:AC:DD:80:7B:4B:A2:0B:62:BE:E4:87:30:C7:CA
- X509v3 Authority Key Identifier:
- keyid:14:07:E8:A7:3A:A2:9C:DD:4C:30:B0:4D:F0:00:C4:88:C4:39:DF:73
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainG-ICA7-pathlen100/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:20
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- a4:e7:16:a9:20:7b:9c:89:49:48:94:e7:58:31:71:34:10:35:
- d5:b6:91:5f:5e:2d:63:66:48:ff:45:7f:d4:dc:53:39:6f:7b:
- 13:0a:de:37:7c:c1:43:e9:f9:b2:71:b8:93:22:12:7f:50:9b:
- b9:0c:e4:3a:47:7a:95:bc:a4:08:41:73:f0:a3:9a:88:98:7e:
- d0:7c:bb:76:ab:5c:ad:3c:41:73:78:5b:b1:0d:06:ae:46:d2:
- 81:af:9a:53:f7:d2:45:66:99:45:5e:2e:05:48:47:78:49:b4:
- 27:c9:76:5f:93:be:d4:f7:3d:a7:16:39:ef:dc:a1:57:7f:78:
- ca:d3:33:94:87:cb:dd:aa:88:07:0b:62:fa:eb:f0:c9:5f:d8:
- 3f:a3:6d:d5:dc:ea:a0:b9:c6:dc:7f:08:46:9e:ed:41:52:46:
- d2:7a:96:20:37:f6:69:ef:85:23:43:fa:a8:27:1c:2b:70:37:
- 7d:50:ce:48:4b:f7:ce:2d:6a:08:3d:45:f3:a3:e4:1f:ef:1f:
- 0e:72:e2:f2:f1:e7:5f:72:1f:84:53:1b:d6:b4:2b:e4:4a:3d:
- 39:db:a7:02:6a:02:5e:de:3a:43:05:32:de:16:e9:5e:cf:12:
- b2:0e:60:36:e1:47:12:ab:98:ce:ef:c4:76:d5:30:b6:72:ae:
- af:13:14:17
------BEGIN CERTIFICATE-----
-MIIE1zCCA7+gAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBojELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNVBAMMFWNo
-YWluRy1JQ0E2LXBhdGhsZW4xMDEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3Ns
-LmNvbTAeFw0xOTEwMTEwMDI4MDlaFw0yMjA3MDcwMDI4MDlaMIGiMQswCQYDVQQG
-EwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEVMBMG
-A1UECgwMd29sZlNTTCBJbmMuMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEeMBwGA1UE
-AwwVY2hhaW5HLUlDQTUtcGF0aGxlbjIwMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvp2YokHK
-ZB+iNNxRfUkr9/h6/BoijToXjgCcdAYYDybR6B1VSz67bphtZctvvsWYQGUd4R2v
-rbx8sPq2Ksuv39VSmOYBATEBP8cWBkSSVUNv3Um+qlLSgMo60HLzCn5Zyyx0fFsZ
-PXWdPto1RUmLDTaEgEG3znD8qNBNC9TzTnOH2y4YIEVw81rRz0/4eK18S5c88Q+K
-9myPejrJeYItv66A+IsdeRebdjSXsXldefowc3j8nO7rYiCV8aivHkqRzB40kMeJ
-IUFBkAkQUt0hdRURqs/Y5Gx9lsjWzZDr+t+G5z02cxjzhsWZDg735AmPjCnxrRXp
-gslsh/wAe0su8QIDAQABo4IBFDCCARAwHQYDVR0OBBYEFB1RgLaap6zdgHtLogti
-vuSHMMfKMIHQBgNVHSMEgcgwgcWAFBQH6Kc6opzdTDCwTfAAxIjEOd9zoYGppIGm
-MIGjMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwH
-U2VhdHRsZTEVMBMGA1UECgwMd29sZlNTTCBJbmMuMRQwEgYDVQQLDAtFbmdpbmVl
-cmluZzEfMB0GA1UEAwwWY2hhaW5HLUlDQTctcGF0aGxlbjEwMDEfMB0GCSqGSIb3
-DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIBZDAPBgNVHRMECDAGAQH/AgEUMAsGA1Ud
-DwQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEApOcWqSB7nIlJSJTnWDFxNBA11baR
-X14tY2ZI/0V/1NxTOW97EwreN3zBQ+n5snG4kyISf1CbuQzkOkd6lbykCEFz8KOa
-iJh+0Hy7dqtcrTxBc3hbsQ0GrkbSga+aU/fSRWaZRV4uBUhHeEm0J8l2X5O+1Pc9
-pxY579yhV394ytMzlIfL3aqIBwti+uvwyV/YP6Nt1dzqoLnG3H8IRp7tQVJG0nqW
-IDf2ae+FI0P6qCccK3A3fVDOSEv3zi1qCD1F86PkH+8fDnLi8vHnX3IfhFMb1rQr
-5Eo9OdunAmoCXt46QwUy3hbpXs8Ssg5gNuFHEquYzu/EdtUwtnKurxMUFw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA7-pathlen100, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA6-pathlen10, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:e1:4f:c9:e7:30:ea:06:ff:65:cb:2b:6c:f1:a8:
- ac:f6:cf:10:6b:80:7a:af:5e:42:0a:0d:61:be:6f:
- 14:3c:9f:64:6e:96:46:77:e2:64:a0:0e:d7:56:41:
- fc:5b:e6:fe:49:86:1f:8f:20:cc:4b:ec:3a:f1:46:
- 74:1a:7e:33:d9:aa:d5:e2:78:09:dd:0c:39:20:7e:
- 32:12:96:cd:96:db:10:01:e8:b7:aa:e3:e1:27:5d:
- 0a:8f:99:6e:ef:2d:d8:c8:c8:76:aa:d9:00:9d:48:
- d9:cf:12:08:97:31:59:c0:4f:a3:e0:ee:5c:a1:35:
- ef:94:7c:c6:04:aa:3e:34:a6:43:e0:c8:ed:3d:91:
- 53:53:9e:19:03:8e:bf:30:fd:d9:b5:4b:f3:51:0b:
- 60:ed:27:e2:b1:dd:15:3c:b0:5f:25:0f:29:9b:5f:
- aa:31:64:5e:3d:83:2e:b8:20:66:b9:da:a7:b5:22:
- 40:19:3d:24:5d:c3:e7:dd:b6:6b:16:c3:67:23:5d:
- 31:65:3b:cb:72:d1:a7:c8:b0:e0:b9:a2:cb:90:86:
- 30:d6:ce:7f:9c:b3:b1:c3:34:62:63:c6:b9:66:33:
- 6b:5b:a6:00:bb:45:ee:03:07:96:a5:d7:2f:1e:f1:
- d2:f2:5e:c2:d2:a1:36:25:f0:7a:70:cb:3d:1d:a4:
- 6f:61
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 14:07:E8:A7:3A:A2:9C:DD:4C:30:B0:4D:F0:00:C4:88:C4:39:DF:73
- X509v3 Authority Key Identifier:
- keyid:12:E4:A4:19:85:AE:85:B7:D6:EB:63:04:D5:B9:B0:7E:57:5F:0C:16
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:10
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 70:24:57:3f:1a:0c:94:f9:64:14:2e:20:81:bf:02:ba:bb:a5:
- 21:02:2b:c0:09:0b:9e:8a:e3:c8:b2:39:4d:05:c1:34:62:44:
- 62:5c:d5:ae:0f:17:cf:c0:ab:71:f8:5c:d5:74:8d:3d:eb:90:
- d5:d6:a5:97:b8:c1:ab:d7:9c:e7:ca:4f:ee:8f:f2:5d:c7:81:
- 22:fc:2e:b0:2d:f2:ff:e3:1a:c5:85:31:21:49:3f:38:f9:5b:
- 55:e6:f3:f8:5c:63:fc:9a:c8:76:f0:3d:87:d2:fb:06:6d:5e:
- f4:f4:e9:8c:3a:99:7b:1c:8f:29:fb:f6:c3:0c:23:9a:2c:1e:
- f4:97:4f:b8:48:37:33:b4:aa:15:a6:5a:75:09:e9:c4:d5:44:
- c6:e8:4e:a2:f0:70:a8:9f:10:91:56:55:59:f4:4a:b6:36:4a:
- fc:b9:3a:60:01:e6:6e:61:58:f3:b0:ac:cd:02:38:97:bd:eb:
- d3:6b:9e:b5:a6:58:ee:ce:86:c2:1b:cf:12:b3:1b:78:00:df:
- 5f:da:77:5d:9c:8e:a5:ca:f1:77:87:c1:ed:ad:fd:cf:ea:05:
- 53:f9:7e:34:e7:95:23:de:36:36:65:59:08:76:11:6f:d9:6e:
- 55:17:af:33:1f:9e:0b:fe:fb:53:5c:67:1a:4d:8a:83:7f:5b:
- ca:ff:e4:94
------BEGIN CERTIFICATE-----
-MIIEyTCCA7GgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluRy1JQ0E3LXBhdGhsZW4xMDAxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMDAyODA5WhcNMjIwNzA3MDAyODA5WjCBojELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHjAcBgNV
-BAMMFWNoYWluRy1JQ0E2LXBhdGhsZW4xMDEfMB0GCSqGSIb3DQEJARYQaW5mb0B3
-b2xmc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOFPyecw
-6gb/ZcsrbPGorPbPEGuAeq9eQgoNYb5vFDyfZG6WRnfiZKAO11ZB/Fvm/kmGH48g
-zEvsOvFGdBp+M9mq1eJ4Cd0MOSB+MhKWzZbbEAHot6rj4SddCo+Zbu8t2MjIdqrZ
-AJ1I2c8SCJcxWcBPo+DuXKE175R8xgSqPjSmQ+DI7T2RU1OeGQOOvzD92bVL81EL
-YO0n4rHdFTywXyUPKZtfqjFkXj2DLrggZrnap7UiQBk9JF3D5922axbDZyNdMWU7
-y3LRp8iw4Lmiy5CGMNbOf5yzscM0YmPGuWYza1umALtF7gMHlqXXLx7x0vJewtKh
-NiXwenDLPR2kb2ECAwEAAaOCAQUwggEBMB0GA1UdDgQWBBQUB+inOqKc3UwwsE3w
-AMSIxDnfczCBwQYDVR0jBIG5MIG2gBQS5KQZha6Ft9brYwTVubB+V18MFqGBmqSB
-lzCBlDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0Jv
-emVtYW4xETAPBgNVBAoMCFNhd3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgw
-FgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29s
-ZnNzbC5jb22CAWQwDwYDVR0TBAgwBgEB/wIBCjALBgNVHQ8EBAMCAQYwDQYJKoZI
-hvcNAQELBQADggEBAHAkVz8aDJT5ZBQuIIG/Arq7pSECK8AJC56K48iyOU0FwTRi
-RGJc1a4PF8/Aq3H4XNV0jT3rkNXWpZe4wavXnOfKT+6P8l3HgSL8LrAt8v/jGsWF
-MSFJPzj5W1Xm8/hcY/yayHbwPYfS+wZtXvT06Yw6mXscjyn79sMMI5osHvSXT7hI
-NzO0qhWmWnUJ6cTVRMboTqLwcKifEJFWVVn0SrY2Svy5OmAB5m5hWPOwrM0COJe9
-69NrnrWmWO7OhsIbzxKzG3gA31/ad12cjqXK8XeHwe2t/c/qBVP5fjTnlSPeNjZl
-WQh2EW/ZblUXrzMfngv++1NcZxpNioN/W8r/5JQ=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA7-pathlen100, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d6:8c:d6:c4:29:20:60:9d:15:3d:0c:2a:fb:24:
- 2f:38:89:ed:37:c4:fc:57:67:2a:50:d8:eb:e2:6a:
- 1c:59:06:f2:6d:3e:b9:4f:fe:49:c5:21:c0:16:f8:
- 29:6f:51:0c:ea:78:d7:0e:15:41:da:5a:cb:0b:e0:
- 54:d6:83:fd:0f:e8:4e:30:ff:e4:44:c3:b2:02:f3:
- 7d:3a:c6:5c:4e:86:86:2c:74:d4:21:85:c1:fe:4e:
- 8b:07:3c:54:1b:54:9e:ec:5a:a5:95:ed:5a:35:e0:
- 08:c6:84:7c:e6:ae:71:12:d2:fd:c1:fd:16:0a:3a:
- b8:c7:23:4b:af:e0:cd:12:5e:9f:4f:62:13:f0:c8:
- e4:e2:a8:01:d3:37:b0:08:21:d3:0f:6c:e4:d8:c1:
- 04:51:e9:4c:c5:b1:6d:cc:63:23:97:30:ee:f0:1e:
- ab:6d:ea:93:ca:ad:56:6f:1e:ed:1a:ae:8c:1b:91:
- 04:ea:ab:9d:1b:3b:56:a7:c1:cc:2f:39:2f:b3:ba:
- 8c:16:fd:5e:10:10:9e:24:ea:40:97:74:b6:b4:e5:
- 1c:c0:d3:5f:79:2c:04:43:3a:8e:f4:b1:56:bd:c7:
- 25:63:5c:34:50:4d:bd:2d:f1:08:bd:8c:3e:d2:6f:
- fa:e4:04:a1:51:eb:d0:d0:90:91:97:7b:46:c6:10:
- 92:af
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 12:E4:A4:19:85:AE:85:B7:D6:EB:63:04:D5:B9:B0:7E:57:5F:0C:16
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:100
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- ae:bd:d0:c5:e1:4f:80:0f:85:0d:d2:e0:b5:c3:dc:73:99:94:
- 90:19:01:f2:23:66:83:da:92:f2:e8:14:dc:70:e0:20:14:26:
- c5:63:88:6a:1b:b3:f3:2f:5c:28:39:1e:6b:a7:40:9b:02:12:
- ac:88:06:1e:c6:dd:9d:d4:6a:b8:22:cb:b7:aa:7a:9c:77:9a:
- 37:0a:62:54:23:f3:e7:b9:4f:e0:8a:41:bd:74:21:69:be:7c:
- 19:50:7d:d1:93:98:7c:4a:06:60:64:72:f0:09:71:6e:86:43:
- 2f:89:dc:38:4a:c1:e4:cc:bc:72:6f:c2:b1:c1:9c:38:ff:98:
- 87:92:3b:a6:f2:b5:2d:0a:41:38:0d:e7:b5:41:cf:c1:6d:96:
- 34:98:9e:97:c8:87:a9:9e:4b:bb:73:bb:34:d6:bd:61:ef:36:
- c8:45:f3:c9:31:36:2c:f1:11:68:4b:a0:f8:b6:9d:c4:a6:8a:
- dc:e3:fc:60:f7:50:d2:d4:98:d4:e5:f9:76:ca:4a:3c:74:9a:
- bb:95:ce:3c:29:ce:be:b5:9e:07:55:e2:c4:a1:1f:b4:0d:eb:
- 87:03:1d:79:1b:e2:fc:f3:aa:4b:df:3e:24:72:56:00:b9:b4:
- a0:fc:48:80:6a:76:84:1b:79:ea:03:95:32:42:bc:9d:7a:83:
- 87:be:51:d2
------BEGIN CERTIFICATE-----
-MIIEwzCCA6ugAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA5WhcNMjIwNzA3MDAyODA5WjCBozELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNoYWluRy1JQ0E3
-LXBhdGhsZW4xMDAxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWjNbEKSBgnRU9DCr7JC84ie03
-xPxXZypQ2OviahxZBvJtPrlP/knFIcAW+ClvUQzqeNcOFUHaWssL4FTWg/0P6E4w
-/+REw7IC8306xlxOhoYsdNQhhcH+TosHPFQbVJ7sWqWV7Vo14AjGhHzmrnES0v3B
-/RYKOrjHI0uv4M0SXp9PYhPwyOTiqAHTN7AIIdMPbOTYwQRR6UzFsW3MYyOXMO7w
-Hqtt6pPKrVZvHu0arowbkQTqq50bO1anwcwvOS+zuowW/V4QEJ4k6kCXdLa05RzA
-0195LARDOo70sVa9xyVjXDRQTb0t8Qi9jD7Sb/rkBKFR69DQkJGXe0bGEJKvAgMB
-AAGjggENMIIBCTAdBgNVHQ4EFgQUEuSkGYWuhbfW62ME1bmwfldfDBYwgckGA1Ud
-IwSBwTCBvoAUJ45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYT
-AlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQK
-DAhTYXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3Lndv
-bGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAhv/1
-jhDeuPswDwYDVR0TBAgwBgEB/wIBZDALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEL
-BQADggEBAK690MXhT4APhQ3S4LXD3HOZlJAZAfIjZoPakvLoFNxw4CAUJsVjiGob
-s/MvXCg5HmunQJsCEqyIBh7G3Z3Uargiy7eqepx3mjcKYlQj8+e5T+CKQb10IWm+
-fBlQfdGTmHxKBmBkcvAJcW6GQy+J3DhKweTMvHJvwrHBnDj/mIeSO6bytS0KQTgN
-57VBz8FtljSYnpfIh6meS7tzuzTWvWHvNshF88kxNizxEWhLoPi2ncSmitzj/GD3
-UNLUmNTl+XbKSjx0mruVzjwpzr61ngdV4sShH7QN64cDHXkb4vzzqkvfPiRyVgC5
-tKD8SIBqdoQbeeoDlTJCvJ16g4e+UdI=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-entity-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-entity-key.pem
deleted file mode 100644
index 1a169591c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-entity-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEogIBAAKCAQEAu3uCI6I058uJTmTM8pjIZY/iaVVUSzyLwB9nN38Jy57fXnX2
-mYMSrBUjz2SkEBalEK8ohgAgTvNN/Qj7oacYTBMeTZAu5prjKAO09IPO/aKphlYC
-YjOfbph+D8wGcTGKk9LZox0IepL4fr+QX6HmK2RYu6aayRmX/cmp9wgnivO+4tuI
-JYSREwbiY7zhN4J+b1ra8OLroSqPXVIRr+L1iUJ5g7jApZXcQsYckFEeM/PxwuTS
-e4fDZJC3X5s479LQT9VRquA60cMBA+cysSfGSFrArCaNlGF2+Jj/MG2qVcNj/aSk
-Gzxr6AV1QRddrckXm8NNbp99fTb+wKOZ1uWSrQIDAQABAoIBAFw5+p/q2Fm6b1YI
-EiW48MO9TyR/3FKSezDMgerz7G6lPb5rCx8jMllCoPYRzP85FIQrliStBTexSokS
-FS7FUxeBRCPlrJy2Ts5NXIP4Hyf4D6rMvqluOZyfGUxOElE2jLQBQhySWKxrhiBb
-vfq9Wsu3tkrBP11z4Kfwv1KNSV55h2g/xDPl443d3VqwiLFAY6YESHsy3eXdWKYT
-AiCddq7FQo+nHHUpVoUtHr23LLyanVcgu9j9fNusQn7GGVSFKvPLuSpZwMuggAtX
-K7t93ItX7nhSx5jvWn2xxrDBV/3Xj6N4+uaZCI/5kuzEdM9NDEEJPxHKg8LNltnE
-8su+8CECgYEA58PPdmPLtPrllVBtuasoIMoKPg4DDCe6BnrS2eEXoiu9vYVsbRYk
-OPbSnlZ50uoex+tKogynFeDVYW0dM4xWSFyd5DmuLnA0Ivbt/mKhTbizg/Lnphlb
-+ICseYkOikrNzbhDZUCthzPgw7R5QW20D3CDOI3KxEC1zcrTHG6vJvUCgYEAzxZJ
-hM/lQKg5/KfXOynZGZ1XzZtDN9s+QAqbrQPxzcsFZxeXhBVv0GVPAp1OiTAYFopY
-whFPTwjxpAsu4BYVpc6vGBRCHoG1JOYYF9F2bCoCNQ8PDeJOcyD2mIRD+FJt2lin
-qyb63Jieq9xtLuOZGNwPzyqmo6zCaznmRk8dOdkCgYAeGhCYD94lY3DuM8QMmW5c
-0+EArlE3AvHmZY19Pv8S0RuTwgCTKo0J2QUCC7lG66GT1bub0IjjDpCoVsO0LkYG
-oADh45v77BbZc7j1kVnh/ltSh/oOWLzZSd0c6/A3hf+0+HnIbN4c8WAACzC0jssU
-NkjUz5XGZ6E1WWKSDs4xAQKBgG+uhVerBugn0Z4ApoKxvvOhd4jbAxVMl/XRwsM8
-LVve8br3bi89oF+zQzkVvRUfat49HkELNMpa+HaP0WfogSQ6oxNJWZ86NIcB0FyI
-CmWrAiW7SVMjiUttq4/1RPLXAYeP6FzVWNU/OdNVvUxcUmSlyaDgT55VvUQ2pYml
-gQ2BAoGAYNysHrNKaBB57C2QX+WYpvrPmsLm70Zy8SeHaFBGdmFx3lZsUufJNfyt
-kLzfSbZZ2X5Ab94U43mZoDcxZLGB3JKIWTUe6ubECVcV3IblgdzqdV26a3wde119
-IlmOeskz7C48fZ4sO6KTcoNEUU+28L8noIn6nYHVJ2Q/FGlOx38=
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-entity.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-entity.pem
deleted file mode 100644
index d563eef64..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainG-entity.pem
+++ /dev/null
@@ -1,87 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainG-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:bb:7b:82:23:a2:34:e7:cb:89:4e:64:cc:f2:98:
- c8:65:8f:e2:69:55:54:4b:3c:8b:c0:1f:67:37:7f:
- 09:cb:9e:df:5e:75:f6:99:83:12:ac:15:23:cf:64:
- a4:10:16:a5:10:af:28:86:00:20:4e:f3:4d:fd:08:
- fb:a1:a7:18:4c:13:1e:4d:90:2e:e6:9a:e3:28:03:
- b4:f4:83:ce:fd:a2:a9:86:56:02:62:33:9f:6e:98:
- 7e:0f:cc:06:71:31:8a:93:d2:d9:a3:1d:08:7a:92:
- f8:7e:bf:90:5f:a1:e6:2b:64:58:bb:a6:9a:c9:19:
- 97:fd:c9:a9:f7:08:27:8a:f3:be:e2:db:88:25:84:
- 91:13:06:e2:63:bc:e1:37:82:7e:6f:5a:da:f0:e2:
- eb:a1:2a:8f:5d:52:11:af:e2:f5:89:42:79:83:b8:
- c0:a5:95:dc:42:c6:1c:90:51:1e:33:f3:f1:c2:e4:
- d2:7b:87:c3:64:90:b7:5f:9b:38:ef:d2:d0:4f:d5:
- 51:aa:e0:3a:d1:c3:01:03:e7:32:b1:27:c6:48:5a:
- c0:ac:26:8d:94:61:76:f8:98:ff:30:6d:aa:55:c3:
- 63:fd:a4:a4:1b:3c:6b:e8:05:75:41:17:5d:ad:c9:
- 17:9b:c3:4d:6e:9f:7d:7d:36:fe:c0:a3:99:d6:e5:
- 92:ad
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 21:3A:72:3B:95:38:DF:99:DE:62:25:21:D0:14:81:6E:CA:AA:FB:A1
- X509v3 Authority Key Identifier:
- keyid:47:C0:19:4B:ED:C4:DA:97:B1:60:EA:5A:0A:42:6D:A5:D3:D8:25:31
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainG-ICA2-pathlen1/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 06:c8:08:8c:cc:5d:4e:b5:81:35:06:f3:e5:9d:4e:c8:38:3f:
- ec:87:8b:55:3c:fc:6e:4c:f8:3c:78:7d:46:03:33:a7:49:55:
- 6c:13:37:e9:11:d5:dd:8c:51:70:2c:28:18:6a:01:63:9b:35:
- 04:ba:79:49:95:10:ed:31:4b:70:5f:be:a4:67:d4:8d:2f:95:
- 45:f7:1f:3d:a0:fc:29:db:55:65:8d:98:ae:79:ad:ce:c7:b9:
- 97:54:9d:69:ca:fa:87:01:fb:0d:9b:57:67:b8:44:f6:91:14:
- e5:31:b5:c1:d8:96:b7:1d:7a:05:ed:53:d5:04:8a:8b:8e:74:
- f1:13:3d:93:d6:16:10:17:d7:de:b1:4e:13:e8:72:ae:83:91:
- 1f:46:3e:86:bd:49:79:9c:99:a9:aa:67:ff:cf:7c:34:b1:2c:
- d8:bf:e5:3a:22:c2:70:97:47:db:d0:05:77:e9:46:09:f0:c1:
- 06:1c:61:df:8b:8f:6d:a6:5b:d5:ae:9a:52:71:ed:5e:9e:38:
- e3:8c:9a:52:cf:8a:8f:20:e9:f1:e4:a3:11:bd:b9:ff:a9:1e:
- b7:f9:83:26:18:a8:0b:7b:2b:74:f5:c5:3a:58:e1:0b:71:0a:
- 3d:ef:15:ee:2c:28:b3:ba:0e:59:3c:a4:46:24:d3:b7:14:b5:
- 4a:8f:c1:25
------BEGIN CERTIFICATE-----
-MIIEtzCCA5+gAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluRy1JQ0ExLXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOVoXDTIyMDcwNzAwMjgwOVowgZoxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRYwFAYDVQQD
-DA1jaGFpbkctZW50aXR5MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29t
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu3uCI6I058uJTmTM8pjI
-ZY/iaVVUSzyLwB9nN38Jy57fXnX2mYMSrBUjz2SkEBalEK8ohgAgTvNN/Qj7oacY
-TBMeTZAu5prjKAO09IPO/aKphlYCYjOfbph+D8wGcTGKk9LZox0IepL4fr+QX6Hm
-K2RYu6aayRmX/cmp9wgnivO+4tuIJYSREwbiY7zhN4J+b1ra8OLroSqPXVIRr+L1
-iUJ5g7jApZXcQsYckFEeM/PxwuTSe4fDZJC3X5s479LQT9VRquA60cMBA+cysSfG
-SFrArCaNlGF2+Jj/MG2qVcNj/aSkGzxr6AV1QRddrckXm8NNbp99fTb+wKOZ1uWS
-rQIDAQABo4H+MIH7MB0GA1UdDgQWBBQhOnI7lTjfmd5iJSHQFIFuyqr7oTCBzgYD
-VR0jBIHGMIHDgBRHwBlL7cTal7Fg6loKQm2l09glMaGBp6SBpDCBoTELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNV
-BAMMFGNoYWluRy1JQ0EyLXBhdGhsZW4xMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tggFkMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAAbICIzM
-XU61gTUG8+WdTsg4P+yHi1U8/G5M+Dx4fUYDM6dJVWwTN+kR1d2MUXAsKBhqAWOb
-NQS6eUmVEO0xS3BfvqRn1I0vlUX3Hz2g/CnbVWWNmK55rc7HuZdUnWnK+ocB+w2b
-V2e4RPaRFOUxtcHYlrcdegXtU9UEiouOdPETPZPWFhAX196xThPocq6DkR9GPoa9
-SXmcmamqZ//PfDSxLNi/5ToiwnCXR9vQBXfpRgnwwQYcYd+Lj22mW9WumlJx7V6e
-OOOMmlLPio8g6fHkoxG9uf+pHrf5gyYYqAt7K3T1xTpY4QtxCj3vFe4sKLO6Dlk8
-pEYk07cUtUqPwSU=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA1-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA1-key.pem
deleted file mode 100644
index adc22e260..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA1-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEAx/SmfvLLT24EGNNT1c+/fpfRdJT+261hPxIgZ/MQg3tRQ6MM
-ILc1Y/EK7ll0gnL70dQScewOj2nJ+6+nL8Q7LGY0q6yAwm1KDlT+9j46ACWEp8tC
-1ehHBJTkaMP1Mq0hidhe+Yjufc6Roxb8h3YfLx1MsS89TfQKbAT9Sc9RiEnEA2Vj
-HsjxNB1ENFiv9eyQKoypOHvc+l/tAO0IU033NhDtcUGq47/oXe5ONjlXfvT9w/eK
-Ug/xN3IrrpB3ANZ87OzujfhL+zkKRUmBMUE/qbt7HIrPMQnHlKdwStS76mE9mqGO
-G4sCOx8fxIXpf2MM6uWRg6hbJTR8qGjrl290mQIDAQABAoIBAASHGa4OOWRXDWiy
-gFd7GM75CRkmto6q4mTXODyiWGFhzXlGm+Oxwle9AY5cIDND/0fFEZXazomYz6YP
-WC3Qt7ZNqiupAFFmwCKK8isJRa7zKonSJHVLiTAlXvawWUEIgpXofF4SJ7RZlRqo
-TpeSqSob87yfYTf+qq2/fyzIsQPw/WBIoB6z3tDRQ61j60KG1P8ILoOiu4znzxUn
-DTquyJ+zVmqDJCTcLZWWz+tam70iFEE+Khx3MKlEXpIFRXlQdPIe7F0CW9MZb5vY
-JyJunI9T+wqdklWJBVFUBm/KINdgp86snE0X5eeGeensBhWkW+EeZCEULHfdd6Lk
-nor0CAECgYEA+N3WRBxpW5GJF4BKCmDxtpRoth5u+RtQAkmAAR/ts1gEr6y8Q4e3
-KUE+T6CEYgDGwZyIII1zJjIWZuicnC0U0u/tg94yj9JIk2roGR4KLGRhIilN9EC5
-x6cQDe27Le4+LcYmyHzjvRq9pdWG1WYjGXOJuD1kqKk4OS6aZsoLPEECgYEAza/o
-wUgRWXvsaahlemDd83xn/t0c5rGhg7yT8uQFTRlllGRWtrZfRKwlCfELXmvtIgzL
-/Prmbnp8OlsGkp5KlumzFdMvKlANqxMA+prZZ89D25t/n8AfNKeqvtv3om0LDS99
-tXSHAvu+YbbFHXi99qlWzaKtASQEoUHe1OtPAlkCgYBaSxKMj8piIMGetzsl3NqW
-Je5/9TbKRvCWg9hfkBgMM+kvW/rKfZkk7LkQ5uphLGrwoDx7oxaeSxn5qHf56hle
-FxMT/zBVIjSW1/jx9AY46Qqc/GN+NWWyXJjklNaO6ZvBu90ibL2sROF+I6TSFEaz
-20migRPeZdcyWAhJNxEwgQKBgG7y31M645joPqrzmeF8VNzdE1+nt8o8sMnVs9yF
-4NIoy+FSim++Sf9J+CS3sBE7mEsQqgwI7rlTOqVjqlT2K3fiEabJJpzlV6oa8yE6
-2+CiLZFM/HeYc3y8oF6ZWqdzuE1he6agd59FWfltVEBEe/uMdnUvtbBy1EiDtoYV
-c6XpAoGBALacGB7IEzI0DkP+WdzXnZ0Dhgqg+RwEQgzJl2Aq/qLxOr3Ci6Qzc5/1
-MWFEdKcoDPLC9VvIMu9YeNGE7GGZs4XKftiqyL3ZCg4TWDFkDrUt9rcmmmnqTtPl
-r4zF4TPZyCygAFmlhaW6SyMp8Wgl/ysAqwlnlZBnxVLT+J5B0Rfz
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA1-pathlen0.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA1-pathlen0.pem
deleted file mode 100644
index 974ddd46a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA1-pathlen0.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA2-pathlen2, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:10 2019 GMT
- Not After : Jul 7 00:28:10 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:c7:f4:a6:7e:f2:cb:4f:6e:04:18:d3:53:d5:cf:
- bf:7e:97:d1:74:94:fe:db:ad:61:3f:12:20:67:f3:
- 10:83:7b:51:43:a3:0c:20:b7:35:63:f1:0a:ee:59:
- 74:82:72:fb:d1:d4:12:71:ec:0e:8f:69:c9:fb:af:
- a7:2f:c4:3b:2c:66:34:ab:ac:80:c2:6d:4a:0e:54:
- fe:f6:3e:3a:00:25:84:a7:cb:42:d5:e8:47:04:94:
- e4:68:c3:f5:32:ad:21:89:d8:5e:f9:88:ee:7d:ce:
- 91:a3:16:fc:87:76:1f:2f:1d:4c:b1:2f:3d:4d:f4:
- 0a:6c:04:fd:49:cf:51:88:49:c4:03:65:63:1e:c8:
- f1:34:1d:44:34:58:af:f5:ec:90:2a:8c:a9:38:7b:
- dc:fa:5f:ed:00:ed:08:53:4d:f7:36:10:ed:71:41:
- aa:e3:bf:e8:5d:ee:4e:36:39:57:7e:f4:fd:c3:f7:
- 8a:52:0f:f1:37:72:2b:ae:90:77:00:d6:7c:ec:ec:
- ee:8d:f8:4b:fb:39:0a:45:49:81:31:41:3f:a9:bb:
- 7b:1c:8a:cf:31:09:c7:94:a7:70:4a:d4:bb:ea:61:
- 3d:9a:a1:8e:1b:8b:02:3b:1f:1f:c4:85:e9:7f:63:
- 0c:ea:e5:91:83:a8:5b:25:34:7c:a8:68:eb:97:6f:
- 74:99
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 48:80:87:28:EF:E6:28:0F:03:9B:DF:33:48:10:A0:E5:20:B3:69:50
- X509v3 Authority Key Identifier:
- keyid:80:49:61:8C:1D:13:08:56:B5:42:68:D5:B2:EA:89:2C:B4:8B:05:87
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainH-ICA3-pathlen2/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:0
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 5f:77:d6:d2:55:4e:25:be:4b:f4:9f:9d:a8:ff:92:ac:4d:19:
- 1f:0b:50:5b:51:01:7f:b8:a2:56:0d:cd:0c:c8:66:7a:08:bf:
- 1e:07:6a:a5:6d:ad:68:c4:bb:da:99:d7:f3:62:bb:b5:28:de:
- 47:dc:e2:b0:e1:27:cd:14:4b:7d:1c:7d:1a:60:eb:37:6f:fc:
- ff:4e:1f:9f:ce:52:da:b4:a7:f4:6c:92:b5:65:b5:8f:53:1b:
- d8:bd:7d:f6:a8:7e:23:9f:7d:b6:09:18:f2:a3:17:55:aa:fe:
- 57:87:3d:a9:18:52:76:6e:fe:7c:ed:2a:85:45:63:d3:4d:7b:
- f2:5e:ff:0f:a7:ae:24:ef:5f:71:66:25:29:31:9e:4a:12:a0:
- 56:5b:39:2c:79:64:d0:1a:fb:97:99:df:42:9c:23:b4:f1:1d:
- be:fc:da:41:16:b1:a0:fc:3a:b8:6e:a7:cf:3c:21:ea:22:7c:
- f6:d2:a1:25:96:1e:b9:2f:eb:bf:61:c2:ee:58:c6:a1:7e:d0:
- 73:e3:fd:58:62:ca:44:95:2b:b1:a8:d0:f8:1a:0d:40:9a:fb:
- b1:27:4b:fc:57:4c:32:b5:09:5e:6e:ac:1d:dc:bc:77:f5:1b:
- 27:88:40:df:70:da:f7:28:32:ef:8f:2e:53:41:78:69:e9:3e:
- 7b:64:da:e4
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluSC1JQ0EyLXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgxMFoXDTIyMDcwNzAwMjgxMFowgaExCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR0wGwYDVQQD
-DBRjaGFpbkgtSUNBMS1wYXRobGVuMDEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xm
-c3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMf0pn7yy09u
-BBjTU9XPv36X0XSU/tutYT8SIGfzEIN7UUOjDCC3NWPxCu5ZdIJy+9HUEnHsDo9p
-yfuvpy/EOyxmNKusgMJtSg5U/vY+OgAlhKfLQtXoRwSU5GjD9TKtIYnYXvmI7n3O
-kaMW/Id2Hy8dTLEvPU30CmwE/UnPUYhJxANlYx7I8TQdRDRYr/XskCqMqTh73Ppf
-7QDtCFNN9zYQ7XFBquO/6F3uTjY5V370/cP3ilIP8TdyK66QdwDWfOzs7o34S/s5
-CkVJgTFBP6m7exyKzzEJx5SncErUu+phPZqhjhuLAjsfH8SF6X9jDOrlkYOoWyU0
-fKho65dvdJkCAwEAAaOCARIwggEOMB0GA1UdDgQWBBRIgIco7+YoDwOb3zNIEKDl
-ILNpUDCBzgYDVR0jBIHGMIHDgBSASWGMHRMIVrVCaNWy6okstIsFh6GBp6SBpDCB
-oTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1Nl
-YXR0bGUxFTATBgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJp
-bmcxHTAbBgNVBAMMFGNoYWluSC1JQ0EzLXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkB
-FhBpbmZvQHdvbGZzc2wuY29tggFkMA8GA1UdEwQIMAYBAf8CAQAwCwYDVR0PBAQD
-AgEGMA0GCSqGSIb3DQEBCwUAA4IBAQBfd9bSVU4lvkv0n52o/5KsTRkfC1BbUQF/
-uKJWDc0MyGZ6CL8eB2qlba1oxLvamdfzYru1KN5H3OKw4SfNFEt9HH0aYOs3b/z/
-Th+fzlLatKf0bJK1ZbWPUxvYvX32qH4jn322CRjyoxdVqv5Xhz2pGFJ2bv587SqF
-RWPTTXvyXv8Pp64k719xZiUpMZ5KEqBWWzkseWTQGvuXmd9CnCO08R2+/NpBFrGg
-/Dq4bqfPPCHqInz20qEllh65L+u/YcLuWMahftBz4/1YYspElSuxqND4Gg1Amvux
-J0v8V0wytQlebqwd3Lx39RsniEDfcNr3KDLvjy5TQXhp6T57ZNrk
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA2-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA2-key.pem
deleted file mode 100644
index 74120de90..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA2-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEA2bWvS7qDAyPfUCiowgws8ATLLQSbHvX0aLzUjrTNRgSi9RSe
-PjPWdi1U+dVBtXpHkxpUgKQ9i52A6hw6OrvR1Lbx8qO9nl24hQHXyKAn9mdBlMWV
-kRHLlvyVqby1vlh3XCub6SR+i24Qp9U6+gUhJxTY0l+iWBK02b2IGvHnTJ1gMQsf
-P4uvOtnKz9RzG7iwPdWWXU6jYo9W6z1M8CFP9IzHVd2m3NkVoRLbc02/GIlCkg6D
-vk+q7o+o76EnAXMWKcDojCPI/5VozVNnSeVzsexiYFEg6KZJKPUrFjDoi6Yv9Lc3
-mYwyMJddFr9rXro0H9YbLvx58ABhqqB6L3vSgwIDAQABAoIBAHOkqqTTQdxdJbXy
-oxHQXd5w7WvQUoWzqEwqYc4cBB35QIZmmVf5OSY1FjpPKUQ42+QrzE847uhGlb/F
-lri0I9WWCBcXGxYQOn+MZw7O4+tjFdbszXHtvfNJ4EX1U6T0YRK4p2zEUePGZ1p/
-TYCZUO7th+7Xleiqpx4yKyYE8RQkWbHCknAOpgYDAQKFdMn1y6oVTihP0QH5FnLK
-xnqea9I/U3qEnpSzvDHTMZqAmEPke6//ie44el6vw2Ai93kP3Ct0J6E2uD4xK2tH
-tzmNiLUF/3fCSA/WD2FMAaONi6OQGWmVBfoexa8sxY/E3pO1OOY39Eu4ET9h70TB
-LS0oPIECgYEA7IISCRoeTsKvIX7YTPBMb5274fl+v9VGQZr4MrPbD4n58/fRlx0T
-el5t53LQSk0theSu388Df4u9ft7EJGAqPruYfwJHOwobm0zuYcYl568STmkRkC2Z
-P/IyJz+HRA6VGZrihqe5TKF5065yRjsT49O6wYjV6xgJgtLjwTgphfECgYEA66b/
-4USR5SgAuPvAS1rKqcGJzdJ1Expf4HwecQ8G/botXDFscmXVMJ50GUmwLU/eOca8
-MhXQTEc+R3tUNAwYiGWYfZ522wydeLHCdH0YRpodMyII0zkFN6K/0Qq0POjgC4sN
-ygrDKTqd9TW/jX/8OxfUcPK+tyV6sI2Mhry+27MCgYBnHQp5924xToYGZ4QsfzQE
-EdQhYKKXRof8AHGnwWyHqNNWP7ycUqv0VQk7uH4Bdwaa8qofn+TZjfZPQxZm+ZpR
-gX6qGTcvEWgZ3H+uFzLdgSHNF9f1cTv4ekLNg9AYpvbwk+uhY6zRMTGpTcw6vHUe
-hmhNCrihZ/h1ljaAPlk0MQKBgQChX0AUtE8wXN95zbRWJftomkdS8g8IIOSNJpH2
-HDNOZ0MOwi2gfUmrvKaGdqa1sN7eM9DGf5ef1J26d6Mm7S2Tofb19yEvSglAEIK4
-IL4SAxGB5Ymjk4WWHtY6QZlBqLtcTEIKHKqevixTMhZVwNIqaVwqaKDfbEQDSTt1
-PSV57wKBgDDcqeUafap/pJlUyISHxb06etZnvAmpt5N7POaCcZ9uYBE/eya9alGA
-18tMB0TcBXnmuXmP+GPVlZrc/uu7psC+Fs7a2/d1dnpGmzAP9KD+riC8/ILBXaoh
-Izs5E2WMKU8uV9cTG89P/qK8NXCa+m35RuBMDAYO7aAVQkBn17JC
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA2-pathlen2.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA2-pathlen2.pem
deleted file mode 100644
index 31230193c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA2-pathlen2.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA3-pathlen2, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA2-pathlen2, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d9:b5:af:4b:ba:83:03:23:df:50:28:a8:c2:0c:
- 2c:f0:04:cb:2d:04:9b:1e:f5:f4:68:bc:d4:8e:b4:
- cd:46:04:a2:f5:14:9e:3e:33:d6:76:2d:54:f9:d5:
- 41:b5:7a:47:93:1a:54:80:a4:3d:8b:9d:80:ea:1c:
- 3a:3a:bb:d1:d4:b6:f1:f2:a3:bd:9e:5d:b8:85:01:
- d7:c8:a0:27:f6:67:41:94:c5:95:91:11:cb:96:fc:
- 95:a9:bc:b5:be:58:77:5c:2b:9b:e9:24:7e:8b:6e:
- 10:a7:d5:3a:fa:05:21:27:14:d8:d2:5f:a2:58:12:
- b4:d9:bd:88:1a:f1:e7:4c:9d:60:31:0b:1f:3f:8b:
- af:3a:d9:ca:cf:d4:73:1b:b8:b0:3d:d5:96:5d:4e:
- a3:62:8f:56:eb:3d:4c:f0:21:4f:f4:8c:c7:55:dd:
- a6:dc:d9:15:a1:12:db:73:4d:bf:18:89:42:92:0e:
- 83:be:4f:aa:ee:8f:a8:ef:a1:27:01:73:16:29:c0:
- e8:8c:23:c8:ff:95:68:cd:53:67:49:e5:73:b1:ec:
- 62:60:51:20:e8:a6:49:28:f5:2b:16:30:e8:8b:a6:
- 2f:f4:b7:37:99:8c:32:30:97:5d:16:bf:6b:5e:ba:
- 34:1f:d6:1b:2e:fc:79:f0:00:61:aa:a0:7a:2f:7b:
- d2:83
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 80:49:61:8C:1D:13:08:56:B5:42:68:D5:B2:EA:89:2C:B4:8B:05:87
- X509v3 Authority Key Identifier:
- keyid:56:54:36:BE:23:2F:20:89:6D:A6:BA:9A:45:A4:88:0E:40:35:FD:F5
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainH-ICA4-pathlen2/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:2
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 16:6f:a3:cd:f6:de:87:1c:86:f8:b4:b8:e6:e0:dc:11:2f:f3:
- bb:f1:57:34:ec:1a:59:8a:81:63:40:01:df:53:24:a7:50:b0:
- 6d:3d:29:2a:41:e7:08:71:0f:37:4b:10:b5:95:ae:a0:81:ba:
- ba:b5:3e:72:48:be:6b:9e:be:34:3b:0d:15:f8:8f:9d:24:68:
- 01:0c:d4:4a:0d:86:d5:b3:71:b6:d6:8e:71:44:16:7e:e3:db:
- ba:7d:0e:5f:b3:2f:e2:60:f9:ff:bc:91:a6:ae:3c:ba:30:e4:
- f5:55:bf:1e:72:0b:cc:5e:b4:7e:1f:09:aa:b4:52:bd:8c:2c:
- 37:d0:0d:82:b4:ec:ff:c1:cf:91:a2:43:24:b8:b4:c0:ac:f2:
- 29:eb:84:1d:49:ef:a4:8f:65:b3:06:01:2f:23:cf:a6:27:42:
- cd:99:17:b9:69:40:1d:df:99:f6:f8:c4:61:cc:4a:a1:f0:38:
- ce:4e:c4:27:f6:8f:d2:ae:74:5f:39:93:66:77:55:b2:25:8d:
- 7e:7f:7d:b4:2b:f1:ee:83:9e:7b:f5:31:3f:d7:27:53:e6:21:
- bd:69:a5:ca:0e:d8:6e:54:67:56:bf:f3:ec:e8:e1:aa:a4:76:
- fa:0d:42:d4:7d:26:bd:f5:e5:25:ee:81:c4:ed:59:eb:0a:54:
- d3:c9:18:30
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluSC1JQ0EzLXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOVoXDTIyMDcwNzAwMjgwOVowgaExCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR0wGwYDVQQD
-DBRjaGFpbkgtSUNBMi1wYXRobGVuMjEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xm
-c3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANm1r0u6gwMj
-31AoqMIMLPAEyy0Emx719Gi81I60zUYEovUUnj4z1nYtVPnVQbV6R5MaVICkPYud
-gOocOjq70dS28fKjvZ5duIUB18igJ/ZnQZTFlZERy5b8lam8tb5Yd1wrm+kkfotu
-EKfVOvoFIScU2NJfolgStNm9iBrx50ydYDELHz+LrzrZys/Ucxu4sD3Vll1Oo2KP
-Vus9TPAhT/SMx1XdptzZFaES23NNvxiJQpIOg75Pqu6PqO+hJwFzFinA6IwjyP+V
-aM1TZ0nlc7HsYmBRIOimSSj1KxYw6IumL/S3N5mMMjCXXRa/a166NB/WGy78efAA
-Yaqgei970oMCAwEAAaOCARIwggEOMB0GA1UdDgQWBBSASWGMHRMIVrVCaNWy6oks
-tIsFhzCBzgYDVR0jBIHGMIHDgBRWVDa+Iy8giW2muppFpIgOQDX99aGBp6SBpDCB
-oTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1Nl
-YXR0bGUxFTATBgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJp
-bmcxHTAbBgNVBAMMFGNoYWluSC1JQ0E0LXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkB
-FhBpbmZvQHdvbGZzc2wuY29tggFkMA8GA1UdEwQIMAYBAf8CAQIwCwYDVR0PBAQD
-AgEGMA0GCSqGSIb3DQEBCwUAA4IBAQAWb6PN9t6HHIb4tLjm4NwRL/O78Vc07BpZ
-ioFjQAHfUySnULBtPSkqQecIcQ83SxC1la6ggbq6tT5ySL5rnr40Ow0V+I+dJGgB
-DNRKDYbVs3G21o5xRBZ+49u6fQ5fsy/iYPn/vJGmrjy6MOT1Vb8ecgvMXrR+Hwmq
-tFK9jCw30A2CtOz/wc+RokMkuLTArPIp64QdSe+kj2WzBgEvI8+mJ0LNmRe5aUAd
-35n2+MRhzEqh8DjOTsQn9o/SrnRfOZNmd1WyJY1+f320K/Hug5579TE/1ydT5iG9
-aaXKDthuVGdWv/Ps6OGqpHb6DULUfSa99eUl7oHE7VnrClTTyRgw
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA3-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA3-key.pem
deleted file mode 100644
index 8128e7d32..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA3-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAt7MaG0qAG6LllRS8VeR33PN7ip80fJPbycnQi7iHRWXToX1G
-83CSqddm7zu0qBaw8L5ncKpFewm8ynfbV6QkVAsa2l+tZKPxSYO8n13EtNpDBKrM
-w7BNwvFzyTgNTMmr298Js1wVC2Z5rWxj0TjMpi1Gg84ZHcELbvw4t9iMom8ph5sh
-zbBr4PgfA9uCHY2YYxa2dEdDIPKhSxaLZ/28c3ib+d26SdlgqbeFZn+kKgXILZOg
-m6q/pjHh8sjTG3t50bZsrjtrAC5urhDcbIjcG5PoVpmNRn5JOoegswDMLjuD4Ws5
-FnFHRzBta2ycn+bO7CAvj8Fd79OEMmylzHj+oQIDAQABAoIBABWgBOu/inM2avZw
-2Xb3DVE6bIm2EjS0J0SK+HzqPSpjQVWabNbNosZRsDFrguniufOtRnoR4VoJnGrt
-TynzDb/DCuc4Ki5VylrQIk1UeYqcwxTykmZbA9x2Fh5S9eXbO9sHV5oAtg2Ag8Rx
-pRKFMDpDzDBJ+9Tv28u172tdF7krT7mDQ+Qtiw8XaGIfudutgz16j+QEy/7G+elo
-9ZyAtvUENTy+8/ds5hjwuSUUf7krIgJYj3UibYVHgZepJ7skkc8gMGEFCRYgI9p1
-SheBWQvVZUYHw7WJ/QOsCWPRVS++OtcS0LWQ5MSilbGjlDlWLL2Qxhd4Zh15l+yf
-2gz26U0CgYEA58tbPKbyOJ9J4IvwZpQaJlZLCJzKyk6JAAI9gSnGUhfBCQ7VOprK
-QWMDFQKTSd9THZcdQZ4MeO5jGvBm9b5PUdq+fuAVr6eYBFOAUZEDY9qJELHmQb9X
-9hAH/1Oe/MZ2hTC0DlYkJLS7KwmD6arGmQ092WtmTLk2supqFTyLd48CgYEAyuIC
-3BxxLTrDZgD9dTb7Kb8W9P+Do4qbg1drRdsftUra54i1Uhy6/PiiHqLZLhIxjIJE
-zbJD90osUm9cV+3FKRHhFTf8DTNzAsXFcxsd7FouAwgL3eJYHOQvGGbS9gbdKlCQ
-rtYl+BTaHzw0fdX0X9JKgas5iKxRto/9TK1+js8CgYEAys2F2h9HNntHrAtEHrvd
-1UUTCUoFs9Pa0gMjxOrD9feKkV5E+a2M4IC8pZlHPQ8ELZOVqV+bEgOg+mTz8Ha9
-96Qnn+J3luRPgRl939+805TU76J3D3dWgpesJ50GMauC7y2ZnCGKJgNq71C39a3R
-bP/E6YGqU96JGSk3/7SlYckCgYAKGeyohuX/qYBXEM+NyXoB3xjGg/5K4zjQ9kZK
-CRnwDdUOWBknCHUq6ToxKkyD5bX/1/CTCUAnDNNeG1tOqXD6lYBObSYohhpA1hX5
-oC0COo816W2l04ItlhLeNShlxXu3gqFhgxoK2wbtLTMz3LY5GyBIinzn2CSNYWfs
-LGszswKBgQCtvS5okoPtkuhxb4T93fCtBbP1EJVSNaHPtBN42iY++hr9vfQo8VpN
-p/pWrC7NQGjqvEzI2sKZbQZVsqvKGjLWB0i4CiFURXgm7hsp3syrpQ1InNKgV1dk
-PAib3V9HdSDF/kxRuqppICK3r3qXYBBmtggHV96wzggHhHklSrSCHg==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA3-pathlen2.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA3-pathlen2.pem
deleted file mode 100644
index 7f4dd677b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA3-pathlen2.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA4-pathlen2, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA3-pathlen2, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:b7:b3:1a:1b:4a:80:1b:a2:e5:95:14:bc:55:e4:
- 77:dc:f3:7b:8a:9f:34:7c:93:db:c9:c9:d0:8b:b8:
- 87:45:65:d3:a1:7d:46:f3:70:92:a9:d7:66:ef:3b:
- b4:a8:16:b0:f0:be:67:70:aa:45:7b:09:bc:ca:77:
- db:57:a4:24:54:0b:1a:da:5f:ad:64:a3:f1:49:83:
- bc:9f:5d:c4:b4:da:43:04:aa:cc:c3:b0:4d:c2:f1:
- 73:c9:38:0d:4c:c9:ab:db:df:09:b3:5c:15:0b:66:
- 79:ad:6c:63:d1:38:cc:a6:2d:46:83:ce:19:1d:c1:
- 0b:6e:fc:38:b7:d8:8c:a2:6f:29:87:9b:21:cd:b0:
- 6b:e0:f8:1f:03:db:82:1d:8d:98:63:16:b6:74:47:
- 43:20:f2:a1:4b:16:8b:67:fd:bc:73:78:9b:f9:dd:
- ba:49:d9:60:a9:b7:85:66:7f:a4:2a:05:c8:2d:93:
- a0:9b:aa:bf:a6:31:e1:f2:c8:d3:1b:7b:79:d1:b6:
- 6c:ae:3b:6b:00:2e:6e:ae:10:dc:6c:88:dc:1b:93:
- e8:56:99:8d:46:7e:49:3a:87:a0:b3:00:cc:2e:3b:
- 83:e1:6b:39:16:71:47:47:30:6d:6b:6c:9c:9f:e6:
- ce:ec:20:2f:8f:c1:5d:ef:d3:84:32:6c:a5:cc:78:
- fe:a1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 56:54:36:BE:23:2F:20:89:6D:A6:BA:9A:45:A4:88:0E:40:35:FD:F5
- X509v3 Authority Key Identifier:
- keyid:18:6D:44:83:EE:1F:EC:B4:22:F0:9C:EB:54:1E:4A:15:58:01:AA:13
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:2
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 2a:35:ca:d5:dd:97:31:4d:29:21:90:67:ba:68:ef:2a:56:b0:
- 08:0a:c5:a2:cc:30:11:71:59:1b:59:2b:ca:c4:cc:22:52:d7:
- f3:a7:d2:14:c5:fc:e4:c5:6f:9d:45:ce:7f:d0:dd:ec:5f:6b:
- c3:d1:78:7a:29:bb:73:98:b6:15:9b:41:37:7a:50:b3:04:1d:
- 72:90:9b:e9:f2:4b:68:f3:60:e9:bb:34:6e:2a:6c:6c:50:a6:
- 38:ac:61:bc:ca:25:23:f5:f5:70:3a:8a:33:94:cf:97:1c:5c:
- a3:76:b0:7b:88:35:8a:6e:18:44:01:e6:80:23:e9:14:ea:66:
- 56:34:9a:0b:ca:1a:37:c8:e7:00:03:39:7d:73:e5:13:cb:be:
- 9e:df:c6:87:c3:24:a7:7f:39:1d:cc:ca:1f:e7:14:38:fe:3d:
- 06:7a:2f:95:f3:9a:79:49:e9:9c:f3:72:e5:b4:b5:fb:87:13:
- 83:4f:9f:76:2f:41:8f:a4:55:1d:e4:74:2f:0a:0f:cd:ee:a8:
- 50:06:1e:a7:9e:25:9f:f3:9d:b2:c1:44:de:c5:44:3e:42:64:
- e1:75:16:33:56:a7:93:68:bb:fa:96:46:33:de:58:c1:81:42:
- ca:1c:28:4f:09:71:db:60:e1:88:ac:d6:0d:37:3a:63:8d:50:
- b7:35:2d:e5
------BEGIN CERTIFICATE-----
-MIIExjCCA66gAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluSC1JQ0E0LXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOVoXDTIyMDcwNzAwMjgwOVowgaExCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR0wGwYDVQQD
-DBRjaGFpbkgtSUNBMy1wYXRobGVuMjEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xm
-c3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALezGhtKgBui
-5ZUUvFXkd9zze4qfNHyT28nJ0Iu4h0Vl06F9RvNwkqnXZu87tKgWsPC+Z3CqRXsJ
-vMp321ekJFQLGtpfrWSj8UmDvJ9dxLTaQwSqzMOwTcLxc8k4DUzJq9vfCbNcFQtm
-ea1sY9E4zKYtRoPOGR3BC278OLfYjKJvKYebIc2wa+D4HwPbgh2NmGMWtnRHQyDy
-oUsWi2f9vHN4m/nduknZYKm3hWZ/pCoFyC2ToJuqv6Yx4fLI0xt7edG2bK47awAu
-bq4Q3GyI3BuT6FaZjUZ+STqHoLMAzC47g+FrORZxR0cwbWtsnJ/mzuwgL4/BXe/T
-hDJspcx4/qECAwEAAaOCAQUwggEBMB0GA1UdDgQWBBRWVDa+Iy8giW2muppFpIgO
-QDX99TCBwQYDVR0jBIG5MIG2gBQYbUSD7h/stCLwnOtUHkoVWAGqE6GBmqSBlzCB
-lDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVt
-YW4xETAPBgNVBAoMCFNhd3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYD
-VQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb22CAWQwDwYDVR0TBAgwBgEB/wIBAjALBgNVHQ8EBAMCAQYwDQYJKoZIhvcN
-AQELBQADggEBACo1ytXdlzFNKSGQZ7po7ypWsAgKxaLMMBFxWRtZK8rEzCJS1/On
-0hTF/OTFb51Fzn/Q3exfa8PReHopu3OYthWbQTd6ULMEHXKQm+nyS2jzYOm7NG4q
-bGxQpjisYbzKJSP19XA6ijOUz5ccXKN2sHuINYpuGEQB5oAj6RTqZlY0mgvKGjfI
-5wADOX1z5RPLvp7fxofDJKd/OR3Myh/nFDj+PQZ6L5XzmnlJ6ZzzcuW0tfuHE4NP
-n3YvQY+kVR3kdC8KD83uqFAGHqeeJZ/znbLBRN7FRD5CZOF1FjNWp5Nou/qWRjPe
-WMGBQsocKE8Jcdtg4Yis1g03OmONULc1LeU=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA4-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA4-key.pem
deleted file mode 100644
index 91ef6cf8f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA4-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEAu/Mvis2eh/EB86TALWY21xEuZAjo8Zn6ppz0vTtHctIOWJ0+
-Uufao0N4w8OT5gTTq1GKGiQOemJZqsZCnmbBYV4xsU3cN6kYdo3+ywlUP0+7X6u6
-cOm0oV6gaX5FP8DMeOnydGR5wmoW0JgwgkRKs5ksZjCsmYIEKr8PYIkENvop0whW
-YWqoM0CaU30gqFFvm6DZPtyaix03nq3J/VOnBNwfNj7TZVKEJGHQTuJBYL/7/bIE
-sz/rFJlevOh96WXRP/4ESeW7oy3j25bf2YGgMtcBubgCjrmiHwrUJBc6GQ9tOhBf
-XH24VoLHf0DwLYdjwbHYZMc8JxNKY4IhsfI56QIDAQABAoIBAFR1/Vhn/KTkdlcS
-I1aDh4NwciN8KYphAtWa1RSwrfP4V4AU8av6CzOxH3UBz9XfN2vWkbQbnfH7foYS
-4F8kmCR0WuptrdfJgnfMacK+J4DoCLD+kCMrswONbZLarq3uqzRvFYiemmT2ndgR
-fEMeA1/gJqapmvbFCbBX+cYM7LrzPIt7vsgg1u9hyNPVznWqKlukfCtQD1cmjeyr
-qG54AWvhD9sQPCtLsoC7D0mPn5Yh37gbT6A724BevSsSfSZSzqOxvl+NLZpk7vRW
-dH4ZmdY6We7fVRZUY48bsjVK8k44aMhu8Xlj4vhDOxEiLStthdOnyNEulddJ/tH0
-QfDyiZ0CgYEA8UXWpgMnO3TWIQz2d3FUfHx1q21aefyHjNW0KFeUMWpI0rgTYkqi
-HdFXYFsAD5t8MJaBbUHk3Czze9xSfgRnvku7fFaKmtrwFSzSccxXu9Mlm87ilpyo
-EuNHJOoWSbq6oEG7F9JKg8so0V0vmWr1fI1VZarMiypcnEK2MezoPe8CgYEAx2wd
-8jkUn9O/3/HdfKLUTcbJIVrxIdd0N9WyHASc7Oh2vOSrc+y3UhN35FRywaqwKf52
-pV86Uy6GFbHZkE/OHBOphtpRKkufWblZ4T89YYmHIl3gFmyIH/djQcNiwhAGG7l/
-hEMXz/aWfhRA3chYKEQAjEYUdtGVU5RsHMkuXacCgYBiDHibhIKIBgYS7lqm1ZZ4
-9Hc5UDpJgpdvY1VQY67kmgW4JHg0JJJXPcCddr3CmfRRJoi4ZuPjmhzkw/d+ILos
-OkiZ0e2H2ttgL5PiDSHGQZtyAxRQEp+29UfvN3YRRmIbSDsJBjuj7YbL9mumlDHp
-COKga1WuZGu4UOALz/PdXwKBgFgyAKx3gh+NTnaESSgt+ybKm3kc9ze4SbXH1JV/
-lMdRp/GyUAFc11Z9NbDNiFMOYgqwd1h73Reco8BEf6vLH6RbLcZuFydVeov75Tww
-87yHTjRswAYqyakZh9Q1zR92Zr0sNLER2x4mODhaTLXJPPPR30wqUjKaTihAo++3
-KcJRAoGBAJGLpOLNckpY2tzOmFRPjCrIRa1b3f4PzNPJ15p+g6jVcnzjnIraJ+4M
-R3ELPL7a/jhJJ5JsqQrg2BcSfPQitxgflaU/qsiUR0WFckPO4BQ4qx1X0bSgNxhO
-bh9fipjlH39U+UV4N9CR7Bkw+p1wLUF4ZR4ElAHAzgrh6WdZZGEX
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA4-pathlen2.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA4-pathlen2.pem
deleted file mode 100644
index df74193db..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-ICA4-pathlen2.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA4-pathlen2, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:bb:f3:2f:8a:cd:9e:87:f1:01:f3:a4:c0:2d:66:
- 36:d7:11:2e:64:08:e8:f1:99:fa:a6:9c:f4:bd:3b:
- 47:72:d2:0e:58:9d:3e:52:e7:da:a3:43:78:c3:c3:
- 93:e6:04:d3:ab:51:8a:1a:24:0e:7a:62:59:aa:c6:
- 42:9e:66:c1:61:5e:31:b1:4d:dc:37:a9:18:76:8d:
- fe:cb:09:54:3f:4f:bb:5f:ab:ba:70:e9:b4:a1:5e:
- a0:69:7e:45:3f:c0:cc:78:e9:f2:74:64:79:c2:6a:
- 16:d0:98:30:82:44:4a:b3:99:2c:66:30:ac:99:82:
- 04:2a:bf:0f:60:89:04:36:fa:29:d3:08:56:61:6a:
- a8:33:40:9a:53:7d:20:a8:51:6f:9b:a0:d9:3e:dc:
- 9a:8b:1d:37:9e:ad:c9:fd:53:a7:04:dc:1f:36:3e:
- d3:65:52:84:24:61:d0:4e:e2:41:60:bf:fb:fd:b2:
- 04:b3:3f:eb:14:99:5e:bc:e8:7d:e9:65:d1:3f:fe:
- 04:49:e5:bb:a3:2d:e3:db:96:df:d9:81:a0:32:d7:
- 01:b9:b8:02:8e:b9:a2:1f:0a:d4:24:17:3a:19:0f:
- 6d:3a:10:5f:5c:7d:b8:56:82:c7:7f:40:f0:2d:87:
- 63:c1:b1:d8:64:c7:3c:27:13:4a:63:82:21:b1:f2:
- 39:e9
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 18:6D:44:83:EE:1F:EC:B4:22:F0:9C:EB:54:1E:4A:15:58:01:AA:13
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:2
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 61:c0:d8:c4:02:cd:b4:54:d3:44:e9:06:78:0b:a2:16:b5:4a:
- b6:b5:09:f1:d1:fc:9f:be:e5:12:0b:6c:61:8d:66:3f:ce:8f:
- 95:98:24:ea:d2:99:3a:4f:89:e3:2d:a9:f7:69:cb:05:9e:90:
- af:5a:f1:93:ac:ee:fe:78:f8:e3:22:fa:69:7f:e4:71:1d:c9:
- 1e:ac:61:81:8d:93:33:bc:b2:e4:67:75:97:9d:af:0a:db:ab:
- 24:3f:8d:1d:16:c6:05:c6:89:a7:5f:cf:2d:73:39:de:8f:40:
- 94:4b:7a:a4:ea:35:1e:70:ce:3a:f5:75:76:e5:ab:e4:8a:9a:
- a4:a1:ec:49:59:3d:b7:23:fa:3c:af:dd:09:d7:aa:47:60:11:
- 07:07:f4:8b:a1:40:b2:d9:bb:0f:88:b8:d1:a5:e2:88:22:76:
- 8b:45:d6:96:2c:45:11:98:04:85:22:99:1f:49:a7:30:b0:b0:
- 74:c3:ea:1a:a6:53:ed:c9:48:40:1a:d8:02:a8:fb:35:3a:f7:
- 69:42:b2:75:dd:98:41:30:a9:e3:b1:ec:c6:66:f1:61:16:5b:
- f6:e3:bc:31:8e:46:66:fa:39:34:66:cc:95:1d:69:15:12:41:
- 16:ce:e6:a6:d4:4c:eb:f4:99:b4:6d:66:99:76:ae:5a:e8:24:
- 92:a7:ef:45
------BEGIN CERTIFICATE-----
-MIIEwTCCA6mgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA5WhcNMjIwNzA3MDAyODA5WjCBoTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNoYWluSC1JQ0E0
-LXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Mvis2eh/EB86TALWY21xEuZAjo
-8Zn6ppz0vTtHctIOWJ0+Uufao0N4w8OT5gTTq1GKGiQOemJZqsZCnmbBYV4xsU3c
-N6kYdo3+ywlUP0+7X6u6cOm0oV6gaX5FP8DMeOnydGR5wmoW0JgwgkRKs5ksZjCs
-mYIEKr8PYIkENvop0whWYWqoM0CaU30gqFFvm6DZPtyaix03nq3J/VOnBNwfNj7T
-ZVKEJGHQTuJBYL/7/bIEsz/rFJlevOh96WXRP/4ESeW7oy3j25bf2YGgMtcBubgC
-jrmiHwrUJBc6GQ9tOhBfXH24VoLHf0DwLYdjwbHYZMc8JxNKY4IhsfI56QIDAQAB
-o4IBDTCCAQkwHQYDVR0OBBYEFBhtRIPuH+y0IvCc61QeShVYAaoTMIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MA8GA1UdEwQIMAYBAf8CAQIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUA
-A4IBAQBhwNjEAs20VNNE6QZ4C6IWtUq2tQnx0fyfvuUSC2xhjWY/zo+VmCTq0pk6
-T4njLan3acsFnpCvWvGTrO7+ePjjIvppf+RxHckerGGBjZMzvLLkZ3WXna8K26sk
-P40dFsYFxomnX88tcznej0CUS3qk6jUecM469XV25avkipqkoexJWT23I/o8r90J
-16pHYBEHB/SLoUCy2bsPiLjRpeKIInaLRdaWLEURmASFIpkfSacwsLB0w+oaplPt
-yUhAGtgCqPs1OvdpQrJ13ZhBMKnjsezGZvFhFlv247wxjkZm+jk0ZsyVHWkVEkEW
-zuam1Ezr9Jm0bWaZdq5a6CSSp+9F
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-assembled.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-assembled.pem
deleted file mode 100644
index bbf203142..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-assembled.pem
+++ /dev/null
@@ -1,443 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:10 2019 GMT
- Not After : Jul 7 00:28:10 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:ba:ed:ab:c0:0d:92:6c:10:e4:50:9f:7c:98:cc:
- 87:fd:28:34:77:c0:58:28:52:2c:28:97:80:ec:78:
- 02:4f:f4:ca:60:f8:1d:e7:6a:04:52:2e:75:85:42:
- 74:76:00:e4:70:84:b8:51:8e:29:2e:7f:b6:ad:df:
- 6d:09:b4:4f:11:54:1e:88:16:e2:0e:af:30:f0:3d:
- a7:da:9f:4e:0d:94:5b:05:51:9c:cc:05:65:8d:6b:
- 1e:3c:79:5b:26:7e:cb:ae:e9:9a:71:69:92:41:9b:
- 1a:cd:b4:53:0b:fb:2e:40:c4:e3:b1:5e:b8:8b:f8:
- cf:0a:ec:5f:07:10:18:54:f8:8a:7d:35:97:7a:7a:
- 98:ea:93:2d:1b:e6:44:16:3f:cc:a7:4c:b9:cf:b5:
- 0b:09:47:b3:b8:8e:02:1a:56:69:37:b7:49:a4:59:
- 90:a3:20:88:f3:87:77:e8:39:0d:39:36:a5:56:b3:
- ec:4b:f3:5e:8b:c2:cd:47:0c:d9:56:ce:32:f7:71:
- 33:db:7f:7d:c6:1e:7e:71:c1:01:06:98:9e:52:98:
- 9d:d7:9d:4a:32:94:3c:5a:42:66:00:ca:e2:a3:35:
- db:b7:f3:27:0b:9c:fa:1b:99:4b:51:fa:6c:25:90:
- f5:76:8c:d9:0d:80:8c:ac:61:eb:4d:92:12:6d:5f:
- 12:e5
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- ED:62:FB:8F:91:CB:DE:B0:C8:89:CE:BA:B5:80:A8:47:F1:72:16:05
- X509v3 Authority Key Identifier:
- keyid:48:80:87:28:EF:E6:28:0F:03:9B:DF:33:48:10:A0:E5:20:B3:69:50
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainH-ICA2-pathlen2/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- bc:fc:a7:c3:c9:a4:57:9e:37:9d:f7:71:eb:5b:7c:a2:1a:0d:
- 24:97:12:92:18:fd:0f:5e:5b:f9:27:c9:98:2c:9a:06:bd:77:
- 85:63:3c:a4:ed:90:92:3a:79:41:82:c3:54:66:f6:c6:a0:d3:
- ba:a3:19:93:d9:5f:54:90:fc:2b:37:d1:96:88:ba:be:e1:71:
- 8c:a2:24:d7:ce:d8:7c:5e:87:9f:4f:f2:52:51:1c:82:5b:2c:
- 8b:b4:5d:7e:d6:03:95:a0:e9:29:68:5e:76:18:2b:93:6f:a1:
- 58:a6:f6:35:8b:37:b9:6b:82:5d:3a:8c:bc:a6:bd:18:ca:2f:
- ea:0c:4d:36:7a:58:80:52:9c:b3:fa:a4:2b:0e:97:e6:0f:fc:
- 41:62:6d:45:19:15:6d:3e:16:e5:bc:81:ce:c0:34:d3:b5:d4:
- 0c:54:a5:62:a6:55:57:ad:e8:6f:94:58:cb:31:ff:0f:1c:13:
- 63:82:91:1f:a3:68:f5:9f:9c:d9:dd:54:e0:d0:36:ea:ad:2a:
- 9d:4e:66:be:c7:2f:1a:16:70:be:b4:1b:c5:2d:b2:1b:0c:87:
- 64:10:4d:db:8b:79:5b:2e:10:a4:95:25:7b:be:b2:21:26:47:
- e9:d2:74:c8:34:b1:e3:7b:73:8c:93:7a:82:ce:50:d4:46:34:
- ab:11:71:c0
------BEGIN CERTIFICATE-----
-MIIEtzCCA5+gAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluSC1JQ0ExLXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgxMFoXDTIyMDcwNzAwMjgxMFowgZoxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRYwFAYDVQQD
-DA1jaGFpbkgtZW50aXR5MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29t
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuu2rwA2SbBDkUJ98mMyH
-/Sg0d8BYKFIsKJeA7HgCT/TKYPgd52oEUi51hUJ0dgDkcIS4UY4pLn+2rd9tCbRP
-EVQeiBbiDq8w8D2n2p9ODZRbBVGczAVljWsePHlbJn7LrumacWmSQZsazbRTC/su
-QMTjsV64i/jPCuxfBxAYVPiKfTWXenqY6pMtG+ZEFj/Mp0y5z7ULCUezuI4CGlZp
-N7dJpFmQoyCI84d36DkNOTalVrPsS/Nei8LNRwzZVs4y93Ez2399xh5+ccEBBpie
-Upid151KMpQ8WkJmAMriozXbt/MnC5z6G5lLUfpsJZD1dozZDYCMrGHrTZISbV8S
-5QIDAQABo4H+MIH7MB0GA1UdDgQWBBTtYvuPkcvesMiJzrq1gKhH8XIWBTCBzgYD
-VR0jBIHGMIHDgBRIgIco7+YoDwOb3zNIEKDlILNpUKGBp6SBpDCBoTELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNV
-BAMMFGNoYWluSC1JQ0EyLXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tggFkMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBALz8p8PJ
-pFeeN533cetbfKIaDSSXEpIY/Q9eW/knyZgsmga9d4VjPKTtkJI6eUGCw1Rm9sag
-07qjGZPZX1SQ/Cs30ZaIur7hcYyiJNfO2Hxeh59P8lJRHIJbLIu0XX7WA5Wg6Slo
-XnYYK5NvoVim9jWLN7lrgl06jLymvRjKL+oMTTZ6WIBSnLP6pCsOl+YP/EFibUUZ
-FW0+FuW8gc7ANNO11AxUpWKmVVet6G+UWMsx/w8cE2OCkR+jaPWfnNndVODQNuqt
-Kp1OZr7HLxoWcL60G8UtshsMh2QQTduLeVsuEKSVJXu+siEmR+nSdMg0seN7c4yT
-eoLOUNRGNKsRccA=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA2-pathlen2, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:10 2019 GMT
- Not After : Jul 7 00:28:10 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:c7:f4:a6:7e:f2:cb:4f:6e:04:18:d3:53:d5:cf:
- bf:7e:97:d1:74:94:fe:db:ad:61:3f:12:20:67:f3:
- 10:83:7b:51:43:a3:0c:20:b7:35:63:f1:0a:ee:59:
- 74:82:72:fb:d1:d4:12:71:ec:0e:8f:69:c9:fb:af:
- a7:2f:c4:3b:2c:66:34:ab:ac:80:c2:6d:4a:0e:54:
- fe:f6:3e:3a:00:25:84:a7:cb:42:d5:e8:47:04:94:
- e4:68:c3:f5:32:ad:21:89:d8:5e:f9:88:ee:7d:ce:
- 91:a3:16:fc:87:76:1f:2f:1d:4c:b1:2f:3d:4d:f4:
- 0a:6c:04:fd:49:cf:51:88:49:c4:03:65:63:1e:c8:
- f1:34:1d:44:34:58:af:f5:ec:90:2a:8c:a9:38:7b:
- dc:fa:5f:ed:00:ed:08:53:4d:f7:36:10:ed:71:41:
- aa:e3:bf:e8:5d:ee:4e:36:39:57:7e:f4:fd:c3:f7:
- 8a:52:0f:f1:37:72:2b:ae:90:77:00:d6:7c:ec:ec:
- ee:8d:f8:4b:fb:39:0a:45:49:81:31:41:3f:a9:bb:
- 7b:1c:8a:cf:31:09:c7:94:a7:70:4a:d4:bb:ea:61:
- 3d:9a:a1:8e:1b:8b:02:3b:1f:1f:c4:85:e9:7f:63:
- 0c:ea:e5:91:83:a8:5b:25:34:7c:a8:68:eb:97:6f:
- 74:99
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 48:80:87:28:EF:E6:28:0F:03:9B:DF:33:48:10:A0:E5:20:B3:69:50
- X509v3 Authority Key Identifier:
- keyid:80:49:61:8C:1D:13:08:56:B5:42:68:D5:B2:EA:89:2C:B4:8B:05:87
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainH-ICA3-pathlen2/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:0
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 5f:77:d6:d2:55:4e:25:be:4b:f4:9f:9d:a8:ff:92:ac:4d:19:
- 1f:0b:50:5b:51:01:7f:b8:a2:56:0d:cd:0c:c8:66:7a:08:bf:
- 1e:07:6a:a5:6d:ad:68:c4:bb:da:99:d7:f3:62:bb:b5:28:de:
- 47:dc:e2:b0:e1:27:cd:14:4b:7d:1c:7d:1a:60:eb:37:6f:fc:
- ff:4e:1f:9f:ce:52:da:b4:a7:f4:6c:92:b5:65:b5:8f:53:1b:
- d8:bd:7d:f6:a8:7e:23:9f:7d:b6:09:18:f2:a3:17:55:aa:fe:
- 57:87:3d:a9:18:52:76:6e:fe:7c:ed:2a:85:45:63:d3:4d:7b:
- f2:5e:ff:0f:a7:ae:24:ef:5f:71:66:25:29:31:9e:4a:12:a0:
- 56:5b:39:2c:79:64:d0:1a:fb:97:99:df:42:9c:23:b4:f1:1d:
- be:fc:da:41:16:b1:a0:fc:3a:b8:6e:a7:cf:3c:21:ea:22:7c:
- f6:d2:a1:25:96:1e:b9:2f:eb:bf:61:c2:ee:58:c6:a1:7e:d0:
- 73:e3:fd:58:62:ca:44:95:2b:b1:a8:d0:f8:1a:0d:40:9a:fb:
- b1:27:4b:fc:57:4c:32:b5:09:5e:6e:ac:1d:dc:bc:77:f5:1b:
- 27:88:40:df:70:da:f7:28:32:ef:8f:2e:53:41:78:69:e9:3e:
- 7b:64:da:e4
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluSC1JQ0EyLXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgxMFoXDTIyMDcwNzAwMjgxMFowgaExCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR0wGwYDVQQD
-DBRjaGFpbkgtSUNBMS1wYXRobGVuMDEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xm
-c3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMf0pn7yy09u
-BBjTU9XPv36X0XSU/tutYT8SIGfzEIN7UUOjDCC3NWPxCu5ZdIJy+9HUEnHsDo9p
-yfuvpy/EOyxmNKusgMJtSg5U/vY+OgAlhKfLQtXoRwSU5GjD9TKtIYnYXvmI7n3O
-kaMW/Id2Hy8dTLEvPU30CmwE/UnPUYhJxANlYx7I8TQdRDRYr/XskCqMqTh73Ppf
-7QDtCFNN9zYQ7XFBquO/6F3uTjY5V370/cP3ilIP8TdyK66QdwDWfOzs7o34S/s5
-CkVJgTFBP6m7exyKzzEJx5SncErUu+phPZqhjhuLAjsfH8SF6X9jDOrlkYOoWyU0
-fKho65dvdJkCAwEAAaOCARIwggEOMB0GA1UdDgQWBBRIgIco7+YoDwOb3zNIEKDl
-ILNpUDCBzgYDVR0jBIHGMIHDgBSASWGMHRMIVrVCaNWy6okstIsFh6GBp6SBpDCB
-oTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1Nl
-YXR0bGUxFTATBgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJp
-bmcxHTAbBgNVBAMMFGNoYWluSC1JQ0EzLXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkB
-FhBpbmZvQHdvbGZzc2wuY29tggFkMA8GA1UdEwQIMAYBAf8CAQAwCwYDVR0PBAQD
-AgEGMA0GCSqGSIb3DQEBCwUAA4IBAQBfd9bSVU4lvkv0n52o/5KsTRkfC1BbUQF/
-uKJWDc0MyGZ6CL8eB2qlba1oxLvamdfzYru1KN5H3OKw4SfNFEt9HH0aYOs3b/z/
-Th+fzlLatKf0bJK1ZbWPUxvYvX32qH4jn322CRjyoxdVqv5Xhz2pGFJ2bv587SqF
-RWPTTXvyXv8Pp64k719xZiUpMZ5KEqBWWzkseWTQGvuXmd9CnCO08R2+/NpBFrGg
-/Dq4bqfPPCHqInz20qEllh65L+u/YcLuWMahftBz4/1YYspElSuxqND4Gg1Amvux
-J0v8V0wytQlebqwd3Lx39RsniEDfcNr3KDLvjy5TQXhp6T57ZNrk
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA3-pathlen2, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA2-pathlen2, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d9:b5:af:4b:ba:83:03:23:df:50:28:a8:c2:0c:
- 2c:f0:04:cb:2d:04:9b:1e:f5:f4:68:bc:d4:8e:b4:
- cd:46:04:a2:f5:14:9e:3e:33:d6:76:2d:54:f9:d5:
- 41:b5:7a:47:93:1a:54:80:a4:3d:8b:9d:80:ea:1c:
- 3a:3a:bb:d1:d4:b6:f1:f2:a3:bd:9e:5d:b8:85:01:
- d7:c8:a0:27:f6:67:41:94:c5:95:91:11:cb:96:fc:
- 95:a9:bc:b5:be:58:77:5c:2b:9b:e9:24:7e:8b:6e:
- 10:a7:d5:3a:fa:05:21:27:14:d8:d2:5f:a2:58:12:
- b4:d9:bd:88:1a:f1:e7:4c:9d:60:31:0b:1f:3f:8b:
- af:3a:d9:ca:cf:d4:73:1b:b8:b0:3d:d5:96:5d:4e:
- a3:62:8f:56:eb:3d:4c:f0:21:4f:f4:8c:c7:55:dd:
- a6:dc:d9:15:a1:12:db:73:4d:bf:18:89:42:92:0e:
- 83:be:4f:aa:ee:8f:a8:ef:a1:27:01:73:16:29:c0:
- e8:8c:23:c8:ff:95:68:cd:53:67:49:e5:73:b1:ec:
- 62:60:51:20:e8:a6:49:28:f5:2b:16:30:e8:8b:a6:
- 2f:f4:b7:37:99:8c:32:30:97:5d:16:bf:6b:5e:ba:
- 34:1f:d6:1b:2e:fc:79:f0:00:61:aa:a0:7a:2f:7b:
- d2:83
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 80:49:61:8C:1D:13:08:56:B5:42:68:D5:B2:EA:89:2C:B4:8B:05:87
- X509v3 Authority Key Identifier:
- keyid:56:54:36:BE:23:2F:20:89:6D:A6:BA:9A:45:A4:88:0E:40:35:FD:F5
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainH-ICA4-pathlen2/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:2
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 16:6f:a3:cd:f6:de:87:1c:86:f8:b4:b8:e6:e0:dc:11:2f:f3:
- bb:f1:57:34:ec:1a:59:8a:81:63:40:01:df:53:24:a7:50:b0:
- 6d:3d:29:2a:41:e7:08:71:0f:37:4b:10:b5:95:ae:a0:81:ba:
- ba:b5:3e:72:48:be:6b:9e:be:34:3b:0d:15:f8:8f:9d:24:68:
- 01:0c:d4:4a:0d:86:d5:b3:71:b6:d6:8e:71:44:16:7e:e3:db:
- ba:7d:0e:5f:b3:2f:e2:60:f9:ff:bc:91:a6:ae:3c:ba:30:e4:
- f5:55:bf:1e:72:0b:cc:5e:b4:7e:1f:09:aa:b4:52:bd:8c:2c:
- 37:d0:0d:82:b4:ec:ff:c1:cf:91:a2:43:24:b8:b4:c0:ac:f2:
- 29:eb:84:1d:49:ef:a4:8f:65:b3:06:01:2f:23:cf:a6:27:42:
- cd:99:17:b9:69:40:1d:df:99:f6:f8:c4:61:cc:4a:a1:f0:38:
- ce:4e:c4:27:f6:8f:d2:ae:74:5f:39:93:66:77:55:b2:25:8d:
- 7e:7f:7d:b4:2b:f1:ee:83:9e:7b:f5:31:3f:d7:27:53:e6:21:
- bd:69:a5:ca:0e:d8:6e:54:67:56:bf:f3:ec:e8:e1:aa:a4:76:
- fa:0d:42:d4:7d:26:bd:f5:e5:25:ee:81:c4:ed:59:eb:0a:54:
- d3:c9:18:30
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluSC1JQ0EzLXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOVoXDTIyMDcwNzAwMjgwOVowgaExCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR0wGwYDVQQD
-DBRjaGFpbkgtSUNBMi1wYXRobGVuMjEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xm
-c3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANm1r0u6gwMj
-31AoqMIMLPAEyy0Emx719Gi81I60zUYEovUUnj4z1nYtVPnVQbV6R5MaVICkPYud
-gOocOjq70dS28fKjvZ5duIUB18igJ/ZnQZTFlZERy5b8lam8tb5Yd1wrm+kkfotu
-EKfVOvoFIScU2NJfolgStNm9iBrx50ydYDELHz+LrzrZys/Ucxu4sD3Vll1Oo2KP
-Vus9TPAhT/SMx1XdptzZFaES23NNvxiJQpIOg75Pqu6PqO+hJwFzFinA6IwjyP+V
-aM1TZ0nlc7HsYmBRIOimSSj1KxYw6IumL/S3N5mMMjCXXRa/a166NB/WGy78efAA
-Yaqgei970oMCAwEAAaOCARIwggEOMB0GA1UdDgQWBBSASWGMHRMIVrVCaNWy6oks
-tIsFhzCBzgYDVR0jBIHGMIHDgBRWVDa+Iy8giW2muppFpIgOQDX99aGBp6SBpDCB
-oTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1Nl
-YXR0bGUxFTATBgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJp
-bmcxHTAbBgNVBAMMFGNoYWluSC1JQ0E0LXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkB
-FhBpbmZvQHdvbGZzc2wuY29tggFkMA8GA1UdEwQIMAYBAf8CAQIwCwYDVR0PBAQD
-AgEGMA0GCSqGSIb3DQEBCwUAA4IBAQAWb6PN9t6HHIb4tLjm4NwRL/O78Vc07BpZ
-ioFjQAHfUySnULBtPSkqQecIcQ83SxC1la6ggbq6tT5ySL5rnr40Ow0V+I+dJGgB
-DNRKDYbVs3G21o5xRBZ+49u6fQ5fsy/iYPn/vJGmrjy6MOT1Vb8ecgvMXrR+Hwmq
-tFK9jCw30A2CtOz/wc+RokMkuLTArPIp64QdSe+kj2WzBgEvI8+mJ0LNmRe5aUAd
-35n2+MRhzEqh8DjOTsQn9o/SrnRfOZNmd1WyJY1+f320K/Hug5579TE/1ydT5iG9
-aaXKDthuVGdWv/Ps6OGqpHb6DULUfSa99eUl7oHE7VnrClTTyRgw
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA4-pathlen2, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA3-pathlen2, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:b7:b3:1a:1b:4a:80:1b:a2:e5:95:14:bc:55:e4:
- 77:dc:f3:7b:8a:9f:34:7c:93:db:c9:c9:d0:8b:b8:
- 87:45:65:d3:a1:7d:46:f3:70:92:a9:d7:66:ef:3b:
- b4:a8:16:b0:f0:be:67:70:aa:45:7b:09:bc:ca:77:
- db:57:a4:24:54:0b:1a:da:5f:ad:64:a3:f1:49:83:
- bc:9f:5d:c4:b4:da:43:04:aa:cc:c3:b0:4d:c2:f1:
- 73:c9:38:0d:4c:c9:ab:db:df:09:b3:5c:15:0b:66:
- 79:ad:6c:63:d1:38:cc:a6:2d:46:83:ce:19:1d:c1:
- 0b:6e:fc:38:b7:d8:8c:a2:6f:29:87:9b:21:cd:b0:
- 6b:e0:f8:1f:03:db:82:1d:8d:98:63:16:b6:74:47:
- 43:20:f2:a1:4b:16:8b:67:fd:bc:73:78:9b:f9:dd:
- ba:49:d9:60:a9:b7:85:66:7f:a4:2a:05:c8:2d:93:
- a0:9b:aa:bf:a6:31:e1:f2:c8:d3:1b:7b:79:d1:b6:
- 6c:ae:3b:6b:00:2e:6e:ae:10:dc:6c:88:dc:1b:93:
- e8:56:99:8d:46:7e:49:3a:87:a0:b3:00:cc:2e:3b:
- 83:e1:6b:39:16:71:47:47:30:6d:6b:6c:9c:9f:e6:
- ce:ec:20:2f:8f:c1:5d:ef:d3:84:32:6c:a5:cc:78:
- fe:a1
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 56:54:36:BE:23:2F:20:89:6D:A6:BA:9A:45:A4:88:0E:40:35:FD:F5
- X509v3 Authority Key Identifier:
- keyid:18:6D:44:83:EE:1F:EC:B4:22:F0:9C:EB:54:1E:4A:15:58:01:AA:13
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:2
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 2a:35:ca:d5:dd:97:31:4d:29:21:90:67:ba:68:ef:2a:56:b0:
- 08:0a:c5:a2:cc:30:11:71:59:1b:59:2b:ca:c4:cc:22:52:d7:
- f3:a7:d2:14:c5:fc:e4:c5:6f:9d:45:ce:7f:d0:dd:ec:5f:6b:
- c3:d1:78:7a:29:bb:73:98:b6:15:9b:41:37:7a:50:b3:04:1d:
- 72:90:9b:e9:f2:4b:68:f3:60:e9:bb:34:6e:2a:6c:6c:50:a6:
- 38:ac:61:bc:ca:25:23:f5:f5:70:3a:8a:33:94:cf:97:1c:5c:
- a3:76:b0:7b:88:35:8a:6e:18:44:01:e6:80:23:e9:14:ea:66:
- 56:34:9a:0b:ca:1a:37:c8:e7:00:03:39:7d:73:e5:13:cb:be:
- 9e:df:c6:87:c3:24:a7:7f:39:1d:cc:ca:1f:e7:14:38:fe:3d:
- 06:7a:2f:95:f3:9a:79:49:e9:9c:f3:72:e5:b4:b5:fb:87:13:
- 83:4f:9f:76:2f:41:8f:a4:55:1d:e4:74:2f:0a:0f:cd:ee:a8:
- 50:06:1e:a7:9e:25:9f:f3:9d:b2:c1:44:de:c5:44:3e:42:64:
- e1:75:16:33:56:a7:93:68:bb:fa:96:46:33:de:58:c1:81:42:
- ca:1c:28:4f:09:71:db:60:e1:88:ac:d6:0d:37:3a:63:8d:50:
- b7:35:2d:e5
------BEGIN CERTIFICATE-----
-MIIExjCCA66gAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluSC1JQ0E0LXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgwOVoXDTIyMDcwNzAwMjgwOVowgaExCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR0wGwYDVQQD
-DBRjaGFpbkgtSUNBMy1wYXRobGVuMjEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xm
-c3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALezGhtKgBui
-5ZUUvFXkd9zze4qfNHyT28nJ0Iu4h0Vl06F9RvNwkqnXZu87tKgWsPC+Z3CqRXsJ
-vMp321ekJFQLGtpfrWSj8UmDvJ9dxLTaQwSqzMOwTcLxc8k4DUzJq9vfCbNcFQtm
-ea1sY9E4zKYtRoPOGR3BC278OLfYjKJvKYebIc2wa+D4HwPbgh2NmGMWtnRHQyDy
-oUsWi2f9vHN4m/nduknZYKm3hWZ/pCoFyC2ToJuqv6Yx4fLI0xt7edG2bK47awAu
-bq4Q3GyI3BuT6FaZjUZ+STqHoLMAzC47g+FrORZxR0cwbWtsnJ/mzuwgL4/BXe/T
-hDJspcx4/qECAwEAAaOCAQUwggEBMB0GA1UdDgQWBBRWVDa+Iy8giW2muppFpIgO
-QDX99TCBwQYDVR0jBIG5MIG2gBQYbUSD7h/stCLwnOtUHkoVWAGqE6GBmqSBlzCB
-lDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVt
-YW4xETAPBgNVBAoMCFNhd3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYD
-VQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb22CAWQwDwYDVR0TBAgwBgEB/wIBAjALBgNVHQ8EBAMCAQYwDQYJKoZIhvcN
-AQELBQADggEBACo1ytXdlzFNKSGQZ7po7ypWsAgKxaLMMBFxWRtZK8rEzCJS1/On
-0hTF/OTFb51Fzn/Q3exfa8PReHopu3OYthWbQTd6ULMEHXKQm+nyS2jzYOm7NG4q
-bGxQpjisYbzKJSP19XA6ijOUz5ccXKN2sHuINYpuGEQB5oAj6RTqZlY0mgvKGjfI
-5wADOX1z5RPLvp7fxofDJKd/OR3Myh/nFDj+PQZ6L5XzmnlJ6ZzzcuW0tfuHE4NP
-n3YvQY+kVR3kdC8KD83uqFAGHqeeJZ/znbLBRN7FRD5CZOF1FjNWp5Nou/qWRjPe
-WMGBQsocKE8Jcdtg4Yis1g03OmONULc1LeU=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:09 2019 GMT
- Not After : Jul 7 00:28:09 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA4-pathlen2, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:bb:f3:2f:8a:cd:9e:87:f1:01:f3:a4:c0:2d:66:
- 36:d7:11:2e:64:08:e8:f1:99:fa:a6:9c:f4:bd:3b:
- 47:72:d2:0e:58:9d:3e:52:e7:da:a3:43:78:c3:c3:
- 93:e6:04:d3:ab:51:8a:1a:24:0e:7a:62:59:aa:c6:
- 42:9e:66:c1:61:5e:31:b1:4d:dc:37:a9:18:76:8d:
- fe:cb:09:54:3f:4f:bb:5f:ab:ba:70:e9:b4:a1:5e:
- a0:69:7e:45:3f:c0:cc:78:e9:f2:74:64:79:c2:6a:
- 16:d0:98:30:82:44:4a:b3:99:2c:66:30:ac:99:82:
- 04:2a:bf:0f:60:89:04:36:fa:29:d3:08:56:61:6a:
- a8:33:40:9a:53:7d:20:a8:51:6f:9b:a0:d9:3e:dc:
- 9a:8b:1d:37:9e:ad:c9:fd:53:a7:04:dc:1f:36:3e:
- d3:65:52:84:24:61:d0:4e:e2:41:60:bf:fb:fd:b2:
- 04:b3:3f:eb:14:99:5e:bc:e8:7d:e9:65:d1:3f:fe:
- 04:49:e5:bb:a3:2d:e3:db:96:df:d9:81:a0:32:d7:
- 01:b9:b8:02:8e:b9:a2:1f:0a:d4:24:17:3a:19:0f:
- 6d:3a:10:5f:5c:7d:b8:56:82:c7:7f:40:f0:2d:87:
- 63:c1:b1:d8:64:c7:3c:27:13:4a:63:82:21:b1:f2:
- 39:e9
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 18:6D:44:83:EE:1F:EC:B4:22:F0:9C:EB:54:1E:4A:15:58:01:AA:13
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:2
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 61:c0:d8:c4:02:cd:b4:54:d3:44:e9:06:78:0b:a2:16:b5:4a:
- b6:b5:09:f1:d1:fc:9f:be:e5:12:0b:6c:61:8d:66:3f:ce:8f:
- 95:98:24:ea:d2:99:3a:4f:89:e3:2d:a9:f7:69:cb:05:9e:90:
- af:5a:f1:93:ac:ee:fe:78:f8:e3:22:fa:69:7f:e4:71:1d:c9:
- 1e:ac:61:81:8d:93:33:bc:b2:e4:67:75:97:9d:af:0a:db:ab:
- 24:3f:8d:1d:16:c6:05:c6:89:a7:5f:cf:2d:73:39:de:8f:40:
- 94:4b:7a:a4:ea:35:1e:70:ce:3a:f5:75:76:e5:ab:e4:8a:9a:
- a4:a1:ec:49:59:3d:b7:23:fa:3c:af:dd:09:d7:aa:47:60:11:
- 07:07:f4:8b:a1:40:b2:d9:bb:0f:88:b8:d1:a5:e2:88:22:76:
- 8b:45:d6:96:2c:45:11:98:04:85:22:99:1f:49:a7:30:b0:b0:
- 74:c3:ea:1a:a6:53:ed:c9:48:40:1a:d8:02:a8:fb:35:3a:f7:
- 69:42:b2:75:dd:98:41:30:a9:e3:b1:ec:c6:66:f1:61:16:5b:
- f6:e3:bc:31:8e:46:66:fa:39:34:66:cc:95:1d:69:15:12:41:
- 16:ce:e6:a6:d4:4c:eb:f4:99:b4:6d:66:99:76:ae:5a:e8:24:
- 92:a7:ef:45
------BEGIN CERTIFICATE-----
-MIIEwTCCA6mgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MDAyODA5WhcNMjIwNzA3MDAyODA5WjCBoTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNoYWluSC1JQ0E0
-LXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Mvis2eh/EB86TALWY21xEuZAjo
-8Zn6ppz0vTtHctIOWJ0+Uufao0N4w8OT5gTTq1GKGiQOemJZqsZCnmbBYV4xsU3c
-N6kYdo3+ywlUP0+7X6u6cOm0oV6gaX5FP8DMeOnydGR5wmoW0JgwgkRKs5ksZjCs
-mYIEKr8PYIkENvop0whWYWqoM0CaU30gqFFvm6DZPtyaix03nq3J/VOnBNwfNj7T
-ZVKEJGHQTuJBYL/7/bIEsz/rFJlevOh96WXRP/4ESeW7oy3j25bf2YGgMtcBubgC
-jrmiHwrUJBc6GQ9tOhBfXH24VoLHf0DwLYdjwbHYZMc8JxNKY4IhsfI56QIDAQAB
-o4IBDTCCAQkwHQYDVR0OBBYEFBhtRIPuH+y0IvCc61QeShVYAaoTMIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MA8GA1UdEwQIMAYBAf8CAQIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUA
-A4IBAQBhwNjEAs20VNNE6QZ4C6IWtUq2tQnx0fyfvuUSC2xhjWY/zo+VmCTq0pk6
-T4njLan3acsFnpCvWvGTrO7+ePjjIvppf+RxHckerGGBjZMzvLLkZ3WXna8K26sk
-P40dFsYFxomnX88tcznej0CUS3qk6jUecM469XV25avkipqkoexJWT23I/o8r90J
-16pHYBEHB/SLoUCy2bsPiLjRpeKIInaLRdaWLEURmASFIpkfSacwsLB0w+oaplPt
-yUhAGtgCqPs1OvdpQrJ13ZhBMKnjsezGZvFhFlv247wxjkZm+jk0ZsyVHWkVEkEW
-zuam1Ezr9Jm0bWaZdq5a6CSSp+9F
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-entity-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-entity-key.pem
deleted file mode 100644
index 4b374bc49..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-entity-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEogIBAAKCAQEAuu2rwA2SbBDkUJ98mMyH/Sg0d8BYKFIsKJeA7HgCT/TKYPgd
-52oEUi51hUJ0dgDkcIS4UY4pLn+2rd9tCbRPEVQeiBbiDq8w8D2n2p9ODZRbBVGc
-zAVljWsePHlbJn7LrumacWmSQZsazbRTC/suQMTjsV64i/jPCuxfBxAYVPiKfTWX
-enqY6pMtG+ZEFj/Mp0y5z7ULCUezuI4CGlZpN7dJpFmQoyCI84d36DkNOTalVrPs
-S/Nei8LNRwzZVs4y93Ez2399xh5+ccEBBpieUpid151KMpQ8WkJmAMriozXbt/Mn
-C5z6G5lLUfpsJZD1dozZDYCMrGHrTZISbV8S5QIDAQABAoIBAE9VKz05BVmD2cI1
-zcVzmItiktH3+fIy3bbkhbzWOfUBKRr6coaSQf825H2H9LFYM5tlWGyUbvnjDf7B
-Ah/KPHxYPRT40Tv2MkjjgeeREKlGu1KIjokwCSd5vL1hq8OssHktf3R+n6nkT/3Z
-eB1vnvOyHAhc8OnG0OgL5VC0Df+ROj1gT8wgU2HUcMQj4A+TaSsEC6DHfHpASLZ+
-prpLyrAiNStQqGmt3hZhgnCaezeQkEAHUSIvqQ9KLBXjgwzXRgEWk5JZSv00z8RA
-dK3pJAlyVDhC7Lz5eSs8GWIPMmfM9DTFDICdBOnaCCGeBiWVKu7LQxWTCYZbYGjJ
-Txurx4kCgYEA4gG6oTgI1CRwcVfOpVCX/Il5F3Lsro20/MmXjCl1DXZA18eEjLHd
-v5AZuGybGUhXq4AtM5CdeUw0Jw0+lASm94sjhK7+S+Slb1SpVAzrkbPuzBuvMtqT
-63x/RVX9WX3GkGcdsB05/f6mBPGwSYin8ruvST5o/dcBQgQEAbXLcZMCgYEA07xO
-5pvVHwIvJ0NqGsX94cQO4jZRbx0wNFu9ztx6vkHxNtBtO86+Sb68b0KBxZuIlsK9
-3HwUDpov1eIv+Mb3qHf8uEb8XmxrFBLyl+nF60JTUrteBWDj7e9nYGA1VYoYdrAC
-kiQt4dGGJwfRv8P/JpbNa0egX9yj9DAeIJNllKcCgYBcvdLkx0awLwfJKvwMUGcd
-5RfArJM9Cb9kICFFDdoPnR/8q83TokVZj3tOd5qppEr9gEqMJ2LHXKLmB4RPXx1Y
-5Uq87sZBRGEyry4Q5IBiONDcBtw85P7gGiVrwV6GM5ugs/+1vjiG5tEfpEHv2tj4
-PVYvmyGgUHMesOEoBn6mawKBgFtnu5gKReLxCnIkxDVyq7s+7D3zvQv+ycSQpkwb
-GlHwHbXQHJfpFHS5hpdxWpx4HGsY/uWkGvSC04u97X+0RU3RHqRe4KvSmhc8ZsX2
-AZ8iLt5UTK59uWgKJdKRNfULfKwgJ7v3KmeGECfhVEc40XlTOLLLZQx9L7pG23qs
-pvmZAoGAdIcADYC134Bqz9MSVKT3sZHeK12Bw8t3v3nIWB4+wAjz8960/j3ODRkI
-KaJxVhbLFq8tZQ3jHy60rF6SE3491YUvV/ilVWzsd8oyhJL3K+Zw18vE/PwhanQn
-xtW8pUplONwot++5iZFrUv51f2AnQWgMEk1wEQN8UrgFE1SvuxY=
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-entity.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-entity.pem
deleted file mode 100644
index b125341e5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainH-entity.pem
+++ /dev/null
@@ -1,87 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-ICA1-pathlen0, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 00:28:10 2019 GMT
- Not After : Jul 7 00:28:10 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainH-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:ba:ed:ab:c0:0d:92:6c:10:e4:50:9f:7c:98:cc:
- 87:fd:28:34:77:c0:58:28:52:2c:28:97:80:ec:78:
- 02:4f:f4:ca:60:f8:1d:e7:6a:04:52:2e:75:85:42:
- 74:76:00:e4:70:84:b8:51:8e:29:2e:7f:b6:ad:df:
- 6d:09:b4:4f:11:54:1e:88:16:e2:0e:af:30:f0:3d:
- a7:da:9f:4e:0d:94:5b:05:51:9c:cc:05:65:8d:6b:
- 1e:3c:79:5b:26:7e:cb:ae:e9:9a:71:69:92:41:9b:
- 1a:cd:b4:53:0b:fb:2e:40:c4:e3:b1:5e:b8:8b:f8:
- cf:0a:ec:5f:07:10:18:54:f8:8a:7d:35:97:7a:7a:
- 98:ea:93:2d:1b:e6:44:16:3f:cc:a7:4c:b9:cf:b5:
- 0b:09:47:b3:b8:8e:02:1a:56:69:37:b7:49:a4:59:
- 90:a3:20:88:f3:87:77:e8:39:0d:39:36:a5:56:b3:
- ec:4b:f3:5e:8b:c2:cd:47:0c:d9:56:ce:32:f7:71:
- 33:db:7f:7d:c6:1e:7e:71:c1:01:06:98:9e:52:98:
- 9d:d7:9d:4a:32:94:3c:5a:42:66:00:ca:e2:a3:35:
- db:b7:f3:27:0b:9c:fa:1b:99:4b:51:fa:6c:25:90:
- f5:76:8c:d9:0d:80:8c:ac:61:eb:4d:92:12:6d:5f:
- 12:e5
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- ED:62:FB:8F:91:CB:DE:B0:C8:89:CE:BA:B5:80:A8:47:F1:72:16:05
- X509v3 Authority Key Identifier:
- keyid:48:80:87:28:EF:E6:28:0F:03:9B:DF:33:48:10:A0:E5:20:B3:69:50
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainH-ICA2-pathlen2/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- bc:fc:a7:c3:c9:a4:57:9e:37:9d:f7:71:eb:5b:7c:a2:1a:0d:
- 24:97:12:92:18:fd:0f:5e:5b:f9:27:c9:98:2c:9a:06:bd:77:
- 85:63:3c:a4:ed:90:92:3a:79:41:82:c3:54:66:f6:c6:a0:d3:
- ba:a3:19:93:d9:5f:54:90:fc:2b:37:d1:96:88:ba:be:e1:71:
- 8c:a2:24:d7:ce:d8:7c:5e:87:9f:4f:f2:52:51:1c:82:5b:2c:
- 8b:b4:5d:7e:d6:03:95:a0:e9:29:68:5e:76:18:2b:93:6f:a1:
- 58:a6:f6:35:8b:37:b9:6b:82:5d:3a:8c:bc:a6:bd:18:ca:2f:
- ea:0c:4d:36:7a:58:80:52:9c:b3:fa:a4:2b:0e:97:e6:0f:fc:
- 41:62:6d:45:19:15:6d:3e:16:e5:bc:81:ce:c0:34:d3:b5:d4:
- 0c:54:a5:62:a6:55:57:ad:e8:6f:94:58:cb:31:ff:0f:1c:13:
- 63:82:91:1f:a3:68:f5:9f:9c:d9:dd:54:e0:d0:36:ea:ad:2a:
- 9d:4e:66:be:c7:2f:1a:16:70:be:b4:1b:c5:2d:b2:1b:0c:87:
- 64:10:4d:db:8b:79:5b:2e:10:a4:95:25:7b:be:b2:21:26:47:
- e9:d2:74:c8:34:b1:e3:7b:73:8c:93:7a:82:ce:50:d4:46:34:
- ab:11:71:c0
------BEGIN CERTIFICATE-----
-MIIEtzCCA5+gAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluSC1JQ0ExLXBhdGhsZW4wMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTAwMjgxMFoXDTIyMDcwNzAwMjgxMFowgZoxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRYwFAYDVQQD
-DA1jaGFpbkgtZW50aXR5MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29t
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuu2rwA2SbBDkUJ98mMyH
-/Sg0d8BYKFIsKJeA7HgCT/TKYPgd52oEUi51hUJ0dgDkcIS4UY4pLn+2rd9tCbRP
-EVQeiBbiDq8w8D2n2p9ODZRbBVGczAVljWsePHlbJn7LrumacWmSQZsazbRTC/su
-QMTjsV64i/jPCuxfBxAYVPiKfTWXenqY6pMtG+ZEFj/Mp0y5z7ULCUezuI4CGlZp
-N7dJpFmQoyCI84d36DkNOTalVrPsS/Nei8LNRwzZVs4y93Ez2399xh5+ccEBBpie
-Upid151KMpQ8WkJmAMriozXbt/MnC5z6G5lLUfpsJZD1dozZDYCMrGHrTZISbV8S
-5QIDAQABo4H+MIH7MB0GA1UdDgQWBBTtYvuPkcvesMiJzrq1gKhH8XIWBTCBzgYD
-VR0jBIHGMIHDgBRIgIco7+YoDwOb3zNIEKDlILNpUKGBp6SBpDCBoTELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNV
-BAMMFGNoYWluSC1JQ0EyLXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tggFkMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBALz8p8PJ
-pFeeN533cetbfKIaDSSXEpIY/Q9eW/knyZgsmga9d4VjPKTtkJI6eUGCw1Rm9sag
-07qjGZPZX1SQ/Cs30ZaIur7hcYyiJNfO2Hxeh59P8lJRHIJbLIu0XX7WA5Wg6Slo
-XnYYK5NvoVim9jWLN7lrgl06jLymvRjKL+oMTTZ6WIBSnLP6pCsOl+YP/EFibUUZ
-FW0+FuW8gc7ANNO11AxUpWKmVVet6G+UWMsx/w8cE2OCkR+jaPWfnNndVODQNuqt
-Kp1OZr7HLxoWcL60G8UtshsMh2QQTduLeVsuEKSVJXu+siEmR+nSdMg0seN7c4yT
-eoLOUNRGNKsRccA=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA1-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA1-key.pem
deleted file mode 100644
index 6b05b9f49..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA1-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpgIBAAKCAQEAu7oGrRPP2vvRy2X+JlhJagEUpniyLB26utC9JzhmfKAbKAg8
-av34h75Jou048kywi5P/0sU/zQPFFHnodmN6qqdUHg4nvRu+6D8rVUDwWSPYP+gF
-Ggtx8P0k2fkLmSXar5Y07uGRy/yPoEGPnOFPV1+21lVpb8NkwxGpaUCF3/OaWbXu
-kMAi7nIoLtPaZSc7ukLAnnO6ovJFE3rFHTClt9t1XW/MCHeAZ40YKsoCjY7TnCr6
-t48bfe9id6T6tthaPmacPhNFqM9h+/9BRRQh4mOsgU1liePVcSABGXbspBam7zy8
-8qJWKwcxZw3ll4jo28tNmMuZ5uC9YkgrsQQSBwIDAQABAoIBAQCiKVvC/q46l/Tu
-IricHv+r1iskcnZWrYe0AMSksI+3cAaFWjf2pFSfzbyGRS1AAQcwSzRduY4XZv5D
-ZdttCRnZeJmtLMUfEmyi6o5gIqx8E/6llaNykBho+ANxVzSxooV5z+MBx1DOSOk4
-oemQtwB2lXO3Sii+JqdP6l3RUa9Td/khmGLGCo0/8Htlw5a+lWYRzkGK4DbTxFxM
-V6Nk58ZjWv/rM4rsRlStfvhNlKKP74tTromI37/Znx3QH1FugZ5u3fd1LDCLsxLU
-d684plIKNZE6QiG7zQ+viyviFEvJ6PPo3Tc/x8bAQ/SS23e9obRzqqU4nRbXfSrU
-rnHNrWlBAoGBAPlzL3Od/5/3GKvx7EJGU1v46kIxJwog8zGHvTSloz5b18+UVHBo
-3YuyfDlq7OL61H+2+wE05o9uo/FrZi7VS2XK/Qofv39hAVxlz/BiigEcggSzLXs9
-k9QFqXBvJ/TylmVU25GPisF2mP2tKKbL6P98J6jGKo2cEF24tM1gLq6fAoGBAMCn
-7xBKSsed/J/TM+fFM2TeZMKvo3fbLJFFy1k95DYgsoIIncyaJrZy9KmomSp6SAhh
-lqeqKCeqOTF9asLrUotbbQPcJQucyLqKnX3Zq2E338JALDJxSjg97DG3KxKLS7PI
-3Fk3uK35PkPUctOjC/Ep0DVwosAxePrZcuzilyuZAoGBAJ5rdaZSoGZiEgwZHzdT
-3FrbsUKKXsXC+U/qadIGo67VuzA8fofJQXIXz2bTrk/UhqH5fl1c0FQlKv8GeyWh
-Fjo2eQ817HMkEy4wBqgenJBqH3SGqorLJ5gOZHZgUZrxeWwvQSanZ7LH9A+fKeMM
-OxQOME2yVJIMnCQ5SrHntJ33AoGBAKWQbImCXwt3gT/U4JmAxm8cFFmfWYtKRt29
-rkjOQI4nwWCwiPPpUfWfixU2eBKiLb9OJouGVqXnyuj2EEbctv5eHqyfhxKYtYRi
-VYBvDLIqs1gbkB/1bkQxKwd6k0CHhxJFPuBJW6PfO5xNOjUYvM2PEoiqeKNUoNRr
-BTIAdMuZAoGBAMlyqDi5jbcZ53PE9PrwSepUOaOVIKlCAUwQlol+aAtlGGQksYM0
-HPoYXZsx+XzHBtXed5E+OvOY6zxfgtkal03RrleUQo7rJArL3cxOunPODzjemEJq
-qysAp0Dnk+PenIabUfv9McAFQ9Sr8WG4K6xZTgedeTU194ZQw2BJeq8E
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA1-no_pathlen.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA1-no_pathlen.pem
deleted file mode 100644
index 0013267db..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA1-no_pathlen.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainI-ICA2-no_pathlen, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainI-ICA1-no_pathlen, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:bb:ba:06:ad:13:cf:da:fb:d1:cb:65:fe:26:58:
- 49:6a:01:14:a6:78:b2:2c:1d:ba:ba:d0:bd:27:38:
- 66:7c:a0:1b:28:08:3c:6a:fd:f8:87:be:49:a2:ed:
- 38:f2:4c:b0:8b:93:ff:d2:c5:3f:cd:03:c5:14:79:
- e8:76:63:7a:aa:a7:54:1e:0e:27:bd:1b:be:e8:3f:
- 2b:55:40:f0:59:23:d8:3f:e8:05:1a:0b:71:f0:fd:
- 24:d9:f9:0b:99:25:da:af:96:34:ee:e1:91:cb:fc:
- 8f:a0:41:8f:9c:e1:4f:57:5f:b6:d6:55:69:6f:c3:
- 64:c3:11:a9:69:40:85:df:f3:9a:59:b5:ee:90:c0:
- 22:ee:72:28:2e:d3:da:65:27:3b:ba:42:c0:9e:73:
- ba:a2:f2:45:13:7a:c5:1d:30:a5:b7:db:75:5d:6f:
- cc:08:77:80:67:8d:18:2a:ca:02:8d:8e:d3:9c:2a:
- fa:b7:8f:1b:7d:ef:62:77:a4:fa:b6:d8:5a:3e:66:
- 9c:3e:13:45:a8:cf:61:fb:ff:41:45:14:21:e2:63:
- ac:81:4d:65:89:e3:d5:71:20:01:19:76:ec:a4:16:
- a6:ef:3c:bc:f2:a2:56:2b:07:31:67:0d:e5:97:88:
- e8:db:cb:4d:98:cb:99:e6:e0:bd:62:48:2b:b1:04:
- 12:07
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 9E:54:B6:95:EA:89:07:A6:C9:E4:82:E8:D0:34:64:5D:08:CD:56:A0
- X509v3 Authority Key Identifier:
- keyid:D1:BA:FB:FF:1D:29:41:8A:6A:5F:B2:F3:A7:41:05:47:09:1F:48:42
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainI-ICA3-pathlen2/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- b3:b8:b9:c2:44:3a:36:0a:cf:fd:da:80:8c:81:54:c1:cd:a6:
- 52:a8:60:b1:f8:fd:62:01:fc:d9:85:89:15:9a:df:45:f0:68:
- 3e:bb:fe:f3:94:dc:1c:69:3c:7c:47:df:04:0c:7b:2f:4f:3f:
- 56:58:9a:fa:1a:4c:16:21:cf:f2:21:a5:f9:d9:49:1b:69:b4:
- 4d:df:d0:c2:d7:2c:fa:0f:23:d6:45:61:12:cd:2a:5a:06:db:
- 22:6f:99:7a:a0:fc:17:ba:05:bc:02:79:db:f8:cd:ec:a0:98:
- 7c:7f:6b:d6:ca:5c:cd:07:89:b6:0d:3e:0b:d3:d7:7f:7c:6b:
- 73:7b:b9:28:69:d2:5f:27:1c:13:60:a0:50:23:16:00:d1:cb:
- 7a:1d:62:7c:a1:c2:63:1d:c9:0b:0f:d7:5c:91:af:7a:5b:93:
- 7e:e5:12:36:f0:3b:fa:59:7b:a8:88:f7:bf:11:19:4b:6a:81:
- 61:77:54:61:a3:73:b6:54:64:92:49:22:c9:6a:19:73:33:6d:
- 01:4c:5a:9c:0a:fa:ce:a1:34:50:b1:54:de:0b:7b:ce:fe:e0:
- 00:fa:8e:7f:48:36:58:ed:98:42:ce:8d:a4:a0:67:c9:88:1c:
- 7f:58:df:fb:62:0f:ee:4b:7d:5a:c7:52:2f:9f:2d:13:13:0b:
- 72:bd:a0:2e
------BEGIN CERTIFICATE-----
-MIIE1DCCA7ygAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluSS1JQ0EyLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMTgzMDMwWhcNMjIwNzA3MTgzMDMwWjCBozELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNV
-BAMMFmNoYWluSS1JQ0ExLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9A
-d29sZnNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7ugat
-E8/a+9HLZf4mWElqARSmeLIsHbq60L0nOGZ8oBsoCDxq/fiHvkmi7TjyTLCLk//S
-xT/NA8UUeeh2Y3qqp1QeDie9G77oPytVQPBZI9g/6AUaC3Hw/STZ+QuZJdqvljTu
-4ZHL/I+gQY+c4U9XX7bWVWlvw2TDEalpQIXf85pZte6QwCLucigu09plJzu6QsCe
-c7qi8kUTesUdMKW323Vdb8wId4BnjRgqygKNjtOcKvq3jxt972J3pPq22Fo+Zpw+
-E0Woz2H7/0FFFCHiY6yBTWWJ49VxIAEZduykFqbvPLzyolYrBzFnDeWXiOjby02Y
-y5nm4L1iSCuxBBIHAgMBAAGjggEPMIIBCzAdBgNVHQ4EFgQUnlS2leqJB6bJ5ILo
-0DRkXQjNVqAwgc4GA1UdIwSBxjCBw4AU0br7/x0pQYpqX7Lzp0EFRwkfSEKhgaek
-gaQwgaExCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH
-DAdTZWF0dGxlMRUwEwYDVQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2lu
-ZWVyaW5nMR0wGwYDVQQDDBRjaGFpbkktSUNBMy1wYXRobGVuMjEfMB0GCSqGSIb3
-DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIBZDAMBgNVHRMEBTADAQH/MAsGA1UdDwQE
-AwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAs7i5wkQ6NgrP/dqAjIFUwc2mUqhgsfj9
-YgH82YWJFZrfRfBoPrv+85TcHGk8fEffBAx7L08/Vlia+hpMFiHP8iGl+dlJG2m0
-Td/Qwtcs+g8j1kVhEs0qWgbbIm+ZeqD8F7oFvAJ52/jN7KCYfH9r1spczQeJtg0+
-C9PXf3xrc3u5KGnSXyccE2CgUCMWANHLeh1ifKHCYx3JCw/XXJGveluTfuUSNvA7
-+ll7qIj3vxEZS2qBYXdUYaNztlRkkkkiyWoZczNtAUxanAr6zqE0ULFU3gt7zv7g
-APqOf0g2WO2YQs6NpKBnyYgcf1jf+2IP7kt9WsdSL58tExMLcr2gLg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA2-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA2-key.pem
deleted file mode 100644
index 1e7788141..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA2-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEoQIBAAKCAQEA3h4IZhL+IAcQG6EnDfkiMIGbzmKxpm1J1O24LUuXdx6UUT1z
-KxbpBelMG4KtR50zMFO1m9It6XvWY/NhIBsjbkcJi8DVCYWm4uQ6TbP53cZ8mkIH
-ItV7Zxg4xPzqjQmAoLBEM/3BqoucmOOVw3RxO3G4s4C/MGOFCSeLErWGsAuZ/5dC
-UqCssjg4jROW2db6j8SJFAacHwqjOqL3H4PYrkFEniGyW7eiGelGWN7loqsHepqa
-YLwU7c9NQvxcKOpC0a7McX5SXYSI3rZ9cm6rc0sNq5KfEbRR2hRUmg7srEL8cYdb
-VDgJLPBdhgw0t5IzXD4ZsU2gYpu0aDY2OOwpswIDAQABAoH/VQcqL+kVXy1U/T6z
-tKWqcOcsvdUKLKupl9lop+5IDVGndXIQpG4gxiKI//8GVmPXNKjW3M+Yw8ikSZ7h
-j2jUJ2MKRHWNGBgRysmTiCtde4iAKo0cLjmLA+xBzycCovsAQoM3mK+Lc73+NIjq
-y+fHcPoXup+OkPeH9fktQ/w5kyonK0Qz7nyb6P9FjFG/f3+WbTaA1FgchELqX00g
-bA6nMHEnhm9MoKKsVZbZKG9gIUCtejrd+YaOBHHWVG47QQI+iFCDrSk2dn8CJq8j
-8w1VD2QkBSWeW1K5QTbQyOwShYKfmpPthy2LAAfC5TNSpeEBRf2uwzi9Vzqa89cX
-UPMBAoGBAPQWwv283d72JaGOEQ+AL32Q5KEydtrzMLzBSHRrb2NhEvq4tev6/Ihl
-jklZ+KuPkxtV/dI0bz/x7JikbQvT3a76zqwv2LbpYJdz8CLqh52dOAhfdkYOCapP
-2FnlHcwWt35kXC11Srb1jnJ40VNxDq3DNYNgGQohrEjVCMNfrb7BAoGBAOj0y3Wz
-TnPhrDzBYmh6+D5/ZVBCnPhkWMV4yYimidAWE0TB7DvEKqQ7gbHmpiOzaWefoRs6
-8qHu02l0EHW6TJUJqSWBMFiEkwnZStEKAw2LCqjLW/xFH/7Yw6Hkpb7Fp9kumh3r
-tkdNZSdT3ETvyFjKrUX7QFYXOLQ+bAdWhrlzAoGAPnZwscQaNwtgd+ZGIWRZQtXI
-XCPw3HjtWPBRXVF88L6Pv89y5o+U/kaW0diPVT/pkk5AJQG8Em4TcMBrE2LFURjn
-uJKJ78zrJfbKVfUUfVYVV7cuKiE/gfDq2Z5TML4DePmvyQZB924BZPPcBXFiIz9Y
-O2VlIv2Y/A5gLrcWXEECgYBTReZRDaaWr+4EzdAirwp8NMf/l8BK3nwJIvNPwNB0
-rN94baXHe4kOqiLjeCKdkm20WBCcDkdbcWbrREz5+H2VrR1kxbiFe+af16fx75VF
-yxUlX4RjOkaEr/HGtlg1SKyGay02UuMWu+jT1RthHSHN861a3cSSwbxIWiP9v4Vr
-VwKBgQDkjIEnH1yzKsAIdxa4Nb3OG3vBIplB3d/PaRzCXNfcrwIj58KcEDKGOSlj
-LKcH42K2wJrpyRH+n87NH5Nt73fRLEQ7IBkb4gA918BPMp6Q5OU99CBld5WO3/F0
-LWDySahHuH4ymEeM45Y+1lZQjc4cQb9/Sbzi1fZsvTQRen3yWw==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA2-no_pathlen.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA2-no_pathlen.pem
deleted file mode 100644
index 4e39c84b6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA2-no_pathlen.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainI-ICA3-pathlen2, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainI-ICA2-no_pathlen, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:de:1e:08:66:12:fe:20:07:10:1b:a1:27:0d:f9:
- 22:30:81:9b:ce:62:b1:a6:6d:49:d4:ed:b8:2d:4b:
- 97:77:1e:94:51:3d:73:2b:16:e9:05:e9:4c:1b:82:
- ad:47:9d:33:30:53:b5:9b:d2:2d:e9:7b:d6:63:f3:
- 61:20:1b:23:6e:47:09:8b:c0:d5:09:85:a6:e2:e4:
- 3a:4d:b3:f9:dd:c6:7c:9a:42:07:22:d5:7b:67:18:
- 38:c4:fc:ea:8d:09:80:a0:b0:44:33:fd:c1:aa:8b:
- 9c:98:e3:95:c3:74:71:3b:71:b8:b3:80:bf:30:63:
- 85:09:27:8b:12:b5:86:b0:0b:99:ff:97:42:52:a0:
- ac:b2:38:38:8d:13:96:d9:d6:fa:8f:c4:89:14:06:
- 9c:1f:0a:a3:3a:a2:f7:1f:83:d8:ae:41:44:9e:21:
- b2:5b:b7:a2:19:e9:46:58:de:e5:a2:ab:07:7a:9a:
- 9a:60:bc:14:ed:cf:4d:42:fc:5c:28:ea:42:d1:ae:
- cc:71:7e:52:5d:84:88:de:b6:7d:72:6e:ab:73:4b:
- 0d:ab:92:9f:11:b4:51:da:14:54:9a:0e:ec:ac:42:
- fc:71:87:5b:54:38:09:2c:f0:5d:86:0c:34:b7:92:
- 33:5c:3e:19:b1:4d:a0:62:9b:b4:68:36:36:38:ec:
- 29:b3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- D1:BA:FB:FF:1D:29:41:8A:6A:5F:B2:F3:A7:41:05:47:09:1F:48:42
- X509v3 Authority Key Identifier:
- keyid:EE:37:A6:F2:40:D0:EF:FD:22:C7:A3:B4:6C:57:47:40:B9:99:F9:8D
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 8f:9b:f7:bd:1a:90:58:f0:ab:0f:1d:45:b2:29:10:66:2d:cc:
- 96:d6:3c:f4:3c:a8:49:e2:cf:db:17:16:8c:e8:76:de:79:c9:
- 42:10:a7:ad:b7:c3:c2:82:93:6b:19:3e:56:af:be:c8:d7:dd:
- ee:87:1d:5f:1d:ad:6a:02:8d:14:22:9f:54:58:d7:d8:16:79:
- 64:4d:eb:55:88:74:74:f6:59:2c:40:9f:d0:f4:a8:36:ea:c9:
- 4f:9c:2b:3a:72:5f:20:2d:25:b3:b2:fb:c1:03:11:ab:57:57:
- d0:55:13:b9:f5:10:09:9e:56:a2:0d:95:3c:16:3e:59:f3:71:
- 60:50:06:53:45:ff:0f:e2:f8:61:5b:d2:fc:0a:65:59:dc:ee:
- 6f:c6:26:c4:7d:27:69:4d:76:55:2f:07:01:3f:30:ea:17:3d:
- bb:8a:f0:df:ae:c8:47:70:0e:b4:28:c9:e9:7b:8c:8a:22:a0:
- ea:32:9b:f8:1e:35:a4:f0:a5:09:81:dc:9a:a4:d1:63:34:9e:
- 3c:32:2f:f3:b1:f0:43:3b:f1:31:9b:8b:99:bf:c2:b4:eb:78:
- 39:a3:e7:d8:2c:e6:6c:f2:8b:2f:21:83:c3:28:1b:77:f3:75:
- 9b:79:f7:f0:73:a0:a2:47:af:93:32:0b:d2:88:04:14:3a:cd:
- 48:7f:58:32
------BEGIN CERTIFICATE-----
-MIIExDCCA6ygAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluSS1JQ0EzLXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTE4MzAzMFoXDTIyMDcwNzE4MzAzMFowgaMxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR8wHQYDVQQD
-DBZjaGFpbkktSUNBMi1ub19wYXRobGVuMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3h4IZhL+
-IAcQG6EnDfkiMIGbzmKxpm1J1O24LUuXdx6UUT1zKxbpBelMG4KtR50zMFO1m9It
-6XvWY/NhIBsjbkcJi8DVCYWm4uQ6TbP53cZ8mkIHItV7Zxg4xPzqjQmAoLBEM/3B
-qoucmOOVw3RxO3G4s4C/MGOFCSeLErWGsAuZ/5dCUqCssjg4jROW2db6j8SJFAac
-HwqjOqL3H4PYrkFEniGyW7eiGelGWN7loqsHepqaYLwU7c9NQvxcKOpC0a7McX5S
-XYSI3rZ9cm6rc0sNq5KfEbRR2hRUmg7srEL8cYdbVDgJLPBdhgw0t5IzXD4ZsU2g
-Ypu0aDY2OOwpswIDAQABo4IBATCB/jAdBgNVHQ4EFgQU0br7/x0pQYpqX7Lzp0EF
-RwkfSEIwgcEGA1UdIwSBuTCBtoAU7jem8kDQ7/0ix6O0bFdHQLmZ+Y2hgZqkgZcw
-gZQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3pl
-bWFuMREwDwYDVQQKDAhTYXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYG
-A1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tggFkMAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEB
-CwUAA4IBAQCPm/e9GpBY8KsPHUWyKRBmLcyW1jz0PKhJ4s/bFxaM6HbeeclCEKet
-t8PCgpNrGT5Wr77I193uhx1fHa1qAo0UIp9UWNfYFnlkTetViHR09lksQJ/Q9Kg2
-6slPnCs6cl8gLSWzsvvBAxGrV1fQVRO59RAJnlaiDZU8Fj5Z83FgUAZTRf8P4vhh
-W9L8CmVZ3O5vxibEfSdpTXZVLwcBPzDqFz27ivDfrshHcA60KMnpe4yKIqDqMpv4
-HjWk8KUJgdyapNFjNJ48Mi/zsfBDO/Exm4uZv8K063g5o+fYLOZs8osvIYPDKBt3
-83Wbeffwc6CiR6+TMgvSiAQUOs1If1gy
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA3-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA3-key.pem
deleted file mode 100644
index 47df99a7f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA3-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAuDYMZqkGzqzgfIahaZ2+KM+jgfO03F/Ikp3yB8BeBNPldBn8
-z4V/95GM1Vh8AkyI8U1D4we9Kk7fUYcpdMUkZx3xb4sHdTmJcCqcAOAubHx0Jxg0
-/SmYQ4PW4VGzE0EcvCnciy+TCJWLkCJL5Jj11nAqm4tk5kkGYqQjCGBol4mpssCU
-jk85HCU7D+TFHX2JiV7GAmlo/BNVtYBrd/dZVwscfsbtRsZw+zShKByCscKrpsHw
-Ext9C7waOSM85x3uyO4vaV+hMT8aL5hdU9dCk9tJrNZ6Ei6dDcmw70DRpAJeUuj7
-1JIHmLF22RYP5Ive3Ihl4P1SHYvi4+0IN9AR9wIDAQABAoIBAFDLI9VC/UFYgX0c
-b18rWGP97fDpOsINIKNtsuHDdXkYluK9IyzBmMa0h9hq3rkDaGytPsEse8M6pKfV
-aFFWxgiUEXiiubqoaadQiOu5Z6MdUrRy4YrH24iBIpXgh3JCdJ/ynFBPpWV2cafd
-4vt4Oxq6R3XBRZfbH3nUE6lw327Wqox7I/t4rYdAVTnyCcSo3MX35K37/xnplLos
-ehyeDMJok+C/y2+jeICs/A89FcTAA6JrNqznE5ZWNBORSKOMJQcscNHWBGZ5vmpH
-jW8WPpMPhtA4q26fz/XI2BwrHRKwsEKsVyULd3bfAEBLQbktuwMMylWsnrw/wzRN
-aD+dbwECgYEA8ZJb0syBWlJD1/+p+1wgtteJ9RSZyXFHLRDglAYUKjVoZqhczSP2
-M/wkkTk71gI54lQBejNAKU+eH+IAsXCQDx3ePxlAlu3JSMaXd8KzgZwBd2rr3iNJ
-grAUoYj9sr237oi2Lyc+vKMS+IUrbkYZKbAtn/D6bp5GkxWscmWt7UcCgYEAwzak
-4J7ZsFWeuomlRfR/FNMidGUBc+J/7wo3NXwTH3PPZisrPv38smD7bc1zi/c7MS7+
-ptJpHApnjqqXf85vBHmH2hkyuIAJ+UYuNs29iAcvu1E9XmE4wz/GdrzxvhdCW/PW
-qFPQAsNCYB/NQi0YQSwABkEIDPTq1F11aXV1TdECgYBcHD9w8FN+OhHuYWjSFD3R
-Gfxbe8Br5AqMr3vCVVMJCRZG1nmUKtss1T6oNReQsYaauwdZLgOP/PDBHW7AObhk
-WzIsAxfytLZkTnzgyFej2vVgMF/BctkLwNINCewaZGamyHAXKLKuQMvyAO0ffhEI
-KUosSzliRm2IleIMOKMJ7wKBgQCJWML8fwcud68sE3hDFdjrr/lH52D0ReI5LvjV
-Gqzhrju36JuOwGiwoGeGQ80OJy5wVl44xUXKws9Fo2TgOUAG5/LbUmtLQFrEFcqi
-KHM3Z8b/hhMlekXTqeVa2WlEk1zPEWpwGDf8GaFzvCxQaSXthKWnwM2HQDKQpAjd
-4BReYQKBgQCmJllIBUfS61JNstfV++kK3aEP7heGeUdYmFu255DK6UlsDmDx1TJ3
-NacApBE5y/xUEg7hZB3gBpn2PFZO6uVEJX+vrIoOzsOXMQSgWbeCOTe3BLZn+mF3
-tpfeW+xALGvvEajlv1/xUd2o/9DmgEIIIQWKPOKVjb6H5B1WnHa19Q==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA3-pathlen2.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA3-pathlen2.pem
deleted file mode 100644
index 44e10332d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-ICA3-pathlen2.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainI-ICA3-pathlen2, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:b8:36:0c:66:a9:06:ce:ac:e0:7c:86:a1:69:9d:
- be:28:cf:a3:81:f3:b4:dc:5f:c8:92:9d:f2:07:c0:
- 5e:04:d3:e5:74:19:fc:cf:85:7f:f7:91:8c:d5:58:
- 7c:02:4c:88:f1:4d:43:e3:07:bd:2a:4e:df:51:87:
- 29:74:c5:24:67:1d:f1:6f:8b:07:75:39:89:70:2a:
- 9c:00:e0:2e:6c:7c:74:27:18:34:fd:29:98:43:83:
- d6:e1:51:b3:13:41:1c:bc:29:dc:8b:2f:93:08:95:
- 8b:90:22:4b:e4:98:f5:d6:70:2a:9b:8b:64:e6:49:
- 06:62:a4:23:08:60:68:97:89:a9:b2:c0:94:8e:4f:
- 39:1c:25:3b:0f:e4:c5:1d:7d:89:89:5e:c6:02:69:
- 68:fc:13:55:b5:80:6b:77:f7:59:57:0b:1c:7e:c6:
- ed:46:c6:70:fb:34:a1:28:1c:82:b1:c2:ab:a6:c1:
- f0:13:1b:7d:0b:bc:1a:39:23:3c:e7:1d:ee:c8:ee:
- 2f:69:5f:a1:31:3f:1a:2f:98:5d:53:d7:42:93:db:
- 49:ac:d6:7a:12:2e:9d:0d:c9:b0:ef:40:d1:a4:02:
- 5e:52:e8:fb:d4:92:07:98:b1:76:d9:16:0f:e4:8b:
- de:dc:88:65:e0:fd:52:1d:8b:e2:e3:ed:08:37:d0:
- 11:f7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- EE:37:A6:F2:40:D0:EF:FD:22:C7:A3:B4:6C:57:47:40:B9:99:F9:8D
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:2
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 5a:8e:b7:fa:c9:b8:f9:a7:1e:fd:16:5b:75:4d:5e:b6:f2:6e:
- c0:48:f3:7f:3e:61:59:25:64:8e:6a:e5:19:fb:03:20:93:de:
- 0c:d9:88:68:e6:c3:9c:ad:b8:b1:08:a4:74:ef:e7:5c:1e:ea:
- 3b:9f:0a:64:40:74:ff:d8:9d:14:38:d8:c7:68:f4:8c:b2:76:
- cb:77:40:c4:55:23:b6:42:4c:82:16:47:a4:97:31:12:f0:ac:
- e8:b9:aa:72:d8:e7:e5:5f:6c:92:0e:07:d7:9f:df:4b:53:85:
- e5:d3:8b:74:ad:b3:58:09:d0:cf:2f:66:a3:28:8c:86:3a:5a:
- c8:39:f5:03:35:42:72:8b:b8:fc:28:51:37:b0:31:f6:29:c4:
- ab:f3:4f:ff:42:de:48:6d:bd:94:cd:3c:5a:bf:f3:a5:d2:13:
- 2c:7b:81:d8:0d:2f:f0:49:bf:c2:07:25:a5:2a:ae:3c:9f:4a:
- 3e:74:03:70:36:a9:67:68:1a:e8:72:18:2d:79:7e:65:2c:95:
- 3a:5c:9d:46:50:d0:9a:fd:c1:7a:6d:cd:d6:6c:83:f2:cb:aa:
- 19:c2:03:7c:2e:95:30:40:88:25:47:3c:d2:7a:ad:ac:a1:12:
- 25:42:17:d0:17:00:53:4b:32:ae:70:a4:08:7b:9b:fc:bc:93:
- 08:e6:b1:7a
------BEGIN CERTIFICATE-----
-MIIEwTCCA6mgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MTgzMDMwWhcNMjIwNzA3MTgzMDMwWjCBoTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNoYWluSS1JQ0Ez
-LXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuDYMZqkGzqzgfIahaZ2+KM+jgfO0
-3F/Ikp3yB8BeBNPldBn8z4V/95GM1Vh8AkyI8U1D4we9Kk7fUYcpdMUkZx3xb4sH
-dTmJcCqcAOAubHx0Jxg0/SmYQ4PW4VGzE0EcvCnciy+TCJWLkCJL5Jj11nAqm4tk
-5kkGYqQjCGBol4mpssCUjk85HCU7D+TFHX2JiV7GAmlo/BNVtYBrd/dZVwscfsbt
-RsZw+zShKByCscKrpsHwExt9C7waOSM85x3uyO4vaV+hMT8aL5hdU9dCk9tJrNZ6
-Ei6dDcmw70DRpAJeUuj71JIHmLF22RYP5Ive3Ihl4P1SHYvi4+0IN9AR9wIDAQAB
-o4IBDTCCAQkwHQYDVR0OBBYEFO43pvJA0O/9IsejtGxXR0C5mfmNMIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MA8GA1UdEwQIMAYBAf8CAQIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUA
-A4IBAQBajrf6ybj5px79Flt1TV628m7ASPN/PmFZJWSOauUZ+wMgk94M2Yho5sOc
-rbixCKR07+dcHuo7nwpkQHT/2J0UONjHaPSMsnbLd0DEVSO2QkyCFkeklzES8Kzo
-uapy2OflX2ySDgfXn99LU4Xl04t0rbNYCdDPL2ajKIyGOlrIOfUDNUJyi7j8KFE3
-sDH2KcSr80//Qt5Ibb2UzTxav/Ol0hMse4HYDS/wSb/CByWlKq48n0o+dANwNqln
-aBrochgteX5lLJU6XJ1GUNCa/cF6bc3WbIPyy6oZwgN8LpUwQIglRzzSeq2soRIl
-QhfQFwBTSzKucKQIe5v8vJMI5rF6
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-assembled.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-assembled.pem
deleted file mode 100644
index baf1cdcf0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-assembled.pem
+++ /dev/null
@@ -1,354 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainI-ICA1-no_pathlen, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainI-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:f3:ac:32:8f:52:af:a9:cf:9e:23:a4:96:8e:e9:
- e8:0a:3a:b7:6a:7b:ba:70:85:68:e2:52:f3:38:39:
- cf:c8:f1:8a:f6:55:1e:59:fa:97:fe:e7:9b:07:2a:
- b6:80:2a:92:d9:39:95:9e:0c:1f:d7:ad:1f:74:4d:
- 8e:61:6f:64:24:4c:d4:95:03:8f:d3:f2:3d:6e:d8:
- d8:d5:aa:64:7d:82:ee:74:07:16:68:fa:95:17:9b:
- 35:8f:c3:6c:47:88:3e:40:de:93:36:ed:62:f4:cc:
- 67:45:ee:ea:45:9f:fc:f1:63:6d:b7:fa:f8:c3:e0:
- 6f:c7:4a:3e:04:49:04:37:8b:3a:99:e8:64:0a:86:
- 43:ab:5b:34:1e:6c:33:a2:a4:26:7c:c7:6c:48:99:
- 7d:85:f5:1f:c1:9c:a9:c7:8f:51:6b:8a:86:8d:1c:
- b0:d2:82:ba:a4:a7:09:29:8b:0a:20:d1:7c:b1:67:
- 0c:61:cd:88:33:5e:38:ab:08:78:0b:80:0b:ce:63:
- 03:b9:40:7b:67:3e:a8:ac:4e:44:92:09:4c:3f:e0:
- 3d:55:cb:aa:5a:bc:17:9c:4e:9e:40:5c:82:fc:3b:
- 3a:54:40:90:f9:22:3c:f4:00:5f:95:13:72:49:29:
- ae:5f:31:22:30:04:05:6a:7b:b5:0a:0a:a6:5e:72:
- 4d:5f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- EB:B5:A2:7B:24:95:03:11:6B:56:CB:13:3E:A8:B2:8F:B1:CF:5D:C4
- X509v3 Authority Key Identifier:
- keyid:9E:54:B6:95:EA:89:07:A6:C9:E4:82:E8:D0:34:64:5D:08:CD:56:A0
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainI-ICA2-no_pathlen/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 78:f3:ac:4b:db:c6:63:c3:f5:67:97:b8:99:f4:72:6f:b2:07:
- 3b:99:ce:85:e7:5c:59:c1:80:bf:06:92:a8:34:be:1b:74:d1:
- 61:b6:75:07:18:0e:2e:77:7f:77:c7:e9:5d:cc:1e:7b:b5:04:
- 95:5b:99:a1:15:2e:b6:2b:67:13:09:0f:b7:6e:62:04:dd:01:
- 27:fd:18:f3:d9:b2:d7:8f:6e:bb:b3:1d:57:76:91:42:dd:78:
- 77:22:b3:ed:79:10:63:94:40:c5:88:09:bb:bf:fd:fe:6e:60:
- 23:53:30:8e:11:e2:b7:3d:39:24:96:f2:86:cc:59:eb:83:07:
- ad:7a:2e:85:63:be:70:15:92:f8:f2:2b:f1:6f:5f:c2:4d:3a:
- 7d:c6:b9:9d:c4:82:6a:fe:b2:7e:ec:5d:eb:b3:ba:82:09:04:
- f9:7e:47:37:a9:8a:e2:2a:4f:30:7d:b7:dd:1f:c2:f4:db:61:
- f3:b1:81:5d:10:8c:41:22:76:93:5b:a3:b9:b2:69:85:88:3a:
- eb:ae:42:0f:16:e7:2f:f3:cd:03:4c:08:65:90:a9:4f:dd:89:
- 23:d7:56:bd:e9:d7:cf:9f:bf:0f:a2:11:5b:e1:89:2c:d4:76:
- 16:1f:83:5c:e9:8c:f6:93:7c:b5:f2:f1:ef:d3:07:35:2f:93:
- 33:16:9c:63
------BEGIN CERTIFICATE-----
-MIIEvDCCA6SgAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluSS1JQ0ExLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMTgzMDMwWhcNMjIwNzA3MTgzMDMwWjCBmjELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxFjAUBgNV
-BAMMDWNoYWluSS1lbnRpdHkxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDzrDKPUq+pz54jpJaO
-6egKOrdqe7pwhWjiUvM4Oc/I8Yr2VR5Z+pf+55sHKraAKpLZOZWeDB/XrR90TY5h
-b2QkTNSVA4/T8j1u2NjVqmR9gu50BxZo+pUXmzWPw2xHiD5A3pM27WL0zGdF7upF
-n/zxY223+vjD4G/HSj4ESQQ3izqZ6GQKhkOrWzQebDOipCZ8x2xImX2F9R/BnKnH
-j1FrioaNHLDSgrqkpwkpiwog0XyxZwxhzYgzXjirCHgLgAvOYwO5QHtnPqisTkSS
-CUw/4D1Vy6pavBecTp5AXIL8OzpUQJD5Ijz0AF+VE3JJKa5fMSIwBAVqe7UKCqZe
-ck1fAgMBAAGjggEAMIH9MB0GA1UdDgQWBBTrtaJ7JJUDEWtWyxM+qLKPsc9dxDCB
-0AYDVR0jBIHIMIHFgBSeVLaV6okHpsnkgujQNGRdCM1WoKGBqaSBpjCBozELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-FTATBgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAd
-BgNVBAMMFmNoYWluSS1JQ0EyLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGlu
-Zm9Ad29sZnNzbC5jb22CAWQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEA
-ePOsS9vGY8P1Z5e4mfRyb7IHO5nOhedcWcGAvwaSqDS+G3TRYbZ1BxgOLnd/d8fp
-Xcwee7UElVuZoRUutitnEwkPt25iBN0BJ/0Y89my149uu7MdV3aRQt14dyKz7XkQ
-Y5RAxYgJu7/9/m5gI1MwjhHitz05JJbyhsxZ64MHrXouhWO+cBWS+PIr8W9fwk06
-fca5ncSCav6yfuxd67O6ggkE+X5HN6mK4ipPMH233R/C9Nth87GBXRCMQSJ2k1uj
-ubJphYg6665CDxbnL/PNA0wIZZCpT92JI9dWvenXz5+/D6IRW+GJLNR2Fh+DXOmM
-9pN8tfLx79MHNS+TMxacYw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainI-ICA2-no_pathlen, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainI-ICA1-no_pathlen, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:bb:ba:06:ad:13:cf:da:fb:d1:cb:65:fe:26:58:
- 49:6a:01:14:a6:78:b2:2c:1d:ba:ba:d0:bd:27:38:
- 66:7c:a0:1b:28:08:3c:6a:fd:f8:87:be:49:a2:ed:
- 38:f2:4c:b0:8b:93:ff:d2:c5:3f:cd:03:c5:14:79:
- e8:76:63:7a:aa:a7:54:1e:0e:27:bd:1b:be:e8:3f:
- 2b:55:40:f0:59:23:d8:3f:e8:05:1a:0b:71:f0:fd:
- 24:d9:f9:0b:99:25:da:af:96:34:ee:e1:91:cb:fc:
- 8f:a0:41:8f:9c:e1:4f:57:5f:b6:d6:55:69:6f:c3:
- 64:c3:11:a9:69:40:85:df:f3:9a:59:b5:ee:90:c0:
- 22:ee:72:28:2e:d3:da:65:27:3b:ba:42:c0:9e:73:
- ba:a2:f2:45:13:7a:c5:1d:30:a5:b7:db:75:5d:6f:
- cc:08:77:80:67:8d:18:2a:ca:02:8d:8e:d3:9c:2a:
- fa:b7:8f:1b:7d:ef:62:77:a4:fa:b6:d8:5a:3e:66:
- 9c:3e:13:45:a8:cf:61:fb:ff:41:45:14:21:e2:63:
- ac:81:4d:65:89:e3:d5:71:20:01:19:76:ec:a4:16:
- a6:ef:3c:bc:f2:a2:56:2b:07:31:67:0d:e5:97:88:
- e8:db:cb:4d:98:cb:99:e6:e0:bd:62:48:2b:b1:04:
- 12:07
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 9E:54:B6:95:EA:89:07:A6:C9:E4:82:E8:D0:34:64:5D:08:CD:56:A0
- X509v3 Authority Key Identifier:
- keyid:D1:BA:FB:FF:1D:29:41:8A:6A:5F:B2:F3:A7:41:05:47:09:1F:48:42
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainI-ICA3-pathlen2/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- b3:b8:b9:c2:44:3a:36:0a:cf:fd:da:80:8c:81:54:c1:cd:a6:
- 52:a8:60:b1:f8:fd:62:01:fc:d9:85:89:15:9a:df:45:f0:68:
- 3e:bb:fe:f3:94:dc:1c:69:3c:7c:47:df:04:0c:7b:2f:4f:3f:
- 56:58:9a:fa:1a:4c:16:21:cf:f2:21:a5:f9:d9:49:1b:69:b4:
- 4d:df:d0:c2:d7:2c:fa:0f:23:d6:45:61:12:cd:2a:5a:06:db:
- 22:6f:99:7a:a0:fc:17:ba:05:bc:02:79:db:f8:cd:ec:a0:98:
- 7c:7f:6b:d6:ca:5c:cd:07:89:b6:0d:3e:0b:d3:d7:7f:7c:6b:
- 73:7b:b9:28:69:d2:5f:27:1c:13:60:a0:50:23:16:00:d1:cb:
- 7a:1d:62:7c:a1:c2:63:1d:c9:0b:0f:d7:5c:91:af:7a:5b:93:
- 7e:e5:12:36:f0:3b:fa:59:7b:a8:88:f7:bf:11:19:4b:6a:81:
- 61:77:54:61:a3:73:b6:54:64:92:49:22:c9:6a:19:73:33:6d:
- 01:4c:5a:9c:0a:fa:ce:a1:34:50:b1:54:de:0b:7b:ce:fe:e0:
- 00:fa:8e:7f:48:36:58:ed:98:42:ce:8d:a4:a0:67:c9:88:1c:
- 7f:58:df:fb:62:0f:ee:4b:7d:5a:c7:52:2f:9f:2d:13:13:0b:
- 72:bd:a0:2e
------BEGIN CERTIFICATE-----
-MIIE1DCCA7ygAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluSS1JQ0EyLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMTgzMDMwWhcNMjIwNzA3MTgzMDMwWjCBozELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNV
-BAMMFmNoYWluSS1JQ0ExLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9A
-d29sZnNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7ugat
-E8/a+9HLZf4mWElqARSmeLIsHbq60L0nOGZ8oBsoCDxq/fiHvkmi7TjyTLCLk//S
-xT/NA8UUeeh2Y3qqp1QeDie9G77oPytVQPBZI9g/6AUaC3Hw/STZ+QuZJdqvljTu
-4ZHL/I+gQY+c4U9XX7bWVWlvw2TDEalpQIXf85pZte6QwCLucigu09plJzu6QsCe
-c7qi8kUTesUdMKW323Vdb8wId4BnjRgqygKNjtOcKvq3jxt972J3pPq22Fo+Zpw+
-E0Woz2H7/0FFFCHiY6yBTWWJ49VxIAEZduykFqbvPLzyolYrBzFnDeWXiOjby02Y
-y5nm4L1iSCuxBBIHAgMBAAGjggEPMIIBCzAdBgNVHQ4EFgQUnlS2leqJB6bJ5ILo
-0DRkXQjNVqAwgc4GA1UdIwSBxjCBw4AU0br7/x0pQYpqX7Lzp0EFRwkfSEKhgaek
-gaQwgaExCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH
-DAdTZWF0dGxlMRUwEwYDVQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2lu
-ZWVyaW5nMR0wGwYDVQQDDBRjaGFpbkktSUNBMy1wYXRobGVuMjEfMB0GCSqGSIb3
-DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIBZDAMBgNVHRMEBTADAQH/MAsGA1UdDwQE
-AwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAs7i5wkQ6NgrP/dqAjIFUwc2mUqhgsfj9
-YgH82YWJFZrfRfBoPrv+85TcHGk8fEffBAx7L08/Vlia+hpMFiHP8iGl+dlJG2m0
-Td/Qwtcs+g8j1kVhEs0qWgbbIm+ZeqD8F7oFvAJ52/jN7KCYfH9r1spczQeJtg0+
-C9PXf3xrc3u5KGnSXyccE2CgUCMWANHLeh1ifKHCYx3JCw/XXJGveluTfuUSNvA7
-+ll7qIj3vxEZS2qBYXdUYaNztlRkkkkiyWoZczNtAUxanAr6zqE0ULFU3gt7zv7g
-APqOf0g2WO2YQs6NpKBnyYgcf1jf+2IP7kt9WsdSL58tExMLcr2gLg==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainI-ICA3-pathlen2, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainI-ICA2-no_pathlen, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:de:1e:08:66:12:fe:20:07:10:1b:a1:27:0d:f9:
- 22:30:81:9b:ce:62:b1:a6:6d:49:d4:ed:b8:2d:4b:
- 97:77:1e:94:51:3d:73:2b:16:e9:05:e9:4c:1b:82:
- ad:47:9d:33:30:53:b5:9b:d2:2d:e9:7b:d6:63:f3:
- 61:20:1b:23:6e:47:09:8b:c0:d5:09:85:a6:e2:e4:
- 3a:4d:b3:f9:dd:c6:7c:9a:42:07:22:d5:7b:67:18:
- 38:c4:fc:ea:8d:09:80:a0:b0:44:33:fd:c1:aa:8b:
- 9c:98:e3:95:c3:74:71:3b:71:b8:b3:80:bf:30:63:
- 85:09:27:8b:12:b5:86:b0:0b:99:ff:97:42:52:a0:
- ac:b2:38:38:8d:13:96:d9:d6:fa:8f:c4:89:14:06:
- 9c:1f:0a:a3:3a:a2:f7:1f:83:d8:ae:41:44:9e:21:
- b2:5b:b7:a2:19:e9:46:58:de:e5:a2:ab:07:7a:9a:
- 9a:60:bc:14:ed:cf:4d:42:fc:5c:28:ea:42:d1:ae:
- cc:71:7e:52:5d:84:88:de:b6:7d:72:6e:ab:73:4b:
- 0d:ab:92:9f:11:b4:51:da:14:54:9a:0e:ec:ac:42:
- fc:71:87:5b:54:38:09:2c:f0:5d:86:0c:34:b7:92:
- 33:5c:3e:19:b1:4d:a0:62:9b:b4:68:36:36:38:ec:
- 29:b3
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- D1:BA:FB:FF:1D:29:41:8A:6A:5F:B2:F3:A7:41:05:47:09:1F:48:42
- X509v3 Authority Key Identifier:
- keyid:EE:37:A6:F2:40:D0:EF:FD:22:C7:A3:B4:6C:57:47:40:B9:99:F9:8D
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 8f:9b:f7:bd:1a:90:58:f0:ab:0f:1d:45:b2:29:10:66:2d:cc:
- 96:d6:3c:f4:3c:a8:49:e2:cf:db:17:16:8c:e8:76:de:79:c9:
- 42:10:a7:ad:b7:c3:c2:82:93:6b:19:3e:56:af:be:c8:d7:dd:
- ee:87:1d:5f:1d:ad:6a:02:8d:14:22:9f:54:58:d7:d8:16:79:
- 64:4d:eb:55:88:74:74:f6:59:2c:40:9f:d0:f4:a8:36:ea:c9:
- 4f:9c:2b:3a:72:5f:20:2d:25:b3:b2:fb:c1:03:11:ab:57:57:
- d0:55:13:b9:f5:10:09:9e:56:a2:0d:95:3c:16:3e:59:f3:71:
- 60:50:06:53:45:ff:0f:e2:f8:61:5b:d2:fc:0a:65:59:dc:ee:
- 6f:c6:26:c4:7d:27:69:4d:76:55:2f:07:01:3f:30:ea:17:3d:
- bb:8a:f0:df:ae:c8:47:70:0e:b4:28:c9:e9:7b:8c:8a:22:a0:
- ea:32:9b:f8:1e:35:a4:f0:a5:09:81:dc:9a:a4:d1:63:34:9e:
- 3c:32:2f:f3:b1:f0:43:3b:f1:31:9b:8b:99:bf:c2:b4:eb:78:
- 39:a3:e7:d8:2c:e6:6c:f2:8b:2f:21:83:c3:28:1b:77:f3:75:
- 9b:79:f7:f0:73:a0:a2:47:af:93:32:0b:d2:88:04:14:3a:cd:
- 48:7f:58:32
------BEGIN CERTIFICATE-----
-MIIExDCCA6ygAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluSS1JQ0EzLXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTE4MzAzMFoXDTIyMDcwNzE4MzAzMFowgaMxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR8wHQYDVQQD
-DBZjaGFpbkktSUNBMi1ub19wYXRobGVuMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3h4IZhL+
-IAcQG6EnDfkiMIGbzmKxpm1J1O24LUuXdx6UUT1zKxbpBelMG4KtR50zMFO1m9It
-6XvWY/NhIBsjbkcJi8DVCYWm4uQ6TbP53cZ8mkIHItV7Zxg4xPzqjQmAoLBEM/3B
-qoucmOOVw3RxO3G4s4C/MGOFCSeLErWGsAuZ/5dCUqCssjg4jROW2db6j8SJFAac
-HwqjOqL3H4PYrkFEniGyW7eiGelGWN7loqsHepqaYLwU7c9NQvxcKOpC0a7McX5S
-XYSI3rZ9cm6rc0sNq5KfEbRR2hRUmg7srEL8cYdbVDgJLPBdhgw0t5IzXD4ZsU2g
-Ypu0aDY2OOwpswIDAQABo4IBATCB/jAdBgNVHQ4EFgQU0br7/x0pQYpqX7Lzp0EF
-RwkfSEIwgcEGA1UdIwSBuTCBtoAU7jem8kDQ7/0ix6O0bFdHQLmZ+Y2hgZqkgZcw
-gZQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3pl
-bWFuMREwDwYDVQQKDAhTYXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYG
-A1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tggFkMAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEB
-CwUAA4IBAQCPm/e9GpBY8KsPHUWyKRBmLcyW1jz0PKhJ4s/bFxaM6HbeeclCEKet
-t8PCgpNrGT5Wr77I193uhx1fHa1qAo0UIp9UWNfYFnlkTetViHR09lksQJ/Q9Kg2
-6slPnCs6cl8gLSWzsvvBAxGrV1fQVRO59RAJnlaiDZU8Fj5Z83FgUAZTRf8P4vhh
-W9L8CmVZ3O5vxibEfSdpTXZVLwcBPzDqFz27ivDfrshHcA60KMnpe4yKIqDqMpv4
-HjWk8KUJgdyapNFjNJ48Mi/zsfBDO/Exm4uZv8K063g5o+fYLOZs8osvIYPDKBt3
-83Wbeffwc6CiR6+TMgvSiAQUOs1If1gy
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainI-ICA3-pathlen2, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:b8:36:0c:66:a9:06:ce:ac:e0:7c:86:a1:69:9d:
- be:28:cf:a3:81:f3:b4:dc:5f:c8:92:9d:f2:07:c0:
- 5e:04:d3:e5:74:19:fc:cf:85:7f:f7:91:8c:d5:58:
- 7c:02:4c:88:f1:4d:43:e3:07:bd:2a:4e:df:51:87:
- 29:74:c5:24:67:1d:f1:6f:8b:07:75:39:89:70:2a:
- 9c:00:e0:2e:6c:7c:74:27:18:34:fd:29:98:43:83:
- d6:e1:51:b3:13:41:1c:bc:29:dc:8b:2f:93:08:95:
- 8b:90:22:4b:e4:98:f5:d6:70:2a:9b:8b:64:e6:49:
- 06:62:a4:23:08:60:68:97:89:a9:b2:c0:94:8e:4f:
- 39:1c:25:3b:0f:e4:c5:1d:7d:89:89:5e:c6:02:69:
- 68:fc:13:55:b5:80:6b:77:f7:59:57:0b:1c:7e:c6:
- ed:46:c6:70:fb:34:a1:28:1c:82:b1:c2:ab:a6:c1:
- f0:13:1b:7d:0b:bc:1a:39:23:3c:e7:1d:ee:c8:ee:
- 2f:69:5f:a1:31:3f:1a:2f:98:5d:53:d7:42:93:db:
- 49:ac:d6:7a:12:2e:9d:0d:c9:b0:ef:40:d1:a4:02:
- 5e:52:e8:fb:d4:92:07:98:b1:76:d9:16:0f:e4:8b:
- de:dc:88:65:e0:fd:52:1d:8b:e2:e3:ed:08:37:d0:
- 11:f7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- EE:37:A6:F2:40:D0:EF:FD:22:C7:A3:B4:6C:57:47:40:B9:99:F9:8D
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:2
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 5a:8e:b7:fa:c9:b8:f9:a7:1e:fd:16:5b:75:4d:5e:b6:f2:6e:
- c0:48:f3:7f:3e:61:59:25:64:8e:6a:e5:19:fb:03:20:93:de:
- 0c:d9:88:68:e6:c3:9c:ad:b8:b1:08:a4:74:ef:e7:5c:1e:ea:
- 3b:9f:0a:64:40:74:ff:d8:9d:14:38:d8:c7:68:f4:8c:b2:76:
- cb:77:40:c4:55:23:b6:42:4c:82:16:47:a4:97:31:12:f0:ac:
- e8:b9:aa:72:d8:e7:e5:5f:6c:92:0e:07:d7:9f:df:4b:53:85:
- e5:d3:8b:74:ad:b3:58:09:d0:cf:2f:66:a3:28:8c:86:3a:5a:
- c8:39:f5:03:35:42:72:8b:b8:fc:28:51:37:b0:31:f6:29:c4:
- ab:f3:4f:ff:42:de:48:6d:bd:94:cd:3c:5a:bf:f3:a5:d2:13:
- 2c:7b:81:d8:0d:2f:f0:49:bf:c2:07:25:a5:2a:ae:3c:9f:4a:
- 3e:74:03:70:36:a9:67:68:1a:e8:72:18:2d:79:7e:65:2c:95:
- 3a:5c:9d:46:50:d0:9a:fd:c1:7a:6d:cd:d6:6c:83:f2:cb:aa:
- 19:c2:03:7c:2e:95:30:40:88:25:47:3c:d2:7a:ad:ac:a1:12:
- 25:42:17:d0:17:00:53:4b:32:ae:70:a4:08:7b:9b:fc:bc:93:
- 08:e6:b1:7a
------BEGIN CERTIFICATE-----
-MIIEwTCCA6mgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MTgzMDMwWhcNMjIwNzA3MTgzMDMwWjCBoTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNoYWluSS1JQ0Ez
-LXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuDYMZqkGzqzgfIahaZ2+KM+jgfO0
-3F/Ikp3yB8BeBNPldBn8z4V/95GM1Vh8AkyI8U1D4we9Kk7fUYcpdMUkZx3xb4sH
-dTmJcCqcAOAubHx0Jxg0/SmYQ4PW4VGzE0EcvCnciy+TCJWLkCJL5Jj11nAqm4tk
-5kkGYqQjCGBol4mpssCUjk85HCU7D+TFHX2JiV7GAmlo/BNVtYBrd/dZVwscfsbt
-RsZw+zShKByCscKrpsHwExt9C7waOSM85x3uyO4vaV+hMT8aL5hdU9dCk9tJrNZ6
-Ei6dDcmw70DRpAJeUuj71JIHmLF22RYP5Ive3Ihl4P1SHYvi4+0IN9AR9wIDAQAB
-o4IBDTCCAQkwHQYDVR0OBBYEFO43pvJA0O/9IsejtGxXR0C5mfmNMIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MA8GA1UdEwQIMAYBAf8CAQIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUA
-A4IBAQBajrf6ybj5px79Flt1TV628m7ASPN/PmFZJWSOauUZ+wMgk94M2Yho5sOc
-rbixCKR07+dcHuo7nwpkQHT/2J0UONjHaPSMsnbLd0DEVSO2QkyCFkeklzES8Kzo
-uapy2OflX2ySDgfXn99LU4Xl04t0rbNYCdDPL2ajKIyGOlrIOfUDNUJyi7j8KFE3
-sDH2KcSr80//Qt5Ibb2UzTxav/Ol0hMse4HYDS/wSb/CByWlKq48n0o+dANwNqln
-aBrochgteX5lLJU6XJ1GUNCa/cF6bc3WbIPyy6oZwgN8LpUwQIglRzzSeq2soRIl
-QhfQFwBTSzKucKQIe5v8vJMI5rF6
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-entity-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-entity-key.pem
deleted file mode 100644
index e0a823b0c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-entity-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpQIBAAKCAQEA86wyj1Kvqc+eI6SWjunoCjq3anu6cIVo4lLzODnPyPGK9lUe
-WfqX/uebByq2gCqS2TmVngwf160fdE2OYW9kJEzUlQOP0/I9btjY1apkfYLudAcW
-aPqVF5s1j8NsR4g+QN6TNu1i9MxnRe7qRZ/88WNtt/r4w+Bvx0o+BEkEN4s6mehk
-CoZDq1s0HmwzoqQmfMdsSJl9hfUfwZypx49Ra4qGjRyw0oK6pKcJKYsKINF8sWcM
-Yc2IM144qwh4C4ALzmMDuUB7Zz6orE5EkglMP+A9VcuqWrwXnE6eQFyC/Ds6VECQ
-+SI89ABflRNySSmuXzEiMAQFanu1CgqmXnJNXwIDAQABAoIBACx9nmWo1UYOEHO1
-k3/YmXN0sRSSLsJouXPJbXswow2vfI3pkLchGCuEoju2wse3/kQHTZgj4pSAmaOk
-nYCQ1BoEpTPoCJTMQAdDNKQejmaUR3GL8b2NMzeyMR9ksRqGd8dkXEDFKzJDN//+
-1WuNAKQaYWgcPNuW2RHsLlKd+lUhjYR/Qe6pj+Jzxhh9Kbt5GHAyj1BTXQzkv5O5
-FpshP331WryxI0r/Q4lwKHrthBXm2PgKUEeh5M7dokAMCaBZmN0ZTbI644tvNsi5
-FR9rTqRHhxtwmk5sMKEavncISY85T+R63XKfUHTQZkWXEiPB3DJoJAbsDVpBb+BI
-j3Ton2ECgYEA/WDYGonfKB7x8wwZgBVnnvoMGOqSm8mj42kw3cAaXqtIrJOF+iL8
-kKMq5YJ2W+GlbdNF1oawG+I9gWK9THOcp0JnRXedGNWlfKrW7HHeugT6OR9D8ZiX
-4O0M7QJqIdWWN9QpVHhPfySdzF+PopT73o38MtnEF28cIck3ptFqQpcCgYEA9jGl
-DSxfFXjoPKinHf6QWkyKeOqHIWYEuIxv2tQ+KpsvTzZ6hEdS2ZeiWcGRCxvlGNxu
-/e7sCVUOCVs+FYyb3kN0TW9Hx+0l8H02Lnt3ar7lQmfp4fDw2HsRm6ONTUPZnXCV
-2Odpi7PlnHOSR4j2kta4HQL7l2pZJ3n6wPasTHkCgYEA+2UbBTnGMAiEBqH6qxqR
-tSpi1lXnIKrv8LJtyZbQkx1e/dthEs2jyd4asZy/0moPuOfmYvM/yGqwm69cIn6S
-72DzFfmX5QwVJZxboj1YvzgxDHv47bx49LI+IOpEY02HvdzDJQw50+yApEYsPSOU
-wzwc/lcSOC4Fu3/pt5oP1AECgYEA52eCW/944BXlNB7R9b9wr2+COGU43oulpFFc
-UbNtO17h+PKb9fmURjHgx7zJOEff7p5DNSt9cMghiWnZ0Sd42lFM3/vY3HJrVsBa
-TRaACDWmB+TkURrHRrNmuYPhLN65jOJl9pqM+mL9TzDSLarvGNX5+Er1cDzlz9U3
-fGhfSwECgYEAzUUcI9nvFvh4XQWCbJVDr3iQrupozRCfYmFjuJpx8KHm+Z01lY50
-uTJ+NOBJHCgS6Ikyz4VIkqpbw4AbxlWN0Se7FjlaoiUkj9KAl1ifM5cl70KN13az
-1i3a0a8yrIdCAxDenm9UCQH2NIfL4NdFlI2BZglB6PI/HwQ/NwZAkEc=
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-entity.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-entity.pem
deleted file mode 100644
index 1e7564198..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainI-entity.pem
+++ /dev/null
@@ -1,87 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainI-ICA1-no_pathlen, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainI-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:f3:ac:32:8f:52:af:a9:cf:9e:23:a4:96:8e:e9:
- e8:0a:3a:b7:6a:7b:ba:70:85:68:e2:52:f3:38:39:
- cf:c8:f1:8a:f6:55:1e:59:fa:97:fe:e7:9b:07:2a:
- b6:80:2a:92:d9:39:95:9e:0c:1f:d7:ad:1f:74:4d:
- 8e:61:6f:64:24:4c:d4:95:03:8f:d3:f2:3d:6e:d8:
- d8:d5:aa:64:7d:82:ee:74:07:16:68:fa:95:17:9b:
- 35:8f:c3:6c:47:88:3e:40:de:93:36:ed:62:f4:cc:
- 67:45:ee:ea:45:9f:fc:f1:63:6d:b7:fa:f8:c3:e0:
- 6f:c7:4a:3e:04:49:04:37:8b:3a:99:e8:64:0a:86:
- 43:ab:5b:34:1e:6c:33:a2:a4:26:7c:c7:6c:48:99:
- 7d:85:f5:1f:c1:9c:a9:c7:8f:51:6b:8a:86:8d:1c:
- b0:d2:82:ba:a4:a7:09:29:8b:0a:20:d1:7c:b1:67:
- 0c:61:cd:88:33:5e:38:ab:08:78:0b:80:0b:ce:63:
- 03:b9:40:7b:67:3e:a8:ac:4e:44:92:09:4c:3f:e0:
- 3d:55:cb:aa:5a:bc:17:9c:4e:9e:40:5c:82:fc:3b:
- 3a:54:40:90:f9:22:3c:f4:00:5f:95:13:72:49:29:
- ae:5f:31:22:30:04:05:6a:7b:b5:0a:0a:a6:5e:72:
- 4d:5f
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- EB:B5:A2:7B:24:95:03:11:6B:56:CB:13:3E:A8:B2:8F:B1:CF:5D:C4
- X509v3 Authority Key Identifier:
- keyid:9E:54:B6:95:EA:89:07:A6:C9:E4:82:E8:D0:34:64:5D:08:CD:56:A0
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainI-ICA2-no_pathlen/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 78:f3:ac:4b:db:c6:63:c3:f5:67:97:b8:99:f4:72:6f:b2:07:
- 3b:99:ce:85:e7:5c:59:c1:80:bf:06:92:a8:34:be:1b:74:d1:
- 61:b6:75:07:18:0e:2e:77:7f:77:c7:e9:5d:cc:1e:7b:b5:04:
- 95:5b:99:a1:15:2e:b6:2b:67:13:09:0f:b7:6e:62:04:dd:01:
- 27:fd:18:f3:d9:b2:d7:8f:6e:bb:b3:1d:57:76:91:42:dd:78:
- 77:22:b3:ed:79:10:63:94:40:c5:88:09:bb:bf:fd:fe:6e:60:
- 23:53:30:8e:11:e2:b7:3d:39:24:96:f2:86:cc:59:eb:83:07:
- ad:7a:2e:85:63:be:70:15:92:f8:f2:2b:f1:6f:5f:c2:4d:3a:
- 7d:c6:b9:9d:c4:82:6a:fe:b2:7e:ec:5d:eb:b3:ba:82:09:04:
- f9:7e:47:37:a9:8a:e2:2a:4f:30:7d:b7:dd:1f:c2:f4:db:61:
- f3:b1:81:5d:10:8c:41:22:76:93:5b:a3:b9:b2:69:85:88:3a:
- eb:ae:42:0f:16:e7:2f:f3:cd:03:4c:08:65:90:a9:4f:dd:89:
- 23:d7:56:bd:e9:d7:cf:9f:bf:0f:a2:11:5b:e1:89:2c:d4:76:
- 16:1f:83:5c:e9:8c:f6:93:7c:b5:f2:f1:ef:d3:07:35:2f:93:
- 33:16:9c:63
------BEGIN CERTIFICATE-----
-MIIEvDCCA6SgAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluSS1JQ0ExLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMTgzMDMwWhcNMjIwNzA3MTgzMDMwWjCBmjELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxFjAUBgNV
-BAMMDWNoYWluSS1lbnRpdHkxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDzrDKPUq+pz54jpJaO
-6egKOrdqe7pwhWjiUvM4Oc/I8Yr2VR5Z+pf+55sHKraAKpLZOZWeDB/XrR90TY5h
-b2QkTNSVA4/T8j1u2NjVqmR9gu50BxZo+pUXmzWPw2xHiD5A3pM27WL0zGdF7upF
-n/zxY223+vjD4G/HSj4ESQQ3izqZ6GQKhkOrWzQebDOipCZ8x2xImX2F9R/BnKnH
-j1FrioaNHLDSgrqkpwkpiwog0XyxZwxhzYgzXjirCHgLgAvOYwO5QHtnPqisTkSS
-CUw/4D1Vy6pavBecTp5AXIL8OzpUQJD5Ijz0AF+VE3JJKa5fMSIwBAVqe7UKCqZe
-ck1fAgMBAAGjggEAMIH9MB0GA1UdDgQWBBTrtaJ7JJUDEWtWyxM+qLKPsc9dxDCB
-0AYDVR0jBIHIMIHFgBSeVLaV6okHpsnkgujQNGRdCM1WoKGBqaSBpjCBozELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-FTATBgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAd
-BgNVBAMMFmNoYWluSS1JQ0EyLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGlu
-Zm9Ad29sZnNzbC5jb22CAWQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEA
-ePOsS9vGY8P1Z5e4mfRyb7IHO5nOhedcWcGAvwaSqDS+G3TRYbZ1BxgOLnd/d8fp
-Xcwee7UElVuZoRUutitnEwkPt25iBN0BJ/0Y89my149uu7MdV3aRQt14dyKz7XkQ
-Y5RAxYgJu7/9/m5gI1MwjhHitz05JJbyhsxZ64MHrXouhWO+cBWS+PIr8W9fwk06
-fca5ncSCav6yfuxd67O6ggkE+X5HN6mK4ipPMH233R/C9Nth87GBXRCMQSJ2k1uj
-ubJphYg6665CDxbnL/PNA0wIZZCpT92JI9dWvenXz5+/D6IRW+GJLNR2Fh+DXOmM
-9pN8tfLx79MHNS+TMxacYw==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA1-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA1-key.pem
deleted file mode 100644
index e67a06832..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA1-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEogIBAAKCAQEAp29EwhHMLPQqpagIU0sOzZYjuxVKKt35pxkrkSjoc6NXtEk6
-N4KPFThaqq+tciYuhMIN3vzwvjuiEakSINQ93mKFhZEIYNvASruJtvSRHlGjsvcI
-md9ISlmE0aoJNg3NaKWuQcjXGtjqSYcgIif5RVQ+x8gARH40cqqNLU1qPnWJ4tQX
-V/nNK9C3FGpUG2Gvm2gisRZz6wVsQertEE68gwRoyDrhAxKtKFwkTBmhftjvG4Dk
-DkkMaYb2HucB+ypvVhttCq3pKT8xu0goQHkrtfOq7OkJTIL8lygZozrA0l6jipjI
-irfSxJC8/8xHE5CtAKuK7PeUNQlgEDWfMsUAGwIDAQABAoIBAD9XZ8Knav+Cq3OZ
-+vRPy9zYtNG8vx8ydJTTf9jdifrdS3unzD9dw/V6KUqzRUGO0kBlDUxTklvVQX2+
-4V3MDU/JI8wgzvOdjsR26CVvpkq7BdvZesaDYtzFuup6khuB4zh4nVDDwySj9RY1
-6WEikDm7IjkAH6HJwNu0S85coBnaTs7Sxi+LcAwFlHybEZfb5hz0MdLcLlJ3E7Oz
-6Ni/W/SsFBPsO7u7BlNB37tvBlxwpws1sKgpN1EHaDhctQxGODkfAK66PPbG75lO
-vqROQWdFc7e3IKQ//A3ORXjNGfCYs8kV/VLA2RjjDPrVb3d7OHxufaAXUxNN5+N1
-7chonQECgYEA00PYedTkZiY2ljJBQB5vxoCZt9wGMe91u/SjWUfLMs2upBgGWDCx
-5loZybzUMkBXRK+TSy0kdJndNSPWFxnSmOEFE6Im99MBFJu2iuy7HyHjSTlUEQp1
-Y1CbSzQRCXMNsdJjWnTEz9y8r6gQMhbhMB1Gn5MK3cSmrfv1LwTOvIECgYEAyuN8
-jLWMVfBTN9B/hWTLMLQF7fHhxT53ZBzA9+xnMo+TCDTqZABeyyO1/9jVIvcF4PEO
-tmGFaQYaGlxP9fMJyuEEcmYXU8pSqFmK/HHvaHL+MDBjRPudz9En9visBtcoVyYq
-z6oRFKsNCjcctxZ9/N20gfaYCrgzFTCTkPWh3psCgYAQKBwiFRnyhfGewvEiijFa
-KPOYkAcZQorqeOcVKNxtYjV87yltDSxNxY47U2mW/jyuUA8frLAhCrNUIQ16bssg
-TfUpbzkzsrtebBolvb0BwIG1U+EN/JLFqaB2u+ChrF7bvo9Cl7OFgggcFupGKmHG
-YDbKdWBbXXKx05cIpYF6AQKBgH4pobyZ9E9IZ2cwxut7NwLtHzbMj7ko0/M0EibZ
-IX8GWsbiqNJQjKHDbhxPiJH6i/RJ0f1FfUFGoxq7RpnJbNB0xmAg7eaTzHyVWeEL
-NHV99GSg4kn2MTcWd8SS8945EwPGXx7NQVvZ1f0BMmEDooqIjwO2BOu9iT5m+4xL
-wkF7AoGADQdu9lCbE0oFa4Ys9p7F7nAh7CCMvKGGIWZzQZBUf3Xr0RuZYRBaeUs2
-U7R/dXpUEOdxcDxSvfsnOz4yJ5++ixj0GaETgxHfHJd4JbBVW3ziCjPNSLj7Slgf
-EmHy80ElH+97Z1nK5dHZNAi6m4u+eNjpnv/zbaWsLXsglPuzmsg=
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA1-no_pathlen.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA1-no_pathlen.pem
deleted file mode 100644
index 302d2c78d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA1-no_pathlen.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA2-no_pathlen, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA1-no_pathlen, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:a7:6f:44:c2:11:cc:2c:f4:2a:a5:a8:08:53:4b:
- 0e:cd:96:23:bb:15:4a:2a:dd:f9:a7:19:2b:91:28:
- e8:73:a3:57:b4:49:3a:37:82:8f:15:38:5a:aa:af:
- ad:72:26:2e:84:c2:0d:de:fc:f0:be:3b:a2:11:a9:
- 12:20:d4:3d:de:62:85:85:91:08:60:db:c0:4a:bb:
- 89:b6:f4:91:1e:51:a3:b2:f7:08:99:df:48:4a:59:
- 84:d1:aa:09:36:0d:cd:68:a5:ae:41:c8:d7:1a:d8:
- ea:49:87:20:22:27:f9:45:54:3e:c7:c8:00:44:7e:
- 34:72:aa:8d:2d:4d:6a:3e:75:89:e2:d4:17:57:f9:
- cd:2b:d0:b7:14:6a:54:1b:61:af:9b:68:22:b1:16:
- 73:eb:05:6c:41:ea:ed:10:4e:bc:83:04:68:c8:3a:
- e1:03:12:ad:28:5c:24:4c:19:a1:7e:d8:ef:1b:80:
- e4:0e:49:0c:69:86:f6:1e:e7:01:fb:2a:6f:56:1b:
- 6d:0a:ad:e9:29:3f:31:bb:48:28:40:79:2b:b5:f3:
- aa:ec:e9:09:4c:82:fc:97:28:19:a3:3a:c0:d2:5e:
- a3:8a:98:c8:8a:b7:d2:c4:90:bc:ff:cc:47:13:90:
- ad:00:ab:8a:ec:f7:94:35:09:60:10:35:9f:32:c5:
- 00:1b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 9C:7B:3A:10:B3:08:99:05:00:AF:3E:E0:A4:5D:D9:AF:82:BC:4D:C0
- X509v3 Authority Key Identifier:
- keyid:A3:F5:71:8A:60:80:3C:93:64:17:D9:2E:B5:C0:CE:A9:C1:14:17:C4
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainJ-ICA3-no_pathlen/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 1c:0b:c0:44:10:dc:db:df:b9:3e:a0:95:09:d7:13:63:81:f7:
- 32:57:19:84:72:2d:8e:60:66:0e:78:f3:35:7d:71:f8:95:88:
- bc:90:52:e1:e2:4e:fe:4a:f7:bd:66:fe:b7:73:84:7f:96:ee:
- ba:93:97:31:01:af:74:4f:60:40:74:d2:b5:a1:2f:e0:79:1a:
- e2:67:08:ee:d4:60:43:1d:bc:79:9d:61:ae:fe:5e:9b:c8:b3:
- 69:4e:d0:2b:2b:61:7a:51:1a:c9:bf:8c:b5:ff:ee:ee:42:eb:
- ad:e4:90:53:1c:ed:a6:6f:27:51:1f:bf:b1:e3:0e:28:70:46:
- 36:91:2e:72:82:b8:05:ee:42:c0:bd:17:0a:38:96:da:13:a4:
- d5:a3:9d:bd:82:c3:aa:9f:ff:a8:cd:28:38:ae:18:44:a6:e3:
- 60:eb:e0:4c:bd:1f:9e:99:e9:47:38:86:08:29:61:64:d6:6a:
- 55:a0:eb:5a:62:24:d5:48:36:5b:51:5c:7f:5f:94:21:ea:d4:
- 5e:7d:ee:ec:e7:3f:5b:35:59:8f:84:b9:00:53:80:3e:6a:a0:
- db:de:a9:36:9e:f2:1e:48:77:cb:df:94:af:4c:a8:cc:93:c4:
- 03:74:ca:ec:d8:86:a3:b9:49:76:b7:af:44:b3:b4:51:ca:a8:
- 8b:78:73:f5
------BEGIN CERTIFICATE-----
-MIIE1jCCA76gAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluSi1JQ0EyLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMTgzMDMwWhcNMjIwNzA3MTgzMDMwWjCBozELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNV
-BAMMFmNoYWluSi1JQ0ExLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9A
-d29sZnNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCnb0TC
-Ecws9CqlqAhTSw7NliO7FUoq3fmnGSuRKOhzo1e0STo3go8VOFqqr61yJi6Ewg3e
-/PC+O6IRqRIg1D3eYoWFkQhg28BKu4m29JEeUaOy9wiZ30hKWYTRqgk2Dc1opa5B
-yNca2OpJhyAiJ/lFVD7HyABEfjRyqo0tTWo+dYni1BdX+c0r0LcUalQbYa+baCKx
-FnPrBWxB6u0QTryDBGjIOuEDEq0oXCRMGaF+2O8bgOQOSQxphvYe5wH7Km9WG20K
-rekpPzG7SChAeSu186rs6QlMgvyXKBmjOsDSXqOKmMiKt9LEkLz/zEcTkK0Aq4rs
-95Q1CWAQNZ8yxQAbAgMBAAGjggERMIIBDTAdBgNVHQ4EFgQUnHs6ELMImQUArz7g
-pF3Zr4K8TcAwgdAGA1UdIwSByDCBxYAUo/VximCAPJNkF9kutcDOqcEUF8Shgamk
-gaYwgaMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH
-DAdTZWF0dGxlMRUwEwYDVQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2lu
-ZWVyaW5nMR8wHQYDVQQDDBZjaGFpbkotSUNBMy1ub19wYXRobGVuMR8wHQYJKoZI
-hvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggFkMAwGA1UdEwQFMAMBAf8wCwYDVR0P
-BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQAcC8BEENzb37k+oJUJ1xNjgfcyVxmE
-ci2OYGYOePM1fXH4lYi8kFLh4k7+Sve9Zv63c4R/lu66k5cxAa90T2BAdNK1oS/g
-eRriZwju1GBDHbx5nWGu/l6byLNpTtArK2F6URrJv4y1/+7uQuut5JBTHO2mbydR
-H7+x4w4ocEY2kS5ygrgF7kLAvRcKOJbaE6TVo529gsOqn/+ozSg4rhhEpuNg6+BM
-vR+emelHOIYIKWFk1mpVoOtaYiTVSDZbUVx/X5Qh6tRefe7s5z9bNVmPhLkAU4A+
-aqDb3qk2nvIeSHfL35SvTKjMk8QDdMrs2IajuUl2t69Es7RRyqiLeHP1
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA2-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA2-key.pem
deleted file mode 100644
index fa3f5aef5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA2-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAuyn9iaqC4B0EeGnsYVhRUoR+a1VpLPQj1h/Y7asZljh7xojX
-fYWTADVAC8Cp/2YPnqEdiG6pivGtR7RxyRVQxg81npVKZtO9Gzh73GeFlxuzY8ly
-1kNa8V419gWWx0C8I6uUNIJZArIz0OZ/GVdlaDwEYVDvIpVP7xi/FbFNjs2noJgi
-9RwFAWtLNb+Iw0fDJCm0RcuVoawWHd24aKxROSQnar4x8ewGEFW+RAJP6BJ71v4y
-yUg3ayBoy1P1STquSsdDwa/mUxHZ+HEaotY3xytFUElRT1VsPx5pe1gSOn5ZoFed
-KJyKbYLnExU7BI/igg8vz9kl2WWjPAPAzbZR1QIDAQABAoIBAFvaUK5WOyKHuyDp
-QvPHJynrEivU3+gK7Odx+8EwHj+F+uDFWZQlkK4idAsQg51u1i2QfnDtdlFVKCgv
-m0QHLPv2jOcF91ydf4ozXz4cpAgztQc83xneNmyMQsk5lvS0hWCwHOzkJ5DWKe3U
-oP2r0X2lLrUfxixfwLnjmCuqNxjkZlx1sB+rb5wafmW6GOx2kUS+jr02RG20wNIT
-lPgCLYyRyn636F7eBSTDd2ogwwpugk0cqBWFnqzvJfltIFQd47bhSyQ4ot12rTrH
-GzQ764Ll6pxuNmBYo9ys3HHhFs8A66vIpC7ITZRUWa7aHFzQn+rzJGeJ4+USJvCf
-fCbyS4ECgYEA+B0tCuWCK6qiszfFdPAwTnQFTcdKBH9wnwI1f6gdgqOofYfSKJ/3
-6rgtuYv3/MPZ0wXTNP6QxYKjD3Zfa2oclxO/5JRejiahKYBNPrON1CbN3bMESZj4
-5Br5SxjLcDN8OFEKExn9U13lD7wfF2AVVUMkflkfao9ajziBkZUE1TUCgYEAwRzi
-XJ7wOQgAAuz2rG9Kw70oQ8ry3VyU5L4xqEJsVIMBpxCQ+LfvWNMuR/awFECVnrxG
-UpUgvzrY+JJ3EVDRD3bbCZW7TtglLi9vi7VomFv5S2tPPl+abktY9zPe76nF/bWg
-joLTfWrla6OAUldaCBJPvmBlmsqEOJTMDM0kPiECgYBJI5ieiK9JngBeIkejxBYJ
-Wmwh1Gh+UO7rAKSyn+UrGIFXl80cyqMzXt2jv533teglK6dqDMyyXGMi8LsKF/qb
-kmfTwuTotHx3lmmu3REnA9VV0CqoY16jJ0xrlcCKr7Kji0gT/2pMw/X9IHBt3JYN
-T0CXuj/nkqCYbYjMWIhXLQKBgQCYdtOIyLtka5qGtMu0LFHc5FUL4QmKF3Q+fKL7
-8yVQO/ZsDjpHBAFmIaUij/NIqgz2vDLRNIgcMrvm1MxI0YOdL/uTP7IYd7IzGqR4
-qwsfb04Na3WvCxAEEFz3Hu7eTS3SNznCCiwrkt/68aV4XRrp0HtBFR5i7Y0ilufb
-G4OHwQKBgQCd0TSu7ntTRmQBddjtAylB5tP7BTxgdV39IrBs9AyZnEti8hVLn3bs
-AuENwmUX2KGRkH9xmA3hf8QHYFWz2n7NiygZ60yjIvpQhd4z2eCEpmqrRVV44QtT
-z/NoqKUN6ywGoDu60LV1PmoYpiWXM1qTxdKJhcUhdkuVSH22tKoVeQ==
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA2-no_pathlen.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA2-no_pathlen.pem
deleted file mode 100644
index 92fa68dc2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA2-no_pathlen.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA3-no_pathlen, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA2-no_pathlen, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:bb:29:fd:89:aa:82:e0:1d:04:78:69:ec:61:58:
- 51:52:84:7e:6b:55:69:2c:f4:23:d6:1f:d8:ed:ab:
- 19:96:38:7b:c6:88:d7:7d:85:93:00:35:40:0b:c0:
- a9:ff:66:0f:9e:a1:1d:88:6e:a9:8a:f1:ad:47:b4:
- 71:c9:15:50:c6:0f:35:9e:95:4a:66:d3:bd:1b:38:
- 7b:dc:67:85:97:1b:b3:63:c9:72:d6:43:5a:f1:5e:
- 35:f6:05:96:c7:40:bc:23:ab:94:34:82:59:02:b2:
- 33:d0:e6:7f:19:57:65:68:3c:04:61:50:ef:22:95:
- 4f:ef:18:bf:15:b1:4d:8e:cd:a7:a0:98:22:f5:1c:
- 05:01:6b:4b:35:bf:88:c3:47:c3:24:29:b4:45:cb:
- 95:a1:ac:16:1d:dd:b8:68:ac:51:39:24:27:6a:be:
- 31:f1:ec:06:10:55:be:44:02:4f:e8:12:7b:d6:fe:
- 32:c9:48:37:6b:20:68:cb:53:f5:49:3a:ae:4a:c7:
- 43:c1:af:e6:53:11:d9:f8:71:1a:a2:d6:37:c7:2b:
- 45:50:49:51:4f:55:6c:3f:1e:69:7b:58:12:3a:7e:
- 59:a0:57:9d:28:9c:8a:6d:82:e7:13:15:3b:04:8f:
- e2:82:0f:2f:cf:d9:25:d9:65:a3:3c:03:c0:cd:b6:
- 51:d5
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- A3:F5:71:8A:60:80:3C:93:64:17:D9:2E:B5:C0:CE:A9:C1:14:17:C4
- X509v3 Authority Key Identifier:
- keyid:CD:97:49:78:F7:31:61:ED:2F:71:1A:68:E9:45:2C:40:78:51:93:5B
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainJ-ICA4-pathlen2/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 5b:56:cd:5e:fc:3a:fb:2b:be:7c:63:ad:a7:7b:e4:9a:00:78:
- cb:d8:e6:00:41:3d:3d:e3:f6:43:78:75:d7:c9:07:61:0c:2b:
- 43:46:8f:12:a3:5a:f0:3d:22:f4:72:ea:27:1a:70:57:48:c5:
- ec:7d:00:dd:5d:83:a6:71:f7:90:ec:69:bd:2e:86:97:06:dc:
- 9c:be:4e:a8:4c:9f:db:93:5e:fd:d8:ba:ae:89:55:65:16:cf:
- ab:a5:a4:4e:ae:21:ce:5e:e0:91:e1:77:de:e3:b4:3d:ba:d2:
- 12:f3:54:c0:50:94:16:e5:b2:62:71:58:03:2c:d1:f4:1f:ce:
- 9d:a5:ce:2a:57:9f:f7:19:41:b0:4d:e8:27:5d:f2:e6:c8:44:
- 1b:c3:57:51:76:d4:15:1a:05:31:61:c3:02:db:56:81:1e:24:
- f2:23:04:a9:5a:31:ee:08:1d:08:1f:49:d7:2c:ba:1e:00:5a:
- e5:57:8b:fd:aa:a4:2f:6a:d7:93:19:09:92:30:7d:95:68:3b:
- b7:ce:a3:f2:b9:e4:e4:e4:48:a4:22:6b:00:33:91:56:28:fc:
- 50:f7:1d:f6:70:5b:83:a8:99:98:2d:7a:6c:aa:9b:5a:a5:56:
- 5b:89:95:a8:50:27:68:ce:63:5e:d3:84:cb:80:1b:ae:3e:a2:
- 5c:13:9b:ff
------BEGIN CERTIFICATE-----
-MIIE1DCCA7ygAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluSi1JQ0EzLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMTgzMDMwWhcNMjIwNzA3MTgzMDMwWjCBozELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNV
-BAMMFmNoYWluSi1JQ0EyLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9A
-d29sZnNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7Kf2J
-qoLgHQR4aexhWFFShH5rVWks9CPWH9jtqxmWOHvGiNd9hZMANUALwKn/Zg+eoR2I
-bqmK8a1HtHHJFVDGDzWelUpm070bOHvcZ4WXG7NjyXLWQ1rxXjX2BZbHQLwjq5Q0
-glkCsjPQ5n8ZV2VoPARhUO8ilU/vGL8VsU2OzaegmCL1HAUBa0s1v4jDR8MkKbRF
-y5WhrBYd3bhorFE5JCdqvjHx7AYQVb5EAk/oEnvW/jLJSDdrIGjLU/VJOq5Kx0PB
-r+ZTEdn4cRqi1jfHK0VQSVFPVWw/Hml7WBI6flmgV50onIptgucTFTsEj+KCDy/P
-2SXZZaM8A8DNtlHVAgMBAAGjggEPMIIBCzAdBgNVHQ4EFgQUo/VximCAPJNkF9ku
-tcDOqcEUF8Qwgc4GA1UdIwSBxjCBw4AUzZdJePcxYe0vcRpo6UUsQHhRk1uhgaek
-gaQwgaExCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH
-DAdTZWF0dGxlMRUwEwYDVQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2lu
-ZWVyaW5nMR0wGwYDVQQDDBRjaGFpbkotSUNBNC1wYXRobGVuMjEfMB0GCSqGSIb3
-DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIBZDAMBgNVHRMEBTADAQH/MAsGA1UdDwQE
-AwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAW1bNXvw6+yu+fGOtp3vkmgB4y9jmAEE9
-PeP2Q3h118kHYQwrQ0aPEqNa8D0i9HLqJxpwV0jF7H0A3V2DpnH3kOxpvS6Glwbc
-nL5OqEyf25Ne/di6rolVZRbPq6WkTq4hzl7gkeF33uO0PbrSEvNUwFCUFuWyYnFY
-AyzR9B/OnaXOKlef9xlBsE3oJ13y5shEG8NXUXbUFRoFMWHDAttWgR4k8iMEqVox
-7ggdCB9J1yy6HgBa5VeL/aqkL2rXkxkJkjB9lWg7t86j8rnk5ORIpCJrADORVij8
-UPcd9nBbg6iZmC16bKqbWqVWW4mVqFAnaM5jXtOEy4Abrj6iXBOb/w==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA3-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA3-key.pem
deleted file mode 100644
index af221fe25..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA3-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEA2Kr2BZVwWlPHZhCqkHk7y3gq719DInF8bUeZp4s54edOSClI
-JeG19SXfZHvq7aofiw3n6/UvripaPVDH++8Li0QLY5S+xtdjRS6FlgBcvn4QCbPQ
-qnzeIPh1OSOF7oQTiFQqlvUWJ5+LsKYq9J0TjHEcDKZZU+z5CyvJRRPWEu850Y6c
-nq48u7bYEKy3WUlbcwC+r5IhFFSj+rYXrrbcsfFh8HUHQ15I+ueAVs/frUZShUL7
-p3BTFMa3Ufoj8PVL0bs/m/w1ytKF8aB3AgZ8eZkTtWi0FkdCiPe863iy6BEvYvba
-+e8b4J+11TJltU7kvjZrZWUalqJHtT6fsA1jQQIDAQABAoIBAFxbg8Odj+bxD25S
-bGJpSzPQZXzj/poQBhoPC1B/6IyDLLtV3YtIS2fUXQVYTSxB+HAt3U6XlVuIci7w
-4E5j92fF+ZTZMvlPluFGk2r9fIs28V8xZyFFWOp0/oL8wXqKkkjql70BfBAn0kPa
-kTT0QAD9thcuUaWUvhQk9gacDgTDa824zjrJmU/st0XkAL238VGZitW0n3FuIO/G
-FLg3wPE6VJRvbdg5KT7UplvP1gj37tIWZmRtOxwGcr5NGhHiceGD99ubFAvkZPLe
-RfRrQB/0vJ0TQLrVBhWtnRsrHuywUllrhLDUcJTnylrK/CMimmtvx03geDjo9jso
-J+RaYAECgYEA9WJzlwjAR/a5K+6b/Wds1Oqsq3KVfRPLas5DENDCAfoabVQadJWh
-DG/PtAoOWaK6Kvjg6qZyjlaB3gVVmUt7aflGYW2Ik7hpDlHY5D7tD7gOrhYzU/X9
-gnH0I9jRD9KhyRKIxMcgtQwMUX8EksfJsNm2uSbgvdLtWAad8uNg2zECgYEA4gp7
-PgBzfXq+2kt0qTbXG/+UCNXFUUChr/SrSb3g+gM/AMqmNVuRPJ3hNSEnHWt7g9Pi
-3lIKFsQel5HZZR7o/H6GOtmIBD53ropX6foSMuJ8WlDEf1+44WvfpntESED9C1Hq
-cEHTFKMWek5b8izfQBR/OzWmB33nh0AXHeBM5RECgYAw5kGqo2/N53jXLGGhie7C
-L1HhiKAJoNw0mI38190Rj8mcZ9otyXOiitWVRzu82RTIY3hOyoShoNOYbu+z8LrT
-T32bBLzm0yT8WYsjUPbk3wTt5DauUKMIT7UbP6XJxWvAKhVfQV9fNNtvkiRTK8Uh
-nQEwvHKk4Vey5v6q3Gz8wQKBgF2X+W+ywB80s9GvbJ6kFm2BZcpCuXDrUgeJR2NB
-O+ZJccziG+/7+icfOCDHmWqVFo9/LHDhh0vl6MTZnyo/ojjqKqozaB5ZvzSGE+DN
-qrtnDBZZWwNinyq3f+NvJtbEEgKd6HSSzNO+s4/w4iFkcwwVcJkTnat8dmGKKAg2
-16ABAoGBAMiKDbjbCoiCHfUDjozrEuXL7IF0sUgctVBRl/llmvFjXwOY+yE+Fchj
-bcPJw25UVJAcSvRn0U/0/eqsZCFEcrDCSlU+wU+3JDSMrf6nNFpgCYSU5a8juHXA
-tI5ofONIJ72Dt7QARgP+jpV7QZSKrsh2vZe+6uaXNgCENkSr3XrV
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA3-no_pathlen.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA3-no_pathlen.pem
deleted file mode 100644
index 7c1bfed06..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA3-no_pathlen.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA4-pathlen2, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA3-no_pathlen, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d8:aa:f6:05:95:70:5a:53:c7:66:10:aa:90:79:
- 3b:cb:78:2a:ef:5f:43:22:71:7c:6d:47:99:a7:8b:
- 39:e1:e7:4e:48:29:48:25:e1:b5:f5:25:df:64:7b:
- ea:ed:aa:1f:8b:0d:e7:eb:f5:2f:ae:2a:5a:3d:50:
- c7:fb:ef:0b:8b:44:0b:63:94:be:c6:d7:63:45:2e:
- 85:96:00:5c:be:7e:10:09:b3:d0:aa:7c:de:20:f8:
- 75:39:23:85:ee:84:13:88:54:2a:96:f5:16:27:9f:
- 8b:b0:a6:2a:f4:9d:13:8c:71:1c:0c:a6:59:53:ec:
- f9:0b:2b:c9:45:13:d6:12:ef:39:d1:8e:9c:9e:ae:
- 3c:bb:b6:d8:10:ac:b7:59:49:5b:73:00:be:af:92:
- 21:14:54:a3:fa:b6:17:ae:b6:dc:b1:f1:61:f0:75:
- 07:43:5e:48:fa:e7:80:56:cf:df:ad:46:52:85:42:
- fb:a7:70:53:14:c6:b7:51:fa:23:f0:f5:4b:d1:bb:
- 3f:9b:fc:35:ca:d2:85:f1:a0:77:02:06:7c:79:99:
- 13:b5:68:b4:16:47:42:88:f7:bc:eb:78:b2:e8:11:
- 2f:62:f6:da:f9:ef:1b:e0:9f:b5:d5:32:65:b5:4e:
- e4:be:36:6b:65:65:1a:96:a2:47:b5:3e:9f:b0:0d:
- 63:41
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- CD:97:49:78:F7:31:61:ED:2F:71:1A:68:E9:45:2C:40:78:51:93:5B
- X509v3 Authority Key Identifier:
- keyid:FC:18:13:52:BB:33:4A:DB:1C:5B:D1:80:98:3E:40:86:95:58:72:F9
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 38:56:e6:30:a8:f8:db:32:4c:53:e0:8f:c5:08:98:3f:ce:bf:
- b1:04:b0:52:24:63:6a:14:86:41:08:13:78:aa:98:7e:07:9b:
- 1d:22:9e:61:b6:69:fb:f9:24:a3:8e:4b:f2:1f:39:6a:0b:a1:
- ff:1f:9b:65:7c:7f:85:8c:d8:ce:3d:83:93:4c:00:4e:7f:d0:
- 44:53:b1:a8:7d:bf:43:f1:d7:f2:2c:86:20:b8:cf:11:39:bb:
- 7e:21:28:ca:20:4b:0a:46:97:d3:c6:82:2c:4e:25:8a:e4:92:
- 84:da:c2:9b:15:3a:5c:8b:fc:a1:b7:76:f9:e8:80:79:1f:fc:
- 4f:d4:18:f1:17:fa:19:87:4d:3c:81:e1:82:ce:e2:5c:d2:c0:
- cd:e8:44:5a:dd:f1:41:5f:a2:df:27:a9:d4:4e:f7:2c:7a:8c:
- 5f:dd:f2:3e:e3:c5:1f:7b:5f:0e:6f:9c:9a:c8:eb:63:0f:98:
- eb:7e:e6:89:56:d9:c7:f4:6d:20:d9:0f:a5:81:82:90:90:95:
- 53:62:80:9d:e3:93:44:4c:33:00:1e:b9:c8:b2:13:53:d2:a3:
- 18:96:86:40:92:74:bf:a9:8e:77:ff:a8:3b:7f:c6:92:c8:b4:
- 4e:6c:17:7f:36:9d:f6:64:11:f9:26:5e:55:09:36:fe:8c:84:
- 81:08:0e:a3
------BEGIN CERTIFICATE-----
-MIIExDCCA6ygAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluSi1JQ0E0LXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTE4MzAzMFoXDTIyMDcwNzE4MzAzMFowgaMxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR8wHQYDVQQD
-DBZjaGFpbkotSUNBMy1ub19wYXRobGVuMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Kr2BZVw
-WlPHZhCqkHk7y3gq719DInF8bUeZp4s54edOSClIJeG19SXfZHvq7aofiw3n6/Uv
-ripaPVDH++8Li0QLY5S+xtdjRS6FlgBcvn4QCbPQqnzeIPh1OSOF7oQTiFQqlvUW
-J5+LsKYq9J0TjHEcDKZZU+z5CyvJRRPWEu850Y6cnq48u7bYEKy3WUlbcwC+r5Ih
-FFSj+rYXrrbcsfFh8HUHQ15I+ueAVs/frUZShUL7p3BTFMa3Ufoj8PVL0bs/m/w1
-ytKF8aB3AgZ8eZkTtWi0FkdCiPe863iy6BEvYvba+e8b4J+11TJltU7kvjZrZWUa
-lqJHtT6fsA1jQQIDAQABo4IBATCB/jAdBgNVHQ4EFgQUzZdJePcxYe0vcRpo6UUs
-QHhRk1swgcEGA1UdIwSBuTCBtoAU/BgTUrszStscW9GAmD5AhpVYcvmhgZqkgZcw
-gZQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3pl
-bWFuMREwDwYDVQQKDAhTYXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYG
-A1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tggFkMAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEB
-CwUAA4IBAQA4VuYwqPjbMkxT4I/FCJg/zr+xBLBSJGNqFIZBCBN4qph+B5sdIp5h
-tmn7+SSjjkvyHzlqC6H/H5tlfH+FjNjOPYOTTABOf9BEU7Gofb9D8dfyLIYguM8R
-Obt+ISjKIEsKRpfTxoIsTiWK5JKE2sKbFTpci/yht3b56IB5H/xP1BjxF/oZh008
-geGCzuJc0sDN6ERa3fFBX6LfJ6nUTvcseoxf3fI+48Ufe18Ob5yayOtjD5jrfuaJ
-VtnH9G0g2Q+lgYKQkJVTYoCd45NETDMAHrnIshNT0qMYloZAknS/qY53/6g7f8aS
-yLRObBd/Np32ZBH5Jl5VCTb+jISBCA6j
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA4-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA4-key.pem
deleted file mode 100644
index f795822c3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA4-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEAnUrua/+27IghI4QDtoi7PloblQMvJFMtVz8ROF0SHUBrENvC
-0+TdgHd0e4hEZeDPUsWKQuVut2qrUKAuKcL+utXH2muRJo/8HgYX8N5Yh+8eppES
-OWilBfOMZ8nlmRik/JA/vabK8qbdteaTyxSJgzyIWjGr42YqG4fFhQNFsM7hD8EP
-knDXrGXqqAnB/h3bt+fdmNPGsRa0VFjBqrqhzxkUp+RVptq7H57RhQDgjUrE0oYI
-df3YHoUhbCePGNVEc1irlHVKNj2NTcZ6hp0A28W6vnACg79u2DGJs/IWmL4n9hRa
-6dRyZ42p33YnvxmsIFkoWxtC2dVbbftuol7T6QIDAQABAoIBAFOs+QkbEATkpjxu
-jksckf+pj+LFvt5kIUq4kkCZwnktO8fMIOj4Z51f7ueIplpMLf6qd9L+mteYN2q8
-y9ILmddqwta/QohxMH4IX9QTdKVb38JcioVf1epElfzguvOm2J5DXqVVhcFwY6HQ
-9+6hDkZyfVb99aMTRnM+1yTbiMd1cTV/hee0cCaS/A4WjJicldbLMUQ9GFlfoaNa
-z7Vik0XnQZoAJKLFIqo+r3At1x4HQ6CTeIKLrUUCiIJp2AKTw1ZddSS+n1ELb7ms
-MavRWChI5aYk9IhVTIzjFgsY5SWj5z2ta5dCngX0miTtr3CegUH8r7BAHTosezAW
-CALcj8ECgYEA0S2AMpTdv2LdzTB9KLCGhHHbZSGgf/RBqvtkY2vCOKUSnZ3eT6Vy
-wdVsRumbwMzmgzDP91SPsb7h0kq8VvplAyREsIm7lo+C1rZOjefBXRTMbZezjkPA
-+OIA7DauyRpeICjhraMC3a5VDJgHPYb21juJZLf6wmA79uiye4ElbqcCgYEAwIBD
-85yw4N7zH+0h9h9aJH7JU9CAQQ0EETJyDgCRqk5eSepoQEG3WpJw2tuP1cQpvJS8
-WCo1/k5eeyawOVHtkXoSXmsJF4QcGkyK/bbrlqpqzqB9hWw2s0XY8yY22PWOV64H
-ugxTAr59G4Fp1LthyzL0Si4c/u5O3iSV9eJWCu8CgYBYPTd9HutEFvK14iSKC51T
-Nax1RvAryeABvrakcgqmVow5zSTAuGxmdB+O8nDvrf/3i5nPHe7X7kvYqAo3Lr15
-y8zmI9PsOXHaHWGZ3w/ksidie8IU22QGGWCGRLMKxoK6UkSRONi2pxndjCxRuiNa
-UBcvU6UGZg4lpBfWna4qtQKBgCaOyo2WOhugrKQddGr/FqguuRbPsZDWEZV8PDov
-xP2O2vYFPMJ6J0a+BFriFapks1Nxm1QxiEUa33PdaPjiPyqff+RnnheWv6ZI5KIz
-LHcuRVyD6wB5j29TM0RoyB2m+c74LdYHN+1ZyGdlAZS5v7nax/G/0NEDXMrEG0F4
-B3IDAoGBAKi0u0aMsVKOY1X9AR/4PWwe2zD6JWIT9oGWXGmp3CjXH+RxoSCTtYYr
-1eLmgVkKA0dYrJO4QqZ26pLst3FZ0trAH0zhbn5y7NWy2AdDFMFClk5D8a+VEm1S
-ejTDoNtohKlDFgaGC15mrHpv6JfpKGlBpRuTH8DRuCpaoqLQ9bOO
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA4-pathlen2.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA4-pathlen2.pem
deleted file mode 100644
index 0d3e8258a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-ICA4-pathlen2.pem
+++ /dev/null
@@ -1,89 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA4-pathlen2, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:9d:4a:ee:6b:ff:b6:ec:88:21:23:84:03:b6:88:
- bb:3e:5a:1b:95:03:2f:24:53:2d:57:3f:11:38:5d:
- 12:1d:40:6b:10:db:c2:d3:e4:dd:80:77:74:7b:88:
- 44:65:e0:cf:52:c5:8a:42:e5:6e:b7:6a:ab:50:a0:
- 2e:29:c2:fe:ba:d5:c7:da:6b:91:26:8f:fc:1e:06:
- 17:f0:de:58:87:ef:1e:a6:91:12:39:68:a5:05:f3:
- 8c:67:c9:e5:99:18:a4:fc:90:3f:bd:a6:ca:f2:a6:
- dd:b5:e6:93:cb:14:89:83:3c:88:5a:31:ab:e3:66:
- 2a:1b:87:c5:85:03:45:b0:ce:e1:0f:c1:0f:92:70:
- d7:ac:65:ea:a8:09:c1:fe:1d:db:b7:e7:dd:98:d3:
- c6:b1:16:b4:54:58:c1:aa:ba:a1:cf:19:14:a7:e4:
- 55:a6:da:bb:1f:9e:d1:85:00:e0:8d:4a:c4:d2:86:
- 08:75:fd:d8:1e:85:21:6c:27:8f:18:d5:44:73:58:
- ab:94:75:4a:36:3d:8d:4d:c6:7a:86:9d:00:db:c5:
- ba:be:70:02:83:bf:6e:d8:31:89:b3:f2:16:98:be:
- 27:f6:14:5a:e9:d4:72:67:8d:a9:df:76:27:bf:19:
- ac:20:59:28:5b:1b:42:d9:d5:5b:6d:fb:6e:a2:5e:
- d3:e9
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- FC:18:13:52:BB:33:4A:DB:1C:5B:D1:80:98:3E:40:86:95:58:72:F9
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:2
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 0d:bc:87:df:e4:68:a5:56:54:d2:89:42:d8:b4:1b:45:6f:88:
- b2:39:d1:ad:38:f4:0b:68:5e:e1:3e:88:60:4f:69:be:a8:ee:
- 1d:14:08:69:86:ee:6a:08:42:35:6e:44:4f:5f:be:13:00:81:
- ca:41:a7:70:d3:48:9f:60:03:14:a4:4b:7f:35:7e:6d:94:0b:
- cf:63:00:fe:8e:54:2c:4c:ac:fb:ef:4c:68:91:9a:0f:45:3e:
- 07:12:f2:74:e6:83:36:8e:61:49:f9:03:17:e2:16:72:eb:6b:
- c3:c1:7b:95:37:31:1f:10:b9:fc:7b:e4:54:d4:4f:81:a0:f8:
- 0e:be:99:43:50:dd:19:7e:f9:41:8b:0d:2e:b2:e5:2c:ec:9b:
- 20:42:f4:3a:da:03:99:bc:c1:c2:6c:69:4e:8e:6e:ad:22:57:
- dc:2c:1a:e3:4f:15:c4:b3:b4:5d:2d:be:d8:62:0a:a4:c9:62:
- fb:9a:53:26:ee:8f:8e:43:a6:e2:77:9b:1f:1f:4f:86:b5:65:
- 22:3c:0d:f7:75:ab:24:2d:5b:6f:96:3f:26:22:b0:de:b2:4e:
- 37:fd:f9:9a:22:81:15:91:c5:b0:54:f2:ee:f0:e9:7f:23:ab:
- 43:1c:43:e1:e4:bf:61:20:13:f3:4f:b6:71:77:a3:23:89:fb:
- 02:c2:24:5e
------BEGIN CERTIFICATE-----
-MIIEwTCCA6mgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MTgzMDMwWhcNMjIwNzA3MTgzMDMwWjCBoTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNoYWluSi1JQ0E0
-LXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnUrua/+27IghI4QDtoi7PloblQMv
-JFMtVz8ROF0SHUBrENvC0+TdgHd0e4hEZeDPUsWKQuVut2qrUKAuKcL+utXH2muR
-Jo/8HgYX8N5Yh+8eppESOWilBfOMZ8nlmRik/JA/vabK8qbdteaTyxSJgzyIWjGr
-42YqG4fFhQNFsM7hD8EPknDXrGXqqAnB/h3bt+fdmNPGsRa0VFjBqrqhzxkUp+RV
-ptq7H57RhQDgjUrE0oYIdf3YHoUhbCePGNVEc1irlHVKNj2NTcZ6hp0A28W6vnAC
-g79u2DGJs/IWmL4n9hRa6dRyZ42p33YnvxmsIFkoWxtC2dVbbftuol7T6QIDAQAB
-o4IBDTCCAQkwHQYDVR0OBBYEFPwYE1K7M0rbHFvRgJg+QIaVWHL5MIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MA8GA1UdEwQIMAYBAf8CAQIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUA
-A4IBAQANvIff5GilVlTSiULYtBtFb4iyOdGtOPQLaF7hPohgT2m+qO4dFAhphu5q
-CEI1bkRPX74TAIHKQadw00ifYAMUpEt/NX5tlAvPYwD+jlQsTKz770xokZoPRT4H
-EvJ05oM2jmFJ+QMX4hZy62vDwXuVNzEfELn8e+RU1E+BoPgOvplDUN0ZfvlBiw0u
-suUs7JsgQvQ62gOZvMHCbGlOjm6tIlfcLBrjTxXEs7RdLb7YYgqkyWL7mlMm7o+O
-Q6bid5sfH0+GtWUiPA33daskLVtvlj8mIrDesk43/fmaIoEVkcWwVPLu8Ol/I6tD
-HEPh5L9hIBPzT7Zxd6MjifsCwiRe
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-assembled.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-assembled.pem
deleted file mode 100644
index 4e93b51f6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-assembled.pem
+++ /dev/null
@@ -1,443 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA1-no_pathlen, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:b3:fb:51:a0:ac:69:8b:35:06:bf:7a:ee:b4:a1:
- 8a:7e:ae:31:75:ad:e7:45:7b:e6:d9:bb:7c:e9:73:
- 0e:de:cf:05:74:df:37:a4:37:33:a6:6f:59:06:c8:
- 9f:19:35:c3:94:f7:05:ba:52:eb:3e:92:29:61:48:
- 88:fa:6d:42:b4:30:de:ce:df:94:ed:92:88:60:c8:
- 55:36:50:ee:36:b5:ed:35:6f:95:01:f4:88:4b:7b:
- 3e:fe:b5:9c:64:c0:72:be:8c:74:6a:8c:f5:e4:65:
- 66:87:52:9d:7b:b0:20:f6:d8:c3:de:76:b9:70:7c:
- 01:82:6e:fc:fa:1b:e7:c4:c1:5f:38:ce:50:dc:3a:
- 22:87:bc:19:9a:45:d5:8a:7a:93:f9:78:59:c7:0a:
- f9:8f:eb:c3:79:eb:b5:ee:36:f0:5e:5d:2f:8f:46:
- e8:63:c2:31:82:fc:fb:5d:8c:ca:01:b1:bb:72:2b:
- e7:2f:82:3c:a6:24:a6:3f:58:7e:69:5b:4a:00:b4:
- 25:b3:b3:c3:b3:b0:c2:3f:a3:d7:ee:04:12:1d:ab:
- 0b:bb:02:b0:6c:0b:36:64:56:a9:5d:37:e5:0a:28:
- 44:5e:15:e4:f5:ab:73:98:0a:b3:28:90:1d:30:f2:
- 8c:e7:db:13:6a:0f:b4:cb:8d:06:15:86:ce:35:12:
- e3:a9
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 13:92:E0:30:5E:36:4F:BF:D5:E3:0D:5D:40:0B:64:95:EC:8E:77:4E
- X509v3 Authority Key Identifier:
- keyid:9C:7B:3A:10:B3:08:99:05:00:AF:3E:E0:A4:5D:D9:AF:82:BC:4D:C0
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainJ-ICA2-no_pathlen/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 10:a0:e0:ea:4b:df:4c:5b:92:da:6b:13:5a:4b:e9:46:1a:17:
- 48:42:5e:08:c8:28:e4:ce:69:46:25:55:70:57:bd:4e:b2:0b:
- a4:75:22:b6:5b:d7:e0:54:3f:31:14:99:09:c1:3b:6f:b7:59:
- 5a:52:67:46:0c:4f:ec:fa:31:4a:6e:59:04:50:99:60:1e:74:
- ed:3a:ac:4d:cd:98:31:4d:b1:54:07:3e:76:bb:92:e2:1d:53:
- 65:08:38:e3:4d:b0:d8:74:14:5f:00:94:e7:d2:c9:9d:80:23:
- f5:9e:3d:8c:22:72:b3:20:5a:01:a3:02:f2:9c:cc:b8:1d:73:
- db:eb:cc:cb:27:4f:75:17:1d:23:68:07:4f:15:be:00:cc:a9:
- 2a:14:82:2c:0e:e3:92:40:dc:62:ac:d9:61:24:99:19:43:d5:
- 3e:85:ca:e5:6d:e1:76:9a:4e:01:ef:34:98:7a:1b:ca:8b:c3:
- de:99:22:75:28:11:0c:17:7a:58:7b:44:33:22:58:61:24:8c:
- 96:a5:a7:63:19:31:6d:61:83:1c:5f:50:66:48:29:b4:2d:8e:
- 5e:f3:63:85:e8:9c:d8:6e:93:4a:4d:ff:b1:d5:60:96:d0:9f:
- 4e:3f:6f:c9:b4:e1:04:b8:ef:55:c2:77:c1:e1:50:d0:a7:b8:
- 9d:a3:81:71
------BEGIN CERTIFICATE-----
-MIIEvDCCA6SgAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluSi1JQ0ExLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMTgzMDMwWhcNMjIwNzA3MTgzMDMwWjCBmjELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxFjAUBgNV
-BAMMDWNoYWluSi1lbnRpdHkxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz+1GgrGmLNQa/eu60
-oYp+rjF1redFe+bZu3zpcw7ezwV03zekNzOmb1kGyJ8ZNcOU9wW6Uus+kilhSIj6
-bUK0MN7O35TtkohgyFU2UO42te01b5UB9IhLez7+tZxkwHK+jHRqjPXkZWaHUp17
-sCD22MPedrlwfAGCbvz6G+fEwV84zlDcOiKHvBmaRdWKepP5eFnHCvmP68N567Xu
-NvBeXS+PRuhjwjGC/PtdjMoBsbtyK+cvgjymJKY/WH5pW0oAtCWzs8OzsMI/o9fu
-BBIdqwu7ArBsCzZkVqldN+UKKEReFeT1q3OYCrMokB0w8ozn2xNqD7TLjQYVhs41
-EuOpAgMBAAGjggEAMIH9MB0GA1UdDgQWBBQTkuAwXjZPv9XjDV1AC2SV7I53TjCB
-0AYDVR0jBIHIMIHFgBScezoQswiZBQCvPuCkXdmvgrxNwKGBqaSBpjCBozELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-FTATBgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAd
-BgNVBAMMFmNoYWluSi1JQ0EyLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGlu
-Zm9Ad29sZnNzbC5jb22CAWQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEA
-EKDg6kvfTFuS2msTWkvpRhoXSEJeCMgo5M5pRiVVcFe9TrILpHUitlvX4FQ/MRSZ
-CcE7b7dZWlJnRgxP7PoxSm5ZBFCZYB507TqsTc2YMU2xVAc+druS4h1TZQg4402w
-2HQUXwCU59LJnYAj9Z49jCJysyBaAaMC8pzMuB1z2+vMyydPdRcdI2gHTxW+AMyp
-KhSCLA7jkkDcYqzZYSSZGUPVPoXK5W3hdppOAe80mHobyovD3pkidSgRDBd6WHtE
-MyJYYSSMlqWnYxkxbWGDHF9QZkgptC2OXvNjheic2G6TSk3/sdVgltCfTj9vybTh
-BLjvVcJ3weFQ0Ke4naOBcQ==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA2-no_pathlen, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA1-no_pathlen, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:a7:6f:44:c2:11:cc:2c:f4:2a:a5:a8:08:53:4b:
- 0e:cd:96:23:bb:15:4a:2a:dd:f9:a7:19:2b:91:28:
- e8:73:a3:57:b4:49:3a:37:82:8f:15:38:5a:aa:af:
- ad:72:26:2e:84:c2:0d:de:fc:f0:be:3b:a2:11:a9:
- 12:20:d4:3d:de:62:85:85:91:08:60:db:c0:4a:bb:
- 89:b6:f4:91:1e:51:a3:b2:f7:08:99:df:48:4a:59:
- 84:d1:aa:09:36:0d:cd:68:a5:ae:41:c8:d7:1a:d8:
- ea:49:87:20:22:27:f9:45:54:3e:c7:c8:00:44:7e:
- 34:72:aa:8d:2d:4d:6a:3e:75:89:e2:d4:17:57:f9:
- cd:2b:d0:b7:14:6a:54:1b:61:af:9b:68:22:b1:16:
- 73:eb:05:6c:41:ea:ed:10:4e:bc:83:04:68:c8:3a:
- e1:03:12:ad:28:5c:24:4c:19:a1:7e:d8:ef:1b:80:
- e4:0e:49:0c:69:86:f6:1e:e7:01:fb:2a:6f:56:1b:
- 6d:0a:ad:e9:29:3f:31:bb:48:28:40:79:2b:b5:f3:
- aa:ec:e9:09:4c:82:fc:97:28:19:a3:3a:c0:d2:5e:
- a3:8a:98:c8:8a:b7:d2:c4:90:bc:ff:cc:47:13:90:
- ad:00:ab:8a:ec:f7:94:35:09:60:10:35:9f:32:c5:
- 00:1b
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 9C:7B:3A:10:B3:08:99:05:00:AF:3E:E0:A4:5D:D9:AF:82:BC:4D:C0
- X509v3 Authority Key Identifier:
- keyid:A3:F5:71:8A:60:80:3C:93:64:17:D9:2E:B5:C0:CE:A9:C1:14:17:C4
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainJ-ICA3-no_pathlen/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 1c:0b:c0:44:10:dc:db:df:b9:3e:a0:95:09:d7:13:63:81:f7:
- 32:57:19:84:72:2d:8e:60:66:0e:78:f3:35:7d:71:f8:95:88:
- bc:90:52:e1:e2:4e:fe:4a:f7:bd:66:fe:b7:73:84:7f:96:ee:
- ba:93:97:31:01:af:74:4f:60:40:74:d2:b5:a1:2f:e0:79:1a:
- e2:67:08:ee:d4:60:43:1d:bc:79:9d:61:ae:fe:5e:9b:c8:b3:
- 69:4e:d0:2b:2b:61:7a:51:1a:c9:bf:8c:b5:ff:ee:ee:42:eb:
- ad:e4:90:53:1c:ed:a6:6f:27:51:1f:bf:b1:e3:0e:28:70:46:
- 36:91:2e:72:82:b8:05:ee:42:c0:bd:17:0a:38:96:da:13:a4:
- d5:a3:9d:bd:82:c3:aa:9f:ff:a8:cd:28:38:ae:18:44:a6:e3:
- 60:eb:e0:4c:bd:1f:9e:99:e9:47:38:86:08:29:61:64:d6:6a:
- 55:a0:eb:5a:62:24:d5:48:36:5b:51:5c:7f:5f:94:21:ea:d4:
- 5e:7d:ee:ec:e7:3f:5b:35:59:8f:84:b9:00:53:80:3e:6a:a0:
- db:de:a9:36:9e:f2:1e:48:77:cb:df:94:af:4c:a8:cc:93:c4:
- 03:74:ca:ec:d8:86:a3:b9:49:76:b7:af:44:b3:b4:51:ca:a8:
- 8b:78:73:f5
------BEGIN CERTIFICATE-----
-MIIE1jCCA76gAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluSi1JQ0EyLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMTgzMDMwWhcNMjIwNzA3MTgzMDMwWjCBozELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNV
-BAMMFmNoYWluSi1JQ0ExLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9A
-d29sZnNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCnb0TC
-Ecws9CqlqAhTSw7NliO7FUoq3fmnGSuRKOhzo1e0STo3go8VOFqqr61yJi6Ewg3e
-/PC+O6IRqRIg1D3eYoWFkQhg28BKu4m29JEeUaOy9wiZ30hKWYTRqgk2Dc1opa5B
-yNca2OpJhyAiJ/lFVD7HyABEfjRyqo0tTWo+dYni1BdX+c0r0LcUalQbYa+baCKx
-FnPrBWxB6u0QTryDBGjIOuEDEq0oXCRMGaF+2O8bgOQOSQxphvYe5wH7Km9WG20K
-rekpPzG7SChAeSu186rs6QlMgvyXKBmjOsDSXqOKmMiKt9LEkLz/zEcTkK0Aq4rs
-95Q1CWAQNZ8yxQAbAgMBAAGjggERMIIBDTAdBgNVHQ4EFgQUnHs6ELMImQUArz7g
-pF3Zr4K8TcAwgdAGA1UdIwSByDCBxYAUo/VximCAPJNkF9kutcDOqcEUF8Shgamk
-gaYwgaMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH
-DAdTZWF0dGxlMRUwEwYDVQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2lu
-ZWVyaW5nMR8wHQYDVQQDDBZjaGFpbkotSUNBMy1ub19wYXRobGVuMR8wHQYJKoZI
-hvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggFkMAwGA1UdEwQFMAMBAf8wCwYDVR0P
-BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IBAQAcC8BEENzb37k+oJUJ1xNjgfcyVxmE
-ci2OYGYOePM1fXH4lYi8kFLh4k7+Sve9Zv63c4R/lu66k5cxAa90T2BAdNK1oS/g
-eRriZwju1GBDHbx5nWGu/l6byLNpTtArK2F6URrJv4y1/+7uQuut5JBTHO2mbydR
-H7+x4w4ocEY2kS5ygrgF7kLAvRcKOJbaE6TVo529gsOqn/+ozSg4rhhEpuNg6+BM
-vR+emelHOIYIKWFk1mpVoOtaYiTVSDZbUVx/X5Qh6tRefe7s5z9bNVmPhLkAU4A+
-aqDb3qk2nvIeSHfL35SvTKjMk8QDdMrs2IajuUl2t69Es7RRyqiLeHP1
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA3-no_pathlen, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA2-no_pathlen, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:bb:29:fd:89:aa:82:e0:1d:04:78:69:ec:61:58:
- 51:52:84:7e:6b:55:69:2c:f4:23:d6:1f:d8:ed:ab:
- 19:96:38:7b:c6:88:d7:7d:85:93:00:35:40:0b:c0:
- a9:ff:66:0f:9e:a1:1d:88:6e:a9:8a:f1:ad:47:b4:
- 71:c9:15:50:c6:0f:35:9e:95:4a:66:d3:bd:1b:38:
- 7b:dc:67:85:97:1b:b3:63:c9:72:d6:43:5a:f1:5e:
- 35:f6:05:96:c7:40:bc:23:ab:94:34:82:59:02:b2:
- 33:d0:e6:7f:19:57:65:68:3c:04:61:50:ef:22:95:
- 4f:ef:18:bf:15:b1:4d:8e:cd:a7:a0:98:22:f5:1c:
- 05:01:6b:4b:35:bf:88:c3:47:c3:24:29:b4:45:cb:
- 95:a1:ac:16:1d:dd:b8:68:ac:51:39:24:27:6a:be:
- 31:f1:ec:06:10:55:be:44:02:4f:e8:12:7b:d6:fe:
- 32:c9:48:37:6b:20:68:cb:53:f5:49:3a:ae:4a:c7:
- 43:c1:af:e6:53:11:d9:f8:71:1a:a2:d6:37:c7:2b:
- 45:50:49:51:4f:55:6c:3f:1e:69:7b:58:12:3a:7e:
- 59:a0:57:9d:28:9c:8a:6d:82:e7:13:15:3b:04:8f:
- e2:82:0f:2f:cf:d9:25:d9:65:a3:3c:03:c0:cd:b6:
- 51:d5
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- A3:F5:71:8A:60:80:3C:93:64:17:D9:2E:B5:C0:CE:A9:C1:14:17:C4
- X509v3 Authority Key Identifier:
- keyid:CD:97:49:78:F7:31:61:ED:2F:71:1A:68:E9:45:2C:40:78:51:93:5B
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainJ-ICA4-pathlen2/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 5b:56:cd:5e:fc:3a:fb:2b:be:7c:63:ad:a7:7b:e4:9a:00:78:
- cb:d8:e6:00:41:3d:3d:e3:f6:43:78:75:d7:c9:07:61:0c:2b:
- 43:46:8f:12:a3:5a:f0:3d:22:f4:72:ea:27:1a:70:57:48:c5:
- ec:7d:00:dd:5d:83:a6:71:f7:90:ec:69:bd:2e:86:97:06:dc:
- 9c:be:4e:a8:4c:9f:db:93:5e:fd:d8:ba:ae:89:55:65:16:cf:
- ab:a5:a4:4e:ae:21:ce:5e:e0:91:e1:77:de:e3:b4:3d:ba:d2:
- 12:f3:54:c0:50:94:16:e5:b2:62:71:58:03:2c:d1:f4:1f:ce:
- 9d:a5:ce:2a:57:9f:f7:19:41:b0:4d:e8:27:5d:f2:e6:c8:44:
- 1b:c3:57:51:76:d4:15:1a:05:31:61:c3:02:db:56:81:1e:24:
- f2:23:04:a9:5a:31:ee:08:1d:08:1f:49:d7:2c:ba:1e:00:5a:
- e5:57:8b:fd:aa:a4:2f:6a:d7:93:19:09:92:30:7d:95:68:3b:
- b7:ce:a3:f2:b9:e4:e4:e4:48:a4:22:6b:00:33:91:56:28:fc:
- 50:f7:1d:f6:70:5b:83:a8:99:98:2d:7a:6c:aa:9b:5a:a5:56:
- 5b:89:95:a8:50:27:68:ce:63:5e:d3:84:cb:80:1b:ae:3e:a2:
- 5c:13:9b:ff
------BEGIN CERTIFICATE-----
-MIIE1DCCA7ygAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluSi1JQ0EzLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMTgzMDMwWhcNMjIwNzA3MTgzMDMwWjCBozELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNV
-BAMMFmNoYWluSi1JQ0EyLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9A
-d29sZnNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7Kf2J
-qoLgHQR4aexhWFFShH5rVWks9CPWH9jtqxmWOHvGiNd9hZMANUALwKn/Zg+eoR2I
-bqmK8a1HtHHJFVDGDzWelUpm070bOHvcZ4WXG7NjyXLWQ1rxXjX2BZbHQLwjq5Q0
-glkCsjPQ5n8ZV2VoPARhUO8ilU/vGL8VsU2OzaegmCL1HAUBa0s1v4jDR8MkKbRF
-y5WhrBYd3bhorFE5JCdqvjHx7AYQVb5EAk/oEnvW/jLJSDdrIGjLU/VJOq5Kx0PB
-r+ZTEdn4cRqi1jfHK0VQSVFPVWw/Hml7WBI6flmgV50onIptgucTFTsEj+KCDy/P
-2SXZZaM8A8DNtlHVAgMBAAGjggEPMIIBCzAdBgNVHQ4EFgQUo/VximCAPJNkF9ku
-tcDOqcEUF8Qwgc4GA1UdIwSBxjCBw4AUzZdJePcxYe0vcRpo6UUsQHhRk1uhgaek
-gaQwgaExCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH
-DAdTZWF0dGxlMRUwEwYDVQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2lu
-ZWVyaW5nMR0wGwYDVQQDDBRjaGFpbkotSUNBNC1wYXRobGVuMjEfMB0GCSqGSIb3
-DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIBZDAMBgNVHRMEBTADAQH/MAsGA1UdDwQE
-AwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAW1bNXvw6+yu+fGOtp3vkmgB4y9jmAEE9
-PeP2Q3h118kHYQwrQ0aPEqNa8D0i9HLqJxpwV0jF7H0A3V2DpnH3kOxpvS6Glwbc
-nL5OqEyf25Ne/di6rolVZRbPq6WkTq4hzl7gkeF33uO0PbrSEvNUwFCUFuWyYnFY
-AyzR9B/OnaXOKlef9xlBsE3oJ13y5shEG8NXUXbUFRoFMWHDAttWgR4k8iMEqVox
-7ggdCB9J1yy6HgBa5VeL/aqkL2rXkxkJkjB9lWg7t86j8rnk5ORIpCJrADORVij8
-UPcd9nBbg6iZmC16bKqbWqVWW4mVqFAnaM5jXtOEy4Abrj6iXBOb/w==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA4-pathlen2, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA3-no_pathlen, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:d8:aa:f6:05:95:70:5a:53:c7:66:10:aa:90:79:
- 3b:cb:78:2a:ef:5f:43:22:71:7c:6d:47:99:a7:8b:
- 39:e1:e7:4e:48:29:48:25:e1:b5:f5:25:df:64:7b:
- ea:ed:aa:1f:8b:0d:e7:eb:f5:2f:ae:2a:5a:3d:50:
- c7:fb:ef:0b:8b:44:0b:63:94:be:c6:d7:63:45:2e:
- 85:96:00:5c:be:7e:10:09:b3:d0:aa:7c:de:20:f8:
- 75:39:23:85:ee:84:13:88:54:2a:96:f5:16:27:9f:
- 8b:b0:a6:2a:f4:9d:13:8c:71:1c:0c:a6:59:53:ec:
- f9:0b:2b:c9:45:13:d6:12:ef:39:d1:8e:9c:9e:ae:
- 3c:bb:b6:d8:10:ac:b7:59:49:5b:73:00:be:af:92:
- 21:14:54:a3:fa:b6:17:ae:b6:dc:b1:f1:61:f0:75:
- 07:43:5e:48:fa:e7:80:56:cf:df:ad:46:52:85:42:
- fb:a7:70:53:14:c6:b7:51:fa:23:f0:f5:4b:d1:bb:
- 3f:9b:fc:35:ca:d2:85:f1:a0:77:02:06:7c:79:99:
- 13:b5:68:b4:16:47:42:88:f7:bc:eb:78:b2:e8:11:
- 2f:62:f6:da:f9:ef:1b:e0:9f:b5:d5:32:65:b5:4e:
- e4:be:36:6b:65:65:1a:96:a2:47:b5:3e:9f:b0:0d:
- 63:41
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- CD:97:49:78:F7:31:61:ED:2F:71:1A:68:E9:45:2C:40:78:51:93:5B
- X509v3 Authority Key Identifier:
- keyid:FC:18:13:52:BB:33:4A:DB:1C:5B:D1:80:98:3E:40:86:95:58:72:F9
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:TRUE
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 38:56:e6:30:a8:f8:db:32:4c:53:e0:8f:c5:08:98:3f:ce:bf:
- b1:04:b0:52:24:63:6a:14:86:41:08:13:78:aa:98:7e:07:9b:
- 1d:22:9e:61:b6:69:fb:f9:24:a3:8e:4b:f2:1f:39:6a:0b:a1:
- ff:1f:9b:65:7c:7f:85:8c:d8:ce:3d:83:93:4c:00:4e:7f:d0:
- 44:53:b1:a8:7d:bf:43:f1:d7:f2:2c:86:20:b8:cf:11:39:bb:
- 7e:21:28:ca:20:4b:0a:46:97:d3:c6:82:2c:4e:25:8a:e4:92:
- 84:da:c2:9b:15:3a:5c:8b:fc:a1:b7:76:f9:e8:80:79:1f:fc:
- 4f:d4:18:f1:17:fa:19:87:4d:3c:81:e1:82:ce:e2:5c:d2:c0:
- cd:e8:44:5a:dd:f1:41:5f:a2:df:27:a9:d4:4e:f7:2c:7a:8c:
- 5f:dd:f2:3e:e3:c5:1f:7b:5f:0e:6f:9c:9a:c8:eb:63:0f:98:
- eb:7e:e6:89:56:d9:c7:f4:6d:20:d9:0f:a5:81:82:90:90:95:
- 53:62:80:9d:e3:93:44:4c:33:00:1e:b9:c8:b2:13:53:d2:a3:
- 18:96:86:40:92:74:bf:a9:8e:77:ff:a8:3b:7f:c6:92:c8:b4:
- 4e:6c:17:7f:36:9d:f6:64:11:f9:26:5e:55:09:36:fe:8c:84:
- 81:08:0e:a3
------BEGIN CERTIFICATE-----
-MIIExDCCA6ygAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBoTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNo
-YWluSi1JQ0E0LXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wu
-Y29tMB4XDTE5MTAxMTE4MzAzMFoXDTIyMDcwNzE4MzAzMFowgaMxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRUwEwYD
-VQQKDAx3b2xmU1NMIEluYy4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMR8wHQYDVQQD
-DBZjaGFpbkotSUNBMy1ub19wYXRobGVuMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv
-bGZzc2wuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Kr2BZVw
-WlPHZhCqkHk7y3gq719DInF8bUeZp4s54edOSClIJeG19SXfZHvq7aofiw3n6/Uv
-ripaPVDH++8Li0QLY5S+xtdjRS6FlgBcvn4QCbPQqnzeIPh1OSOF7oQTiFQqlvUW
-J5+LsKYq9J0TjHEcDKZZU+z5CyvJRRPWEu850Y6cnq48u7bYEKy3WUlbcwC+r5Ih
-FFSj+rYXrrbcsfFh8HUHQ15I+ueAVs/frUZShUL7p3BTFMa3Ufoj8PVL0bs/m/w1
-ytKF8aB3AgZ8eZkTtWi0FkdCiPe863iy6BEvYvba+e8b4J+11TJltU7kvjZrZWUa
-lqJHtT6fsA1jQQIDAQABo4IBATCB/jAdBgNVHQ4EFgQUzZdJePcxYe0vcRpo6UUs
-QHhRk1swgcEGA1UdIwSBuTCBtoAU/BgTUrszStscW9GAmD5AhpVYcvmhgZqkgZcw
-gZQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3pl
-bWFuMREwDwYDVQQKDAhTYXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYG
-A1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZz
-c2wuY29tggFkMAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEB
-CwUAA4IBAQA4VuYwqPjbMkxT4I/FCJg/zr+xBLBSJGNqFIZBCBN4qph+B5sdIp5h
-tmn7+SSjjkvyHzlqC6H/H5tlfH+FjNjOPYOTTABOf9BEU7Gofb9D8dfyLIYguM8R
-Obt+ISjKIEsKRpfTxoIsTiWK5JKE2sKbFTpci/yht3b56IB5H/xP1BjxF/oZh008
-geGCzuJc0sDN6ERa3fFBX6LfJ6nUTvcseoxf3fI+48Ufe18Ob5yayOtjD5jrfuaJ
-VtnH9G0g2Q+lgYKQkJVTYoCd45NETDMAHrnIshNT0qMYloZAknS/qY53/6g7f8aS
-yLRObBd/Np32ZBH5Jl5VCTb+jISBCA6j
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 100 (0x64)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA4-pathlen2, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:9d:4a:ee:6b:ff:b6:ec:88:21:23:84:03:b6:88:
- bb:3e:5a:1b:95:03:2f:24:53:2d:57:3f:11:38:5d:
- 12:1d:40:6b:10:db:c2:d3:e4:dd:80:77:74:7b:88:
- 44:65:e0:cf:52:c5:8a:42:e5:6e:b7:6a:ab:50:a0:
- 2e:29:c2:fe:ba:d5:c7:da:6b:91:26:8f:fc:1e:06:
- 17:f0:de:58:87:ef:1e:a6:91:12:39:68:a5:05:f3:
- 8c:67:c9:e5:99:18:a4:fc:90:3f:bd:a6:ca:f2:a6:
- dd:b5:e6:93:cb:14:89:83:3c:88:5a:31:ab:e3:66:
- 2a:1b:87:c5:85:03:45:b0:ce:e1:0f:c1:0f:92:70:
- d7:ac:65:ea:a8:09:c1:fe:1d:db:b7:e7:dd:98:d3:
- c6:b1:16:b4:54:58:c1:aa:ba:a1:cf:19:14:a7:e4:
- 55:a6:da:bb:1f:9e:d1:85:00:e0:8d:4a:c4:d2:86:
- 08:75:fd:d8:1e:85:21:6c:27:8f:18:d5:44:73:58:
- ab:94:75:4a:36:3d:8d:4d:c6:7a:86:9d:00:db:c5:
- ba:be:70:02:83:bf:6e:d8:31:89:b3:f2:16:98:be:
- 27:f6:14:5a:e9:d4:72:67:8d:a9:df:76:27:bf:19:
- ac:20:59:28:5b:1b:42:d9:d5:5b:6d:fb:6e:a2:5e:
- d3:e9
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- FC:18:13:52:BB:33:4A:DB:1C:5B:D1:80:98:3E:40:86:95:58:72:F9
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE, pathlen:2
- X509v3 Key Usage:
- Certificate Sign, CRL Sign
- Signature Algorithm: sha256WithRSAEncryption
- 0d:bc:87:df:e4:68:a5:56:54:d2:89:42:d8:b4:1b:45:6f:88:
- b2:39:d1:ad:38:f4:0b:68:5e:e1:3e:88:60:4f:69:be:a8:ee:
- 1d:14:08:69:86:ee:6a:08:42:35:6e:44:4f:5f:be:13:00:81:
- ca:41:a7:70:d3:48:9f:60:03:14:a4:4b:7f:35:7e:6d:94:0b:
- cf:63:00:fe:8e:54:2c:4c:ac:fb:ef:4c:68:91:9a:0f:45:3e:
- 07:12:f2:74:e6:83:36:8e:61:49:f9:03:17:e2:16:72:eb:6b:
- c3:c1:7b:95:37:31:1f:10:b9:fc:7b:e4:54:d4:4f:81:a0:f8:
- 0e:be:99:43:50:dd:19:7e:f9:41:8b:0d:2e:b2:e5:2c:ec:9b:
- 20:42:f4:3a:da:03:99:bc:c1:c2:6c:69:4e:8e:6e:ad:22:57:
- dc:2c:1a:e3:4f:15:c4:b3:b4:5d:2d:be:d8:62:0a:a4:c9:62:
- fb:9a:53:26:ee:8f:8e:43:a6:e2:77:9b:1f:1f:4f:86:b5:65:
- 22:3c:0d:f7:75:ab:24:2d:5b:6f:96:3f:26:22:b0:de:b2:4e:
- 37:fd:f9:9a:22:81:15:91:c5:b0:54:f2:ee:f0:e9:7f:23:ab:
- 43:1c:43:e1:e4:bf:61:20:13:f3:4f:b6:71:77:a3:23:89:fb:
- 02:c2:24:5e
------BEGIN CERTIFICATE-----
-MIIEwTCCA6mgAwIBAgIBZDANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTkxMDEx
-MTgzMDMwWhcNMjIwNzA3MTgzMDMwWjCBoTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
-Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoMDHdvbGZTU0wg
-SW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHTAbBgNVBAMMFGNoYWluSi1JQ0E0
-LXBhdGhsZW4yMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnUrua/+27IghI4QDtoi7PloblQMv
-JFMtVz8ROF0SHUBrENvC0+TdgHd0e4hEZeDPUsWKQuVut2qrUKAuKcL+utXH2muR
-Jo/8HgYX8N5Yh+8eppESOWilBfOMZ8nlmRik/JA/vabK8qbdteaTyxSJgzyIWjGr
-42YqG4fFhQNFsM7hD8EPknDXrGXqqAnB/h3bt+fdmNPGsRa0VFjBqrqhzxkUp+RV
-ptq7H57RhQDgjUrE0oYIdf3YHoUhbCePGNVEc1irlHVKNj2NTcZ6hp0A28W6vnAC
-g79u2DGJs/IWmL4n9hRa6dRyZ42p33YnvxmsIFkoWxtC2dVbbftuol7T6QIDAQAB
-o4IBDTCCAQkwHQYDVR0OBBYEFPwYE1K7M0rbHFvRgJg+QIaVWHL5MIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MA8GA1UdEwQIMAYBAf8CAQIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUA
-A4IBAQANvIff5GilVlTSiULYtBtFb4iyOdGtOPQLaF7hPohgT2m+qO4dFAhphu5q
-CEI1bkRPX74TAIHKQadw00ifYAMUpEt/NX5tlAvPYwD+jlQsTKz770xokZoPRT4H
-EvJ05oM2jmFJ+QMX4hZy62vDwXuVNzEfELn8e+RU1E+BoPgOvplDUN0ZfvlBiw0u
-suUs7JsgQvQ62gOZvMHCbGlOjm6tIlfcLBrjTxXEs7RdLb7YYgqkyWL7mlMm7o+O
-Q6bid5sfH0+GtWUiPA33daskLVtvlj8mIrDesk43/fmaIoEVkcWwVPLu8Ol/I6tD
-HEPh5L9hIBPzT7Zxd6MjifsCwiRe
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-entity-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-entity-key.pem
deleted file mode 100644
index f935b9046..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-entity-key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEAs/tRoKxpizUGv3rutKGKfq4xda3nRXvm2bt86XMO3s8FdN83
-pDczpm9ZBsifGTXDlPcFulLrPpIpYUiI+m1CtDDezt+U7ZKIYMhVNlDuNrXtNW+V
-AfSIS3s+/rWcZMByvox0aoz15GVmh1Kde7Ag9tjD3na5cHwBgm78+hvnxMFfOM5Q
-3Doih7wZmkXVinqT+XhZxwr5j+vDeeu17jbwXl0vj0boY8Ixgvz7XYzKAbG7civn
-L4I8piSmP1h+aVtKALQls7PDs7DCP6PX7gQSHasLuwKwbAs2ZFapXTflCihEXhXk
-9atzmAqzKJAdMPKM59sTag+0y40GFYbONRLjqQIDAQABAoIBABmsC2SjsxpMIf5G
-Bq51LFANgLiMaaSbm74K5DJYWxKk7N5SyJj/1royv7wb+bWa2Z7x7Ts6gJuYNZbO
-xdsSoqUZI27WrWOFtzY23RC2UoQzRvaMR/DTdG1v0vh55yjn2nYbiq94E8rUO9+p
-hRUTdmA/YxDkVmcZCQ4VzrfOKy0BOr6SnC3U0QghQ+UGPFeFRvd8vnBk76U8+XMV
-xUybnbU17hoEB2p9nle6h0G0GtXI9dnJ0BD2RJMIhvs1cfrOkW/s8dkAXsokH4UU
-XRIyRESkb+lVMWv8n8qcHZ3rjH+mxjkTxKdlnNy9qTfPoGJiaDb3LMfyd2xWReAq
-VdirDVECgYEA5B0Cy5WrjuQ8aWPOoQbV24mDZGqhAb66oJ9yMkbzQ5DHZdZrt7s9
-k/dBMWOD4tc7w5WPwjYSxY7QOBSq1TETYIafOK1NqR9lnLJnOKiMYp49O9nAfK/y
-6AgXQo9fqIIYhmmqEQYl9MSgQjEa5d9CdDg4mh6YzhaVoXn06UF+H4cCgYEAyfv9
-nZT2PBasmZWZdFRG4l78WsQO0+/00HnhPXs0Dn31N9A9aQDj5O4wJoiRDJPYkO0o
-9wANtibayIvUoB72L9gc+8KIEU8Xuda+JtB+oPVi88Limxw3iBwrBUF9QA8Jjmrk
-KtNOm5IrSpYpTEvOQkZFlskhQajey4Kys69Pz08CgYEAouqtUmVEr7sGAmcL7imJ
-l0+xDYiyESL8+zalQo81si22m172c7RAmGrgnrtqOBpsTpWEpLol0f7baxInqDdy
-lV/QW5Q6gO0xjyZDXk3SZaSKKzKrrOGk5F7S7fCj6x9vEKBqm9n+RcAgjOWxRjeb
-qJF2q2vqylWK7FbDucvSngUCgYAOFa5XwL1y7znV8+KhhAb1Xh5GzgkiqkbuCrG0
-MdUtdYcV/0Vo/xDlM97TsQ48TEr7wC3tG2nZW9hBx85p4/7S00UiISyP2G4VHW5h
-EoTiAHqH+P0IR+1vZldxpGFxiBrofXevrNB8dLLkHph+o4KciH3tx9Sz2Wy/0DtZ
-4E22bQKBgCOb2dGVVS7fmM81Mg1Al9k9USVxp4wnS1iIHK1c/rBB61TPEyblhiqF
-aveFoCse8SparMJ9utkqSqA7zQ3qwoPJZJ9p4T2pI0xp8yu15yBLeYgO0R7kriEC
-XIapznOZvvC0/vSUT3kTOX27HlIcPqNOPnpYjsfdZ10okplrXnKB
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-entity.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-entity.pem
deleted file mode 100644
index 35c5f6367..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/chainJ-entity.pem
+++ /dev/null
@@ -1,87 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 101 (0x65)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-ICA1-no_pathlen, emailAddress = info@wolfssl.com
- Validity
- Not Before: Oct 11 18:30:30 2019 GMT
- Not After : Jul 7 18:30:30 2022 GMT
- Subject: C = US, ST = Washington, L = Seattle, O = wolfSSL Inc., OU = Engineering, CN = chainJ-entity, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- RSA Public-Key: (2048 bit)
- Modulus:
- 00:b3:fb:51:a0:ac:69:8b:35:06:bf:7a:ee:b4:a1:
- 8a:7e:ae:31:75:ad:e7:45:7b:e6:d9:bb:7c:e9:73:
- 0e:de:cf:05:74:df:37:a4:37:33:a6:6f:59:06:c8:
- 9f:19:35:c3:94:f7:05:ba:52:eb:3e:92:29:61:48:
- 88:fa:6d:42:b4:30:de:ce:df:94:ed:92:88:60:c8:
- 55:36:50:ee:36:b5:ed:35:6f:95:01:f4:88:4b:7b:
- 3e:fe:b5:9c:64:c0:72:be:8c:74:6a:8c:f5:e4:65:
- 66:87:52:9d:7b:b0:20:f6:d8:c3:de:76:b9:70:7c:
- 01:82:6e:fc:fa:1b:e7:c4:c1:5f:38:ce:50:dc:3a:
- 22:87:bc:19:9a:45:d5:8a:7a:93:f9:78:59:c7:0a:
- f9:8f:eb:c3:79:eb:b5:ee:36:f0:5e:5d:2f:8f:46:
- e8:63:c2:31:82:fc:fb:5d:8c:ca:01:b1:bb:72:2b:
- e7:2f:82:3c:a6:24:a6:3f:58:7e:69:5b:4a:00:b4:
- 25:b3:b3:c3:b3:b0:c2:3f:a3:d7:ee:04:12:1d:ab:
- 0b:bb:02:b0:6c:0b:36:64:56:a9:5d:37:e5:0a:28:
- 44:5e:15:e4:f5:ab:73:98:0a:b3:28:90:1d:30:f2:
- 8c:e7:db:13:6a:0f:b4:cb:8d:06:15:86:ce:35:12:
- e3:a9
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 13:92:E0:30:5E:36:4F:BF:D5:E3:0D:5D:40:0B:64:95:EC:8E:77:4E
- X509v3 Authority Key Identifier:
- keyid:9C:7B:3A:10:B3:08:99:05:00:AF:3E:E0:A4:5D:D9:AF:82:BC:4D:C0
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL Inc./OU=Engineering/CN=chainJ-ICA2-no_pathlen/emailAddress=info@wolfssl.com
- serial:64
-
- X509v3 Basic Constraints:
- CA:FALSE
- Signature Algorithm: sha256WithRSAEncryption
- 10:a0:e0:ea:4b:df:4c:5b:92:da:6b:13:5a:4b:e9:46:1a:17:
- 48:42:5e:08:c8:28:e4:ce:69:46:25:55:70:57:bd:4e:b2:0b:
- a4:75:22:b6:5b:d7:e0:54:3f:31:14:99:09:c1:3b:6f:b7:59:
- 5a:52:67:46:0c:4f:ec:fa:31:4a:6e:59:04:50:99:60:1e:74:
- ed:3a:ac:4d:cd:98:31:4d:b1:54:07:3e:76:bb:92:e2:1d:53:
- 65:08:38:e3:4d:b0:d8:74:14:5f:00:94:e7:d2:c9:9d:80:23:
- f5:9e:3d:8c:22:72:b3:20:5a:01:a3:02:f2:9c:cc:b8:1d:73:
- db:eb:cc:cb:27:4f:75:17:1d:23:68:07:4f:15:be:00:cc:a9:
- 2a:14:82:2c:0e:e3:92:40:dc:62:ac:d9:61:24:99:19:43:d5:
- 3e:85:ca:e5:6d:e1:76:9a:4e:01:ef:34:98:7a:1b:ca:8b:c3:
- de:99:22:75:28:11:0c:17:7a:58:7b:44:33:22:58:61:24:8c:
- 96:a5:a7:63:19:31:6d:61:83:1c:5f:50:66:48:29:b4:2d:8e:
- 5e:f3:63:85:e8:9c:d8:6e:93:4a:4d:ff:b1:d5:60:96:d0:9f:
- 4e:3f:6f:c9:b4:e1:04:b8:ef:55:c2:77:c1:e1:50:d0:a7:b8:
- 9d:a3:81:71
------BEGIN CERTIFICATE-----
-MIIEvDCCA6SgAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBozELMAkGA1UEBhMCVVMx
-EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTATBgNVBAoM
-DHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAdBgNVBAMMFmNo
-YWluSi1JQ0ExLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNz
-bC5jb20wHhcNMTkxMDExMTgzMDMwWhcNMjIwNzA3MTgzMDMwWjCBmjELMAkGA1UE
-BhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFTAT
-BgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxFjAUBgNV
-BAMMDWNoYWluSi1lbnRpdHkxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5j
-b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz+1GgrGmLNQa/eu60
-oYp+rjF1redFe+bZu3zpcw7ezwV03zekNzOmb1kGyJ8ZNcOU9wW6Uus+kilhSIj6
-bUK0MN7O35TtkohgyFU2UO42te01b5UB9IhLez7+tZxkwHK+jHRqjPXkZWaHUp17
-sCD22MPedrlwfAGCbvz6G+fEwV84zlDcOiKHvBmaRdWKepP5eFnHCvmP68N567Xu
-NvBeXS+PRuhjwjGC/PtdjMoBsbtyK+cvgjymJKY/WH5pW0oAtCWzs8OzsMI/o9fu
-BBIdqwu7ArBsCzZkVqldN+UKKEReFeT1q3OYCrMokB0w8ozn2xNqD7TLjQYVhs41
-EuOpAgMBAAGjggEAMIH9MB0GA1UdDgQWBBQTkuAwXjZPv9XjDV1AC2SV7I53TjCB
-0AYDVR0jBIHIMIHFgBScezoQswiZBQCvPuCkXdmvgrxNwKGBqaSBpjCBozELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-FTATBgNVBAoMDHdvbGZTU0wgSW5jLjEUMBIGA1UECwwLRW5naW5lZXJpbmcxHzAd
-BgNVBAMMFmNoYWluSi1JQ0EyLW5vX3BhdGhsZW4xHzAdBgkqhkiG9w0BCQEWEGlu
-Zm9Ad29sZnNzbC5jb22CAWQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOCAQEA
-EKDg6kvfTFuS2msTWkvpRhoXSEJeCMgo5M5pRiVVcFe9TrILpHUitlvX4FQ/MRSZ
-CcE7b7dZWlJnRgxP7PoxSm5ZBFCZYB507TqsTc2YMU2xVAc+druS4h1TZQg4402w
-2HQUXwCU59LJnYAj9Z49jCJysyBaAaMC8pzMuB1z2+vMyydPdRcdI2gHTxW+AMyp
-KhSCLA7jkkDcYqzZYSSZGUPVPoXK5W3hdppOAe80mHobyovD3pkidSgRDBd6WHtE
-MyJYYSSMlqWnYxkxbWGDHF9QZkgptC2OXvNjheic2G6TSk3/sdVgltCfTj9vybTh
-BLjvVcJ3weFQ0Ke4naOBcQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/include.am b/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/include.am
deleted file mode 100644
index adaa02511..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-pathlen/include.am
+++ /dev/null
@@ -1,88 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- certs/test-pathlen/chainA-ICA1-key.pem \
- certs/test-pathlen/chainA-ICA1-pathlen0.pem \
- certs/test-pathlen/chainA-assembled.pem \
- certs/test-pathlen/chainA-entity-key.pem \
- certs/test-pathlen/chainA-entity.pem \
- certs/test-pathlen/chainB-ICA1-key.pem \
- certs/test-pathlen/chainB-ICA1-pathlen0.pem \
- certs/test-pathlen/chainB-ICA2-key.pem \
- certs/test-pathlen/chainB-ICA2-pathlen1.pem \
- certs/test-pathlen/chainB-assembled.pem \
- certs/test-pathlen/chainB-entity-key.pem \
- certs/test-pathlen/chainB-entity.pem \
- certs/test-pathlen/chainC-ICA1-key.pem \
- certs/test-pathlen/chainC-ICA1-pathlen1.pem \
- certs/test-pathlen/chainC-assembled.pem \
- certs/test-pathlen/chainC-entity-key.pem \
- certs/test-pathlen/chainC-entity.pem \
- certs/test-pathlen/chainD-ICA1-key.pem \
- certs/test-pathlen/chainD-ICA1-pathlen127.pem \
- certs/test-pathlen/chainD-assembled.pem \
- certs/test-pathlen/chainD-entity-key.pem \
- certs/test-pathlen/chainD-entity.pem \
- certs/test-pathlen/chainE-ICA1-key.pem \
- certs/test-pathlen/chainE-ICA1-pathlen128.pem \
- certs/test-pathlen/chainE-assembled.pem \
- certs/test-pathlen/chainE-entity-key.pem \
- certs/test-pathlen/chainE-entity.pem \
- certs/test-pathlen/chainF-ICA1-key.pem \
- certs/test-pathlen/chainF-ICA1-pathlen1.pem \
- certs/test-pathlen/chainF-ICA2-key.pem \
- certs/test-pathlen/chainF-ICA2-pathlen0.pem \
- certs/test-pathlen/chainF-assembled.pem \
- certs/test-pathlen/chainF-entity-key.pem \
- certs/test-pathlen/chainF-entity.pem \
- certs/test-pathlen/chainG-ICA1-key.pem \
- certs/test-pathlen/chainG-ICA1-pathlen0.pem \
- certs/test-pathlen/chainG-ICA2-key.pem \
- certs/test-pathlen/chainG-ICA2-pathlen1.pem \
- certs/test-pathlen/chainG-ICA3-key.pem \
- certs/test-pathlen/chainG-ICA3-pathlen99.pem \
- certs/test-pathlen/chainG-ICA4-key.pem \
- certs/test-pathlen/chainG-ICA4-pathlen5.pem \
- certs/test-pathlen/chainG-ICA5-key.pem \
- certs/test-pathlen/chainG-ICA5-pathlen20.pem \
- certs/test-pathlen/chainG-ICA6-key.pem \
- certs/test-pathlen/chainG-ICA6-pathlen10.pem \
- certs/test-pathlen/chainG-ICA7-key.pem \
- certs/test-pathlen/chainG-ICA7-pathlen100.pem \
- certs/test-pathlen/chainG-assembled.pem \
- certs/test-pathlen/chainG-entity-key.pem \
- certs/test-pathlen/chainG-entity.pem \
- certs/test-pathlen/chainH-ICA1-key.pem \
- certs/test-pathlen/chainH-ICA1-pathlen0.pem \
- certs/test-pathlen/chainH-ICA2-key.pem \
- certs/test-pathlen/chainH-ICA2-pathlen2.pem \
- certs/test-pathlen/chainH-ICA3-key.pem \
- certs/test-pathlen/chainH-ICA3-pathlen2.pem \
- certs/test-pathlen/chainH-ICA4-key.pem \
- certs/test-pathlen/chainH-ICA4-pathlen2.pem \
- certs/test-pathlen/chainH-assembled.pem \
- certs/test-pathlen/chainH-entity-key.pem \
- certs/test-pathlen/chainH-entity.pem \
- certs/test-pathlen/chainI-ICA1-key.pem \
- certs/test-pathlen/chainI-ICA1-no_pathlen.pem \
- certs/test-pathlen/chainI-ICA2-key.pem \
- certs/test-pathlen/chainI-ICA2-no_pathlen.pem \
- certs/test-pathlen/chainI-ICA3-key.pem \
- certs/test-pathlen/chainI-ICA3-pathlen2.pem \
- certs/test-pathlen/chainI-assembled.pem \
- certs/test-pathlen/chainI-entity-key.pem \
- certs/test-pathlen/chainI-entity.pem \
- certs/test-pathlen/chainJ-ICA1-key.pem \
- certs/test-pathlen/chainJ-ICA1-no_pathlen.pem \
- certs/test-pathlen/chainJ-ICA2-key.pem \
- certs/test-pathlen/chainJ-ICA2-no_pathlen.pem \
- certs/test-pathlen/chainJ-ICA3-key.pem \
- certs/test-pathlen/chainJ-ICA3-no_pathlen.pem \
- certs/test-pathlen/chainJ-ICA4-key.pem \
- certs/test-pathlen/chainJ-ICA4-pathlen2.pem \
- certs/test-pathlen/chainJ-assembled.pem \
- certs/test-pathlen/chainJ-entity-key.pem \
- certs/test-pathlen/chainJ-entity.pem
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test-servercert.p12 b/FreeRTOS-Plus/Source/WolfSSL/certs/test-servercert.p12
deleted file mode 100644
index c85fdd279..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test-servercert.p12
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-ia.cfg b/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-ia.cfg
deleted file mode 100644
index 44be1126a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-ia.cfg
+++ /dev/null
@@ -1,18 +0,0 @@
-[ req ]
-distinguished_name = req_distinguished_name
-prompt = no
-x509_extensions = v3_ca
-
-[ req_distinguished_name ]
-C = AU
-ST = Queensland
-L = Brisbane
-O = wolfSSL Inc
-OU = Engineering
-CN = www.wolfssl.com
-emailAddress = support@wolfsssl.com
-
-[ v3_ca ]
-inhibitAnyPolicy = critical,1
-nsComment = "Testing inhibit any"
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-ia.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-ia.der
deleted file mode 100644
index a6fb6508c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-ia.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-joi.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-joi.pem
deleted file mode 100644
index 7ec57286e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-joi.pem
+++ /dev/null
@@ -1,76 +0,0 @@
-Certificate:
- Data:
- Version: 1 (0x0)
- Serial Number: 13085343280838917500 (0xb5987a628272bd7c)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: O=Example Ltd/businessCategory=Private/serialNumber=5157550/jurisdictionC=US/jurisdictionST=California, C=US/street=123 My Street, ST=California, CN=example.com/subjectAltName=DNS.1=example.com, DNS.2=www.example.com, DNS.3=billing.example.com
- Validity
- Not Before: Aug 10 15:20:25 2018 GMT
- Not After : May 6 15:20:25 2021 GMT
- Subject: O=Example Ltd/businessCategory=Private/serialNumber=5157550/jurisdictionC=US/jurisdictionST=California, C=US/street=123 My Street, ST=California, CN=example.com/subjectAltName=DNS.1=example.com, DNS.2=www.example.com, DNS.3=billing.example.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- Signature Algorithm: sha256WithRSAEncryption
- ac:5a:d1:a9:e8:ed:75:8e:87:13:38:39:c5:d7:43:fd:72:31:
- 34:4d:c3:41:f4:6a:d8:64:a2:ce:cf:d8:ab:81:9f:2c:26:4d:
- 69:35:42:63:f8:53:c4:c5:f6:00:15:29:4d:3b:5e:bf:2c:8b:
- a8:ad:54:22:c0:93:78:34:9c:e7:79:c1:d0:fe:7c:bf:87:b9:
- 21:dd:d6:f9:35:ae:17:94:90:55:99:48:c8:d3:47:b1:be:1b:
- 1f:62:31:0c:3a:e5:8e:b3:93:e6:93:02:36:e9:97:1e:7f:6c:
- 55:6a:b8:9a:d1:d1:36:52:cb:3f:9f:5e:95:c4:0f:03:d5:a1:
- 4c:d1:7e:8a:dd:58:ec:a1:17:c7:68:fe:91:b6:e7:66:8b:f7:
- b3:a8:25:ad:2d:e9:c9:55:02:a2:39:16:cc:b0:aa:65:bf:21:
- b5:dc:0a:d3:92:36:ae:84:d8:a3:d3:35:ba:b9:bc:b8:7d:2e:
- 64:58:db:d7:ec:86:51:a2:44:7d:ba:98:30:c2:c5:4f:3c:ea:
- 9f:1d:b0:1e:87:dc:49:4f:bf:42:70:c8:a3:3e:ad:6c:47:e3:
- d3:ff:17:1c:37:c1:fa:34:b5:7b:e7:07:b6:c2:66:3a:89:57:
- 44:1a:f5:6e:e0:cd:93:c0:c2:13:2e:e2:67:e7:8b:27:57:c1:
- 16:f3:ad:eb
------BEGIN CERTIFICATE-----
-MIIElDCCA3wCCQC1mHpignK9fDANBgkqhkiG9w0BAQsFADCCAQoxFDASBgNVBAoM
-C0V4YW1wbGUgTHRkMRAwDgYDVQQPDAdQcml2YXRlMRAwDgYDVQQFEwc1MTU3NTUw
-MRMwEQYLKwYBBAGCNzwCAQMMAlVTMRswGQYLKwYBBAGCNzwCAQIMCkNhbGlmb3Ju
-aWExCzAJBgNVBAYTAlVTMRYwFAYDVQQJDA0xMjMgTXkgU3RyZWV0MRMwEQYDVQQI
-DApDYWxpZm9ybmlhMRQwEgYDVQQDDAtleGFtcGxlLmNvbTFMMEoGA1UdEQxDRE5T
-LjE9ZXhhbXBsZS5jb20sIEROUy4yPXd3dy5leGFtcGxlLmNvbSwgRE5TLjM9Ymls
-bGluZy5leGFtcGxlLmNvbTAeFw0xODA4MTAxNTIwMjVaFw0yMTA1MDYxNTIwMjVa
-MIIBCjEUMBIGA1UECgwLRXhhbXBsZSBMdGQxEDAOBgNVBA8MB1ByaXZhdGUxEDAO
-BgNVBAUTBzUxNTc1NTAxEzARBgsrBgEEAYI3PAIBAwwCVVMxGzAZBgsrBgEEAYI3
-PAIBAgwKQ2FsaWZvcm5pYTELMAkGA1UEBhMCVVMxFjAUBgNVBAkMDTEyMyBNeSBT
-dHJlZXQxEzARBgNVBAgMCkNhbGlmb3JuaWExFDASBgNVBAMMC2V4YW1wbGUuY29t
-MUwwSgYDVR0RDENETlMuMT1leGFtcGxlLmNvbSwgRE5TLjI9d3d3LmV4YW1wbGUu
-Y29tLCBETlMuMz1iaWxsaW5nLmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAwJUI4VdB8nFtt9JFQScBZcZFrvK8JDC4lc4vTtb2HIi8
-fJ/7qGd//lycUXX3isoH5zUvj+G9e8AvfKtkqBf8yl17uuAh5XIuby6G2JVz2qwb
-U7lfP9cZDSVP4WNjUYsLZD+tQ7ilHFw0s64AoGPF9n8LWWh4c6aMGKkCba/DGQEu
-uBDjxsxAtGmjRjNph27Euxem8+jdrXO8ey8htf1mUQy9VLPhbV8cvCNz0QkDiRTS
-ELlkwyrQoZZKvOHUGlvHoMDBY3gPRDcwMpaAMiOVoXe6E9KXc+JdJclqDcM5YKS0
-sGlCQgnp2Ai8MyCzWCKnquvE4eZhg8XSlt/Z0E+t1wIDAQABMA0GCSqGSIb3DQEB
-CwUAA4IBAQCsWtGp6O11jocTODnF10P9cjE0TcNB9GrYZKLOz9irgZ8sJk1pNUJj
-+FPExfYAFSlNO16/LIuorVQiwJN4NJznecHQ/ny/h7kh3db5Na4XlJBVmUjI00ex
-vhsfYjEMOuWOs5PmkwI26Zcef2xVaria0dE2Uss/n16VxA8D1aFM0X6K3VjsoRfH
-aP6Rtudmi/ezqCWtLenJVQKiORbMsKplvyG13ArTkjauhNij0zW6uby4fS5kWNvX
-7IZRokR9upgwwsVPPOqfHbAeh9xJT79CcMijPq1sR+PT/xccN8H6NLV75we2wmY6
-iVdEGvVu4M2TwMITLuJn54snV8EW863r
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nc.cfg b/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nc.cfg
deleted file mode 100644
index 9e8ff6be5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nc.cfg
+++ /dev/null
@@ -1,22 +0,0 @@
-[ req ]
-distinguished_name = req_distinguished_name
-prompt = no
-x509_extensions = v3_ca
-
-[ req_distinguished_name ]
-C = AU
-ST = Queensland
-L = Brisbane
-O = wolfSSL Inc
-OU = Engineering
-CN = www.wolfssl.com
-emailAddress = support@wolfsssl.com
-
-[ v3_ca ]
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer
-basicConstraints = critical, CA:true, pathlen:0
-keyUsage = critical, digitalSignature, cRLSign, keyCertSign
-nameConstraints = critical,permitted;email:.wolfssl.com
-nsComment = "Testing name constraints"
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nc.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nc.der
deleted file mode 100644
index 10438666b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nc.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nct.cfg b/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nct.cfg
deleted file mode 100644
index fde389bf4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nct.cfg
+++ /dev/null
@@ -1,18 +0,0 @@
-[ req ]
-distinguished_name = req_distinguished_name
-prompt = no
-x509_extensions = v3_ca
-
-[ req_distinguished_name ]
-C = AU
-ST = Queensland
-L = Brisbane
-O = wolfSSL Inc
-OU = Engineering
-CN = www.wolfssl.com
-emailAddress = support@wolfsssl.com
-
-[ v3_ca ]
-nsCertType = critical,server
-nsComment = "Testing Netscape Certificate Type"
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nct.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nct.der
deleted file mode 100644
index febf458ba..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-nct.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-ns.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-ns.der
deleted file mode 100644
index 10cc65520..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/cert-ext-ns.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/crit-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/crit-cert.pem
deleted file mode 100644
index e2c370f54..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/crit-cert.pem
+++ /dev/null
@@ -1,18 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIC7DCCApagAwIBAgIJAKBIQJVDXWL5MA0GCSqGSIb3DQEBBAUAMIHHMQswCQYD
-VQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEm
-MCQGA1UECgwdSm9obidzIFNvZnR3YXJlIFBsdW1iaW5nLCBMTEMxFDASBgNVBAsM
-C0VuZ2luZWVyaW5nMSkwJwYDVQQDDCBlbmdpbmVlcmluZy5zb2Z0d2FyZXBsdW1i
-aW5nLmJpejEoMCYGCSqGSIb3DQEJARYZam9obkBzb2Z0d2FyZXBsdW1iaW5nLmJp
-ejAeFw0xNDAzMTMxNjUyMzRaFw0xNjEyMDcxNjUyMzRaMIHHMQswCQYDVQQGEwJV
-UzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEmMCQGA1UE
-CgwdSm9obidzIFNvZnR3YXJlIFBsdW1iaW5nLCBMTEMxFDASBgNVBAsMC0VuZ2lu
-ZWVyaW5nMSkwJwYDVQQDDCBlbmdpbmVlcmluZy5zb2Z0d2FyZXBsdW1iaW5nLmJp
-ejEoMCYGCSqGSIb3DQEJARYZam9obkBzb2Z0d2FyZXBsdW1iaW5nLmJpejBcMA0G
-CSqGSIb3DQEBAQUAA0sAMEgCQQDicEBO1u+ysy7iakWAewKMYPKwzY6Oaq+FUopr
-SIjgrX8JIV5gnnvT0HrV/Ju2t4sBy41rZc50cqOdOj9yZctRAgMBAAGjYzBhMB0G
-A1UdDgQWBBQYkZqEi8LDLWrQZjw5usbSedJdAzAfBgNVHSMEGDAWgBQYkZqEi8LD
-LWrQZjw5usbSedJdAzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIF4DAN
-BgkqhkiG9w0BAQQFAANBAEU0nmhsV0h59xJIHESZPqGj7LYEoSnyZ8/vs+KBJmhm
-A8XaCALu1m2CWCrW5wjqSGbbqQfy9vFqsnNX+Qt9KiU=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/crit-key.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/crit-key.pem
deleted file mode 100644
index 893f07eb1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/crit-key.pem
+++ /dev/null
@@ -1,9 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIBOQIBAAJBAOJwQE7W77KzLuJqRYB7Aoxg8rDNjo5qr4VSimtIiOCtfwkhXmCe
-e9PQetX8m7a3iwHLjWtlznRyo506P3Jly1ECAwEAAQJAG21BPMtn6Rsu+JmqpW9A
-1cQAYU3kkHd3nwxqW6hDfAMNY8qZCkGsrBxSAgvIItQwytV7zn+F8FPDwViVz1xQ
-gQIhAPWkmZGz7sRIuZB4JQiXzVJvUprsfgpg6ODfpWl+cabJAiEA6/xdEuMqbiY+
-g7xG1MMOe2zstDB+vvxT5pEQxGklXEkCIBo9qC4Zc6NCRZh6TTJ6zPNGcyObqec/
-7QDAw3HekROJAiBm+N7QIAniuJNsvloV+us11kjPM54KzmX55PDxE4R26QIgU5DH
-iIm5DKbAJqgaXOXo35v/PUqYZmJUc2bPF158+vg=
------END RSA PRIVATE KEY-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/dh1024.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/dh1024.der
deleted file mode 100644
index 1a3ff399f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/dh1024.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/dh1024.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/dh1024.pem
deleted file mode 100644
index 82d14e766..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/dh1024.pem
+++ /dev/null
@@ -1,17 +0,0 @@
- DH Parameters: (1024 bit)
- prime:
- 00:ee:73:a6:93:be:a9:b8:5f:52:b9:9c:d4:a8:0f:
- 8d:f9:b0:53:29:a9:25:06:0e:95:dd:f5:89:c8:6b:
- 09:ae:94:1c:62:35:05:39:ab:6d:46:c5:b2:a2:fd:
- a0:e1:ba:01:a5:00:4f:7f:44:e5:74:81:8b:3a:2e:
- fa:ea:fe:f6:c3:18:11:ca:fd:ee:8b:9c:9e:0d:1a:
- 5a:57:77:74:63:91:e7:51:bb:6d:79:93:e2:b4:5c:
- fa:21:21:ff:5d:b3:e7:5c:92:08:ca:cb:4e:e7:8c:
- f3:1c:21:8c:44:8c:6d:31:60:7a:e6:37:15:79:1b:
- 1d:5d:c3:56:c3:a0:4a:8d:03
- generator: 2 (0x2)
------BEGIN DH PARAMETERS-----
-MIGHAoGBAO5zppO+qbhfUrmc1KgPjfmwUympJQYOld31ichrCa6UHGI1BTmrbUbF
-sqL9oOG6AaUAT39E5XSBizou+ur+9sMYEcr97oucng0aWld3dGOR51G7bXmT4rRc
-+iEh/12z51ySCMrLTueM8xwhjESMbTFgeuY3FXkbHV3DVsOgSo0DAgEC
------END DH PARAMETERS-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/dh512.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/dh512.der
deleted file mode 100644
index f743db421..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/dh512.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/dh512.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/dh512.pem
deleted file mode 100644
index d1fef9243..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/dh512.pem
+++ /dev/null
@@ -1,12 +0,0 @@
- DH Parameters: (512 bit)
- prime:
- 00:87:76:23:99:e1:df:db:6a:43:8e:30:2b:4f:63:
- 53:05:77:ce:80:02:8e:b1:a8:44:4f:30:d8:c9:45:
- d9:cd:65:e3:4b:2d:b6:eb:77:a3:26:ea:4d:03:84:
- d9:d7:b6:6a:b6:dd:51:97:66:c1:77:e6:6b:ed:19:
- 91:45:c5:27:b3
- generator: 2 (0x2)
------BEGIN DH PARAMETERS-----
-MEYCQQCHdiOZ4d/bakOOMCtPY1MFd86AAo6xqERPMNjJRdnNZeNLLbbrd6Mm6k0D
-hNnXtmq23VGXZsF35mvtGZFFxSezAgEC
------END DH PARAMETERS-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/digsigku.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/digsigku.pem
deleted file mode 100644
index 5086b7d7c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/digsigku.pem
+++ /dev/null
@@ -1,57 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 16393466893990650224 (0xe3814b48a5706170)
- Signature Algorithm: ecdsa-with-SHA1
- Issuer: C=US, ST=Washington, L=Seattle, O=Foofarah, OU=Arglebargle, CN=foobarbaz/emailAddress=info@worlss.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=Foofarah, OU=Arglebargle, CN=foobarbaz/emailAddress=info@worlss.com
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (256 bit)
- pub:
- 04:bb:33:ac:4c:27:50:4a:c6:4a:a5:04:c3:3c:de:
- 9f:36:db:72:2d:ce:94:ea:2b:fa:cb:20:09:39:2c:
- 16:e8:61:02:e9:af:4d:d3:02:93:9a:31:5b:97:92:
- 21:7f:f0:cf:18:da:91:11:02:34:86:e8:20:58:33:
- 0b:80:34:89:d8
- ASN1 OID: prime256v1
- NIST CURVE: P-256
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 5D:5D:26:EF:AC:7E:36:F9:9B:76:15:2B:4A:25:02:23:EF:B2:89:30
- X509v3 Authority Key Identifier:
- keyid:5D:5D:26:EF:AC:7E:36:F9:9B:76:15:2B:4A:25:02:23:EF:B2:89:30
- DirName:/C=US/ST=Washington/L=Seattle/O=Foofarah/OU=Arglebargle/CN=foobarbaz/emailAddress=info@worlss.com
- serial:E3:81:4B:48:A5:70:61:70
-
- X509v3 Basic Constraints: critical
- CA:TRUE
- X509v3 Key Usage: critical
- Non Repudiation, Key Encipherment
- Signature Algorithm: ecdsa-with-SHA1
- 30:45:02:21:00:fb:11:b6:9b:9a:26:b0:36:ad:ad:5a:5e:34:
- 75:58:3a:93:01:af:f7:b7:00:25:85:8b:0d:4b:35:6e:43:13:
- ec:02:20:14:8b:f5:04:a0:99:75:91:cd:76:1b:6a:3e:14:fc:
- 96:13:fe:dd:d1:82:4a:3a:83:2b:2f:f0:a6:a6:c5:a5:bb
------BEGIN CERTIFICATE-----
-MIIDKDCCAs+gAwIBAgIJAOOBS0ilcGFwMAkGByqGSM49BAEwgZExCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMREwDwYD
-VQQKDAhGb29mYXJhaDEUMBIGA1UECwwLQXJnbGViYXJnbGUxEjAQBgNVBAMMCWZv
-b2JhcmJhejEeMBwGCSqGSIb3DQEJARYPaW5mb0B3b3Jsc3MuY29tMB4XDTE4MDQx
-MzE1MjMxMFoXDTIxMDEwNzE1MjMxMFowgZExCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMREwDwYDVQQKDAhGb29mYXJh
-aDEUMBIGA1UECwwLQXJnbGViYXJnbGUxEjAQBgNVBAMMCWZvb2JhcmJhejEeMBwG
-CSqGSIb3DQEJARYPaW5mb0B3b3Jsc3MuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
-AQcDQgAEuzOsTCdQSsZKpQTDPN6fNttyLc6U6iv6yyAJOSwW6GEC6a9N0wKTmjFb
-l5Ihf/DPGNqREQI0huggWDMLgDSJ2KOCAQ0wggEJMB0GA1UdDgQWBBRdXSbvrH42
-+Zt2FStKJQIj77KJMDCBxgYDVR0jBIG+MIG7gBRdXSbvrH42+Zt2FStKJQIj77KJ
-MKGBl6SBlDCBkTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAO
-BgNVBAcMB1NlYXR0bGUxETAPBgNVBAoMCEZvb2ZhcmFoMRQwEgYDVQQLDAtBcmds
-ZWJhcmdsZTESMBAGA1UEAwwJZm9vYmFyYmF6MR4wHAYJKoZIhvcNAQkBFg9pbmZv
-QHdvcmxzcy5jb22CCQDjgUtIpXBhcDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIFYDAJBgcqhkjOPQQBA0gAMEUCIQD7EbabmiawNq2tWl40dVg6kwGv97cA
-JYWLDUs1bkMT7AIgFIv1BKCZdZHNdhtqPhT8lhP+3dGCSjqDKy/wpqbFpbs=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-ca.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-ca.der
deleted file mode 100644
index df9dd7508..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-ca.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-ca.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-ca.pem
deleted file mode 100644
index d4f6716c7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-ca.pem
+++ /dev/null
@@ -1,69 +0,0 @@
-Certificate:
- Data:
- Version: 1 (0x0)
- Serial Number: 4096 (0x1000)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: CN = www.wolfssl.com, ST = Montana, C = US, emailAddress = info@wolfssl.com, OU = Engineering
- Validity
- Not Before: Jul 31 00:00:00 2018 GMT
- Not After : Aug 30 00:00:00 2018 GMT
- Subject: CN = www.wolfssl.com, ST = Montana, C = US, emailAddress = info@wolfssl.com, OU = Engineering
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a:
- f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac:
- de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98:
- 21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77:
- 32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1:
- 8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3:
- a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed:
- a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95:
- 82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c:
- 3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db:
- 76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc:
- 73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98:
- de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68:
- cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2:
- b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3:
- 13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98:
- ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed:
- 36:79
- Exponent: 65537 (0x10001)
- Signature Algorithm: sha256WithRSAEncryption
- 52:af:84:10:08:83:9a:39:c2:05:5c:33:fc:a6:a0:7c:ce:68:
- 34:fa:cc:05:9f:8a:33:79:64:07:da:6c:17:85:91:ab:1d:be:
- 32:45:c6:7f:54:b6:10:cf:ea:17:74:d4:d9:06:6e:71:5d:0d:
- 40:72:21:07:79:20:63:b3:15:d5:b7:e6:1a:d6:d0:11:1a:60:
- 7f:81:e9:9b:69:b4:67:4e:e2:22:1a:2f:9d:6a:3c:da:95:34:
- a9:bf:2b:14:fa:fe:21:73:e7:c9:19:7d:2c:14:9f:9f:33:c1:
- 83:35:9c:94:95:0e:e4:3e:29:17:95:a2:85:e3:ad:70:5f:6a:
- ff:2d:8a:92:fb:58:f6:fe:46:2b:d0:e4:9d:9b:0d:d9:e4:39:
- 0a:c5:e2:3d:17:de:95:cc:a4:1c:33:a1:75:02:ec:98:66:47:
- b9:ce:e4:8f:7e:32:cd:38:ff:6f:3d:be:7a:44:bf:47:61:7a:
- b7:5a:09:fa:1e:bf:3d:63:68:b3:15:00:87:fd:8d:b8:f6:b8:
- 83:13:ff:f8:56:ed:14:05:4f:49:07:f9:33:6b:3f:fd:c6:7d:
- ff:6b:04:d5:46:80:c1:6b:74:fd:e6:18:14:1d:3b:c6:12:67:
- 0e:1e:8d:81:c4:a9:9c:59:ee:29:cd:cf:55:a6:bc:53:13:f4:
- 51:bc:b7:b3
------BEGIN CERTIFICATE-----
-MIIDVTCCAj0CAhAAMA0GCSqGSIb3DQEBCwUAMHAxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEQMA4GA1UECAwHTW9udGFuYTELMAkGA1UEBhMCVVMxHzAdBgkqhkiG
-9w0BCQEWEGluZm9Ad29sZnNzbC5jb20xFDASBgNVBAsMC0VuZ2luZWVyaW5nMB4Y
-DTIwMTgwNzMxMDAwMFoYDTIwMTgwODMwMDAwMFowcDEYMBYGA1UEAwwPd3d3Lndv
-bGZzc2wuY29tMRAwDgYDVQQIDAdNb250YW5hMQswCQYDVQQGEwJVUzEfMB0GCSqG
-SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTEUMBIGA1UECwwLRW5naW5lZXJpbmcw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/DMotFLIehEJbzTgfSvJN
-dRDxtjWf38p9A5jTrN4DZu4q8diwfW4HVAsQmCFNgMsSIOfMT95FfclydzLqypC7
-aVIQAy+o85XF8YtiVhvvZ2+kEEGVrQqb46XAsNJwdlAwW6joCCx87aeieo04KRys
-x+3yfJWwlYJ9SVw4zXcl772AdVOUPD3KY1ufFbXTHRMvGdE823Y6zLh9yeXC19pA
-b9gh3HMbQi1TnP4a/H2rejY/mN6EfAVnzmoUOIep8Yy1aMtof3EgK/WgY/VWL6Mm
-0rdvsVoX1ziZCP6TWG/+wxNJCBYLp01nAFIxZyNOmO1RRR25BNkL7Ngos0u97TZ5
-AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAFKvhBAIg5o5wgVcM/ymoHzOaDT6zAWf
-ijN5ZAfabBeFkasdvjJFxn9UthDP6hd01NkGbnFdDUByIQd5IGOzFdW35hrW0BEa
-YH+B6ZtptGdO4iIaL51qPNqVNKm/KxT6/iFz58kZfSwUn58zwYM1nJSVDuQ+KReV
-ooXjrXBfav8tipL7WPb+RivQ5J2bDdnkOQrF4j0X3pXMpBwzoXUC7JhmR7nO5I9+
-Ms04/289vnpEv0dherdaCfoevz1jaLMVAIf9jbj2uIMT//hW7RQFT0kH+TNrP/3G
-ff9rBNVGgMFrdP3mGBQdO8YSZw4ejYHEqZxZ7inNz1WmvFMT9FG8t7M=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-cert.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-cert.der
deleted file mode 100644
index 32a1c4a43..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-cert.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-cert.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-cert.pem
deleted file mode 100644
index cc21c2b53..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/expired/expired-cert.pem
+++ /dev/null
@@ -1,69 +0,0 @@
-Certificate:
- Data:
- Version: 1 (0x0)
- Serial Number: 4096 (0x1000)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: CN = www.wolfssl.com, ST = Montana, C = US, emailAddress = info@wolfssl.com, OU = Engineering
- Validity
- Not Before: Jul 31 00:00:00 2018 GMT
- Not After : Aug 30 00:00:00 2018 GMT
- Subject: CN = www.wolfssl.com, ST = Montana, C = US, emailAddress = info@wolfssl.com, OU = Engineering
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- Signature Algorithm: sha256WithRSAEncryption
- 3d:b8:e9:dc:03:4f:0c:79:ed:5d:b5:e8:45:99:b4:9e:fe:9b:
- d9:88:aa:6c:de:1e:34:59:8a:4b:1c:39:0c:7a:a0:7d:24:c1:
- 8d:54:d2:65:92:d4:5b:35:cb:de:fc:37:fe:b1:67:20:64:04:
- 0a:8f:09:71:cf:d3:16:2e:dc:23:c8:7c:2e:72:35:54:ec:d3:
- 63:5a:9d:63:93:42:b6:72:67:8f:80:83:6a:e3:d3:ad:28:87:
- 46:4c:6e:56:d2:02:af:58:2e:a9:0e:e0:07:a6:f1:58:dd:17:
- 82:27:f1:49:3b:8c:77:6f:08:96:d9:04:c8:ec:34:22:a5:b1:
- e9:48:07:41:3c:aa:1e:e4:d9:75:1b:71:bd:4f:ec:5e:fd:2b:
- 44:2e:81:cd:8c:b1:08:e6:de:9b:e2:61:c9:ee:43:f7:af:99:
- 29:fa:50:69:2a:98:47:b9:58:46:57:1e:2d:29:77:51:89:64:
- ee:f2:ba:14:fb:f7:ba:dc:68:d6:34:bc:28:eb:17:f4:37:6a:
- 91:a9:cf:d5:46:e8:6e:8f:2f:e7:f2:e0:b1:ca:8a:0f:a4:55:
- 8b:b9:c2:89:d0:29:82:b7:11:47:af:8b:96:92:e5:a3:da:11:
- 0f:76:db:15:61:a5:5a:ab:60:83:06:de:7e:bf:b6:c8:10:ab:
- 38:1a:d3:c2
------BEGIN CERTIFICATE-----
-MIIDVTCCAj0CAhAAMA0GCSqGSIb3DQEBCwUAMHAxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEQMA4GA1UECAwHTW9udGFuYTELMAkGA1UEBhMCVVMxHzAdBgkqhkiG
-9w0BCQEWEGluZm9Ad29sZnNzbC5jb20xFDASBgNVBAsMC0VuZ2luZWVyaW5nMB4Y
-DTIwMTgwNzMxMDAwMFoYDTIwMTgwODMwMDAwMFowcDEYMBYGA1UEAwwPd3d3Lndv
-bGZzc2wuY29tMRAwDgYDVQQIDAdNb250YW5hMQswCQYDVQQGEwJVUzEfMB0GCSqG
-SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTEUMBIGA1UECwwLRW5naW5lZXJpbmcw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDAlQjhV0HycW230kVBJwFl
-xkWu8rwkMLiVzi9O1vYciLx8n/uoZ3/+XJxRdfeKygfnNS+P4b17wC98q2SoF/zK
-XXu64CHlci5vLobYlXParBtTuV8/1xkNJU/hY2NRiwtkP61DuKUcXDSzrgCgY8X2
-fwtZaHhzpowYqQJtr8MZAS64EOPGzEC0aaNGM2mHbsS7F6bz6N2tc7x7LyG1/WZR
-DL1Us+FtXxy8I3PRCQOJFNIQuWTDKtChlkq84dQaW8egwMFjeA9ENzAyloAyI5Wh
-d7oT0pdz4l0lyWoNwzlgpLSwaUJCCenYCLwzILNYIqeq68Th5mGDxdKW39nQT63X
-AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD246dwDTwx57V216EWZtJ7+m9mIqmze
-HjRZikscOQx6oH0kwY1U0mWS1Fs1y978N/6xZyBkBAqPCXHP0xYu3CPIfC5yNVTs
-02NanWOTQrZyZ4+Ag2rj060oh0ZMblbSAq9YLqkO4Aem8VjdF4In8Uk7jHdvCJbZ
-BMjsNCKlselIB0E8qh7k2XUbcb1P7F79K0Qugc2MsQjm3pviYcnuQ/evmSn6UGkq
-mEe5WEZXHi0pd1GJZO7yuhT797rcaNY0vCjrF/Q3apGpz9VG6G6PL+fy4LHKig+k
-VYu5wonQKYK3EUevi5aS5aPaEQ922xVhpVqrYIMG3n6/tsgQqzga08I=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/gen-ext-certs.sh b/FreeRTOS-Plus/Source/WolfSSL/certs/test/gen-ext-certs.sh
deleted file mode 100644
index 10b887133..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/gen-ext-certs.sh
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/bin/sh
-
-TMP="/tmp/`basename $0`"
-
-gen_cert() {
- openssl req -x509 -keyform DER -key certs/server-key.der \
- -days 1000 -new -outform DER -out $OUT -config $CONFIG \
- >$TMP 2>&1
-
- if [ "$?" = "0" -a -f $OUT ]; then
- echo "Created: $OUT"
- else
- cat $TMP
- echo "Failed: $OUT"
- fi
-
- rm $TMP
-}
-
-OUT=certs/test/cert-ext-nc.der
-KEYFILE=certs/test/cert-ext-nc-key.der
-CONFIG=certs/test/cert-ext-nc.cfg
-tee >$CONFIG <<EOF
-[ req ]
-distinguished_name = req_distinguished_name
-prompt = no
-x509_extensions = v3_ca
-
-[ req_distinguished_name ]
-C = AU
-ST = Queensland
-L = Brisbane
-O = wolfSSL Inc
-OU = Engineering
-CN = www.wolfssl.com
-emailAddress = support@wolfsssl.com
-
-[ v3_ca ]
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer
-basicConstraints = critical, CA:true, pathlen:0
-keyUsage = critical, digitalSignature, cRLSign, keyCertSign
-nameConstraints = critical,permitted;email:.wolfssl.com
-nsComment = "Testing name constraints"
-
-EOF
-gen_cert
-
-OUT=certs/test/cert-ext-ia.der
-KEYFILE=certs/test/cert-ext-ia-key.der
-CONFIG=certs/test/cert-ext-ia.cfg
-tee >$CONFIG <<EOF
-[ req ]
-distinguished_name = req_distinguished_name
-prompt = no
-x509_extensions = v3_ca
-
-[ req_distinguished_name ]
-C = AU
-ST = Queensland
-L = Brisbane
-O = wolfSSL Inc
-OU = Engineering
-CN = www.wolfssl.com
-emailAddress = support@wolfsssl.com
-
-[ v3_ca ]
-inhibitAnyPolicy = critical,1
-nsComment = "Testing inhibit any"
-
-EOF
-gen_cert
-
-OUT=certs/test/cert-ext-nct.der
-KEYFILE=certs/test/cert-ext-mct-key.der
-CONFIG=certs/test/cert-ext-nct.cfg
-tee >$CONFIG <<EOF
-[ req ]
-distinguished_name = req_distinguished_name
-prompt = no
-x509_extensions = v3_ca
-
-[ req_distinguished_name ]
-C = AU
-ST = Queensland
-L = Brisbane
-O = wolfSSL Inc
-OU = Engineering
-CN = www.wolfssl.com
-emailAddress = support@wolfsssl.com
-
-[ v3_ca ]
-nsCertType = critical,server
-nsComment = "Testing Netscape Certificate Type"
-
-EOF
-gen_cert
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/gen-testcerts.sh b/FreeRTOS-Plus/Source/WolfSSL/certs/test/gen-testcerts.sh
deleted file mode 100644
index 9f7dca97b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/gen-testcerts.sh
+++ /dev/null
@@ -1,205 +0,0 @@
-#!/bin/sh
-check_result() {
- if [ $1 -ne 0 ]; then
- echo "Step Failed, Abort"
- exit 1
- else
- echo "Step Succeeded!"
- fi
-}
-
-# Args: 1=FileName, 2=CN, 3=AltName, 4=CA
-build_test_cert_conf() {
- echo "# Generated openssl conf" > "$1".conf
- echo "" >> "$1".conf
- echo "[ ca ]" >> "$1".conf
- echo "default_ca = CA_default" >> "$1".conf
- echo "[ CA_default ]" >> "$1".conf
- echo "certificate = ../ca-cert.pem" >> "$1".conf
- echo "database = ./index.txt" >> "$1".conf
- echo "new_certs_dir = ./certs" >> "$1".conf
- echo "private_key = ./private/cakey.pem" >> "$1".conf
- echo "serial = ./serial" >> "$1".conf
- echo "default_md = sha256" >> "$1".conf
- echo "default_days = 1000" >> "$1".conf
- echo "policy = default_ca_policy" >> "$1".conf
- echo "" >> "$1".conf
- echo "[ default_ca_policy ]" >> "$1".conf
- echo "commonName = supplied" >> "$1".conf
- echo "stateOrProvinceName = supplied" >> "$1".conf
- echo "countryName = supplied" >> "$1".conf
- echo "emailAddress = supplied" >> "$1".conf
- echo "organizationName = optional" >> "$1".conf
- echo "organizationalUnitName = optional" >> "$1".conf
- echo "" >> "$1".conf
- echo "[ req ]" >> "$1".conf
- echo "prompt = no" >> "$1".conf
- echo "default_bits = 2048" >> "$1".conf
- echo "distinguished_name = req_distinguished_name" >> "$1".conf
- if [ -n "$3" ]; then
- echo "req_extensions = req_ext" >> "$1".conf
- fi
- if [ -n "$4" ]; then
- echo "basicConstraints=CA:true,pathlen:0" >> "$1".conf
- echo "" >> "$1".conf
- fi
- echo "" >> "$1".conf
- echo "[ req_distinguished_name ]" >> "$1".conf
- echo "C = US" >> "$1".conf
- echo "ST = Montana" >> "$1".conf
- echo "L = Bozeman" >> "$1".conf
- echo "OU = Engineering" >> "$1".conf
- echo "CN = $2" >> "$1".conf
- echo "emailAddress = info@wolfssl.com" >> "$1".conf
- echo "" >> "$1".conf
- if [ -n "$3" ]; then
- echo "[ req_ext ]" >> "$1".conf
- if [ "$3" != *"DER"* ]; then
- echo "subjectAltName = @alt_names" >> "$1".conf
- echo "[alt_names]" >> "$1".conf
- echo "DNS.1 = $3" >> "$1".conf
- else
- echo "subjectAltName = $3" >> "$1".conf
- fi
- fi
-}
-
-# Args: 1=FileName
-generate_test_cert() {
- rm "$1".der
- rm "$1".pem
-
- echo "step 1 create configuration"
- build_test_cert_conf "$1" "$2" "$3"
- check_result $?
-
- echo "step 2 create csr"
- openssl req -new -sha256 -out "$1".csr -key ../server-key.pem -config "$1".conf
- check_result $?
-
- echo "step 3 check csr"
- openssl req -text -noout -in "$1".csr -config "$1".conf
- check_result $?
-
- echo "step 4 create cert"
- if [ "$3" = "" ]; then
- openssl x509 -req -days 1000 -sha256 \
- -in "$1".csr -signkey ../server-key.pem \
- -out "$1".pem -extfile "$1".conf
- else
- openssl x509 -req -days 1000 -sha256 \
- -in "$1".csr -signkey ../server-key.pem \
- -out "$1".pem -extensions req_ext -extfile "$1".conf
- fi
- check_result $?
- rm "$1".conf
- rm "$1".csr
-
- if [ -n "$4" ]; then
- echo "step 5 generate crl"
- mkdir ../crl/demoCA
- touch ../crl/demoCA/index.txt
- touch ../crl/demoCA/index.txt.attr
- echo "01" > ../crl/crlnumber
- openssl ca -config ../renewcerts/wolfssl.cnf -gencrl -crldays 1000 \
- -out crl.revoked -keyfile ../server-key.pem -cert "$1".pem
- check_result $?
- rm ../crl/"$1"Crl.pem
- openssl crl -in crl.revoked -text > tmp.pem
- check_result $?
- mv tmp.pem ../crl/"$1"Crl.pem
- rm crl.revoked
- rm -rf ../crl/demoCA #cleans up index.txt and index.txt.attr
- rm ../crl/crlnumber*
- fi
-
- echo "step 6 add cert text information to pem"
- openssl x509 -inform pem -in "$1".pem -text > tmp.pem
- check_result $?
- mv tmp.pem "$1".pem
-
- echo "step 7 make binary der version"
- openssl x509 -inform pem -in "$1".pem -outform der -out "$1".der
- check_result $?
-}
-
-generate_expired_certs() {
- rm "$1".der
- rm "$1".pem
-
- mkdir -p certs
- touch ./index.txt
- touch ./index.txt.attr
- echo 1000 > ./serial
-
- echo "step 1 create configuration"
- build_test_cert_conf "$1" www.wolfssl.com 0 "$3"
- check_result $?
-
- echo "step 2 create csr"
- openssl req -new -sha256 -out "$1".csr -key "$2" -config "$1".conf
- check_result $?
-
- echo "step 3 check csr"
- openssl req -text -noout -in "$1".csr -config "$1".conf
- check_result $?
-
- echo "step 4 create cert"
- openssl ca -config ../renewcerts/wolfssl.cnf -selfsign -config "$1".conf \
- -keyfile "$2" -in "$1".csr -out "$1".pem \
- -startdate 20180731000000Z -enddate 20180830000000Z -batch
- check_result $?
- rm "$1".conf
- rm "$1".csr
-
- echo "step 5 add cert text information to pem"
- openssl x509 -inform pem -in "$1".pem -text > tmp.pem
- check_result $?
- mv tmp.pem "$1".pem
-
- echo "step 7 make binary der version"
- openssl x509 -inform pem -in "$1".pem -outform der -out "$1".der
- check_result $?
-
- rm -rf certs
- rm ./index.txt*
- rm ./serial*
-}
-
-# Generate Good CN=localhost, Alt=None
-generate_test_cert server-goodcn localhost "" 1
-
-# Generate Good CN=www.nomatch.com, Alt=localhost
-generate_test_cert server-goodalt www.nomatch.com localhost 1
-
-# Generate Good CN=*localhost, Alt=None
-# Surround "*localhost" with quotes to prevent shell expansion to wildcard
-generate_test_cert server-goodcnwild "*localhost" "" 1
-
-# Generate Good CN=www.nomatch.com, Alt=*localhost
-# Surround "*localhost" with quotes to prevent shell expansion to wildcard
-generate_test_cert server-goodaltwild www.nomatch.com "*localhost" 1
-
-# Generate Bad CN=localhost\0h, Alt=None
-# DG: Have not found a way to properly encode null in common name
-generate_test_cert server-badcnnull DER:30:0d:82:0b:6c:6f:63:61:6c:68:6f:73:74:00:68
-
-# Generate Bad Name CN=www.nomatch.com, Alt=None
-generate_test_cert server-badcn www.nomatch.com
-
-# Generate Bad Alt CN=www.nomatch.com, Alt=localhost\0h
-generate_test_cert server-badaltnull www.nomatch.com DER:30:0d:82:0b:6c:6f:63:61:6c:68:6f:73:74:00:68
-
-# Generate Bad Alt Name CN=www.nomatch.com, Alt=www.nomatch.com
-generate_test_cert server-badaltname www.nomatch.com www.nomatch.com
-
-# Generate Good Alt Name CN=localhost, Alt=localhost
-generate_test_cert server-localhost localhost localhost
-
-# Generate Bad Alt Name CN=localhost, Alt=garbage
-generate_test_cert server-garbage localhost garbage
-
-
-# Generate Expired Certificates
-generate_expired_certs expired/expired-ca ../ca-key.pem 1
-generate_expired_certs expired/expired-cert ../server-key.pem
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/include.am b/FreeRTOS-Plus/Source/WolfSSL/certs/test/include.am
deleted file mode 100644
index 6f37df6d2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/include.am
+++ /dev/null
@@ -1,64 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- certs/test/cert-ext-ia.cfg \
- certs/test/cert-ext-ia.der \
- certs/test/cert-ext-nc.cfg \
- certs/test/cert-ext-nc.der \
- certs/test/cert-ext-nct.cfg \
- certs/test/cert-ext-nct.der \
- certs/test/cert-ext-ns.der \
- certs/test/gen-ext-certs.sh \
- certs/test/server-duplicate-policy.pem \
- certs/test/cert-ext-joi.pem
-
-# The certs/server-cert with the last byte (signature byte) changed
-EXTRA_DIST += \
- certs/test/server-cert-rsa-badsig.der \
- certs/test/server-cert-rsa-badsig.pem \
- certs/test/server-cert-ecc-badsig.der \
- certs/test/server-cert-ecc-badsig.pem
-
-EXTRA_DIST += \
- certs/test/gen-testcerts.sh \
- certs/test/server-garbage.der \
- certs/test/server-garbage.pem \
- certs/test/server-goodcn.pem \
- certs/test/server-goodcn.der \
- certs/test/server-goodalt.pem \
- certs/test/server-goodalt.der \
- certs/test/server-goodcnwild.pem \
- certs/test/server-goodcnwild.der \
- certs/test/server-goodaltwild.pem \
- certs/test/server-goodaltwild.der \
- certs/test/server-badcnnull.pem \
- certs/test/server-badcnnull.der \
- certs/test/server-badcn.pem \
- certs/test/server-badcn.der \
- certs/test/server-badaltnull.pem \
- certs/test/server-badaltnull.der \
- certs/test/server-badaltname.der \
- certs/test/server-badaltname.pem \
- certs/test/server-localhost.der \
- certs/test/server-localhost.pem \
- certs/crl/server-goodaltCrl.pem \
- certs/crl/server-goodcnCrl.pem \
- certs/crl/server-goodaltwildCrl.pem \
- certs/crl/server-goodcnwildCrl.pem
-
-EXTRA_DIST += \
- certs/test/crit-cert.pem \
- certs/test/crit-key.pem \
- certs/test/dh1024.der \
- certs/test/dh1024.pem \
- certs/test/dh512.der \
- certs/test/dh512.pem \
- certs/test/digsigku.pem
-
-EXTRA_DIST += \
- certs/test/expired/expired-ca.pem \
- certs/test/expired/expired-ca.der \
- certs/test/expired/expired-cert.pem \
- certs/test/expired/expired-cert.der
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltname.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltname.der
deleted file mode 100644
index 998b44a60..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltname.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltname.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltname.pem
deleted file mode 100644
index 849e6600b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltname.pem
+++ /dev/null
@@ -1,75 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- b2:b1:5d:67:1e:bd:3f:cb
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = www.nomatch.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Sep 19 21:21:24 2018 GMT
- Not After : Jun 15 21:21:24 2021 GMT
- Subject: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = www.nomatch.com, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Alternative Name:
- DNS:www.nomatch.com
- Signature Algorithm: sha256WithRSAEncryption
- b3:a6:46:25:12:aa:40:b8:db:4e:7f:c5:06:ae:76:51:67:cc:
- a1:58:bf:47:37:1f:59:99:e8:3e:2d:c8:38:84:19:18:f5:c1:
- d3:2d:c5:82:11:e7:94:c4:0f:f1:d1:e6:30:d2:9a:20:07:33:
- 3c:e9:8d:a3:7c:e3:40:d5:e1:ec:8c:94:60:f1:93:8a:10:bb:
- a8:dd:0c:6c:89:68:8c:f2:e3:53:a3:58:21:5b:7d:ab:b2:f2:
- 7c:1a:06:8f:2d:fd:89:75:1f:9f:92:24:9b:f9:1e:a0:dd:01:
- 08:a4:2c:58:40:29:c6:b9:46:42:66:4f:d6:21:db:42:24:47:
- 1b:74:94:99:d2:14:84:5b:75:49:03:92:f3:51:7b:c5:53:68:
- 04:98:a6:0c:08:86:91:28:c8:d4:86:5f:3d:0e:05:54:bd:05:
- a6:99:2e:94:c9:db:e0:5e:19:94:6d:4a:a2:81:73:e7:d3:8f:
- e4:ec:f3:fe:22:26:ae:8a:86:01:e2:c6:7c:38:dc:88:54:25:
- 69:aa:d4:1c:33:d8:9a:ae:83:95:59:1a:6f:d6:27:e4:03:7a:
- 25:66:16:02:7d:2b:fb:ff:8e:82:1b:4f:2c:d6:ca:61:16:08:
- aa:44:0f:aa:76:3b:72:87:21:dd:a8:5d:38:fc:c7:03:3c:4a:
- 0a:80:7a:4e
------BEGIN CERTIFICATE-----
-MIIDpzCCAo+gAwIBAgIJALKxXWcevT/LMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEUMBIG
-A1UECwwLRW5naW5lZXJpbmcxGDAWBgNVBAMMD3d3dy5ub21hdGNoLmNvbTEfMB0G
-CSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAeFw0xODA5MTkyMTIxMjRaFw0y
-MTA2MTUyMTIxMjRaMIGCMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQ
-MA4GA1UEBwwHQm96ZW1hbjEUMBIGA1UECwwLRW5naW5lZXJpbmcxGDAWBgNVBAMM
-D3d3dy5ub21hdGNoLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNv
-bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMCVCOFXQfJxbbfSRUEn
-AWXGRa7yvCQwuJXOL07W9hyIvHyf+6hnf/5cnFF194rKB+c1L4/hvXvAL3yrZKgX
-/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/XGQ0lT+FjY1GLC2Q/rUO4pRxcNLOuAKBj
-xfZ/C1loeHOmjBipAm2vwxkBLrgQ48bMQLRpo0YzaYduxLsXpvPo3a1zvHsvIbX9
-ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq0KGWSrzh1Bpbx6DAwWN4D0Q3MDKWgDIj
-laF3uhPSl3PiXSXJag3DOWCktLBpQkIJ6dgIvDMgs1gip6rrxOHmYYPF0pbf2dBP
-rdcCAwEAAaMeMBwwGgYDVR0RBBMwEYIPd3d3Lm5vbWF0Y2guY29tMA0GCSqGSIb3
-DQEBCwUAA4IBAQCzpkYlEqpAuNtOf8UGrnZRZ8yhWL9HNx9Zmeg+Lcg4hBkY9cHT
-LcWCEeeUxA/x0eYw0pogBzM86Y2jfONA1eHsjJRg8ZOKELuo3QxsiWiM8uNTo1gh
-W32rsvJ8GgaPLf2JdR+fkiSb+R6g3QEIpCxYQCnGuUZCZk/WIdtCJEcbdJSZ0hSE
-W3VJA5LzUXvFU2gEmKYMCIaRKMjUhl89DgVUvQWmmS6UydvgXhmUbUqigXPn04/k
-7PP+IiauioYB4sZ8ONyIVCVpqtQcM9iaroOVWRpv1ifkA3olZhYCfSv7/46CG08s
-1sphFgiqRA+qdjtyhyHdqF04/McDPEoKgHpO
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltnull.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltnull.der
deleted file mode 100644
index 551c1dbe2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltnull.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltnull.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltnull.pem
deleted file mode 100644
index 88613b353..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badaltnull.pem
+++ /dev/null
@@ -1,76 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 90:02:1e:3e:94:03:86:27
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = www.nomatch.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Sep 19 21:21:24 2018 GMT
- Not After : Jun 15 21:21:24 2021 GMT
- Subject: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = www.nomatch.com, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Alternative Name:
- DNS:DER:30:0d:82:0b:6c:6f:63:61:6c:68:6f:73:74:00:68
- Signature Algorithm: sha256WithRSAEncryption
- 7f:43:90:8a:bb:e2:2e:d9:f1:df:83:6d:89:53:65:b0:69:6c:
- 00:30:35:b3:24:3c:3e:40:60:7c:b2:a1:86:5c:99:bc:30:e3:
- f6:f0:2f:71:e0:1f:17:a2:71:a8:ad:33:62:98:13:61:04:0d:
- f2:fc:aa:df:af:62:6d:ac:ba:55:95:da:5e:5b:14:c1:a5:8e:
- 73:62:a7:e1:3f:fb:66:6a:c9:f7:41:3b:17:9c:f8:20:0a:11:
- 54:e9:8e:bd:42:3e:61:6f:b7:21:c2:aa:8f:1b:73:9e:af:eb:
- 4d:7b:94:4a:17:d5:4a:15:a5:62:bb:4b:5f:06:3f:a2:e2:28:
- b7:c9:67:4b:d9:0d:b7:8f:bf:46:02:ad:a6:aa:31:cb:ff:76:
- 9d:e5:d7:b8:fd:7b:df:e1:42:75:78:76:7d:35:90:6c:94:16:
- 47:0f:65:e6:86:ee:65:16:19:65:a3:96:20:44:28:f5:de:8d:
- f3:f7:8e:2b:95:f8:4f:4d:76:74:43:5d:e1:84:7c:94:f0:8c:
- c7:19:6c:a3:77:06:37:7e:c2:f4:f7:6a:c6:19:8a:54:75:cc:
- b6:a7:7c:db:f3:91:79:76:d1:e4:b8:fa:cd:07:94:ef:33:11:
- fa:43:ca:1f:6e:08:70:9c:3c:19:dd:89:65:78:aa:6a:da:ec:
- d5:d9:f8:3f
------BEGIN CERTIFICATE-----
-MIIDyDCCArCgAwIBAgIJAJACHj6UA4YnMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEUMBIG
-A1UECwwLRW5naW5lZXJpbmcxGDAWBgNVBAMMD3d3dy5ub21hdGNoLmNvbTEfMB0G
-CSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAeFw0xODA5MTkyMTIxMjRaFw0y
-MTA2MTUyMTIxMjRaMIGCMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQ
-MA4GA1UEBwwHQm96ZW1hbjEUMBIGA1UECwwLRW5naW5lZXJpbmcxGDAWBgNVBAMM
-D3d3dy5ub21hdGNoLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNv
-bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMCVCOFXQfJxbbfSRUEn
-AWXGRa7yvCQwuJXOL07W9hyIvHyf+6hnf/5cnFF194rKB+c1L4/hvXvAL3yrZKgX
-/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/XGQ0lT+FjY1GLC2Q/rUO4pRxcNLOuAKBj
-xfZ/C1loeHOmjBipAm2vwxkBLrgQ48bMQLRpo0YzaYduxLsXpvPo3a1zvHsvIbX9
-ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq0KGWSrzh1Bpbx6DAwWN4D0Q3MDKWgDIj
-laF3uhPSl3PiXSXJag3DOWCktLBpQkIJ6dgIvDMgs1gip6rrxOHmYYPF0pbf2dBP
-rdcCAwEAAaM/MD0wOwYDVR0RBDQwMoIwREVSOjMwOjBkOjgyOjBiOjZjOjZmOjYz
-OjYxOjZjOjY4OjZmOjczOjc0OjAwOjY4MA0GCSqGSIb3DQEBCwUAA4IBAQB/Q5CK
-u+Iu2fHfg22JU2WwaWwAMDWzJDw+QGB8sqGGXJm8MOP28C9x4B8XonGorTNimBNh
-BA3y/Krfr2JtrLpVldpeWxTBpY5zYqfhP/tmasn3QTsXnPggChFU6Y69Qj5hb7ch
-wqqPG3Oer+tNe5RKF9VKFaViu0tfBj+i4ii3yWdL2Q23j79GAq2mqjHL/3ad5de4
-/Xvf4UJ1eHZ9NZBslBZHD2Xmhu5lFhllo5YgRCj13o3z944rlfhPTXZ0Q13hhHyU
-8IzHGWyjdwY3fsL092rGGYpUdcy2p3zb85F5dtHkuPrNB5TvMxH6Q8ofbghwnDwZ
-3YlleKpq2uzV2fg/
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcn.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcn.der
deleted file mode 100644
index 5161e6a1c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcn.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcn.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcn.pem
deleted file mode 100644
index eff21cd58..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcn.pem
+++ /dev/null
@@ -1,71 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- d8:e7:91:d6:1a:3a:ce:8a
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = www.nomatch.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Sep 19 21:21:24 2018 GMT
- Not After : Jun 15 21:21:24 2021 GMT
- Subject: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = www.nomatch.com, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- Signature Algorithm: sha256WithRSAEncryption
- 4b:d3:ae:c0:12:36:af:f3:53:ca:55:b0:8e:d4:e3:9d:ec:fd:
- df:92:9a:cc:3f:b3:d9:4f:4f:8e:1d:20:b2:94:85:88:07:d4:
- 7c:b3:8f:30:84:9b:9a:bf:46:3f:50:3f:3f:5f:59:f7:68:1e:
- b9:f6:9b:89:d7:e6:d5:b3:fd:01:22:df:e0:a2:50:9c:b4:e1:
- 20:e7:27:e8:5a:ee:d1:1c:01:24:05:e5:8d:f9:ad:62:4c:1b:
- c7:28:b4:ce:11:69:c4:65:f1:c8:9c:cb:a4:84:a0:db:74:2d:
- fc:f6:da:a8:f6:e2:c8:9e:58:6e:3e:da:f9:7f:06:8c:3f:da:
- 56:f3:c5:9e:11:b8:7d:4d:7d:f5:77:a8:0e:c7:9c:92:e7:a9:
- 72:b7:18:06:6c:a1:5c:0d:bf:b4:0e:32:05:de:b7:94:cc:aa:
- a8:f5:b5:22:66:79:6a:58:23:87:18:67:60:a9:3d:56:89:16:
- 73:41:6b:56:d2:46:b0:3c:36:26:ec:6c:bd:53:02:24:a7:c1:
- 76:f8:2d:3b:7f:22:e0:46:2c:f0:bf:5d:09:cd:bc:d3:40:3a:
- 42:e0:c8:d4:c0:18:f1:21:b4:22:62:3d:57:f9:2e:64:00:62:
- 8d:78:4d:03:af:8b:c6:4e:0e:c1:d5:31:59:56:64:8a:75:c6:
- 46:0e:42:80
------BEGIN CERTIFICATE-----
-MIIDhzCCAm+gAwIBAgIJANjnkdYaOs6KMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEUMBIG
-A1UECwwLRW5naW5lZXJpbmcxGDAWBgNVBAMMD3d3dy5ub21hdGNoLmNvbTEfMB0G
-CSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAeFw0xODA5MTkyMTIxMjRaFw0y
-MTA2MTUyMTIxMjRaMIGCMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQ
-MA4GA1UEBwwHQm96ZW1hbjEUMBIGA1UECwwLRW5naW5lZXJpbmcxGDAWBgNVBAMM
-D3d3dy5ub21hdGNoLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNv
-bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMCVCOFXQfJxbbfSRUEn
-AWXGRa7yvCQwuJXOL07W9hyIvHyf+6hnf/5cnFF194rKB+c1L4/hvXvAL3yrZKgX
-/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/XGQ0lT+FjY1GLC2Q/rUO4pRxcNLOuAKBj
-xfZ/C1loeHOmjBipAm2vwxkBLrgQ48bMQLRpo0YzaYduxLsXpvPo3a1zvHsvIbX9
-ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq0KGWSrzh1Bpbx6DAwWN4D0Q3MDKWgDIj
-laF3uhPSl3PiXSXJag3DOWCktLBpQkIJ6dgIvDMgs1gip6rrxOHmYYPF0pbf2dBP
-rdcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAS9OuwBI2r/NTylWwjtTjnez935Ka
-zD+z2U9Pjh0gspSFiAfUfLOPMISbmr9GP1A/P19Z92geufabidfm1bP9ASLf4KJQ
-nLThIOcn6Fru0RwBJAXljfmtYkwbxyi0zhFpxGXxyJzLpISg23Qt/PbaqPbiyJ5Y
-bj7a+X8GjD/aVvPFnhG4fU199XeoDseckuepcrcYBmyhXA2/tA4yBd63lMyqqPW1
-ImZ5algjhxhnYKk9VokWc0FrVtJGsDw2JuxsvVMCJKfBdvgtO38i4EYs8L9dCc28
-00A6QuDI1MAY8SG0ImI9V/kuZABijXhNA6+Lxk4OwdUxWVZkinXGRg5CgA==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcnnull.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcnnull.der
deleted file mode 100644
index 9c4ff9cc5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcnnull.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcnnull.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcnnull.pem
deleted file mode 100644
index 41f31480a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-badcnnull.pem
+++ /dev/null
@@ -1,73 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- c8:aa:6e:e3:4e:bf:ed:34
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = DER:30:0d:82:0b:6c:6f:63:61:6c:68:6f:73:74:00:68, emailAddress = info@wolfssl.com
- Validity
- Not Before: Sep 19 21:21:24 2018 GMT
- Not After : Jun 15 21:21:24 2021 GMT
- Subject: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = DER:30:0d:82:0b:6c:6f:63:61:6c:68:6f:73:74:00:68, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- Signature Algorithm: sha256WithRSAEncryption
- 59:58:d4:6f:58:56:b5:a8:93:1c:32:3c:be:f1:e2:e8:93:c9:
- 64:69:b3:8e:87:66:20:62:27:23:ff:3a:99:73:4b:56:27:27:
- 9f:2a:17:56:d9:6d:01:a1:f5:e7:50:aa:ff:23:fb:4e:3d:35:
- fe:60:d4:ba:fd:01:1a:5b:99:c8:72:e8:19:bc:82:92:26:c8:
- 02:09:6a:5b:50:b1:69:ab:49:9b:f5:07:f5:bd:f1:70:13:0e:
- c7:69:7d:ca:78:9b:84:6f:b0:c7:c9:48:da:2e:c7:2e:44:18:
- 15:17:ce:23:63:fa:ae:bb:da:0d:72:fa:e6:99:d5:00:bb:55:
- 1f:7b:73:da:ad:36:e7:43:db:20:82:e5:83:a9:7f:49:f2:e3:
- 26:8d:23:ea:da:a0:9a:1d:fa:6a:12:a8:c9:e8:01:87:8b:39:
- 90:3e:f9:b5:f2:36:ed:87:5c:55:6d:b7:40:34:59:cb:04:6e:
- 06:c6:f0:4b:31:51:25:50:c7:a2:5f:a0:ba:0a:6f:fb:13:01:
- ef:21:18:af:64:9d:39:b8:b1:9b:0f:8d:34:12:26:43:a0:51:
- 4d:82:27:f8:19:dc:fc:29:d6:29:5e:22:b9:f4:da:e7:c0:2a:
- 1c:0c:7a:d9:0f:cb:08:a0:41:40:03:4f:cb:04:20:2a:f4:e0:
- bd:9b:fa:53
------BEGIN CERTIFICATE-----
-MIIDyTCCArGgAwIBAgIJAMiqbuNOv+00MA0GCSqGSIb3DQEBCwUAMIGjMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEUMBIG
-A1UECwwLRW5naW5lZXJpbmcxOTA3BgNVBAMMMERFUjozMDowZDo4MjowYjo2Yzo2
-Zjo2Mzo2MTo2Yzo2ODo2Zjo3Mzo3NDowMDo2ODEfMB0GCSqGSIb3DQEJARYQaW5m
-b0B3b2xmc3NsLmNvbTAeFw0xODA5MTkyMTIxMjRaFw0yMTA2MTUyMTIxMjRaMIGj
-MQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1h
-bjEUMBIGA1UECwwLRW5naW5lZXJpbmcxOTA3BgNVBAMMMERFUjozMDowZDo4Mjow
-Yjo2Yzo2Zjo2Mzo2MTo2Yzo2ODo2Zjo3Mzo3NDowMDo2ODEfMB0GCSqGSIb3DQEJ
-ARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAMCVCOFXQfJxbbfSRUEnAWXGRa7yvCQwuJXOL07W9hyIvHyf+6hnf/5cnFF1
-94rKB+c1L4/hvXvAL3yrZKgX/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/XGQ0lT+Fj
-Y1GLC2Q/rUO4pRxcNLOuAKBjxfZ/C1loeHOmjBipAm2vwxkBLrgQ48bMQLRpo0Yz
-aYduxLsXpvPo3a1zvHsvIbX9ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq0KGWSrzh
-1Bpbx6DAwWN4D0Q3MDKWgDIjlaF3uhPSl3PiXSXJag3DOWCktLBpQkIJ6dgIvDMg
-s1gip6rrxOHmYYPF0pbf2dBPrdcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAWVjU
-b1hWtaiTHDI8vvHi6JPJZGmzjodmIGInI/86mXNLVicnnyoXVtltAaH151Cq/yP7
-Tj01/mDUuv0BGluZyHLoGbyCkibIAglqW1CxaatJm/UH9b3xcBMOx2l9ynibhG+w
-x8lI2i7HLkQYFRfOI2P6rrvaDXL65pnVALtVH3tz2q0250PbIILlg6l/SfLjJo0j
-6tqgmh36ahKoyegBh4s5kD75tfI27YdcVW23QDRZywRuBsbwSzFRJVDHol+gugpv
-+xMB7yEYr2SdObixmw+NNBImQ6BRTYIn+Bnc/CnWKV4iufTa58AqHAx62Q/LCKBB
-QANPywQgKvTgvZv6Uw==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-ecc-badsig.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-ecc-badsig.der
deleted file mode 100644
index 8defd0079..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-ecc-badsig.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-ecc-badsig.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-ecc-badsig.pem
deleted file mode 100644
index c4991c994..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-ecc-badsig.pem
+++ /dev/null
@@ -1,62 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 4096 (0x1000)
- Signature Algorithm: ecdsa-with-SHA256
- Issuer: C=US, ST=Washington, L=Seattle, O=wolfSSL, OU=Development, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Oct 20 18:19:06 2017 GMT
- Not After : Oct 18 18:19:06 2027 GMT
- Subject: C=US, ST=Washington, L=Seattle, O=Eliptic, OU=ECC, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: id-ecPublicKey
- Public-Key: (256 bit)
- pub:
- 04:bb:33:ac:4c:27:50:4a:c6:4a:a5:04:c3:3c:de:
- 9f:36:db:72:2d:ce:94:ea:2b:fa:cb:20:09:39:2c:
- 16:e8:61:02:e9:af:4d:d3:02:93:9a:31:5b:97:92:
- 21:7f:f0:cf:18:da:91:11:02:34:86:e8:20:58:33:
- 0b:80:34:89:d8
- ASN1 OID: prime256v1
- NIST CURVE: P-256
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- Netscape Cert Type:
- SSL Server
- X509v3 Subject Key Identifier:
- 5D:5D:26:EF:AC:7E:36:F9:9B:76:15:2B:4A:25:02:23:EF:B2:89:30
- X509v3 Authority Key Identifier:
- keyid:56:8E:9A:C3:F0:42:DE:18:B9:45:55:6E:F9:93:CF:EA:C3:F3:A5:21
- DirName:/C=US/ST=Washington/L=Seattle/O=wolfSSL/OU=Development/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:97:B4:BD:16:78:F8:47:F2
-
- X509v3 Key Usage: critical
- Digital Signature, Key Encipherment, Key Agreement
- X509v3 Extended Key Usage:
- TLS Web Server Authentication
- Signature Algorithm: ecdsa-with-SHA256
- 30:46:02:21:00:be:b8:58:f0:e4:15:01:1f:df:70:54:73:4a:
- 6c:40:1f:77:a8:b4:eb:52:1e:bf:f5:0d:b1:33:ca:6a:c4:76:
- b9:02:21:00:97:08:de:2c:28:c1:45:71:b6:2c:54:87:98:63:
- 76:a8:21:34:90:a8:f7:9e:3f:fc:02:b0:e7:d3:09:31:27:e4
------BEGIN CERTIFICATE-----
-MIIDUDCCAvWgAwIBAgICEAAwCgYIKoZIzj0EAwIwgZcxCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAd3
-b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEYMBYGA1UEAwwPd3d3LndvbGZz
-c2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE3MTAy
-MDE4MTkwNloXDTI3MTAxODE4MTkwNlowgY8xCzAJBgNVBAYTAlVTMRMwEQYDVQQI
-DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYDVQQKDAdFbGlwdGlj
-MQwwCgYDVQQLDANFQ0MxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqG
-SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEH
-A0IABLszrEwnUErGSqUEwzzenzbbci3OlOor+ssgCTksFuhhAumvTdMCk5oxW5eS
-IX/wzxjakRECNIboIFgzC4A0idijggE1MIIBMTAJBgNVHRMEAjAAMBEGCWCGSAGG
-+EIBAQQEAwIGQDAdBgNVHQ4EFgQUXV0m76x+NvmbdhUrSiUCI++yiTAwgcwGA1Ud
-IwSBxDCBwYAUVo6aw/BC3hi5RVVu+ZPP6sPzpSGhgZ2kgZowgZcxCzAJBgNVBAYT
-AlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRAwDgYD
-VQQKDAd3b2xmU1NMMRQwEgYDVQQLDAtEZXZlbG9wbWVudDEYMBYGA1UEAwwPd3d3
-LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkA
-l7S9Fnj4R/IwDgYDVR0PAQH/BAQDAgOoMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAoG
-CCqGSM49BAMCA0kAMEYCIQC+uFjw5BUBH99wVHNKbEAfd6i061Iev/UNsTPKasR2
-uQIhAJcI3iwowUVxtixUh5hjdqghNJCo954//AKw59MJxSfk
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-rsa-badsig.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-rsa-badsig.der
deleted file mode 100644
index 0dc446b09..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-rsa-badsig.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-rsa-badsig.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-rsa-badsig.pem
deleted file mode 100644
index addafbad3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-cert-rsa-badsig.pem
+++ /dev/null
@@ -1,172 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 1 (0x1)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL, OU=Support, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- B3:11:32:C9:92:98:84:E2:C9:F8:D0:3B:6E:03:42:CA:1F:0E:8E:3C
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- b4:54:60:ad:a0:03:32:de:02:7f:21:4a:81:c6:ed:cd:cd:d8:
- 12:8a:c0:ba:82:5b:75:ad:54:e3:7c:80:6a:ac:2e:6c:20:4e:
- be:4d:82:a7:47:13:5c:f4:c6:6a:2b:10:99:58:de:ab:6b:7c:
- 22:05:c1:83:9d:cb:ff:3c:e4:2d:57:6a:a6:96:df:d3:c1:68:
- e3:d2:c6:83:4b:97:e2:c6:32:0e:be:c4:03:b9:07:8a:5b:b8:
- 84:ba:c5:39:3f:1c:58:a7:55:d7:f0:9b:e8:d2:45:b9:e3:83:
- 2e:ee:b6:71:56:b9:3a:ee:3f:27:d8:77:e8:fb:44:48:65:27:
- 47:4c:fb:fe:72:c3:ac:05:7b:1d:cb:eb:5e:65:9a:ab:02:e4:
- 88:5b:3b:8b:0b:c7:cc:a9:a6:8b:e1:87:b0:19:1a:0c:28:58:
- 6f:99:52:7e:ed:b0:3a:68:3b:8c:0a:08:74:72:ab:b9:09:c5:
- ed:04:7e:6f:0b:1c:09:21:d0:cd:7f:f9:c4:5e:27:20:e4:85:
- 73:52:05:d2:ba:f8:d5:8f:41:cc:23:2e:12:6d:bc:31:98:e7:
- 63:a3:8e:26:cd:e8:2b:88:ee:e2:fe:3a:74:52:34:0e:fd:12:
- e5:5e:69:50:20:31:34:e4:31:f1:e7:e4:5b:03:13:da:ac:41:
- 6c:e7:cf:2b
------BEGIN CERTIFICATE-----
-MIIEnjCCA4agAwIBAgIBATANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgwNDEz
-MTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBkDELMAkGA1UEBhMCVVMxEDAOBgNVBAgM
-B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xEDAOBgNVBAoMB3dvbGZTU0wxEDAO
-BgNVBAsMB1N1cHBvcnQxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqG
-SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAMCVCOFXQfJxbbfSRUEnAWXGRa7yvCQwuJXOL07W9hyIvHyf+6hn
-f/5cnFF194rKB+c1L4/hvXvAL3yrZKgX/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/X
-GQ0lT+FjY1GLC2Q/rUO4pRxcNLOuAKBjxfZ/C1loeHOmjBipAm2vwxkBLrgQ48bM
-QLRpo0YzaYduxLsXpvPo3a1zvHsvIbX9ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq
-0KGWSrzh1Bpbx6DAwWN4D0Q3MDKWgDIjlaF3uhPSl3PiXSXJag3DOWCktLBpQkIJ
-6dgIvDMgs1gip6rrxOHmYYPF0pbf2dBPrdcCAwEAAaOB/DCB+TAdBgNVHQ4EFgQU
-sxEyyZKYhOLJ+NA7bgNCyh8OjjwwgckGA1UdIwSBwTCBvoAUJ45nEXTDJh0/7TNj
-s6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5h
-MRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290aDETMBEGA1UECwwK
-Q29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcN
-AQkBFhBpbmZvQHdvbGZzc2wuY29tggkAhv/1jhDeuPswDAYDVR0TBAUwAwEB/zAN
-BgkqhkiG9w0BAQsFAAOCAQEAtFRgraADMt4CfyFKgcbtzc3YEorAuoJbda1U43yA
-aqwubCBOvk2Cp0cTXPTGaisQmVjeq2t8IgXBg53L/zzkLVdqppbf08Fo49LGg0uX
-4sYyDr7EA7kHilu4hLrFOT8cWKdV1/Cb6NJFueODLu62cVa5Ou4/J9h36PtESGUn
-R0z7/nLDrAV7HcvrXmWaqwLkiFs7iwvHzKmmi+GHsBkaDChYb5lSfu2wOmg7jAoI
-dHKruQnF7QR+bwscCSHQzX/5xF4nIOSFc1IF0rr41Y9BzCMuEm28MZjnY6OOJs3o
-K4ju4v46dFI0Dv0S5V5pUCAxNOQx8efkWwMT2qxBbOfPKw==
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 9727763710660753659 (0x86fff58e10deb8fb)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:09 2018 GMT
- Not After : Jan 7 15:23:09 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a:
- f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac:
- de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98:
- 21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77:
- 32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1:
- 8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3:
- a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed:
- a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95:
- 82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c:
- 3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db:
- 76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc:
- 73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98:
- de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68:
- cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2:
- b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3:
- 13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98:
- ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed:
- 36:79
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 9e:28:88:72:00:ca:e6:e7:97:ca:c1:f1:1f:9e:12:b2:b8:c7:
- 51:ea:28:e1:36:b5:2d:e6:2f:08:23:cb:a9:4a:87:25:c6:5d:
- 89:45:ea:f5:00:98:ac:76:fb:1b:af:f0:ce:64:9e:da:08:bf:
- b6:eb:b4:b5:0c:a0:e7:f6:47:59:1c:61:cf:2e:0e:58:a4:82:
- ac:0f:3f:ec:c4:ae:80:f7:b0:8a:1e:85:41:e8:ff:fe:fe:4f:
- 1a:24:d5:49:fa:fb:fe:5e:e5:d3:91:0e:4f:4e:0c:21:51:71:
- 83:04:6b:62:7b:4f:59:76:48:81:1e:b4:f7:04:47:8a:91:57:
- a3:11:a9:f2:20:b4:78:33:62:3d:b0:5e:0d:f9:86:38:82:da:
- a1:98:8d:19:06:87:21:39:b7:02:f7:da:7d:58:ba:52:15:d8:
- 3b:c9:7b:58:34:a0:c7:e2:7c:a9:83:13:e1:b6:ec:01:bf:52:
- 33:0b:c4:fe:43:d3:c6:a4:8e:2f:87:7f:7a:44:ea:ca:53:6c:
- 85:ed:65:76:73:31:03:4e:ea:bd:35:54:13:f3:64:87:6b:df:
- 34:dd:34:a1:88:3b:db:4d:af:1b:64:90:92:71:30:8e:c8:cc:
- e5:60:24:af:31:16:39:33:91:50:f9:ab:68:42:74:7a:35:d9:
- dd:c8:c4:52
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIJAIb/9Y4Q3rj7MA0GCSqGSIb3DQEBCwUAMIGUMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
-A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
-dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe
-Fw0xODA0MTMxNTIzMDlaFw0yMTAxMDcxNTIzMDlaMIGUMQswCQYDVQQGEwJVUzEQ
-MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3
-dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns
-LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAL8Myi0Ush6EQlvNOB9K8k11EPG2NZ/fyn0D
-mNOs3gNm7irx2LB9bgdUCxCYIU2AyxIg58xP3kV9yXJ3MurKkLtpUhADL6jzlcXx
-i2JWG+9nb6QQQZWtCpvjpcCw0nB2UDBbqOgILHztp6J6jTgpHKzH7fJ8lbCVgn1J
-XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc
-/hr8fat6Nj+Y3oR8BWfOahQ4h6nxjLVoy2h/cSAr9aBj9VYvoybSt2+xWhfXOJkI
-/pNYb/7DE0kIFgunTWcAUjFnI06Y7VFFHbkE2Qvs2CizS73tNnkCAwEAAaOB/DCB
-+TAdBgNVHQ4EFgQUJ45nEXTDJh0/7TNjs6TYHTDl6NUwgckGA1UdIwSBwTCBvoAU
-J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD
-VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290
-aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t
-MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAhv/1jhDeuPswDAYD
-VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAniiIcgDK5ueXysHxH54SsrjH
-Ueoo4Ta1LeYvCCPLqUqHJcZdiUXq9QCYrHb7G6/wzmSe2gi/tuu0tQyg5/ZHWRxh
-zy4OWKSCrA8/7MSugPewih6FQej//v5PGiTVSfr7/l7l05EOT04MIVFxgwRrYntP
-WXZIgR609wRHipFXoxGp8iC0eDNiPbBeDfmGOILaoZiNGQaHITm3AvfafVi6UhXY
-O8l7WDSgx+J8qYMT4bbsAb9SMwvE/kPTxqSOL4d/ekTqylNshe1ldnMxA07qvTVU
-E/Nkh2vfNN00oYg7202vG2SQknEwjsjM5WAkrzEWOTORUPmraEJ0ejXZ3cjExg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-duplicate-policy.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-duplicate-policy.pem
deleted file mode 100644
index bdc9af911..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-duplicate-policy.pem
+++ /dev/null
@@ -1,182 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 2 (0x2)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:10 2018 GMT
- Not After : Jan 7 15:23:10 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL, OU=testing duplicate policy, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- B3:11:32:C9:92:98:84:E2:C9:F8:D0:3B:6E:03:42:CA:1F:0E:8E:3C
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:FALSE
- X509v3 Certificate Policies:
- Policy: 1.2.3.4
- Policy: 1.2.3.4
- CPS: www.wolfssl.com
- User Notice:
- Explicit Text: Test of duplicate OIDs with different qualifiers
-
- Signature Algorithm: sha256WithRSAEncryption
- a0:b0:d4:b9:0b:bb:1e:3a:50:21:43:6a:e0:99:61:7e:46:cb:
- d6:d3:5a:84:47:4c:9b:e9:13:c8:d4:44:b5:17:1f:52:29:a8:
- 3d:e1:33:50:4a:4a:9c:a4:8d:86:99:83:72:7e:87:ba:04:b0:
- bc:9b:39:ce:73:15:49:99:03:f1:e1:b5:ef:cb:85:bc:45:5e:
- a8:fd:f6:82:f2:45:80:31:e9:cd:56:9b:cc:84:ff:6c:36:ee:
- a6:e0:7f:a7:f1:49:0d:b6:ed:12:5b:34:05:b8:c5:4d:e2:ec:
- 5b:25:dd:9c:3a:1a:4b:dc:cf:8e:41:a4:dd:ca:83:6a:cc:bc:
- cd:4d:75:92:1f:45:8a:b0:6d:e4:72:8d:2c:18:12:26:b2:dc:
- 3f:47:bd:76:c1:cb:da:9e:bd:58:10:6c:3e:57:22:9b:34:3e:
- 6f:88:d7:e3:fd:4f:f5:97:a2:d2:9f:1d:58:fc:36:fa:94:dd:
- 4e:13:e6:57:35:1c:5c:a5:69:6a:ce:3d:d3:21:51:1a:1a:3e:
- cf:89:a4:c1:a0:9e:c4:0f:a1:d1:39:ac:31:1e:5e:e7:2f:d0:
- 22:c3:9f:4d:57:90:ab:d6:f8:3d:dc:7f:9d:71:94:5d:95:48:
- 9d:01:66:13:3a:26:0f:76:cc:c2:63:7d:0c:c8:0c:88:6b:84:
- 01:c7:0a:a4
------BEGIN CERTIFICATE-----
-MIIFJjCCBA6gAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
-d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
-bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTgwNDEz
-MTUyMzEwWhcNMjEwMTA3MTUyMzEwWjCBoTELMAkGA1UEBhMCVVMxEDAOBgNVBAgM
-B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xEDAOBgNVBAoMB3dvbGZTU0wxITAf
-BgNVBAsMGHRlc3RpbmcgZHVwbGljYXRlIHBvbGljeTEYMBYGA1UEAwwPd3d3Lndv
-bGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwJUI4VdB8nFtt9JFQScBZcZFrvK8
-JDC4lc4vTtb2HIi8fJ/7qGd//lycUXX3isoH5zUvj+G9e8AvfKtkqBf8yl17uuAh
-5XIuby6G2JVz2qwbU7lfP9cZDSVP4WNjUYsLZD+tQ7ilHFw0s64AoGPF9n8LWWh4
-c6aMGKkCba/DGQEuuBDjxsxAtGmjRjNph27Euxem8+jdrXO8ey8htf1mUQy9VLPh
-bV8cvCNz0QkDiRTSELlkwyrQoZZKvOHUGlvHoMDBY3gPRDcwMpaAMiOVoXe6E9KX
-c+JdJclqDcM5YKS0sGlCQgnp2Ai8MyCzWCKnquvE4eZhg8XSlt/Z0E+t1wIDAQAB
-o4IBcjCCAW4wHQYDVR0OBBYEFLMRMsmSmITiyfjQO24DQsofDo48MIHJBgNVHSME
-gcEwgb6AFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYDVQQGEwJV
-UzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwI
-U2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xm
-c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIJAIb/9Y4Q
-3rj7MAkGA1UdEwQCMAAwdgYDVR0gBG8wbTAFBgMqAwQwZAYDKgMEMF0wGwYIKwYB
-BQUHAgEWD3d3dy53b2xmc3NsLmNvbTA+BggrBgEFBQcCAjAyGjBUZXN0IG9mIGR1
-cGxpY2F0ZSBPSURzIHdpdGggZGlmZmVyZW50IHF1YWxpZmllcnMwDQYJKoZIhvcN
-AQELBQADggEBAKCw1LkLux46UCFDauCZYX5Gy9bTWoRHTJvpE8jURLUXH1IpqD3h
-M1BKSpykjYaZg3J+h7oEsLybOc5zFUmZA/Hhte/LhbxFXqj99oLyRYAx6c1Wm8yE
-/2w27qbgf6fxSQ227RJbNAW4xU3i7Fsl3Zw6Gkvcz45BpN3Kg2rMvM1NdZIfRYqw
-beRyjSwYEiay3D9HvXbBy9qevVgQbD5XIps0Pm+I1+P9T/WXotKfHVj8NvqU3U4T
-5lc1HFylaWrOPdMhURoaPs+JpMGgnsQPodE5rDEeXucv0CLDn01XkKvW+D3cf51x
-lF2VSJ0BZhM6Jg92zMJjfQzIDIhrhAHHCqQ=
------END CERTIFICATE-----
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number: 9727763710660753659 (0x86fff58e10deb8fb)
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Validity
- Not Before: Apr 13 15:23:09 2018 GMT
- Not After : Jan 7 15:23:09 2021 GMT
- Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a:
- f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac:
- de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98:
- 21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77:
- 32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1:
- 8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3:
- a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed:
- a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95:
- 82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c:
- 3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db:
- 76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc:
- 73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98:
- de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68:
- cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2:
- b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3:
- 13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98:
- ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed:
- 36:79
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Key Identifier:
- 27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- X509v3 Authority Key Identifier:
- keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
- DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
- serial:86:FF:F5:8E:10:DE:B8:FB
-
- X509v3 Basic Constraints:
- CA:TRUE
- Signature Algorithm: sha256WithRSAEncryption
- 9e:28:88:72:00:ca:e6:e7:97:ca:c1:f1:1f:9e:12:b2:b8:c7:
- 51:ea:28:e1:36:b5:2d:e6:2f:08:23:cb:a9:4a:87:25:c6:5d:
- 89:45:ea:f5:00:98:ac:76:fb:1b:af:f0:ce:64:9e:da:08:bf:
- b6:eb:b4:b5:0c:a0:e7:f6:47:59:1c:61:cf:2e:0e:58:a4:82:
- ac:0f:3f:ec:c4:ae:80:f7:b0:8a:1e:85:41:e8:ff:fe:fe:4f:
- 1a:24:d5:49:fa:fb:fe:5e:e5:d3:91:0e:4f:4e:0c:21:51:71:
- 83:04:6b:62:7b:4f:59:76:48:81:1e:b4:f7:04:47:8a:91:57:
- a3:11:a9:f2:20:b4:78:33:62:3d:b0:5e:0d:f9:86:38:82:da:
- a1:98:8d:19:06:87:21:39:b7:02:f7:da:7d:58:ba:52:15:d8:
- 3b:c9:7b:58:34:a0:c7:e2:7c:a9:83:13:e1:b6:ec:01:bf:52:
- 33:0b:c4:fe:43:d3:c6:a4:8e:2f:87:7f:7a:44:ea:ca:53:6c:
- 85:ed:65:76:73:31:03:4e:ea:bd:35:54:13:f3:64:87:6b:df:
- 34:dd:34:a1:88:3b:db:4d:af:1b:64:90:92:71:30:8e:c8:cc:
- e5:60:24:af:31:16:39:33:91:50:f9:ab:68:42:74:7a:35:d9:
- dd:c8:c4:52
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIJAIb/9Y4Q3rj7MA0GCSqGSIb3DQEBCwUAMIGUMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
-A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
-dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe
-Fw0xODA0MTMxNTIzMDlaFw0yMTAxMDcxNTIzMDlaMIGUMQswCQYDVQQGEwJVUzEQ
-MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3
-dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns
-LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAL8Myi0Ush6EQlvNOB9K8k11EPG2NZ/fyn0D
-mNOs3gNm7irx2LB9bgdUCxCYIU2AyxIg58xP3kV9yXJ3MurKkLtpUhADL6jzlcXx
-i2JWG+9nb6QQQZWtCpvjpcCw0nB2UDBbqOgILHztp6J6jTgpHKzH7fJ8lbCVgn1J
-XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc
-/hr8fat6Nj+Y3oR8BWfOahQ4h6nxjLVoy2h/cSAr9aBj9VYvoybSt2+xWhfXOJkI
-/pNYb/7DE0kIFgunTWcAUjFnI06Y7VFFHbkE2Qvs2CizS73tNnkCAwEAAaOB/DCB
-+TAdBgNVHQ4EFgQUJ45nEXTDJh0/7TNjs6TYHTDl6NUwgckGA1UdIwSBwTCBvoAU
-J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD
-VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290
-aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t
-MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAhv/1jhDeuPswDAYD
-VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAniiIcgDK5ueXysHxH54SsrjH
-Ueoo4Ta1LeYvCCPLqUqHJcZdiUXq9QCYrHb7G6/wzmSe2gi/tuu0tQyg5/ZHWRxh
-zy4OWKSCrA8/7MSugPewih6FQej//v5PGiTVSfr7/l7l05EOT04MIVFxgwRrYntP
-WXZIgR609wRHipFXoxGp8iC0eDNiPbBeDfmGOILaoZiNGQaHITm3AvfafVi6UhXY
-O8l7WDSgx+J8qYMT4bbsAb9SMwvE/kPTxqSOL4d/ekTqylNshe1ldnMxA07qvTVU
-E/Nkh2vfNN00oYg7202vG2SQknEwjsjM5WAkrzEWOTORUPmraEJ0ejXZ3cjEUg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-garbage.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-garbage.der
deleted file mode 100644
index 1877226d3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-garbage.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-garbage.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-garbage.pem
deleted file mode 100644
index 1eec5170c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-garbage.pem
+++ /dev/null
@@ -1,75 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- c7:45:d4:e8:37:93:0d:ad
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = localhost, emailAddress = info@wolfssl.com
- Validity
- Not Before: Sep 19 21:21:24 2018 GMT
- Not After : Jun 15 21:21:24 2021 GMT
- Subject: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = localhost, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Alternative Name:
- DNS:garbage
- Signature Algorithm: sha256WithRSAEncryption
- 3f:9b:00:89:dc:8e:20:7a:8e:a3:1c:e5:4a:4f:7a:76:eb:d0:
- cb:33:6d:30:f8:b0:7f:40:2c:da:90:46:00:4c:28:8d:6e:6f:
- fc:25:43:80:d3:59:40:a6:e8:1b:0f:a8:25:13:ec:b9:c0:93:
- bd:ef:09:49:b5:fc:95:1d:76:0e:b6:7e:94:4d:d6:04:c9:36:
- 72:e9:1d:ea:92:48:51:b0:61:d4:90:d3:99:44:f0:95:be:c8:
- 46:a3:22:24:34:d8:52:55:37:95:af:10:ec:ed:f3:a3:26:a6:
- 1b:10:20:3c:a2:5c:63:18:41:91:f7:cb:c0:a0:ec:8b:5b:25:
- 55:cd:a2:d1:2c:c8:0b:c8:bf:4c:fc:0b:85:b4:c1:2e:be:d1:
- 39:01:eb:fa:5c:ce:63:6f:20:ba:87:83:c7:45:14:9f:b2:81:
- 5d:d8:48:4e:bc:cc:f5:72:be:95:07:6d:2c:78:e1:87:47:a1:
- 02:a5:3c:65:33:2b:5e:8f:cf:53:06:f9:73:8c:0f:91:5d:f7:
- 60:df:0c:21:c7:39:08:bd:d3:cd:99:80:29:fd:38:02:8a:65:
- 83:e9:11:b0:a9:d5:2e:fa:7e:20:74:bb:3e:55:6d:05:90:55:
- b8:ec:c9:84:de:41:cc:83:56:07:5c:3f:25:29:31:f2:3a:47:
- ed:0b:be:fc
------BEGIN CERTIFICATE-----
-MIIDkTCCAnmgAwIBAgIJAMdF1Og3kw2tMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMRQwEgYD
-VQQLDAtFbmdpbmVlcmluZzESMBAGA1UEAwwJbG9jYWxob3N0MR8wHQYJKoZIhvcN
-AQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MDkxOTIxMjEyNFoXDTIxMDYxNTIx
-MjEyNFowfDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcM
-B0JvemVtYW4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRIwEAYDVQQDDAlsb2NhbGhv
-c3QxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQDAlQjhV0HycW230kVBJwFlxkWu8rwkMLiVzi9O
-1vYciLx8n/uoZ3/+XJxRdfeKygfnNS+P4b17wC98q2SoF/zKXXu64CHlci5vLobY
-lXParBtTuV8/1xkNJU/hY2NRiwtkP61DuKUcXDSzrgCgY8X2fwtZaHhzpowYqQJt
-r8MZAS64EOPGzEC0aaNGM2mHbsS7F6bz6N2tc7x7LyG1/WZRDL1Us+FtXxy8I3PR
-CQOJFNIQuWTDKtChlkq84dQaW8egwMFjeA9ENzAyloAyI5Whd7oT0pdz4l0lyWoN
-wzlgpLSwaUJCCenYCLwzILNYIqeq68Th5mGDxdKW39nQT63XAgMBAAGjFjAUMBIG
-A1UdEQQLMAmCB2dhcmJhZ2UwDQYJKoZIhvcNAQELBQADggEBAD+bAIncjiB6jqMc
-5UpPenbr0MszbTD4sH9ALNqQRgBMKI1ub/wlQ4DTWUCm6BsPqCUT7LnAk73vCUm1
-/JUddg62fpRN1gTJNnLpHeqSSFGwYdSQ05lE8JW+yEajIiQ02FJVN5WvEOzt86Mm
-phsQIDyiXGMYQZH3y8Cg7ItbJVXNotEsyAvIv0z8C4W0wS6+0TkB6/pczmNvILqH
-g8dFFJ+ygV3YSE68zPVyvpUHbSx44YdHoQKlPGUzK16Pz1MG+XOMD5Fd92DfDCHH
-OQi9082ZgCn9OAKKZYPpEbCp1S76fiB0uz5VbQWQVbjsyYTeQcyDVgdcPyUpMfI6
-R+0Lvvw=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodalt.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodalt.der
deleted file mode 100644
index 66fc73555..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodalt.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodalt.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodalt.pem
deleted file mode 100644
index 3902608e4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodalt.pem
+++ /dev/null
@@ -1,75 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- cd:00:d2:2e:bb:c5:a6:5d
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = www.nomatch.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Sep 19 21:21:24 2018 GMT
- Not After : Jun 15 21:21:24 2021 GMT
- Subject: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = www.nomatch.com, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Alternative Name:
- DNS:localhost
- Signature Algorithm: sha256WithRSAEncryption
- 5e:9a:6d:ea:58:6d:a9:6e:fa:c7:bb:16:7d:5d:cb:97:54:cb:
- 4f:e8:38:95:e2:1b:6c:ea:ad:4b:cb:ea:58:57:f7:2e:05:c9:
- 57:9b:f1:cc:03:c1:29:7c:13:16:8f:78:d2:c0:ea:18:af:f8:
- 1d:cf:f4:25:6c:33:cd:d8:9b:28:21:c4:dd:f0:df:10:73:10:
- ed:2e:30:c1:53:15:50:1f:f9:f8:d6:db:14:66:ad:a6:a7:78:
- 7e:a1:46:50:f5:cf:07:21:e7:33:e4:25:d8:18:d2:1f:ca:7c:
- d6:45:d1:db:2f:34:ae:61:b1:1a:05:4e:ce:ba:b7:48:5f:b7:
- 0d:9e:01:f0:5e:fd:f1:30:60:0d:59:6e:1b:d9:b7:29:15:31:
- d8:be:dc:2f:23:f5:13:4e:44:eb:2d:0e:52:9e:7e:3d:7d:a9:
- a0:af:88:0a:15:8c:cb:11:dc:24:b4:6b:af:3b:a5:e4:82:57:
- 13:d1:ca:24:75:b0:53:bf:b8:ec:71:81:a3:84:a9:b7:fe:bb:
- 31:1b:89:94:be:91:16:dd:67:1b:66:1b:79:81:19:3c:1d:29:
- 1e:e0:dc:3f:0b:6e:0d:e5:0b:0a:43:28:f9:69:d7:7a:55:2c:
- e3:7b:2f:b7:66:34:ed:29:f5:c5:6d:09:51:d8:00:69:57:34:
- 34:26:f3:b7
------BEGIN CERTIFICATE-----
-MIIDoTCCAomgAwIBAgIJAM0A0i67xaZdMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEUMBIG
-A1UECwwLRW5naW5lZXJpbmcxGDAWBgNVBAMMD3d3dy5ub21hdGNoLmNvbTEfMB0G
-CSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAeFw0xODA5MTkyMTIxMjRaFw0y
-MTA2MTUyMTIxMjRaMIGCMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQ
-MA4GA1UEBwwHQm96ZW1hbjEUMBIGA1UECwwLRW5naW5lZXJpbmcxGDAWBgNVBAMM
-D3d3dy5ub21hdGNoLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNv
-bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMCVCOFXQfJxbbfSRUEn
-AWXGRa7yvCQwuJXOL07W9hyIvHyf+6hnf/5cnFF194rKB+c1L4/hvXvAL3yrZKgX
-/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/XGQ0lT+FjY1GLC2Q/rUO4pRxcNLOuAKBj
-xfZ/C1loeHOmjBipAm2vwxkBLrgQ48bMQLRpo0YzaYduxLsXpvPo3a1zvHsvIbX9
-ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq0KGWSrzh1Bpbx6DAwWN4D0Q3MDKWgDIj
-laF3uhPSl3PiXSXJag3DOWCktLBpQkIJ6dgIvDMgs1gip6rrxOHmYYPF0pbf2dBP
-rdcCAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUA
-A4IBAQBemm3qWG2pbvrHuxZ9XcuXVMtP6DiV4hts6q1Ly+pYV/cuBclXm/HMA8Ep
-fBMWj3jSwOoYr/gdz/QlbDPN2JsoIcTd8N8QcxDtLjDBUxVQH/n41tsUZq2mp3h+
-oUZQ9c8HIecz5CXYGNIfynzWRdHbLzSuYbEaBU7OurdIX7cNngHwXv3xMGANWW4b
-2bcpFTHYvtwvI/UTTkTrLQ5Snn49famgr4gKFYzLEdwktGuvO6XkglcT0cokdbBT
-v7jscYGjhKm3/rsxG4mUvpEW3WcbZht5gRk8HSke4Nw/C24N5QsKQyj5add6VSzj
-ey+3ZjTtKfXFbQlR2ABpVzQ0JvO3
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodaltwild.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodaltwild.der
deleted file mode 100644
index 6ec2b54d7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodaltwild.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodaltwild.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodaltwild.pem
deleted file mode 100644
index a16fbf280..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodaltwild.pem
+++ /dev/null
@@ -1,75 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- 81:aa:d6:88:40:5c:21:41
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = www.nomatch.com, emailAddress = info@wolfssl.com
- Validity
- Not Before: Sep 19 21:21:24 2018 GMT
- Not After : Jun 15 21:21:24 2021 GMT
- Subject: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = www.nomatch.com, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Alternative Name:
- DNS:*localhost
- Signature Algorithm: sha256WithRSAEncryption
- 79:9c:b3:8c:52:fe:d2:38:36:4c:70:80:ee:36:db:cc:68:5f:
- a3:fb:c5:3e:a3:77:18:80:e9:88:69:da:39:69:bc:40:8b:2c:
- 5c:c3:d0:4c:8b:17:05:12:a9:f1:d5:b7:9a:6a:6d:f7:19:09:
- 20:22:dc:7f:11:b2:4e:df:7d:a2:1a:4d:fd:86:b9:bc:ee:e0:
- a0:94:47:fd:4d:5c:45:4c:47:a7:d8:95:22:1b:2c:be:88:b0:
- a1:94:15:31:34:bd:3a:01:3f:eb:67:ce:80:c0:1f:d5:9d:0e:
- be:9f:90:a1:15:45:ed:0f:27:50:6e:52:6c:2b:81:22:00:99:
- 2c:71:2d:86:e2:58:87:73:4c:3d:6b:50:14:7b:96:54:6f:e5:
- 19:69:01:3d:d8:dd:2e:30:e3:e1:15:35:a6:8d:5b:50:32:98:
- 32:76:fe:19:28:ff:50:e2:c4:5e:e7:b7:60:ad:7a:f2:9f:62:
- 4b:c8:22:d3:0f:e0:4a:48:5e:d5:c9:75:41:d5:ce:c2:4a:a2:
- 5f:d2:75:a3:d3:d6:95:f2:be:e0:5e:da:87:2c:02:70:99:49:
- 87:bc:0e:8b:92:73:fc:05:7d:18:b8:ed:96:b2:11:5c:83:8f:
- da:92:45:10:60:e3:db:c1:5f:94:b1:4c:82:d6:db:7a:05:b1:
- 8f:78:74:35
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIJAIGq1ohAXCFBMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
-VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjEUMBIG
-A1UECwwLRW5naW5lZXJpbmcxGDAWBgNVBAMMD3d3dy5ub21hdGNoLmNvbTEfMB0G
-CSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAeFw0xODA5MTkyMTIxMjRaFw0y
-MTA2MTUyMTIxMjRaMIGCMQswCQYDVQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQ
-MA4GA1UEBwwHQm96ZW1hbjEUMBIGA1UECwwLRW5naW5lZXJpbmcxGDAWBgNVBAMM
-D3d3dy5ub21hdGNoLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNv
-bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMCVCOFXQfJxbbfSRUEn
-AWXGRa7yvCQwuJXOL07W9hyIvHyf+6hnf/5cnFF194rKB+c1L4/hvXvAL3yrZKgX
-/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/XGQ0lT+FjY1GLC2Q/rUO4pRxcNLOuAKBj
-xfZ/C1loeHOmjBipAm2vwxkBLrgQ48bMQLRpo0YzaYduxLsXpvPo3a1zvHsvIbX9
-ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq0KGWSrzh1Bpbx6DAwWN4D0Q3MDKWgDIj
-laF3uhPSl3PiXSXJag3DOWCktLBpQkIJ6dgIvDMgs1gip6rrxOHmYYPF0pbf2dBP
-rdcCAwEAAaMZMBcwFQYDVR0RBA4wDIIKKmxvY2FsaG9zdDANBgkqhkiG9w0BAQsF
-AAOCAQEAeZyzjFL+0jg2THCA7jbbzGhfo/vFPqN3GIDpiGnaOWm8QIssXMPQTIsX
-BRKp8dW3mmpt9xkJICLcfxGyTt99ohpN/Ya5vO7goJRH/U1cRUxHp9iVIhssvoiw
-oZQVMTS9OgE/62fOgMAf1Z0Ovp+QoRVF7Q8nUG5SbCuBIgCZLHEthuJYh3NMPWtQ
-FHuWVG/lGWkBPdjdLjDj4RU1po1bUDKYMnb+GSj/UOLEXue3YK168p9iS8gi0w/g
-Skhe1cl1QdXOwkqiX9J1o9PWlfK+4F7ahywCcJlJh7wOi5Jz/AV9GLjtlrIRXIOP
-2pJFEGDj28FflLFMgtbbegWxj3h0NQ==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcn.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcn.der
deleted file mode 100644
index d8dffb33a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcn.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcn.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcn.pem
deleted file mode 100644
index ec7a6a4f1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcn.pem
+++ /dev/null
@@ -1,71 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- c2:e8:97:dd:c7:fe:a9:d4
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = localhost, emailAddress = info@wolfssl.com
- Validity
- Not Before: Sep 19 21:21:24 2018 GMT
- Not After : Jun 15 21:21:24 2021 GMT
- Subject: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = localhost, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- Signature Algorithm: sha256WithRSAEncryption
- 26:28:b4:09:65:22:8f:32:5d:58:8c:40:ff:6f:7e:66:bf:6f:
- b5:69:4e:ee:ad:4e:f2:63:69:b1:79:21:4e:b4:76:84:06:90:
- e6:6e:a7:56:45:96:03:90:8c:88:32:92:ff:90:d9:b3:d0:28:
- d2:7c:34:f6:76:3a:cc:71:fa:fb:28:d1:29:8d:8b:73:ae:d7:
- 7c:eb:63:34:01:80:58:3e:f0:d7:5b:17:4b:da:ae:5f:75:d1:
- 92:41:05:d3:c0:1a:a2:c7:b8:ac:d8:70:08:fa:d5:d5:4e:17:
- 18:ef:06:04:aa:9e:15:b8:e8:05:db:51:63:2d:95:c3:af:6a:
- 54:65:84:cf:a0:7e:34:44:37:fc:5b:34:5e:2a:c9:a7:9c:a0:
- f1:c5:89:32:f1:71:df:91:b1:28:e8:e8:15:42:3b:0b:44:8e:
- dd:2d:83:6b:77:46:18:80:6e:a2:2b:2f:c7:e4:e7:fe:b1:3c:
- b4:3d:71:ba:9b:dc:85:4a:ba:87:c3:ad:15:10:e2:0a:ad:c3:
- db:e8:49:21:87:b8:05:f0:a2:29:5d:91:45:dd:73:53:10:94:
- 8a:4f:1a:e2:c3:87:7b:26:4b:bc:b0:e2:5d:7c:af:06:8f:54:
- 94:3a:5d:ef:8d:34:d4:09:50:ab:5e:9b:3b:12:51:b3:18:1f:
- 35:b7:8d:49
------BEGIN CERTIFICATE-----
-MIIDeTCCAmGgAwIBAgIJAMLol93H/qnUMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMRQwEgYD
-VQQLDAtFbmdpbmVlcmluZzESMBAGA1UEAwwJbG9jYWxob3N0MR8wHQYJKoZIhvcN
-AQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MDkxOTIxMjEyNFoXDTIxMDYxNTIx
-MjEyNFowfDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcM
-B0JvemVtYW4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRIwEAYDVQQDDAlsb2NhbGhv
-c3QxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQDAlQjhV0HycW230kVBJwFlxkWu8rwkMLiVzi9O
-1vYciLx8n/uoZ3/+XJxRdfeKygfnNS+P4b17wC98q2SoF/zKXXu64CHlci5vLobY
-lXParBtTuV8/1xkNJU/hY2NRiwtkP61DuKUcXDSzrgCgY8X2fwtZaHhzpowYqQJt
-r8MZAS64EOPGzEC0aaNGM2mHbsS7F6bz6N2tc7x7LyG1/WZRDL1Us+FtXxy8I3PR
-CQOJFNIQuWTDKtChlkq84dQaW8egwMFjeA9ENzAyloAyI5Whd7oT0pdz4l0lyWoN
-wzlgpLSwaUJCCenYCLwzILNYIqeq68Th5mGDxdKW39nQT63XAgMBAAEwDQYJKoZI
-hvcNAQELBQADggEBACYotAllIo8yXViMQP9vfma/b7VpTu6tTvJjabF5IU60doQG
-kOZup1ZFlgOQjIgykv+Q2bPQKNJ8NPZ2Osxx+vso0SmNi3Ou13zrYzQBgFg+8Ndb
-F0varl910ZJBBdPAGqLHuKzYcAj61dVOFxjvBgSqnhW46AXbUWMtlcOvalRlhM+g
-fjREN/xbNF4qyaecoPHFiTLxcd+RsSjo6BVCOwtEjt0tg2t3RhiAbqIrL8fk5/6x
-PLQ9cbqb3IVKuofDrRUQ4gqtw9voSSGHuAXwoildkUXdc1MQlIpPGuLDh3smS7yw
-4l18rwaPVJQ6Xe+NNNQJUKtemzsSUbMYHzW3jUk=
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcnwild.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcnwild.der
deleted file mode 100644
index 3ab2636d5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcnwild.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcnwild.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcnwild.pem
deleted file mode 100644
index 3971fc78b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-goodcnwild.pem
+++ /dev/null
@@ -1,71 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- e7:ad:a9:3a:44:c1:7e:48
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = *localhost, emailAddress = info@wolfssl.com
- Validity
- Not Before: Sep 19 21:21:24 2018 GMT
- Not After : Jun 15 21:21:24 2021 GMT
- Subject: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = *localhost, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- Signature Algorithm: sha256WithRSAEncryption
- a5:03:1d:6f:49:00:29:c5:92:14:8f:3b:8f:aa:e9:1f:b6:fd:
- f1:32:5a:1a:dd:4b:36:f5:83:1f:45:e0:aa:95:6c:6f:b9:fd:
- f9:04:10:df:73:fc:e2:e5:15:4c:04:51:95:74:77:d0:d5:d3:
- 13:b9:16:1a:db:02:9f:61:c5:71:d0:41:80:f3:1d:bd:f6:0f:
- 30:5a:cc:bf:e0:b7:22:7a:2f:51:46:20:d9:f3:c6:ea:0a:0b:
- 23:69:a1:b9:96:3b:7d:af:bd:f0:1a:b2:b3:05:4a:fd:b2:71:
- 3e:e7:24:8a:57:69:17:0c:18:3a:3a:84:a1:28:37:45:7b:8f:
- c7:c6:28:5f:3f:c2:8d:51:2c:0b:77:61:c3:78:a2:c0:1f:0b:
- 0f:23:5a:a9:1d:e6:2b:67:9a:0e:fa:f9:d7:de:73:53:e9:96:
- b0:e6:5a:ef:3f:21:58:86:a4:df:9a:17:db:39:04:9f:04:42:
- ec:b4:de:24:59:99:fc:cd:df:f0:be:44:f4:76:fe:c4:5a:05:
- ae:a5:f5:51:7f:50:2c:57:c7:95:b8:e1:ad:8a:27:39:ce:fa:
- 68:17:d0:bf:73:66:5b:06:2d:fb:c0:7e:35:bc:a5:70:ec:8d:
- aa:45:f5:fe:30:2f:e3:a1:9f:75:f6:d1:46:14:c5:36:52:59:
- 49:68:2f:3e
------BEGIN CERTIFICATE-----
-MIIDezCCAmOgAwIBAgIJAOetqTpEwX5IMA0GCSqGSIb3DQEBCwUAMH0xCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMRQwEgYD
-VQQLDAtFbmdpbmVlcmluZzETMBEGA1UEAwwKKmxvY2FsaG9zdDEfMB0GCSqGSIb3
-DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAeFw0xODA5MTkyMTIxMjRaFw0yMTA2MTUy
-MTIxMjRaMH0xCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQH
-DAdCb3plbWFuMRQwEgYDVQQLDAtFbmdpbmVlcmluZzETMBEGA1UEAwwKKmxvY2Fs
-aG9zdDEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAMCVCOFXQfJxbbfSRUEnAWXGRa7yvCQwuJXO
-L07W9hyIvHyf+6hnf/5cnFF194rKB+c1L4/hvXvAL3yrZKgX/Mpde7rgIeVyLm8u
-htiVc9qsG1O5Xz/XGQ0lT+FjY1GLC2Q/rUO4pRxcNLOuAKBjxfZ/C1loeHOmjBip
-Am2vwxkBLrgQ48bMQLRpo0YzaYduxLsXpvPo3a1zvHsvIbX9ZlEMvVSz4W1fHLwj
-c9EJA4kU0hC5ZMMq0KGWSrzh1Bpbx6DAwWN4D0Q3MDKWgDIjlaF3uhPSl3PiXSXJ
-ag3DOWCktLBpQkIJ6dgIvDMgs1gip6rrxOHmYYPF0pbf2dBPrdcCAwEAATANBgkq
-hkiG9w0BAQsFAAOCAQEApQMdb0kAKcWSFI87j6rpH7b98TJaGt1LNvWDH0XgqpVs
-b7n9+QQQ33P84uUVTARRlXR30NXTE7kWGtsCn2HFcdBBgPMdvfYPMFrMv+C3Inov
-UUYg2fPG6goLI2mhuZY7fa+98BqyswVK/bJxPuckildpFwwYOjqEoSg3RXuPx8Yo
-Xz/CjVEsC3dhw3iiwB8LDyNaqR3mK2eaDvr5195zU+mWsOZa7z8hWIak35oX2zkE
-nwRC7LTeJFmZ/M3f8L5E9Hb+xFoFrqX1UX9QLFfHlbjhrYonOc76aBfQv3NmWwYt
-+8B+NbylcOyNqkX1/jAv46GfdfbRRhTFNlJZSWgvPg==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-localhost.der b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-localhost.der
deleted file mode 100644
index 77eb5ac8b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-localhost.der
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-localhost.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-localhost.pem
deleted file mode 100644
index c34c9e0fd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/test/server-localhost.pem
+++ /dev/null
@@ -1,75 +0,0 @@
-Certificate:
- Data:
- Version: 3 (0x2)
- Serial Number:
- d9:6c:d7:cc:f4:9f:c5:18
- Signature Algorithm: sha256WithRSAEncryption
- Issuer: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = localhost, emailAddress = info@wolfssl.com
- Validity
- Not Before: Sep 19 21:21:24 2018 GMT
- Not After : Jun 15 21:21:24 2021 GMT
- Subject: C = US, ST = Montana, L = Bozeman, OU = Engineering, CN = localhost, emailAddress = info@wolfssl.com
- Subject Public Key Info:
- Public Key Algorithm: rsaEncryption
- Public-Key: (2048 bit)
- Modulus:
- 00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
- 01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
- f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
- f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:
- 64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:
- 86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:
- 4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:
- 34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:
- 8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:
- 40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:
- dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:
- e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:
- 64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:
- c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:
- ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:
- b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:
- a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
- ad:d7
- Exponent: 65537 (0x10001)
- X509v3 extensions:
- X509v3 Subject Alternative Name:
- DNS:localhost
- Signature Algorithm: sha256WithRSAEncryption
- 3a:16:c1:b1:05:65:32:fc:65:4b:09:5a:05:4a:c0:9c:ec:07:
- f5:f0:01:41:7c:cf:20:c7:55:80:81:6a:df:65:f2:44:37:02:
- b0:8f:7b:7b:0a:3d:a3:44:0f:e4:73:55:ee:cc:3a:d5:b0:8f:
- 62:a5:65:73:dd:6c:b2:11:2a:76:3c:94:3a:8b:ea:32:a0:ea:
- 41:05:a5:78:af:27:d2:9e:e9:b9:c3:9d:11:2a:3e:d3:d5:bf:
- 72:46:b6:7b:8d:5f:6a:b9:25:78:c7:60:1a:60:5d:26:d6:45:
- 06:b7:4d:b0:a1:20:bb:62:94:64:92:98:f6:a7:62:3d:06:70:
- d5:7e:51:72:92:3e:97:81:20:d3:8a:fe:43:7b:a2:c6:4f:89:
- a0:c5:e6:c5:a8:a4:e3:4c:a2:dc:52:de:61:fe:99:7e:c4:f3:
- 2e:f0:81:c3:34:07:d6:2b:b5:cf:21:a3:8a:71:82:de:28:57:
- 20:a0:1c:08:d8:c0:1f:d5:ec:48:d6:04:dd:72:df:9d:90:73:
- c7:90:56:ec:71:cb:fa:ff:57:5c:74:6f:97:2e:f8:86:6c:28:
- 9a:0e:69:b9:ec:f4:6f:8f:d5:c2:4b:94:57:ec:74:ed:f0:bf:
- 9b:c2:ae:0e:0f:10:10:5f:9e:a3:c1:39:03:d2:a6:90:50:a3:
- df:3e:56:dd
------BEGIN CERTIFICATE-----
-MIIDkzCCAnugAwIBAgIJANls18z0n8UYMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMRQwEgYD
-VQQLDAtFbmdpbmVlcmluZzESMBAGA1UEAwwJbG9jYWxob3N0MR8wHQYJKoZIhvcN
-AQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTE4MDkxOTIxMjEyNFoXDTIxMDYxNTIx
-MjEyNFowfDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcM
-B0JvemVtYW4xFDASBgNVBAsMC0VuZ2luZWVyaW5nMRIwEAYDVQQDDAlsb2NhbGhv
-c3QxHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQDAlQjhV0HycW230kVBJwFlxkWu8rwkMLiVzi9O
-1vYciLx8n/uoZ3/+XJxRdfeKygfnNS+P4b17wC98q2SoF/zKXXu64CHlci5vLobY
-lXParBtTuV8/1xkNJU/hY2NRiwtkP61DuKUcXDSzrgCgY8X2fwtZaHhzpowYqQJt
-r8MZAS64EOPGzEC0aaNGM2mHbsS7F6bz6N2tc7x7LyG1/WZRDL1Us+FtXxy8I3PR
-CQOJFNIQuWTDKtChlkq84dQaW8egwMFjeA9ENzAyloAyI5Whd7oT0pdz4l0lyWoN
-wzlgpLSwaUJCCenYCLwzILNYIqeq68Th5mGDxdKW39nQT63XAgMBAAGjGDAWMBQG
-A1UdEQQNMAuCCWxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAOhbBsQVlMvxl
-SwlaBUrAnOwH9fABQXzPIMdVgIFq32XyRDcCsI97ewo9o0QP5HNV7sw61bCPYqVl
-c91sshEqdjyUOovqMqDqQQWleK8n0p7pucOdESo+09W/cka2e41farkleMdgGmBd
-JtZFBrdNsKEgu2KUZJKY9qdiPQZw1X5RcpI+l4Eg04r+Q3uixk+JoMXmxaik40yi
-3FLeYf6ZfsTzLvCBwzQH1iu1zyGjinGC3ihXIKAcCNjAH9XsSNYE3XLfnZBzx5BW
-7HHL+v9XXHRvly74hmwomg5puez0b4/VwkuUV+x07fC/m8KuDg8QEF+eo8E5A9Km
-kFCj3z5W3Q==
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/certs/wolfssl-website-ca.pem b/FreeRTOS-Plus/Source/WolfSSL/certs/wolfssl-website-ca.pem
deleted file mode 100644
index e7bbd0731..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/certs/wolfssl-website-ca.pem
+++ /dev/null
@@ -1,91 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
-A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
-b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
-MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
-YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
-aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
-jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
-xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
-1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
-snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
-U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
-9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
-BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
-AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
-yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
-38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
-AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
-DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
-HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
-IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
-MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
-bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
-dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
-H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
-uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
-mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
-a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
-E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
-WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
-VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
-Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
-cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
-IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
-AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
-YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
-Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
-c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
-mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
-MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
-YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
-MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
-ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
-MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
-ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
-PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
-wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
-EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
-avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
-YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
-sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
-/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
-IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
-ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
-OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
-TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
-HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
-dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
-ReYNnyicsbkqWletNw+vHX/bvZ8=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
-MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
-RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
-gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
-KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
-QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
-XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
-DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
-LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
-RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
-jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
-6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
-mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
-Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
-WD9f
------END CERTIFICATE-----
diff --git a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/aes.c b/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/aes.c
deleted file mode 100644
index e9f588667..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/aes.c
+++ /dev/null
@@ -1 +0,0 @@
-/* dummy file for autoconf */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/des3.c b/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/des3.c
deleted file mode 100644
index e9f588667..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/des3.c
+++ /dev/null
@@ -1 +0,0 @@
-/* dummy file for autoconf */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/fips.c b/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/fips.c
deleted file mode 100644
index e69de29bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/fips.c
+++ /dev/null
diff --git a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/fips_test.c b/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/fips_test.c
deleted file mode 100644
index e69de29bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/fips_test.c
+++ /dev/null
diff --git a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/hmac.c b/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/hmac.c
deleted file mode 100644
index e9f588667..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/hmac.c
+++ /dev/null
@@ -1 +0,0 @@
-/* dummy file for autoconf */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/misc.c b/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/misc.c
deleted file mode 100644
index bd127625d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/misc.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* misc.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- /* for inline includes */
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
diff --git a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/random.c b/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/random.c
deleted file mode 100644
index e9f588667..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/random.c
+++ /dev/null
@@ -1 +0,0 @@
-/* dummy file for autoconf */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/rsa.c b/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/rsa.c
deleted file mode 100644
index e9f588667..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/rsa.c
+++ /dev/null
@@ -1 +0,0 @@
-/* dummy file for autoconf */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/sha.c b/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/sha.c
deleted file mode 100644
index e9f588667..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/sha.c
+++ /dev/null
@@ -1 +0,0 @@
-/* dummy file for autoconf */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/sha256.c b/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/sha256.c
deleted file mode 100644
index e9f588667..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/sha256.c
+++ /dev/null
@@ -1 +0,0 @@
-/* dummy file for autoconf */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/sha512.c b/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/sha512.c
deleted file mode 100644
index e9f588667..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/sha512.c
+++ /dev/null
@@ -1 +0,0 @@
-/* dummy file for autoconf */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/wolfcrypt_first.c b/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/wolfcrypt_first.c
deleted file mode 100644
index 74e759a7a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/wolfcrypt_first.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* wolfcrypt_first.c
- *
- * Copyright (C) 2006-2020 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 needs to be linked first in order to work correctly */
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-/* in case user set HAVE_FIPS there */
-#include <cyassl/ctaocrypt/settings.h>
-
-#ifdef HAVE_FIPS
-
-#ifdef USE_WINDOWS_API
- #pragma code_seg(".fipsA$a")
- #pragma const_seg(".fipsB$a")
-#endif
-
-
-/* read only start address */
-const unsigned int wolfCrypt_FIPS_ro_start[] =
-{ 0x1a2b3c4d, 0x00000001 };
-
-
-/* first function of text/code segment */
-int wolfCrypt_FIPS_first(void);
-int wolfCrypt_FIPS_first(void)
-{
- return 0;
-}
-
-
-#endif /* HAVE_FIPS */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/wolfcrypt_last.c b/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/wolfcrypt_last.c
deleted file mode 100644
index 60cb33a4e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/ctaocrypt/src/wolfcrypt_last.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* wolfcrypt_last.c
- *
- * Copyright (C) 2006-2020 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 needs to be linked last in order to work correctly */
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-/* in case user set HAVE_FIPS there */
-#include <cyassl/ctaocrypt/settings.h>
-
-#ifdef HAVE_FIPS
-
-#ifdef USE_WINDOWS_API
- #pragma code_seg(".fipsA$l")
- #pragma const_seg(".fipsB$l")
-#endif
-
-
-/* last function of text/code segment */
-int wolfCrypt_FIPS_last(void);
-int wolfCrypt_FIPS_last(void)
-{
- return 0;
-}
-
-
-/* read only end address */
-const unsigned int wolfCrypt_FIPS_ro_end[] =
-{ 0x1a2b3c4d, 0xffffffff };
-
-
-#endif /* HAVE_FIPS */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/callbacks.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/callbacks.h
deleted file mode 100644
index 69dd3476b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/callbacks.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* callbacks.h
- *
- * Copyright (C) 2006-2020 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 <wolfssl/callbacks.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/certs_test.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/certs_test.h
deleted file mode 100644
index c8465ac85..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/certs_test.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* certs_test.h */
-
-#include <wolfssl/certs_test.h>
-
-#ifndef CYASSL_CERTS_TEST_H
- #define CYASSL_CERTS_TEST_H WOLFSSL_CERTS_TEST_H
-#else
- #undef CYASSL_CERTS_TEST_H
- #define CYASSL_CERTS_TEST_H WOLFSSL_CERTS_TEST_H
-#endif
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/crl.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/crl.h
deleted file mode 100644
index 7f285a33e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/crl.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* crl.h
- *
- * Copyright (C) 2006-2020 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 <wolfssl/crl.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/aes.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/aes.h
deleted file mode 100644
index dae7812e8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/aes.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* aes.h
- *
- * Copyright (C) 2006-2020 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 NO_AES
-
-#ifndef CTAO_CRYPT_AES_H
-#define CTAO_CRYPT_AES_H
-
-#include <wolfssl/wolfcrypt/aes.h>
-#define AesSetKey wc_AesSetKey
-#define AesSetIV wc_AesSetIV
-#define AesCbcEncrypt wc_AesCbcEncrypt
-#define AesCbcDecrypt wc_AesCbcDecrypt
-#define AesCbcDecryptWithKey wc_AesCbcDecryptWithKey
-
-/* AES-CTR */
-#ifdef WOLFSSL_AES_COUNTER
- #define AesCtrEncrypt wc_AesCtrEncrypt
-#endif
-/* AES-DIRECT */
-#if defined(WOLFSSL_AES_DIRECT)
- #define AesEncryptDirect wc_AesEncryptDirect
- #define AesDecryptDirect wc_AesDecryptDirect
- #define AesSetKeyDirect wc_AesSetKeyDirect
-#endif
-#ifdef HAVE_AESGCM
- #define AesGcmSetKey wc_AesGcmSetKey
- #define AesGcmEncrypt wc_AesGcmEncrypt
- #define AesGcmDecrypt wc_AesGcmDecrypt
- #define GmacSetKey wc_GmacSetKey
- #define GmacUpdate wc_GmacUpdate
-#endif /* HAVE_AESGCM */
-#ifdef HAVE_AESCCM
- #define AesCcmSetKey wc_AesCcmSetKey
- #define AesCcmEncrypt wc_AesCcmEncrypt
- #define AesCcmDecrypt wc_AesCcmDecrypt
-#endif /* HAVE_AESCCM */
-
-#endif /* CTAO_CRYPT_AES_H */
-#endif /* NO_AES */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/arc4.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/arc4.h
deleted file mode 100644
index 627d79735..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/arc4.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* arc4.h
- *
- * Copyright (C) 2006-2020 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 CTAO_CRYPT_ARC4_H
-#define CTAO_CRYPT_ARC4_H
-
-/* for arc4 reverse compatibility */
-#ifndef NO_RC4
-#include <wolfssl/wolfcrypt/arc4.h>
- #define Arc4Process wc_Arc4Process
- #define Arc4SetKey wc_Arc4SetKey
- #define Arc4AsyncInit wc_Arc4AsyncInit
- #define Arc4AsyncFree wc_Arc4AsyncFree
-#endif
-
-#endif /* CTAO_CRYPT_ARC4_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/asn.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/asn.h
deleted file mode 100644
index 673cce748..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/asn.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* asn.h
- *
- * Copyright (C) 2006-2020 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 NO_ASN
-
-#ifndef CTAO_CRYPT_ASN_H
-#define CTAO_CRYPT_ASN_H
-
-/* pull in compatibility for each include */
-#include <cyassl/ctaocrypt/dh.h>
-#include <cyassl/ctaocrypt/dsa.h>
-#include <cyassl/ctaocrypt/sha.h>
-#include <cyassl/ctaocrypt/md5.h>
-#include <cyassl/ctaocrypt/asn_public.h> /* public interface */
-#ifdef HAVE_ECC
- #include <cyassl/ctaocrypt/ecc.h>
-#endif
-
-
-#include <wolfssl/wolfcrypt/asn.h>
-
-#ifndef NO_FILESYSTEM
- #define CyaSSL_PemCertToDer wc_PemCertToDer
-#endif
-
-#endif /* CTAO_CRYPT_ASN_H */
-
-#endif /* !NO_ASN */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/asn_public.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/asn_public.h
deleted file mode 100644
index 5e75943f0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/asn_public.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* asn_public.h
- *
- * Copyright (C) 2006-2020 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 CTAO_CRYPT_ASN_PUBLIC_H
-#define CTAO_CRYPT_ASN_PUBLIC_H
-
-/* pull in compatibility for each of the includes */
-#include <cyassl/ctaocrypt/types.h>
-#include <cyassl/ctaocrypt/types.h>
-#include <cyassl/ctaocrypt/ecc.h>
-#ifdef WOLFSSL_CERT_GEN
- #include <cyassl/ctaocrypt/rsa.h>
-#endif
-
-#include <wolfssl/wolfcrypt/asn_public.h>
-#ifdef WOLFSSL_CERT_GEN
- #define InitCert wc_InitCert
- #define MakeCert wc_MakeCert
-
- #ifdef WOLFSSL_CERT_REQ
- #define MakeCertReq wc_MakeCertReq
-#endif
-
- #define SignCert wc_SignCert
- #define MakeSelfCert wc_MakeSelfCert
- #define SetIssuer wc_SetIssuer
- #define SetSubject wc_SetSubject
-
- #ifdef WOLFSSL_ALT_NAMES
- #define SetAltNames wc_SetAltNames
-#endif
-
- #define SetIssuerBuffer wc_SetIssuerBuffer
- #define SetSubjectBuffer wc_SetSubjectBuffer
- #define SetAltNamesBuffer wc_SetAltNamesBuffer
- #define SetDatesBuffer wc_SetDatesBuffer
-
- #ifdef HAVE_NTRU
- #define MakeNtruCert wc_MakeNtruCert
- #endif
-
-#endif /* WOLFSSL_CERT_GEN */
-
- #if defined(WOLFSSL_KEY_GEN) || defined(WOLFSSL_CERT_GEN)
- #define DerToPem wc_DerToPem
-#endif
-
-#ifdef HAVE_ECC
- /* private key helpers */
- #define EccPrivateKeyDecode wc_EccPrivateKeyDecode
- #define EccKeyToDer wc_EccKeyToDer
-#endif
-
- /* DER encode signature */
- #define EncodeSignature wc_EncodeSignature
- #define GetCTC_HashOID wc_GetCTC_HashOID
-
-#endif /* CTAO_CRYPT_ASN_PUBLIC_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/blake2-impl.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/blake2-impl.h
deleted file mode 100644
index e815f0769..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/blake2-impl.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-/* blake2-impl.h
- *
- * Copyright (C) 2006-2020 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 CTAOCRYPT_BLAKE2_IMPL_H
-#define CTAOCRYPT_BLAKE2_IMPL_H
-
-#include <cyassl/ctaocrypt/types.h>
-#include <wolfssl/wolfcrypt/blake2-impl.h>
-
-#endif /* CTAOCRYPT_BLAKE2_IMPL_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/blake2-int.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/blake2-int.h
deleted file mode 100644
index 77244a232..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/blake2-int.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Written in 2012 by Samuel Neves <sneves@dei.uc.pt>
-
- To the extent possible under law, the author(s) have dedicated all copyright
- and related and neighboring rights to this software to the public domain
- worldwide. This software is distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along with
- this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
-*/
-/* blake2-int.h
- *
- * Copyright (C) 2006-2020 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 CTAOCRYPT_BLAKE2_INT_H
-#define CTAOCRYPT_BLAKE2_INT_H
-
-#include <cyassl/ctaocrypt/types.h>
-#include <wolfssl/wolfcrypt/blake2-int.h>
-
-#endif /* CTAOCRYPT_BLAKE2_INT_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/blake2.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/blake2.h
deleted file mode 100644
index c1378d9cd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/blake2.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* blake2.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-
-#ifdef HAVE_BLAKE2
-
-#ifndef CTAOCRYPT_BLAKE2_H
-#define CTAOCRYPT_BLAKE2_H
-
-#include <wolfssl/wolfcrypt/blake2.h>
-
-/* for blake2 reverse compatibility */
-#ifndef HAVE_FIPS
- #define InitBlake2b wc_InitBlake2b
- #define Blake2bUpdate wc_Blake2bUpdate
- #define Blake2bFinal wc_Blake2bFinal
-#else
- /* name for when fips hmac calls blake */
- #define wc_InitBlake2b InitBlake2b
- #define wc_Blake2bUpdate Blake2bUpdate
- #define wc_Blake2bFinal Blake2bFinal
-#endif /* HAVE_FIPS */
-
-#endif /* CTAOCRYPT_BLAKE2_H */
-#endif /* HAVE_BLAKE2 */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/camellia.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/camellia.h
deleted file mode 100644
index 8c0ce8d4c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/camellia.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* camellia.h
- *
- * Copyright (C) 2006-2020 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 CTAO_CRYPT_CAMELLIA_H
-#define CTAO_CRYPT_CAMELLIA_H
-
-
-/* for camellia reverse compatibility */
-#ifdef HAVE_CAMELLIA
- #include <wolfssl/wolfcrypt/camellia.h>
- #define CamelliaSetKey wc_CamelliaSetKey
- #define CamelliaSetIV wc_CamelliaSetIV
- #define CamelliaEncryptDirect wc_CamelliaEncryptDirect
- #define CamelliaDecryptDirect wc_CamelliaDecryptDirect
- #define CamelliaCbcEncrypt wc_CamelliaCbcEncrypt
- #define CamelliaCbcDecrypt wc_CamelliaCbcDecrypt
-#endif
-
-#endif /* CTAO_CRYPT_CAMELLIA_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/chacha.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/chacha.h
deleted file mode 100644
index bfe099851..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/chacha.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* chacha.h
- *
- * Copyright (C) 2006-2020 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 CTAO_CRYPT_CHACHA_H
-#define CTAO_CRYPT_CHACHA_H
-
-
-/* for chacha reverse compatibility */
-#ifdef HAVE_CHACHA
- #include <wolfssl/wolfcrypt/chacha.h>
- #define Chacha_Process wc_Chacha_Process
- #define Chacha_SetKey wc_Chacha_SetKey
- #define Chacha_SetIV wc_Chacha_SetIV
-#endif
-
-#endif /* CTAO_CRYPT_CHACHA_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/coding.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/coding.h
deleted file mode 100644
index 9902a5aba..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/coding.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* coding.h
- *
- * Copyright (C) 2006-2020 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 CTAO_CRYPT_CODING_H
-#define CTAO_CRYPT_CODING_H
-
-#include <wolfssl/wolfcrypt/coding.h>
-
-#endif /* CTAO_CRYPT_CODING_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/compress.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/compress.h
deleted file mode 100644
index 6bb26c6b0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/compress.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* compress.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-
-#ifdef HAVE_LIBZ
-
-#ifndef CTAO_CRYPT_COMPRESS_H
-#define CTAO_CRYPT_COMPRESS_H
-
-#include <wolfssl/wolfcrypt/compress.h>
-
-/* reverse compatibility */
-#define Compress wc_Compress
-#define DeCompress wc_DeCompress
-
-#endif /* CTAO_CRYPT_COMPRESS_H */
-
-#endif /* HAVE_LIBZ */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/des3.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/des3.h
deleted file mode 100644
index 8e355196d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/des3.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* des3.h
- *
- * Copyright (C) 2006-2020 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 NO_DES3
-
-#ifndef CTAO_CRYPT_DES3_H
-#define CTAO_CRYPT_DES3_H
-
-
-#include <wolfssl/wolfcrypt/des3.h>
-#define Des_SetKey wc_Des_SetKey
-#define Des_SetIV wc_Des_SetIV
-#define Des_CbcEncrypt wc_Des_CbcEncrypt
-#define Des_CbcDecrypt wc_Des_CbcDecrypt
-#define Des_EcbEncrypt wc_Des_EcbEncrypt
-#define Des_CbcDecryptWithKey wc_Des_CbcDecryptWithKey
-#define Des3_SetKey wc_Des3_SetKey
-#define Des3_SetIV wc_Des3_SetIV
-#define Des3_CbcEncrypt wc_Des3_CbcEncrypt
-#define Des3_CbcDecrypt wc_Des3_CbcDecrypt
-#define Des3_CbcDecryptWithKey wc_Des3_CbcDecryptWithKey
-#ifdef WOLFSSL_ASYNC_CRYPT
- #define Des3AsyncInit wc_Des3AsyncInit
- #define Des3AsyncFree wc_Des3AsyncFree
-#endif
-
-#endif /* NO_DES3 */
-#endif /* CTAO_CRYPT_DES3_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/dh.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/dh.h
deleted file mode 100644
index 80d4e51d3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/dh.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* dh.h
- *
- * Copyright (C) 2006-2020 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 NO_DH
-
-#ifndef CTAO_CRYPT_DH_H
-#define CTAO_CRYPT_DH_H
-
-/* for dh reverse compatibility */
-#include <wolfssl/wolfcrypt/dh.h>
-#define InitDhKey wc_InitDhKey
-#define FreeDhKey wc_FreeDhKey
-#define DhGenerateKeyPair wc_DhGenerateKeyPair
-#define DhAgree wc_DhAgree
-#define DhKeyDecode wc_DhKeyDecode
-#define DhSetKey wc_DhSetKey
-#define DhParamsLoad wc_DhParamsLoad
-
-#endif /* CTAO_CRYPT_DH_H */
-
-#endif /* NO_DH */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/dsa.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/dsa.h
deleted file mode 100644
index d99429081..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/dsa.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* dsa.h
- *
- * Copyright (C) 2006-2020 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 NO_DSA
-
-#ifndef CTAO_CRYPT_DSA_H
-#define CTAO_CRYPT_DSA_H
-
-#include <wolfssl/wolfcrypt/dsa.h>
-
-#endif /* CTAO_CRYPT_DSA_H */
-#endif /* NO_DSA */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/ecc.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/ecc.h
deleted file mode 100644
index b4b2f96c4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/ecc.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* ecc.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_ECC
-
-#ifndef CTAO_CRYPT_ECC_H
-#define CTAO_CRYPT_ECC_H
-
-#include <wolfssl/wolfcrypt/ecc.h>
-
-/* includes for compatibility */
-#include <cyassl/ctaocrypt/types.h>
-#include <cyassl/ctaocrypt/integer.h>
-#include <cyassl/ctaocrypt/random.h>
-
-/* for ecc reverse compatibility */
-#ifdef HAVE_ECC
- #define ecc_make_key wc_ecc_make_key
- #define ecc_shared_secret wc_ecc_shared_secret
- #define ecc_sign_hash wc_ecc_sign_hash
- #define ecc_verify_hash wc_ecc_verify_hash
- #define ecc_init wc_ecc_init
- #define ecc_free wc_ecc_free
- #define ecc_fp_free wc_ecc_fp_free
- #define ecc_export_x963 wc_ecc_export_x963
- #define ecc_size wc_ecc_size
- #define ecc_sig_size wc_ecc_sig_size
- #define ecc_export_x963_ex wc_ecc_export_x963_ex
- #define ecc_import_x963 wc_ecc_import_x963
- #define ecc_import_private_key wc_ecc_import_private_key
- #define ecc_rs_to_sig wc_ecc_rs_to_sig
- #define ecc_import_raw wc_ecc_import_raw
- #define ecc_export_private_only wc_ecc_export_private_only
-
-#ifdef HAVE_ECC_ENCRYPT
- /* ecc encrypt */
- #define ecc_ctx_new wc_ecc_ctx_new
- #define ecc_ctx_free wc_ecc_ctx_free
- #define ecc_ctx_reset wc_ecc_ctx_reset
- #define ecc_ctx_get_own_salt wc_ecc_ctx_get_own_salt
- #define ecc_ctx_set_peer_salt wc_ecc_ctx_set_peer_salt
- #define ecc_ctx_set_info wc_ecc_ctx_set_info
- #define ecc_encrypt wc_ecc_encrypt
- #define ecc_decrypt wc_ecc_decrypt
-#endif /* HAVE_ECC_ENCRYPT */
-#endif
-
-#endif /* CTAO_CRYPT_ECC_H */
-#endif /* HAVE_ECC */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/error-crypt.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/error-crypt.h
deleted file mode 100644
index 55a973947..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/error-crypt.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* error-crypt.h
- *
- * Copyright (C) 2006-2020 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 CTAO_CRYPT_ERROR_H
-#define CTAO_CRYPT_ERROR_H
-
-/* for name change and fips compatibility @wc_fips */
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#define CTaoCryptErrorString wc_ErrorString
-#define CTaoCryptGetErrorString wc_GetErrorString
-
-#endif /* CTAO_CRYPT_ERROR_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/fips_test.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/fips_test.h
deleted file mode 100644
index cdfad6cae..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/fips_test.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* fips_test.h
- *
- * Copyright (C) 2006-2020 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 CTAO_CRYPT_FIPS_TEST_H
-#define CTAO_CRYPT_FIPS_TEST_H
-
-#include <cyassl/ctaocrypt/types.h>
-
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Known Answer Test string inputs are hex, internal */
-CYASSL_LOCAL int DoKnownAnswerTests(char*, int);
-
-
-/* FIPS failure callback */
-typedef void(*wolfCrypt_fips_cb)(int ok, int err, const char* hash);
-
-/* Public set function */
-CYASSL_API int wolfCrypt_SetCb_fips(wolfCrypt_fips_cb cbf);
-
-/* Public get status functions */
-CYASSL_API int wolfCrypt_GetStatus_fips(void);
-CYASSL_API const char* wolfCrypt_GetCoreHash_fips(void);
-
-#ifdef HAVE_FORCE_FIPS_FAILURE
- /* Public function to force failure mode for operational testing */
- CYASSL_API int wolfCrypt_SetStatus_fips(int);
-#endif
-
-
-#ifdef __cplusplus
- } /* extern "C" */
-#endif
-
-#endif /* CTAO_CRYPT_FIPS_TEST_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/hc128.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/hc128.h
deleted file mode 100644
index af1186bde..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/hc128.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* hc128.h
- *
- * Copyright (C) 2006-2020 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 NO_HC128
-
-#ifndef CTAO_CRYPT_HC128_H
-#define CTAO_CRYPT_HC128_H
-
-#include <wolfssl/wolfcrypt/hc128.h>
-
-/* for hc128 reverse compatibility */
-#ifdef HAVE_HC128
- #define Hc128_Process wc_Hc128_Process
- #define Hc128_SetKey wc_Hc128_SetKey
-#endif
-
-#endif /* CTAO_CRYPT_HC128_H */
-
-#endif /* HAVE_HC128 */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/hmac.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/hmac.h
deleted file mode 100644
index 4c0dd153a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/hmac.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* hmac.h
- *
- * Copyright (C) 2006-2020 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 NO_HMAC
-
-#ifndef CTAO_CRYPT_HMAC_H
-#define CTAO_CRYPT_HMAC_H
-
-#include <wolfssl/wolfcrypt/hmac.h>
-#define HmacSetKey wc_HmacSetKey
-#define HmacUpdate wc_HmacUpdate
-#define HmacFinal wc_HmacFinal
-#ifdef WOLFSSL_ASYNC_CRYPT
- #define HmacAsyncInit wc_HmacAsyncInit
- #define HmacAsyncFree wc_HmacAsyncFree
-#endif
-#define CyaSSL_GetHmacMaxSize wolfSSL_GetHmacMaxSize
-#ifdef HAVE_HKDF
- #define HKDF wc_HKDF
-#endif /* HAVE_HKDF */
-
-#endif /* CTAO_CRYPT_HMAC_H */
-
-#endif /* NO_HMAC */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/include.am b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/include.am
deleted file mode 100644
index c30b26fa7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/include.am
+++ /dev/null
@@ -1,54 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-
-EXTRA_DIST+= ctaocrypt/src/misc.c
-
-nobase_include_HEADERS+= \
- cyassl/ctaocrypt/aes.h \
- cyassl/ctaocrypt/arc4.h \
- cyassl/ctaocrypt/asn.h \
- cyassl/ctaocrypt/asn_public.h \
- cyassl/ctaocrypt/poly1305.h \
- cyassl/ctaocrypt/camellia.h \
- cyassl/ctaocrypt/coding.h \
- cyassl/ctaocrypt/compress.h \
- cyassl/ctaocrypt/des3.h \
- cyassl/ctaocrypt/dh.h \
- cyassl/ctaocrypt/dsa.h \
- cyassl/ctaocrypt/ecc.h \
- cyassl/ctaocrypt/error-crypt.h \
- cyassl/ctaocrypt/fips_test.h \
- cyassl/ctaocrypt/hc128.h \
- cyassl/ctaocrypt/hmac.h \
- cyassl/ctaocrypt/integer.h \
- cyassl/ctaocrypt/md2.h \
- cyassl/ctaocrypt/md4.h \
- cyassl/ctaocrypt/md5.h \
- cyassl/ctaocrypt/misc.h \
- cyassl/ctaocrypt/pkcs7.h \
- cyassl/ctaocrypt/wc_port.h \
- cyassl/ctaocrypt/pwdbased.h \
- cyassl/ctaocrypt/rabbit.h \
- cyassl/ctaocrypt/chacha.h \
- cyassl/ctaocrypt/random.h \
- cyassl/ctaocrypt/ripemd.h \
- cyassl/ctaocrypt/rsa.h \
- cyassl/ctaocrypt/settings.h \
- cyassl/ctaocrypt/settings_comp.h \
- cyassl/ctaocrypt/sha256.h \
- cyassl/ctaocrypt/sha512.h \
- cyassl/ctaocrypt/sha.h \
- cyassl/ctaocrypt/blake2.h \
- cyassl/ctaocrypt/blake2-int.h \
- cyassl/ctaocrypt/blake2-impl.h \
- cyassl/ctaocrypt/tfm.h \
- cyassl/ctaocrypt/types.h \
- cyassl/ctaocrypt/visibility.h \
- cyassl/ctaocrypt/logging.h \
- cyassl/ctaocrypt/memory.h \
- cyassl/ctaocrypt/mpi_class.h \
- cyassl/ctaocrypt/mpi_superclass.h
-
-noinst_HEADERS+= \
- cyassl/ctaocrypt/port/pic32/pic32mz-crypt.h
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/integer.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/integer.h
deleted file mode 100644
index 2aed0cd0f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/integer.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* integer.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/*
- * Based on public domain LibTomMath 0.38 by Tom St Denis, tomstdenis@iahu.ca,
- * http://math.libtomcrypt.com
- */
-
-
-#ifndef CTAO_CRYPT_INTEGER_H
-#define CTAO_CRYPT_INTEGER_H
-
-#include <wolfssl/wolfcrypt/integer.h>
-
-#endif /* CTAO_CRYPT_INTEGER_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/logging.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/logging.h
deleted file mode 100644
index 12fa22c61..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/logging.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* logging.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/* submitted by eof */
-
-
-#ifndef CYASSL_LOGGING_H
-#define CYASSL_LOGGING_H
-
-/* for fips compatibility @wc_fips */
-#include <wolfssl/wolfcrypt/logging.h>
-#define CYASSL_LEAVE WOLFSSL_LEAVE
-#define CYASSL_ERROR WOLFSSL_ERROR
-#define CYASSL_ENTER WOLFSSL_ENTER
-#define CYASSL_MSG WOLFSSL_MSG
-/* check old macros possibly declared */
-#if defined(DEBUG_CYASSL) && !defined(DEBUG_WOLFSSL)
- #define DEBUG_WOLFSSL
-#endif
-
-#endif /* CYASSL_LOGGING_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/md2.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/md2.h
deleted file mode 100644
index e3e7816e6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/md2.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* md2.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-
-/* check for old macro */
-#if !defined(CYASSL_MD2) && defined(WOLFSSL_MD2)
- #define CYASSL_MD2
-#endif
-
-#ifdef CYASSL_MD2
-
-#ifndef CTAO_CRYPT_MD2_H
-#define CTAO_CRYPT_MD2_H
-
-#include <wolfssl/wolfcrypt/md2.h>
-
-#define InitMd2 wc_InitMd2
-#define Md2Update wc_Md2Update
-#define Md2Final wc_Md2Final
-#define Md2Hash wc_Md2Hash
-
-#endif /* CTAO_CRYPT_MD2_H */
-#endif /* CYASSL_MD2 */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/md4.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/md4.h
deleted file mode 100644
index f550a71ad..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/md4.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* md4.h
- *
- * Copyright (C) 2006-2020 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 NO_MD4
-
-#ifndef CTAO_CRYPT_MD4_H
-#define CTAO_CRYPT_MD4_H
-
-#include <wolfssl/wolfcrypt/md4.h>
-
-#define InitMd4 wc_InitMd4
-#define Md4Update wc_Md4Update
-#define Md4Final wc_Md4Final
-
-#endif /* CTAO_CRYPT_MD4_H */
-
-#endif /* NO_MD4 */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/md5.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/md5.h
deleted file mode 100644
index 4f5dc4727..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/md5.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* md5.h
- *
- * Copyright (C) 2006-2020 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 NO_MD5
-
-#ifndef CTAO_CRYPT_MD5_H
-#define CTAO_CRYPT_MD5_H
-
-#include <wolfssl/wolfcrypt/md5.h>
-
-#ifndef HAVE_FIPS
- #define InitMd5 wc_InitMd5
- #define Md5Update wc_Md5Update
- #define Md5Final wc_Md5Final
- #define Md5Hash wc_Md5Hash
-#else
- /* redfined name so that hmac is calling same function names with fips */
- #define wc_InitMd5 InitMd5
- #define wc_Md5Update Md5Update
- #define wc_Md5Final Md5Final
- #define wc_Md5Hash Md5Hash
-#endif
-
-#endif /* CTAO_CRYPT_MD5_H */
-#endif /* NO_MD5 */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/memory.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/memory.h
deleted file mode 100644
index a7f2a8b3a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/memory.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* memory.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/* submitted by eof */
-
-
-#ifndef CYASSL_MEMORY_H
-#define CYASSL_MEMORY_H
-
-
-#include <wolfssl/wolfcrypt/memory.h>
-#define CyaSSL_Malloc_cb wolfSSL_Malloc_cb
-#define CyaSSL_Free_cb wolfSSL_Free_cb
-#define CyaSSL_Realloc_cb wolfSSL_Realloc_cb
-#define CyaSSL_SetAllocators wolfSSL_SetAllocators
-
-/* Public in case user app wants to use XMALLOC/XFREE */
-#define CyaSSL_Malloc wolfSSL_Malloc
-#define CyaSSL_Free wolfSSL_Free
-#define CyaSSL_Realloc wolfSSL_Realloc
-
-#endif /* CYASSL_MEMORY_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/misc.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/misc.h
deleted file mode 100644
index 02c544101..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/misc.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* misc.h
- *
- * Copyright (C) 2006-2020 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 CTAO_CRYPT_MISC_H
-#define CTAO_CRYPT_MISC_H
-
-#include <wolfssl/wolfcrypt/misc.h>
-
-#endif /* CTAO_CRYPT_MISC_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/mpi_class.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/mpi_class.h
deleted file mode 100644
index 01141a98b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/mpi_class.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* mpi_class.h
- *
- * Copyright (C) 2006-2020 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 <wolfssl/wolfcrypt/mpi_class.h>
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/mpi_superclass.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/mpi_superclass.h
deleted file mode 100644
index ca7531c21..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/mpi_superclass.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* mpi_superclass.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-
-/* super class file for PK algos */
-
-#include <wolfssl/wolfcrypt/mpi_superclass.h>
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/pkcs7.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/pkcs7.h
deleted file mode 100644
index 4b0488f25..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/pkcs7.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* pkcs7.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-
-#ifdef HAVE_PKCS7
-
-#ifndef CTAO_CRYPT_PKCS7_H
-#define CTAO_CRYPT_PKCS7_H
-
-/* pull in compatibility for old includes */
-#include <cyassl/ctaocrypt/types.h>
-#include <cyassl/ctaocrypt/asn.h>
-#include <cyassl/ctaocrypt/asn_public.h>
-#include <cyassl/ctaocrypt/random.h>
-#include <cyassl/ctaocrypt/des3.h>
-
-#include <wolfssl/wolfcrypt/pkcs7.h>
-
-/* for pkcs7 reverse compatibility */
-#define SetContentType wc_SetContentType
-#define GetContentType wc_GetContentType
-#define CreateRecipientInfo wc_CreateRecipientInfo
-#define PKCS7_InitWithCert wc_PKCS7_InitWithCert
-#define PKCS7_Free wc_PKCS7_Free
-#define PKCS7_EncodeData wc_PKCS7_EncodeData
-#define PKCS7_EncodeSignedData wc_PKCS7_EncodeSignedData
-#define PKCS7_VerifySignedData wc_PKCS7_VerifySignedData
-#define PKCS7_EncodeEnvelopedData wc_PKCS7_EncodeEnvelopedData
-#define PKCS7_DecodeEnvelopedData wc_PKCS7_DecodeEnvelopedData
-
-#endif /* CTAO_CRYPT_PKCS7_H */
-
-#endif /* HAVE_PKCS7 */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/poly1305.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/poly1305.h
deleted file mode 100644
index 72021ab27..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/poly1305.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* poly1305.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-
-#ifdef HAVE_POLY1305
-
-#ifndef CTAO_CRYPT_POLY1305_H
-#define CTAO_CRYPT_POLY1305_H
-
-#include <wolfssl/wolfcrypt/poly1305.h>
-
-/* for poly1305 reverse compatibility */
-#define Poly1305SetKey wc_Poly1305SetKey
-#define Poly1305Update wc_Poly1305Update
-#define Poly1305Final wc_Poly1305Final
-
-#endif /* CTAO_CRYPT_POLY1305_H */
-
-#endif /* HAVE_POLY1305 */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/port/pic32/pic32mz-crypt.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/port/pic32/pic32mz-crypt.h
deleted file mode 100644
index e56e236c9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/port/pic32/pic32mz-crypt.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* pic32mz-crypt.h
- *
- * Copyright (C) 2006-2020 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 PIC32MZ_CRYPT_H
-#define PIC32MZ_CRYPT_H
-
-#include <wolfssl/wolfcrypt/port/pic32/pic32mz-crypt.h>
-
-#endif /* PIC32MZ_CRYPT_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/pwdbased.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/pwdbased.h
deleted file mode 100644
index 9f1d1de36..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/pwdbased.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* pwdbased.h
- *
- * Copyright (C) 2006-2020 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 NO_PWDBASED
-
-#ifndef CTAO_CRYPT_PWDBASED_H
-#define CTAO_CRYPT_PWDBASED_H
-
-/* for pwdbased reverse compatibility */
-#include <wolfssl/wolfcrypt/pwdbased.h>
-#define PBKDF1 wc_PBKDF1
-#define PBKDF2 wc_PBKDF2
-#define PKCS12_PBKDF wc_PKCS12_PBKDF
-
-#endif /* CTAO_CRYPT_PWDBASED_H */
-#endif /* NO_PWDBASED */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/rabbit.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/rabbit.h
deleted file mode 100644
index 109e97331..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/rabbit.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* rabbit.h
- *
- * Copyright (C) 2006-2020 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 NO_RABBIT
-
-#ifndef CTAO_CRYPT_RABBIT_H
-#define CTAO_CRYPT_RABBIT_H
-
-#include <wolfssl/wolfcrypt/rabbit.h>
-
-/* for rabbit reverse compatibility */
-#ifndef NO_RABBIT
- #define RabbitProcess wc_RabbitProcess
- #define RabbitSetKey wc_RabbitSetKey
-#endif
-
-#endif /* CTAO_CRYPT_RABBIT_H */
-
-#endif /* NO_RABBIT */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/random.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/random.h
deleted file mode 100644
index 9581ff92c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/random.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* random.h
- *
- * Copyright (C) 2006-2020 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 CTAO_CRYPT_RANDOM_H
-#define CTAO_CRYPT_RANDOM_H
-
- /* for random.h compatibility */
- #include <wolfssl/wolfcrypt/random.h>
- #define InitRng wc_InitRng
- #define RNG_GenerateBlock wc_RNG_GenerateBlock
- #define RNG_GenerateByte wc_RNG_GenerateByte
- #define FreeRng wc_FreeRng
-
- #if defined(HAVE_HASHDRBG) || defined(NO_RC4)
- #define RNG_HealthTest wc_RNG_HealthTest
- #endif /* HAVE_HASHDRBG || NO_RC4 */
-
-#endif /* CTAO_CRYPT_RANDOM_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/ripemd.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/ripemd.h
deleted file mode 100644
index 25bcf990e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/ripemd.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* ripemd.h
- *
- * Copyright (C) 2006-2020 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 CTAO_CRYPT_RIPEMD_H
-#define CTAO_CRYPT_RIPEME_H
-
-#include <wolfssl/wolfcrypt/ripemd.h>
-
-/* for ripemd reverse compatibility */
-#ifdef WOLFSSL_RIPEMD
- #define InitRipeMd wc_InitRipeMd
- #define RipeMdUpdate wc_RipeMdUpdate
- #define RipeMdFinal wc_RipeMdFinal
-#endif
-
-#endif /* CTAO_CRYPT_RIPEMD_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/rsa.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/rsa.h
deleted file mode 100644
index 18949e393..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/rsa.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* rsa.h
- *
- * Copyright (C) 2006-2020 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 NO_RSA
-
-#ifndef CTAO_CRYPT_RSA_H
-#define CTAO_CRYPT_RSA_H
-
-#include <wolfssl/wolfcrypt/rsa.h>
-/* includes for their compatibility */
-#include <cyassl/ctaocrypt/integer.h>
-#include <cyassl/ctaocrypt/random.h>
-#include <cyassl/ctaocrypt/settings.h>
-
-#define InitRsaKey wc_InitRsaKey
-#define FreeRsaKey wc_FreeRsaKey
-#define RsaPublicEncrypt wc_RsaPublicEncrypt
-#define RsaPrivateDecryptInline wc_RsaPrivateDecryptInline
-#define RsaPrivateDecrypt wc_RsaPrivateDecrypt
-#define RsaSSL_Sign wc_RsaSSL_Sign
-#define RsaSSL_VerifyInline wc_RsaSSL_VerifyInline
-#define RsaSSL_Verify wc_RsaSSL_Verify
-#define RsaEncryptSize wc_RsaEncryptSize
-#define RsaFlattenPublicKey wc_RsaFlattenPublicKey
-
-#ifdef WOLFSSL_KEY_GEN
- #define MakeRsaKey wc_MakeRsaKey
- #define RsaKeyToDer wc_RsaKeyToDer
- #define CheckProbablePrime wc_CheckProbablePrime
-#endif
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- #define RsaAsyncInit wc_RsaAsyncInit
- #define RsaAsyncFree wc_RsaAsyncFree
-#endif
-
-#endif /* CTAO_CRYPT_RSA_H */
-
-#endif /* NO_RSA */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/settings.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/settings.h
deleted file mode 100644
index 4cea7e201..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/settings.h
+++ /dev/null
@@ -1,723 +0,0 @@
-/* settings.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/* Place OS specific preprocessor flags, defines, includes here, will be
- included into every file because types.h includes it */
-
-
-#ifndef CTAO_CRYPT_SETTINGS_H
-#define CTAO_CRYPT_SETTINGS_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Uncomment next line if using IPHONE */
-/* #define IPHONE */
-
-/* Uncomment next line if using ThreadX */
-/* #define THREADX */
-
-/* Uncomment next line if using Micrium ucOS */
-/* #define MICRIUM */
-
-/* Uncomment next line if using Mbed */
-/* #define MBED */
-
-/* Uncomment next line if using Microchip PIC32 ethernet starter kit */
-/* #define MICROCHIP_PIC32 */
-
-/* Uncomment next line if using Microchip TCP/IP stack, version 5 */
-/* #define MICROCHIP_TCPIP_V5 */
-
-/* Uncomment next line if using Microchip TCP/IP stack, version 6 or later */
-/* #define MICROCHIP_TCPIP */
-
-/* Uncomment next line if using PIC32MZ Crypto Engine */
-/* #define CYASSL_MICROCHIP_PIC32MZ */
-
-/* Uncomment next line if using FreeRTOS */
-/* #define FREERTOS */
-
-/* Uncomment next line if using FreeRTOS Windows Simulator */
-/* #define FREERTOS_WINSIM */
-
-/* Uncomment next line if using RTIP */
-/* #define EBSNET */
-
-/* Uncomment next line if using lwip */
-/* #define CYASSL_LWIP */
-
-/* Uncomment next line if building CyaSSL for a game console */
-/* #define CYASSL_GAME_BUILD */
-
-/* Uncomment next line if building CyaSSL for LSR */
-/* #define CYASSL_LSR */
-
-/* Uncomment next line if building CyaSSL for Freescale MQX/RTCS/MFS */
-/* #define FREESCALE_MQX */
-
-/* Uncomment next line if using STM32F2 */
-/* #define CYASSL_STM32F2 */
-
-/* Uncomment next line if using QL SEP settings */
-/* #define CYASSL_QL */
-
-/* Uncomment next line if building for EROAD */
-/* #define CYASSL_EROAD */
-
-/* Uncomment next line if building for IAR EWARM */
-/* #define CYASSL_IAR_ARM */
-
-/* Uncomment next line if using TI-RTOS settings */
-/* #define CYASSL_TIRTOS */
-
-/* Uncomment next line if building with PicoTCP */
-/* #define CYASSL_PICOTCP */
-
-/* Uncomment next line if building for PicoTCP demo bundle */
-/* #define CYASSL_PICOTCP_DEMO */
-
-#include <cyassl/ctaocrypt/visibility.h>
-
-#ifdef IPHONE
- #define SIZEOF_LONG_LONG 8
-#endif
-
-
-#ifdef CYASSL_USER_SETTINGS
- #include <user_settings.h>
-#endif
-
-/* for reverse compatibility after name change */
-#include <cyassl/ctaocrypt/settings_comp.h>
-
-#ifdef THREADX
- #define SIZEOF_LONG_LONG 8
-#endif
-
-#ifdef HAVE_NETX
- #include "nx_api.h"
-#endif
-
-#if defined(HAVE_LWIP_NATIVE) /* using LwIP native TCP socket */
- #define CYASSL_LWIP
- #define NO_WRITEV
- #define SINGLE_THREADED
- #define CYASSL_USER_IO
- #define NO_FILESYSTEM
-#endif
-
-#if defined(CYASSL_IAR_ARM)
- #define NO_MAIN_DRIVER
- #define SINGLE_THREADED
- #define USE_CERT_BUFFERS_1024
- #define BENCH_EMBEDDED
- #define NO_FILESYSTEM
- #define NO_WRITEV
- #define CYASSL_USER_IO
- #define BENCH_EMBEDDED
-#endif
-
-#ifdef MICROCHIP_PIC32
- /* #define CYASSL_MICROCHIP_PIC32MZ */
- #define SIZEOF_LONG_LONG 8
- #define SINGLE_THREADED
- #define CYASSL_USER_IO
- #define NO_WRITEV
- #define NO_DEV_RANDOM
- #define NO_FILESYSTEM
- #define USE_FAST_MATH
- #define TFM_TIMING_RESISTANT
-#endif
-
-#if defined(CYASSL_MICROCHIP_PIC32MZ) || defined(WOLFSSL_MICROCHIP_PIC32MZ)
- #ifndef NO_PIC32MZ_CRYPT
- #define WOLFSSL_PIC32MZ_CRYPT
- #endif
- #ifndef NO_PIC32MZ_RNG
- #define WOLFSSL_PIC32MZ_RNG
- #endif
- #ifndef NO_PIC32MZ_HASH
- #define WOLFSSL_PIC32MZ_HASH
- #endif
-
- #define CYASSL_AES_COUNTER
- #define HAVE_AESGCM
- #define NO_BIG_INT
-#endif
-
-#ifdef MICROCHIP_TCPIP_V5
- /* include timer functions */
- #include "TCPIP Stack/TCPIP.h"
-#endif
-
-#ifdef MICROCHIP_TCPIP
- /* include timer, NTP functions */
- #ifdef MICROCHIP_MPLAB_HARMONY
- #include "tcpip/tcpip.h"
- #else
- #include "system/system_services.h"
- #include "tcpip/sntp.h"
- #endif
-#endif
-
-#ifdef MBED
- #define CYASSL_USER_IO
- #define NO_FILESYSTEM
- #define NO_CERTS
- #define USE_CERT_BUFFERS_1024
- #define NO_WRITEV
- #define NO_DEV_RANDOM
- #define NO_SHA512
- #define NO_DH
- #define NO_DSA
- #define NO_HC128
- #define HAVE_ECC
- #define NO_SESSION_CACHE
- #define CYASSL_CMSIS_RTOS
-#endif
-
-
-#ifdef CYASSL_EROAD
- #define FREESCALE_MQX
- #define FREESCALE_MMCAU
- #define SINGLE_THREADED
- #define NO_STDIO_FILESYSTEM
- #define CYASSL_LEANPSK
- #define HAVE_NULL_CIPHER
- #define NO_OLD_TLS
- #define NO_ASN
- #define NO_BIG_INT
- #define NO_RSA
- #define NO_DSA
- #define NO_DH
- #define NO_CERTS
- #define NO_PWDBASED
- #define NO_DES3
- #define NO_MD4
- #define NO_RC4
- #define NO_MD5
- #define NO_SESSION_CACHE
- #define NO_MAIN_DRIVER
-#endif
-
-#ifdef CYASSL_PICOTCP
- #define errno pico_err
- #include "pico_defines.h"
- #include "pico_stack.h"
- #include "pico_constants.h"
- #define CUSTOM_RAND_GENERATE pico_rand
-#endif
-
-#ifdef CYASSL_PICOTCP_DEMO
- #define CYASSL_STM32
- #define USE_FAST_MATH
- #define TFM_TIMING_RESISTANT
- #define XMALLOC(s, h, type) PICO_ZALLOC((s))
- #define XFREE(p, h, type) PICO_FREE((p))
- #define SINGLE_THREADED
- #define NO_WRITEV
- #define CYASSL_USER_IO
- #define NO_DEV_RANDOM
- #define NO_FILESYSTEM
-#endif
-
-#ifdef FREERTOS_WINSIM
- #define FREERTOS
- #define USE_WINDOWS_API
-#endif
-
-
-/* Micrium will use Visual Studio for compilation but not the Win32 API */
-#if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) \
- && !defined(EBSNET) && !defined(CYASSL_EROAD) && !defined(INTIME_RTOS)
- #define USE_WINDOWS_API
-#endif
-
-
-#if defined(CYASSL_LEANPSK) && !defined(XMALLOC_USER)
- #include <stdlib.h>
- #define XMALLOC(s, h, type) malloc((s))
- #define XFREE(p, h, type) free((p))
- #define XREALLOC(p, n, h, t) realloc((p), (n))
-#endif
-
-#if defined(XMALLOC_USER) && defined(SSN_BUILDING_LIBYASSL)
- #undef XMALLOC
- #define XMALLOC yaXMALLOC
- #undef XFREE
- #define XFREE yaXFREE
- #undef XREALLOC
- #define XREALLOC yaXREALLOC
-#endif
-
-
-#ifdef FREERTOS
- #ifndef NO_WRITEV
- #define NO_WRITEV
- #endif
- #ifndef NO_SHA512
- #define NO_SHA512
- #endif
- #ifndef NO_DH
- #define NO_DH
- #endif
- #ifndef NO_DSA
- #define NO_DSA
- #endif
- #ifndef NO_HC128
- #define NO_HC128
- #endif
-
- #ifndef SINGLE_THREADED
- #include "FreeRTOS.h"
- #include "semphr.h"
- #endif
-#endif
-
-#ifdef CYASSL_TIRTOS
- #define SIZEOF_LONG_LONG 8
- #define NO_WRITEV
- #define NO_CYASSL_DIR
- #define USE_FAST_MATH
- #define TFM_TIMING_RESISTANT
- #define NO_DEV_RANDOM
- #define NO_FILESYSTEM
- #define USE_CERT_BUFFERS_2048
- #define NO_ERROR_STRINGS
- #define USER_TIME
-
- #ifdef __IAR_SYSTEMS_ICC__
- #pragma diag_suppress=Pa089
- #elif !defined(__GNUC__)
- /* Suppress the sslpro warning */
- #pragma diag_suppress=11
- #endif
-
- #include <ti/ndk/nettools/mytime/mytime.h>
-#endif
-
-#ifdef EBSNET
- #include "rtip.h"
-
- /* #define DEBUG_CYASSL */
- #define NO_CYASSL_DIR /* tbd */
-
- #if (POLLOS)
- #define SINGLE_THREADED
- #endif
-
- #if (RTPLATFORM)
- #if (!RTP_LITTLE_ENDIAN)
- #define BIG_ENDIAN_ORDER
- #endif
- #else
- #if (!KS_LITTLE_ENDIAN)
- #define BIG_ENDIAN_ORDER
- #endif
- #endif
-
- #if (WINMSP3)
- #undef SIZEOF_LONG
- #define SIZEOF_LONG_LONG 8
- #else
- #sslpro: settings.h - please implement SIZEOF_LONG and SIZEOF_LONG_LONG
- #endif
-
- #define XMALLOC(s, h, type) ((void *)rtp_malloc((s), SSL_PRO_MALLOC))
- #define XFREE(p, h, type) (rtp_free(p))
- #define XREALLOC(p, n, h, t) realloc((p), (n))
-
-#endif /* EBSNET */
-
-#ifdef CYASSL_GAME_BUILD
- #define SIZEOF_LONG_LONG 8
- #if defined(__PPU) || defined(__XENON)
- #define BIG_ENDIAN_ORDER
- #endif
-#endif
-
-#ifdef CYASSL_LSR
- #define HAVE_WEBSERVER
- #define SIZEOF_LONG_LONG 8
- #define CYASSL_LOW_MEMORY
- #define NO_WRITEV
- #define NO_SHA512
- #define NO_DH
- #define NO_DSA
- #define NO_HC128
- #define NO_DEV_RANDOM
- #define NO_CYASSL_DIR
- #define NO_RABBIT
- #ifndef NO_FILESYSTEM
- #define LSR_FS
- #include "inc/hw_types.h"
- #include "fs.h"
- #endif
- #define CYASSL_LWIP
- #include <errno.h> /* for tcp errno */
- #define CYASSL_SAFERTOS
- #if defined(__IAR_SYSTEMS_ICC__)
- /* enum uses enum */
- #pragma diag_suppress=Pa089
- #endif
-#endif
-
-#ifdef CYASSL_SAFERTOS
- #ifndef SINGLE_THREADED
- #include "SafeRTOS/semphr.h"
- #endif
-
- #include "SafeRTOS/heap.h"
- #define XMALLOC(s, h, type) pvPortMalloc((s))
- #define XFREE(p, h, type) vPortFree((p))
- #define XREALLOC(p, n, h, t) pvPortRealloc((p), (n))
-#endif
-
-#ifdef CYASSL_LOW_MEMORY
- #undef RSA_LOW_MEM
- #define RSA_LOW_MEM
- #undef CYASSL_SMALL_STACK
- #define CYASSL_SMALL_STACK
- #undef TFM_TIMING_RESISTANT
- #define TFM_TIMING_RESISTANT
-#endif
-
-#ifdef FREESCALE_MQX
- #define SIZEOF_LONG_LONG 8
- #define NO_WRITEV
- #define NO_DEV_RANDOM
- #define NO_RABBIT
- #define NO_CYASSL_DIR
- #define USE_FAST_MATH
- #define TFM_TIMING_RESISTANT
- #define FREESCALE_K70_RNGA
- /* #define FREESCALE_K53_RNGB */
- #include "mqx.h"
- #ifndef NO_FILESYSTEM
- #include "mfs.h"
- #include "fio.h"
- #endif
- #ifndef SINGLE_THREADED
- #include "mutex.h"
- #endif
-
- #define XMALLOC(s, h, t) (void *)_mem_alloc_system((s))
- #define XFREE(p, h, t) {void* xp = (p); if ((xp)) _mem_free((xp));}
- /* Note: MQX has no realloc, using fastmath above */
-#endif
-
-#ifdef CYASSL_STM32F2
- #define SIZEOF_LONG_LONG 8
- #define NO_DEV_RANDOM
- #define NO_CYASSL_DIR
- #define NO_RABBIT
- #define STM32F2_RNG
- #define STM32F2_CRYPTO
- #define KEIL_INTRINSICS
-#endif
-
-#ifdef MICRIUM
-
- #include "stdlib.h"
- #include "net_cfg.h"
- #include "ssl_cfg.h"
- #include "net_secure_os.h"
-
- #define CYASSL_TYPES
-
- typedef CPU_INT08U byte;
- typedef CPU_INT16U word16;
- typedef CPU_INT32U word32;
-
- #if (NET_SECURE_MGR_CFG_WORD_SIZE == CPU_WORD_SIZE_32)
- #define SIZEOF_LONG 4
- #undef SIZEOF_LONG_LONG
- #else
- #undef SIZEOF_LONG
- #define SIZEOF_LONG_LONG 8
- #endif
-
- #define STRING_USER
-
- #define XSTRLEN(pstr) ((CPU_SIZE_T)Str_Len((CPU_CHAR *)(pstr)))
- #define XSTRNCPY(pstr_dest, pstr_src, len_max) \
- ((CPU_CHAR *)Str_Copy_N((CPU_CHAR *)(pstr_dest), \
- (CPU_CHAR *)(pstr_src), (CPU_SIZE_T)(len_max)))
- #define XSTRNCMP(pstr_1, pstr_2, len_max) \
- ((CPU_INT16S)Str_Cmp_N((CPU_CHAR *)(pstr_1), \
- (CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max)))
- #define XSTRSTR(pstr, pstr_srch) \
- ((CPU_CHAR *)Str_Str((CPU_CHAR *)(pstr), \
- (CPU_CHAR *)(pstr_srch)))
- #define XMEMSET(pmem, data_val, size) \
- ((void)Mem_Set((void *)(pmem), (CPU_INT08U) (data_val), \
- (CPU_SIZE_T)(size)))
- #define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \
- (void *)(psrc), (CPU_SIZE_T)(size)))
- #define XMEMCMP(pmem_1, pmem_2, size) \
- (((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), (void *)(pmem_2), \
- (CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES)
- #define XMEMMOVE XMEMCPY
-
-#if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
- #define MICRIUM_MALLOC
- #define XMALLOC(s, h, type) ((void *)NetSecure_BlkGet((CPU_INT08U)(type), \
- (CPU_SIZE_T)(s), (void *)0))
- #define XFREE(p, h, type) (NetSecure_BlkFree((CPU_INT08U)(type), \
- (p), (void *)0))
- #define XREALLOC(p, n, h, t) realloc((p), (n))
-#endif
-
- #if (NET_SECURE_MGR_CFG_FS_EN == DEF_ENABLED)
- #undef NO_FILESYSTEM
- #else
- #define NO_FILESYSTEM
- #endif
-
- #if (SSL_CFG_TRACE_LEVEL == CYASSL_TRACE_LEVEL_DBG)
- #define DEBUG_CYASSL
- #else
- #undef DEBUG_CYASSL
- #endif
-
- #if (SSL_CFG_OPENSSL_EN == DEF_ENABLED)
- #define OPENSSL_EXTRA
- #else
- #undef OPENSSL_EXTRA
- #endif
-
- #if (SSL_CFG_MULTI_THREAD_EN == DEF_ENABLED)
- #undef SINGLE_THREADED
- #else
- #define SINGLE_THREADED
- #endif
-
- #if (SSL_CFG_DH_EN == DEF_ENABLED)
- #undef NO_DH
- #else
- #define NO_DH
- #endif
-
- #if (SSL_CFG_DSA_EN == DEF_ENABLED)
- #undef NO_DSA
- #else
- #define NO_DSA
- #endif
-
- #if (SSL_CFG_PSK_EN == DEF_ENABLED)
- #undef NO_PSK
- #else
- #define NO_PSK
- #endif
-
- #if (SSL_CFG_3DES_EN == DEF_ENABLED)
- #undef NO_DES
- #else
- #define NO_DES
- #endif
-
- #if (SSL_CFG_AES_EN == DEF_ENABLED)
- #undef NO_AES
- #else
- #define NO_AES
- #endif
-
- #if (SSL_CFG_RC4_EN == DEF_ENABLED)
- #undef NO_RC4
- #else
- #define NO_RC4
- #endif
-
- #if (SSL_CFG_RABBIT_EN == DEF_ENABLED)
- #undef NO_RABBIT
- #else
- #define NO_RABBIT
- #endif
-
- #if (SSL_CFG_HC128_EN == DEF_ENABLED)
- #undef NO_HC128
- #else
- #define NO_HC128
- #endif
-
- #if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG)
- #define BIG_ENDIAN_ORDER
- #else
- #undef BIG_ENDIAN_ORDER
- #define LITTLE_ENDIAN_ORDER
- #endif
-
- #if (SSL_CFG_MD4_EN == DEF_ENABLED)
- #undef NO_MD4
- #else
- #define NO_MD4
- #endif
-
- #if (SSL_CFG_WRITEV_EN == DEF_ENABLED)
- #undef NO_WRITEV
- #else
- #define NO_WRITEV
- #endif
-
- #if (SSL_CFG_USER_RNG_SEED_EN == DEF_ENABLED)
- #define NO_DEV_RANDOM
- #else
- #undef NO_DEV_RANDOM
- #endif
-
- #if (SSL_CFG_USER_IO_EN == DEF_ENABLED)
- #define CYASSL_USER_IO
- #else
- #undef CYASSL_USER_IO
- #endif
-
- #if (SSL_CFG_DYNAMIC_BUFFERS_EN == DEF_ENABLED)
- #undef LARGE_STATIC_BUFFERS
- #undef STATIC_CHUNKS_ONLY
- #else
- #define LARGE_STATIC_BUFFERS
- #define STATIC_CHUNKS_ONLY
- #endif
-
- #if (SSL_CFG_DER_LOAD_EN == DEF_ENABLED)
- #define CYASSL_DER_LOAD
- #else
- #undef CYASSL_DER_LOAD
- #endif
-
- #if (SSL_CFG_DTLS_EN == DEF_ENABLED)
- #define CYASSL_DTLS
- #else
- #undef CYASSL_DTLS
- #endif
-
- #if (SSL_CFG_CALLBACKS_EN == DEF_ENABLED)
- #define CYASSL_CALLBACKS
- #else
- #undef CYASSL_CALLBACKS
- #endif
-
- #if (SSL_CFG_FAST_MATH_EN == DEF_ENABLED)
- #define USE_FAST_MATH
- #else
- #undef USE_FAST_MATH
- #endif
-
- #if (SSL_CFG_TFM_TIMING_RESISTANT_EN == DEF_ENABLED)
- #define TFM_TIMING_RESISTANT
- #else
- #undef TFM_TIMING_RESISTANT
- #endif
-
-#endif /* MICRIUM */
-
-
-#ifdef CYASSL_QL
- #ifndef CYASSL_SEP
- #define CYASSL_SEP
- #endif
- #ifndef OPENSSL_EXTRA
- #define OPENSSL_EXTRA
- #endif
- #ifndef SESSION_CERTS
- #define SESSION_CERTS
- #endif
- #ifndef HAVE_AESCCM
- #define HAVE_AESCCM
- #endif
- #ifndef ATOMIC_USER
- #define ATOMIC_USER
- #endif
- #ifndef CYASSL_DER_LOAD
- #define CYASSL_DER_LOAD
- #endif
- #ifndef KEEP_PEER_CERT
- #define KEEP_PEER_CERT
- #endif
- #ifndef HAVE_ECC
- #define HAVE_ECC
- #endif
- #ifndef SESSION_INDEX
- #define SESSION_INDEX
- #endif
-#endif /* CYASSL_QL */
-
-
-#if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \
- !defined(CYASSL_LEANPSK) && !defined(NO_CYASSL_MEMORY)
- #define USE_CYASSL_MEMORY
-#endif
-
-
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS)
- #undef KEEP_PEER_CERT
- #define KEEP_PEER_CERT
-#endif
-
-
-/* stream ciphers except arc4 need 32bit alignment, intel ok without */
-#ifndef XSTREAM_ALIGNMENT
- #if defined(__x86_64__) || defined(__ia64__) || defined(__i386__)
- #define NO_XSTREAM_ALIGNMENT
- #else
- #define XSTREAM_ALIGNMENT
- #endif
-#endif
-
-
-/* FreeScale MMCAU hardware crypto has 4 byte alignment */
-#ifdef FREESCALE_MMCAU
- #define CYASSL_MMCAU_ALIGNMENT 4
-#endif
-
-/* if using hardware crypto and have alignment requirements, specify the
- requirement here. The record header of SSL/TLS will prvent easy alignment.
- This hint tries to help as much as possible. */
-#ifndef CYASSL_GENERAL_ALIGNMENT
- #ifdef CYASSL_AESNI
- #define CYASSL_GENERAL_ALIGNMENT 16
- #elif defined(XSTREAM_ALIGNMENT)
- #define CYASSL_GENERAL_ALIGNMENT 4
- #elif defined(FREESCALE_MMCAU)
- #define CYASSL_GENERAL_ALIGNMENT CYASSL_MMCAU_ALIGNMENT
- #else
- #define CYASSL_GENERAL_ALIGNMENT 0
- #endif
-#endif
-
-
-#ifdef __INTEL_COMPILER
- #pragma warning(disable:2259) /* explicit casts to smaller sizes, disable */
-#endif
-
-
-/* Place any other flags or defines here */
-
-
-#ifdef __cplusplus
- } /* extern "C" */
-#endif
-
-
-#endif /* CTAO_CRYPT_SETTINGS_H */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/settings_comp.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/settings_comp.h
deleted file mode 100644
index c886d8e62..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/settings_comp.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* settings_comp.h
- *
- * Copyright (C) 2006-2020 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 CTAO_CRYPT_SETTINGS_C_H
-#define CTAO_CRYPT_SETTINGS_C_H
-
-
-/* since fips overrides rsa.h map compatibility here */
-#if !defined(NO_RSA)
- #ifdef WOLFSSL_KEY_GEN
- #define RsaKeyToDer wc_RsaKeyToDer
- #endif
-
- #define RsaPrivateKeyDecode wc_RsaPrivateKeyDecode
- #define RsaPublicKeyDecode wc_RsaPublicKeyDecode
- #define RsaPublicKeyDecodeRaw wc_RsaPublicKeyDecodeRaw
-#endif /* have rsa and HAVE_FIPS */
-
-/* Macro redefinitions for compatibility */
-#ifdef HAVE_NTRU
- #define MakeNtruCert wc_MakeNtruCert
-#endif
-#if defined(WOLFSSL_SHA512) && !defined(CYASSL_SHA512)
- #define CYASSL_SHA512
-#endif
-#if defined(WOLFSSL_SHA384) && !defined(CYASSL_SHA384)
- #define CYASSL_SHA384
-#endif
-#if defined(WOLFSSL_LEANPSK) && !defined(CYASSL_LEANPSK)
- #define CYASSL_LEANPSK
-#endif
-#if defined(NO_WOLFSSL_MEMORY) && !defined(NO_CYASSL_MEMORY)
- #define NO_CYASSL_MEMORY
-#endif
-#if defined(WOLFSSL_KEY_GEN) && !defined(CYASSL_KEY_GEN)
- #define CYASSL_KEY_GEN
-#endif
-
-/* AES */
-#if defined(WOLFSSL_AES_DIRECT) && !defined(CYASSL_AES_DIRECT)
- #define CYASSL_AES_DIRECT
-#endif
-#if defined(WOLFSSL_AES_COUNTER) && !defined(CYASSL_AES_COUNTER)
- #define CYASSL_AES_COUNTER
-#endif
-
-/* DES */
-#if defined(WOLFSSL_DES_ECB) && !defined(CYASSL_DES_ECB)
- #define CYASSL_DES_ECB
-#endif
-
-#endif /* CTAO_CRYPT_SETTINGS_C_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/sha.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/sha.h
deleted file mode 100644
index 92c8e33ad..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/sha.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* sha.h
- *
- * Copyright (C) 2006-2020 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 NO_SHA
-
-#ifndef CTAO_CRYPT_SHA_H
-#define CTAO_CRYPT_SHA_H
-
-#include <wolfssl/wolfcrypt/sha.h>
-#define InitSha wc_InitSha
-#define ShaUpdate wc_ShaUpdate
-#define ShaFinal wc_ShaFinal
-#define ShaHash wc_ShaHash
-
-#endif /* CTAO_CRYPT_SHA_H */
-#endif /* NO_SHA */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/sha256.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/sha256.h
deleted file mode 100644
index 000e834bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/sha256.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* sha256.h
- *
- * Copyright (C) 2006-2020 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 NO_SHA256
-
-#ifndef CTAO_CRYPT_SHA256_H
-#define CTAO_CRYPT_SHA256_H
-
-#include <wolfssl/wolfcrypt/sha256.h>
-#define InitSha256 wc_InitSha256
-#define Sha256Update wc_Sha256Update
-#define Sha256Final wc_Sha256Final
-#define Sha256Hash wc_Sha256Hash
-
-#ifdef WOLFSSL_SHA224
- #define InitSha224 wc_InitSha224
- #define Sha224Update wc_Sha224Update
- #define Sha224Final wc_Sha224Final
- #define Sha224Hash wc_Sha224Hash
-#endif
-
-#endif /* CTAO_CRYPT_SHA256_H */
-#endif /* NO_SHA256 */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/sha512.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/sha512.h
deleted file mode 100644
index 39c634235..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/sha512.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* sha512.h
- *
- * Copyright (C) 2006-2020 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 CTAO_CRYPT_SHA512_H
-#define CTAO_CRYPT_SHA512_H
-
-#include <wolfssl/wolfcrypt/sha512.h>
-#define InitSha512 wc_InitSha512
-#define Sha512Update wc_Sha512Update
-#define Sha512Final wc_Sha512Final
-#define Sha512Hash wc_Sha512Hash
-
-#if defined(WOLFSSL_SHA384) || defined(HAVE_AESGCM)
- #define InitSha384 wc_InitSha384
- #define Sha384Update wc_Sha384Update
- #define Sha384Final wc_Sha384Final
- #define Sha384Hash wc_Sha384Hash
-#endif /* WOLFSSL_SHA384 */
-
-#endif /* CTAO_CRYPT_SHA512_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/tfm.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/tfm.h
deleted file mode 100644
index 5eba3d339..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/tfm.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* tfm.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-
-/*
- * Based on public domain TomsFastMath 0.10 by Tom St Denis, tomstdenis@iahu.ca,
- * http://math.libtomcrypt.com
- */
-
-
-/**
- * Edited by Moiss Guimares (moises.guimaraes@phoebus.com.br)
- * to fit CyaSSL's needs.
- */
-
-
-#ifndef CTAO_CRYPT_TFM_H
-#define CTAO_CRYPT_TFM_H
-
-#include <wolfssl/wolfcrypt/tfm.h>
-
-#endif /* CTAO_CRYPT_TFM_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/types.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/types.h
deleted file mode 100644
index b6d97b51f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/types.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* types.h
- *
- * Copyright (C) 2006-2020 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 CTAO_CRYPT_TYPES_H
-#define CTAO_CRYPT_TYPES_H
-
-#include <cyassl/ctaocrypt/wc_port.h>
-#include <cyassl/ctaocrypt/settings.h>
-#include <wolfssl/wolfcrypt/types.h>
-
-/* compatibility macros */
-#define CYASSL_WORD_SIZE WOLFSSL_WORD_SIZE
-#define CYASSL_BIT_SIZE WOLFSSL_BIT_SIZE
-#define CYASSL_MAX_16BIT WOLFSSL_MAX_16BIT
-#define CYASSL_MAX_ERROR_SZ WOLFSSL_MAX_ERROR_SZ
-#define cyassl_word wolfssl_word
-
-#endif /* CTAO_CRYPT_TYPES_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/visibility.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/visibility.h
deleted file mode 100644
index f22c08481..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/visibility.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* visibility.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/* Visibility control macros */
-
-#ifndef CTAO_CRYPT_VISIBILITY_H
-#define CTAO_CRYPT_VISIBILITY_H
-
-/* fips compatibility @wc_fips */
-#ifndef HAVE_FIPS
- #include <wolfssl/wolfcrypt/visibility.h>
- #define CYASSL_API WOLFSSL_API
- #define CYASSL_LOCAL WOLFSSL_LOCAL
-#else
-/* CYASSL_API is used for the public API symbols.
- It either imports or exports (or does nothing for static builds)
-
- CYASSL_LOCAL is used for non-API symbols (private).
-*/
-
-#if defined(BUILDING_WOLFSSL)
- #if defined(HAVE_VISIBILITY) && HAVE_VISIBILITY
- #define CYASSL_API __attribute__ ((visibility("default")))
- #define CYASSL_LOCAL __attribute__ ((visibility("hidden")))
- #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
- #define CYASSL_API __global
- #define CYASSL_LOCAL __hidden
- #elif defined(_MSC_VER)
- #ifdef CYASSL_DLL
- #define CYASSL_API extern __declspec(dllexport)
- #else
- #define CYASSL_API
- #endif
- #define CYASSL_LOCAL
- #else
- #define CYASSL_API
- #define CYASSL_LOCAL
- #endif /* HAVE_VISIBILITY */
-#else /* BUILDING_WOLFSSL */
- #if defined(_MSC_VER)
- #ifdef CYASSL_DLL
- #define CYASSL_API extern __declspec(dllimport)
- #else
- #define CYASSL_API
- #endif
- #define CYASSL_LOCAL
- #else
- #define CYASSL_API
- #define CYASSL_LOCAL
- #endif
-#endif /* BUILDING_WOLFSSL */
-#endif /* HAVE_FIPS */
-#endif /* CTAO_CRYPT_VISIBILITY_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/wc_port.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/wc_port.h
deleted file mode 100644
index 50fb90ad9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ctaocrypt/wc_port.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* port.h
- *
- * Copyright (C) 2006-2020 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 CTAO_CRYPT_PORT_H
-#define CTAO_CRYPT_PORT_H
-
-#include <cyassl/ctaocrypt/visibility.h>
-#include <wolfssl/wolfcrypt/wc_port.h>
-#define CyaSSL_Mutex wolfSSL_Mutex
-
-#endif /* CTAO_CRYPT_PORT_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/error-ssl.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/error-ssl.h
deleted file mode 100644
index e5189fac4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/error-ssl.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* error-ssl.h
- *
- * Copyright (C) 2006-2020 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 <wolfssl/error-ssl.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/include.am b/FreeRTOS-Plus/Source/WolfSSL/cyassl/include.am
deleted file mode 100644
index b4c7e0436..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/include.am
+++ /dev/null
@@ -1,31 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-include cyassl/ctaocrypt/include.am
-include cyassl/openssl/include.am
-
-EXTRA_DIST+= cyassl/sniffer_error.rc
-
-nobase_include_HEADERS+= \
- cyassl/error-ssl.h \
- cyassl/ssl.h \
- cyassl/sniffer_error.h \
- cyassl/sniffer.h \
- cyassl/callbacks.h \
- cyassl/certs_test.h \
- cyassl/test.h \
- cyassl/version.h \
- cyassl/ocsp.h \
- cyassl/crl.h
-
-noinst_HEADERS+= \
- cyassl/internal.h
-
-# For distro build don't install options.h.
-# It depends on the architecture and conflicts with Multi-Arch.
-if BUILD_DISTRO
-noinst_HEADERS+= cyassl/options.h
-else
-nobase_include_HEADERS+= cyassl/options.h
-endif
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/internal.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/internal.h
deleted file mode 100644
index 80d451e98..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/internal.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* internal.h
- *
- * Copyright (C) 2006-2020 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 <wolfssl/internal.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ocsp.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ocsp.h
deleted file mode 100644
index e06a1b53c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ocsp.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* ocsp.h
- *
- * Copyright (C) 2006-2020 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 <wolfssl/ocsp.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/asn1.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/asn1.h
deleted file mode 100644
index 35be23f7d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/asn1.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* asn1.h for openssl */
-
-#include <wolfssl/openssl/asn1.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/bio.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/bio.h
deleted file mode 100644
index 8f5298355..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/bio.h
+++ /dev/null
@@ -1,4 +0,0 @@
-/* bio.h for openssl */
-
-#include <wolfssl/openssl/bio.h>
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/bn.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/bn.h
deleted file mode 100644
index e14f4e28c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/bn.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* bn.h for openssl */
-
-#include <wolfssl/openssl/bn.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/conf.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/conf.h
deleted file mode 100644
index 4005ea9d7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/conf.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* conf.h for openssl */
-
-#include <wolfssl/openssl/conf.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/crypto.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/crypto.h
deleted file mode 100644
index 32e110826..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/crypto.h
+++ /dev/null
@@ -1,4 +0,0 @@
-/* crypto.h for openSSL */
-
-#include <wolfssl/openssl/crypto.h>
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/des.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/des.h
deleted file mode 100644
index de4676402..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/des.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* des.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-
-/* des.h defines mini des openssl compatibility layer
- *
- */
-
-#include <wolfssl/openssl/des.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/dh.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/dh.h
deleted file mode 100644
index 6fd8e36e9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/dh.h
+++ /dev/null
@@ -1,4 +0,0 @@
-/* dh.h for openSSL */
-
-
-#include <wolfssl/openssl/dh.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/dsa.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/dsa.h
deleted file mode 100644
index 39ddf8ce7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/dsa.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* dsa.h for openSSL */
-
-#ifndef CYASSL_OPENSSL_DSA
-#define CYASSL_OPENSSL_DSA
-
-#define CyaSSL_DSA_LoadDer wolfSSL_DSA_LoadDer
-#define CyaSSL_DSA_do_sign wolfSSL_DSA_do_sign
-
-#include <cyassl/openssl/ssl.h>
-#include <wolfssl/openssl/dsa.h>
-#endif
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ec.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ec.h
deleted file mode 100644
index 1ce8aa948..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ec.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* ec.h for openssl */
-
-#include <wolfssl/openssl/ec.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ec25519.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ec25519.h
deleted file mode 100644
index 6ee894506..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ec25519.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* ec25519.h */
-
-#include <wolfssl/openssl/ec25519.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ec448.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ec448.h
deleted file mode 100644
index c3fe4c3ab..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ec448.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* ec448.h */
-
-#include <wolfssl/openssl/ec448.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ecdh.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ecdh.h
deleted file mode 100644
index b774bf0da..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ecdh.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* ecdh.h for openssl */
-
-#include <wolfssl/openssl/ecdh.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ecdsa.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ecdsa.h
deleted file mode 100644
index 9a1c02b35..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ecdsa.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* ecdsa.h for openssl */
-
-#include <wolfssl/openssl/ecdsa.h> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ed25519.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ed25519.h
deleted file mode 100644
index 240cbcaaf..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ed25519.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* ed25519.h */
-
-#include <wolfssl/openssl/ed25519.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ed448.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ed448.h
deleted file mode 100644
index ebb9c6194..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ed448.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* ed448.h */
-
-#include <wolfssl/openssl/ed448.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/engine.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/engine.h
deleted file mode 100644
index fcce4bdb9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/engine.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/* engine.h for libcurl */
-
-#include <wolfssl/openssl/engine.h>
-
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/err.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/err.h
deleted file mode 100644
index 361111708..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/err.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* err.h for openssl */
-
-#include <wolfssl/openssl/err.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/evp.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/evp.h
deleted file mode 100644
index b7ad1f50c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/evp.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* evp.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-
-/* evp.h defines mini evp openssl compatibility layer
- *
- */
-
-#ifndef CYASSL_OPENSSL_EVP
-#define CYASSL_OPENSSL_EVP
-
-#define CyaSSL_StoreExternalIV wolfSSL_StoreExternalIV
-#define CyaSSL_SetInternalIV wolfSSL_SetInternalIV
-#define CYASSL_EVP_MD WOLFSSL_EVP_MD
-#define CyaSSL_EVP_X_STATE wolfSSL_EVP_X_STATE
-#define CyaSSL_EVP_X_STATE_LEN wolfSSL_EVP_X_STATE_LEN
-#define CyaSSL_3des_iv wolfSSL_3des_iv
-#define CyaSSL_aes_ctr_iv wolfSSL_aes_ctr_iv
-
-#include <wolfssl/openssl/evp.h>
-#endif
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/hmac.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/hmac.h
deleted file mode 100644
index 6dd377994..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/hmac.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* hmac.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-
-/* hmac.h defines mini hamc openssl compatibility layer
- *
- */
-
-#include <wolfssl/openssl/hmac.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/include.am b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/include.am
deleted file mode 100644
index a1b25c6b6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/include.am
+++ /dev/null
@@ -1,42 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-
-nobase_include_HEADERS+= \
- cyassl/openssl/asn1.h \
- cyassl/openssl/bio.h \
- cyassl/openssl/bn.h \
- cyassl/openssl/conf.h \
- cyassl/openssl/crypto.h \
- cyassl/openssl/des.h \
- cyassl/openssl/dh.h \
- cyassl/openssl/dsa.h \
- cyassl/openssl/ecdsa.h \
- cyassl/openssl/ecdh.h \
- cyassl/openssl/ec.h \
- cyassl/openssl/ec25519.h \
- cyassl/openssl/ed25519.h \
- cyassl/openssl/ec448.h \
- cyassl/openssl/ed448.h \
- cyassl/openssl/engine.h \
- cyassl/openssl/err.h \
- cyassl/openssl/evp.h \
- cyassl/openssl/hmac.h \
- cyassl/openssl/lhash.h \
- cyassl/openssl/md4.h \
- cyassl/openssl/md5.h \
- cyassl/openssl/ripemd.h \
- cyassl/openssl/ocsp.h \
- cyassl/openssl/opensslconf.h \
- cyassl/openssl/opensslv.h \
- cyassl/openssl/ossl_typ.h \
- cyassl/openssl/pem.h \
- cyassl/openssl/pkcs12.h \
- cyassl/openssl/rand.h \
- cyassl/openssl/rsa.h \
- cyassl/openssl/sha.h \
- cyassl/openssl/ssl23.h \
- cyassl/openssl/ssl.h \
- cyassl/openssl/stack.h \
- cyassl/openssl/ui.h \
- cyassl/openssl/x509.h \
- cyassl/openssl/x509v3.h
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/lhash.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/lhash.h
deleted file mode 100644
index 6285f6a5f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/lhash.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* lhash.h for openSSL */
-
-#include <wolfssl/openssl/lhash.h> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/md4.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/md4.h
deleted file mode 100644
index fb0d437ab..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/md4.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* md4.h for libcurl */
-
-#include <wolfssl/openssl/md4.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/md5.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/md5.h
deleted file mode 100644
index f3dd4e4b2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/md5.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/* md5.h for openssl */
-
-
-#include <wolfssl/openssl/md5.h>
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ocsp.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ocsp.h
deleted file mode 100644
index 8c0f46805..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ocsp.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* ocsp.h for libcurl */
-
-#include <wolfssl/openssl/ocsp.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/opensslconf.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/opensslconf.h
deleted file mode 100644
index 7f21cd950..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/opensslconf.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* opensslconf.h for openSSL */
-
-#include <wolfssl/openssl/opensslconf.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/opensslv.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/opensslv.h
deleted file mode 100644
index d119f82e1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/opensslv.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* opensslv.h compatibility */
-
-#include <wolfssl/openssl/opensslv.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ossl_typ.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ossl_typ.h
deleted file mode 100644
index 5e6e627de..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ossl_typ.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* ossl_typ.h for openssl */
-
-#include <wolfssl/openssl/ossl_typ.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/pem.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/pem.h
deleted file mode 100644
index a07b91203..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/pem.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* pem.h for openssl */
-
-#include <wolfssl/openssl/pem.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/pkcs12.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/pkcs12.h
deleted file mode 100644
index 1fb089fbb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/pkcs12.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* pkcs12.h for openssl */
-
-#include <wolfssl/openssl/pkcs12.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/rand.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/rand.h
deleted file mode 100644
index 5bd77b6c6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/rand.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* rand.h for openSSL */
-
-#include <wolfssl/openssl/ssl.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ripemd.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ripemd.h
deleted file mode 100644
index b25de783e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ripemd.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* ripemd.h for openssl */
-
-#include <wolfssl/openssl/ripemd.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/rsa.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/rsa.h
deleted file mode 100644
index f4f24b825..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/rsa.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* rsa.h for openSSL */
-
-#ifndef CYASSL_OPENSSL_RSA
-#define CYASSL_OPENSSL_RSA
-
-#define CyaSSL_RSA_GenAdd wolfSSL_RSA_GenAdd
-#define CyaSSL_RSA_LoadDer wolfSSL_RSA_LoadDer
-
-#include <cyassl/openssl/ssl.h>
-#include <wolfssl/openssl/rsa.h>
-#endif
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/sha.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/sha.h
deleted file mode 100644
index ced3ca19b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/sha.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* sha.h for openssl */
-
-#include <wolfssl/openssl/sha.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ssl.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ssl.h
deleted file mode 100644
index 3896292c1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ssl.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* ssl.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-
-/* ssl.h defines openssl compatibility layer
- *
- */
-#ifndef CYASSL_OPENSSL_H_
-#define CYASSL_OPENSSL_H_
-
-#include <cyassl/ssl.h>
-#include <wolfssl/openssl/ssl.h>
-
-#endif
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ssl23.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ssl23.h
deleted file mode 100644
index a91524b9b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ssl23.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* ssl23.h for openssl */
-
-#include <wolfssl/openssl/ssl23.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/stack.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/stack.h
deleted file mode 100644
index 831502f50..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/stack.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* stack.h for openssl */
-
-#include <wolfssl/openssl/stack.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ui.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ui.h
deleted file mode 100644
index b1f4042e2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/ui.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* ui.h for openssl */
-
-#include <wolfssl/openssl/ui.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/x509.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/x509.h
deleted file mode 100644
index 9d1300284..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/x509.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* x509.h for openssl */
-
-#include <wolfssl/openssl/ssl.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/x509v3.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/x509v3.h
deleted file mode 100644
index 2a5240d99..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/openssl/x509v3.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* x509v3.h for openssl */
-
-#include <wolfssl/openssl/x509v3.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/options.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/options.h
deleted file mode 100644
index ff991bdb5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/options.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* options.h.in
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/* default blank options for autoconf */
-
-#ifndef CYASSL_OPTIONS_H
-#define CYASSL_OPTIONS_H
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* CYASSL_OPTIONS_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/options.h.in b/FreeRTOS-Plus/Source/WolfSSL/cyassl/options.h.in
deleted file mode 100644
index ff991bdb5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/options.h.in
+++ /dev/null
@@ -1,40 +0,0 @@
-/* options.h.in
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/* default blank options for autoconf */
-
-#ifndef CYASSL_OPTIONS_H
-#define CYASSL_OPTIONS_H
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* CYASSL_OPTIONS_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/sniffer.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/sniffer.h
deleted file mode 100644
index 629785591..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/sniffer.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* sniffer.h
- *
- * Copyright (C) 2006-2020 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 <wolfssl/sniffer.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/sniffer_error.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/sniffer_error.h
deleted file mode 100644
index 8d7e8e159..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/sniffer_error.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* sniffer_error.h
- *
- * Copyright (C) 2006-2020 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 <wolfssl/sniffer_error.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/sniffer_error.rc b/FreeRTOS-Plus/Source/WolfSSL/cyassl/sniffer_error.rc
deleted file mode 100644
index 8bcd6926c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/sniffer_error.rc
+++ /dev/null
@@ -1,93 +0,0 @@
-
-STRINGTABLE
-{
- 1, "Out of Memory"
- 2, "New SSL Sniffer Server Registered"
- 3, "Checking IP Header"
- 4, "SSL Sniffer Server Not Registered"
- 5, "Checking TCP Header"
-
- 6, "SSL Sniffer Server Port Not Registered"
- 7, "RSA Private Decrypt Error"
- 8, "RSA Private Decode Error"
- 9, "Set Cipher Spec Error"
- 10, "Server Hello Input Malformed"
-
- 11, "Couldn't Resume Session Error"
- 12, "Server Did Resumption"
- 13, "Client Hello Input Malformed"
- 14, "Client Trying to Resume"
- 15, "Handshake Input Malformed"
-
- 16, "Got Hello Verify msg"
- 17, "Got Server Hello msg"
- 18, "Got Cert Request msg"
- 19, "Got Server Key Exchange msg"
- 20, "Got Cert msg"
-
- 21, "Got Server Hello Done msg"
- 22, "Got Finished msg"
- 23, "Got Client Hello msg"
- 24, "Got Client Key Exchange msg"
- 25, "Got Cert Verify msg"
-
- 26, "Got Unknown Handshake msg"
- 27, "New SSL Sniffer Session created"
- 28, "Couldn't create new SSL"
- 29, "Got a Packet to decode"
- 30, "No data present"
-
- 31, "Session Not Found"
- 32, "Got an Old Client Hello msg"
- 33, "Old Client Hello Input Malformed"
- 34, "Old Client Hello OK"
- 35, "Bad Old Client Hello"
-
- 36, "Bad Record Header"
- 37, "Record Header Input Malformed"
- 38, "Got a HandShake msg"
- 39, "Bad HandShake msg"
- 40, "Got a Change Cipher Spec msg"
-
- 41, "Got Application Data msg"
- 42, "Bad Application Data"
- 43, "Got an Alert msg"
- 44, "Another msg to Process"
- 45, "Removing Session From Table"
-
- 46, "Bad Key File"
- 47, "Wrong IP Version"
- 48, "Wrong Protocol type"
- 49, "Packet Short for header processing"
- 50, "Got Unknown Record Type"
-
- 51, "Can't Open Trace File"
- 52, "Session in Fatal Error State"
- 53, "Partial SSL record received"
- 54, "Buffer Error, malformed input"
- 55, "Added to Partial Input"
-
- 56, "Received a Duplicate Packet"
- 57, "Received an Out of Order Packet"
- 58, "Received an Overlap Duplicate Packet"
- 59, "Received an Overlap Reassembly Begin Duplicate Packet"
- 60, "Received an Overlap Reassembly End Duplicate Packet"
-
- 61, "Missed the Client Hello Entirely"
- 62, "Got Hello Request msg"
- 63, "Got Session Ticket msg"
- 64, "Bad Input"
- 65, "Bad Decrypt Type"
-
- 66, "Bad Finished Message Processing"
- 67, "Bad Compression Type"
- 68, "Bad DeriveKeys Error"
- 69, "Saw ACK for Missing Packet Error"
- 70, "Bad Decrypt Operation"
-
- 71, "Decrypt Keys Not Set Up"
- 72, "Late Key Load Error"
- 73, "Got Certificate Status msg"
- 74, "RSA Key Missing Error"
-}
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ssl.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/ssl.h
deleted file mode 100644
index 5d36b366e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/ssl.h
+++ /dev/null
@@ -1,721 +0,0 @@
-/* ssl.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/*
- * ssl.h makes wolfssl backwards compatible with cyassl
- */
-
-#ifndef WOLFSSL_CYASSL_H_
-#define WOLFSSL_CYASSL_H_
-/*
- * Name change
- * include the new ssl.h
- */
-#include <wolfssl/ssl.h>
-#include <cyassl/ctaocrypt/types.h>
-#include <cyassl/ctaocrypt/settings.h>
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#ifdef _WIN32
- /* wincrypt.h clashes */
- #undef X509_NAME
-#endif
-
-#ifdef CYASSL_TIRTOS
- #undef CYASSL_TIRTOS
- #define CYASSL_TIRTOS WOLFSSL_TIRTOS
-#endif
-
-#define CYASSL WOLFSSL
-#define DEBUG_CYASSL DEBUG_WOLFSSL
-#define CYASSL_CTX WOLFSSL_CTX
-#define CYASSL_METHOD WOLFSSL_METHOD
-#define CYASSL_SESSION WOLFSSL_SESSION
-
-#define CYASSL_X509 WOLFSSL_X509
-#define CYASSL_X509_NAME WOLFSSL_X509_NAME
-#define CYASSL_X509_CHAIN WOLFSSL_X509_CHAIN
-#ifdef WOLFSSL_SNIFFER
- #define CYASSL_SNIFFER WOLFSSL_SNIFFER
-#endif
-
-/* redeclare guard */
-#define CYASSL_TYPES_DEFINED WOLFSSL_TYPES_DEFINED
-
-/* legacy defines */
-#define yasslIP wolfSSLIP /**/
-#define yasslPort wolfSSLPort /**/
-
-/* cyassl/ssl.h (structs) */
-#define CYASSL_RSA WOLFSSL_RSA
-#define CYASSL_DSA WOLFSSL_DSA
-#define CYASSL_BIO WOLFSSL_BIO
-#define CYASSL_CIPHER WOLFSSL_CIPHER
-#define CYASSL_MD4_CTX WOLFSSL_MD4_CTX
-#define CYASSL_MFL_2_9 WOLFSSL_MFL_2_9 /**/
-#define CYASSL_MFL_2_13 WOLFSSL_MFL_2_13 /**/
-#define CYASSL_EVP_PKEY WOLFSSL_EVP_PKEY
-#define CYASSL_X509_CRL WOLFSSL_X509_CRL
-#define CYASSL_ASN1_TIME WOLFSSL_ASN1_TIME
-#define CYASSL_BIO_METHOD WOLFSSL_BIO_METHOD
-#define CYASSL_X509_STORE WOLFSSL_X509_STORE
-#define CYASSL_X509_OBJECT WOLFSSL_X509_OBJECT
-#define CYASSL_X509_LOOKUP WOLFSSL_X509_LOOKUP
-#define CYASSL_ASN1_OBJECT WOLFSSL_ASN1_OBJECT
-#define CYASSL_ASN1_STRING WOLFSSL_ASN1_STRING
-#define CYASSL_COMP_METHOD WOLFSSL_COMP_METHOD
-#define CYASSL_CRL_CHECKALL WOLFSSL_CRL_CHECKALL
-#define CYASSL_ASN1_INTEGER WOLFSSL_ASN1_INTEGER
-#define CYASSL_X509_REVOKED WOLFSSL_X509_REVOKED
-#define CYASSL_dynlock_value WOLFSSL_dynlock_value
-#define CYASSL_X509_EXTENSION WOLFSSL_X509_EXTENSION
-#define CYASSL_X509_STORE_CTX WOLFSSL_X509_STORE_CTX
-#define CYASSL_X509_LOOKUP_METHOD WOLFSSL_X509_LOOKUP_METHOD
-
-#define CyaSSL_LoadCRL wolfSSL_LoadCRL
-#define CyaSSL_EnableCRL wolfSSL_EnableCRL
-#define CyaSSL_SetCRL_Cb wolfSSL_SetCRL_Cb
-
-/* cyassl/test.h */
-#ifdef CyaSSL_TEST_H
- #define CYASSL_THREAD WOLFSSL_THREAD
-#endif
-
-/* src/ssl.c */
-#define CYASSL_CRL WOLFSSL_CRL
-#define CYASSL_SSLV3 WOLFSSL_SSLV3
-#define CYASSL_TLSV1 WOLFSSL_TLSV1
-#define CYASSL_TLSV1_1 WOLFSSL_TLSV1_1
-#define CYASSL_TLSV1_2 WOLFSSL_TLSV1_2
-#define CYASSL_USER_CA WOLFSSL_USER_CA
-#define CYASSL_CLIENT_END WOLFSSL_CLIENT_END
-#define CYASSL_CERT_MANAGER WOLFSSL_CERT_MANAGER
-#define MAX_CYASSL_FILE_SIZE MAX_WOLFSSL_FILE_SIZE
-
-#define CyaSSL_get_cipher wolfSSL_get_cipher
-#define CyaSSL_get_ciphers wolfSSL_get_ciphers
-#define CyaSSL_KeyPemToDer wolfSSL_KeyPemToDer
-#define CyaSSL_get_version wolfSSL_get_version
-#define CyaSSL_SetServerID wolfSSL_SetServerID
-#define CyaSSL_use_old_poly wolfSSL_use_old_poly
-#define CyaSSL_SetCertCbCtx wolfSSL_SetCertCbCtx
-#define CyaSSL_CertPemToDer wolfSSL_CertPemToDer
-#define CyaSSL_get_shutdown wolfSSL_get_shutdown
-#define CyaSSL_SetMinVersion wolfSSL_SetMinVersion
-#define CyaSSL_CTX_UnloadCAs wolfSSL_CTX_UnloadCAs
-#define CyaSSL_session_reused wolfSSL_session_reused
-#define CyaSSL_UnloadCertsKeys wolfSSL_UnloadCertsKeys
-#define CyaSSL_CIPHER_get_name wolfSSL_CIPHER_get_name
-#define CyaSSL_is_init_finished wolfSSL_is_init_finished
-#define CyaSSL_get_alert_history wolfSSL_get_alert_history
-#define CyaSSL_get_current_cipher wolfSSL_get_current_cipher
-#define CyaSSL_CertManagerUnloadCAs wolfSSL_CertManagerUnloadCAs
-#define CyaSSL_CertManagerEnableOCSP wolfSSL_CertManagerEnableOCSP
-#define CyaSSL_CTX_check_private_key wolfSSL_CTX_check_private_key
-#define CyaSSL_CertManagerDisableOCSP wolfSSL_CertManagerDisableOCSP
-#define CyaSSL_get_current_cipher_suite wolfSSL_get_current_cipher_suite
-#define CyaSSL_CTX_load_verify_locations wolfSSL_CTX_load_verify_locations
-#define CyaSSL_CTX_set_default_passwd_cb wolfSSL_CTX_set_default_passwd_cb
-
-#define CyaSSL_save_session_cache wolfSSL_save_session_cache
-#define CyaSSL_restore_session_cache wolfSSL_restore_session_cache
-#define CyaSSL_memsave_session_cache wolfSSL_memsave_session_cache
-#define CyaSSL_memrestore_session_cache wolfSSL_memrestore_session_cache
-#define CyaSSL_get_session_cache_memsize wolfSSL_get_session_cache_memsize
-
-/* certificate cache persistence, uses ctx since certs are per ctx */
-#define CyaSSL_CTX_save_cert_cache wolfSSL_CTX_save_cert_cache
-#define CyaSSL_CTX_restore_cert_cache wolfSSL_CTX_restore_cert_cache
-#define CyaSSL_CTX_memsave_cert_cache wolfSSL_CTX_memsave_cert_cache
-#define CyaSSL_CTX_memrestore_cert_cache wolfSSL_CTX_memrestore_cert_cache
-#define CyaSSL_CTX_get_cert_cache_memsize wolfSSL_CTX_get_cert_cache_memsize
-
-/* wolfSSL extensions */
-/* get wolfSSL peer X509_CHAIN */
-#define CyaSSL_get_chain_count wolfSSL_get_chain_count
-/* index cert length */
-#define CyaSSL_get_chain_length wolfSSL_get_chain_length
-/* index cert in X509 */
-#define CyaSSL_get_chain_X509 wolfSSL_get_chain_X509
-/* free X509 */
-#define CyaSSL_FreeX509 wolfSSL_FreeX509
-/* get index cert in PEM */
-#define CyaSSL_X509_get_subjectCN wolfSSL_X509_get_subjectCN
-#define CyaSSL_X509_get_der wolfSSL_X509_get_der
-#define CyaSSL_X509_notBefore wolfSSL_X509_notBefore
-#define CyaSSL_X509_notAfter wolfSSL_X509_notAfter
-#define CyaSSL_X509_get_notBefore wolfSSL_X509_get_notBefore
-#define CyaSSL_X509_get_notAfter wolfSSL_X509_get_notAfter
-#define CyaSSL_X509_version wolfSSL_X509_version
-
-#define CyaSSL_cmp_peer_cert_to_file wolfSSL_cmp_peer_cert_to_file
-
-#define CyaSSL_X509_get_next_altname wolfSSL_X509_get_next_altname
-
-#define CyaSSL_X509_d2i wolfSSL_X509_d2i
-#ifndef NO_FILESYSTEM
- #ifndef NO_STDIO_FILESYSTEM
- #define CyaSSL_X509_d2i_fp wolfSSL_X509_d2i_fp
- #endif
-#define CyaSSL_X509_load_certificate_file wolfSSL_X509_load_certificate_file
-#endif
-
-#ifdef WOLFSSL_SEP
-#define CyaSSL_X509_get_device_type wolfSSL_X509_get_device_type
-#define CyaSSL_X509_get_hw_type wolfSSL_X509_get_hw_type
-#define CyaSSL_X509_get_hw_serial_number wolfSSL_X509_get_hw_serial_number
-#endif
-
-#define CyaSSL_CTX_SetGenCookie wolfSSL_CTX_SetGenCookie
-#define CyaSSL_SetCookieCtx wolfSSL_SetCookieCtx
-#define CyaSSL_GetCookieCtx wolfSSL_GetCookieCtx
-#define CyaSSL_ERR_get_error_line_data wolfSSL_ERR_get_error_line_data
-#define CyaSSL_ERR_get_error wolfSSL_ERR_get_error
-#define CyaSSL_ERR_clear_error wolfSSL_ERR_clear_error
-#define CyaSSL_RAND_status wolfSSL_RAND_status
-#define CyaSSL_RAND_bytes wolfSSL_RAND_bytes
-#define CyaSSL_CTX_set_options wolfSSL_CTX_set_options
-#define CyaSSL_ERR_free_strings wolfSSL_ERR_free_strings
-#define CyaSSL_ERR_remove_state wolfSSL_ERR_remove_state
-#define CyaSSL_EVP_cleanup wolfSSL_EVP_cleanup
-#define CyaSSL_cleanup_all_ex_data wolfSSL_cleanup_all_ex_data
-#define CyaSSL_CTX_set_mode wolfSSL_CTX_set_mode
-#define CyaSSL_CTX_get_mode wolfSSL_CTX_get_mode
-#define CyaSSL_CTX_set_default_read_ahead wolfSSL_CTX_set_default_read_ahead
-#define CyaSSL_CTX_sess_set_cache_size wolfSSL_CTX_sess_set_cache_size
-#define CyaSSL_CTX_set_default_verify_paths wolfSSL_CTX_set_default_verify_paths
-#define CyaSSL_CTX_set_session_id_context wolfSSL_CTX_set_session_id_context
-#define CyaSSL_get_peer_certificate wolfSSL_get_peer_certificate
-#define CyaSSL_BIO_printf wolfSSL_BIO_printf
-#define CyaSSL_ASN1_UTCTIME_print wolfSSL_ASN1_UTCTIME_print
-#define CyaSSL_sk_num wolfSSL_sk_num
-#define CyaSSL_sk_value wolfSSL_sk_value
-
-/* stunnel 4.28 needs */
-#define CyaSSL_CTX_get_ex_data wolfSSL_CTX_get_ex_data
-#define CyaSSL_CTX_set_ex_data wolfSSL_CTX_set_ex_data
-#define CyaSSL_CTX_sess_set_get_cb wolfSSL_CTX_sess_set_get_cb
-#define CyaSSL_CTX_sess_set_new_cb wolfSSL_CTX_sess_set_new_cb
-#define CyaSSL_CTX_sess_set_remove_cb wolfSSL_CTX_sess_set_remove_cb
-
-#define CyaSSL_i2d_SSL_SESSION wolfSSL_i2d_SSL_SESSION
-#define CyaSSL_d2i_SSL_SESSION wolfSSL_d2i_SSL_SESSION
-
-#define CyaSSL_SESSION_get_timeout wolfSSL_SESSION_get_timeout
-#define CyaSSL_SESSION_get_time wolfSSL_SESSION_get_time
-#define CyaSSL_CTX_get_ex_new_index wolfSSL_CTX_get_ex_new_index
-
-
-/* wolfio.c */
-#define CYASSL_CBIO_ERR_ISR WOLFSSL_CBIO_ERR_ISR
-#define CYASSL_CBIO_ERR_TIMEOUT WOLFSSL_CBIO_ERR_TIMEOUT
-#define CYASSL_CBIO_ERR_GENERAL WOLFSSL_CBIO_ERR_GENERAL
-#define CYASSL_CBIO_ERR_CONN_RST WOLFSSL_CBIO_ERR_CONN_RST
-#define CYASSL_CBIO_ERR_WANT_READ WOLFSSL_CBIO_ERR_WANT_READ
-#define CYASSL_CBIO_ERR_WANT_WRITE WOLFSSL_CBIO_ERR_WANT_WRITE
-#define CYASSL_CBIO_ERR_CONN_CLOSE WOLFSSL_CBIO_ERR_CONN_CLOSE
-
-#define CyaSSL_GetIOReadCtx wolfSSL_GetIOReadCtx
-#define CyaSSL_GetIOWriteCtx wolfSSL_GetIOWriteCtx
-
-/* src/tls.c */
-#define CYASSL_SERVER_END WOLFSSL_SERVER_END
-#define CYASSL_TLS_HMAC_INNER_SZ WOLFSSL_TLS_HMAC_INNER_SZ
-
-#define CyaSSL_DeriveTlsKeys wolfSSL_DeriveTlsKeys
-#define CyaSSL_make_eap_keys wolfSSL_make_eap_keys
-#define CyaSSL_MakeTlsMasterSecret wolfSSL_MakeTlsMasterSecret
-
-/* src/internal.c */
-#define CYASSL_CHAIN_CA WOLFSSL_CHAIN_CA
-#define CYASSL_ALERT_HISTORY WOLFSSL_ALERT_HISTORY
-#define CYASSL_SESSION_TIMEOUT WOLFSSL_SESSION_TIMEOUT
-#define CYASSL_CBIO_ERR_CONN_RST WOLFSSL_CBIO_ERR_CONN_RST
-
-#define cyassl_rc4 wolfssl_rc4
-#define cyassl_aes wolfssl_aes
-#define cyassl_chacha wolfssl_chacha
-#define CyaSSL_ERR_reason_error_string wolfSSL_ERR_reason_error_string
-
-#define CyaSSL_set_ex_data wolfSSL_set_ex_data
-#define CyaSSL_get_shutdown wolfSSL_get_shutdown
-#define CyaSSL_set_rfd wolfSSL_set_rfd
-#define CyaSSL_set_wfd wolfSSL_set_wfd
-#define CyaSSL_set_shutdown wolfSSL_set_shutdown
-#define CyaSSL_set_session_id_context wolfSSL_set_session_id_context
-#define CyaSSL_set_connect_state wolfSSL_set_connect_state
-#define CyaSSL_set_accept_state wolfSSL_set_accept_state
-#define CyaSSL_session_reused wolfSSL_session_reused
-#define CyaSSL_SESSION_free wolfSSL_SESSION_free
-#define CyaSSL_is_init_finished wolfSSL_is_init_finished
-
-#define CyaSSL_get_version wolfSSL_get_version
-#define CyaSSL_get_current_cipher_suite wolfSSL_get_current_cipher_suite
-#define CyaSSL_get_current_cipher wolfSSL_get_current_cipher
-#define CyaSSL_CIPHER_description wolfSSL_CIPHER_description
-#define CyaSSL_CIPHER_get_name wolfSSL_CIPHER_get_name
-#define CyaSSL_get_cipher wolfSSL_get_cipher
-#define CyaSSL_get1_session wolfSSL_get1_session
-
-#define CyaSSL_X509_free wolfSSL_X509_free
-#define CyaSSL_OPENSSL_free wolfSSL_OPENSSL_free
-#define CyaSSL_OCSP_parse_url wolfSSL_OCSP_parse_url
-
-#define CyaSSLv23_client_method wolfSSLv23_client_method
-#define CyaSSLv2_client_method wolfSSLv2_client_method
-#define CyaSSLv2_server_method wolfSSLv2_server_method
-
-#define CyaSSL_MD4_Init wolfSSL_MD4_Init
-#define CyaSSL_MD4_Update wolfSSL_MD4_Update
-#define CyaSSL_MD4_Final wolfSSL_MD4_Final
-
-
-#define CyaSSL_BIO_new wolfSSL_BIO_new
-#define CyaSSL_BIO_free wolfSSL_BIO_free
-#define CyaSSL_BIO_free_all wolfSSL_BIO_free_all
-#define CyaSSL_BIO_read wolfSSL_BIO_read
-#define CyaSSL_BIO_write wolfSSL_BIO_write
-#define CyaSSL_BIO_push wolfSSL_BIO_push
-#define CyaSSL_BIO_pop wolfSSL_BIO_pop
-#define CyaSSL_BIO_flush wolfSSL_BIO_flush
-#define CyaSSL_BIO_pending wolfSSL_BIO_pending
-
-#define CyaSSL_BIO_f_buffer wolfSSL_BIO_f_buffer
-#define CyaSSL_BIO_set_write_buffer_size wolfSSL_BIO_set_write_buffer_size
-#define CyaSSL_BIO_f_ssl wolfSSL_BIO_f_ssl
-#define CyaSSL_BIO_new_socket wolfSSL_BIO_new_socket
-#define CyaSSL_BIO_eof wolfSSL_BIO_eof
-
-#define CyaSSL_BIO_s_mem wolfSSL_BIO_s_mem
-#define CyaSSL_BIO_f_base64 wolfSSL_BIO_f_base64
-#define CyaSSL_BIO_set_flags wolfSSL_BIO_set_flags
-#define CyaSSL_BIO_get_mem_data wolfSSL_BIO_get_mem_data
-#define CyaSSL_BIO_new_mem_buf wolfSSL_BIO_new_mem_buf
-
-
-#define CyaSSL_BIO_set_ssl wolfSSL_BIO_set_ssl
-#define CyaSSL_set_bio wolfSSL_set_bio
-
-#define CyaSSL_add_all_algorithms wolfSSL_add_all_algorithms
-#define CyaSSL_RAND_screen wolfSSL_RAND_screen
-#define CyaSSL_RAND_file_name wolfSSL_RAND_file_name
-#define CyaSSL_RAND_write_file wolfSSL_RAND_write_file
-#define CyaSSL_RAND_load_file wolfSSL_RAND_load_file
-#define CyaSSL_RAND_egd wolfSSL_RAND_egd
-#define CyaSSL_RAND_seed wolfSSL_RAND_seed
-#define CyaSSL_RAND_add wolfSSL_RAND_add
-
-#define CyaSSL_COMP_zlib wolfSSL_COMP_zlib
-#define CyaSSL_COMP_rle wolfSSL_COMP_rle
-#define CyaSSL_COMP_add_compression_method wolfSSL_COMP_add_compression_method
-#define CyaSSL_set_dynlock_create_callback wolfSSL_set_dynlock_create_callback
-#define CyaSSL_set_dynlock_lock_callback wolfSSL_set_dynlock_lock_callback
-#define CyaSSL_set_dynlock_destroy_callback wolfSSL_set_dynlock_destroy_callback
-#define CyaSSL_get_ex_new_index wolfSSL_get_ex_new_index
-#define CyaSSL_set_id_callback wolfSSL_set_id_callback
-#define CyaSSL_set_locking_callback wolfSSL_set_locking_callback
-#define CyaSSL_num_locks wolfSSL_num_locks
-
-#define CyaSSL_X509_STORE_CTX_get_current_cert wolfSSL_X509_STORE_CTX_get_current_cert
-#define CyaSSL_X509_STORE_CTX_get_error wolfSSL_X509_STORE_CTX_get_error
-#define CyaSSL_X509_STORE_CTX_get_error_depth wolfSSL_X509_STORE_CTX_get_error_depth
-
-#define CyaSSL_X509_NAME_oneline wolfSSL_X509_NAME_oneline
-#define CyaSSL_X509_get_issuer_name wolfSSL_X509_get_issuer_name
-#define CyaSSL_X509_get_subject_name wolfSSL_X509_get_subject_name
-#define CyaSSL_X509_ext_isSet_by_NID wolfSSL_X509_ext_isSet_by_NID
-#define CyaSSL_X509_ext_get_critical_by_NID wolfSSL_X509_ext_get_critical_by_NID
-#define CyaSSL_X509_get_isCA wolfSSL_X509_get_isCA
-#define CyaSSL_X509_get_isSet_pathLength wolfSSL_X509_get_isSet_pathLength
-#define CyaSSL_X509_get_pathLength wolfSSL_X509_get_pathLength
-#define CyaSSL_X509_get_keyUsage wolfSSL_X509_get_keyUsage
-#define CyaSSL_X509_get_authorityKeyID wolfSSL_X509_get_authorityKeyID
-#define CyaSSL_X509_get_subjectKeyID wolfSSL_X509_get_subjectKeyID
-#define CyaSSL_X509_NAME_entry_count wolfSSL_X509_NAME_entry_count
-#define CyaSSL_X509_NAME_get_text_by_NID wolfSSL_X509_NAME_get_text_by_NID
-#define CyaSSL_X509_verify_cert wolfSSL_X509_verify_cert
-#define CyaSSL_X509_verify_cert_error_string wolfSSL_X509_verify_cert_error_string
-#define CyaSSL_X509_get_signature_type wolfSSL_X509_get_signature_type
-#define CyaSSL_X509_get_signature wolfSSL_X509_get_signature
-
-#define CyaSSL_X509_LOOKUP_add_dir wolfSSL_X509_LOOKUP_add_dir
-#define CyaSSL_X509_LOOKUP_load_file wolfSSL_X509_LOOKUP_load_file
-#define CyaSSL_X509_LOOKUP_hash_dir wolfSSL_X509_LOOKUP_hash_dir
-#define CyaSSL_X509_LOOKUP_file wolfSSL_X509_LOOKUP_file
-
-#define CyaSSL_X509_STORE_add_lookup wolfSSL_X509_STORE_add_lookup
-#define CyaSSL_X509_STORE_new wolfSSL_X509_STORE_new
-#define CyaSSL_X509_STORE_free wolfSSL_X509_STORE_free
-#define CyaSSL_X509_STORE_add_cert wolfSSL_X509_STORE_add_cert
-#define CyaSSL_X509_STORE_set_default_paths wolfSSL_X509_STORE_set_default_paths
-#define CyaSSL_X509_STORE_get_by_subject wolfSSL_X509_STORE_get_by_subject
-#define CyaSSL_X509_STORE_CTX_new wolfSSL_X509_STORE_CTX_new
-#define CyaSSL_X509_STORE_CTX_init wolfSSL_X509_STORE_CTX_init
-#define CyaSSL_X509_STORE_CTX_free wolfSSL_X509_STORE_CTX_free
-#define CyaSSL_X509_STORE_CTX_cleanup wolfSSL_X509_STORE_CTX_cleanup
-
-#define CyaSSL_X509_CRL_get_lastUpdate wolfSSL_X509_CRL_get_lastUpdate
-#define CyaSSL_X509_CRL_get_nextUpdate wolfSSL_X509_CRL_get_nextUpdate
-
-#define CyaSSL_X509_get_pubkey wolfSSL_X509_get_pubkey
-#define CyaSSL_X509_CRL_verify wolfSSL_X509_CRL_verify
-#define CyaSSL_X509_STORE_CTX_set_error wolfSSL_X509_STORE_CTX_set_error
-#define CyaSSL_X509_OBJECT_free_contents wolfSSL_X509_OBJECT_free_contents
-#define CyaSSL_EVP_PKEY_free wolfSSL_EVP_PKEY_free
-#define CyaSSL_X509_cmp_current_time wolfSSL_X509_cmp_current_time
-#define CyaSSL_sk_X509_REVOKED_num wolfSSL_sk_X509_REVOKED_num
-
-#define CyaSSL_X509_CRL_get_REVOKED wolfSSL_X509_CRL_get_REVOKED
-#define CyaSSL_sk_X509_REVOKED_value wolfSSL_sk_X509_REVOKED_value
-#define CyaSSL_X509_get_serialNumber wolfSSL_X509_get_serialNumber
-#define CyaSSL_ASN1_TIME_print wolfSSL_ASN1_TIME_print
-#define CyaSSL_ASN1_INTEGER_cmp wolfSSL_ASN1_INTEGER_cmp
-#define CyaSSL_ASN1_INTEGER_get wolfSSL_ASN1_INTEGER_get
-#define CyaSSL_load_client_CA_file wolfSSL_load_client_CA_file
-#define CyaSSL_CTX_set_client_CA_list wolfSSL_CTX_set_client_CA_list
-#define CyaSSL_X509_STORE_CTX_get_ex_data wolfSSL_X509_STORE_CTX_get_ex_data
-#define CyaSSL_get_ex_data_X509_STORE_CTX_idx wolfSSL_get_ex_data_X509_STORE_CTX_idx
-#define CyaSSL_get_ex_data wolfSSL_get_ex_data
-
-#define CyaSSL_CTX_set_default_passwd_cb_userdata wolfSSL_CTX_set_default_passwd_cb_userdata
-#define CyaSSL_CTX_set_default_passwd_cb wolfSSL_CTX_set_default_passwd_cb
-#define CyaSSL_CTX_set_info_callback wolfSSL_CTX_set_info_callback
-#define CyaSSL_ERR_peek_error wolfSSL_ERR_peek_error
-#define CyaSSL_GET_REASON wolfSSL_GET_REASON
-#define CyaSSL_alert_type_string_long wolfSSL_alert_type_string_long
-#define CyaSSL_alert_desc_string_long wolfSSL_alert_desc_string_long
-#define CyaSSL_state_string_long wolfSSL_state_string_long
-
-#define CyaSSL_RSA_generate_key wolfSSL_RSA_generate_key
-#define CyaSSL_CTX_set_tmp_rsa_callback wolfSSL_CTX_set_tmp_rsa_callback
-#define CyaSSL_PEM_def_callback wolfSSL_PEM_def_callback
-#define CyaSSL_CTX_sess_accept wolfSSL_CTX_sess_accept
-#define CyaSSL_CTX_sess_connect wolfSSL_CTX_sess_connect
-#define CyaSSL_CTX_sess_accept_good wolfSSL_CTX_sess_accept_good
-#define CyaSSL_CTX_sess_connect_good wolfSSL_CTX_sess_connect_good
-#define CyaSSL_CTX_sess_accept_renegotiate wolfSSL_CTX_sess_accept_renegotiate
-#define CyaSSL_CTX_sess_connect_renegotiate wolfSSL_CTX_sess_connect_renegotiate
-#define CyaSSL_CTX_sess_hits wolfSSL_CTX_sess_hits
-#define CyaSSL_CTX_sess_cb_hits wolfSSL_CTX_sess_cb_hits
-#define CyaSSL_CTX_sess_cache_full wolfSSL_CTX_sess_cache_full
-#define CyaSSL_CTX_sess_misses wolfSSL_CTX_sess_misses
-#define CyaSSL_CTX_sess_timeouts wolfSSL_CTX_sess_timeouts
-#define CyaSSL_CTX_sess_number wolfSSL_CTX_sess_number
-#define CyaSSL_CTX_sess_get_cache_size wolfSSL_CTX_sess_get_cache_size
-
-
-
-/* src/keys.c */
-#define cyassl_triple_des wolfssl_triple_des
-
-/* Initialization and Shutdown */
-#define CyaSSL_Init wolfSSL_Init
-#define CyaSSL_library_init wolfSSL_library_init
-#define CyaSSL_Cleanup wolfSSL_Cleanup
-#define CyaSSL_shutdown wolfSSL_shutdown
-
-/* Certs and keys */
-#define CyaSSL_SetTmpDH wolfSSL_SetTmpDH
-#define CyaSSL_KeepArrays wolfSSL_KeepArrays
-#define CyaSSL_FreeArrays wolfSSL_FreeArrays
-#define CyaSSL_SetTmpDH_file wolfSSL_SetTmpDH_file
-#define CyaSSL_use_PrivateKey_buffer wolfSSL_use_PrivateKey_buffer
-#define CyaSSL_use_certificate_buffer wolfSSL_use_certificate_buffer
-#define CyaSSL_CTX_load_verify_buffer wolfSSL_CTX_load_verify_buffer
-#define CyaSSL_CTX_use_PrivateKey_file wolfSSL_CTX_use_PrivateKey_file
-#define CyaSSL_CTX_use_certificate_file wolfSSL_CTX_use_certificate_file
-#define CyaSSL_CTX_use_PrivateKey_buffer wolfSSL_CTX_use_PrivateKey_buffer
-#define CyaSSL_CTX_use_certificate_buffer wolfSSL_CTX_use_certificate_buffer
-#define CyaSSL_CTX_use_NTRUPrivateKey_file wolfSSL_CTX_use_NTRUPrivateKey_file
-#define CyaSSL_use_certificate_chain_buffer wolfSSL_use_certificate_chain_buffer
-#define CyaSSL_CTX_der_load_verify_locations \
- wolfSSL_CTX_der_load_verify_locations
-#define CyaSSL_CTX_use_certificate_chain_file \
- wolfSSL_CTX_use_certificate_chain_file
-#define CyaSSL_CTX_use_certificate_chain_buffer \
- wolfSSL_CTX_use_certificate_chain_buffer
-
-/* Context and Session Setup*/
-#define CyaSSL_new wolfSSL_new
-#define CyaSSL_free wolfSSL_free
-#define CyaSSL_set_fd wolfSSL_set_fd
-#define CyaSSL_CTX_new wolfSSL_CTX_new
-#define CyaSSL_CTX_free wolfSSL_CTX_free
-#define CyaSSL_SetVersion wolfSSL_SetVersion
-#define CyaSSL_set_verify wolfSSL_set_verify
-#define CyaSSL_set_session wolfSSL_set_session
-#define CyaSSL_set_timeout wolfSSL_set_timeout
-#define CyaSSL_CTX_set_verify wolfSSL_CTX_set_verify
-#define CyaSSL_CTX_set_timeout wolfSSL_CTX_set_timeout
-#define CyaSSL_set_cipher_list wolfSSL_set_cipher_list
-#define CyaSSL_set_compression wolfSSL_set_compression
-#define CyaTLSv1_client_method wolfTLSv1_client_method
-#define CyaTLSv1_server_method wolfTLSv1_server_method
-#define CyaSSLv3_client_method wolfSSLv3_client_method
-#define CyaSSLv3_server_method wolfSSLv3_server_method
-#define CyaSSLv23_client_method wolfSSLv23_client_method
-#define CyaSSLv23_server_method wolfSSLv23_server_method
-#define CyaDTLSv1_client_method wolfDTLSv1_client_method
-#define CyaDTLSv1_server_method wolfDTLSv1_server_method
-#define CyaSSL_check_domain_name wolfSSL_check_domain_name
-#define CyaTLSv1_1_client_method wolfTLSv1_1_client_method
-#define CyaTLSv1_1_server_method wolfTLSv1_1_server_method
-#define CyaTLSv1_2_client_method wolfTLSv1_2_client_method
-#define CyaTLSv1_2_server_method wolfTLSv1_2_server_method
-#define CyaDTLSv1_2_client_method wolfDTLSv1_2_client_method
-#define CyaDTLSv1_2_server_method wolfDTLSv1_2_server_method
-#define CyaSSL_set_group_messages wolfSSL_set_group_messages
-#define CyaSSL_CTX_set_cipher_list wolfSSL_CTX_set_cipher_list
-#define CyaSSL_CTX_set_group_messages wolfSSL_CTX_set_group_messages
-#define CyaSSL_CTX_set_session_cache_mode wolfSSL_CTX_set_session_cache_mode
-
-/* Callbacks */
-
-/*
- * Empty comment denotes not listed in CyaSSL Manual
- * (soon to be wolfSSL Manual)
- */
-
-#define CyaSSL_accept_ex wolfSSL_accept_ex
-#define CyaSSL_SetIORecv wolfSSL_CTX_SetIORecv
-#define CyaSSL_SetIOSend wolfSSL_CTX_SetIOSend
-#define CyaSSL_connect_ex wolfSSL_connect_ex
-#define CyaSSL_CTX_SetCACb wolfSSL_CTX_SetCACb
-#define CyaSSL_SetIOReadCtx wolfSSL_SetIOReadCtx
-#define CyaSSL_SetRsaEncCtx wolfSSL_SetRsaEncCtx
-#define CyaSSL_GetRsaEncCtx wolfSSL_GetRsaEncCtx
-#define CyaSSL_SetRsaDecCtx wolfSSL_SetRsaDecCtx
-#define CyaSSL_GetRsaDecCtx wolfSSL_GetRsaDecCtx
-#define CyaSSL_SetLoggingCb wolfSSL_SetLoggingCb
-#define CyaSSL_SetEccSignCtx wolfSSL_SetEccSignCtx
-#define CyaSSL_GetEccSignCtx wolfSSL_GetEccSignCtx
-#define CyaSSL_SetRsaSignCtx wolfSSL_SetRsaSignCtx
-#define CyaSSL_GetRsaSignCtx wolfSSL_GetRsaSignCtx
-#define CyaSSL_SetIOWriteCtx wolfSSL_SetIOWriteCtx
-#define CyaSSL_SetIOReadFlags wolfSSL_SetIOReadFlags
-#define CyaSSL_SetEccVerifyCtx wolfSSL_SetEccVerifyCtx
-#define CyaSSL_GetEccVerifyCtx wolfSSL_GetEccVerifyCtx
-#define CyaSSL_SetRsaVerifyCtx wolfSSL_SetRsaVerifyCtx
-#define CyaSSL_GetRsaVerifyCtx wolfSSL_GetRsaVerifyCtx
-#define CyaSSL_CTX_SetRsaEncCb wolfSSL_CTX_SetRsaEncCb
-#define CyaSSL_CTX_SetRsaDecCb wolfSSL_CTX_SetRsaDecCb
-#define CyaSSL_SetIOWriteFlags wolfSSL_SetIOWriteFlags
-#define CyaSSL_SetTlsHmacInner wolfSSL_SetTlsHmacInner
-#define CyaSSL_SetMacEncryptCtx wolfSSL_SetMacEncryptCtx
-#define CyaSSL_GetMacEncryptCtx wolfSSL_GetMacEncryptCtx
-#define CyaSSL_CTX_SetEccSignCb wolfSSL_CTX_SetEccSignCb
-#define CyaSSL_CTX_SetRsaSignCb wolfSSL_CTX_SetRsaSignCb
-#define CyaSSL_CTX_SetEccVerifyCb wolfSSL_CTX_SetEccVerifyCb
-#define CyaSSL_CTX_SetRsaVerifyCb wolfSSL_CTX_SetRsaVerifyCb
-#define CyaSSL_CTX_SetMacEncryptCb wolfSSL_CTX_SetMacEncryptCb
-#define CyaSSL_SetDecryptVerifyCtx wolfSSL_SetDecryptVerifyCtx
-#define CyaSSL_GetDecryptVerifyCtx wolfSSL_GetDecryptVerifyCtx
-#define CyaSSL_CTX_SetDecryptVerifyCb wolfSSL_CTX_SetDecryptVerifyCb
-
-/* psk specific */
-#ifndef NO_PSK
-
-#define CyaSSL_get_psk_identity wolfSSL_get_psk_identity /**/
-#define CyaSSL_get_psk_identity_hint wolfSSL_get_psk_identity_hint /**/
-#define CyaSSL_use_psk_identity_hint wolfSSL_use_psk_identity_hint /**/
-#define CyaSSL_set_psk_client_callback wolfSSL_set_psk_client_callback /**/
-#define CyaSSL_set_psk_server_callback wolfSSL_set_psk_server_callback /**/
-#define CyaSSL_CTX_use_psk_identity_hint wolfSSL_CTX_use_psk_identity_hint /**/
-#define CyaSSL_CTX_set_psk_client_callback \
- wolfSSL_CTX_set_psk_client_callback /**/
-#define CyaSSL_CTX_set_psk_server_callback \
- wolfSSL_CTX_set_psk_server_callback /**/
-
-#endif
-/* end psk specific */
-
-/* Anonymous */
-#define CyaSSL_CTX_allow_anon_cipher wolfSSL_CTX_allow_anon_cipher /**/
-
-/* Error Handling and Debugging*/
-#define CyaSSL_get_error wolfSSL_get_error
-#define CyaSSL_want_read wolfSSL_want_read
-#define CyaSSL_want_write wolfSSL_want_write
-#define CyaSSL_Debugging_ON wolfSSL_Debugging_ON
-#define CyaSSL_Debugging_OFF wolfSSL_Debugging_OFF
-#define CyaSSL_ERR_error_string wolfSSL_ERR_error_string
-#define CyaSSL_load_error_strings wolfSSL_load_error_strings
-#define CyaSSL_ERR_error_string_n wolfSSL_ERR_error_string_n
-#define CyaSSL_ERR_print_errors_fp wolfSSL_ERR_print_errors_fp
-
-/* OCSP and CRL */
-
-/*
- * Empty comment denotes not listed in CyaSSL Manual
- * (soon to be wolfSSL Manual)
- */
-
-#define CYASSL_CRL_MONITOR WOLFSSL_CRL_MONITOR /**/
-#define CYASSL_CRL_START_MON WOLFSSL_CRL_START_MON /**/
-#define CYASSL_OCSP_NO_NONCE WOLFSSL_OCSP_NO_NONCE /**/
-#define CYASSL_OCSP_URL_OVERRIDE WOLFSSL_OCSP_URL_OVERRIDE
-#define CYASSL_OCSP_CHECKALL WOLFSSL_OCSP_CHECKALL
-
-#define CyaSSL_CTX_EnableOCSP wolfSSL_CTX_EnableOCSP
-#define CyaSSL_CTX_OCSP_set_options wolfSSL_CTX_OCSP_set_options /**/
-#define CyaSSL_CTX_SetOCSP_OverrideURL wolfSSL_CTX_SetOCSP_OverrideURL /**/
-#define CyaSSL_CTX_OCSP_set_override_url wolfSSL_CTX_OCSP_set_override_url /**/
-
-/* Informational */
-#define CyaSSL_GetSide wolfSSL_GetSide
-#define CyaSSL_IsTLSv1_1 wolfSSL_IsTLSv1_1
-#define CyaSSL_GetKeySize wolfSSL_GetKeySize
-#define CyaSSL_GetHmacSize wolfSSL_GetHmacSize
-#define CyaSSL_GetHmacType wolfSSL_GetHmacType
-#define CyaSSL_GetMacSecret wolfSSL_GetMacSecret
-#define CyaSSL_GetObjectSize wolfSSL_GetObjectSize
-#define CyaSSL_GetBulkCipher wolfSSL_GetBulkCipher
-#define CyaSSL_GetCipherType wolfSSL_GetCipherType
-#define CyaSSL_GetAeadMacSize wolfSSL_GetAeadMacSize
-#define CyaSSL_GetClientWriteIV wolfSSL_GetClientWriteIV
-#define CyaSSL_GetServerWriteIV wolfSSL_GetServerWriteIV
-#define CyaSSL_GetClientWriteKey wolfSSL_GetClientWriteKey
-#define CyaSSL_GetServerWriteKey wolfSSL_GetServerWriteKey
-#define CyaSSL_GetCipherBlockSize wolfSSL_GetCipherBlockSize
-
-/* Connection, Session, and I/O */
-#define CyaSSL_peek wolfSSL_peek
-#define CyaSSL_read wolfSSL_read
-#define CyaSSL_recv wolfSSL_recv
-#define CyaSSL_send wolfSSL_send
-#define CyaSSL_write wolfSSL_write
-#define CyaSSL_writev wolfSSL_writev
-#define CyaSSL_accept wolfSSL_accept
-#define CyaSSL_get_fd wolfSSL_get_fd
-#define CyaSSL_connect wolfSSL_connect
-#define CyaSSL_pending wolfSSL_pending
-#define CyaSSL_negotiate wolfSSL_negotiate
-#define CyaSSL_get_session wolfSSL_get_session
-#define CyaSSL_connect_cert wolfSSL_connect_cert
-#define CyaSSL_flush_sessions wolfSSL_flush_sessions
-#define CyaSSL_get_using_nonblock wolfSSL_get_using_nonblock
-#define CyaSSL_PrintSessionStats wolfSSL_PrintSessionStats
-
-/* DTLS Specific */
-#define CyaSSL_dtls wolfSSL_dtls
-#define CyaSSL_dtls_set_peer wolfSSL_dtls_set_peer
-#define CyaSSL_dtls_get_peer wolfSSL_dtls_get_peer
-#define CyaSSL_dtls_got_timeout wolfSSL_dtls_got_timeout
-#define CyaSSL_dtls_get_current_timeout wolfSSL_dtls_get_current_timeout
-#define CyaSSL_set_using_nonblock wolfSSL_dtls_set_using_nonblock
-
-/* Certificate Manager */
-#define CyaSSL_CertManagerNew wolfSSL_CertManagerNew
-#define CyaSSL_CertManagerFree wolfSSL_CertManagerFree
-#define CyaSSL_CertManagerLoadCA wolfSSL_CertManagerLoadCA
-#define CyaSSL_CertManagerVerify wolfSSL_CertManagerVerify
-#define CyaSSL_CertManagerEnableCRL wolfSSL_CertManagerEnableCRL
-#define CyaSSL_CertManagerDisableCRL wolfSSL_CertManagerDisableCRL
-#define CyaSSL_CertManagerVerifyBuffer wolfSSL_CertManagerVerifyBuffer
-#ifndef NO_CERTS
- #define CyaSSL_CertManagerCheckCRL wolfSSL_CertManagerCheckCRL
- #define CyaSSL_CertManagerLoadCRL wolfSSL_CertManagerLoadCRL
- #define CyaSSL_CertManagerSetCRL_Cb wolfSSL_CertManagerSetCRL_Cb
- #define CyaSSL_CertManagerCheckOCSP wolfSSL_CertManagerCheckOCSP
- #define CyaSSL_CertManagerSetOCSP_Cb wolfSSL_CertManagerSetOCSP_Cb
- #define CyaSSL_CertManagerSetOCSPOverrideURL \
- wolfSSL_CertManagerSetOCSPOverrideURL
-
- #define CyaSSL_DisableCRL wolfSSL_DisableCRL
- #define CyaSSL_EnableOCSP wolfSSL_EnableOCSP
- #define CyaSSL_DisableOCSP wolfSSL_DisableOCSP
- #define CyaSSL_SetOCSP_OverrideURL wolfSSL_SetOCSP_OverrideURL
- #define CyaSSL_SetOCSP_Cb wolfSSL_SetOCSP_Cb
-
- #define CyaSSL_CTX_EnableCRL wolfSSL_CTX_EnableCRL
- #define CyaSSL_CTX_DisableCRL wolfSSL_CTX_DisableCRL
- #define CyaSSL_CTX_LoadCRL wolfSSL_CTX_LoadCRL
- #define CyaSSL_CTX_SetCRL_Cb wolfSSL_CTX_SetCRL_Cb
- #define CyaSSL_CTX_DisableOCSP wolfSSL_CTX_DisableOCSP
- #define CyaSSL_CTX_SetOCSP_Cb wolfSSL_CTX_SetOCSP_Cb
-#endif /* !NO_CERTS */
-
-
-/* OpenSSL Compatibility Layer */
-#define CyaSSL_get_sessionID wolfSSL_get_sessionID
-#define CyaSSL_get_peer_count wolfSSL_get_peer_count
-#define CyaSSL_get_chain_cert wolfSSL_get_chain_cert
-#define CyaSSL_get_peer_chain wolfSSL_get_peer_chain
-#define CyaSSL_get_peer_length wolfSSL_get_peer_length
-#define CyaSSL_get_chain_cert_pem wolfSSL_get_chain_cert_pem
-#define CyaSSL_use_PrivateKey_file wolfSSL_use_PrivateKey_file
-#define CyaSSL_use_certificate_file wolfSSL_use_certificate_file
-#define CyaSSL_use_RSAPrivateKey_file wolfSSL_use_RSAPrivateKey_file
-#define CyaSSL_X509_get_serial_number wolfSSL_X509_get_serial_number
-#define CyaSSL_CTX_use_RSAPrivateKey_file wolfSSL_CTX_use_RSAPrivateKey_file
-#define CyaSSL_use_certificate_chain_file wolfSSL_use_certificate_chain_file
-
-/* TLS Extensions */
-#define CYASSL_SNI_HOST_NAME WOLFSSL_SNI_HOST_NAME
-
-#define CyaSSL_UseSNI wolfSSL_UseSNI
-#define CyaSSL_CTX_UseSNI wolfSSL_CTX_UseSNI
-#define CyaSSL_SNI_SetOptions wolfSSL_SNI_SetOptions
-#define CyaSSL_SNI_GetRequest wolfSSL_SNI_GetRequest
-#define CyaSSL_UseMaxFragment wolfSSL_UseMaxFragment
-#define CyaSSL_UseTruncatedHMAC wolfSSL_UseTruncatedHMAC
-#define CyaSSL_UseSupportedCurve wolfSSL_UseSupportedCurve
-#define CyaSSL_SNI_GetFromBuffer wolfSSL_SNI_GetFromBuffer
-#define CyaSSL_CTX_SNI_SetOptions wolfSSL_CTX_SNI_SetOptions
-#define CyaSSL_CTX_UseMaxFragment wolfSSL_CTX_UseMaxFragment
-#define CyaSSL_CTX_UseTruncatedHMAC wolfSSL_CTX_UseTruncatedHMAC
-#define CyaSSL_CTX_UseSupportedCurve wolfSSL_CTX_UseSupportedCurve
-
-/* End wolfssl -> cyassl -> openssl compatibility */
-
-/* JRB macro redefinitions and api calls for cryptography for reverse compat. */
-
-#ifdef WOLFSSL_SMALL_STACK
- #define CYASSL_SMALL_STACK
-#endif
-
-
-/*
- * 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 */
-
-
-/* examples/client/client.h */
-#define CYASSL_THREAD WOLFSSL_THREAD
-#ifdef WOLFSSL_DTLS
- #define CYASSL_DTLS WOLFSSL_DTLS
-#endif
-
-/* examples/client/client.c */
-#define LIBCYASSL_VERSION_STRING LIBWOLFSSL_VERSION_STRING
-
-#ifdef __cplusplus
- } /* extern "C" */
-#endif
-
-
-#endif /* CyaSSL_openssl_h__ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/test.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/test.h
deleted file mode 100644
index 428b141b5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/test.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* test.h */
-
-#include <wolfssl/test.h>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/cyassl/version.h b/FreeRTOS-Plus/Source/WolfSSL/cyassl/version.h
deleted file mode 100644
index 0f59b121b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/cyassl/version.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* cyassl/version.h
- *
- * Copyright (C) 2006-2020 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 <wolfssl/version.h>
-
-#define LIBCYASSL_VERSION_STRING LIBWOLFSSL_VERSION_STRING
-#define LIBCYASSL_VERSION_HEX LIBWOLFSSL_VERSION_HEX
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/doc/README.txt b/FreeRTOS-Plus/Source/WolfSSL/doc/README.txt
deleted file mode 100644
index efaed1b45..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/doc/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-The wolfSSL manual is available at:
-http://www.wolfssl.com/documentation/wolfSSL-Manual.pdf
-
-The wolfSSL API guide is available at:
-https://www.wolfssl.com/doxygen/wolfssl_API.html
-
-The wolfCrypt API guide is available at:
-https://www.wolfssl.com/doxygen/wolfcrypt_API.html
diff --git a/FreeRTOS-Plus/Source/WolfSSL/doc/include.am b/FreeRTOS-Plus/Source/WolfSSL/doc/include.am
deleted file mode 100644
index 3be217ce0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/doc/include.am
+++ /dev/null
@@ -1,21 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-dist_doc_DATA+= doc/README.txt
-
-dox-pdf:
- echo "Generating PDF"
- cd doc && ./generate_documentation.sh -install -pdf || (echo "HTML generation failed $$?"; exit 1)
-
-dox-html:
- echo "Generating HTML"
- cd doc && ./generate_documentation.sh -install -html || (echo "HTML generation failed $$?"; exit 1)
-
-dox: dox-html dox-pdf
-
-clean-local:
- -rm -rf doc/build/
- -rm -rf doc/html/
- -rm -f doc/refman.pdf
- -rm -f doc/doxygen_warnings
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/benchmark/include.am b/FreeRTOS-Plus/Source/WolfSSL/examples/benchmark/include.am
deleted file mode 100644
index 9440df4aa..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/benchmark/include.am
+++ /dev/null
@@ -1,15 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-
-if BUILD_THREADED_EXAMPLES
-noinst_PROGRAMS += examples/benchmark/tls_bench
-noinst_HEADERS += examples/benchmark/tls_bench.h
-examples_benchmark_tls_bench_SOURCES = examples/benchmark/tls_bench.c
-examples_benchmark_tls_bench_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-examples_benchmark_tls_bench_DEPENDENCIES = src/libwolfssl.la
-endif
-
-dist_example_DATA+= examples/benchmark/tls_bench.c
-DISTCLEANFILES+= examples/benchmark/.libs/tls_bench
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/benchmark/tls_bench.c b/FreeRTOS-Plus/Source/WolfSSL/examples/benchmark/tls_bench.c
deleted file mode 100644
index e22ea9c43..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/benchmark/tls_bench.c
+++ /dev/null
@@ -1,1948 +0,0 @@
-/* tls_bench.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/*
-Example gcc build statement
-gcc -lwolfssl -lpthread -o tls_bench tls_bench.c
-./tls_bench
-
-Or
-
-#include <examples/benchmark/tls_bench.h>
-bench_tls(args);
-*/
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-#ifndef WOLFSSL_USER_SETTINGS
- #include <wolfssl/options.h>
-#endif
-#include <wolfssl/wolfcrypt/settings.h>
-#include <wolfssl/ssl.h>
-#include <wolfssl/wolfcrypt/hash.h> /* WC_MAX_DIGEST_SIZE */
-#include <wolfssl/test.h>
-
-#include <examples/benchmark/tls_bench.h>
-
-/* force certificate test buffers to be included via headers */
-#undef USE_CERT_BUFFERS_2048
-#define USE_CERT_BUFFERS_2048
-#undef USE_CERT_BUFFERS_256
-#define USE_CERT_BUFFERS_256
-#include <wolfssl/certs_test.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <errno.h>
-
-/* For testing no pthread support */
-#if 0
- #undef HAVE_PTHREAD
-#endif
-
-/* PTHREAD requires server and client enabled */
-#if defined(HAVE_PTHREAD) && (defined(NO_WOLFSSL_CLIENT) || defined(NO_WOLFSSL_SERVER))
- #undef HAVE_PTHREAD
-#endif
-
-#ifdef HAVE_PTHREAD
- #include <pthread.h>
-#endif
-
-#if 0
-#define BENCH_USE_NONBLOCK
-#endif
-
-/* Defaults for configuration parameters */
-#define BENCH_DEFAULT_HOST "localhost"
-#define BENCH_DEFAULT_PORT 11112
-#define NUM_THREAD_PAIRS 1 /* Thread pairs of server/client */
-#ifndef BENCH_RUNTIME_SEC
- #ifdef BENCH_EMBEDDED
- #define BENCH_RUNTIME_SEC 15
- #else
- #define BENCH_RUNTIME_SEC 1
- #endif
-#endif
-/* TLS packet size */
-#ifndef TEST_PACKET_SIZE
- #ifdef BENCH_EMBEDDED
- #define TEST_PACKET_SIZE (2 * 1024)
- #else
- #define TEST_PACKET_SIZE (16 * 1024)
- #endif
-#endif
-/* Total bytes to benchmark per connection */
-#ifndef TEST_MAX_SIZE
- #ifdef BENCH_EMBEDDED
- #define TEST_MAX_SIZE (16 * 1024)
- #else
- #define TEST_MAX_SIZE (128 * 1024)
- #endif
-#endif
-
-#ifdef WOLFSSL_DTLS
- #ifdef BENCH_EMBEDDED
- /* WOLFSSL_MAX_MTU in internal.h */
- #define TEST_DTLS_PACKET_SIZE (1500)
- #else
- /* MAX_UDP_SIZE in interna.h */
- #define TEST_DTLS_PACKET_SIZE (8092)
- #endif
-#endif
-
-/* In memory transfer buffer maximum size */
-/* Must be large enough to handle max TLS packet size plus max TLS header MAX_MSG_EXTRA */
-#define MEM_BUFFER_SZ (TEST_PACKET_SIZE + 38 + WC_MAX_DIGEST_SIZE)
-#define SHOW_VERBOSE 0 /* Default output is tab delimited format */
-
-#if (!defined(NO_WOLFSSL_CLIENT) || !defined(NO_WOLFSSL_SERVER)) && \
- !defined(WOLFCRYPT_ONLY)
-
-/* shutdown message - nice signal to server, we are done */
-static const char* kShutdown = "shutdown";
-
-#ifndef NO_WOLFSSL_CLIENT
-static const char* kTestStr =
-"Biodiesel cupidatat marfa, cliche aute put a bird on it incididunt elit\n"
-"polaroid. Sunt tattooed bespoke reprehenderit. Sint twee organic id\n"
-"marfa. Commodo veniam ad esse gastropub. 3 wolf moon sartorial vero,\n"
-"plaid delectus biodiesel squid +1 vice. Post-ironic keffiyeh leggings\n"
-"selfies cray fap hoodie, forage anim. Carles cupidatat shoreditch, VHS\n"
-"small batch meggings kogi dolore food truck bespoke gastropub.\n"
-"\n"
-"Terry richardson adipisicing actually typewriter tumblr, twee whatever\n"
-"four loko you probably haven't heard of them high life. Messenger bag\n"
-"whatever tattooed deep v mlkshk. Brooklyn pinterest assumenda chillwave\n"
-"et, banksy ullamco messenger bag umami pariatur direct trade forage.\n"
-"Typewriter culpa try-hard, pariatur sint brooklyn meggings. Gentrify\n"
-"food truck next level, tousled irony non semiotics PBR ethical anim cred\n"
-"readymade. Mumblecore brunch lomo odd future, portland organic terry\n"
-"richardson elit leggings adipisicing ennui raw denim banjo hella. Godard\n"
-"mixtape polaroid, pork belly readymade organic cray typewriter helvetica\n"
-"four loko whatever street art yr farm-to-table.\n"
-"\n"
-"Vinyl keytar vice tofu. Locavore you probably haven't heard of them pug\n"
-"pickled, hella tonx labore truffaut DIY mlkshk elit cosby sweater sint\n"
-"et mumblecore. Elit swag semiotics, reprehenderit DIY sartorial nisi ugh\n"
-"nesciunt pug pork belly wayfarers selfies delectus. Ethical hoodie\n"
-"seitan fingerstache kale chips. Terry richardson artisan williamsburg,\n"
-"eiusmod fanny pack irony tonx ennui lo-fi incididunt tofu YOLO\n"
-"readymade. 8-bit sed ethnic beard officia. Pour-over iphone DIY butcher,\n"
-"ethnic art party qui letterpress nisi proident jean shorts mlkshk\n"
-"locavore.\n"
-"\n"
-"Narwhal flexitarian letterpress, do gluten-free voluptate next level\n"
-"banh mi tonx incididunt carles DIY. Odd future nulla 8-bit beard ut\n"
-"cillum pickled velit, YOLO officia you probably haven't heard of them\n"
-"trust fund gastropub. Nisi adipisicing tattooed, Austin mlkshk 90's\n"
-"small batch american apparel. Put a bird on it cosby sweater before they\n"
-"sold out pork belly kogi hella. Street art mollit sustainable polaroid,\n"
-"DIY ethnic ea pug beard dreamcatcher cosby sweater magna scenester nisi.\n"
-"Sed pork belly skateboard mollit, labore proident eiusmod. Sriracha\n"
-"excepteur cosby sweater, anim deserunt laborum eu aliquip ethical et\n"
-"neutra PBR selvage.\n"
-"\n"
-"Raw denim pork belly truffaut, irony plaid sustainable put a bird on it\n"
-"next level jean shorts exercitation. Hashtag keytar whatever, nihil\n"
-"authentic aliquip disrupt laborum. Tattooed selfies deserunt trust fund\n"
-"wayfarers. 3 wolf moon synth church-key sartorial, gastropub leggings\n"
-"tattooed. Labore high life commodo, meggings raw denim fingerstache pug\n"
-"trust fund leggings seitan forage. Nostrud ullamco duis, reprehenderit\n"
-"incididunt flannel sustainable helvetica pork belly pug banksy you\n"
-"probably haven't heard of them nesciunt farm-to-table. Disrupt nostrud\n"
-"mollit magna, sriracha sartorial helvetica.\n"
-"\n"
-"Nulla kogi reprehenderit, skateboard sustainable duis adipisicing viral\n"
-"ad fanny pack salvia. Fanny pack trust fund you probably haven't heard\n"
-"of them YOLO vice nihil. Keffiyeh cray lo-fi pinterest cardigan aliqua,\n"
-"reprehenderit aute. Culpa tousled williamsburg, marfa lomo actually anim\n"
-"skateboard. Iphone aliqua ugh, semiotics pariatur vero readymade\n"
-"organic. Marfa squid nulla, in laborum disrupt laboris irure gastropub.\n"
-"Veniam sunt food truck leggings, sint vinyl fap.\n"
-"\n"
-"Hella dolore pork belly, truffaut carles you probably haven't heard of\n"
-"them PBR helvetica in sapiente. Fashion axe ugh bushwick american\n"
-"apparel. Fingerstache sed iphone, jean shorts blue bottle nisi bushwick\n"
-"flexitarian officia veniam plaid bespoke fap YOLO lo-fi. Blog\n"
-"letterpress mumblecore, food truck id cray brooklyn cillum ad sed.\n"
-"Assumenda chambray wayfarers vinyl mixtape sustainable. VHS vinyl\n"
-"delectus, culpa williamsburg polaroid cliche swag church-key synth kogi\n"
-"magna pop-up literally. Swag thundercats ennui shoreditch vegan\n"
-"pitchfork neutra truffaut etsy, sed single-origin coffee craft beer.\n"
-"\n"
-"Odio letterpress brooklyn elit. Nulla single-origin coffee in occaecat\n"
-"meggings. Irony meggings 8-bit, chillwave lo-fi adipisicing cred\n"
-"dreamcatcher veniam. Put a bird on it irony umami, trust fund bushwick\n"
-"locavore kale chips. Sriracha swag thundercats, chillwave disrupt\n"
-"tousled beard mollit mustache leggings portland next level. Nihil esse\n"
-"est, skateboard art party etsy thundercats sed dreamcatcher ut iphone\n"
-"swag consectetur et. Irure skateboard banjo, nulla deserunt messenger\n"
-"bag dolor terry richardson sapiente.\n";
-#endif
-
-#if !defined(NO_DH)
-
-#define MIN_DHKEY_BITS 1024
-
-#if !defined(NO_WOLFSSL_SERVER)
-/* dh2048 p */
-static const unsigned char dhp[] =
-{
- 0xb0, 0xa1, 0x08, 0x06, 0x9c, 0x08, 0x13, 0xba, 0x59, 0x06, 0x3c, 0xbc, 0x30,
- 0xd5, 0xf5, 0x00, 0xc1, 0x4f, 0x44, 0xa7, 0xd6, 0xef, 0x4a, 0xc6, 0x25, 0x27,
- 0x1c, 0xe8, 0xd2, 0x96, 0x53, 0x0a, 0x5c, 0x91, 0xdd, 0xa2, 0xc2, 0x94, 0x84,
- 0xbf, 0x7d, 0xb2, 0x44, 0x9f, 0x9b, 0xd2, 0xc1, 0x8a, 0xc5, 0xbe, 0x72, 0x5c,
- 0xa7, 0xe7, 0x91, 0xe6, 0xd4, 0x9f, 0x73, 0x07, 0x85, 0x5b, 0x66, 0x48, 0xc7,
- 0x70, 0xfa, 0xb4, 0xee, 0x02, 0xc9, 0x3d, 0x9a, 0x4a, 0xda, 0x3d, 0xc1, 0x46,
- 0x3e, 0x19, 0x69, 0xd1, 0x17, 0x46, 0x07, 0xa3, 0x4d, 0x9f, 0x2b, 0x96, 0x17,
- 0x39, 0x6d, 0x30, 0x8d, 0x2a, 0xf3, 0x94, 0xd3, 0x75, 0xcf, 0xa0, 0x75, 0xe6,
- 0xf2, 0x92, 0x1f, 0x1a, 0x70, 0x05, 0xaa, 0x04, 0x83, 0x57, 0x30, 0xfb, 0xda,
- 0x76, 0x93, 0x38, 0x50, 0xe8, 0x27, 0xfd, 0x63, 0xee, 0x3c, 0xe5, 0xb7, 0xc8,
- 0x09, 0xae, 0x6f, 0x50, 0x35, 0x8e, 0x84, 0xce, 0x4a, 0x00, 0xe9, 0x12, 0x7e,
- 0x5a, 0x31, 0xd7, 0x33, 0xfc, 0x21, 0x13, 0x76, 0xcc, 0x16, 0x30, 0xdb, 0x0c,
- 0xfc, 0xc5, 0x62, 0xa7, 0x35, 0xb8, 0xef, 0xb7, 0xb0, 0xac, 0xc0, 0x36, 0xf6,
- 0xd9, 0xc9, 0x46, 0x48, 0xf9, 0x40, 0x90, 0x00, 0x2b, 0x1b, 0xaa, 0x6c, 0xe3,
- 0x1a, 0xc3, 0x0b, 0x03, 0x9e, 0x1b, 0xc2, 0x46, 0xe4, 0x48, 0x4e, 0x22, 0x73,
- 0x6f, 0xc3, 0x5f, 0xd4, 0x9a, 0xd6, 0x30, 0x07, 0x48, 0xd6, 0x8c, 0x90, 0xab,
- 0xd4, 0xf6, 0xf1, 0xe3, 0x48, 0xd3, 0x58, 0x4b, 0xa6, 0xb9, 0xcd, 0x29, 0xbf,
- 0x68, 0x1f, 0x08, 0x4b, 0x63, 0x86, 0x2f, 0x5c, 0x6b, 0xd6, 0xb6, 0x06, 0x65,
- 0xf7, 0xa6, 0xdc, 0x00, 0x67, 0x6b, 0xbb, 0xc3, 0xa9, 0x41, 0x83, 0xfb, 0xc7,
- 0xfa, 0xc8, 0xe2, 0x1e, 0x7e, 0xaf, 0x00, 0x3f, 0x93
-};
-
-/* dh2048 g */
-static const unsigned char dhg[] =
-{
- 0x02,
-};
-#endif /* !NO_WOLFSSL_SERVER */
-#endif /* !NO_DH */
-
-#ifdef HAVE_PTHREAD
-typedef struct {
- unsigned char buf[MEM_BUFFER_SZ];
- int write_bytes;
- int write_idx;
- int read_bytes;
- int read_idx;
-
- pthread_t tid;
- pthread_mutex_t mutex;
- pthread_cond_t cond;
-
- int done;
-} memBuf_t;
-#endif
-
-typedef struct {
- double connTime;
- double rxTime;
- double txTime;
- int connCount;
- int rxTotal;
- int txTotal;
-} stats_t;
-
-typedef struct {
- int shutdown;
- int sockFd;
- int ret;
-} side_t;
-
-typedef struct {
- const char* cipher;
- const char* host;
- word32 port;
- int packetSize; /* The data payload size in the packet */
- int maxSize;
- int runTimeSec;
- int showPeerInfo;
- int showVerbose;
-#ifndef NO_WOLFSSL_SERVER
- int listenFd;
-#endif
-#ifdef WOLFSSL_DTLS
- int doDTLS;
- struct sockaddr_in serverAddr;
- struct sockaddr_in clientAddr;
-#ifdef HAVE_PTHREAD
- int serverReady;
- int clientOrserverOnly;
- pthread_mutex_t dtls_mutex;
- pthread_cond_t dtls_cond;
-#endif
-#endif
- side_t client;
- side_t server;
-
-#ifdef HAVE_PTHREAD
- int useLocalMem;
-
- /* client messages to server in memory */
- memBuf_t to_server;
-
- /* server messages to client in memory */
- memBuf_t to_client;
-#endif
-
- /* server */
- stats_t server_stats;
-
- /* client */
- stats_t client_stats;
-} info_t;
-
-/* Global vars for argument parsing */
-int myoptind = 0;
-char* myoptarg = NULL;
-
-#ifdef WOLFSSL_DTLS
-int DoneHandShake = 0;
-#endif
-
-static double gettime_secs(int reset)
-{
- struct timeval tv;
- gettimeofday(&tv, 0);
- (void)reset;
-
- return (double)tv.tv_sec + (double)tv.tv_usec / 1000000;
-}
-
-
-#ifdef HAVE_PTHREAD
-/* server send callback */
-static int ServerMemSend(info_t* info, char* buf, int sz)
-{
- pthread_mutex_lock(&info->to_client.mutex);
-
-#ifndef BENCH_USE_NONBLOCK
- /* check for overflow */
- if (info->to_client.write_idx + sz > MEM_BUFFER_SZ) {
- pthread_mutex_unlock(&info->to_client.mutex);
- printf("ServerMemSend overflow\n");
- return -1;
- }
-#else
- if (info->to_client.write_idx + sz > MEM_BUFFER_SZ)
- sz = MEM_BUFFER_SZ - info->to_client.write_idx;
-#endif
-
- XMEMCPY(&info->to_client.buf[info->to_client.write_idx], buf, sz);
- info->to_client.write_idx += sz;
- info->to_client.write_bytes += sz;
-
- pthread_cond_signal(&info->to_client.cond);
- pthread_mutex_unlock(&info->to_client.mutex);
-
-#ifdef BENCH_USE_NONBLOCK
- if (sz == 0)
- return WOLFSSL_CBIO_ERR_WANT_WRITE;
-#endif
- return sz;
-}
-
-/* server recv callback */
-static int ServerMemRecv(info_t* info, char* buf, int sz)
-{
- pthread_mutex_lock(&info->to_server.mutex);
-
-#ifndef BENCH_USE_NONBLOCK
- while (info->to_server.write_idx - info->to_server.read_idx < sz && !info->to_client.done)
- pthread_cond_wait(&info->to_server.cond, &info->to_server.mutex);
-#else
- if (info->to_server.write_idx - info->to_server.read_idx < sz)
- sz = info->to_server.write_idx - info->to_server.read_idx;
-#endif
-
- XMEMCPY(buf, &info->to_server.buf[info->to_server.read_idx], sz);
- info->to_server.read_idx += sz;
- info->to_server.read_bytes += sz;
-
- /* if the rx has caught up with pending then reset buffer positions */
- if (info->to_server.read_bytes == info->to_server.write_bytes) {
- info->to_server.read_bytes = info->to_server.read_idx = 0;
- info->to_server.write_bytes = info->to_server.write_idx = 0;
- }
-
- pthread_mutex_unlock(&info->to_server.mutex);
-
- if (info->to_client.done != 0)
- return -1;
-
-#ifdef BENCH_USE_NONBLOCK
- if (sz == 0)
- return WOLFSSL_CBIO_ERR_WANT_READ;
-#endif
- return sz;
-}
-
-/* client send callback */
-static int ClientMemSend(info_t* info, char* buf, int sz)
-{
- pthread_mutex_lock(&info->to_server.mutex);
-
-#ifndef BENCH_USE_NONBLOCK
- /* check for overflow */
- if (info->to_client.write_idx + sz > MEM_BUFFER_SZ) {
- printf("ClientMemSend overflow %d %d %d\n", info->to_client.write_idx, sz, MEM_BUFFER_SZ);
- pthread_mutex_unlock(&info->to_server.mutex);
- return -1;
- }
-#else
- if (info->to_server.write_idx + sz > MEM_BUFFER_SZ)
- sz = MEM_BUFFER_SZ - info->to_server.write_idx;
-#endif
-
- XMEMCPY(&info->to_server.buf[info->to_server.write_idx], buf, sz);
- info->to_server.write_idx += sz;
- info->to_server.write_bytes += sz;
-
- pthread_cond_signal(&info->to_server.cond);
- pthread_mutex_unlock(&info->to_server.mutex);
-
-#ifdef BENCH_USE_NONBLOCK
- if (sz == 0)
- return WOLFSSL_CBIO_ERR_WANT_WRITE;
-#endif
- return sz;
-}
-
-/* client recv callback */
-static int ClientMemRecv(info_t* info, char* buf, int sz)
-{
- pthread_mutex_lock(&info->to_client.mutex);
-
-#ifndef BENCH_USE_NONBLOCK
- while (info->to_client.write_idx - info->to_client.read_idx < sz)
- pthread_cond_wait(&info->to_client.cond, &info->to_client.mutex);
-#else
- if (info->to_client.write_idx - info->to_client.read_idx < sz)
- sz = info->to_client.write_idx - info->to_client.read_idx;
-#endif
-
- XMEMCPY(buf, &info->to_client.buf[info->to_client.read_idx], sz);
- info->to_client.read_idx += sz;
- info->to_client.read_bytes += sz;
-
- /* if the rx has caught up with pending then reset buffer positions */
- if (info->to_client.read_bytes == info->to_client.write_bytes) {
- info->to_client.read_bytes = info->to_client.read_idx = 0;
- info->to_client.write_bytes = info->to_client.write_idx = 0;
- }
-
- pthread_mutex_unlock(&info->to_client.mutex);
-
-#ifdef BENCH_USE_NONBLOCK
- if (sz == 0)
- return WOLFSSL_CBIO_ERR_WANT_READ;
-#endif
- return sz;
-}
-#endif /* HAVE_PTHREAD */
-
-static int SocketRecv(int sockFd, char* buf, int sz)
-{
- int recvd = (int)recv(sockFd, buf, sz, 0);
- if (recvd == -1) {
- switch (errno) {
- #if EAGAIN != SOCKET_EWOULDBLOCK
- case EAGAIN: /* EAGAIN == EWOULDBLOCK on some systems, but not others */
- #endif
- case SOCKET_EWOULDBLOCK:
- return WOLFSSL_CBIO_ERR_WANT_READ;
- case SOCKET_ECONNRESET:
- return WOLFSSL_CBIO_ERR_CONN_RST;
- case SOCKET_EINTR:
- return WOLFSSL_CBIO_ERR_ISR;
- case SOCKET_ECONNREFUSED: /* DTLS case */
- return WOLFSSL_CBIO_ERR_WANT_READ;
- case SOCKET_ECONNABORTED:
- return WOLFSSL_CBIO_ERR_CONN_CLOSE;
- default:
- return WOLFSSL_CBIO_ERR_GENERAL;
- }
- }
- else if (recvd == 0) {
- return WOLFSSL_CBIO_ERR_CONN_CLOSE;
- }
- return recvd;
-}
-
-static int SocketSend(int sockFd, char* buf, int sz)
-{
- int sent = (int)send(sockFd, buf, sz, 0);
- if (sent == -1) {
- switch (errno) {
- #if EAGAIN != SOCKET_EWOULDBLOCK
- case EAGAIN: /* EAGAIN == EWOULDBLOCK on some systems, but not others */
- #endif
- case SOCKET_EWOULDBLOCK:
- return WOLFSSL_CBIO_ERR_WANT_READ;
- case SOCKET_ECONNRESET:
- return WOLFSSL_CBIO_ERR_CONN_RST;
- case SOCKET_EINTR:
- return WOLFSSL_CBIO_ERR_ISR;
- case SOCKET_EPIPE:
- return WOLFSSL_CBIO_ERR_CONN_CLOSE;
- default:
- return WOLFSSL_CBIO_ERR_GENERAL;
- }
- }
- else if (sent == 0) {
- return 0;
- }
- return sent;
-}
-#ifdef WOLFSSL_DTLS
-static int ReceiveFrom(WOLFSSL *ssl, int sd, char *buf, int sz)
-{
- int recvd;
- int dtls_timeout = wolfSSL_dtls_get_current_timeout(ssl);
- struct sockaddr peer;
- socklen_t peerSz;
-
- if (DoneHandShake) dtls_timeout = 0;
-
- if (!wolfSSL_get_using_nonblock(ssl)) {
- struct timeval timeout;
- XMEMSET(&timeout, 0, sizeof(timeout));
- timeout.tv_sec = dtls_timeout;
-
- if (setsockopt(sd, SOL_SOCKET, SO_RCVTIMEO, (char*)&timeout,
- sizeof(timeout)) != 0) {
- printf("setsockopt rcvtimeo failed\n");
- }
- }
-
- recvd = (int)recvfrom(sd, buf, sz, 0, (SOCKADDR*)&peer, &peerSz);
-
- if (recvd < 0) {
-
- if (errno == SOCKET_EWOULDBLOCK || errno == SOCKET_EAGAIN) {
- if (wolfSSL_dtls_get_using_nonblock(ssl)) {
- return WOLFSSL_CBIO_ERR_WANT_READ;
- }
- else {
- return WOLFSSL_CBIO_ERR_TIMEOUT;
- }
- }
- else if (errno == SOCKET_ECONNRESET) {
- return WOLFSSL_CBIO_ERR_CONN_RST;
- }
- else if (errno == SOCKET_EINTR) {
- return WOLFSSL_CBIO_ERR_ISR;
- }
- else if (errno == SOCKET_ECONNREFUSED) {
- return WOLFSSL_CBIO_ERR_WANT_READ;
- }
- else {
- return WOLFSSL_CBIO_ERR_GENERAL;
- }
- }
- else {
- if (recvd == 0) {
- return WOLFSSL_CBIO_ERR_CONN_CLOSE;
- }
- }
-
- return recvd;
-}
-
-static int SendTo(int sd, char *buf, int sz, const struct sockaddr *peer,
- socklen_t peerSz)
-{
- int sent;
-
- sent = (int)sendto(sd, buf, sz, 0, peer, peerSz);
-
- if (sent < 0) {
- if (errno == SOCKET_EWOULDBLOCK || errno == SOCKET_EAGAIN) {
- return WOLFSSL_CBIO_ERR_WANT_WRITE;
- }
- else if (errno == SOCKET_ECONNRESET) {
- return WOLFSSL_CBIO_ERR_CONN_RST;
- }
- else if (errno == SOCKET_EINTR) {
- return WOLFSSL_CBIO_ERR_ISR;
- }
- else if (errno == SOCKET_EPIPE) {
- return WOLFSSL_CBIO_ERR_CONN_CLOSE;
- }
- else {
- return WOLFSSL_CBIO_ERR_GENERAL;
- }
- }
-
- return sent;
-}
-
-static int myDoneHsCb(WOLFSSL* ssl, void* user_ctx)
-{
- (void) ssl;
- (void) user_ctx;
-
- DoneHandShake = 1;
- return 1;
-}
-#endif
-
-#ifndef NO_WOLFSSL_SERVER
-static int ServerSend(WOLFSSL* ssl, char* buf, int sz, void* ctx)
-{
- info_t* info = (info_t*)ctx;
- (void)ssl;
-#ifdef HAVE_PTHREAD
- if (info->useLocalMem)
- return ServerMemSend(info, buf, sz);
-#endif
-#ifdef WOLFSSL_DTLS
- if (info->doDTLS) {
- return SendTo(info->server.sockFd, buf, sz,
- (const struct sockaddr*)&info->clientAddr, sizeof(info->clientAddr));
- } else
-#endif
- return SocketSend(info->server.sockFd, buf, sz);
-}
-static int ServerRecv(WOLFSSL* ssl, char* buf, int sz, void* ctx)
-{
- info_t* info = (info_t*)ctx;
- (void)ssl;
-#ifdef HAVE_PTHREAD
- if (info->useLocalMem)
- return ServerMemRecv(info, buf, sz);
-#endif
-#ifdef WOLFSSL_DTLS
- if (info->doDTLS) {
- return ReceiveFrom(ssl, info->server.sockFd, buf, sz);
- } else
-#endif
- return SocketRecv(info->server.sockFd, buf, sz);
-}
-#endif /* !NO_WOLFSSL_SERVER */
-
-#ifndef NO_WOLFSSL_CLIENT
-static int ClientSend(WOLFSSL* ssl, char* buf, int sz, void* ctx)
-{
- info_t* info = (info_t*)ctx;
- (void)ssl;
-#ifdef HAVE_PTHREAD
- if (info->useLocalMem)
- return ClientMemSend(info, buf, sz);
-#endif
-#ifdef WOLFSSL_DTLS
- if (info->doDTLS) {
- return SendTo(info->client.sockFd, buf, sz,
- (const struct sockaddr*)&info->serverAddr, sizeof(info->serverAddr));
- } else
-#endif
- return SocketSend(info->client.sockFd, buf, sz);
-}
-static int ClientRecv(WOLFSSL* ssl, char* buf, int sz, void* ctx)
-{
- info_t* info = (info_t*)ctx;
- (void)ssl;
-#ifdef HAVE_PTHREAD
- if (info->useLocalMem)
- return ClientMemRecv(info, buf, sz);
-#endif
-#ifdef WOLFSSL_DTLS
- if (info->doDTLS) {
- return ReceiveFrom(ssl, info->client.sockFd, buf, sz);
- } else
-#endif
- return SocketRecv(info->client.sockFd, buf, sz);
-}
-#endif /* !NO_WOLFSSL_CLIENT */
-
-static void CloseAndCleanupSocket(int* sockFd)
-{
- if (*sockFd != -1) {
- close(*sockFd);
- *sockFd = -1;
- }
-#ifdef WOLFSSL_DTLS
- DoneHandShake = 0;
-#endif
-}
-
-#ifdef BENCH_USE_NONBLOCK
-static int SetSocketNonBlocking(int sockFd)
-{
- int flags = fcntl(sockFd, F_GETFL, 0);
- if (flags < 0) {
- printf("fcntl get failed\n");
- return -1;
- }
- flags = fcntl(sockFd, F_SETFL, flags | O_NONBLOCK);
- if (flags < 0) {
- printf("fcntl set failed\n");
- return -1;
- }
- return 0;
-}
-#endif
-
-#ifndef NO_WOLFSSL_CLIENT
-static int SetupSocketAndConnect(info_t* info, const char* host,
- word32 port)
-{
- struct sockaddr_in servAddr;
- struct hostent* entry;
-
- /* Setup server address */
- XMEMSET(&servAddr, 0, sizeof(servAddr));
- servAddr.sin_family = AF_INET;
- servAddr.sin_port = htons(port);
-
- /* Resolve host */
- entry = gethostbyname(host);
- if (entry) {
- XMEMCPY(&servAddr.sin_addr.s_addr, entry->h_addr_list[0],
- entry->h_length);
- }
- else {
- servAddr.sin_addr.s_addr = inet_addr(host);
- }
-
-#ifdef WOLFSSL_DTLS
- if (info->doDTLS) {
- /* Create the SOCK_DGRAM socket type is implemented on the User
- * Datagram Protocol/Internet Protocol(UDP/IP protocol).*/
- if ((info->client.sockFd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
- printf("ERROR: failed to create the SOCK_DGRAM socket\n");
- return -1;
- }
- XMEMCPY(&info->serverAddr, &servAddr, sizeof(servAddr));
- } else {
-#endif
- /* Create a socket that uses an Internet IPv4 address,
- * Sets the socket to be stream based (TCP),
- * 0 means choose the default protocol. */
- if ((info->client.sockFd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
- printf("ERROR: failed to create the socket\n");
- return -1;
- }
-
- /* Connect to the server */
- if (connect(info->client.sockFd, (struct sockaddr*)&servAddr,
- sizeof(servAddr)) == -1) {
- printf("ERROR: failed to connect\n");
- return -1;
- }
-#ifdef WOLFSSL_DTLS
- }
-#endif
-
-#ifdef BENCH_USE_NONBLOCK
- if (SetSocketNonBlocking(info->client.sockFd) != 0) {
- return -1;
- }
-#endif
-
- if (info->showVerbose) {
- printf("Connected to %s on port %d\n", host, port);
- }
-
- return 0;
-}
-
-static int bench_tls_client(info_t* info)
-{
- byte *writeBuf = NULL, *readBuf = NULL;
- double start, total = 0;
- int ret, readBufSz;
- WOLFSSL_CTX* cli_ctx = NULL;
- WOLFSSL* cli_ssl = NULL;
- int haveShownPeerInfo = 0;
- int tls13 = XSTRNCMP(info->cipher, "TLS13", 5) == 0;
- int total_sz;
-
- total = gettime_secs(0);
-
- /* set up client */
-#ifdef WOLFSSL_DTLS
- if(info->doDTLS) {
- if (tls13) return WOLFSSL_SUCCESS;
- cli_ctx = wolfSSL_CTX_new(wolfDTLSv1_2_client_method());
- } else
-#endif
-#ifdef WOLFSSL_TLS13
- if (tls13)
- cli_ctx = wolfSSL_CTX_new(wolfTLSv1_3_client_method());
-#endif
- if (!tls13)
-#ifdef WOLFSSL_DTLS
- if(!info->doDTLS)
-#endif
-#if !defined(WOLFSSL_TLS13)
- cli_ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
-#elif !defined(WOLFSSL_NO_TLS12)
- cli_ctx = wolfSSL_CTX_new(wolfTLSv1_2_client_method());
-#endif
-
- if (cli_ctx == NULL) {
- printf("error creating ctx\n");
- ret = MEMORY_E; goto exit;
- }
-
-#ifndef NO_CERTS
-#ifdef HAVE_ECC
- if (XSTRSTR(info->cipher, "ECDSA")) {
- ret = wolfSSL_CTX_load_verify_buffer(cli_ctx, ca_ecc_cert_der_256,
- sizeof_ca_ecc_cert_der_256, WOLFSSL_FILETYPE_ASN1);
- }
- else
-#endif
- {
- ret = wolfSSL_CTX_load_verify_buffer(cli_ctx, ca_cert_der_2048,
- sizeof_ca_cert_der_2048, WOLFSSL_FILETYPE_ASN1);
- }
- if (ret != WOLFSSL_SUCCESS) {
- printf("error loading CA\n");
- goto exit;
- }
-#endif
-
- wolfSSL_CTX_SetIOSend(cli_ctx, ClientSend);
- wolfSSL_CTX_SetIORecv(cli_ctx, ClientRecv);
-
- /* set cipher suite */
- ret = wolfSSL_CTX_set_cipher_list(cli_ctx, info->cipher);
- if (ret != WOLFSSL_SUCCESS) {
- printf("error setting cipher suite\n");
- goto exit;
- }
-
-#ifndef NO_DH
- ret = wolfSSL_CTX_SetMinDhKey_Sz(cli_ctx, MIN_DHKEY_BITS);
- if (ret != WOLFSSL_SUCCESS) {
- printf("Error setting minimum DH key size\n");
- goto exit;
- }
-#endif
-
- /* Allocate and initialize a packet sized buffer */
- writeBuf = (unsigned char*)XMALLOC(info->packetSize, NULL,
- DYNAMIC_TYPE_TMP_BUFFER);
- if (writeBuf == NULL) {
- printf("failed to allocate write memory\n");
- ret = MEMORY_E; goto exit;
- }
-
- /* Allocate read buffer */
- readBufSz = info->packetSize;
- readBuf = (unsigned char*)XMALLOC(readBufSz, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- if (readBuf == NULL) {
- printf("failed to allocate read memory\n");
- ret = MEMORY_E; goto exit;
- }
-
- /* BENCHMARK CONNECTIONS LOOP */
- while (!info->client.shutdown) {
- int writeSz = info->packetSize;
- #ifdef BENCH_USE_NONBLOCK
- int err;
- #endif
-
- #ifdef HAVE_PTHREAD
- if (!info->useLocalMem)
- #endif
- {
- /* Setup socket and connection */
- ret = SetupSocketAndConnect(info, info->host, info->port);
- if (ret != 0) goto exit;
- }
-
- cli_ssl = wolfSSL_new(cli_ctx);
- if (cli_ssl == NULL) {
- printf("error creating client object\n");
- goto exit;
- }
-
-#ifdef WOLFSSL_DTLS
- if (info->doDTLS) {
- ret = wolfSSL_dtls_set_peer(cli_ssl, &info->serverAddr,
- sizeof(info->serverAddr));
- if (ret != WOLFSSL_SUCCESS) {
- printf("error setting dtls peer\n");
- goto exit;
- }
- ret = wolfSSL_SetHsDoneCb(cli_ssl, myDoneHsCb, NULL);
- if (ret != WOLFSSL_SUCCESS) {
- printf("error handshake done callback\n");
- goto exit;
- }
- }
-#endif
- wolfSSL_SetIOReadCtx(cli_ssl, info);
- wolfSSL_SetIOWriteCtx(cli_ssl, info);
-
-#if defined(HAVE_PTHREAD) && defined(WOLFSSL_DTLS)
- /* synchronize with server */
- if (info->doDTLS && !info->clientOrserverOnly) {
- pthread_mutex_lock(&info->dtls_mutex);
- if (info->serverReady != 1) {
- pthread_cond_wait(&info->dtls_cond, &info->dtls_mutex);
- }
- /* for next loop */
- info->serverReady = 0;
- pthread_mutex_unlock(&info->dtls_mutex);
- }
-#endif
- /* perform connect */
- start = gettime_secs(1);
- #ifndef BENCH_USE_NONBLOCK
- ret = wolfSSL_connect(cli_ssl);
- #else
- do
- {
- ret = wolfSSL_connect(cli_ssl);
- err = wolfSSL_get_error(cli_ssl, ret);
- }
- while (err == WOLFSSL_ERROR_WANT_READ || err == WOLFSSL_ERROR_WANT_WRITE);
- #endif
- start = gettime_secs(0) - start;
- if (ret != WOLFSSL_SUCCESS) {
- printf("error connecting client\n");
- ret = wolfSSL_get_error(cli_ssl, ret);
- goto exit;
- }
- info->client_stats.connTime += start;
- info->client_stats.connCount++;
-
- if ((info->showPeerInfo) && (!haveShownPeerInfo)) {
- haveShownPeerInfo = 1;
- showPeer(cli_ssl);
- }
-
- /* check for run time completion and issue shutdown */
- if (gettime_secs(0) - total >= info->runTimeSec) {
- info->client.shutdown = 1;
-
- writeSz = (int)XSTRLEN(kShutdown) + 1;
- XMEMCPY(writeBuf, kShutdown, writeSz); /* include null term */
- if (info->showVerbose) {
- printf("Sending shutdown\n");
- }
-
- ret = wolfSSL_write(cli_ssl, writeBuf, writeSz);
- if (ret < 0) {
- printf("error on client write\n");
- ret = wolfSSL_get_error(cli_ssl, ret);
- goto exit;
- }
- }
- else {
- XMEMSET(writeBuf, 0, info->packetSize);
- XSTRNCPY((char*)writeBuf, kTestStr, info->packetSize);
- }
-
- /* write / read echo loop */
- ret = 0;
- total_sz = 0;
- while (ret == 0 && total_sz < info->maxSize && !info->client.shutdown) {
- /* write test message to server */
- start = gettime_secs(1);
- #ifndef BENCH_USE_NONBLOCK
- ret = wolfSSL_write(cli_ssl, writeBuf, writeSz);
- #else
- do {
- ret = wolfSSL_write(cli_ssl, writeBuf, writeSz);
- err = wolfSSL_get_error(cli_ssl, ret);
- }
- while (err == WOLFSSL_ERROR_WANT_WRITE);
- #endif
- info->client_stats.txTime += gettime_secs(0) - start;
- if (ret < 0) {
- printf("error on client write\n");
- ret = wolfSSL_get_error(cli_ssl, ret);
- goto exit;
- }
- info->client_stats.txTotal += ret;
- total_sz += ret;
-
- /* read echo of message from server */
- XMEMSET(readBuf, 0, readBufSz);
- start = gettime_secs(1);
- #ifndef BENCH_USE_NONBLOCK
- ret = wolfSSL_read(cli_ssl, readBuf, readBufSz);
- #else
- do {
- ret = wolfSSL_read(cli_ssl, readBuf, readBufSz);
- err = wolfSSL_get_error(cli_ssl, ret);
- }
- while (err == WOLFSSL_ERROR_WANT_READ);
- #endif
- info->client_stats.rxTime += gettime_secs(0) - start;
- if (ret < 0) {
- printf("error on client read\n");
- ret = wolfSSL_get_error(cli_ssl, ret);
- goto exit;
- }
- info->client_stats.rxTotal += ret;
- ret = 0; /* reset return code */
-
- /* validate echo */
- if (XMEMCMP((char*)writeBuf, (char*)readBuf, writeSz) != 0) {
- printf("echo check failed!\n");
- ret = wolfSSL_get_error(cli_ssl, ret);
- goto exit;
- }
- }
-
- CloseAndCleanupSocket(&info->client.sockFd);
-
- wolfSSL_free(cli_ssl);
- cli_ssl = NULL;
- }
-
-exit:
-
- if (ret != 0 && ret != WOLFSSL_SUCCESS) {
- printf("Client Error: %d (%s)\n", ret,
- wolfSSL_ERR_reason_error_string(ret));
- }
-
- /* clean up */
- CloseAndCleanupSocket(&info->client.sockFd);
- if (cli_ssl != NULL)
- wolfSSL_free(cli_ssl);
- if (cli_ctx != NULL)
- wolfSSL_CTX_free(cli_ctx);
- XFREE(readBuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(writeBuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- info->client.ret = ret;
-
- return ret;
-}
-
-#ifdef HAVE_PTHREAD
-static void* client_thread(void* args)
-{
- int ret;
- info_t* info = (info_t*)args;
-
- ret = bench_tls_client(info);
-
- pthread_cond_signal(&info->to_server.cond);
- info->to_client.done = 1;
- info->client.ret = ret;
-
- return NULL;
-}
-#endif /* HAVE_PTHREAD */
-#endif /* !NO_WOLFSSL_CLIENT */
-
-
-#ifndef NO_WOLFSSL_SERVER
-static int SetupSocketAndListen(int* listenFd, word32 port, int doDTLS)
-{
- struct sockaddr_in servAddr;
-#if defined(_MSC_VER) || defined(__MINGW32__)
- char optval = 1;
-#else
- int optval = 1;
-#endif
-#ifndef WOLFSSL_DTLS
- (void) doDTLS;
-#endif
- /* Setup server address */
- XMEMSET(&servAddr, 0, sizeof(servAddr));
- servAddr.sin_family = AF_INET;
- servAddr.sin_port = htons(port);
- servAddr.sin_addr.s_addr = INADDR_ANY;
-
-#ifdef WOLFSSL_DTLS
- if (doDTLS) {
- /* Create a socket that is implemented on the User Datagram Protocol/
- * Interet Protocol(UDP/IP protocol). */
- if((*listenFd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
- printf("ERROR: failed to create the socket\n");
- return -1;
- }
- } else
-#endif
- /* Create a socket that uses an Internet IPv4 address,
- * Sets the socket to be stream based (TCP),
- * 0 means choose the default protocol. */
- if ((*listenFd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
- printf("ERROR: failed to create the socket\n");
- return -1;
- }
-
- /* allow reuse */
- if (setsockopt(*listenFd, SOL_SOCKET, SO_REUSEADDR,
- &optval, sizeof(optval)) == -1) {
- printf("setsockopt SO_REUSEADDR failed\n");
- return -1;
- }
-
- /* Connect to the server */
- if (bind(*listenFd, (struct sockaddr*)&servAddr,
- sizeof(servAddr)) == -1) {
- printf("ERROR: failed to bind\n");
- return -1;
- }
-#ifdef WOLFSSL_DTLS
- if (!doDTLS)
-#endif
- if (listen(*listenFd, 5) != 0) {
- printf("ERROR: failed to listen\n");
- return -1;
- }
-
-#ifdef BENCH_USE_NONBLOCK
- if (SetSocketNonBlocking(*listenFd) != 0) {
- return -1;
- }
-#endif
-
- return 0;
-}
-
-static int SocketWaitClient(info_t* info)
-{
- int connd;
- struct sockaddr_in clientAddr;
- socklen_t size = sizeof(clientAddr);
-#ifdef WOLFSSL_DTLS
- char msg[64];
-
- if (info->doDTLS) {
-#ifdef HAVE_PTHREAD
- if (!info->clientOrserverOnly) {
- pthread_mutex_lock(&info->dtls_mutex);
- info->serverReady = 1;
- pthread_cond_signal(&info->dtls_cond);
- pthread_mutex_unlock(&info->dtls_mutex);
- }
-#endif
- connd = (int)recvfrom(info->listenFd, (char *)msg, sizeof(msg),
- MSG_PEEK, (struct sockaddr*)&clientAddr, &size);
- if (connd < -1) {
- printf("ERROR: failed to accept the connection\n");
- return -1;
- }
- XMEMCPY(&info->clientAddr, &clientAddr, sizeof(clientAddr));
- info->server.sockFd = info->listenFd;
- } else {
-#endif
- if ((connd = accept(info->listenFd, (struct sockaddr*)&clientAddr, &size)) == -1) {
- if (errno == SOCKET_EWOULDBLOCK)
- return -2;
- printf("ERROR: failed to accept the connection\n");
- return -1;
- }
- info->server.sockFd = connd;
-#ifdef WOLFSSL_DTLS
- }
-#endif
-
- if (info->showVerbose) {
- printf("Got client %d\n", connd);
- }
-
- return 0;
-}
-static void CloseAndCleanupListenSocket(int* listenFd)
-{
- if (*listenFd != -1) {
- close(*listenFd);
- *listenFd = -1;
- }
-}
-
-static int bench_tls_server(info_t* info)
-{
- byte *readBuf = NULL;
- double start;
- int ret, len = 0, readBufSz;
- WOLFSSL_CTX* srv_ctx = NULL;
- WOLFSSL* srv_ssl = NULL;
- int tls13 = XSTRNCMP(info->cipher, "TLS13", 5) == 0;
- int total_sz;
-
- /* set up server */
-#ifdef WOLFSSL_DTLS
- if(info->doDTLS) {
- if(tls13) return WOLFSSL_SUCCESS;
- srv_ctx = wolfSSL_CTX_new(wolfDTLSv1_2_server_method());
- } else {
-#endif
-#ifdef WOLFSSL_TLS13
- if (tls13)
- srv_ctx = wolfSSL_CTX_new(wolfTLSv1_3_server_method());
-#endif
- if (!tls13)
- srv_ctx = wolfSSL_CTX_new(wolfSSLv23_server_method());
-#ifdef WOLFSSL_DTLS
- }
-#endif
- if (srv_ctx == NULL) {
- printf("error creating server ctx\n");
- ret = MEMORY_E; goto exit;
- }
-
-#ifndef NO_CERTS
-#ifdef HAVE_ECC
- if (XSTRSTR(info->cipher, "ECDSA")) {
- ret = wolfSSL_CTX_use_PrivateKey_buffer(srv_ctx, ecc_key_der_256,
- sizeof_ecc_key_der_256, WOLFSSL_FILETYPE_ASN1);
- }
- else
-#endif
- {
- ret = wolfSSL_CTX_use_PrivateKey_buffer(srv_ctx, server_key_der_2048,
- sizeof_server_key_der_2048, WOLFSSL_FILETYPE_ASN1);
- }
- if (ret != WOLFSSL_SUCCESS) {
- printf("error loading server key\n");
- goto exit;
- }
-
-#ifdef HAVE_ECC
- if (XSTRSTR(info->cipher, "ECDSA")) {
- ret = wolfSSL_CTX_use_certificate_buffer(srv_ctx, serv_ecc_der_256,
- sizeof_serv_ecc_der_256, WOLFSSL_FILETYPE_ASN1);
- }
- else
-#endif
- {
- ret = wolfSSL_CTX_use_certificate_buffer(srv_ctx, server_cert_der_2048,
- sizeof_server_cert_der_2048, WOLFSSL_FILETYPE_ASN1);
- }
- if (ret != WOLFSSL_SUCCESS) {
- printf("error loading server cert\n");
- goto exit;
- }
-#endif /* !NO_CERTS */
-
- wolfSSL_CTX_SetIOSend(srv_ctx, ServerSend);
- wolfSSL_CTX_SetIORecv(srv_ctx, ServerRecv);
-
- /* set cipher suite */
- ret = wolfSSL_CTX_set_cipher_list(srv_ctx, info->cipher);
- if (ret != WOLFSSL_SUCCESS) {
- printf("error setting cipher suite\n");
- goto exit;
- }
-
-#ifndef NO_DH
- ret = wolfSSL_CTX_SetMinDhKey_Sz(srv_ctx, MIN_DHKEY_BITS);
- if (ret != WOLFSSL_SUCCESS) {
- printf("Error setting minimum DH key size\n");
- goto exit;
- }
-#endif
-
- /* Allocate read buffer */
- readBufSz = info->packetSize;
- readBuf = (unsigned char*)XMALLOC(readBufSz, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- if (readBuf == NULL) {
- printf("failed to allocate read memory\n");
- ret = MEMORY_E; goto exit;
- }
-
- /* BENCHMARK CONNECTIONS LOOP */
- while (!info->server.shutdown) {
- #ifdef BENCH_USE_NONBLOCK
- int err;
- #endif
-
- #ifdef HAVE_PTHREAD
- if (!info->useLocalMem)
- #endif
- {
- /* Accept client connections */
- ret = SocketWaitClient(info);
- #ifdef BENCH_USE_NONBLOCK
- if (ret == -2) {
- sleep(0);
- continue;
- }
- #endif
- if (ret != 0) {
- goto exit;
- }
- }
-
- srv_ssl = wolfSSL_new(srv_ctx);
- if (srv_ssl == NULL) {
- printf("error creating server object\n");
- ret = MEMORY_E; goto exit;
- }
-#ifdef WOLFSSL_DTLS
- if (info->doDTLS) {
- ret = wolfSSL_dtls_set_peer(srv_ssl, &info->clientAddr,
- sizeof(info->clientAddr));
- if (ret != WOLFSSL_SUCCESS) {
- printf("error setting dtls peer\n");
- goto exit;
- }
- }
-#endif
-
- wolfSSL_SetIOReadCtx(srv_ssl, info);
- wolfSSL_SetIOWriteCtx(srv_ssl, info);
- #ifndef NO_DH
- wolfSSL_SetTmpDH(srv_ssl, dhp, sizeof(dhp), dhg, sizeof(dhg));
- #endif
-
- /* accept TLS connection */
- start = gettime_secs(1);
- #ifndef BENCH_USE_NONBLOCK
- ret = wolfSSL_accept(srv_ssl);
- #else
- do {
- ret = wolfSSL_accept(srv_ssl);
- err = wolfSSL_get_error(srv_ssl, ret);
- }
- while (err == WOLFSSL_ERROR_WANT_READ || err == WOLFSSL_ERROR_WANT_WRITE);
- #endif
- start = gettime_secs(0) - start;
- if (ret != WOLFSSL_SUCCESS) {
- printf("error on server accept\n");
- ret = wolfSSL_get_error(srv_ssl, ret);
- goto exit;
- }
-
- info->server_stats.connTime += start;
- info->server_stats.connCount++;
-
- /* echo loop */
- ret = 0;
- total_sz = 0;
- while (ret == 0 && total_sz < info->maxSize) {
- double rxTime;
-
- /* read message from client */
- XMEMSET(readBuf, 0, readBufSz);
- start = gettime_secs(1);
- #ifndef BENCH_USE_NONBLOCK
- ret = wolfSSL_read(srv_ssl, readBuf, readBufSz);
- #else
- do {
- ret = wolfSSL_read(srv_ssl, readBuf, readBufSz);
- err = wolfSSL_get_error(srv_ssl, ret);
- }
- while (err == WOLFSSL_ERROR_WANT_READ);
- #endif
- rxTime = gettime_secs(0) - start;
-
- /* shutdown signals, no more connections for this cipher */
- if (XSTRSTR((const char*)readBuf, kShutdown) != NULL) {
- info->server.shutdown = 1;
- if (info->showVerbose) {
- printf("Server shutdown done\n");
- }
- ret = 0; /* success */
- break;
- }
-
- info->server_stats.rxTime += rxTime;
- if (ret < 0) {
- printf("error on server read\n");
- ret = wolfSSL_get_error(srv_ssl, ret);
- goto exit;
- }
- info->server_stats.rxTotal += ret;
- len = ret;
- total_sz += ret;
-
- /* write message back to client */
- start = gettime_secs(1);
- #ifndef BENCH_USE_NONBLOCK
- ret = wolfSSL_write(srv_ssl, readBuf, len);
- #else
- do {
- ret = wolfSSL_write(srv_ssl, readBuf, len);
- err = wolfSSL_get_error(srv_ssl, ret);
- }
- while (err == WOLFSSL_ERROR_WANT_WRITE);
- #endif
- info->server_stats.txTime += gettime_secs(0) - start;
- if (ret < 0) {
- printf("error on server write\n");
- ret = wolfSSL_get_error(srv_ssl, ret);
- goto exit;
- }
- info->server_stats.txTotal += ret;
- ret = 0; /* reset return code */
- }
-
- CloseAndCleanupSocket(&info->server.sockFd);
-
- wolfSSL_free(srv_ssl);
- srv_ssl = NULL;
-#ifdef WOLFSSL_DTLS
- if (info->doDTLS) {
- SetupSocketAndListen(&info->listenFd, info->port, info->doDTLS);
- }
-#endif
-
- }
-
-exit:
-
- if (ret != 0 && ret != WOLFSSL_SUCCESS) {
- printf("Server Error: %d (%s)\n", ret,
- wolfSSL_ERR_reason_error_string(ret));
- }
-
- /* clean up */
- CloseAndCleanupSocket(&info->server.sockFd);
- if (srv_ssl != NULL)
- wolfSSL_free(srv_ssl);
- if (srv_ctx != NULL)
- wolfSSL_CTX_free(srv_ctx);
- XFREE(readBuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- info->server.ret = ret;
-
- return ret;
-}
-
-#ifdef HAVE_PTHREAD
-static void* server_thread(void* args)
-{
- int ret = 0;
- info_t* info = (info_t*)args;
-
- if (!info->useLocalMem) {
- /* Setup TLS server listener */
-#ifdef WOLFSSL_DTLS
- ret = SetupSocketAndListen(&info->listenFd, info->port, info->doDTLS);
-#else
- ret = SetupSocketAndListen(&info->listenFd, info->port, 0);
-#endif
- }
- if (ret == 0) {
- ret = bench_tls_server(info);
-
- if (!info->useLocalMem) {
- CloseAndCleanupListenSocket(&info->listenFd);
- }
- }
-
- pthread_cond_signal(&info->to_client.cond);
- info->to_server.done = 1;
- info->server.ret = ret;
-
- return NULL;
-}
-#endif /* HAVE_PTHREAD */
-#endif /* !NO_WOLFSSL_SERVER */
-
-
-#ifdef __GNUC__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
-#endif
-static void print_stats(stats_t* wcStat, const char* desc, const char* cipher, int verbose)
-{
- const char* formatStr;
-
- if (verbose) {
- formatStr = "wolfSSL %s Benchmark on %s:\n"
- "\tTotal : %9d bytes\n"
- "\tNum Conns : %9d\n"
- "\tRx Total : %9.3f ms\n"
- "\tTx Total : %9.3f ms\n"
- "\tRx : %9.3f MB/s\n"
- "\tTx : %9.3f MB/s\n"
- "\tConnect : %9.3f ms\n"
- "\tConnect Avg : %9.3f ms\n";
- }
- else {
- formatStr = "%-6s %-33s %11d %9d %9.3f %9.3f %9.3f %9.3f %17.3f %15.3f\n";
- }
-
- printf(formatStr,
- desc,
- cipher,
- wcStat->txTotal + wcStat->rxTotal,
- wcStat->connCount,
- wcStat->rxTime * 1000,
- wcStat->txTime * 1000,
- wcStat->rxTotal / wcStat->rxTime / 1024 / 1024,
- wcStat->txTotal / wcStat->txTime / 1024 / 1024,
- wcStat->connTime * 1000,
- wcStat->connTime * 1000 / wcStat->connCount);
-}
-
-static void Usage(void)
-{
- printf("tls_bench " LIBWOLFSSL_VERSION_STRING
- " NOTE: All files relative to wolfSSL home dir\n");
- printf("-? Help, print this usage\n");
- printf("-c Run as client only, no threading and uses sockets\n");
- printf("-s Run as server only, no threading and uses sockets\n");
- printf("-h Host (default %s)\n", BENCH_DEFAULT_HOST);
- printf("-P Port (default %d)\n", BENCH_DEFAULT_PORT);
- printf("-e List Every cipher suite available\n");
- printf("-i Show peer info\n");
- printf("-l <str> Cipher suite list (: delimited)\n");
- printf("-t <num> Time <num> (seconds) to run each test (default %d)\n", BENCH_RUNTIME_SEC);
- printf("-p <num> The packet size <num> in bytes [1-16kB] (default %d)\n", TEST_PACKET_SIZE);
-#ifdef WOLFSSL_DTLS
- printf(" In the case of DTLS, [1-8kB] (default %d)\n", TEST_DTLS_PACKET_SIZE);
-#endif
- printf("-S <num> The total size <num> in bytes (default %d)\n", TEST_MAX_SIZE);
- printf("-v Show verbose output\n");
-#ifdef DEBUG_WOLFSSL
- printf("-d Enable debug messages\n");
-#endif
-#ifdef HAVE_PTHREAD
- printf("-T <num> Number of threaded server/client pairs (default %d)\n", NUM_THREAD_PAIRS);
- printf("-m Use local memory, not socket\n");
-#endif
-#ifdef WOLFSSL_DTLS
- printf("-u Use DTLS\n");
-#endif
-}
-
-static void ShowCiphers(void)
-{
- char ciphers[WOLFSSL_CIPHER_LIST_MAX_SIZE];
-
- int ret = wolfSSL_get_ciphers(ciphers, (int)sizeof(ciphers));
-
- if (ret == WOLFSSL_SUCCESS)
- printf("%s\n", ciphers);
-}
-
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#endif
-
-int bench_tls(void* args)
-{
- int ret = 0;
- info_t *theadInfo = NULL, *info;
- stats_t cli_comb, srv_comb;
- int i;
- char *cipher, *next_cipher, *ciphers = NULL;
- int argc = 0;
- char** argv = NULL;
- int ch;
-
- /* Vars configured by command line arguments */
- int argRuntimeSec = BENCH_RUNTIME_SEC;
- char *argCipherList = NULL;
- int argTestPacketSize = TEST_PACKET_SIZE;
- int argTestMaxSize = TEST_MAX_SIZE;
- int argThreadPairs = NUM_THREAD_PAIRS;
- int argShowVerbose = SHOW_VERBOSE;
- int argClientOnly = 0;
- int argServerOnly = 0;
- const char* argHost = BENCH_DEFAULT_HOST;
- int argPort = BENCH_DEFAULT_PORT;
- int argShowPeerInfo = 0;
-#ifdef HAVE_PTHREAD
- int doShutdown;
-#endif
-#if !defined(NO_WOLFSSL_SERVER) || defined(HAVE_PTHREAD)
- int argLocalMem = 0;
- int listenFd = -1;
-#endif
-#ifdef WOLFSSL_DTLS
- int doDTLS = 0;
- int option_p = 0;
-#endif
- if (args != NULL) {
- argc = ((func_args*)args)->argc;
- argv = ((func_args*)args)->argv;
- ((func_args*)args)->return_code = -1; /* error state */
- }
-
- /* Initialize wolfSSL */
- wolfSSL_Init();
-
- /* Parse command line arguments */
- while ((ch = mygetopt(argc, argv, "?" "udeil:p:t:vT:sch:P:mS:")) != -1) {
- switch (ch) {
- case '?' :
- Usage();
- goto exit;
-
- case 's':
- argServerOnly = 1;
- break;
-
- case 'c':
- argClientOnly = 1;
- break;
-
- case 'h':
- argHost = myoptarg;
- break;
-
- case 'P':
- argPort = atoi(myoptarg);
- break;
-
- case 'd' :
- #ifdef DEBUG_WOLFSSL
- wolfSSL_Debugging_ON();
- #endif
- break;
-
- case 'e' :
- ShowCiphers();
- goto exit;
-
- case 'i' :
- argShowPeerInfo = 1;
- break;
-
- case 'l' :
- argCipherList = myoptarg;
- break;
-
- case 'p' :
- argTestPacketSize = atoi(myoptarg);
- if (argTestPacketSize > (16 * 1024)) {
- printf("Invalid packet size %d\n", argTestPacketSize);
- Usage();
- ret = MY_EX_USAGE; goto exit;
- }
- #ifdef WOLFSSL_DTLS
- option_p = 1;
- #endif
- break;
-
- case 'S' :
- argTestMaxSize = atoi(myoptarg);
- break;
-
- case 't' :
- argRuntimeSec = atoi(myoptarg);
- break;
-
- case 'v' :
- argShowVerbose = 1;
- break;
-
- case 'T' :
- #ifdef HAVE_PTHREAD
- argThreadPairs = atoi(myoptarg);
- #endif
- break;
-
- case 'm':
- #ifdef HAVE_PTHREAD
- argLocalMem = 1;
- #endif
- break;
- case 'u':
- #ifdef WOLFSSL_DTLS
- doDTLS = 1;
- #ifdef BENCH_USE_NONBLOCK
- printf("tls_bench hasn't yet supported DTLS "
- "non-blocking mode.\n");
- Usage();
- ret = MY_EX_USAGE; goto exit;
- #endif
- #endif
- break;
- default:
- Usage();
- ret = MY_EX_USAGE; goto exit;
- }
- }
-
- /* reset for test cases */
- myoptind = 0;
-
- if (argCipherList != NULL) {
- /* Use the list from CL argument */
- cipher = argCipherList;
- }
- else {
- /* Run for each cipher */
- ciphers = (char*)XMALLOC(WOLFSSL_CIPHER_LIST_MAX_SIZE, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- if (ciphers == NULL) {
- goto exit;
- }
- wolfSSL_get_ciphers(ciphers, WOLFSSL_CIPHER_LIST_MAX_SIZE);
- cipher = ciphers;
- }
-
- /* for server or client side only, only 1 thread is allowed */
- if (argServerOnly || argClientOnly) {
- argThreadPairs = 1;
- }
-#ifndef HAVE_PTHREAD
- else {
- printf("Threading is not enabled, so please use -s or -c to indicate side\n");
- Usage();
- ret = MY_EX_USAGE; goto exit;
- }
-#endif
-
- /* Allocate test info array */
- theadInfo = (info_t*)XMALLOC(sizeof(info_t) * argThreadPairs, NULL,
- DYNAMIC_TYPE_TMP_BUFFER);
- if (theadInfo == NULL) {
- ret = MEMORY_E; goto exit;
- }
- XMEMSET(theadInfo, 0, sizeof(info_t) * argThreadPairs);
-
-#ifndef NO_WOLFSSL_SERVER
- /* Use same listen socket to avoid timing issues between client and server */
- if (argServerOnly && !argLocalMem) {
- /* Setup TLS server listener */
-#ifdef WOLFSSL_DTLS
- ret = SetupSocketAndListen(&listenFd, argPort, doDTLS);
-#else
- ret = SetupSocketAndListen(&listenFd, argPort, 0);
-#endif
- if (ret != 0) goto exit;
- }
-#endif
-
-#ifdef WOLFSSL_DTLS
- if (doDTLS) {
- if (argLocalMem) {
- printf("tls_bench hasn't yet supported DTLS with local memory.\n");
- ret = MY_EX_USAGE; goto exit;
- }
- if (option_p && argTestPacketSize > TEST_DTLS_PACKET_SIZE){
- printf("Invalid packet size %d\n", argTestPacketSize);
- Usage();
- ret = MY_EX_USAGE; goto exit;
- } else {
- /* argTestPacketSize would be default for tcp packet */
- if (argTestPacketSize >= TEST_PACKET_SIZE)
- argTestPacketSize = TEST_DTLS_PACKET_SIZE;
- }
- }
-#endif
- printf("Running TLS Benchmarks...\n");
-
- /* parse by : */
- while ((cipher != NULL) && (cipher[0] != '\0')) {
- next_cipher = strchr(cipher, ':');
- if (next_cipher != NULL) {
- cipher[next_cipher - cipher] = '\0';
- }
-
- if (argShowVerbose) {
- printf("Cipher: %s\n", cipher);
- }
-
- for (i=0; i<argThreadPairs; i++) {
- info = &theadInfo[i];
- XMEMSET(info, 0, sizeof(info_t));
-
- info->host = argHost;
- info->port = argPort + i; /* threads must have separate ports */
- info->cipher = cipher;
- info->packetSize = argTestPacketSize;
-
- info->runTimeSec = argRuntimeSec;
- info->maxSize = argTestMaxSize;
- info->showPeerInfo = argShowPeerInfo;
- info->showVerbose = argShowVerbose;
- #ifndef NO_WOLFSSL_SERVER
- info->listenFd = listenFd;
- #endif
- info->client.sockFd = -1;
- info->server.sockFd = -1;
-
- #ifdef WOLFSSL_DTLS
- info->doDTLS = doDTLS;
- #ifdef HAVE_PTHREAD
- info->serverReady = 0;
- if (argServerOnly || argClientOnly) {
- info->clientOrserverOnly = 1;
- }
- #endif
- #endif
- if (argClientOnly) {
- #ifndef NO_WOLFSSL_CLIENT
- ret = bench_tls_client(info);
- #endif
- }
- else if (argServerOnly) {
- #ifndef NO_WOLFSSL_SERVER
- ret = bench_tls_server(info);
- #endif
- }
- else {
- #ifdef HAVE_PTHREAD
- info->useLocalMem = argLocalMem;
- pthread_mutex_init(&info->to_server.mutex, NULL);
- pthread_mutex_init(&info->to_client.mutex, NULL);
- #ifdef WOLFSSL_DTLS
- pthread_mutex_init(&info->dtls_mutex, NULL);
- pthread_cond_init(&info->dtls_cond, NULL);
- #endif
- pthread_cond_init(&info->to_server.cond, NULL);
- pthread_cond_init(&info->to_client.cond, NULL);
-
- pthread_create(&info->to_server.tid, NULL, server_thread, info);
- pthread_create(&info->to_client.tid, NULL, client_thread, info);
-
- /* State that we won't be joining this thread */
- pthread_detach(info->to_server.tid);
- pthread_detach(info->to_client.tid);
- #endif
- }
- }
-
- #ifdef HAVE_PTHREAD
- /* For threading, wait for completion */
- if (!argClientOnly && !argServerOnly) {
- /* Wait until threads are marked done */
- do {
- doShutdown = 1;
-
- for (i = 0; i < argThreadPairs; ++i) {
- info = &theadInfo[i];
- if (!info->to_client.done || !info->to_server.done) {
- doShutdown = 0;
- sleep(1); /* Allow other threads to run */
- }
-
- }
- } while (!doShutdown);
- if (argShowVerbose) {
- printf("Shutdown complete\n");
- }
- }
- #endif /* HAVE_PTHREAD */
-
- if (argShowVerbose) {
- /* print results */
- for (i = 0; i < argThreadPairs; ++i) {
- info = &theadInfo[i];
-
- printf("\nThread %d\n", i);
- #ifndef NO_WOLFSSL_SERVER
- if (!argClientOnly)
- print_stats(&info->server_stats, "Server", info->cipher, 1);
- #endif
- #ifndef NO_WOLFSSL_CLIENT
- if (!argServerOnly)
- print_stats(&info->client_stats, "Client", info->cipher, 1);
- #endif
- }
- }
-
- /* print combined results for more than one thread */
- XMEMSET(&cli_comb, 0, sizeof(cli_comb));
- XMEMSET(&srv_comb, 0, sizeof(srv_comb));
-
- for (i = 0; i < argThreadPairs; ++i) {
- info = &theadInfo[i];
-
- cli_comb.connCount += info->client_stats.connCount;
- srv_comb.connCount += info->server_stats.connCount;
-
- cli_comb.connTime += info->client_stats.connTime;
- srv_comb.connTime += info->server_stats.connTime;
-
- cli_comb.rxTotal += info->client_stats.rxTotal;
- srv_comb.rxTotal += info->server_stats.rxTotal;
-
- cli_comb.rxTime += info->client_stats.rxTime;
- srv_comb.rxTime += info->server_stats.rxTime;
-
- cli_comb.txTotal += info->client_stats.txTotal;
- srv_comb.txTotal += info->server_stats.txTotal;
-
- cli_comb.txTime += info->client_stats.txTime;
- srv_comb.txTime += info->server_stats.txTime;
- }
-
- if (argShowVerbose) {
- printf("Totals for %d Threads\n", argThreadPairs);
- }
- else {
- printf("%-6s %-33s %11s %9s %9s %9s %9s %9s %17s %15s\n",
- "Side", "Cipher", "Total Bytes", "Num Conns", "Rx ms", "Tx ms",
- "Rx MB/s", "Tx MB/s", "Connect Total ms", "Connect Avg ms");
- #ifndef NO_WOLFSSL_SERVER
- if (!argClientOnly)
- print_stats(&srv_comb, "Server", theadInfo[0].cipher, 0);
- #endif
- #ifndef NO_WOLFSSL_CLIENT
- if (!argServerOnly)
- print_stats(&cli_comb, "Client", theadInfo[0].cipher, 0);
- #endif
- }
-
- /* target next cipher */
- cipher = (next_cipher != NULL) ? (next_cipher + 1) : NULL;
- } /* while */
-
-exit:
-
-#ifndef NO_WOLFSSL_SERVER
- if (argServerOnly && !argLocalMem) {
- /* Close server listener */
- CloseAndCleanupListenSocket(&listenFd);
- }
-#endif
-
- /* Cleanup the wolfSSL environment */
- wolfSSL_Cleanup();
-
- /* Free theadInfo array */
- XFREE(theadInfo, NULL, DYNAMIC_TYPE_TMP_BUFFER);
-
- /* Free cipher list */
- XFREE(ciphers, NULL, DYNAMIC_TYPE_TMP_BUFFER);
-
- /* Return reporting a success */
- if (args)
- ((func_args*)args)->return_code = ret;
-
- return ret;
-}
-#endif /* (!NO_WOLFSSL_CLIENT || !NO_WOLFSSL_SERVER) && !WOLFCRYPT_ONLY */
-
-#ifndef NO_MAIN_DRIVER
-
-int main(int argc, char** argv)
-{
- func_args args;
-
- args.argc = argc;
- args.argv = argv;
- args.return_code = 0;
-
-#if (!defined(NO_WOLFSSL_CLIENT) || !defined(NO_WOLFSSL_SERVER)) && !defined(WOLFCRYPT_ONLY)
- bench_tls(&args);
-#endif
-
- return args.return_code;
-}
-
-#endif /* !NO_MAIN_DRIVER */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/benchmark/tls_bench.h b/FreeRTOS-Plus/Source/WolfSSL/examples/benchmark/tls_bench.h
deleted file mode 100644
index 483a3ae4f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/benchmark/tls_bench.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* tls_bench.h
- *
- * Copyright (C) 2006-2020 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_TLS_BENCH_H
-#define WOLFSSL_TLS_BENCH_H
-
-
-int bench_tls(void* args);
-
-
-#endif /* WOLFSSL_TLS_BENCH_H */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/client/client-ntru.vcproj b/FreeRTOS-Plus/Source/WolfSSL/examples/client/client-ntru.vcproj
deleted file mode 100644
index b3eccc06a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/client/client-ntru.vcproj
+++ /dev/null
@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="client"
- ProjectGUID="{3ADE9549-582D-4D8E-9826-B172197A7959}"
- RootNamespace="client"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../"
- PreprocessorDefinitions="NO_PSK"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib NtruEncrypt_DLL.lib"
- LinkIncremental="2"
- AdditionalLibraryDirectories="..\..\NTRU\bin"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../../"
- PreprocessorDefinitions="NO_PSK"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib NtruEncrypt_DLL.lib"
- LinkIncremental="1"
- AdditionalLibraryDirectories="..\..\NTRU\bin"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\client.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.c b/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.c
deleted file mode 100644
index 6c8cf5013..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.c
+++ /dev/null
@@ -1,3460 +0,0 @@
-/* client.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#include <wolfssl/ssl.h>
-
-#if defined(WOLFSSL_MDK_ARM) || defined(WOLFSSL_KEIL_TCP_NET)
- #include <stdio.h>
- #include <string.h>
- #include "rl_fs.h"
- #include "rl_net.h"
-#endif
-
-#include <wolfssl/test.h>
-
-#include <examples/client/client.h>
-#include <wolfssl/error-ssl.h>
-
-#ifndef NO_WOLFSSL_CLIENT
-
-#ifdef USE_FAST_MATH
- /* included to inspect the size of FP_MAX_BITS */
- /* need integer.h header to make sure right math version used */
- #include <wolfssl/wolfcrypt/integer.h>
-#endif
-#ifdef HAVE_ECC
- #include <wolfssl/wolfcrypt/ecc.h>
-#endif
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- static int devId = INVALID_DEVID;
-#endif
-
-#define DEFAULT_TIMEOUT_SEC 2
-#ifndef MAX_NON_BLOCK_SEC
-#define MAX_NON_BLOCK_SEC 10
-#endif
-
-#define OCSP_STAPLING 1
-#define OCSP_STAPLINGV2 2
-#define OCSP_STAPLINGV2_MULTI 3
-#define OCSP_STAPLING_OPT_MAX OCSP_STAPLINGV2_MULTI
-
-/* Note on using port 0: the client standalone example doesn't utilize the
- * port 0 port sharing; that is used by (1) the server in external control
- * test mode and (2) the testsuite which uses this code and sets up the correct
- * port numbers when the internal thread using the server code using port 0. */
-
-static int lng_index = 0;
-#ifdef WOLFSSL_CALLBACKS
- WOLFSSL_TIMEVAL timeoutConnect;
- static int handShakeCB(HandShakeInfo* info)
- {
- (void)info;
- return 0;
- }
-
- static int timeoutCB(TimeoutInfo* info)
- {
- (void)info;
- return 0;
- }
-
-#endif
-
-#ifdef HAVE_SESSION_TICKET
- static int sessionTicketCB(WOLFSSL* ssl,
- const unsigned char* ticket, int ticketSz,
- void* ctx)
- {
- (void)ssl;
- (void)ticket;
- printf("Session Ticket CB: ticketSz = %d, ctx = %s\n",
- ticketSz, (char*)ctx);
- return 0;
- }
-#endif
-
-static int NonBlockingSSL_Connect(WOLFSSL* ssl)
-{
- int ret;
- int error;
- SOCKET_T sockfd;
- int select_ret = 0;
- int elapsedSec = 0;
-
-#ifndef WOLFSSL_CALLBACKS
- ret = wolfSSL_connect(ssl);
-#else
- ret = wolfSSL_connect_ex(ssl, handShakeCB, timeoutCB, timeoutConnect);
-#endif
- error = wolfSSL_get_error(ssl, 0);
- sockfd = (SOCKET_T)wolfSSL_get_fd(ssl);
-
- while (ret != WOLFSSL_SUCCESS &&
- (error == WOLFSSL_ERROR_WANT_READ || error == WOLFSSL_ERROR_WANT_WRITE
- #ifdef WOLFSSL_ASYNC_CRYPT
- || error == WC_PENDING_E
- #endif
- #ifdef WOLFSSL_NONBLOCK_OCSP
- || error == OCSP_WANT_READ
- #endif
- )) {
- int currTimeout = 1;
-
- if (error == WOLFSSL_ERROR_WANT_READ)
- printf("... client would read block\n");
- else if (error == WOLFSSL_ERROR_WANT_WRITE)
- printf("... client would write block\n");
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- if (error == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- else
-#endif
- {
- if (error != WOLFSSL_ERROR_WANT_WRITE) {
- #ifdef WOLFSSL_DTLS
- currTimeout = wolfSSL_dtls_get_current_timeout(ssl);
- #endif
- select_ret = tcp_select(sockfd, currTimeout);
- }
- }
-
- if ((select_ret == TEST_RECV_READY) || (select_ret == TEST_SEND_READY)
- || (select_ret == TEST_ERROR_READY)
- #ifdef WOLFSSL_ASYNC_CRYPT
- || error == WC_PENDING_E
- #endif
- ) {
- #ifndef WOLFSSL_CALLBACKS
- ret = wolfSSL_connect(ssl);
- #else
- ret = wolfSSL_connect_ex(ssl, handShakeCB, timeoutCB,
- timeoutConnect);
- #endif
- error = wolfSSL_get_error(ssl, 0);
- elapsedSec = 0; /* reset elapsed */
- if (error == WOLFSSL_ERROR_WANT_WRITE) {
- /* Do a send select here. */
- select_ret = tcp_select_tx(sockfd, 1);
- if (select_ret == TEST_TIMEOUT) {
- error = WOLFSSL_FATAL_ERROR;
- }
- }
- }
- else if (select_ret == TEST_TIMEOUT && !wolfSSL_dtls(ssl)) {
- error = WOLFSSL_ERROR_WANT_READ;
-
- elapsedSec += currTimeout;
- if (elapsedSec > MAX_NON_BLOCK_SEC) {
- printf("Nonblocking connect timeout\n");
- error = WOLFSSL_FATAL_ERROR;
- }
- }
-#ifdef WOLFSSL_DTLS
- else if (select_ret == TEST_TIMEOUT && wolfSSL_dtls(ssl) &&
- wolfSSL_dtls_got_timeout(ssl) >= 0) {
- error = WOLFSSL_ERROR_WANT_READ;
- }
-#endif
- else {
- error = WOLFSSL_FATAL_ERROR;
- }
- }
-
- return ret;
-}
-
-
-static void ShowCiphers(void)
-{
- static char ciphers[WOLFSSL_CIPHER_LIST_MAX_SIZE];
-
- int ret = wolfSSL_get_ciphers(ciphers, (int)sizeof(ciphers));
-
- if (ret == WOLFSSL_SUCCESS)
- printf("%s\n", ciphers);
-}
-
-/* Shows which versions are valid */
-static void ShowVersions(void)
-{
-#ifndef NO_OLD_TLS
- #ifdef WOLFSSL_ALLOW_SSLV3
- printf("0:");
- #endif
- #ifdef WOLFSSL_ALLOW_TLSV10
- printf("1:");
- #endif
- printf("2:");
-#endif /* NO_OLD_TLS */
-#ifndef WOLFSSL_NO_TLS12
- printf("3:");
-#endif
-#ifdef WOLFSSL_TLS13
- printf("4:");
-#endif
- printf("d(downgrade):");
-#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
- printf("e(either):");
-#endif
- printf("\n");
-}
-
-#ifdef WOLFSSL_TLS13
-static void SetKeyShare(WOLFSSL* ssl, int onlyKeyShare, int useX25519,
- int useX448)
-{
- int groups[3] = {0};
- int count = 0;
-
- (void)useX25519;
- (void)useX448;
-
- WOLFSSL_START(WC_FUNC_CLIENT_KEY_EXCHANGE_SEND);
- if (onlyKeyShare == 0 || onlyKeyShare == 2) {
- #ifdef HAVE_CURVE25519
- if (useX25519) {
- groups[count++] = WOLFSSL_ECC_X25519;
- if (wolfSSL_UseKeyShare(ssl, WOLFSSL_ECC_X25519) != WOLFSSL_SUCCESS)
- err_sys("unable to use curve x25519");
- }
- else
- #endif
- #ifdef HAVE_CURVE448
- if (useX448) {
- groups[count++] = WOLFSSL_ECC_X448;
- if (wolfSSL_UseKeyShare(ssl, WOLFSSL_ECC_X448) != WOLFSSL_SUCCESS)
- err_sys("unable to use curve x448");
- }
- else
- #endif
- {
- #ifdef HAVE_ECC
- #if !defined(NO_ECC256) || defined(HAVE_ALL_CURVES)
- groups[count++] = WOLFSSL_ECC_SECP256R1;
- if (wolfSSL_UseKeyShare(ssl, WOLFSSL_ECC_SECP256R1)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to use curve secp256r1");
- }
- #endif
- #endif
- }
- }
- if (onlyKeyShare == 0 || onlyKeyShare == 1) {
- #ifdef HAVE_FFDHE_2048
- groups[count++] = WOLFSSL_FFDHE_2048;
- if (wolfSSL_UseKeyShare(ssl, WOLFSSL_FFDHE_2048) != WOLFSSL_SUCCESS)
- err_sys("unable to use DH 2048-bit parameters");
- #endif
- }
-
- if (wolfSSL_set_groups(ssl, groups, count) != WOLFSSL_SUCCESS)
- err_sys("unable to set groups");
- WOLFSSL_END(WC_FUNC_CLIENT_KEY_EXCHANGE_SEND);
-}
-#endif
-
-#ifdef WOLFSSL_EARLY_DATA
-static void EarlyData(WOLFSSL_CTX* ctx, WOLFSSL* ssl, const char* msg,
- int msgSz, char* buffer)
-{
- int err;
- int ret;
-
- do {
- err = 0; /* reset error */
- ret = wolfSSL_write_early_data(ssl, msg, msgSz, &msgSz);
- if (ret <= 0) {
- err = wolfSSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- if (ret != msgSz) {
- printf("SSL_write_early_data msg error %d, %s\n", err,
- wolfSSL_ERR_error_string(err, buffer));
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("SSL_write_early_data failed");
- }
- do {
- err = 0; /* reset error */
- ret = wolfSSL_write_early_data(ssl, msg, msgSz, &msgSz);
- if (ret <= 0) {
- err = wolfSSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- if (ret != msgSz) {
- printf("SSL_write_early_data msg error %d, %s\n", err,
- wolfSSL_ERR_error_string(err, buffer));
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
- err_sys("SSL_write_early_data failed");
- }
-}
-#endif
-
-/* Measures average time to create, connect and disconnect a connection (TPS).
-Benchmark = number of connections. */
-static const char* client_bench_conmsg[][5] = {
- /* English */
- {
- "wolfSSL_resume avg took:", "milliseconds\n",
- "wolfSSL_connect avg took:", "milliseconds\n",
- NULL
- },
- #ifndef NO_MULTIBYTE_PRINT
- /* Japanese */
- {
- "wolfSSL_resume 平均時間:", "ミリ秒\n",
- "wolfSSL_connect 平均時間:", "ミリ秒\n",
- }
- #endif
-};
-
-static int ClientBenchmarkConnections(WOLFSSL_CTX* ctx, char* host, word16 port,
- int dtlsUDP, int dtlsSCTP, int benchmark, int resumeSession, int useX25519,
- int useX448, int helloRetry, int onlyKeyShare, int version, int earlyData)
-{
- /* time passed in number of connects give average */
- int times = benchmark, skip = times * 0.1;
- int loops = resumeSession ? 2 : 1;
- int i = 0, err, ret;
-#ifndef NO_SESSION_CACHE
- WOLFSSL_SESSION* benchSession = NULL;
-#endif
-#ifdef WOLFSSL_TLS13
- byte* reply[80];
- static const char msg[] = "GET /index.html HTTP/1.0\r\n\r\n";
-#ifdef WOLFSSL_EARLY_DATA
- static const char earlyMsg[] = "A drop of info";
-#endif
-#endif
- const char** words = client_bench_conmsg[lng_index];
-
- (void)resumeSession;
- (void)useX25519;
- (void)useX448;
- (void)helloRetry;
- (void)onlyKeyShare;
- (void)version;
- (void)earlyData;
-
- while (loops--) {
- #ifndef NO_SESSION_CACHE
- int benchResume = resumeSession && loops == 0;
- #endif
- double start = current_time(1), avg;
-
- for (i = 0; i < times; i++) {
- SOCKET_T sockfd;
- WOLFSSL* ssl;
-
- if (i == skip)
- start = current_time(1);
-
- ssl = wolfSSL_new(ctx);
- if (ssl == NULL)
- err_sys("unable to get SSL object");
-
- #ifndef NO_SESSION_CACHE
- if (benchResume)
- wolfSSL_set_session(ssl, benchSession);
- #endif
- #ifdef WOLFSSL_TLS13
- else if (version >= 4) {
- if (!helloRetry)
- SetKeyShare(ssl, onlyKeyShare, useX25519, useX448);
- else
- wolfSSL_NoKeyShares(ssl);
- }
- #endif
-
- tcp_connect(&sockfd, host, port, dtlsUDP, dtlsSCTP, ssl);
-
- if (wolfSSL_set_fd(ssl, sockfd) != WOLFSSL_SUCCESS) {
- err_sys("error in setting fd");
- }
-
- #if defined(WOLFSSL_TLS13) && !defined(NO_SESSION_CACHE) && \
- defined(WOLFSSL_EARLY_DATA)
- if (version >= 4 && benchResume && earlyData) {
- char buffer[WOLFSSL_MAX_ERROR_SZ];
- EarlyData(ctx, ssl, earlyMsg, sizeof(earlyMsg)-1, buffer);
- }
- #endif
- do {
- err = 0; /* reset error */
- ret = wolfSSL_connect(ssl);
- if (ret != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- if (ret != WOLFSSL_SUCCESS) {
- err_sys("SSL_connect failed");
- }
-
- #ifdef WOLFSSL_TLS13
- #ifndef NO_SESSION_CACHE
- if (version >= 4 && resumeSession && !benchResume)
- #else
- if (version >= 4 && resumeSession)
- #endif
- {
- if (wolfSSL_write(ssl, msg, sizeof(msg)-1) <= 0)
- err_sys("SSL_write failed");
-
- if (wolfSSL_read(ssl, reply, sizeof(reply)-1) <= 0)
- err_sys("SSL_read failed");
- }
- #endif
-
-
- wolfSSL_shutdown(ssl);
- #ifndef NO_SESSION_CACHE
- if (i == (times-1) && resumeSession) {
- benchSession = wolfSSL_get_session(ssl);
- }
- #endif
- wolfSSL_free(ssl); ssl = NULL;
- CloseSocket(sockfd);
- }
- avg = current_time(0) - start;
- avg /= (times - skip);
- avg *= 1000; /* milliseconds */
- #ifndef NO_SESSION_CACHE
- if (benchResume)
- printf("%s %8.3f %s\n", words[0],avg, words[1]);
- else
- #endif
- printf("%s %8.3f %s\n", words[2],avg, words[3]);
-
- WOLFSSL_TIME(times);
- }
-
- return EXIT_SUCCESS;
-}
-
-/* Measures throughput in kbps. Throughput = number of bytes */
-static int ClientBenchmarkThroughput(WOLFSSL_CTX* ctx, char* host, word16 port,
- int dtlsUDP, int dtlsSCTP, int block, size_t throughput, int useX25519,
- int useX448)
-{
- double start, conn_time = 0, tx_time = 0, rx_time = 0;
- SOCKET_T sockfd;
- WOLFSSL* ssl;
- int ret = 0, err = 0;
-
- start = current_time(1);
- ssl = wolfSSL_new(ctx);
- if (ssl == NULL)
- err_sys("unable to get SSL object");
-
- tcp_connect(&sockfd, host, port, dtlsUDP, dtlsSCTP, ssl);
- if (wolfSSL_set_fd(ssl, sockfd) != WOLFSSL_SUCCESS) {
- err_sys("error in setting fd");
- }
-
- (void)useX25519;
- (void)useX448;
- #ifdef WOLFSSL_TLS13
- #ifdef HAVE_CURVE25519
- if (useX25519) {
- if (wolfSSL_UseKeyShare(ssl, WOLFSSL_ECC_X25519)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to use curve x25519");
- }
- }
- #endif
- #ifdef HAVE_CURVE448
- if (useX448) {
- if (wolfSSL_UseKeyShare(ssl, WOLFSSL_ECC_X448)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to use curve x448");
- }
- }
- #endif
- #endif
-
- do {
- err = 0; /* reset error */
- ret = wolfSSL_connect(ssl);
- if (ret != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- if (ret == WOLFSSL_SUCCESS) {
- /* Perform throughput test */
- char *tx_buffer, *rx_buffer;
-
- /* Record connection time */
- conn_time = current_time(0) - start;
-
- /* Allocate TX/RX buffers */
- tx_buffer = (char*)XMALLOC(block, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- rx_buffer = (char*)XMALLOC(block, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- if (tx_buffer && rx_buffer) {
- WC_RNG rng;
-
- /* Startup the RNG */
- #if !defined(HAVE_FIPS) && defined(WOLFSSL_ASYNC_CRYPT)
- ret = wc_InitRng_ex(&rng, NULL, devId);
- #else
- ret = wc_InitRng(&rng);
- #endif
- if (ret == 0) {
- size_t xfer_bytes;
-
- /* Generate random data to send */
- ret = wc_RNG_GenerateBlock(&rng, (byte*)tx_buffer, block);
- wc_FreeRng(&rng);
- if(ret != 0) {
- err_sys("wc_RNG_GenerateBlock failed");
- }
-
- /* Perform TX and RX of bytes */
- xfer_bytes = 0;
- while (throughput > xfer_bytes) {
- int len, rx_pos, select_ret;
-
- /* Determine packet size */
- len = min(block, (int)(throughput - xfer_bytes));
-
- /* Perform TX */
- start = current_time(1);
- do {
- err = 0; /* reset error */
- ret = wolfSSL_write(ssl, tx_buffer, len);
- if (ret <= 0) {
- err = wolfSSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- if (ret != len) {
- printf("SSL_write bench error %d!\n", err);
- err_sys("SSL_write failed");
- }
- tx_time += current_time(0) - start;
-
- /* Perform RX */
- select_ret = tcp_select(sockfd, DEFAULT_TIMEOUT_SEC);
- if (select_ret == TEST_RECV_READY) {
- start = current_time(1);
- rx_pos = 0;
- while (rx_pos < len) {
- ret = wolfSSL_read(ssl, &rx_buffer[rx_pos],
- len - rx_pos);
- if (ret <= 0) {
- err = wolfSSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- else
- #endif
- if (err != WOLFSSL_ERROR_WANT_READ) {
- printf("SSL_read bench error %d\n", err);
- err_sys("SSL_read failed");
- }
- }
- else {
- rx_pos += ret;
- }
- }
- rx_time += current_time(0) - start;
- }
-
- /* Compare TX and RX buffers */
- if (XMEMCMP(tx_buffer, rx_buffer, len) != 0) {
- free(tx_buffer);
- tx_buffer = NULL;
- free(rx_buffer);
- rx_buffer = NULL;
- err_sys("Compare TX and RX buffers failed");
- }
-
- /* Update overall position */
- xfer_bytes += len;
- }
- }
- else {
- err_sys("wc_InitRng failed");
- }
- (void)rng; /* for WC_NO_RNG case */
- }
- else {
- err_sys("Client buffer malloc failed");
- }
- if(tx_buffer) XFREE(tx_buffer, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- if(rx_buffer) XFREE(rx_buffer, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- }
- else {
- err_sys("wolfSSL_connect failed");
- }
-
- wolfSSL_shutdown(ssl);
- wolfSSL_free(ssl); ssl = NULL;
- CloseSocket(sockfd);
-
-#if !defined(__MINGW32__)
- printf("wolfSSL Client Benchmark %zu bytes\n"
-#else
- printf("wolfSSL Client Benchmark %d bytes\n"
-#endif
- "\tConnect %8.3f ms\n"
- "\tTX %8.3f ms (%8.3f MBps)\n"
- "\tRX %8.3f ms (%8.3f MBps)\n",
-#if !defined(__MINGW32__)
- throughput,
-#else
- (int)throughput,
-#endif
- conn_time * 1000,
- tx_time * 1000, throughput / tx_time / 1024 / 1024,
- rx_time * 1000, throughput / rx_time / 1024 / 1024
- );
-
- return EXIT_SUCCESS;
-}
-
-const char* starttlsCmd[6] = {
- "220",
- "EHLO mail.example.com\r\n",
- "250",
- "STARTTLS\r\n",
- "220",
- "QUIT\r\n",
-};
-
-/* Initiates the STARTTLS command sequence over TCP */
-static int StartTLS_Init(SOCKET_T* sockfd)
-{
- char tmpBuf[256];
-
- if (sockfd == NULL)
- return BAD_FUNC_ARG;
-
- /* S: 220 <host> SMTP service ready */
- XMEMSET(tmpBuf, 0, sizeof(tmpBuf));
- if (recv(*sockfd, tmpBuf, sizeof(tmpBuf)-1, 0) < 0)
- err_sys("failed to read STARTTLS command\n");
-
- if (!XSTRNCMP(tmpBuf, starttlsCmd[0], XSTRLEN(starttlsCmd[0]))) {
- printf("%s\n", tmpBuf);
- } else {
- err_sys("incorrect STARTTLS command received");
- }
-
- /* C: EHLO mail.example.com */
- if (send(*sockfd, starttlsCmd[1], (int)XSTRLEN(starttlsCmd[1]), 0) !=
- (int)XSTRLEN(starttlsCmd[1]))
- err_sys("failed to send STARTTLS EHLO command\n");
-
- /* S: 250 <host> offers a warm hug of welcome */
- XMEMSET(tmpBuf, 0, sizeof(tmpBuf));
- if (recv(*sockfd, tmpBuf, sizeof(tmpBuf)-1, 0) < 0)
- err_sys("failed to read STARTTLS command\n");
-
- if (!XSTRNCMP(tmpBuf, starttlsCmd[2], XSTRLEN(starttlsCmd[2]))) {
- printf("%s\n", tmpBuf);
- } else {
- err_sys("incorrect STARTTLS command received");
- }
-
- /* C: STARTTLS */
- if (send(*sockfd, starttlsCmd[3], (int)XSTRLEN(starttlsCmd[3]), 0) !=
- (int)XSTRLEN(starttlsCmd[3])) {
- err_sys("failed to send STARTTLS command\n");
- }
-
- /* S: 220 Go ahead */
- XMEMSET(tmpBuf, 0, sizeof(tmpBuf));
- if (recv(*sockfd, tmpBuf, sizeof(tmpBuf)-1, 0) < 0)
- err_sys("failed to read STARTTLS command\n");
-
- if (!XSTRNCMP(tmpBuf, starttlsCmd[4], XSTRLEN(starttlsCmd[4]))) {
- printf("%s\n", tmpBuf);
- } else {
- err_sys("incorrect STARTTLS command received, expected 220");
- }
-
- return WOLFSSL_SUCCESS;
-}
-
-/* Closes down the SMTP connection */
-static int SMTP_Shutdown(WOLFSSL* ssl, int wc_shutdown)
-{
- int ret, err = 0;
- char tmpBuf[256];
-
- if (ssl == NULL)
- return BAD_FUNC_ARG;
-
- printf("\nwolfSSL client shutting down SMTP connection\n");
-
- XMEMSET(tmpBuf, 0, sizeof(tmpBuf));
-
- /* C: QUIT */
- do {
- ret = wolfSSL_write(ssl, starttlsCmd[5], (int)XSTRLEN(starttlsCmd[5]));
- if (ret < 0) {
- err = wolfSSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- if (ret != (int)XSTRLEN(starttlsCmd[5])) {
- err_sys("failed to send SMTP QUIT command\n");
- }
-
- /* S: 221 2.0.0 Service closing transmission channel */
- do {
- ret = wolfSSL_read(ssl, tmpBuf, sizeof(tmpBuf));
- if (ret < 0) {
- err = wolfSSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- if (ret < 0) {
- err_sys("failed to read SMTP closing down response\n");
- }
-
- printf("%s\n", tmpBuf);
-
- ret = wolfSSL_shutdown(ssl);
- if (wc_shutdown && ret == WOLFSSL_SHUTDOWN_NOT_DONE) {
- if (tcp_select(wolfSSL_get_fd(ssl), DEFAULT_TIMEOUT_SEC) ==
- TEST_RECV_READY) {
- ret = wolfSSL_shutdown(ssl); /* bidirectional shutdown */
- if (ret == WOLFSSL_SUCCESS)
- printf("Bidirectional shutdown complete\n");
- }
- if (ret != WOLFSSL_SUCCESS)
- printf("Bidirectional shutdown failed\n");
- }
-
- return WOLFSSL_SUCCESS;
-}
-
-static void ClientWrite(WOLFSSL* ssl, char* msg, int msgSz, const char* str)
-{
- int ret, err;
- char buffer[WOLFSSL_MAX_ERROR_SZ];
-
- do {
- err = 0; /* reset error */
- ret = wolfSSL_write(ssl, msg, msgSz);
- if (ret <= 0) {
- err = wolfSSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WOLFSSL_ERROR_WANT_WRITE
- #ifdef WOLFSSL_ASYNC_CRYPT
- || err == WC_PENDING_E
- #endif
- );
- if (ret != msgSz) {
- printf("SSL_write%s msg error %d, %s\n", str, err,
- wolfSSL_ERR_error_string(err, buffer));
- err_sys("SSL_write failed");
- }
-}
-
-static void ClientRead(WOLFSSL* ssl, char* reply, int replyLen, int mustRead,
- const char* str)
-{
- int ret, err;
- char buffer[WOLFSSL_MAX_ERROR_SZ];
- double start = current_time(1), elapsed;
-
- do {
- err = 0; /* reset error */
- ret = wolfSSL_read(ssl, reply, replyLen);
- if (ret <= 0) {
- err = wolfSSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- else
- #endif
- if (err != WOLFSSL_ERROR_WANT_READ) {
- printf("SSL_read reply error %d, %s\n", err,
- wolfSSL_ERR_error_string(err, buffer));
- err_sys("SSL_read failed");
- }
- }
-
- if (mustRead && err == WOLFSSL_ERROR_WANT_READ) {
- elapsed = current_time(0) - start;
- if (elapsed > MAX_NON_BLOCK_SEC) {
- printf("Nonblocking read timeout\n");
- ret = WOLFSSL_FATAL_ERROR;
- break;
- }
- }
- } while ((mustRead && err == WOLFSSL_ERROR_WANT_READ)
- #ifdef WOLFSSL_ASYNC_CRYPT
- || err == WC_PENDING_E
- #endif
- );
- if (ret > 0) {
- reply[ret] = 0;
- printf("%s%s\n", str, reply);
- }
-}
-
-
-/* when adding new option, please follow the steps below: */
-/* 1. add new option message in English section */
-/* 2. increase the number of the second column */
-/* 3. add the same message into Japanese section */
-/* (will be translated later) */
-/* 4. add printf() into suitable position of Usage() */
-static const char* client_usage_msg[][59] = {
- /* English */
- {
- " NOTE: All files relative to wolfSSL home dir\n", /* 0 */
- "Max RSA key size in bits for build is set at : ", /* 1 */
-#ifdef NO_RSA
- "RSA not supported\n", /* 2 */
-#elif defined(WOLFSSL_SP_MATH) /* case of SP math only */
-#ifndef WOLFSSL_SP_NO_3072
- "3072\n", /* 2 */
-#elif !defined(WOLFSSL_SP_NO_2048)
- "2048\n", /* 2 */
-#else
- "0\n", /* 2 */
-#endif
-#elif defined(USE_FAST_MATH)
-#else
- "INFINITE\n", /* 2 */
-#endif
- "-? <num> Help, print this usage\n"
- " 0: English, 1: Japanese\n", /* 3 */
- "-h <host> Host to connect to, default", /* 4 */
- "-p <num> Port to connect on, not 0, default", /* 5 */
-
-#ifndef WOLFSSL_TLS13
- "-v <num> SSL version [0-3], SSLv3(0) - TLS1.2(3)), default", /* 6 */
- "-V Prints valid ssl version numbers"
- ", SSLv3(0) - TLS1.2(3)\n", /* 7 */
-#else
- "-v <num> SSL version [0-4], SSLv3(0) - TLS1.3(4)), default", /* 6 */
- "-V Prints valid ssl version numbers,"
- " SSLv3(0) - TLS1.3(4)\n", /* 7 */
-#endif
- "-l <str> Cipher suite list (: delimited)\n", /* 8 */
- "-c <file> Certificate file, default", /* 9 */
- "-k <file> Key file, default", /* 10 */
- "-A <file> Certificate Authority file, default", /* 11 */
-#ifndef NO_DH
- "-Z <num> Minimum DH key bits, default", /* 12 */
-#endif
- "-b <num> Benchmark <num> connections and print stats\n", /* 13 */
-#ifdef HAVE_ALPN
- "-L <str> Application-Layer Protocol"
- " Negotiation ({C,F}:<list>)\n", /* 14 */
-#endif
- "-B <num> Benchmark throughput"
- " using <num> bytes and print stats\n", /* 15 */
- "-s Use pre Shared keys\n", /* 16 */
- "-d Disable peer checks\n", /* 17 */
- "-D Override Date Errors example\n", /* 18 */
- "-e List Every cipher suite available, \n", /* 19 */
- "-g Send server HTTP GET\n", /* 20 */
- "-u Use UDP DTLS,"
- " add -v 2 for DTLSv1, -v 3 for DTLSv1.2 (default)\n", /* 21 */
-#ifdef WOLFSSL_SCTP
- "-G Use SCTP DTLS,"
- " add -v 2 for DTLSv1, -v 3 for DTLSv1.2 (default)\n", /* 22 */
-#endif
- "-m Match domain name in cert\n", /* 23 */
- "-N Use Non-blocking sockets\n", /* 24 */
-#ifndef NO_SESSION_CACHE
- "-r Resume session\n", /* 25 */
-#endif
- "-w Wait for bidirectional shutdown\n", /* 26 */
- "-M <prot> Use STARTTLS, using <prot> protocol (smtp)\n", /* 27 */
-#ifdef HAVE_SECURE_RENEGOTIATION
- "-R Allow Secure Renegotiation\n", /* 28 */
- "-i Force client Initiated Secure Renegotiation\n", /* 29 */
-#endif
- "-f Fewer packets/group messages\n", /* 30 */
- "-x Disable client cert/key loading\n", /* 31 */
- "-X Driven by eXternal test case\n", /* 32 */
- "-j Use verify callback override\n", /* 33 */
-#ifdef SHOW_SIZES
- "-z Print structure sizes\n", /* 34 */
-#endif
-#ifdef HAVE_SNI
- "-S <str> Use Host Name Indication\n", /* 35 */
-#endif
-#ifdef HAVE_MAX_FRAGMENT
- "-F <num> Use Maximum Fragment Length [1-6]\n", /* 36 */
-#endif
-#ifdef HAVE_TRUNCATED_HMAC
- "-T Use Truncated HMAC\n", /* 37 */
-#endif
-#ifdef HAVE_EXTENDED_MASTER
- "-n Disable Extended Master Secret\n", /* 38 */
-#endif
-#ifdef HAVE_OCSP
- "-o Perform OCSP lookup on peer certificate\n", /* 39 */
- "-O <url> Perform OCSP lookup using <url> as responder\n", /* 40 */
-#endif
-#if defined(HAVE_CERTIFICATE_STATUS_REQUEST) \
- || defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
- "-W <num> Use OCSP Stapling (1 v1, 2 v2, 3 v2 multi)\n", /* 41 */
-#endif
-#if defined(ATOMIC_USER) && !defined(WOLFSSL_AEAD_ONLY)
- "-U Atomic User Record Layer Callbacks\n", /* 42 */
-#endif
-#ifdef HAVE_PK_CALLBACKS
- "-P Public Key Callbacks\n", /* 43 */
-#endif
-#ifdef HAVE_ANON
- "-a Anonymous client\n", /* 44 */
-#endif
-#ifdef HAVE_CRL
- "-C Disable CRL\n", /* 45 */
-#endif
-#ifdef WOLFSSL_TRUST_PEER_CERT
- "-E <file> Path to load trusted peer cert\n", /* 46 */
-#endif
-#ifdef HAVE_WNR
- "-q <file> Whitewood config file, defaults\n", /* 47 */
-#endif
- "-H <arg> Internal tests"
- " [defCipherList, exitWithRet, verifyFail, useSupCurve,\n", /* 48 */
- " loadSSL, disallowETM]\n", /* 49 */
-#ifdef WOLFSSL_TLS13
- "-J Use HelloRetryRequest to choose group for KE\n", /* 50 */
- "-K Key Exchange for PSK not using (EC)DHE\n", /* 51 */
- "-I Update keys and IVs before sending data\n", /* 52 */
-#ifndef NO_DH
- "-y Key Share with FFDHE named groups only\n", /* 53 */
-#endif
-#ifdef HAVE_ECC
- "-Y Key Share with ECC named groups only\n", /* 54 */
-#endif
-#endif /* WOLFSSL_TLS13 */
-#ifdef HAVE_CURVE25519
- "-t Use X25519 for key exchange\n", /* 55 */
-#endif
-#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_POST_HANDSHAKE_AUTH)
- "-Q Support requesting certificate post-handshake\n", /* 56 */
-#endif
-#ifdef WOLFSSL_EARLY_DATA
- "-0 Early data sent to server (0-RTT handshake)\n", /* 57 */
-#endif
-#ifdef WOLFSSL_MULTICAST
- "-3 <grpid> Multicast, grpid < 256\n", /* 58 */
-#endif
- "-1 <num> Display a result by specified language.\n"
- " 0: English, 1: Japanese\n", /* 59 */
-#if !defined(NO_DH) && !defined(HAVE_FIPS) && \
- !defined(HAVE_SELFTEST) && !defined(WOLFSSL_OLD_PRIME_CHECK)
- "-2 Disable DH Prime check\n", /* 60 */
-#endif
-#ifdef HAVE_SECURE_RENEGOTIATION
- "-4 Use resumption for renegotiation\n", /* 61 */
-#endif
-#ifdef HAVE_TRUSTED_CA
- "-5 Use Trusted CA Key Indication\n", /* 62 */
-#endif
-#ifdef HAVE_CURVE448
- "-8 Use X448 for key exchange\n", /* 65 */
-#endif
- NULL,
- },
-#ifndef NO_MULTIBYTE_PRINT
- /* Japanese */
- {
- " 注意 : 全てのファイルは wolfSSL ホーム・ディレクトリからの相対です。"
- "\n", /* 0 */
- "RSAの最大ビットは次のように設定されています: ", /* 1 */
-#ifdef NO_RSA
- "RSAはサポートされていません。\n", /* 2 */
-#elif defined(WOLFSSL_SP_MATH) /* case of SP math only */
-#ifndef WOLFSSL_SP_NO_3072
- "3072\n", /* 2 */
-#elif !defined(WOLFSSL_SP_NO_2048)
- "2048\n", /* 2 */
-#else
- "0\n", /* 2 */
-#endif
-#elif defined(USE_FAST_MATH)
-#else
- "無限\n", /* 2 */
-#endif
- "-? <num> ヘルプ, 使い方を表示\n"
- " 0: 英語、 1: 日本語\n", /* 3 */
- "-h <host> 接続先ホスト, 既定値", /* 4 */
- "-p <num> 接続先ポート, 0は無効, 既定値", /* 5 */
-
-#ifndef WOLFSSL_TLS13
- "-v <num> SSL バージョン [0-3], SSLv3(0) - TLS1.2(3)),"
- " 既定値", /* 6 */
- "-V 有効な ssl バージョン番号を出力, SSLv3(0) -"
- " TLS1.2(3)\n", /* 7 */
-#else
- "-v <num> SSL バージョン [0-4], SSLv3(0) - TLS1.3(4)),"
- " 既定値", /* 6 */
- "-V 有効な ssl バージョン番号を出力, SSLv3(0) -"
- " TLS1.3(4)\n", /* 7 */
-#endif
- "-l <str> 暗号スイートリスト (区切り文字 :)\n", /* 8 */
- "-c <file> 証明書ファイル, 既定値", /* 9 */
- "-k <file> 鍵ファイル, 既定値", /* 10 */
- "-A <file> 認証局ファイル, 既定値", /* 11 */
-#ifndef NO_DH
- "-Z <num> 最小 DH 鍵 ビット, 既定値", /* 12 */
-#endif
- "-b <num> ベンチマーク <num> 接続及び結果出力する\n", /* 13 */
-#ifdef HAVE_ALPN
- "-L <str> アプリケーション層プロトコルネゴシエーションを行う"
- " ({C,F}:<list>)\n", /* 14 */
-#endif
- "-B <num> <num> バイトを用いてのベンチマーク・スループット測定"
- "と結果を出力する\n", /* 15 */
- "-s 事前共有鍵を使用する\n", /* 16 */
- "-d ピア確認を無効とする\n", /* 17 */
- "-D 日付エラー用コールバック例の上書きを行う\n", /* 18 */
- "-e 利用可能な全ての暗号スイートをリスト, \n", /* 19 */
- "-g サーバーへ HTTP GET を送信\n", /* 20 */
- "-u UDP DTLSを使用する。-v 2 を追加指定すると"
- " DTLSv1, -v 3 を追加指定すると DTLSv1.2 (既定値)\n", /* 21 */
-#ifdef WOLFSSL_SCTP
- "-G SCTP DTLSを使用する。-v 2 を追加指定すると"
- " DTLSv1, -v 3 を追加指定すると DTLSv1.2 (既定値)\n", /* 22 */
-#endif
- "-m 証明書内のドメイン名一致を確認する\n", /* 23 */
- "-N ノンブロッキング・ソケットを使用する\n", /* 24 */
-#ifndef NO_SESSION_CACHE
- "-r セッションを継続する\n", /* 25 */
-#endif
- "-w 双方向シャットダウンを待つ\n", /* 26 */
- "-M <prot> STARTTLSを使用する, <prot>プロトコル(smtp)を"
- "使用する\n", /* 27 */
-#ifdef HAVE_SECURE_RENEGOTIATION
- "-R セキュアな再ネゴシエーションを許可する\n", /* 28 */
- "-i クライアント主導のネゴシエーションを強制する\n", /* 29 */
-#endif
- "-f より少ないパケット/グループメッセージを使用する\n",/* 30 */
- "-x クライアントの証明書/鍵のロードを無効する\n", /* 31 */
- "-X 外部テスト・ケースにより動作する\n", /* 32 */
- "-j コールバック・オーバーライドの検証を使用する\n", /* 33 */
-#ifdef SHOW_SIZES
- "-z 構造体のサイズを表示する\n", /* 34 */
-#endif
-#ifdef HAVE_SNI
- "-S <str> ホスト名表示を使用する\n", /* 35 */
-#endif
-#ifdef HAVE_MAX_FRAGMENT
- "-F <num> 最大フラグメント長[1-6]を設定する\n", /* 36 */
-#endif
-#ifdef HAVE_TRUNCATED_HMAC
- "-T Truncated HMACを使用する\n", /* 37 */
-#endif
-#ifdef HAVE_EXTENDED_MASTER
- "-n マスターシークレット拡張を無効にする\n", /* 38 */
-#endif
-#ifdef HAVE_OCSP
- "-o OCSPルックアップをピア証明書で実施する\n", /* 39 */
- "-O <url> OCSPルックアップを、<url>を使用し"
- "応答者として実施する\n", /* 40 */
-#endif
-#if defined(HAVE_CERTIFICATE_STATUS_REQUEST) \
- || defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
- "-W <num> OCSP Staplingを使用する"
- " (1 v1, 2 v2, 3 v2 multi)\n", /* 41 */
-#endif
-#if defined(ATOMIC_USER) && !defined(WOLFSSL_AEAD_ONLY)
- "-U アトミック・ユーザー記録の"
- "コールバックを利用する\n", /* 42 */
-#endif
-#ifdef HAVE_PK_CALLBACKS
- "-P 公開鍵コールバック\n", /* 43 */
-#endif
-#ifdef HAVE_ANON
- "-a 匿名クライアント\n", /* 44 */
-#endif
-#ifdef HAVE_CRL
- "-C CRLを無効\n", /* 45 */
-#endif
-#ifdef WOLFSSL_TRUST_PEER_CERT
- "-E <file> 信頼出来るピアの証明書ロードの為のパス\n", /* 46 */
-#endif
-#ifdef HAVE_WNR
- "-q <file> Whitewood コンフィグファイル, 既定値\n", /* 47 */
-#endif
- "-H <arg> 内部テスト"
- " [defCipherList, exitWithRet, verifyFail, useSupCurve,\n", /* 48 */
- " loadSSL, disallowETM]\n", /* 49 */
-#ifdef WOLFSSL_TLS13
- "-J HelloRetryRequestをKEのグループ選択に使用する\n", /* 50 */
- "-K 鍵交換にPSKを使用、(EC)DHEは使用しない\n", /* 51 */
- "-I データ送信前に、鍵とIVを更新する\n", /* 52 */
-#ifndef NO_DH
- "-y FFDHE名前付きグループとの鍵共有のみ\n", /* 53 */
-#endif
-#ifdef HAVE_ECC
- "-Y ECC名前付きグループとの鍵共有のみ\n", /* 54 */
-#endif
-#endif /* WOLFSSL_TLS13 */
-#ifdef HAVE_CURVE25519
- "-t X25519を鍵交換に使用する\n", /* 55 */
-#endif
-#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_POST_HANDSHAKE_AUTH)
- "-Q ポストハンドシェークの証明要求をサポートする\n", /* 56 */
-#endif
-#ifdef WOLFSSL_EARLY_DATA
- "-0 Early data をサーバーへ送信する"
- "(0-RTTハンドシェイク)\n", /* 57 */
-#endif
-#ifdef WOLFSSL_MULTICAST
- "-3 <grpid> マルチキャスト, grpid < 256\n", /* 58 */
-#endif
- "-1 <num> 指定された言語で結果を表示します。\n"
- " 0: 英語、 1: 日本語\n", /* 59 */
-#if !defined(NO_DH) && !defined(HAVE_FIPS) && \
- !defined(HAVE_SELFTEST) && !defined(WOLFSSL_OLD_PRIME_CHECK)
- "-2 DHプライム番号チェックを無効にする\n", /* 60 */
-#endif
-#ifdef HAVE_SECURE_RENEGOTIATION
- "-4 再交渉に再開を使用\n", /* 61 */
-#endif
-#ifdef HAVE_TRUSTED_CA
- "-5 信頼できる認証局の鍵表示を使用する\n", /* 62 */
-#endif
-#ifdef HAVE_CURVE448
- "-8 Use X448 for key exchange\n", /* 65 */
-#endif
- NULL,
- },
-#endif
-
-};
-
-static void Usage(void)
-{
- int msgid = 0;
- const char** msg = client_usage_msg[lng_index];
-
- printf("%s%s%s", "wolfSSL client ", LIBWOLFSSL_VERSION_STRING,
- msg[msgid]);
-
- /* print out so that scripts can know what the max supported key size is */
- printf("%s", msg[++msgid]);
-#ifdef NO_RSA
- printf("%s", msg[++msgid]);
-#elif defined(WOLFSSL_SP_MATH) /* case of SP math only */
- #ifndef WOLFSSL_SP_NO_3072
- printf("%s", msg[++msgid]);
- #elif !defined(WOLFSSL_SP_NO_2048)
- printf("%s", msg[++msgid]);
- #else
- printf("%s", msg[++msgid]);
- #endif
-#elif defined(USE_FAST_MATH)
- printf("%d\n", FP_MAX_BITS/2);
-#else
- /* normal math has unlimited max size */
- printf("%s", msg[++msgid]);
-#endif
-
- printf("%s", msg[++msgid]); /* ? */
- printf("%s %s\n", msg[++msgid], wolfSSLIP); /* -h */
- printf("%s %d\n", msg[++msgid], wolfSSLPort); /* -p */
-#ifndef WOLFSSL_TLS13
- printf("%s %d\n", msg[++msgid], CLIENT_DEFAULT_VERSION); /* -v */
- printf("%s", msg[++msgid]); /* -V */
-#else
- printf("%s %d\n", msg[++msgid], CLIENT_DEFAULT_VERSION); /* -v */
- printf("%s", msg[++msgid]); /* -V */
-#endif
- printf("%s", msg[++msgid]); /* -l */
- printf("%s %s\n", msg[++msgid], cliCertFile); /* -c */
- printf("%s %s\n", msg[++msgid], cliKeyFile); /* -k */
- printf("%s %s\n", msg[++msgid], caCertFile); /* -A */
-#ifndef NO_DH
- printf("%s %d\n", msg[++msgid], DEFAULT_MIN_DHKEY_BITS);
-#endif
- printf("%s", msg[++msgid]); /* -b */
-#ifdef HAVE_ALPN
- printf("%s", msg[++msgid]); /* -L <str> */
-#endif
- printf("%s", msg[++msgid]); /* -B <num> */
- printf("%s", msg[++msgid]); /* -s */
- printf("%s", msg[++msgid]); /* -d */
- printf("%s", msg[++msgid]); /* -D */
- printf("%s", msg[++msgid]); /* -e */
- printf("%s", msg[++msgid]); /* -g */
- printf("%s", msg[++msgid]); /* -u */
-#ifdef WOLFSSL_SCTP
- printf("%s", msg[++msgid]); /* -G */
-#endif
- printf("%s", msg[++msgid]); /* -m */
- printf("%s", msg[++msgid]); /* -N */
-#ifndef NO_SESSION_CACHE
- printf("%s", msg[++msgid]); /* -r */
-#endif
- printf("%s", msg[++msgid]); /* -w */
- printf("%s", msg[++msgid]); /* -M */
-#ifdef HAVE_SECURE_RENEGOTIATION
- printf("%s", msg[++msgid]); /* -R */
- printf("%s", msg[++msgid]); /* -i */
-#endif
- printf("%s", msg[++msgid]); /* -f */
- printf("%s", msg[++msgid]); /* -x */
- printf("%s", msg[++msgid]); /* -X */
- printf("%s", msg[++msgid]); /* -j */
-#ifdef SHOW_SIZES
- printf("%s", msg[++msgid]); /* -z */
-#endif
-#ifdef HAVE_SNI
- printf("%s", msg[++msgid]); /* -S */
-#endif
-#ifdef HAVE_MAX_FRAGMENT
- printf("%s", msg[++msgid]); /* -F */
-#endif
-#ifdef HAVE_TRUNCATED_HMAC
- printf("%s", msg[++msgid]); /* -T */
-#endif
-#ifdef HAVE_EXTENDED_MASTER
- printf("%s", msg[++msgid]); /* -n */
-#endif
-#ifdef HAVE_OCSP
- printf("%s", msg[++msgid]); /* -o */
- printf("%s", msg[++msgid]); /* -O */
-#endif
-#if defined(HAVE_CERTIFICATE_STATUS_REQUEST) \
- || defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
- printf("%s", msg[++msgid]); /* -W */
-#endif
-#if defined(ATOMIC_USER) && !defined(WOLFSSL_AEAD_ONLY)
- printf("%s", msg[++msgid]); /* -U */
-#endif
-#ifdef HAVE_PK_CALLBACKS
- printf("%s", msg[++msgid]); /* -P */
-#endif
-#ifdef HAVE_ANON
- printf("%s", msg[++msgid]); /* -a */
-#endif
-#ifdef HAVE_CRL
- printf("%s", msg[++msgid]); /* -C */
-#endif
-#ifdef WOLFSSL_TRUST_PEER_CERT
- printf("%s", msg[++msgid]); /* -E */
-#endif
-#ifdef HAVE_WNR
- printf("%s %s\n", msg[++msgid], wnrConfig); /* -q */
-#endif
- printf("%s", msg[++msgid]); /* -H */
- printf("%s", msg[++msgid]); /* more -H options */
-#ifdef WOLFSSL_TLS13
- printf("%s", msg[++msgid]); /* -J */
- printf("%s", msg[++msgid]); /* -K */
- printf("%s", msg[++msgid]); /* -I */
-#ifndef NO_DH
- printf("%s", msg[++msgid]); /* -y */
-#endif
-#ifdef HAVE_ECC
- printf("%s", msg[++msgid]); /* -Y */
-#endif
-#endif /* WOLFSSL_TLS13 */
-#ifdef HAVE_CURVE25519
- printf("%s", msg[++msgid]); /* -t */
-#endif
-#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_POST_HANDSHAKE_AUTH)
- printf("%s", msg[++msgid]); /* -Q */
-#endif
-#ifdef WOLFSSL_EARLY_DATA
- printf("%s", msg[++msgid]); /* -0 */
-#endif
-#ifdef WOLFSSL_MULTICAST
- printf("%s", msg[++msgid]); /* -3 */
-#endif
- printf("%s", msg[++msgid]); /* -1 */
-#if !defined(NO_DH) && !defined(HAVE_FIPS) && \
- !defined(HAVE_SELFTEST) && !defined(WOLFSSL_OLD_PRIME_CHECK)
- printf("%s", msg[++msgid]); /* -2 */
-#endif
-#ifdef HAVE_SECURE_RENEGOTIATION
- printf("%s", msg[++msgid]); /* -4 */
-#endif
-#ifdef HAVE_TRUSTED_CA
- printf("%s", msg[++msgid]); /* -5 */
-#endif
-#ifdef HAVE_CURVE448
- printf("%s", msg[++msgid]); /* -8 */
-#endif
-}
-
-THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
-{
- SOCKET_T sockfd = WOLFSSL_SOCKET_INVALID;
-
- wolfSSL_method_func method = NULL;
- WOLFSSL_CTX* ctx = 0;
- WOLFSSL* ssl = 0;
-
- WOLFSSL* sslResume = 0;
- WOLFSSL_SESSION* session = 0;
- byte* flatSession = NULL;
- int flatSessionSz = 0;
-
-#ifndef WOLFSSL_ALT_TEST_STRINGS
- char msg[32] = "hello wolfssl!"; /* GET may make bigger */
- char resumeMsg[32] = "resuming wolfssl!";
-#else
- char msg[32] = "hello wolfssl!\n";
- char resumeMsg[32] = "resuming wolfssl!\n";
-#endif
-
- char reply[128];
- int msgSz = (int)XSTRLEN(msg);
- int resumeSz = (int)XSTRLEN(resumeMsg);
-
- word16 port = wolfSSLPort;
- char* host = (char*)wolfSSLIP;
- const char* domain = "localhost"; /* can't default to www.wolfssl.com
- because can't tell if we're really
- going there to detect old chacha-poly
- */
-#ifndef WOLFSSL_VXWORKS
- int ch;
-#endif
- int version = CLIENT_INVALID_VERSION;
- int usePsk = 0;
- int useAnon = 0;
- int sendGET = 0;
- int benchmark = 0;
- int block = TEST_BUFFER_SIZE;
- size_t throughput = 0;
- int doDTLS = 0;
- int dtlsUDP = 0;
- int dtlsSCTP = 0;
- int doMcast = 0;
- int matchName = 0;
- int doPeerCheck = 1;
- int nonBlocking = 0;
- int resumeSession = 0;
- int wc_shutdown = 0;
- int disableCRL = 0;
- int externalTest = 0;
- int ret;
- int err = 0;
- int scr = 0; /* allow secure renegotiation */
- int forceScr = 0; /* force client initiaed scr */
- int resumeScr = 0; /* use resumption for renegotiation */
-#ifndef WOLFSSL_NO_CLIENT_AUTH
- int useClientCert = 1;
-#else
- int useClientCert = 0;
-#endif
- int fewerPackets = 0;
- int atomicUser = 0;
-#ifdef HAVE_PK_CALLBACKS
- int pkCallbacks = 0;
- PkCbInfo pkCbInfo;
-#endif
- int overrideDateErrors = 0;
- int minDhKeyBits = DEFAULT_MIN_DHKEY_BITS;
- char* alpnList = NULL;
- unsigned char alpn_opt = 0;
- char* cipherList = NULL;
- int useDefCipherList = 0;
- const char* verifyCert;
- const char* ourCert;
- const char* ourKey;
-
- int doSTARTTLS = 0;
- char* starttlsProt = NULL;
- int useVerifyCb = 0;
- int useSupCurve = 0;
-
-#ifdef WOLFSSL_TRUST_PEER_CERT
- const char* trustCert = NULL;
-#endif
-
-#ifdef HAVE_SNI
- char* sniHostName = NULL;
-#endif
-#ifdef HAVE_TRUSTED_CA
- int trustedCaKeyId = 0;
-#endif
-#ifdef HAVE_MAX_FRAGMENT
- byte maxFragment = 0;
-#endif
-#ifdef HAVE_TRUNCATED_HMAC
- byte truncatedHMAC = 0;
-#endif
-#if defined(HAVE_CERTIFICATE_STATUS_REQUEST) \
- || defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
- byte statusRequest = 0;
-#endif
-#ifdef HAVE_EXTENDED_MASTER
- byte disableExtMasterSecret = 0;
-#endif
- int helloRetry = 0;
- int onlyKeyShare = 0;
-#ifdef WOLFSSL_TLS13
- int noPskDheKe = 0;
- int postHandAuth = 0;
-#endif
- int updateKeysIVs = 0;
- int earlyData = 0;
-#ifdef WOLFSSL_MULTICAST
- byte mcastID = 0;
-#endif
-#if !defined(NO_DH) && !defined(HAVE_FIPS) && \
- !defined(HAVE_SELFTEST) && !defined(WOLFSSL_OLD_PRIME_CHECK)
- int doDhKeyCheck = 1;
-#endif
-
-#ifdef HAVE_OCSP
- int useOcsp = 0;
- char* ocspUrl = NULL;
-#endif
- int useX25519 = 0;
- int useX448 = 0;
- int exitWithRet = 0;
- int loadCertKeyIntoSSLObj = 0;
-
-#ifdef HAVE_ENCRYPT_THEN_MAC
- int disallowETM = 0;
-#endif
-
-#ifdef HAVE_WNR
- const char* wnrConfigFile = wnrConfig;
-#endif
- char buffer[WOLFSSL_MAX_ERROR_SZ];
-
- int argc = ((func_args*)args)->argc;
- char** argv = ((func_args*)args)->argv;
-
-
-#ifdef WOLFSSL_STATIC_MEMORY
- #if (defined(HAVE_ECC) && !defined(ALT_ECC_SIZE)) \
- || defined(SESSION_CERTS)
- /* big enough to handle most cases including session certs */
- byte memory[320000];
- #else
- byte memory[80000];
- #endif
- byte memoryIO[34500]; /* max for IO buffer (TLS packet can be 16k) */
- WOLFSSL_MEM_CONN_STATS ssl_stats;
- #ifdef DEBUG_WOLFSSL
- WOLFSSL_MEM_STATS mem_stats;
- #endif
- WOLFSSL_HEAP_HINT *heap = NULL;
-#endif
-
- ((func_args*)args)->return_code = -1; /* error state */
-
-#ifndef NO_RSA
- verifyCert = caCertFile;
- ourCert = cliCertFile;
- ourKey = cliKeyFile;
-#else
- #ifdef HAVE_ECC
- verifyCert = caEccCertFile;
- ourCert = cliEccCertFile;
- ourKey = cliEccKeyFile;
- #elif defined(HAVE_ED25519)
- verifyCert = caEdCertFile;
- ourCert = cliEdCertFile;
- ourKey = cliEdKeyFile;
- #elif defined(HAVE_ED448)
- verifyCert = caEd448CertFile;
- ourCert = cliEd448CertFile;
- ourKey = cliEd448KeyFile;
- #else
- verifyCert = NULL;
- ourCert = NULL;
- ourKey = NULL;
- #endif
-#endif
-
- (void)resumeSz;
- (void)session;
- (void)flatSession;
- (void)flatSessionSz;
- (void)sslResume;
- (void)atomicUser;
- (void)scr;
- (void)forceScr;
- (void)resumeScr;
- (void)ourKey;
- (void)ourCert;
- (void)verifyCert;
- (void)useClientCert;
- (void)overrideDateErrors;
- (void)disableCRL;
- (void)minDhKeyBits;
- (void)alpnList;
- (void)alpn_opt;
- (void)updateKeysIVs;
- (void)earlyData;
- (void)useX25519;
- (void)useX448;
- (void)helloRetry;
- (void)onlyKeyShare;
- (void)useSupCurve;
- (void)loadCertKeyIntoSSLObj;
-
- StackTrap();
-
-#ifndef WOLFSSL_VXWORKS
- /* Not used: All used */
- while ((ch = mygetopt(argc, argv, "?:"
- "ab:c:defgh:ijk:l:mnop:q:rstuv:wxyz"
- "A:B:CDE:F:GH:IJKL:M:NO:PQRS:TUVW:XYZ:"
- "01:23:458")) != -1) {
- switch (ch) {
- case '?' :
- if(myoptarg!=NULL) {
- lng_index = atoi(myoptarg);
- if(lng_index<0||lng_index>1){
- lng_index = 0;
- }
- }
- Usage();
- XEXIT_T(EXIT_SUCCESS);
-
- case 'g' :
- sendGET = 1;
- break;
-
- case 'd' :
- doPeerCheck = 0;
- break;
-
- case 'e' :
- ShowCiphers();
- XEXIT_T(EXIT_SUCCESS);
-
- case 'D' :
- overrideDateErrors = 1;
- break;
-
- case 'C' :
- #ifdef HAVE_CRL
- disableCRL = 1;
- #endif
- break;
-
- case 'u' :
- doDTLS = 1;
- dtlsUDP = 1;
- break;
-
- case 'G' :
- #ifdef WOLFSSL_SCTP
- doDTLS = 1;
- dtlsSCTP = 1;
- #endif
- break;
-
- case 's' :
- usePsk = 1;
- break;
-
- #ifdef WOLFSSL_TRUST_PEER_CERT
- case 'E' :
- trustCert = myoptarg;
- break;
- #endif
-
- case 'm' :
- matchName = 1;
- break;
-
- case 'x' :
- useClientCert = 0;
- break;
-
- case 'X' :
- externalTest = 1;
- break;
-
- case 'f' :
- fewerPackets = 1;
- break;
-
- case 'U' :
- #if defined(ATOMIC_USER) && !defined(WOLFSSL_AEAD_ONLY)
- atomicUser = 1;
- #endif
- break;
-
- case 'P' :
- #ifdef HAVE_PK_CALLBACKS
- pkCallbacks = 1;
- #endif
- break;
-
- case 'h' :
- host = myoptarg;
- domain = myoptarg;
- break;
-
- case 'p' :
- port = (word16)atoi(myoptarg);
- #if !defined(NO_MAIN_DRIVER) || defined(USE_WINDOWS_API)
- if (port == 0)
- err_sys("port number cannot be 0");
- #endif
- break;
-
- case 'v' :
- if (myoptarg[0] == 'd') {
- version = CLIENT_DOWNGRADE_VERSION;
- break;
- }
- #if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
- else if (myoptarg[0] == 'e') {
- version = EITHER_DOWNGRADE_VERSION;
- #ifndef NO_CERTS
- loadCertKeyIntoSSLObj = 1;
- #endif
- break;
- }
- #endif
- version = atoi(myoptarg);
- if (version < 0 || version > 4) {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
- break;
-
- case 'V' :
- ShowVersions();
- XEXIT_T(EXIT_SUCCESS);
-
- case 'l' :
- cipherList = myoptarg;
- break;
-
- case 'H' :
- if (XSTRNCMP(myoptarg, "defCipherList", 13) == 0) {
- printf("Using default cipher list for testing\n");
- useDefCipherList = 1;
- }
- else if (XSTRNCMP(myoptarg, "exitWithRet", 11) == 0) {
- printf("Skip exit() for testing\n");
- exitWithRet = 1;
- }
- else if (XSTRNCMP(myoptarg, "verifyFail", 10) == 0) {
- printf("Verify should fail\n");
- myVerifyFail = 1;
- }
- else if (XSTRNCMP(myoptarg, "useSupCurve", 11) == 0) {
- printf("Attempting to test use supported curve\n");
- #if defined(HAVE_ECC) && defined(HAVE_SUPPORTED_CURVES)
- useSupCurve = 1;
- #else
- printf("Supported curves not compiled in!\n");
- #endif
- }
- else if (XSTRNCMP(myoptarg, "loadSSL", 7) == 0) {
- printf("Load cert/key into wolfSSL object\n");
- #ifndef NO_CERTS
- loadCertKeyIntoSSLObj = 1;
- #else
- printf("Certs turned off with NO_CERTS!\n");
- #endif
- }
- else if (XSTRNCMP(myoptarg, "disallowETM", 7) == 0) {
- printf("Disallow Enrypt-Then-MAC\n");
- #ifdef HAVE_ENCRYPT_THEN_MAC
- disallowETM = 1;
- #endif
- }
- else {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
- break;
-
- case 'A' :
- verifyCert = myoptarg;
- break;
-
- case 'c' :
- ourCert = myoptarg;
- break;
-
- case 'k' :
- ourKey = myoptarg;
- break;
-
- case 'Z' :
- #ifndef NO_DH
- minDhKeyBits = atoi(myoptarg);
- if (minDhKeyBits <= 0 || minDhKeyBits > 16000) {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
- #endif
- break;
-
- case 'b' :
- benchmark = atoi(myoptarg);
- if (benchmark < 0 || benchmark > 1000000) {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
- break;
-
- case 'B' :
- throughput = atol(myoptarg);
- for (; *myoptarg != '\0'; myoptarg++) {
- if (*myoptarg == ',') {
- block = atoi(myoptarg + 1);
- break;
- }
- }
- if (throughput == 0 || block <= 0) {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
- break;
-
- case 'N' :
- nonBlocking = 1;
- break;
-
- case 'r' :
- resumeSession = 1;
- break;
-
- case 'w' :
- wc_shutdown = 1;
- break;
-
- case 'R' :
- #ifdef HAVE_SECURE_RENEGOTIATION
- scr = 1;
- #endif
- break;
-
- case 'i' :
- #ifdef HAVE_SECURE_RENEGOTIATION
- scr = 1;
- forceScr = 1;
- #endif
- break;
-
- case 'z' :
- #ifndef WOLFSSL_LEANPSK
- wolfSSL_GetObjectSize();
- #endif
- break;
-
- case 'S' :
- if (XSTRNCMP(myoptarg, "check", 5) == 0) {
- #ifdef HAVE_SNI
- printf("SNI is: ON\n");
- #else
- printf("SNI is: OFF\n");
- #endif
- XEXIT_T(EXIT_SUCCESS);
- }
- #ifdef HAVE_SNI
- sniHostName = myoptarg;
- #endif
- break;
-
- case 'F' :
- #ifdef HAVE_MAX_FRAGMENT
- maxFragment = atoi(myoptarg);
- if (maxFragment < WOLFSSL_MFL_MIN ||
- maxFragment > WOLFSSL_MFL_MAX) {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
- #endif
- break;
-
- case 'T' :
- #ifdef HAVE_TRUNCATED_HMAC
- truncatedHMAC = 1;
- #endif
- break;
-
- case 'n' :
- #ifdef HAVE_EXTENDED_MASTER
- disableExtMasterSecret = 1;
- #endif
- break;
-
- case 'W' :
- #if defined(HAVE_CERTIFICATE_STATUS_REQUEST) \
- || defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
- statusRequest = atoi(myoptarg);
- if (statusRequest > OCSP_STAPLING_OPT_MAX) {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
- #endif
- break;
-
- case 'o' :
- #ifdef HAVE_OCSP
- useOcsp = 1;
- #endif
- break;
-
- case 'O' :
- #ifdef HAVE_OCSP
- useOcsp = 1;
- ocspUrl = myoptarg;
- #endif
- break;
-
- case 'a' :
- #ifdef HAVE_ANON
- useAnon = 1;
- #endif
- break;
-
- case 'L' :
- #ifdef HAVE_ALPN
- alpnList = myoptarg;
-
- if (alpnList[0] == 'C' && alpnList[1] == ':')
- alpn_opt = WOLFSSL_ALPN_CONTINUE_ON_MISMATCH;
- else if (alpnList[0] == 'F' && alpnList[1] == ':')
- alpn_opt = WOLFSSL_ALPN_FAILED_ON_MISMATCH;
- else {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
-
- alpnList += 2;
-
- #endif
- break;
-
- case 'M' :
- doSTARTTLS = 1;
- starttlsProt = myoptarg;
-
- if (XSTRNCMP(starttlsProt, "smtp", 4) != 0) {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
-
- break;
-
- case 'q' :
- #ifdef HAVE_WNR
- wnrConfigFile = myoptarg;
- #endif
- break;
-
- case 'J' :
- #ifdef WOLFSSL_TLS13
- helloRetry = 1;
- #endif
- break;
-
- case 'K' :
- #ifdef WOLFSSL_TLS13
- noPskDheKe = 1;
- #endif
- break;
-
- case 'I' :
- #ifdef WOLFSSL_TLS13
- updateKeysIVs = 1;
- #endif
- break;
-
- case 'y' :
- #if defined(WOLFSSL_TLS13) && !defined(NO_DH)
- onlyKeyShare = 1;
- #endif
- break;
-
- case 'Y' :
- #if defined(WOLFSSL_TLS13) && defined(HAVE_ECC)
- onlyKeyShare = 2;
- #endif
- break;
-
- case 'j' :
- useVerifyCb = 1;
- break;
-
- case 't' :
- #ifdef HAVE_CURVE25519
- useX25519 = 1;
- #ifdef HAVE_ECC
- useSupCurve = 1;
- #ifdef WOLFSSL_TLS13
- onlyKeyShare = 2;
- #endif
- #endif
- #endif
- break;
-
- case 'Q' :
- #if defined(WOLFSSL_TLS13) && \
- defined(WOLFSSL_POST_HANDSHAKE_AUTH)
- postHandAuth = 1;
- #endif
- break;
-
- case '0' :
- #ifdef WOLFSSL_EARLY_DATA
- earlyData = 1;
- #endif
- break;
-
- case '1' :
- lng_index = atoi(myoptarg);
- if(lng_index<0||lng_index>1){
- lng_index = 0;
- }
- break;
-
- case '2' :
- #if !defined(NO_DH) && !defined(HAVE_FIPS) && \
- !defined(HAVE_SELFTEST) && !defined(WOLFSSL_OLD_PRIME_CHECK)
- doDhKeyCheck = 0;
- #endif
- break;
-
- case '3' :
- #ifdef WOLFSSL_MULTICAST
- doMcast = 1;
- mcastID = (byte)(atoi(myoptarg) & 0xFF);
- #endif
- break;
-
- case '4' :
- #ifdef HAVE_SECURE_RENEGOTIATION
- scr = 1;
- forceScr = 1;
- resumeScr = 1;
- #endif
- break;
-
- case '5' :
- #ifdef HAVE_TRUSTED_CA
- trustedCaKeyId = 1;
- #endif /* HAVE_TRUSTED_CA */
- break;
-
- case '8' :
- #ifdef HAVE_CURVE448
- useX448 = 1;
- #ifdef HAVE_ECC
- useSupCurve = 1;
- #ifdef WOLFSSL_TLS13
- onlyKeyShare = 2;
- #endif
- #endif
- #endif
- break;
-
- default:
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
- }
-
- myoptind = 0; /* reset for test cases */
-#endif /* !WOLFSSL_VXWORKS */
-
- if (externalTest) {
- /* detect build cases that wouldn't allow test against wolfssl.com */
- int done = 0;
-
- #ifdef NO_RSA
- done += 1; /* require RSA for external tests */
- #endif
-
- if (!XSTRNCMP(domain, "www.globalsign.com", 14)) {
- /* www.globalsign.com does not respond to ipv6 ocsp requests */
- #if defined(TEST_IPV6) && defined(HAVE_OCSP)
- done += 1;
- #endif
-
- /* www.globalsign.com has limited supported cipher suites */
- #if defined(NO_AES) && defined(HAVE_OCSP)
- done += 1;
- #endif
-
- /* www.globalsign.com only supports static RSA or ECDHE with AES */
- /* We cannot expect users to have on static RSA so test for ECC only
- * as some users will most likely be on 32-bit systems where ECC
- * is not enabled by default */
- #if defined(HAVE_OCSP) && !defined(HAVE_ECC)
- done += 1;
- #endif
- }
-
- #ifndef NO_PSK
- if (usePsk) {
- done += 1; /* don't perform exernal tests if PSK is enabled */
- }
- #endif
-
- #ifdef NO_SHA
- done += 1; /* external cert chain most likely has SHA */
- #endif
-
- #if !defined(HAVE_ECC) && !defined(WOLFSSL_STATIC_RSA) \
- || ( defined(HAVE_ECC) && !defined(HAVE_SUPPORTED_CURVES) \
- && !defined(WOLFSSL_STATIC_RSA) )
- /* google needs ECDHE+Supported Curves or static RSA */
- if (!XSTRNCMP(domain, "www.google.com", 14))
- done += 1;
- #endif
-
- #if !defined(HAVE_ECC) && !defined(WOLFSSL_STATIC_RSA)
- /* wolfssl needs ECDHE or static RSA */
- if (!XSTRNCMP(domain, "www.wolfssl.com", 15))
- done += 1;
- #endif
-
- #if !defined(WOLFSSL_SHA384)
- if (!XSTRNCMP(domain, "www.wolfssl.com", 15)) {
- /* wolfssl need sha384 for cert chain verify */
- done += 1;
- }
- #endif
-
- #if !defined(HAVE_AESGCM) && defined(NO_AES) && \
- !(defined(HAVE_CHACHA) && defined(HAVE_POLY1305))
- /* need at least one of these for external tests */
- done += 1;
- #endif
-
- #if defined(HAVE_QSH)
- /*currently google server rejects client hello with QSH extension.*/
- done += 1;
- #endif
-
- /* For the external test, if we disable AES, GoDaddy will reject the
- * connection. They only currently support AES suites, RC4 and 3DES
- * suites. With AES disabled we only offer PolyChacha suites. */
- #if defined(NO_AES) && !defined(HAVE_AESGCM)
- if (!XSTRNCMP(domain, "www.wolfssl.com", 15)) {
- done += 1;
- }
- #endif
-
- if (done) {
- printf("external test can't be run in this mode\n");
-
- ((func_args*)args)->return_code = 0;
- XEXIT_T(EXIT_SUCCESS);
- }
- }
-
- /* sort out DTLS versus TLS versions */
- if (version == CLIENT_INVALID_VERSION) {
- if (doDTLS)
- version = CLIENT_DTLS_DEFAULT_VERSION;
- else
- version = CLIENT_DEFAULT_VERSION;
- }
- else {
- if (doDTLS) {
- if (version == 3)
- version = -2;
- #if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
- else if (version == EITHER_DOWNGRADE_VERSION)
- version = -3;
- #endif
- else
- version = -1;
- }
- }
-
-#ifdef HAVE_WNR
- if (wc_InitNetRandom(wnrConfigFile, NULL, 5000) != 0)
- err_sys("can't load whitewood net random config file");
-#endif
-
- switch (version) {
-#ifndef NO_OLD_TLS
- #ifdef WOLFSSL_ALLOW_SSLV3
- case 0:
- method = wolfSSLv3_client_method_ex;
- break;
- #endif
-
- #ifndef NO_TLS
- #ifdef WOLFSSL_ALLOW_TLSV10
- case 1:
- method = wolfTLSv1_client_method_ex;
- break;
- #endif
-
- case 2:
- method = wolfTLSv1_1_client_method_ex;
- break;
- #endif /* !NO_TLS */
-#endif /* !NO_OLD_TLS */
-
-#ifndef NO_TLS
- #ifndef WOLFSSL_NO_TLS12
- case 3:
- method = wolfTLSv1_2_client_method_ex;
- break;
- #endif
-
- #ifdef WOLFSSL_TLS13
- case 4:
- method = wolfTLSv1_3_client_method_ex;
- break;
- #endif
-
- case CLIENT_DOWNGRADE_VERSION:
- method = wolfSSLv23_client_method_ex;
- break;
- #if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
- case EITHER_DOWNGRADE_VERSION:
- method = wolfSSLv23_method_ex;
- break;
- #endif
-#endif /* NO_TLS */
-
-#ifdef WOLFSSL_DTLS
- #ifndef NO_OLD_TLS
- case -1:
- method = wolfDTLSv1_client_method_ex;
- break;
- #endif
-
- #ifndef WOLFSSL_NO_TLS12
- case -2:
- method = wolfDTLSv1_2_client_method_ex;
- break;
- #endif
- #if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
- case -3:
- method = wolfDTLSv1_2_method_ex;
- break;
- #endif
-#endif
-
- default:
- err_sys("Bad SSL version");
- break;
- }
-
- if (method == NULL)
- err_sys("unable to get method");
-
-
-#ifdef WOLFSSL_STATIC_MEMORY
- #ifdef DEBUG_WOLFSSL
- /* print off helper buffer sizes for use with static memory
- * printing to stderr in case of debug mode turned on */
- fprintf(stderr, "static memory management size = %d\n",
- wolfSSL_MemoryPaddingSz());
- fprintf(stderr, "calculated optimum general buffer size = %d\n",
- wolfSSL_StaticBufferSz(memory, sizeof(memory), 0));
- fprintf(stderr, "calculated optimum IO buffer size = %d\n",
- wolfSSL_StaticBufferSz(memoryIO, sizeof(memoryIO),
- WOLFMEM_IO_POOL_FIXED));
- #endif /* DEBUG_WOLFSSL */
-
- if (wc_LoadStaticMemory(&heap, memory, sizeof(memory), WOLFMEM_GENERAL, 1)
- != 0) {
- err_sys("unable to load static memory");
- }
-
- ctx = wolfSSL_CTX_new_ex(method(heap), heap);
- if (ctx == NULL)
- err_sys("unable to get ctx");
-
- if (wolfSSL_CTX_load_static_memory(&ctx, NULL, memoryIO, sizeof(memoryIO),
- WOLFMEM_IO_POOL_FIXED | WOLFMEM_TRACK_STATS, 1) != WOLFSSL_SUCCESS) {
- err_sys("unable to load static memory");
- }
-#else
- ctx = wolfSSL_CTX_new(method(NULL));
- if (ctx == NULL)
- err_sys("unable to get ctx");
-#endif
-
-#ifdef SINGLE_THREADED
- if (wolfSSL_CTX_new_rng(ctx) != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("Single Threaded new rng at CTX failed");
- }
-#endif
-
- if (cipherList && !useDefCipherList) {
- if (wolfSSL_CTX_set_cipher_list(ctx, cipherList) != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("client can't set cipher list 1");
- }
- }
-
-#ifdef WOLFSSL_LEANPSK
- if (!usePsk) {
- usePsk = 1;
- }
-#endif
-
-#if defined(NO_RSA) && !defined(HAVE_ECC) && !defined(HAVE_ED25519) && \
- !defined(HAVE_ED448)
- if (!usePsk) {
- usePsk = 1;
- }
-#endif
-
- if (fewerPackets)
- wolfSSL_CTX_set_group_messages(ctx);
-
-#ifndef NO_DH
- if (wolfSSL_CTX_SetMinDhKey_Sz(ctx, (word16)minDhKeyBits)
- != WOLFSSL_SUCCESS) {
- err_sys("Error setting minimum DH key size");
- }
-#endif
-
- if (usePsk) {
-#ifndef NO_PSK
- wolfSSL_CTX_set_psk_client_callback(ctx, my_psk_client_cb);
- #ifdef WOLFSSL_TLS13
- wolfSSL_CTX_set_psk_client_tls13_callback(ctx, my_psk_client_tls13_cb);
- #endif
- if (cipherList == NULL) {
- const char *defaultCipherList;
- #if defined(HAVE_AESGCM) && !defined(NO_DH)
- #ifdef WOLFSSL_TLS13
- defaultCipherList = "DHE-PSK-AES128-GCM-SHA256:"
- "TLS13-AES128-GCM-SHA256";
- #else
- defaultCipherList = "DHE-PSK-AES128-GCM-SHA256";
- #endif
- #elif defined(HAVE_NULL_CIPHER)
- defaultCipherList = "PSK-NULL-SHA256";
- #else
- defaultCipherList = "PSK-AES128-CBC-SHA256";
- #endif
- if (wolfSSL_CTX_set_cipher_list(ctx,defaultCipherList)
- !=WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("client can't set cipher list 2");
- }
- }
-#endif
- if (useClientCert) {
- useClientCert = 0;
- }
- }
-
- if (useAnon) {
-#ifdef HAVE_ANON
- if (cipherList == NULL || (cipherList && useDefCipherList)) {
- const char* defaultCipherList;
- wolfSSL_CTX_allow_anon_cipher(ctx);
- defaultCipherList = "ADH-AES256-GCM-SHA384:"
- "ADH-AES128-SHA";
- if (wolfSSL_CTX_set_cipher_list(ctx,defaultCipherList)
- != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("client can't set cipher list 4");
- }
- }
-#endif
- if (useClientCert) {
- useClientCert = 0;
- }
- }
-
-#ifdef WOLFSSL_SCTP
- if (dtlsSCTP)
- wolfSSL_CTX_dtls_set_sctp(ctx);
-#endif
-
-#ifdef WOLFSSL_ENCRYPTED_KEYS
- wolfSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
-#endif
-
-#if defined(WOLFSSL_SNIFFER)
- if (cipherList == NULL) {
- /* don't use EDH, can't sniff tmp keys */
- if (wolfSSL_CTX_set_cipher_list(ctx, "AES128-SHA") != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("client can't set cipher list 3");
- }
- }
-#endif
-
-#ifdef HAVE_OCSP
- if (useOcsp) {
- #ifdef HAVE_IO_TIMEOUT
- wolfIO_SetTimeout(DEFAULT_TIMEOUT_SEC);
- #endif
-
- if (ocspUrl != NULL) {
- wolfSSL_CTX_SetOCSP_OverrideURL(ctx, ocspUrl);
- wolfSSL_CTX_EnableOCSP(ctx, WOLFSSL_OCSP_NO_NONCE
- | WOLFSSL_OCSP_URL_OVERRIDE);
- }
- else {
- wolfSSL_CTX_EnableOCSP(ctx, WOLFSSL_OCSP_CHECKALL);
- }
-
- #ifdef WOLFSSL_NONBLOCK_OCSP
- wolfSSL_CTX_SetOCSP_Cb(ctx, OCSPIOCb, OCSPRespFreeCb, NULL);
- #endif
- }
-#endif
-
-#ifdef USER_CA_CB
- wolfSSL_CTX_SetCACb(ctx, CaCb);
-#endif
-
-#ifdef HAVE_EXT_CACHE
- wolfSSL_CTX_sess_set_get_cb(ctx, mySessGetCb);
- wolfSSL_CTX_sess_set_new_cb(ctx, mySessNewCb);
- wolfSSL_CTX_sess_set_remove_cb(ctx, mySessRemCb);
-#endif
-
-#ifndef NO_CERTS
- if (useClientCert && !loadCertKeyIntoSSLObj){
- #ifndef TEST_LOAD_BUFFER
- if (wolfSSL_CTX_use_certificate_chain_file(ctx, ourCert)
- != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("can't load client cert file, check file and run from"
- " wolfSSL home dir");
- }
- #else
- load_buffer(ctx, ourCert, WOLFSSL_CERT_CHAIN);
- #endif
- }
-
- #ifdef HAVE_PK_CALLBACKS
- pkCbInfo.ourKey = ourKey;
- #endif
- if (useClientCert && !loadCertKeyIntoSSLObj
- #if defined(HAVE_PK_CALLBACKS) && defined(TEST_PK_PRIVKEY)
- && !pkCallbacks
- #endif
- ) {
- #ifndef TEST_LOAD_BUFFER
- if (wolfSSL_CTX_use_PrivateKey_file(ctx, ourKey, WOLFSSL_FILETYPE_PEM)
- != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("can't load client private key file, check file and run "
- "from wolfSSL home dir");
- }
- #else
- load_buffer(ctx, ourKey, WOLFSSL_KEY);
- #endif
- }
-
- if (!usePsk && !useAnon && !useVerifyCb && !myVerifyFail) {
- #ifndef TEST_LOAD_BUFFER
- unsigned int verify_flags = 0;
- #ifdef TEST_BEFORE_DATE
- verify_flags |= WOLFSSL_LOAD_FLAG_DATE_ERR_OKAY;
- #endif
- if (wolfSSL_CTX_load_verify_locations_ex(ctx, verifyCert, 0, verify_flags)
- != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("can't load ca file, Please run from wolfSSL home dir");
- }
- #else
- load_buffer(ctx, verifyCert, WOLFSSL_CA);
- #endif /* !NO_FILESYSTEM */
-
- #ifdef HAVE_ECC
- /* load ecc verify too, echoserver uses it by default w/ ecc */
- #ifndef TEST_LOAD_BUFFER
- if (wolfSSL_CTX_load_verify_locations_ex(ctx, eccCertFile, 0, verify_flags)
- != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("can't load ecc ca file, Please run from wolfSSL home dir");
- }
- #else
- load_buffer(ctx, eccCertFile, WOLFSSL_CA);
- #endif /* !TEST_LOAD_BUFFER */
- #endif /* HAVE_ECC */
- #if defined(WOLFSSL_TRUST_PEER_CERT) && !defined(NO_FILESYSTEM)
- if (trustCert) {
- if ((ret = wolfSSL_CTX_trust_peer_cert(ctx, trustCert,
- WOLFSSL_FILETYPE_PEM)) != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("can't load trusted peer cert file");
- }
- }
- #endif /* WOLFSSL_TRUST_PEER_CERT && !NO_FILESYSTEM */
- }
- if (useVerifyCb || myVerifyFail)
- wolfSSL_CTX_set_verify(ctx, WOLFSSL_VERIFY_PEER, myVerify);
- else if (!usePsk && !useAnon && doPeerCheck == 0)
- wolfSSL_CTX_set_verify(ctx, WOLFSSL_VERIFY_NONE, 0);
- else if (!usePsk && !useAnon && overrideDateErrors == 1)
- wolfSSL_CTX_set_verify(ctx, WOLFSSL_VERIFY_PEER, myDateCb);
-#endif /* !NO_CERTS */
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- ret = wolfAsync_DevOpen(&devId);
- if (ret < 0) {
- printf("Async device open failed\nRunning without async\n");
- }
- wolfSSL_CTX_UseAsync(ctx, devId);
-#endif /* WOLFSSL_ASYNC_CRYPT */
-
-#ifdef HAVE_SNI
- if (sniHostName) {
- if (wolfSSL_CTX_UseSNI(ctx, 0, sniHostName,
- (word16) XSTRLEN(sniHostName)) != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("UseSNI failed");
- }
- }
-#endif
-#ifdef HAVE_MAX_FRAGMENT
- if (maxFragment)
- if (wolfSSL_CTX_UseMaxFragment(ctx, maxFragment) != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("UseMaxFragment failed");
- }
-#endif
-#ifdef HAVE_TRUNCATED_HMAC
- if (truncatedHMAC)
- if (wolfSSL_CTX_UseTruncatedHMAC(ctx) != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("UseTruncatedHMAC failed");
- }
-#endif
-#ifdef HAVE_SESSION_TICKET
- if (wolfSSL_CTX_UseSessionTicket(ctx) != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("UseSessionTicket failed");
- }
-#endif
-#ifdef HAVE_EXTENDED_MASTER
- if (disableExtMasterSecret)
- if (wolfSSL_CTX_DisableExtendedMasterSecret(ctx) != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("DisableExtendedMasterSecret failed");
- }
-#endif
-#if defined(HAVE_SUPPORTED_CURVES)
- #if defined(HAVE_CURVE25519)
- if (useX25519) {
- if (wolfSSL_CTX_UseSupportedCurve(ctx, WOLFSSL_ECC_X25519)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to support X25519");
- }
- }
- #endif /* HAVE_CURVE25519 */
- #if defined(HAVE_CURVE448)
- if (useX448) {
- if (wolfSSL_CTX_UseSupportedCurve(ctx, WOLFSSL_ECC_X448)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to support X448");
- }
- }
- #endif /* HAVE_CURVE448 */
- #ifdef HAVE_ECC
- if (useSupCurve) {
- #if !defined(NO_ECC_SECP) && \
- (defined(HAVE_ECC384) || defined(HAVE_ALL_CURVES))
- if (wolfSSL_CTX_UseSupportedCurve(ctx, WOLFSSL_ECC_SECP384R1)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to support secp384r1");
- }
- #endif
- #if !defined(NO_ECC_SECP) && \
- (!defined(NO_ECC256) || defined(HAVE_ALL_CURVES))
- if (wolfSSL_CTX_UseSupportedCurve(ctx, WOLFSSL_ECC_SECP256R1)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to support secp256r1");
- }
- #endif
- }
- #endif /* HAVE_ECC */
- #ifdef HAVE_FFDHE_2048
- if (useSupCurve) {
- if (wolfSSL_CTX_UseSupportedCurve(ctx, WOLFSSL_FFDHE_2048)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to support FFDHE 2048");
- }
- }
- #endif
-#endif /* HAVE_SUPPORTED_CURVES */
-
-#ifdef WOLFSSL_TLS13
- if (noPskDheKe)
- wolfSSL_CTX_no_dhe_psk(ctx);
-#endif
-#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_POST_HANDSHAKE_AUTH)
- if (postHandAuth)
- wolfSSL_CTX_allow_post_handshake_auth(ctx);
-#endif
-
- if (benchmark) {
- ((func_args*)args)->return_code =
- ClientBenchmarkConnections(ctx, host, port, dtlsUDP, dtlsSCTP,
- benchmark, resumeSession, useX25519,
- useX448, helloRetry, onlyKeyShare,
- version, earlyData);
- wolfSSL_CTX_free(ctx); ctx = NULL;
- XEXIT_T(EXIT_SUCCESS);
- }
-
- if (throughput) {
- ((func_args*)args)->return_code =
- ClientBenchmarkThroughput(ctx, host, port, dtlsUDP, dtlsSCTP,
- block, throughput, useX25519, useX448);
- wolfSSL_CTX_free(ctx); ctx = NULL;
- XEXIT_T(EXIT_SUCCESS);
- }
-
- #if defined(WOLFSSL_MDK_ARM)
- wolfSSL_CTX_set_verify(ctx, WOLFSSL_VERIFY_NONE, 0);
- #endif
-
- #if defined(OPENSSL_EXTRA)
- if (wolfSSL_CTX_get_read_ahead(ctx) != 0) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("bad read ahead default value");
- }
- if (wolfSSL_CTX_set_read_ahead(ctx, 1) != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("error setting read ahead value");
- }
- #endif
-
-#if defined(WOLFSSL_STATIC_MEMORY) && defined(DEBUG_WOLFSSL)
- fprintf(stderr, "Before creating SSL\n");
- if (wolfSSL_CTX_is_static_memory(ctx, &mem_stats) != 1)
- err_sys("ctx not using static memory");
- if (wolfSSL_PrintStats(&mem_stats) != 1) /* function in test.h */
- err_sys("error printing out memory stats");
-#endif
-
- if (doMcast) {
-#ifdef WOLFSSL_MULTICAST
- wolfSSL_CTX_mcast_set_member_id(ctx, mcastID);
- if (wolfSSL_CTX_set_cipher_list(ctx, "WDM-NULL-SHA256")
- != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("Couldn't set multicast cipher list.");
- }
-#endif
- }
-
-#ifdef HAVE_PK_CALLBACKS
- if (pkCallbacks)
- SetupPkCallbacks(ctx);
-#endif
-
- ssl = wolfSSL_new(ctx);
- if (ssl == NULL) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("unable to get SSL object");
- }
-
-
-#ifndef NO_CERTS
- if (useClientCert && loadCertKeyIntoSSLObj){
- #ifndef TEST_LOAD_BUFFER
- if (wolfSSL_use_certificate_chain_file(ssl, ourCert)
- != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("can't load client cert file, check file and run from"
- " wolfSSL home dir");
- }
- #else
- load_ssl_buffer(ssl, ourCert, WOLFSSL_CERT_CHAIN);
- #endif
- }
-
- if (loadCertKeyIntoSSLObj
- #if defined(HAVE_PK_CALLBACKS) && defined(TEST_PK_PRIVKEY)
- && !pkCallbacks
- #endif
- ) {
- #ifndef TEST_LOAD_BUFFER
- if (wolfSSL_use_PrivateKey_file(ssl, ourKey, WOLFSSL_FILETYPE_PEM)
- != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("can't load client private key file, check file and run "
- "from wolfSSL home dir");
- }
- #else
- load_ssl_buffer(ssl, ourKey, WOLFSSL_KEY);
- #endif
- }
-#endif /* !NO_CERTS */
-
-#ifdef OPENSSL_EXTRA
- wolfSSL_KeepArrays(ssl);
-#endif
-
-#if defined(WOLFSSL_STATIC_MEMORY) && defined(DEBUG_WOLFSSL)
- fprintf(stderr, "After creating SSL\n");
- if (wolfSSL_CTX_is_static_memory(ctx, &mem_stats) != 1)
- err_sys("ctx not using static memory");
- if (wolfSSL_PrintStats(&mem_stats) != 1) /* function in test.h */
- err_sys("error printing out memory stats");
-#endif
-
-#ifdef WOLFSSL_TLS13
- if (!helloRetry) {
- #if defined(WOLFSSL_TLS13) && (!defined(NO_DH) || defined(HAVE_ECC) || \
- defined(HAVE_CURVE25519) || defined(HAVE_CURVE448))
- if (onlyKeyShare == 0 || onlyKeyShare == 2) {
- #ifdef HAVE_CURVE25519
- if (useX25519) {
- if (wolfSSL_UseKeyShare(ssl, WOLFSSL_ECC_X25519)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to use curve x25519");
- }
- }
- #endif
- #ifdef HAVE_CURVE448
- if (useX448) {
- if (wolfSSL_UseKeyShare(ssl, WOLFSSL_ECC_X448)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to use curve x448");
- }
- }
- #endif
- #ifdef HAVE_ECC
- #if !defined(NO_ECC256) || defined(HAVE_ALL_CURVES)
- if (wolfSSL_UseKeyShare(ssl, WOLFSSL_ECC_SECP256R1)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to use curve secp256r1");
- }
- #endif
- #endif
- }
- if (onlyKeyShare == 0 || onlyKeyShare == 1) {
- #ifdef HAVE_FFDHE_2048
- if (wolfSSL_UseKeyShare(ssl, WOLFSSL_FFDHE_2048)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to use DH 2048-bit parameters");
- }
- #endif
- }
- #endif
- }
- else {
- wolfSSL_NoKeyShares(ssl);
- }
-#endif
-
- if (doMcast) {
-#ifdef WOLFSSL_MULTICAST
- byte pms[512]; /* pre master secret */
- byte cr[32]; /* client random */
- byte sr[32]; /* server random */
- const byte suite[2] = {0, 0xfe}; /* WDM_WITH_NULL_SHA256 */
-
- XMEMSET(pms, 0x23, sizeof(pms));
- XMEMSET(cr, 0xA5, sizeof(cr));
- XMEMSET(sr, 0x5A, sizeof(sr));
-
- if (wolfSSL_set_secret(ssl, 1, pms, sizeof(pms), cr, sr, suite)
- != WOLFSSL_SUCCESS) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("unable to set mcast secret");
- }
-#endif
- }
-
- #ifdef HAVE_SESSION_TICKET
- wolfSSL_set_SessionTicket_cb(ssl, sessionTicketCB, (void*)"initial session");
- #endif
-
-#ifdef HAVE_TRUSTED_CA
- if (trustedCaKeyId) {
- if (wolfSSL_UseTrustedCA(ssl, WOLFSSL_TRUSTED_CA_PRE_AGREED,
- NULL, 0) != WOLFSSL_SUCCESS) {
- err_sys("UseTrustedCA failed");
- }
- }
-#endif
-#ifdef HAVE_ALPN
- if (alpnList != NULL) {
- printf("ALPN accepted protocols list : %s\n", alpnList);
- wolfSSL_UseALPN(ssl, alpnList, (word32)XSTRLEN(alpnList), alpn_opt);
- }
-#endif
-
-#if defined(HAVE_CERTIFICATE_STATUS_REQUEST) || \
- defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
- if (statusRequest) {
- if (version == 4 &&
- (statusRequest == OCSP_STAPLINGV2 || \
- statusRequest == OCSP_STAPLINGV2_MULTI)) {
- err_sys("Cannot use OCSP Stapling V2 with TLSv1.3");
- }
-
- if (wolfSSL_CTX_EnableOCSPStapling(ctx) != WOLFSSL_SUCCESS)
- err_sys("can't enable OCSP Stapling Certificate Manager");
-
- switch (statusRequest) {
- #ifdef HAVE_CERTIFICATE_STATUS_REQUEST
- case OCSP_STAPLING:
- if (wolfSSL_UseOCSPStapling(ssl, WOLFSSL_CSR_OCSP,
- WOLFSSL_CSR_OCSP_USE_NONCE) != WOLFSSL_SUCCESS) {
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("UseCertificateStatusRequest failed");
- }
- break;
- #endif
- #ifdef HAVE_CERTIFICATE_STATUS_REQUEST_V2
- case OCSP_STAPLINGV2:
- if (wolfSSL_UseOCSPStaplingV2(ssl,
- WOLFSSL_CSR2_OCSP, WOLFSSL_CSR2_OCSP_USE_NONCE)
- != WOLFSSL_SUCCESS) {
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("UseCertificateStatusRequest failed");
- }
- break;
- case OCSP_STAPLINGV2_MULTI:
- if (wolfSSL_UseOCSPStaplingV2(ssl,
- WOLFSSL_CSR2_OCSP_MULTI, 0)
- != WOLFSSL_SUCCESS) {
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("UseCertificateStatusRequest failed");
- }
- break;
- #endif
- default:
- err_sys("Invalid OCSP Stapling option");
- }
-
- wolfSSL_CTX_EnableOCSP(ctx, 0);
- }
-#endif
-
-#if !defined(NO_DH) && !defined(WOLFSSL_OLD_PRIME_CHECK) && \
- !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST)
- if (!doDhKeyCheck)
- wolfSSL_SetEnableDhKeyTest(ssl, 0);
-#endif
-
-#ifdef HAVE_ENCRYPT_THEN_MAC
- if (disallowETM)
- wolfSSL_AllowEncryptThenMac(ssl, 0);
-#endif
-
-
- tcp_connect(&sockfd, host, port, dtlsUDP, dtlsSCTP, ssl);
- if (wolfSSL_set_fd(ssl, sockfd) != WOLFSSL_SUCCESS) {
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("error in setting fd");
- }
-
- /* STARTTLS */
- if (doSTARTTLS) {
- if (StartTLS_Init(&sockfd) != WOLFSSL_SUCCESS) {
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("error during STARTTLS protocol");
- }
- }
-
-#ifdef HAVE_CRL
- if (disableCRL == 0 && !useVerifyCb) {
- #ifdef HAVE_IO_TIMEOUT
- wolfIO_SetTimeout(DEFAULT_TIMEOUT_SEC);
- #endif
-
- if (wolfSSL_EnableCRL(ssl, WOLFSSL_CRL_CHECKALL) != WOLFSSL_SUCCESS) {
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("can't enable crl check");
- }
- if (wolfSSL_LoadCRL(ssl, crlPemDir, WOLFSSL_FILETYPE_PEM, 0)
- != WOLFSSL_SUCCESS) {
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("can't load crl, check crlfile and date validity");
- }
- if (wolfSSL_SetCRL_Cb(ssl, CRL_CallBack) != WOLFSSL_SUCCESS) {
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("can't set crl callback");
- }
- }
-#endif
-#ifdef HAVE_SECURE_RENEGOTIATION
- if (scr) {
- if (wolfSSL_UseSecureRenegotiation(ssl) != WOLFSSL_SUCCESS) {
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("can't enable secure renegotiation");
- }
- }
-#endif
-#if defined(ATOMIC_USER) && !defined(WOLFSSL_AEAD_ONLY)
- if (atomicUser)
- SetupAtomicUser(ctx, ssl);
-#endif
-#ifdef HAVE_PK_CALLBACKS
- if (pkCallbacks)
- SetupPkCallbackContexts(ssl, &pkCbInfo);
-#endif
- if (matchName && doPeerCheck)
- wolfSSL_check_domain_name(ssl, domain);
-#ifndef WOLFSSL_CALLBACKS
- if (nonBlocking) {
-#ifdef WOLFSSL_DTLS
- if (doDTLS) {
- wolfSSL_dtls_set_using_nonblock(ssl, 1);
- }
-#endif
- tcp_set_nonblocking(&sockfd);
- ret = NonBlockingSSL_Connect(ssl);
- }
- else {
-#ifdef WOLFSSL_EARLY_DATA
- if (usePsk && earlyData)
- EarlyData(ctx, ssl, msg, msgSz, buffer);
-#endif
- do {
- err = 0; /* reset error */
- ret = wolfSSL_connect(ssl);
- if (ret != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- }
-#else
- timeoutConnect.tv_sec = DEFAULT_TIMEOUT_SEC;
- timeoutConnect.tv_usec = 0;
- ret = NonBlockingSSL_Connect(ssl); /* will keep retrying on timeout */
-#endif
- if (ret != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- printf("wolfSSL_connect error %d, %s\n", err,
- wolfSSL_ERR_error_string(err, buffer));
-
- /* cleanup */
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- CloseSocket(sockfd);
-
- if (!exitWithRet)
- err_sys("wolfSSL_connect failed");
- /* see note at top of README */
- /* if you're getting an error here */
-
- ((func_args*)args)->return_code = err;
- goto exit;
- }
-
- showPeerEx(ssl, lng_index);
-
-#ifdef OPENSSL_EXTRA
- printf("Session timeout set to %ld seconds\n", wolfSSL_get_timeout(ssl));
- {
- byte* rnd;
- byte* pt;
- size_t size;
-
- /* get size of buffer then print */
- size = wolfSSL_get_client_random(NULL, NULL, 0);
- if (size == 0) {
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("error getting client random buffer size");
- }
-
- rnd = (byte*)XMALLOC(size, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- if (rnd == NULL) {
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("error creating client random buffer");
- }
-
- size = wolfSSL_get_client_random(ssl, rnd, size);
- if (size == 0) {
- XFREE(rnd, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("error getting client random buffer");
- }
-
- printf("Client Random : ");
- for (pt = rnd; pt < rnd + size; pt++) printf("%02X", *pt);
- printf("\n");
- XFREE(rnd, NULL, DYNAMIC_TYPE_TMP_BUFFER);
-
- }
-
- #if defined(OPENSSL_ALL)
- /* print out session to stdout */
- {
- WOLFSSL_BIO* bio = wolfSSL_BIO_new_fp(stdout, BIO_NOCLOSE);
- if (bio != NULL) {
- if (wolfSSL_SESSION_print(bio, wolfSSL_get_session(ssl)) !=
- WOLFSSL_SUCCESS) {
- wolfSSL_BIO_printf(bio, "ERROR: Unable to print out session\n");
- }
- }
- wolfSSL_BIO_free(bio);
- }
- #endif
-#endif
-
- if (doSTARTTLS && starttlsProt != NULL) {
- if (XSTRNCMP(starttlsProt, "smtp", 4) == 0) {
- if (SMTP_Shutdown(ssl, wc_shutdown) != WOLFSSL_SUCCESS) {
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("error closing STARTTLS connection");
- }
- }
-
- wolfSSL_free(ssl); ssl = NULL;
- CloseSocket(sockfd);
-
- wolfSSL_CTX_free(ctx); ctx = NULL;
-
- ((func_args*)args)->return_code = 0;
- return 0;
- }
-
-#ifdef HAVE_ALPN
- if (alpnList != NULL) {
- char *protocol_name = NULL;
- word16 protocol_nameSz = 0;
-
- err = wolfSSL_ALPN_GetProtocol(ssl, &protocol_name, &protocol_nameSz);
- if (err == WOLFSSL_SUCCESS)
- printf("Received ALPN protocol : %s (%d)\n",
- protocol_name, protocol_nameSz);
- else if (err == WOLFSSL_ALPN_NOT_FOUND)
- printf("No ALPN response received (no match with server)\n");
- else
- printf("Getting ALPN protocol name failed\n");
- }
-#endif
-
-#ifdef HAVE_SECURE_RENEGOTIATION
- if (scr && forceScr) {
- if (nonBlocking) {
- printf("not doing secure renegotiation on example with"
- " nonblocking yet\n");
- } else {
- if (!resumeScr) {
- printf("Beginning secure rengotiation.\n");
- if (wolfSSL_Rehandshake(ssl) != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- printf("err = %d, %s\n", err,
- wolfSSL_ERR_error_string(err, buffer));
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("wolfSSL_Rehandshake failed");
- }
- else {
- printf("RENEGOTIATION SUCCESSFUL\n");
- }
- }
- else {
- printf("Beginning secure resumption.\n");
- if (wolfSSL_SecureResume(ssl) != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- printf("err = %d, %s\n", err,
- wolfSSL_ERR_error_string(err, buffer));
- wolfSSL_free(ssl); ssl = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("wolfSSL_SecureResume failed");
- }
- else {
- printf("SECURE RESUMPTION SUCCESSFUL\n");
- }
- }
- }
- }
-#endif /* HAVE_SECURE_RENEGOTIATION */
-
- if (sendGET) {
- printf("SSL connect ok, sending GET...\n");
- msgSz = sizeof("GET /index.html HTTP/1.0\r\n\r\n");
- XSTRNCPY(msg, "GET /index.html HTTP/1.0\r\n\r\n", msgSz);
- msg[msgSz] = '\0';
-
- resumeSz = msgSz;
- XSTRNCPY(resumeMsg, "GET /index.html HTTP/1.0\r\n\r\n", resumeSz);
- resumeMsg[resumeSz] = '\0';
- }
-
-/* allow some time for exporting the session */
-#ifdef WOLFSSL_SESSION_EXPORT_DEBUG
-#ifdef USE_WINDOWS_API
- Sleep(500);
-#elif defined(WOLFSSL_TIRTOS)
- Task_sleep(1);
-#else
- sleep(1);
-#endif
-#endif /* WOLFSSL_SESSION_EXPORT_DEBUG */
-
-#ifdef WOLFSSL_TLS13
- if (updateKeysIVs)
- wolfSSL_update_keys(ssl);
-#endif
-
- ClientWrite(ssl, msg, msgSz, "");
-
- ClientRead(ssl, reply, sizeof(reply)-1, 1, "");
-
-#if defined(WOLFSSL_TLS13)
- if (updateKeysIVs || postHandAuth)
- ClientWrite(ssl, msg, msgSz, "");
-#endif
- if (sendGET) { /* get html */
- ClientRead(ssl, reply, sizeof(reply)-1, 0, "");
- }
-
-#ifndef NO_SESSION_CACHE
- if (resumeSession) {
- session = wolfSSL_get_session(ssl);
- }
-#endif
-
-#if defined(OPENSSL_EXTRA) && defined(HAVE_EXT_CACHE)
- if (session != NULL && resumeSession) {
- flatSessionSz = wolfSSL_i2d_SSL_SESSION(session, NULL);
- if (flatSessionSz != 0) {
- int checkSz = wolfSSL_i2d_SSL_SESSION(session, &flatSession);
- if (flatSession == NULL)
- err_sys("error creating flattened session buffer");
- if (checkSz != flatSessionSz) {
- XFREE(flatSession, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- err_sys("flat session size check failure");
- }
- }
- }
-#endif
-
- if (dtlsUDP == 0) { /* don't send alert after "break" command */
- ret = wolfSSL_shutdown(ssl);
- if (wc_shutdown && ret == WOLFSSL_SHUTDOWN_NOT_DONE) {
- if (tcp_select(sockfd, DEFAULT_TIMEOUT_SEC) == TEST_RECV_READY) {
- ret = wolfSSL_shutdown(ssl); /* bidirectional shutdown */
- if (ret == WOLFSSL_SUCCESS)
- printf("Bidirectional shutdown complete\n");
- }
- if (ret != WOLFSSL_SUCCESS)
- printf("Bidirectional shutdown failed\n");
- }
- }
-#if defined(ATOMIC_USER) && !defined(WOLFSSL_AEAD_ONLY)
- if (atomicUser)
- FreeAtomicUser(ssl);
-#endif
-
- /* display collected statistics */
-#ifdef WOLFSSL_STATIC_MEMORY
- if (wolfSSL_is_static_memory(ssl, &ssl_stats) != 1)
- err_sys("static memory was not used with ssl");
-
- fprintf(stderr, "\nprint off SSL memory stats\n");
- fprintf(stderr, "*** This is memory state before wolfSSL_free is called\n");
- fprintf(stderr, "peak connection memory = %d\n", ssl_stats.peakMem);
- fprintf(stderr, "current memory in use = %d\n", ssl_stats.curMem);
- fprintf(stderr, "peak connection allocs = %d\n", ssl_stats.peakAlloc);
- fprintf(stderr, "current connection allocs = %d\n", ssl_stats.curAlloc);
- fprintf(stderr, "total connection allocs = %d\n", ssl_stats.totalAlloc);
- fprintf(stderr, "total connection frees = %d\n\n", ssl_stats.totalFr);
-#endif
-
- wolfSSL_free(ssl); ssl = NULL;
- CloseSocket(sockfd);
-
-#ifndef NO_SESSION_CACHE
- if (resumeSession) {
- sslResume = wolfSSL_new(ctx);
- if (sslResume == NULL) {
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("unable to get SSL object");
- }
-
-#if !defined(NO_DH) && !defined(WOLFSSL_OLD_PRIME_CHECK) && \
- !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST)
- if (!doDhKeyCheck)
- wolfSSL_SetEnableDhKeyTest(sslResume, 0);
-#endif
-
- if (dtlsUDP) {
-#ifdef USE_WINDOWS_API
- Sleep(500);
-#elif defined(WOLFSSL_TIRTOS)
- Task_sleep(1);
-#else
- sleep(1);
-#endif
- }
- tcp_connect(&sockfd, host, port, dtlsUDP, dtlsSCTP, sslResume);
- if (wolfSSL_set_fd(sslResume, sockfd) != WOLFSSL_SUCCESS) {
- wolfSSL_free(sslResume); sslResume = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("error in setting fd");
- }
-#ifdef HAVE_ALPN
- if (alpnList != NULL) {
- printf("ALPN accepted protocols list : %s\n", alpnList);
- wolfSSL_UseALPN(sslResume, alpnList, (word32)XSTRLEN(alpnList),
- alpn_opt);
- }
-#endif
-#ifdef HAVE_SECURE_RENEGOTIATION
- if (scr) {
- if (wolfSSL_UseSecureRenegotiation(sslResume) != WOLFSSL_SUCCESS) {
- wolfSSL_free(sslResume); sslResume = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("can't enable secure renegotiation");
- }
- }
-#endif
-
-#if defined(OPENSSL_EXTRA) && defined(HAVE_EXT_CACHE)
- if (flatSession) {
- const byte* constFlatSession = flatSession;
- session = wolfSSL_d2i_SSL_SESSION(NULL,
- &constFlatSession, flatSessionSz);
- }
-#endif
-
- wolfSSL_set_session(sslResume, session);
-
-#if defined(OPENSSL_EXTRA) && defined(HAVE_EXT_CACHE)
- if (flatSession) {
- XFREE(flatSession, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- wolfSSL_SESSION_free(session);
- }
-#endif
-#ifdef HAVE_SESSION_TICKET
- wolfSSL_set_SessionTicket_cb(sslResume, sessionTicketCB,
- (void*)"resumed session");
-#endif
-
-#ifndef WOLFSSL_CALLBACKS
- if (nonBlocking) {
-#ifdef WOLFSSL_DTLS
- if (doDTLS) {
- wolfSSL_dtls_set_using_nonblock(sslResume, 1);
- }
-#endif
- tcp_set_nonblocking(&sockfd);
- ret = NonBlockingSSL_Connect(sslResume);
- }
- else {
- #ifdef WOLFSSL_EARLY_DATA
- #ifndef HAVE_SESSION_TICKET
- if (!usePsk) {
- }
- else
- #endif
- if (earlyData) {
- EarlyData(ctx, sslResume, msg, msgSz, buffer);
- }
- #endif
- do {
- err = 0; /* reset error */
- ret = wolfSSL_connect(sslResume);
- if (ret != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(sslResume, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(sslResume,
- WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- }
-#else
- timeoutConnect.tv_sec = DEFAULT_TIMEOUT_SEC;
- timeoutConnect.tv_usec = 0;
- ret = NonBlockingSSL_Connect(sslResume); /* will keep retrying on timeout */
-#endif
- if (ret != WOLFSSL_SUCCESS) {
- printf("wolfSSL_connect resume error %d, %s\n", err,
- wolfSSL_ERR_error_string(err, buffer));
- wolfSSL_free(sslResume); sslResume = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("wolfSSL_connect resume failed");
- }
-
- showPeerEx(sslResume, lng_index);
-
- if (wolfSSL_session_reused(sslResume))
- printf("reused session id\n");
- else
- printf("didn't reuse session id!!!\n");
-
-#ifdef HAVE_ALPN
- if (alpnList != NULL) {
- char *protocol_name = NULL;
- word16 protocol_nameSz = 0;
-
- printf("Sending ALPN accepted list : %s\n", alpnList);
- err = wolfSSL_ALPN_GetProtocol(sslResume, &protocol_name,
- &protocol_nameSz);
- if (err == WOLFSSL_SUCCESS)
- printf("Received ALPN protocol : %s (%d)\n",
- protocol_name, protocol_nameSz);
- else if (err == WOLFSSL_ALPN_NOT_FOUND)
- printf("Not received ALPN response (no match with server)\n");
- else
- printf("Getting ALPN protocol name failed\n");
- }
-#endif
-
- /* allow some time for exporting the session */
- #ifdef WOLFSSL_SESSION_EXPORT_DEBUG
- #ifdef USE_WINDOWS_API
- Sleep(500);
- #elif defined(WOLFSSL_TIRTOS)
- Task_sleep(1);
- #else
- sleep(1);
- #endif
- #endif /* WOLFSSL_SESSION_EXPORT_DEBUG */
-
-#ifdef HAVE_SECURE_RENEGOTIATION
- if (scr && forceScr) {
- if (nonBlocking) {
- printf("not doing secure renegotiation on example with"
- " nonblocking yet\n");
- } else {
- if (!resumeScr) {
- printf("Beginning secure rengotiation.\n");
- if (wolfSSL_Rehandshake(sslResume) != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(sslResume, 0);
- printf("err = %d, %s\n", err,
- wolfSSL_ERR_error_string(err, buffer));
- wolfSSL_free(sslResume); sslResume = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("wolfSSL_Rehandshake failed");
- }
- else {
- printf("RENEGOTIATION SUCCESSFUL\n");
- }
- }
- else {
- printf("Beginning secure resumption.\n");
- if (wolfSSL_SecureResume(sslResume) != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(sslResume, 0);
- printf("err = %d, %s\n", err,
- wolfSSL_ERR_error_string(err, buffer));
- wolfSSL_free(sslResume); sslResume = NULL;
- wolfSSL_CTX_free(ctx); ctx = NULL;
- err_sys("wolfSSL_SecureResume failed");
- }
- else {
- printf("SECURE RESUMPTION SUCCESSFUL\n");
- }
- }
- }
- }
-#endif /* HAVE_SECURE_RENEGOTIATION */
-
- ClientWrite(sslResume, resumeMsg, resumeSz, " resume");
-
- ClientRead(sslResume, reply, sizeof(reply)-1, sendGET,
- "Server resume: ");
- /* try to send session break */
- ClientWrite(sslResume, msg, msgSz, " resume 2");
-
- ret = wolfSSL_shutdown(sslResume);
- if (wc_shutdown && ret == WOLFSSL_SHUTDOWN_NOT_DONE)
- wolfSSL_shutdown(sslResume); /* bidirectional shutdown */
-
- /* display collected statistics */
- #ifdef WOLFSSL_STATIC_MEMORY
- if (wolfSSL_is_static_memory(sslResume, &ssl_stats) != 1)
- err_sys("static memory was not used with ssl");
-
- fprintf(stderr, "\nprint off SSLresume memory stats\n");
- fprintf(stderr, "*** This is memory state before wolfSSL_free is called\n");
- fprintf(stderr, "peak connection memory = %d\n", ssl_stats.peakMem);
- fprintf(stderr, "current memory in use = %d\n", ssl_stats.curMem);
- fprintf(stderr, "peak connection allocs = %d\n", ssl_stats.peakAlloc);
- fprintf(stderr, "current connection allocs = %d\n", ssl_stats.curAlloc);
- fprintf(stderr, "total connection allocs = %d\n", ssl_stats.totalAlloc);
- fprintf(stderr, "total connection frees = %d\n\n", ssl_stats.totalFr);
- #endif
-
- wolfSSL_free(sslResume); sslResume = NULL;
- CloseSocket(sockfd);
- }
-#endif /* NO_SESSION_CACHE */
-
- wolfSSL_CTX_free(ctx); ctx = NULL;
-
- ((func_args*)args)->return_code = 0;
-
-exit:
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- wolfAsync_DevClose(&devId);
-#endif
-
-#if defined(HAVE_ECC) && defined(FP_ECC) && defined(HAVE_THREAD_LS) \
- && defined(HAVE_STACK_SIZE)
- wc_ecc_fp_free(); /* free per thread cache */
-#endif
-
- /* There are use cases when these assignments are not read. To avoid
- * potential confusion those warnings have been handled here.
- */
- (void) overrideDateErrors;
- (void) useClientCert;
- (void) verifyCert;
- (void) ourCert;
- (void) ourKey;
- (void) useVerifyCb;
-
-#if !defined(WOLFSSL_TIRTOS)
- return 0;
-#endif
-}
-
-#endif /* !NO_WOLFSSL_CLIENT */
-
-
-/* so overall tests can pull in test function */
-#ifndef NO_MAIN_DRIVER
-
- int main(int argc, char** argv)
- {
- func_args args;
-
-
- StartTCP();
-
- args.argc = argc;
- args.argv = argv;
- args.return_code = 0;
-
-#if defined(DEBUG_WOLFSSL) && !defined(WOLFSSL_MDK_SHELL) && !defined(STACK_TRAP)
- wolfSSL_Debugging_ON();
-#endif
- wolfSSL_Init();
- ChangeToWolfRoot();
-
-#ifndef NO_WOLFSSL_CLIENT
-#ifdef HAVE_STACK_SIZE
- StackSizeCheck(&args, client_test);
-#else
- client_test(&args);
-#endif
-#else
- printf("Client not compiled in!\n");
-#endif
- wolfSSL_Cleanup();
-
-#ifdef HAVE_WNR
- if (wc_FreeNetRandom() < 0)
- err_sys("Failed to free netRandom context");
-#endif /* HAVE_WNR */
-
- return args.return_code;
- }
-
- int myoptind = 0;
- char* myoptarg = NULL;
-
-#endif /* NO_MAIN_DRIVER */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.h b/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.h
deleted file mode 100644
index 72402e99f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* client.h
- *
- * Copyright (C) 2006-2020 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
-
-
-THREAD_RETURN WOLFSSL_THREAD client_test(void* args);
-
-
-#endif /* WOLFSSL_CLIENT_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.sln b/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.sln
deleted file mode 100644
index 3c4bbb12d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual C++ Express 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "client.vcproj", "{F117DD21-2672-4001-9FF8-8DBEBBFCA380}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Debug|Win32.ActiveCfg = Debug|Win32
- {F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Debug|Win32.Build.0 = Debug|Win32
- {F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Release|Win32.ActiveCfg = Release|Win32
- {F117DD21-2672-4001-9FF8-8DBEBBFCA380}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.vcproj b/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.vcproj
deleted file mode 100644
index 4b758dcb7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.vcproj
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="client"
- ProjectGUID="{3ADE9549-582D-4D8E-9826-B172197A7959}"
- RootNamespace="client"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../;../../IDE/WIN"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../../;../../IDE/WIN"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\client.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath="..\..\IDE\WIN\user_settings.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.vcxproj b/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.vcxproj
deleted file mode 100644
index a0add0d6b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/client/client.vcxproj
+++ /dev/null
@@ -1,336 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Debug|Win32">
- <Configuration>DLL Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Debug|x64">
- <Configuration>DLL Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Release|Win32">
- <Configuration>DLL Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Release|x64">
- <Configuration>DLL Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{3ADE9549-582D-4D8E-9826-B172197A7959}</ProjectGuid>
- <RootNamespace>client</RootNamespace>
- <Keyword>Win32Proj</Keyword>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader />
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader />
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="client.c" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\wolfssl.vcxproj">
- <Project>{73973223-5ee8-41ca-8e88-1d60e89a237b}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\IDE\WIN\user_settings.h" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/client/include.am b/FreeRTOS-Plus/Source/WolfSSL/examples/client/include.am
deleted file mode 100644
index 876f6a28e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/client/include.am
+++ /dev/null
@@ -1,17 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-
-if BUILD_EXAMPLE_CLIENTS
-noinst_PROGRAMS += examples/client/client
-noinst_HEADERS += examples/client/client.h
-examples_client_client_SOURCES = examples/client/client.c
-examples_client_client_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-examples_client_client_DEPENDENCIES = src/libwolfssl.la
-endif
-EXTRA_DIST += examples/client/client.sln
-EXTRA_DIST += examples/client/client-ntru.vcproj
-EXTRA_DIST += examples/client/client.vcproj
-EXTRA_DIST += examples/client/client.vcxproj
-
-dist_example_DATA+= examples/client/client.c
-DISTCLEANFILES+= examples/client/.libs/client
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient-ntru.vcproj b/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient-ntru.vcproj
deleted file mode 100644
index 9a4ebb661..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient-ntru.vcproj
+++ /dev/null
@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="echoclient"
- ProjectGUID="{8362A816-C5DC-4E22-B5C5-9E6806387073}"
- RootNamespace="echoclient"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../"
- PreprocessorDefinitions="WIN32;NO_PSK;_DEBUG;_CONSOLE"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib NtruEncrypt_DLL.lib"
- LinkIncremental="2"
- AdditionalLibraryDirectories="..\..\NTRU\bin"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../../"
- PreprocessorDefinitions="WIN32;NDEBUG;NO_PSK;_CONSOLE"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib NtruEncrypt_DLL.lib"
- LinkIncremental="1"
- AdditionalLibraryDirectories="..\..\NTRU\bin"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\echoclient.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.c b/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.c
deleted file mode 100644
index e27ecc2b5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.c
+++ /dev/null
@@ -1,373 +0,0 @@
-/* echoclient.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <cyassl/ctaocrypt/settings.h>
-/* let's use cyassl layer AND cyassl openssl layer */
-#include <cyassl/ssl.h>
-#include <cyassl/openssl/ssl.h>
-#ifdef CYASSL_DTLS
- #include <cyassl/error-ssl.h>
-#endif
-
-#if defined(WOLFSSL_MDK_ARM) || defined(WOLFSSL_KEIL_TCP_NET)
- #include <stdio.h>
- #include <string.h>
- #include "cmsis_os.h"
- #include "rl_fs.h"
- #include "rl_net.h"
- #include "wolfssl_MDK_ARM.h"
-#endif
-
-#include <cyassl/test.h>
-
-#include <examples/echoclient/echoclient.h>
-
-#ifndef NO_WOLFSSL_CLIENT
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- static int devId = INVALID_DEVID;
-#endif
-
-
-void echoclient_test(void* args)
-{
- SOCKET_T sockfd = 0;
-
- FILE* fin = stdin ;
- FILE* fout = stdout;
-
-#ifndef WOLFSSL_MDK_SHELL
- int inCreated = 0;
- int outCreated = 0;
-#endif
-
- char msg[1024];
- char reply[1024+1];
-
- SSL_METHOD* method = 0;
- SSL_CTX* ctx = 0;
- SSL* ssl = 0;
-
- int ret = 0, err = 0;
- int doDTLS = 0;
- int doPSK = 0;
- int sendSz;
-#ifndef WOLFSSL_MDK_SHELL
- int argc = 0;
- char** argv = 0;
-#endif
- word16 port = yasslPort;
- char buffer[CYASSL_MAX_ERROR_SZ];
-
- ((func_args*)args)->return_code = -1; /* error state */
-
-#ifndef WOLFSSL_MDK_SHELL
- argc = ((func_args*)args)->argc;
- argv = ((func_args*)args)->argv;
-
- if (argc >= 2) {
- fin = fopen(argv[1], "r");
- inCreated = 1;
- }
- if (argc >= 3) {
- fout = fopen(argv[2], "w");
- outCreated = 1;
- }
-#endif
-
- if (!fin) err_sys("can't open input file");
- if (!fout) err_sys("can't open output file");
-
-#ifdef CYASSL_DTLS
- doDTLS = 1;
-#endif
-
-#ifdef CYASSL_LEANPSK
- doPSK = 1;
-#endif
-#if defined(NO_RSA) && !defined(HAVE_ECC) && !defined(HAVE_ED25519) && \
- !defined(HAVE_ED448)
- doPSK = 1;
-#endif
- (void)doPSK;
-
-#if defined(NO_MAIN_DRIVER) && !defined(USE_WINDOWS_API) && !defined(WOLFSSL_MDK_SHELL)
- port = ((func_args*)args)->signal->port;
-#endif
-
-#if defined(CYASSL_DTLS)
- method = DTLSv1_2_client_method();
-#elif !defined(NO_TLS)
- method = CyaSSLv23_client_method();
-#elif defined(WOLFSSL_ALLOW_SSLV3)
- method = SSLv3_client_method();
-#else
- #error "no valid client method type"
-#endif
- ctx = SSL_CTX_new(method);
-
-#ifndef NO_FILESYSTEM
- #ifndef NO_RSA
- if (SSL_CTX_load_verify_locations(ctx, caCertFile, 0) != WOLFSSL_SUCCESS)
- err_sys("can't load ca file, Please run from wolfSSL home dir");
- #endif
- #ifdef HAVE_ECC
- if (SSL_CTX_load_verify_locations(ctx, caEccCertFile, 0) != WOLFSSL_SUCCESS)
- err_sys("can't load ca file, Please run from wolfSSL home dir");
- #elif defined(HAVE_ED25519)
- if (SSL_CTX_load_verify_locations(ctx, caEdCertFile, 0) != WOLFSSL_SUCCESS)
- err_sys("can't load ca file, Please run from wolfSSL home dir");
- #elif defined(HAVE_ED448)
- if (SSL_CTX_load_verify_locations(ctx, caEd448CertFile, 0) != WOLFSSL_SUCCESS)
- err_sys("can't load ca file, Please run from wolfSSL home dir");
- #endif
-#elif !defined(NO_CERTS)
- if (!doPSK)
- load_buffer(ctx, caCertFile, WOLFSSL_CA);
-#endif
-
-#if defined(CYASSL_SNIFFER)
- /* don't use EDH, can't sniff tmp keys */
- SSL_CTX_set_cipher_list(ctx, "AES256-SHA");
-#endif
-#ifndef NO_PSK
- if (doPSK) {
- const char *defaultCipherList;
-
- CyaSSL_CTX_set_psk_client_callback(ctx, my_psk_client_cb);
- #ifdef HAVE_NULL_CIPHER
- defaultCipherList = "PSK-NULL-SHA256";
- #elif defined(HAVE_AESGCM) && !defined(NO_DH)
- defaultCipherList = "DHE-PSK-AES128-GCM-SHA256";
- #else
- defaultCipherList = "PSK-AES128-CBC-SHA256";
- #endif
- if (CyaSSL_CTX_set_cipher_list(ctx,defaultCipherList) !=WOLFSSL_SUCCESS)
- err_sys("client can't set cipher list 2");
- }
-#endif
-
-#ifdef WOLFSSL_ENCRYPTED_KEYS
- SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
-#endif
-
-#if defined(WOLFSSL_MDK_ARM)
- CyaSSL_CTX_set_verify(ctx, WOLFSSL_VERIFY_NONE, 0);
-#endif
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- ret = wolfAsync_DevOpen(&devId);
- if (ret < 0) {
- printf("Async device open failed\nRunning without async\n");
- }
- wolfSSL_CTX_UseAsync(ctx, devId);
-#endif /* WOLFSSL_ASYNC_CRYPT */
-
- ssl = SSL_new(ctx);
- tcp_connect(&sockfd, yasslIP, port, doDTLS, 0, ssl);
-
- SSL_set_fd(ssl, sockfd);
-#if defined(USE_WINDOWS_API) && defined(CYASSL_DTLS) && defined(NO_MAIN_DRIVER)
- /* let echoserver bind first, TODO: add Windows signal like pthreads does */
- Sleep(100);
-#endif
-
- do {
- err = 0; /* Reset error */
- ret = SSL_connect(ssl);
- if (ret != WOLFSSL_SUCCESS) {
- err = SSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- if (ret != WOLFSSL_SUCCESS) {
- printf("SSL_connect error %d, %s\n", err,
- ERR_error_string(err, buffer));
- err_sys("SSL_connect failed");
- }
-
- while (fgets(msg, sizeof(msg), fin) != 0) {
-
- sendSz = (int)XSTRLEN(msg);
-
- do {
- err = 0; /* reset error */
- ret = SSL_write(ssl, msg, sendSz);
- if (ret <= 0) {
- err = SSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- if (ret != sendSz) {
- printf("SSL_write msg error %d, %s\n", err,
- ERR_error_string(err, buffer));
- err_sys("SSL_write failed");
- }
-
- if (strncmp(msg, "quit", 4) == 0) {
- fputs("sending server shutdown command: quit!\n", fout);
- break;
- }
-
- if (strncmp(msg, "break", 5) == 0) {
- fputs("sending server session close: break!\n", fout);
- break;
- }
-
- #ifndef WOLFSSL_MDK_SHELL
- while (sendSz)
- #endif
- {
- do {
- err = 0; /* reset error */
- ret = SSL_read(ssl, reply, sizeof(reply)-1);
- if (ret <= 0) {
- err = SSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- if (ret > 0) {
- reply[ret] = 0;
- fputs(reply, fout);
- fflush(fout) ;
- sendSz -= ret;
- }
-#ifdef CYASSL_DTLS
- else if (wolfSSL_dtls(ssl) && err == DECRYPT_ERROR) {
- /* This condition is OK. The packet should be dropped
- * silently when there is a decrypt or MAC error on
- * a DTLS record. */
- sendSz = 0;
- }
-#endif
- else {
- printf("SSL_read msg error %d, %s\n", err,
- ERR_error_string(err, buffer));
- err_sys("SSL_read failed");
-
- #ifndef WOLFSSL_MDK_SHELL
- break;
- #endif
- }
- }
- }
-
-
-#ifdef CYASSL_DTLS
- strncpy(msg, "break", 6);
- sendSz = (int)strlen(msg);
- /* try to tell server done */
- do {
- err = 0; /* reset error */
- ret = SSL_write(ssl, msg, sendSz);
- if (ret <= 0) {
- err = SSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
-#else
- SSL_shutdown(ssl);
-#endif
-
- SSL_free(ssl);
- SSL_CTX_free(ctx);
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- wolfAsync_DevClose(&devId);
-#endif
-
- fflush(fout);
-#ifndef WOLFSSL_MDK_SHELL
- if (inCreated) fclose(fin);
- if (outCreated) fclose(fout);
-#endif
-
- CloseSocket(sockfd);
- ((func_args*)args)->return_code = 0;
-}
-
-#endif /* !NO_WOLFSSL_CLIENT */
-
-/* so overall tests can pull in test function */
-#ifndef NO_MAIN_DRIVER
-
- int main(int argc, char** argv)
- {
- func_args args;
-
-#ifdef HAVE_WNR
- if (wc_InitNetRandom(wnrConfig, NULL, 5000) != 0)
- err_sys("Whitewood netRandom global config failed");
-#endif
-
- StartTCP();
-
- args.argc = argc;
- args.argv = argv;
- args.return_code = 0;
-
- CyaSSL_Init();
-#if defined(DEBUG_CYASSL) && !defined(WOLFSSL_MDK_SHELL)
- CyaSSL_Debugging_ON();
-#endif
-#ifndef CYASSL_TIRTOS
- ChangeToWolfRoot();
-#endif
-#ifndef NO_WOLFSSL_CLIENT
- echoclient_test(&args);
-#endif
-
- CyaSSL_Cleanup();
-
-#ifdef HAVE_WNR
- if (wc_FreeNetRandom() < 0)
- err_sys("Failed to free netRandom context");
-#endif /* HAVE_WNR */
-
- return args.return_code;
- }
-
-#endif /* NO_MAIN_DRIVER */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.h b/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.h
deleted file mode 100644
index 0aebffbc2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* echoclient.h
- *
- * Copyright (C) 2006-2020 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_ECHOCLIENT_H
-#define WOLFSSL_ECHOCLIENT_H
-
-
-void echoclient_test(void* args);
-
-#endif /* WOLFSSL_ECHOCLIENT_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.sln b/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.sln
deleted file mode 100644
index 3fb7851d7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual C++ Express 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoclient", "echoclient.vcproj", "{A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Debug|Win32.ActiveCfg = Debug|Win32
- {A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Debug|Win32.Build.0 = Debug|Win32
- {A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Release|Win32.ActiveCfg = Release|Win32
- {A7AA93AD-AFF0-4FF0-8AED-14685DE55CF3}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.vcproj b/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.vcproj
deleted file mode 100644
index 55d2610cb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.vcproj
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="echoclient"
- ProjectGUID="{8362A816-C5DC-4E22-B5C5-9E6806387073}"
- RootNamespace="echoclient"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../;../../IDE/WIN"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../../;../../IDE/WIN"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\echoclient.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath="..\..\IDE\WIN\user_settings.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.vcxproj b/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.vcxproj
deleted file mode 100644
index 0c56d0e86..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/echoclient.vcxproj
+++ /dev/null
@@ -1,336 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Debug|Win32">
- <Configuration>DLL Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Debug|x64">
- <Configuration>DLL Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Release|Win32">
- <Configuration>DLL Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Release|x64">
- <Configuration>DLL Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{8362A816-C5DC-4E22-B5C5-9E6806387073}</ProjectGuid>
- <RootNamespace>echoclient</RootNamespace>
- <Keyword>Win32Proj</Keyword>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader />
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader />
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="echoclient.c" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\wolfssl.vcxproj">
- <Project>{73973223-5ee8-41ca-8e88-1d60e89a237b}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\IDE\WIN\user_settings.h" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/include.am b/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/include.am
deleted file mode 100644
index 7f0bc47d1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/echoclient/include.am
+++ /dev/null
@@ -1,20 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-
-if BUILD_EXAMPLE_CLIENTS
-noinst_PROGRAMS += examples/echoclient/echoclient
-noinst_HEADERS += examples/echoclient/echoclient.h
-examples_echoclient_echoclient_SOURCES = examples/echoclient/echoclient.c
-examples_echoclient_echoclient_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-examples_echoclient_echoclient_DEPENDENCIES = src/libwolfssl.la
-endif
-EXTRA_DIST += examples/echoclient/echoclient.sln
-EXTRA_DIST += examples/echoclient/echoclient-ntru.vcproj
-EXTRA_DIST += examples/echoclient/echoclient.vcproj
-EXTRA_DIST += examples/echoclient/echoclient.vcxproj
-
-dist_example_DATA+= examples/echoclient/echoclient.c
-DISTCLEANFILES+= examples/echoclient/.libs/echoclient
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver-ntru.vcproj b/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver-ntru.vcproj
deleted file mode 100644
index 924fdd849..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver-ntru.vcproj
+++ /dev/null
@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="echoserver"
- ProjectGUID="{07D97C48-E08F-4E34-9F67-3064039FF2CB}"
- RootNamespace="echoserver"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../"
- PreprocessorDefinitions="USE_ANY_ADDR;NO_PSK"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib NtruEncrypt_DLL.lib"
- LinkIncremental="2"
- AdditionalLibraryDirectories="..\..\NTRU\bin"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../../"
- PreprocessorDefinitions="USE_ANY_ADDR;NO_PSK"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib NtruEncrypt_DLL.lib"
- LinkIncremental="1"
- AdditionalLibraryDirectories="..\..\NTRU\bin"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\echoserver.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.c b/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.c
deleted file mode 100644
index d268ab479..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.c
+++ /dev/null
@@ -1,537 +0,0 @@
-/* echoserver.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <cyassl/ssl.h> /* name change portability layer */
-#include <cyassl/ctaocrypt/settings.h>
-#ifdef HAVE_ECC
- #include <cyassl/ctaocrypt/ecc.h> /* ecc_fp_free */
-#endif
-
-#if defined(WOLFSSL_MDK_ARM) || defined(WOLFSSL_KEIL_TCP_NET)
- #include <stdio.h>
- #include <string.h>
- #include "cmsis_os.h"
- #include "rl_fs.h"
- #include "rl_net.h"
- #include "wolfssl_MDK_ARM.h"
-#endif
-
-#include <cyassl/ssl.h>
-#include <cyassl/test.h>
-
-#ifndef NO_MAIN_DRIVER
- #define ECHO_OUT
-#endif
-
-#include "examples/echoserver/echoserver.h"
-
-#ifndef NO_WOLFSSL_SERVER
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- static int devId = INVALID_DEVID;
-#endif
-
-#define SVR_COMMAND_SIZE 256
-
-static void SignalReady(void* args, word16 port)
-{
-#if defined(_POSIX_THREADS) && defined(NO_MAIN_DRIVER) && !defined(__MINGW32__)
- /* signal ready to tcp_accept */
- func_args* server_args = (func_args*)args;
- tcp_ready* ready = server_args->signal;
- pthread_mutex_lock(&ready->mutex);
- ready->ready = 1;
- ready->port = port;
- pthread_cond_signal(&ready->cond);
- pthread_mutex_unlock(&ready->mutex);
-#endif
- (void)args;
- (void)port;
-}
-
-
-THREAD_RETURN CYASSL_THREAD echoserver_test(void* args)
-{
- SOCKET_T sockfd = 0;
- CYASSL_METHOD* method = 0;
- CYASSL_CTX* ctx = 0;
-
- int ret = 0;
- int doDTLS = 0;
- int doPSK;
- int outCreated = 0;
- int shutDown = 0;
- int useAnyAddr = 0;
- word16 port;
- int argc = ((func_args*)args)->argc;
- char** argv = ((func_args*)args)->argv;
- char buffer[CYASSL_MAX_ERROR_SZ];
-
-#ifdef ECHO_OUT
- FILE* fout = stdout;
- if (argc >= 2) {
- fout = fopen(argv[1], "w");
- outCreated = 1;
- }
- if (!fout) err_sys("can't open output file");
-#endif
- (void)outCreated;
- (void)argc;
- (void)argv;
-
- ((func_args*)args)->return_code = -1; /* error state */
-
-#ifdef CYASSL_DTLS
- doDTLS = 1;
-#endif
-
-#if (defined(NO_RSA) && !defined(HAVE_ECC) && !defined(HAVE_ED25519) && \
- !defined(HAVE_ED448)) || defined(CYASSL_LEANPSK)
- doPSK = 1;
-#else
- doPSK = 0;
-#endif
-
-#if defined(NO_MAIN_DRIVER) && !defined(CYASSL_SNIFFER) && \
- !defined(WOLFSSL_MDK_SHELL) && !defined(CYASSL_TIRTOS) && \
- !defined(USE_WINDOWS_API)
- /* Let tcp_listen assign port */
- port = 0;
-#else
- /* Use default port */
- port = wolfSSLPort;
-#endif
-
-#if defined(USE_ANY_ADDR)
- useAnyAddr = 1;
-#endif
-
-#ifdef CYASSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- tcp_listen(&sockfd, &port, useAnyAddr, doDTLS, 0);
-
-#if defined(CYASSL_DTLS)
- method = CyaDTLSv1_2_server_method();
-#elif !defined(NO_TLS)
- method = CyaSSLv23_server_method();
-#elif defined(WOLFSSL_ALLOW_SSLV3)
- method = CyaSSLv3_server_method();
-#else
- #error "no valid server method built in"
-#endif
- ctx = CyaSSL_CTX_new(method);
- /* CyaSSL_CTX_set_session_cache_mode(ctx, WOLFSSL_SESS_CACHE_OFF); */
-
-#ifdef WOLFSSL_ENCRYPTED_KEYS
- CyaSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
-#endif
-
-#if defined(HAVE_SESSION_TICKET) && defined(HAVE_CHACHA) && \
- defined(HAVE_POLY1305)
- if (TicketInit() != 0)
- err_sys("unable to setup Session Ticket Key context");
- wolfSSL_CTX_set_TicketEncCb(ctx, myTicketEncCb);
-#endif
-
-#ifndef NO_FILESYSTEM
- if (doPSK == 0) {
- #if defined(HAVE_NTRU) && defined(WOLFSSL_STATIC_RSA)
- /* ntru */
- if (CyaSSL_CTX_use_certificate_file(ctx, ntruCertFile, WOLFSSL_FILETYPE_PEM)
- != WOLFSSL_SUCCESS)
- err_sys("can't load ntru cert file, "
- "Please run from wolfSSL home dir");
-
- if (CyaSSL_CTX_use_NTRUPrivateKey_file(ctx, ntruKeyFile)
- != WOLFSSL_SUCCESS)
- err_sys("can't load ntru key file, "
- "Please run from wolfSSL home dir");
- #elif defined(HAVE_ECC) && !defined(CYASSL_SNIFFER)
- /* ecc */
- if (CyaSSL_CTX_use_certificate_file(ctx, eccCertFile, WOLFSSL_FILETYPE_PEM)
- != WOLFSSL_SUCCESS)
- err_sys("can't load server cert file, "
- "Please run from wolfSSL home dir");
-
- if (CyaSSL_CTX_use_PrivateKey_file(ctx, eccKeyFile, WOLFSSL_FILETYPE_PEM)
- != WOLFSSL_SUCCESS)
- err_sys("can't load server key file, "
- "Please run from wolfSSL home dir");
- #elif defined(HAVE_ED25519) && !defined(CYASSL_SNIFFER)
- /* ed25519 */
- if (CyaSSL_CTX_use_certificate_chain_file(ctx, edCertFile)
- != WOLFSSL_SUCCESS)
- err_sys("can't load server cert file, "
- "Please run from wolfSSL home dir");
-
- if (CyaSSL_CTX_use_PrivateKey_file(ctx, edKeyFile, WOLFSSL_FILETYPE_PEM)
- != WOLFSSL_SUCCESS)
- err_sys("can't load server key file, "
- "Please run from wolfSSL home dir");
- #elif defined(HAVE_ED448) && !defined(CYASSL_SNIFFER)
- /* ed448 */
- if (CyaSSL_CTX_use_certificate_chain_file(ctx, ed448CertFile)
- != WOLFSSL_SUCCESS)
- err_sys("can't load server cert file, "
- "Please run from wolfSSL home dir");
-
- if (CyaSSL_CTX_use_PrivateKey_file(ctx, ed448KeyFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS)
- err_sys("can't load server key file, "
- "Please run from wolfSSL home dir");
- #elif defined(NO_CERTS)
- /* do nothing, just don't load cert files */
- #else
- /* normal */
- if (CyaSSL_CTX_use_certificate_file(ctx, svrCertFile, WOLFSSL_FILETYPE_PEM)
- != WOLFSSL_SUCCESS)
- err_sys("can't load server cert file, "
- "Please run from wolfSSL home dir");
-
- if (CyaSSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, WOLFSSL_FILETYPE_PEM)
- != WOLFSSL_SUCCESS)
- err_sys("can't load server key file, "
- "Please run from wolfSSL home dir");
- #endif
- } /* doPSK */
-#elif !defined(NO_CERTS)
- if (!doPSK) {
- load_buffer(ctx, svrCertFile, WOLFSSL_CERT);
- load_buffer(ctx, svrKeyFile, WOLFSSL_KEY);
- }
-#endif
-
-#if defined(CYASSL_SNIFFER)
- /* don't use EDH, can't sniff tmp keys */
- CyaSSL_CTX_set_cipher_list(ctx, "AES256-SHA");
-#endif
-
- if (doPSK) {
-#ifndef NO_PSK
- const char *defaultCipherList;
-
- CyaSSL_CTX_set_psk_server_callback(ctx, my_psk_server_cb);
- CyaSSL_CTX_use_psk_identity_hint(ctx, "cyassl server");
- #ifdef HAVE_NULL_CIPHER
- defaultCipherList = "PSK-NULL-SHA256";
- #elif defined(HAVE_AESGCM) && !defined(NO_DH)
- defaultCipherList = "DHE-PSK-AES128-GCM-SHA256";
- #else
- defaultCipherList = "PSK-AES128-CBC-SHA256";
- #endif
- if (CyaSSL_CTX_set_cipher_list(ctx, defaultCipherList) != WOLFSSL_SUCCESS)
- err_sys("server can't set cipher list 2");
-#endif
- }
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- ret = wolfAsync_DevOpen(&devId);
- if (ret < 0) {
- printf("Async device open failed\nRunning without async\n");
- }
- wolfSSL_CTX_UseAsync(ctx, devId);
-#endif /* WOLFSSL_ASYNC_CRYPT */
-
- SignalReady(args, port);
-
- while (!shutDown) {
- CYASSL* ssl = NULL;
- CYASSL* write_ssl = NULL; /* may have separate w/ HAVE_WRITE_DUP */
- char command[SVR_COMMAND_SIZE+1];
- int echoSz = 0;
- int clientfd;
- int firstRead = 1;
- int gotFirstG = 0;
- int err = 0;
- SOCKADDR_IN_T client;
- socklen_t client_len = sizeof(client);
-#ifndef CYASSL_DTLS
- clientfd = accept(sockfd, (struct sockaddr*)&client,
- (ACCEPT_THIRD_T)&client_len);
-#else
- clientfd = sockfd;
- {
- /* For DTLS, peek at the next datagram so we can get the client's
- * address and set it into the ssl object later to generate the
- * cookie. */
- int n;
- byte b[1500];
- n = (int)recvfrom(clientfd, (char*)b, sizeof(b), MSG_PEEK,
- (struct sockaddr*)&client, &client_len);
- if (n <= 0)
- err_sys("recvfrom failed");
- }
-#endif
- if (WOLFSSL_SOCKET_IS_INVALID(clientfd)) err_sys("tcp accept failed");
-
- ssl = CyaSSL_new(ctx);
- if (ssl == NULL) err_sys("SSL_new failed");
- CyaSSL_set_fd(ssl, clientfd);
- #ifdef CYASSL_DTLS
- wolfSSL_dtls_set_peer(ssl, &client, client_len);
- #endif
- #if !defined(NO_FILESYSTEM) && !defined(NO_DH) && !defined(NO_ASN)
- CyaSSL_SetTmpDH_file(ssl, dhParamFile, WOLFSSL_FILETYPE_PEM);
- #elif !defined(NO_DH)
- SetDH(ssl); /* will repick suites with DHE, higher than PSK */
- #endif
-
- do {
- err = 0; /* Reset error */
- ret = CyaSSL_accept(ssl);
- if (ret != WOLFSSL_SUCCESS) {
- err = CyaSSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- if (ret != WOLFSSL_SUCCESS) {
- printf("SSL_accept error = %d, %s\n", err,
- CyaSSL_ERR_error_string(err, buffer));
- printf("SSL_accept failed\n");
- CyaSSL_free(ssl);
- CloseSocket(clientfd);
- continue;
- }
-#if defined(PEER_INFO)
- showPeer(ssl);
-#endif
-
-#ifdef HAVE_WRITE_DUP
- write_ssl = wolfSSL_write_dup(ssl);
- if (write_ssl == NULL) {
- printf("wolfSSL_write_dup failed\n");
- CyaSSL_free(ssl);
- CloseSocket(clientfd);
- continue;
- }
-#else
- write_ssl = ssl;
-#endif
-
- while (1) {
- do {
- err = 0; /* reset error */
- ret = CyaSSL_read(ssl, command, sizeof(command)-1);
- if (ret <= 0) {
- err = CyaSSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- if (ret <= 0) {
- if (err != WOLFSSL_ERROR_WANT_READ && err != WOLFSSL_ERROR_ZERO_RETURN){
- printf("SSL_read echo error %d, %s!\n", err,
- CyaSSL_ERR_error_string(err, buffer));
- }
- break;
- }
-
- echoSz = ret;
-
- if (firstRead == 1) {
- firstRead = 0; /* browser may send 1 byte 'G' to start */
- if (echoSz == 1 && command[0] == 'G') {
- gotFirstG = 1;
- continue;
- }
- }
- else if (gotFirstG == 1 && strncmp(command, "ET /", 4) == 0) {
- strncpy(command, "GET", 4);
- /* fall through to normal GET */
- }
-
- if ( strncmp(command, "quit", 4) == 0) {
- printf("client sent quit command: shutting down!\n");
- shutDown = 1;
- break;
- }
- if ( strncmp(command, "break", 5) == 0) {
- printf("client sent break command: closing session!\n");
- break;
- }
-#ifdef PRINT_SESSION_STATS
- if ( strncmp(command, "printstats", 10) == 0) {
- CyaSSL_PrintSessionStats();
- break;
- }
-#endif
- if (strncmp(command, "GET", 3) == 0) {
- const char resp[] =
- "HTTP/1.0 200 ok\r\nContent-type: text/html\r\n\r\n"
- "<html><body BGCOLOR=\"#ffffff\"><pre>\r\n"
- "greetings from wolfSSL\r\n</pre></body></html>\r\n\r\n";
-
- echoSz = (int)strlen(resp) + 1;
- if (echoSz > (int)sizeof(command)) {
- /* Internal error. */
- err_sys("HTTP response greater than buffer.");
- }
- strncpy(command, resp, sizeof(command));
-
- do {
- err = 0; /* reset error */
- ret = CyaSSL_write(write_ssl, command, echoSz);
- if (ret <= 0) {
- err = CyaSSL_get_error(write_ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(write_ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- if (ret != echoSz) {
- printf("SSL_write get error = %d, %s\n", err,
- CyaSSL_ERR_error_string(err, buffer));
- err_sys("SSL_write get failed");
- }
- break;
- }
- command[echoSz] = 0;
-
- #ifdef ECHO_OUT
- fputs(command, fout);
- #endif
-
- do {
- err = 0; /* reset error */
- ret = CyaSSL_write(write_ssl, command, echoSz);
- if (ret <= 0) {
- err = CyaSSL_get_error(write_ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(write_ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
-
- if (ret != echoSz) {
- printf("SSL_write echo error = %d, %s\n", err,
- CyaSSL_ERR_error_string(err, buffer));
- err_sys("SSL_write echo failed");
- }
- }
-#ifndef CYASSL_DTLS
- CyaSSL_shutdown(ssl);
-#endif
-#ifdef HAVE_WRITE_DUP
- CyaSSL_free(write_ssl);
-#endif
- CyaSSL_free(ssl);
- CloseSocket(clientfd);
-#ifdef CYASSL_DTLS
- tcp_listen(&sockfd, &port, useAnyAddr, doDTLS, 0);
- SignalReady(args, port);
-#endif
- }
-
- CloseSocket(sockfd);
- CyaSSL_CTX_free(ctx);
-
-#ifdef ECHO_OUT
- if (outCreated)
- fclose(fout);
-#endif
-
- ((func_args*)args)->return_code = 0;
-
-#if defined(NO_MAIN_DRIVER) && defined(HAVE_ECC) && defined(FP_ECC) \
- && defined(HAVE_THREAD_LS)
- ecc_fp_free(); /* free per thread cache */
-#endif
-
-#ifdef CYASSL_TIRTOS
- fdCloseSession(Task_self());
-#endif
-
-#if defined(HAVE_SESSION_TICKET) && defined(HAVE_CHACHA) && \
- defined(HAVE_POLY1305)
- TicketCleanup();
-#endif
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- wolfAsync_DevClose(&devId);
-#endif
-
-#ifndef CYASSL_TIRTOS
- return 0;
-#endif
-}
-
-#endif /* !NO_WOLFSSL_SERVER */
-
-
-/* so overall tests can pull in test function */
-#ifndef NO_MAIN_DRIVER
-
- int main(int argc, char** argv)
- {
- func_args args;
-
-#ifdef HAVE_WNR
- if (wc_InitNetRandom(wnrConfig, NULL, 5000) != 0)
- err_sys("Whitewood netRandom global config failed");
-#endif
-
- StartTCP();
-
- args.argc = argc;
- args.argv = argv;
- args.return_code = 0;
-
- CyaSSL_Init();
-#if defined(DEBUG_CYASSL) && !defined(CYASSL_MDK_SHELL)
- CyaSSL_Debugging_ON();
-#endif
- ChangeToWolfRoot();
-#ifndef NO_WOLFSSL_SERVER
- echoserver_test(&args);
-#endif
- CyaSSL_Cleanup();
-
-#ifdef HAVE_WNR
- if (wc_FreeNetRandom() < 0)
- err_sys("Failed to free netRandom context");
-#endif /* HAVE_WNR */
-
- return args.return_code;
- }
-
-#endif /* NO_MAIN_DRIVER */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.h b/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.h
deleted file mode 100644
index 622193f61..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* echoserver.h
- *
- * Copyright (C) 2006-2020 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_ECHOSERVER_H
-#define WOLFSSL_ECHOSERVER_H
-
-
-THREAD_RETURN WOLFSSL_THREAD echoserver_test(void* args);
-
-
-#endif /* WOLFSSL_ECHOSERVER_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.sln b/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.sln
deleted file mode 100644
index 6bda3549c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual C++ Express 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoserver", "echoserver.vcproj", "{4F3F3EF1-BB95-466A-87B2-A91C059D0197}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Debug|Win32.ActiveCfg = Debug|Win32
- {4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Debug|Win32.Build.0 = Debug|Win32
- {4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Release|Win32.ActiveCfg = Release|Win32
- {4F3F3EF1-BB95-466A-87B2-A91C059D0197}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.vcproj b/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.vcproj
deleted file mode 100644
index 2d6d58199..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.vcproj
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="echoserver"
- ProjectGUID="{07D97C48-E08F-4E34-9F67-3064039FF2CB}"
- RootNamespace="echoserver"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../;../../IDE/WIN"
- PreprocessorDefinitions="USE_ANY_ADDR;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../../;../../IDE/WIN"
- PreprocessorDefinitions="USE_ANY_ADDR;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\echoserver.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath="..\..\IDE\WIN\user_settings.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.vcxproj b/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.vcxproj
deleted file mode 100644
index 136de4a0e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/echoserver.vcxproj
+++ /dev/null
@@ -1,336 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Debug|Win32">
- <Configuration>DLL Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Debug|x64">
- <Configuration>DLL Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Release|Win32">
- <Configuration>DLL Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Release|x64">
- <Configuration>DLL Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{07D97C48-E08F-4E34-9F67-3064039FF2CB}</ProjectGuid>
- <RootNamespace>echoserver</RootNamespace>
- <Keyword>Win32Proj</Keyword>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>USE_ANY_ADDR;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader />
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>USE_ANY_ADDR;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>USE_ANY_ADDR;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>USE_ANY_ADDR;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>USE_ANY_ADDR;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader />
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>USE_ANY_ADDR;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>USE_ANY_ADDR;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>USE_ANY_ADDR;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="echoserver.c" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\wolfssl.vcxproj">
- <Project>{73973223-5ee8-41ca-8e88-1d60e89a237b}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\IDE\WIN\user_settings.h" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/include.am b/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/include.am
deleted file mode 100644
index 516c40441..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/echoserver/include.am
+++ /dev/null
@@ -1,19 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-
-if BUILD_EXAMPLE_SERVERS
-noinst_PROGRAMS += examples/echoserver/echoserver
-noinst_HEADERS += examples/echoserver/echoserver.h
-examples_echoserver_echoserver_SOURCES = examples/echoserver/echoserver.c
-examples_echoserver_echoserver_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-examples_echoserver_echoserver_DEPENDENCIES = src/libwolfssl.la
-endif
-EXTRA_DIST += examples/echoserver/echoserver.sln
-EXTRA_DIST += examples/echoserver/echoserver-ntru.vcproj
-EXTRA_DIST += examples/echoserver/echoserver.vcproj
-EXTRA_DIST += examples/echoserver/echoserver.vcxproj
-
-dist_example_DATA+= examples/echoserver/echoserver.c
-DISTCLEANFILES+= examples/echoserver/.libs/echoserver
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/include.am b/FreeRTOS-Plus/Source/WolfSSL/examples/include.am
deleted file mode 100644
index 03c06eb6b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/include.am
+++ /dev/null
@@ -1,9 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-
-include examples/benchmark/include.am
-include examples/client/include.am
-include examples/echoclient/include.am
-include examples/echoserver/include.am
-include examples/server/include.am
-include examples/sctp/include.am
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/include.am b/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/include.am
deleted file mode 100644
index ae970b40b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/include.am
+++ /dev/null
@@ -1,38 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-
-if BUILD_SCTP
-if BUILD_EXAMPLE_SERVERS
-noinst_PROGRAMS += \
- examples/sctp/sctp-server \
- examples/sctp/sctp-server-dtls
-examples_sctp_sctp_server_SOURCES = examples/sctp/sctp-server.c
-examples_sctp_sctp_server_LDADD = $(LIB_STATIC_ADD)
-examples_sctp_sctp_server_dtls_SOURCES = examples/sctp/sctp-server-dtls.c
-examples_sctp_sctp_server_dtls_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-examples_sctp_sctp_server_dtls_DEPENDENCIES = src/libwolfssl.la
-endif
-if BUILD_EXAMPLE_CLIENTS
-noinst_PROGRAMS += \
- examples/sctp/sctp-client \
- examples/sctp/sctp-client-dtls
-examples_sctp_sctp_client_SOURCES = examples/sctp/sctp-client.c
-examples_sctp_sctp_client_LDADD = $(LIB_STATIC_ADD)
-examples_sctp_sctp_client_dtls_SOURCES = examples/sctp/sctp-client-dtls.c
-examples_sctp_sctp_client_dtls_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-examples_sctp_sctp_client_dtls_DEPENDENCIES = src/libwolfssl.la
-endif
-endif
-
-dist_example_DATA += \
- examples/sctp/sctp-server.c \
- examples/sctp/sctp-server-dtls.c \
- examples/sctp/sctp-client.c \
- examples/sctp/sctp-client-dtls.c
-DISTCLEANFILES += \
- examples/sctp/.libs/sctp-server \
- examples/sctp/.libs/sctp-server-dtls \
- examples/sctp/.libs/sctp-client \
- examples/sctp/.libs/sctp-client-dtls
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-client-dtls.c b/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-client-dtls.c
deleted file mode 100644
index c0a222463..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-client-dtls.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/* sctp-client-dtls.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/* wolfssl */
-#ifndef WOLFSSL_USER_SETTINGS
- #include <wolfssl/options.h>
-#endif
-#include <wolfssl/wolfcrypt/settings.h>
-#include <wolfssl/ssl.h>
-
-#if defined(WOLFSSL_SCTP) && defined(WOLFSSL_DTLS)
-/* sctp */
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-/* std */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#define cacert "./certs/ca-cert.pem"
-
-static int err_sys(const char* msg)
-{
- perror(msg);
- exit(EXIT_FAILURE);
-}
-#endif /* WOLFSSL_SCTP && WOLFSSL_DTLS */
-
-int main()
-{
-#if defined(WOLFSSL_SCTP) && defined(WOLFSSL_DTLS)
- int sd = socket(PF_INET, SOCK_STREAM, IPPROTO_SCTP);
-
- if (sd < 0)
- err_sys("sctp socket error");
-
- struct sockaddr_in sa;
- memset(&sa, 0, sizeof(sa));
- sa.sin_family = AF_INET;
- sa.sin_addr.s_addr = inet_addr("127.0.0.1");
- sa.sin_port = htons(12345);
-
- int ret = connect(sd, (struct sockaddr*)&sa, sizeof(sa));
- if (ret < 0)
- err_sys("sctp connect error");
-
- const char* response = "hello there";
- char buffer[80];
-
- WOLFSSL_CTX* ctx = wolfSSL_CTX_new(wolfDTLSv1_2_client_method());
- if (ctx == NULL)
- err_sys("ctx new dtls client failed");
-
- ret = wolfSSL_CTX_dtls_set_sctp(ctx);
- if (ret != WOLFSSL_SUCCESS)
- err_sys("set sctp mode failed");
-
- ret = wolfSSL_CTX_load_verify_locations(ctx, cacert, NULL);
- if (ret != WOLFSSL_SUCCESS)
- err_sys("ca cert error");
-
- WOLFSSL* ssl = wolfSSL_new(ctx);
- if (ssl == NULL)
- err_sys("ssl new dtls client failed");
-
- wolfSSL_set_fd(ssl, sd);
-
- ret = wolfSSL_connect(ssl);
- if (ret != WOLFSSL_SUCCESS)
- err_sys("ssl connect failed");
-
- printf("TLS version is %s\n", wolfSSL_get_version(ssl));
- printf("Cipher Suite is %s\n",
- wolfSSL_CIPHER_get_name(wolfSSL_get_current_cipher(ssl)));
-
- wolfSSL_write(ssl, response, (int)strlen(response));
- int got = wolfSSL_read(ssl, buffer, sizeof(buffer));
- if (got > 0) {
- buffer[got] = 0;
- printf("server said: %s\n", buffer);
- }
-
- unsigned char bigBuf[4096];
- unsigned int i;
-
- for (i = 0; i < (int)sizeof(bigBuf); i++)
- bigBuf[i] = (unsigned char)(i & 0xFF);
- wolfSSL_write(ssl, bigBuf, sizeof(bigBuf));
- memset(bigBuf, 0, sizeof(bigBuf));
-
- wolfSSL_read(ssl, bigBuf, sizeof(bigBuf));
- for (i = 0; i < sizeof(bigBuf); i++) {
- if (bigBuf[i] != (unsigned char)(i & 0xFF)) {
- printf("big message check fail\n");
- break;
- }
- }
-
- wolfSSL_shutdown(ssl);
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-
- close(sd);
-#endif /* WOLFSSL_SCTP && WOLFSSL_DTLS */
-
- return 0;
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-client.c b/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-client.c
deleted file mode 100644
index cb01354d8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-client.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* sctp-client.c
- *
- * Copyright (C) 2006-2020 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_USER_SETTINGS
- #include <wolfssl/options.h>
-#endif
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifdef WOLFSSL_SCTP
-
-/* sctp */
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-/* std */
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#endif /* WOLFSSL_SCTP */
-
-int main()
-{
-#ifdef WOLFSSL_SCTP
- int sd = socket(PF_INET, SOCK_STREAM, IPPROTO_SCTP);
-
- if (sd < 0)
- perror("sctp socket error");
-
- struct sockaddr_in sa;
- memset(&sa, 0, sizeof(sa));
- sa.sin_family = AF_INET;
- sa.sin_addr.s_addr = inet_addr("127.0.0.1");
- sa.sin_port = htons(12345);
-
- int ret = connect(sd, (struct sockaddr*)&sa, sizeof(sa));
- if (ret < 0)
- perror("sctp connect error");
-
- const char* msg = "hello sctp";
- char buffer[80];
-
- send(sd, msg, strlen(msg), 0);
- int got = (int)recv(sd, buffer, sizeof(buffer), 0);
- if (got > 0) {
- buffer[got] = 0;
- printf("server said: %s\n", buffer);
- }
-
- close(sd);
-#endif /* WOLFSSL_SCTP */
- return 0;
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-server-dtls.c b/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-server-dtls.c
deleted file mode 100644
index 50a20f241..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-server-dtls.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* sctp-server-dtls.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-/* wolfssl */
-#ifndef WOLFSSL_USER_SETTINGS
- #include <wolfssl/options.h>
-#endif
-#include <wolfssl/wolfcrypt/settings.h>
-#include <wolfssl/ssl.h>
-
-#if defined(WOLFSSL_SCTP) && defined(WOLFSSL_DTLS)
-/* sctp */
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
-/* std */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-#define key "./certs/server-key.pem"
-#define cert "./certs/server-cert.pem"
-
-static int err_sys(const char* msg)
-{
- perror(msg);
- exit(EXIT_FAILURE);
-}
-#endif /* WOLFSSL_SCTP && WOLFSSL_DTLS */
-
-int main()
-{
-#if defined(WOLFSSL_SCTP) && defined(WOLFSSL_DTLS)
- int sd = socket(PF_INET, SOCK_STREAM, IPPROTO_SCTP);
-
- if (sd < 0)
- err_sys("sctp socket error");
-
- struct sockaddr_in sa;
- memset(&sa, 0, sizeof(sa));
- sa.sin_family = AF_INET;
- sa.sin_addr.s_addr = htonl(INADDR_ANY);
- sa.sin_port = htons(12345);
-
- int ret = bind(sd, (struct sockaddr*)&sa, sizeof(sa));
- if (ret < 0)
- err_sys("sctp bind error");
-
- listen(sd, 3);
-
- int client_sd = accept(sd, NULL, NULL);
- if (client_sd < 0)
- err_sys("sctp accept error");
-
- const char* response = "well hello to you";
- char buffer[80];
-
- WOLFSSL_CTX* ctx = wolfSSL_CTX_new(wolfDTLSv1_2_server_method());
- if (ctx == NULL)
- err_sys("ctx new dtls server failed");
-
- ret = wolfSSL_CTX_dtls_set_sctp(ctx);
- if (ret != WOLFSSL_SUCCESS)
- err_sys("set sctp mode failed");
-
- ret = wolfSSL_CTX_use_PrivateKey_file(ctx, key, WOLFSSL_FILETYPE_PEM);
- if (ret != WOLFSSL_SUCCESS)
- err_sys("use private key error");
-
- ret = wolfSSL_CTX_use_certificate_file(ctx, cert, WOLFSSL_FILETYPE_PEM);
- if (ret != WOLFSSL_SUCCESS)
- err_sys("use cert error");
-
- WOLFSSL* ssl = wolfSSL_new(ctx);
- if (ssl == NULL)
- err_sys("ssl new dtls server failed");
-
- wolfSSL_set_fd(ssl, client_sd);
-
- ret = wolfSSL_accept(ssl);
- if (ret != WOLFSSL_SUCCESS)
- err_sys("ssl accept failed");
-
- printf("TLS version is %s\n", wolfSSL_get_version(ssl));
- printf("Cipher Suite is %s\n",
- wolfSSL_CIPHER_get_name(wolfSSL_get_current_cipher(ssl)));
-
- int got = wolfSSL_read(ssl, buffer, sizeof(buffer));
- if (got > 0) {
- buffer[got] = 0;
- printf("client said: %s\n", buffer);
- }
- wolfSSL_write(ssl, response, (int)strlen(response));
-
- unsigned char bigBuf[4096];
-
- wolfSSL_read(ssl, bigBuf, sizeof(bigBuf));
- wolfSSL_write(ssl, bigBuf, sizeof(bigBuf));
-
- wolfSSL_shutdown(ssl);
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-
- close(sd);
-#endif /* WOLFSSL_SCTP && WOLFSSL_DTLS */
- return 0;
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-server.c b/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-server.c
deleted file mode 100644
index 34b02c9ce..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/sctp/sctp-server.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* sctp-server.c
- *
- * Copyright (C) 2006-2020 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_USER_SETTINGS
- #include <wolfssl/options.h>
-#endif
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifdef WOLFSSL_SCTP
-/* sctp */
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
-/* std */
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#endif /* WOLFSSL_SCTP */
-
-int main()
-{
-#ifdef WOLFSSL_SCTP
- int sd = socket(PF_INET, SOCK_STREAM, IPPROTO_SCTP);
-
- if (sd < 0)
- perror("sctp socket error");
-
- struct sockaddr_in sa;
- memset(&sa, 0, sizeof(sa));
- sa.sin_family = AF_INET;
- sa.sin_addr.s_addr = htonl(INADDR_ANY);
- sa.sin_port = htons(12345);
-
- int ret = bind(sd, (struct sockaddr*)&sa, sizeof(sa));
- if (ret < 0)
- perror("sctp bind error");
-
- listen(sd, 3);
-
- int client_sd = accept(sd, NULL, NULL);
- if (client_sd < 0)
- perror("sctp accept error");
-
- const char* response = "hi there";
- char buffer[80];
-
- int got = (int)recv(client_sd, buffer, sizeof(buffer), 0);
- if (got > 0) {
- buffer[got] = 0;
- printf("client said: %s\n", buffer);
- }
- send(client_sd, response, strlen(response), 0);
-
-
- close(sd);
-#endif /* WOLFSSL_SCTP */
- return 0;
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/server/include.am b/FreeRTOS-Plus/Source/WolfSSL/examples/server/include.am
deleted file mode 100644
index 8a3d75119..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/server/include.am
+++ /dev/null
@@ -1,20 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-
-if BUILD_EXAMPLE_SERVERS
-noinst_PROGRAMS += examples/server/server
-noinst_HEADERS += examples/server/server.h
-examples_server_server_SOURCES = examples/server/server.c
-examples_server_server_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-examples_server_server_DEPENDENCIES = src/libwolfssl.la
-endif
-EXTRA_DIST += examples/server/server.sln
-EXTRA_DIST += examples/server/server-ntru.vcproj
-EXTRA_DIST += examples/server/server.vcproj
-EXTRA_DIST += examples/server/server.vcxproj
-
-dist_example_DATA+= examples/server/server.c
-DISTCLEANFILES+= examples/server/.libs/server
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/server/server-ntru.vcproj b/FreeRTOS-Plus/Source/WolfSSL/examples/server/server-ntru.vcproj
deleted file mode 100644
index 8e45e1686..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/server/server-ntru.vcproj
+++ /dev/null
@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="server"
- ProjectGUID="{E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}"
- RootNamespace="server"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../"
- PreprocessorDefinitions="NO_PSK"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib NtruEncrypt_DLL.lib"
- LinkIncremental="2"
- AdditionalLibraryDirectories="..\..\NTRU\bin"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../../"
- PreprocessorDefinitions="NO_PSK"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib NtruEncrypt_DLL.lib"
- LinkIncremental="1"
- AdditionalLibraryDirectories="..\..\NTRU\bin"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\server.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.c b/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.c
deleted file mode 100644
index 192c03a72..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.c
+++ /dev/null
@@ -1,2575 +0,0 @@
-/* server.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-#include <wolfssl/ssl.h> /* name change portability layer */
-
-#include <wolfssl/wolfcrypt/settings.h>
-#ifdef HAVE_ECC
- #include <wolfssl/wolfcrypt/ecc.h> /* wc_ecc_fp_free */
-#endif
-
-#if defined(WOLFSSL_MDK_ARM) || defined(WOLFSSL_KEIL_TCP_NET)
- #include <stdio.h>
- #include <string.h>
- #include "rl_fs.h"
- #include "rl_net.h"
-#endif
-
-#include <wolfssl/openssl/ssl.h>
-#include <wolfssl/test.h>
-#ifdef WOLFSSL_DTLS
- #include <wolfssl/error-ssl.h>
-#endif
-
-#include "examples/server/server.h"
-
-#ifndef NO_WOLFSSL_SERVER
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- static int devId = INVALID_DEVID;
-#endif
-
-#define DEFAULT_TIMEOUT_SEC 2
-
-/* Note on using port 0: if the server uses port 0 to bind an ephemeral port
- * number and is using the ready file for scripted testing, the code in
- * test.h will write the actual port number into the ready file for use
- * by the client. */
-
-static const char webServerMsg[] =
- "HTTP/1.1 200 OK\r\n"
- "Content-Type: text/html\r\n"
- "Connection: close\r\n"
- "Content-Length: 141\r\n"
- "\r\n"
- "<html>\r\n"
- "<head>\r\n"
- "<title>Welcome to wolfSSL!</title>\r\n"
- "</head>\r\n"
- "<body>\r\n"
- "<p>wolfSSL has successfully performed handshake!</p>\r\n"
- "</body>\r\n"
- "</html>\r\n";
-
-int runWithErrors = 0; /* Used with -x flag to run err_sys vs. print errors */
-int catastrophic = 0; /* Use with -x flag to still exit when an error is
- * considered catastrophic EG the servers own cert failing
- * to load would be catastrophic since there would be no
- * cert to send to clients attempting to connect. The
- * server should error out completely in that case
- */
-static int lng_index = 0;
-
-#ifdef WOLFSSL_CALLBACKS
- #if !defined(NO_OLD_TIMEVAL_NAME)
- Timeval srvTo;
- #else
- WOLFSSL_TIMEVAL srvTo;
- #endif
- static int srvHandShakeCB(HandShakeInfo* info)
- {
- (void)info;
- return 0;
- }
-
- static int srvTimeoutCB(TimeoutInfo* info)
- {
- (void)info;
- return 0;
- }
-
-#endif
-
-#ifndef NO_HANDSHAKE_DONE_CB
- static int myHsDoneCb(WOLFSSL* ssl, void* user_ctx)
- {
- (void)user_ctx;
- (void)ssl;
-
- /* printf("Notified HandShake done\n"); */
-
- /* return negative number to end TLS connection now */
- return 0;
- }
-#endif
-
-
-static void err_sys_ex(int out, const char* msg)
-{
- if (out == 1) { /* if server is running w/ -x flag, print error w/o exit */
- printf("wolfSSL error: %s\n", msg);
- printf("Continuing server execution...\n\n");
- } else {
- err_sys(msg);
- }
-}
-
-
-#ifdef WOLFSSL_DTLS
-
-/* Translates return codes returned from
- * send() and recv() if need be.
- */
-static WC_INLINE int TranslateReturnCode(int old, int sd)
-{
- (void)sd;
-
-#if defined(FREESCALE_MQX) || defined(FREESCALE_KSDK_MQX)
- if (old == 0) {
- errno = SOCKET_EWOULDBLOCK;
- return -1; /* convert to BSD style wouldblock as error */
- }
-
- if (old < 0) {
- errno = RTCS_geterror(sd);
- if (errno == RTCSERR_TCP_CONN_CLOSING)
- return 0; /* convert to BSD style closing */
- if (errno == RTCSERR_TCP_CONN_RLSD)
- errno = SOCKET_ECONNRESET;
- if (errno == RTCSERR_TCP_TIMED_OUT)
- errno = SOCKET_EAGAIN;
- }
-#endif
-
- return old;
-}
-
-static WC_INLINE int wolfSSL_LastError(void)
-{
-#ifdef USE_WINDOWS_API
- return WSAGetLastError();
-#elif defined(EBSNET)
- return xn_getlasterror();
-#else
- return errno;
-#endif
-}
-
-/* wolfSSL Sock Addr */
-struct WOLFSSL_TEST_SOCKADDR {
- unsigned int sz; /* sockaddr size */
- SOCKADDR_IN_T sa; /* pointer to the sockaddr_in or sockaddr_in6 */
-};
-
-typedef struct WOLFSSL_TEST_DTLS_CTX {
- struct WOLFSSL_TEST_SOCKADDR peer;
- int rfd;
- int wfd;
- int failOnce;
- word32 blockSeq;
-} WOLFSSL_TEST_DTLS_CTX;
-
-
-static WC_INLINE int PeekSeq(const char* buf, word32* seq)
-{
- const char* c = buf + 3;
-
- if ((c[0] | c[1] | c[2] | c[3]) == 0) {
- *seq = (c[4] << 24) | (c[5] << 16) | (c[6] << 8) | c[7];
- return 1;
- }
-
- return 0;
-}
-
-
-/* The send embedded callback
- * return : nb bytes sent, or error
- */
-static int TestEmbedSendTo(WOLFSSL* ssl, char *buf, int sz, void *ctx)
-{
- WOLFSSL_TEST_DTLS_CTX* dtlsCtx = (WOLFSSL_TEST_DTLS_CTX*)ctx;
- int sd = dtlsCtx->wfd;
- int sent;
- int err;
-
- (void)ssl;
-
- WOLFSSL_ENTER("TestEmbedSendTo()");
-
- if (dtlsCtx->failOnce) {
- word32 seq = 0;
-
- if (PeekSeq(buf, &seq) && seq == dtlsCtx->blockSeq) {
- dtlsCtx->failOnce = 0;
- WOLFSSL_MSG("Forcing WANT_WRITE");
- return WOLFSSL_CBIO_ERR_WANT_WRITE;
- }
- }
-
- sent = (int)sendto(sd, buf, sz, 0, (const SOCKADDR*)&dtlsCtx->peer.sa,
- dtlsCtx->peer.sz);
-
- sent = TranslateReturnCode(sent, sd);
-
- if (sent < 0) {
- err = wolfSSL_LastError();
- WOLFSSL_MSG("Embed Send To error");
-
- if (err == SOCKET_EWOULDBLOCK || err == SOCKET_EAGAIN) {
- WOLFSSL_MSG("\tWould Block");
- return WOLFSSL_CBIO_ERR_WANT_WRITE;
- }
- else if (err == SOCKET_ECONNRESET) {
- WOLFSSL_MSG("\tConnection reset");
- return WOLFSSL_CBIO_ERR_CONN_RST;
- }
- else if (err == SOCKET_EINTR) {
- WOLFSSL_MSG("\tSocket interrupted");
- return WOLFSSL_CBIO_ERR_ISR;
- }
- else if (err == SOCKET_EPIPE) {
- WOLFSSL_MSG("\tSocket EPIPE");
- return WOLFSSL_CBIO_ERR_CONN_CLOSE;
- }
- else {
- WOLFSSL_MSG("\tGeneral error");
- return WOLFSSL_CBIO_ERR_GENERAL;
- }
- }
-
- return sent;
-}
-
-#endif /* WOLFSSL_DTLS */
-
-
-static int NonBlockingSSL_Accept(SSL* ssl)
-{
-#ifndef WOLFSSL_CALLBACKS
- int ret = SSL_accept(ssl);
-#else
- int ret = wolfSSL_accept_ex(ssl, srvHandShakeCB, srvTimeoutCB, srvTo);
-#endif
- int error = SSL_get_error(ssl, 0);
- SOCKET_T sockfd = (SOCKET_T)SSL_get_fd(ssl);
- int select_ret = 0;
-
- while (ret != WOLFSSL_SUCCESS &&
- (error == WOLFSSL_ERROR_WANT_READ || error == WOLFSSL_ERROR_WANT_WRITE
- #ifdef WOLFSSL_ASYNC_CRYPT
- || error == WC_PENDING_E
- #endif
- )) {
- int currTimeout = 1;
-
- if (error == WOLFSSL_ERROR_WANT_READ) {
- /* printf("... server would read block\n"); */
- }
- else if (error == WOLFSSL_ERROR_WANT_WRITE) {
- /* printf("... server would write block\n"); */
- }
-
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (error == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- else
- #endif
- {
- if (error != WOLFSSL_ERROR_WANT_WRITE) {
- #ifdef WOLFSSL_DTLS
- currTimeout = wolfSSL_dtls_get_current_timeout(ssl);
- #endif
- select_ret = tcp_select(sockfd, currTimeout);
- }
- }
-
- if ((select_ret == TEST_RECV_READY) || (select_ret == TEST_SEND_READY)
- || (select_ret == TEST_ERROR_READY)
- #ifdef WOLFSSL_ASYNC_CRYPT
- || error == WC_PENDING_E
- #endif
- ) {
- #ifndef WOLFSSL_CALLBACKS
- ret = SSL_accept(ssl);
- #else
- ret = wolfSSL_accept_ex(ssl,
- srvHandShakeCB, srvTimeoutCB, srvTo);
- #endif
- error = SSL_get_error(ssl, 0);
- if (error == WOLFSSL_ERROR_WANT_WRITE) {
- /* Do a select here. */
- select_ret = tcp_select_tx(sockfd, 1);
- if (select_ret == TEST_TIMEOUT)
- error = WOLFSSL_FATAL_ERROR;
- }
- }
- else if (select_ret == TEST_TIMEOUT && !wolfSSL_dtls(ssl)) {
- error = WOLFSSL_ERROR_WANT_READ;
- }
- #ifdef WOLFSSL_DTLS
- else if (select_ret == TEST_TIMEOUT && wolfSSL_dtls(ssl) &&
- wolfSSL_dtls_got_timeout(ssl) >= 0) {
- error = WOLFSSL_ERROR_WANT_READ;
- }
- #endif
- else {
- error = WOLFSSL_FATAL_ERROR;
- }
- }
-
- return ret;
-}
-
-/* Echo number of bytes specified by -e arg */
-int ServerEchoData(SSL* ssl, int clientfd, int echoData, int block,
- size_t throughput)
-{
- int ret = 0, err;
- double start = 0, rx_time = 0, tx_time = 0;
- int select_ret, len, rx_pos;
- size_t xfer_bytes = 0;
- char* buffer;
-
- buffer = (char*)malloc(block);
- if (!buffer) {
- err_sys_ex(runWithErrors, "Server buffer malloc failed");
- }
-
- while ((echoData && throughput == 0) ||
- (!echoData && xfer_bytes < throughput))
- {
- select_ret = tcp_select(clientfd, 1); /* Timeout=1 second */
- if (select_ret == TEST_RECV_READY) {
-
- len = min(block, (int)(throughput - xfer_bytes));
- rx_pos = 0;
-
- if (throughput) {
- start = current_time(1);
- }
-
- /* Read data */
- while (rx_pos < len) {
- ret = SSL_read(ssl, &buffer[rx_pos], len - rx_pos);
- if (ret < 0) {
- err = SSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- else
- #endif
- if (err != WOLFSSL_ERROR_WANT_READ &&
- err != WOLFSSL_ERROR_ZERO_RETURN) {
- printf("SSL_read echo error %d\n", err);
- err_sys_ex(runWithErrors, "SSL_read failed");
- break;
- }
- }
- else {
- rx_pos += ret;
- }
- }
- if (throughput) {
- rx_time += current_time(0) - start;
- start = current_time(1);
- }
-
- /* Write data */
- do {
- err = 0; /* reset error */
- ret = SSL_write(ssl, buffer, len);
- if (ret <= 0) {
- err = SSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- if (ret != len) {
- printf("SSL_write echo error %d\n", err);
- err_sys_ex(runWithErrors, "SSL_write failed");
- }
-
- if (throughput) {
- tx_time += current_time(0) - start;
- }
-
- xfer_bytes += len;
- }
- }
-
- free(buffer);
-
- if (throughput) {
- #if !defined(__MINGW32__)
- printf("wolfSSL Server Benchmark %zu bytes\n"
- #else
- printf("wolfSSL Server Benchmark %d bytes\n"
- #endif
- "\tRX %8.3f ms (%8.3f MBps)\n"
- "\tTX %8.3f ms (%8.3f MBps)\n",
- #if !defined(__MINGW32__)
- throughput,
- #else
- (int)throughput,
- #endif
- tx_time * 1000, throughput / tx_time / 1024 / 1024,
- rx_time * 1000, throughput / rx_time / 1024 / 1024
- );
- }
-
- return EXIT_SUCCESS;
-}
-
-static void ServerRead(WOLFSSL* ssl, char* input, int inputLen)
-{
- int ret, err;
- char buffer[WOLFSSL_MAX_ERROR_SZ];
-
- /* Read data */
- do {
- err = 0; /* reset error */
- ret = SSL_read(ssl, input, inputLen);
- if (ret < 0) {
- err = SSL_get_error(ssl, 0);
-
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- else
- #endif
- #ifdef WOLFSSL_DTLS
- if (wolfSSL_dtls(ssl) && err == DECRYPT_ERROR) {
- printf("Dropped client's message due to a bad MAC\n");
- }
- else
- #endif
- if (err != WOLFSSL_ERROR_WANT_READ) {
- printf("SSL_read input error %d, %s\n", err,
- ERR_error_string(err, buffer));
- err_sys_ex(runWithErrors, "SSL_read failed");
- }
- }
- else if (SSL_get_error(ssl, 0) == 0 &&
- tcp_select(SSL_get_fd(ssl), 0) == TEST_RECV_READY) {
- err = WOLFSSL_ERROR_WANT_READ;
- }
- } while (err == WC_PENDING_E || err == WOLFSSL_ERROR_WANT_READ);
- if (ret > 0) {
- input[ret] = 0; /* null terminate message */
- printf("Client message: %s\n", input);
- }
-}
-
-static void ServerWrite(WOLFSSL* ssl, const char* output, int outputLen)
-{
- int ret, err;
- char buffer[WOLFSSL_MAX_ERROR_SZ];
- int len;
-
-#ifdef OPENSSL_ALL
- /* Fuzz testing expects reply split over two msgs when TLSv1.0 or below */
- if (wolfSSL_GetVersion(ssl) <= WOLFSSL_TLSV1)
- len = outputLen / 2;
- else
-#endif
- len = outputLen;
-
- do {
- err = 0; /* reset error */
- ret = SSL_write(ssl, output, len);
- if (ret <= 0) {
- err = SSL_get_error(ssl, 0);
-
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- else if (ret != outputLen) {
- output += ret;
- len = (outputLen -= ret);
- err = WOLFSSL_ERROR_WANT_WRITE;
- }
- } while (err == WC_PENDING_E || err == WOLFSSL_ERROR_WANT_WRITE);
- if (ret != outputLen) {
- printf("SSL_write msg error %d, %s\n", err,
- ERR_error_string(err, buffer));
- err_sys_ex(runWithErrors, "SSL_write failed");
- }
-}
-/* when adding new option, please follow the steps below: */
-/* 1. add new option message in English section */
-/* 2. increase the number of the second column */
-/* 3. add the same message into Japanese section */
-/* (will be translated later) */
-/* 4. add printf() into suitable position of Usage() */
-static const char* server_usage_msg[][49] = {
- /* English */
- {
- " NOTE: All files relative to wolfSSL home dir\n", /* 0 */
- "-? <num> Help, print this usage\n"
- " 0: English, 1: Japanese\n", /* 1 */
- "-p <num> Port to listen on, not 0, default", /* 2 */
-#ifndef WOLFSSL_TLS13
- "-v <num> SSL version [0-3], SSLv3(0) - TLS1.2(3)), default", /* 3 */
-#else
- "-v <num> SSL version [0-4], SSLv3(0) - TLS1.3(4)), default", /* 3 */
-#endif
- "-l <str> Cipher suite list (: delimited)\n", /* 4 */
- "-c <file> Certificate file, default", /* 5 */
- "-k <file> Key file, default", /* 6 */
- "-A <file> Certificate Authority file, default", /* 7 */
- "-R <file> Create Ready file for external monitor"
- " default none\n", /* 8 */
-#ifndef NO_DH
- "-D <file> Diffie-Hellman Params file, default", /* 9 */
- "-Z <num> Minimum DH key bits, default", /* 10 */
-#endif
-#ifdef HAVE_ALPN
- "-L <str> Application-Layer Protocol Negotiation"
- " ({C,F}:<list>)\n", /* 11 */
-#endif
- "-d Disable client cert check\n", /* 12 */
- "-b Bind to any interface instead of localhost only\n",/* 13 */
- "-s Use pre Shared keys\n", /* 14 */
- "-u Use UDP DTLS,"
- " add -v 2 for DTLSv1, -v 3 for DTLSv1.2 (default)\n", /* 15 */
-#ifdef WOLFSSL_SCTP
- "-G Use SCTP DTLS,"
- " add -v 2 for DTLSv1, -v 3 for DTLSv1.2 (default)\n", /* 16 */
-#endif
- "-f Fewer packets/group messages\n", /* 17 */
- "-r Allow one client Resumption\n", /* 18 */
- "-N Use Non-blocking sockets\n", /* 19 */
- "-S <str> Use Host Name Indication\n", /* 20 */
- "-w Wait for bidirectional shutdown\n", /* 21 */
-#ifdef HAVE_OCSP
- "-o Perform OCSP lookup on peer certificate\n", /* 22 */
- "-O <url> Perform OCSP lookup using <url> as responder\n", /* 23 */
-#endif
-#ifdef HAVE_PK_CALLBACKS
- "-P Public Key Callbacks\n", /* 24 */
-#endif
-#ifdef HAVE_ANON
- "-a Anonymous server\n", /* 25 */
-#endif
-#ifndef NO_PSK
- "-I Do not send PSK identity hint\n", /* 26 */
-#endif
- "-x Print server errors but do not close connection\n",/* 27 */
- "-i Loop indefinitely (allow repeated connections)\n", /* 28 */
- "-e Echo data mode (return raw bytes received)\n", /* 29 */
-#ifdef HAVE_NTRU
- "-n Use NTRU key (needed for NTRU suites)\n", /* 30 */
-#endif
- "-B <num> Benchmark throughput"
- " using <num> bytes and print stats\n", /* 31 */
-#ifdef HAVE_CRL
- "-V Disable CRL\n", /* 32 */
-#endif
-#ifdef WOLFSSL_TRUST_PEER_CERT
- "-E <file> Path to load trusted peer cert\n", /* 33 */
-#endif
-#ifdef HAVE_WNR
- "-q <file> Whitewood config file, default", /* 34 */
-#endif
- "-g Return basic HTML web page\n", /* 35 */
- "-C <num> The number of connections to accept, default: 1\n",/* 36 */
- "-H <arg> Internal tests"
- " [defCipherList, exitWithRet, verifyFail, useSupCurve,\n", /* 37 */
- " loadSSL, disallowETM]\n", /* 38 */
-#ifdef WOLFSSL_TLS13
- "-U Update keys and IVs before sending\n", /* 39 */
- "-K Key Exchange for PSK not using (EC)DHE\n", /* 40 */
-#ifndef NO_DH
- "-y Pre-generate Key Share using FFDHE_2048 only\n", /* 41 */
-#endif
-#ifdef HAVE_ECC
- "-Y Pre-generate Key Share using P-256 only \n", /* 42 */
-#endif
-#ifdef HAVE_CURVE25519
- "-t Pre-generate Key share using Curve25519 only\n", /* 43 */
-#endif
-#ifdef HAVE_SESSION_TICKET
- "-T Do not generate session ticket\n", /* 44 */
-#endif
- "-F Send alert if no mutual authentication\n", /* 45 */
-#ifdef WOLFSSL_POST_HANDSHAKE_AUTH
- "-Q Request certificate from client post-handshake\n", /* 46 */
-#endif
-#ifdef WOLFSSL_SEND_HRR_COOKIE
- "-J Server sends Cookie Extension containing state\n", /* 47 */
-#endif
-#endif /* WOLFSSL_TLS13 */
-#ifdef WOLFSSL_EARLY_DATA
- "-0 Early data read from client (0-RTT handshake)\n", /* 48 */
-#endif
-#ifdef WOLFSSL_MULTICAST
- "-3 <grpid> Multicast, grpid < 256\n", /* 49 */
-#endif
- "-1 <num> Display a result by specified language."
- "\n 0: English, 1: Japanese\n", /* 50 */
-#ifdef HAVE_TRUSTED_CA
- "-5 Use Trusted CA Key Indication\n", /* 53 */
-#endif
-#ifdef HAVE_CURVE448
- "-8 Pre-generate Key share using Curve448 only\n", /* 55 */
-#endif
- NULL,
- },
-#ifndef NO_MULTIBYTE_PRINT
- /* Japanese */
- {
- " 注意 : 全てのファイルは"
- " wolfSSL ホーム・ディレクトリからの相対です。\n", /* 0 */
- "-? <num> ヘルプ, 使い方を表示\n"
- " 0: 英語、 1: 日本語\n", /* 1 */
- "-p <num> 接続先ポート, 0は無効, 既定値", /* 2 */
-#ifndef WOLFSSL_TLS13
- "-v <num> SSL バージョン [0-3], SSLv3(0) - TLS1.2(3)),"
- " 既定値", /* 3 */
-#else
- "-v <num> SSL バージョン [0-4], SSLv3(0) - TLS1.3(4)),"
- " 既定値", /* 3 */
-#endif
- "-l <str> 暗号スイートリスト (区切り文字 :)\n", /* 4 */
- "-c <file> 証明書ファイル, 既定値", /* 5 */
- "-k <file> 鍵ファイル, 既定値", /* 6 */
- "-A <file> 認証局ファイル, 既定値", /* 7 */
- "-R <file> 外部モニタ用の準備完了ファイルを作成する。"
- "既定値 なし\n", /* 8 */
-#ifndef NO_DH
- "-D <file> ディフィー・ヘルマンのパラメータファイル,"
- " 既定値", /* 9 */
- "-Z <num> 最小 DH 鍵 ビット, 既定値", /* 10 */
-#endif
-#ifdef HAVE_ALPN
- "-L <str> アプリケーション層プロトコルネゴシエーションを行う"
- " ({C,F}:<list>)\n", /* 11 */
-#endif
- "-d クライアント認証を無効とする\n", /* 12 */
- "-b ローカルホスト以外のインターフェースへも"
- "バインドする\n", /* 13 */
- "-s 事前共有鍵を使用する\n", /* 14 */
- "-u UDP DTLSを使用する。-v 2 を追加指定すると"
- " DTLSv1, -v 3 を追加指定すると DTLSv1.2 (既定値)\n", /* 15 */
-#ifdef WOLFSSL_SCTP
- "-G SCTP DTLSを使用する。-v 2 を追加指定すると"
- " DTLSv1, -v 3 を追加指定すると DTLSv1.2 (既定値)\n", /* 16 */
-#endif
- "-f より少ないパケット/グループメッセージを使用する\n",/* 17 */
- "-r クライアントの再開を許可する\n", /* 18 */
- "-N ノンブロッキング・ソケットを使用する\n", /* 19 */
- "-S <str> ホスト名表示を使用する\n", /* 20 */
- "-w 双方向シャットダウンを待つ\n", /* 21 */
-#ifdef HAVE_OCSP
- "-o OCSPルックアップをピア証明書で実施する\n", /* 22 */
- "-O <url> OCSPルックアップを、"
- "<url>を使用し応答者として実施する\n", /* 23 */
-#endif
-#ifdef HAVE_PK_CALLBACKS
- "-P 公開鍵コールバック\n", /* 24 */
-#endif
-#ifdef HAVE_ANON
- "-a 匿名サーバー\n", /* 25 */
-#endif
-#ifndef NO_PSK
- "-I PSKアイデンティティのヒントを送信しない\n", /* 26 */
-#endif
- "-x サーバーエラーを出力するが接続を切断しない\n", /* 27 */
- "-i 無期限にループする(繰り返し接続を許可)\n", /* 28 */
- "-e エコー・データモード"
- "(受け取ったバイトデータを返す)\n", /* 29 */
-#ifdef HAVE_NTRU
- "-n NTRU鍵を使用する(NTRUスイートに必要)\n", /* 30 */
-#endif
- "-B <num> <num> バイトを用いてのベンチマーク・スループット"
- "測定と結果を出力する\n", /* 31 */
-#ifdef HAVE_CRL
- "-V CRLを無効とする\n", /* 32 */
-#endif
-#ifdef WOLFSSL_TRUST_PEER_CERT
- "-E <file> 信頼出来るピアの証明書ロードの為のパス\n\n", /* 33 */
-#endif
-#ifdef HAVE_WNR
- "-q <file> Whitewood コンフィグファイル, 既定値", /* 34 */
-#endif
- "-g 基本的な Web ページを返す\n", /* 35 */
- "-C <num> アクセプト可能な接続数を指定する。既定値: 1\n", /* 36 */
- "-H <arg> 内部テスト"
- " [defCipherList, exitWithRet, verifyFail, useSupCurve,\n", /* 37 */
- " loadSSL, disallowETM]\n", /* 38 */
-#ifdef WOLFSSL_TLS13
- "-U データ送信前に、鍵とIVを更新する\n", /* 39 */
- "-K 鍵交換にPSKを使用、(EC)DHEは使用しない\n", /* 40 */
-#ifndef NO_DH
- "-y FFDHE_2048のみを使用して鍵共有を事前生成する\n", /* 41 */
-#endif
-#ifdef HAVE_ECC
- "-Y P-256のみを使用したキー共有の事前生成\n", /* 42 */
-#endif
-#ifdef HAVE_CURVE25519
- "-t Curve25519のみを使用して鍵共有を事前生成する\n", /* 43 */
-#endif
-#ifdef HAVE_SESSION_TICKET
- "-T セッションチケットを生成しない\n", /* 44 */
-#endif
- "-F Send alert if no mutual authentication\n", /* 45 */
-#ifdef WOLFSSL_POST_HANDSHAKE_AUTH
- "-Q クライアントのポストハンドシェイクから"
- "証明書を要求する\n", /* 46 */
-#endif
-#ifdef WOLFSSL_SEND_HRR_COOKIE
- "-J サーバーの状態を含むTLS Cookie 拡張を送信する\n", /* 47 */
-#endif
-#endif /* WOLFSSL_TLS13 */
-#ifdef WOLFSSL_EARLY_DATA
- "-0 クライアントからの Early Data 読み取り"
- "(0-RTTハンドシェイク)\n", /* 48 */
-#endif
-#ifdef WOLFSSL_MULTICAST
- "-3 <grpid> マルチキャスト, grpid < 256\n", /* 49 */
-#endif
- "-1 <num> 指定された言語で結果を表示します。"
- "\n 0: 英語、 1: 日本語\n", /* 50 */
-#ifdef HAVE_TRUSTED_CA
- "-5 信頼できる認証局の鍵表示を使用する\n", /* 53 */
-#endif
-#ifdef HAVE_CURVE448
- "-8 Pre-generate Key share using Curve448 only\n", /* 55 */
-#endif
- NULL,
- },
-#endif
-};
-
-static void Usage(void)
-{
- int msgId = 0;
- const char** msg = server_usage_msg[lng_index];
-
- printf("%s%s%s", "server ", LIBWOLFSSL_VERSION_STRING,
- msg[msgId]);
- printf("%s", msg[++msgId]); /* ? */
- printf("%s %d\n", msg[++msgId], wolfSSLPort); /* -p */
-#ifndef WOLFSSL_TLS13
- printf("%s %d\n", msg[++msgId], SERVER_DEFAULT_VERSION); /* -v */
-#else
- printf("%s %d\n", msg[++msgId], SERVER_DEFAULT_VERSION); /* -v */
-#endif
- printf("%s", msg[++msgId]); /* -l */
- printf("%s %s\n", msg[++msgId], svrCertFile); /* -c */
- printf("%s %s\n", msg[++msgId], svrKeyFile); /* -k */
- printf("%s %s\n", msg[++msgId], cliCertFile); /* -A */
- printf("%s", msg[++msgId]); /* -R */
-#ifndef NO_DH
- printf("%s %s\n", msg[++msgId], dhParamFile); /* -D */
- printf("%s %d\n", msg[++msgId], DEFAULT_MIN_DHKEY_BITS);/* -Z */
-#endif
-#ifdef HAVE_ALPN
- printf("%s", msg[++msgId]); /* -L */
-#endif
- printf("%s", msg[++msgId]); /* -d */
- printf("%s", msg[++msgId]); /* -b */
- printf("%s", msg[++msgId]); /* -s */
- printf("%s", msg[++msgId]); /* -u */
-#ifdef WOLFSSL_SCTP
- printf("%s", msg[++msgId]); /* -G */
-#endif
- printf("%s", msg[++msgId]); /* -f */
- printf("%s", msg[++msgId]); /* -r */
- printf("%s", msg[++msgId]); /* -N */
- printf("%s", msg[++msgId]); /* -S */
- printf("%s", msg[++msgId]); /* -w */
-#ifdef HAVE_SECURE_RENEGOTIATION
- printf("-M Allow Secure Renegotiation\n");
- printf("-m Force Server Initiated Secure Renegotiation\n");
-#endif /* HAVE_SECURE_RENEGOTIATION */
-#ifdef HAVE_OCSP
- printf("%s", msg[++msgId]); /* -o */
- printf("%s", msg[++msgId]); /* -O */
-#endif
-#ifdef HAVE_PK_CALLBACKS
- printf("%s", msg[++msgId]); /* -P */
-#endif
-#ifdef HAVE_ANON
- printf("%s", msg[++msgId]); /* -a */
-#endif
-#ifndef NO_PSK
- printf("%s", msg[++msgId]); /* -I */
-#endif
- printf("%s", msg[++msgId]); /* -x */
- printf("%s", msg[++msgId]); /* -i */
- printf("%s", msg[++msgId]); /* -e */
-#ifdef HAVE_NTRU
- printf("%s", msg[++msgId]); /* -n */
-#endif
- printf("%s", msg[++msgId]); /* -B */
-#ifdef HAVE_CRL
- printf("%s", msg[++msgId]); /* -V */
-#endif
-#ifdef WOLFSSL_TRUST_PEER_CERT
- printf("%s", msg[++msgId]); /* -E */
-#endif
-#ifdef HAVE_WNR
- printf("%s %s\n", msg[++msgId], wnrConfig); /* -q */
-#endif
- printf("%s", msg[++msgId]); /* -g */
- printf("%s", msg[++msgId]); /* -C */
- printf("%s", msg[++msgId]); /* -H */
- printf("%s", msg[++msgId]); /* more -H options */
-#ifdef WOLFSSL_TLS13
- printf("%s", msg[++msgId]); /* -U */
- printf("%s", msg[++msgId]); /* -K */
-#ifndef NO_DH
- printf("%s", msg[++msgId]); /* -y */
-#endif
-#ifdef HAVE_ECC
- printf("%s", msg[++msgId]); /* -Y */
-#endif
-#ifdef HAVE_CURVE25519
- printf("%s", msg[++msgId]); /* -t */
-#endif
-#ifdef HAVE_SESSION_TICKET
- printf("%s", msg[++msgId]); /* -T */
-#endif
- printf("%s", msg[++msgId]); /* -F */
-#ifdef WOLFSSL_POST_HANDSHAKE_AUTH
- printf("%s", msg[++msgId]); /* -Q */
-#endif
-#ifdef WOLFSSL_SEND_HRR_COOKIE
- printf("%s", msg[++msgId]); /* -J */
-#endif
-#endif /* WOLFSSL_TLS13 */
-#ifdef WOLFSSL_EARLY_DATA
- printf("%s", msg[++msgId]); /* -0 */
-#endif
-#if !defined(NO_DH) && !defined(HAVE_FIPS) && \
- !defined(HAVE_SELFTEST) && !defined(WOLFSSL_OLD_PRIME_CHECK)
- printf("-2 Disable DH Prime check\n");
-#endif
-#ifdef WOLFSSL_DTLS
- printf("-4 <seq> DTLS fake would-block for message seq\n");
-#endif
-#ifdef WOLFSSL_MULTICAST
- printf("%s", msg[++msgId]); /* -3 */
-#endif
- printf("%s", msg[++msgId]); /* -1 */
-#ifdef HAVE_TRUSTED_CA
- printf("%s", msg[++msgId]); /* -5 */
-#endif /* HAVE_TRUSTED_CA */
-#ifdef HAVE_CURVE448
- printf("%s", msg[++msgId]); /* -8 */
-#endif
-}
-
-THREAD_RETURN WOLFSSL_THREAD server_test(void* args)
-{
- SOCKET_T sockfd = WOLFSSL_SOCKET_INVALID;
- SOCKET_T clientfd = WOLFSSL_SOCKET_INVALID;
-
- wolfSSL_method_func method = NULL;
- SSL_CTX* ctx = 0;
- SSL* ssl = 0;
-
-#ifndef WOLFSSL_ALT_TEST_STRINGS
- const char msg[] = "I hear you fa shizzle!";
-#else
- const char msg[] = "I hear you fa shizzle!\n";
-#endif
- int useWebServerMsg = 0;
- char input[80];
-#ifndef WOLFSSL_VXWORKS
- int ch;
-#endif
- int version = SERVER_DEFAULT_VERSION;
-#ifndef WOLFSSL_NO_CLIENT_AUTH
- int doCliCertCheck = 1;
-#else
- int doCliCertCheck = 0;
-#endif
-#ifdef HAVE_CRL
- int disableCRL = 0;
-#endif
- int useAnyAddr = 0;
- word16 port = wolfSSLPort;
- int usePsk = 0;
- int usePskPlus = 0;
- int useAnon = 0;
- int doDTLS = 0;
- int dtlsUDP = 0;
- int dtlsSCTP = 0;
- int doMcast = 0;
-#ifdef WOLFSSL_DTLS
- int doBlockSeq = 0;
- WOLFSSL_TEST_DTLS_CTX dtlsCtx;
-#endif
- int needDH = 0;
- int useNtruKey = 0;
- int nonBlocking = 0;
- int fewerPackets = 0;
-#ifdef HAVE_PK_CALLBACKS
- int pkCallbacks = 0;
- PkCbInfo pkCbInfo;
-#endif
- int wc_shutdown = 0;
- int resume = 0;
- int resumeCount = 0;
- int loops = 1;
- int cnt = 0;
- int echoData = 0;
- int block = TEST_BUFFER_SIZE;
- size_t throughput = 0;
- int minDhKeyBits = DEFAULT_MIN_DHKEY_BITS;
- short minRsaKeyBits = DEFAULT_MIN_RSAKEY_BITS;
- short minEccKeyBits = DEFAULT_MIN_ECCKEY_BITS;
- int doListen = 1;
- int crlFlags = 0;
- int ret;
- int err = 0;
- char* serverReadyFile = NULL;
- char* alpnList = NULL;
- unsigned char alpn_opt = 0;
- char* cipherList = NULL;
- int useDefCipherList = 0;
- int overrideDateErrors = 0;
- const char* verifyCert;
- const char* ourCert;
- const char* ourKey;
- const char* ourDhParam = dhParamFile;
- tcp_ready* readySignal = NULL;
- int argc = ((func_args*)args)->argc;
- char** argv = ((func_args*)args)->argv;
-
-#ifdef WOLFSSL_TRUST_PEER_CERT
- const char* trustCert = NULL;
-#endif
-
-#ifndef NO_PSK
- int sendPskIdentityHint = 1;
-#endif
-
-#ifdef HAVE_SNI
- char* sniHostName = NULL;
-#endif
-
-#ifdef HAVE_TRUSTED_CA
- int trustedCaKeyId = 0;
-#endif /* HAVE_TRUSTED_CA */
-
-#ifdef HAVE_OCSP
- int useOcsp = 0;
- char* ocspUrl = NULL;
-#endif
-
-#ifdef HAVE_WNR
- const char* wnrConfigFile = wnrConfig;
-#endif
- char buffer[WOLFSSL_MAX_ERROR_SZ];
-#ifdef WOLFSSL_TLS13
- int noPskDheKe = 0;
-#endif
- int updateKeysIVs = 0;
- int mutualAuth = 0;
- int postHandAuth = 0;
-#ifdef WOLFSSL_EARLY_DATA
- int earlyData = 0;
-#endif
-#ifdef HAVE_SECURE_RENEGOTIATION
- int scr = 0;
- int forceScr = 0;
-#endif /* HAVE_SECURE_RENEGOTIATION */
-#ifdef WOLFSSL_SEND_HRR_COOKIE
- int hrrCookie = 0;
-#endif
- byte mcastID = 0;
-#if !defined(NO_DH) && !defined(HAVE_FIPS) && \
- !defined(HAVE_SELFTEST) && !defined(WOLFSSL_OLD_PRIME_CHECK)
- int doDhKeyCheck = 1;
-#endif
-
-#ifdef WOLFSSL_STATIC_MEMORY
- #if (defined(HAVE_ECC) && !defined(ALT_ECC_SIZE)) \
- || defined(SESSION_CERTS)
- /* big enough to handle most cases including session certs */
- byte memory[204000];
- #else
- byte memory[80000];
- #endif
- byte memoryIO[34500]; /* max for IO buffer (TLS packet can be 16k) */
- WOLFSSL_MEM_CONN_STATS ssl_stats;
- #ifdef DEBUG_WOLFSSL
- WOLFSSL_MEM_STATS mem_stats;
- #endif
-#endif
-#ifdef WOLFSSL_TLS13
- int onlyKeyShare = 0;
- int noTicket = 0;
-#endif
- int useX25519 = 0;
- int useX448 = 0;
- int exitWithRet = 0;
- int loadCertKeyIntoSSLObj = 0;
-
-#ifdef HAVE_ENCRYPT_THEN_MAC
- int disallowETM = 0;
-#endif
-
- ((func_args*)args)->return_code = -1; /* error state */
-
-#ifndef NO_RSA
- verifyCert = cliCertFile;
- ourCert = svrCertFile;
- ourKey = svrKeyFile;
-#else
- #ifdef HAVE_ECC
- verifyCert = cliEccCertFile;
- ourCert = eccCertFile;
- ourKey = eccKeyFile;
- #elif defined(HAVE_ED25519)
- verifyCert = cliEdCertFile;
- ourCert = edCertFile;
- ourKey = edKeyFile;
- #elif defined(HAVE_ED448)
- verifyCert = cliEd448CertFile;
- ourCert = ed448CertFile;
- ourKey = ed448KeyFile;
- #else
- verifyCert = NULL;
- ourCert = NULL;
- ourKey = NULL;
- #endif
-#endif
-
- (void)needDH;
- (void)ourKey;
- (void)ourCert;
- (void)ourDhParam;
- (void)verifyCert;
- (void)useNtruKey;
- (void)doCliCertCheck;
- (void)minDhKeyBits;
- (void)minRsaKeyBits;
- (void)minEccKeyBits;
- (void)alpnList;
- (void)alpn_opt;
- (void)crlFlags;
- (void)readySignal;
- (void)updateKeysIVs;
- (void)mutualAuth;
- (void)postHandAuth;
- (void)mcastID;
- (void)loadCertKeyIntoSSLObj;
- (void)overrideDateErrors;
- (void)nonBlocking;
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
-#ifdef WOLFSSL_VXWORKS
- useAnyAddr = 1;
-#else
- /* Not Used: h, z, F, T, V, W, X */
- while ((ch = mygetopt(argc, argv, "?:"
- "abc:defgijk:l:mnop:q:rstuv:wxy"
- "A:B:C:D:E:FGH:IJKL:MNO:PQR:S:TUVYZ:"
- "01:23:4:58")) != -1) {
- switch (ch) {
- case '?' :
- if(myoptarg!=NULL) {
- lng_index = atoi(myoptarg);
- if(lng_index<0||lng_index>1){
- lng_index = 0;
- }
- }
- Usage();
- XEXIT_T(EXIT_SUCCESS);
-
- case 'x' :
- runWithErrors = 1;
- break;
-
- case 'd' :
- doCliCertCheck = 0;
- break;
-
- case 'V' :
- #ifdef HAVE_CRL
- disableCRL = 1;
- #endif
- break;
-
- case 'b' :
- useAnyAddr = 1;
- break;
-
- case 's' :
- usePsk = 1;
- break;
-
- case 'j' :
- usePskPlus = 1;
- break;
-
- case 'n' :
- useNtruKey = 1;
- break;
-
- case 'u' :
- doDTLS = 1;
- dtlsUDP = 1;
- break;
-
- case 'G' :
- #ifdef WOLFSSL_SCTP
- doDTLS = 1;
- dtlsSCTP = 1;
- #endif
- break;
-
- case 'f' :
- fewerPackets = 1;
- break;
-
- case 'R' :
- serverReadyFile = myoptarg;
- break;
-
- case 'r' :
- #ifndef NO_SESSION_CACHE
- resume = 1;
- #endif
- break;
-
- case 'P' :
- #ifdef HAVE_PK_CALLBACKS
- pkCallbacks = 1;
- #endif
- break;
-
- case 'p' :
- port = (word16)atoi(myoptarg);
- break;
-
- case 'w' :
- wc_shutdown = 1;
- break;
-
- case 'v' :
- if (myoptarg[0] == 'd') {
- version = SERVER_DOWNGRADE_VERSION;
- break;
- }
- #if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
- else if (myoptarg[0] == 'e') {
- version = EITHER_DOWNGRADE_VERSION;
- #ifndef NO_CERTS
- loadCertKeyIntoSSLObj = 1;
- #endif
- break;
- }
- #endif
- version = atoi(myoptarg);
- if (version < 0 || version > 4) {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
- break;
-
- case 'l' :
- cipherList = myoptarg;
- break;
-
- case 'H' :
- if (XSTRNCMP(myoptarg, "defCipherList", 13) == 0) {
- printf("Using default cipher list for testing\n");
- useDefCipherList = 1;
- }
- else if (XSTRNCMP(myoptarg, "exitWithRet", 11) == 0) {
- printf("Skip exit() for testing\n");
- exitWithRet = 1;
- }
- else if (XSTRNCMP(myoptarg, "verifyFail", 10) == 0) {
- printf("Verify should fail\n");
- myVerifyFail = 1;
- }
- else if (XSTRNCMP(myoptarg, "loadSSL", 7) == 0) {
- printf("Also load cert/key into wolfSSL object\n");
- #ifndef NO_CERTS
- loadCertKeyIntoSSLObj = 2;
- #endif
- }
- else if (XSTRNCMP(myoptarg, "loadSSLOnly", 11) == 0) {
- printf("Only load cert/key into wolfSSL object\n");
- #ifndef NO_CERTS
- loadCertKeyIntoSSLObj = 1;
- #endif
- }
- else if (XSTRNCMP(myoptarg, "disallowETM", 11) == 0) {
- printf("Disallow Encrypt-Then-MAC\n");
- #ifdef HAVE_ENCRYPT_THEN_MAC
- disallowETM = 1;
- #endif
- }
- else if (XSTRNCMP(myoptarg, "overrideDateErr", 15) == 0) {
- #if !defined(NO_FILESYSTEM) && !defined(NO_CERTS)
- overrideDateErrors = 1;
- #endif
- }
- else {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
- break;
-
- case 'A' :
- verifyCert = myoptarg;
- break;
-
- case 'c' :
- ourCert = myoptarg;
- break;
-
- case 'k' :
- ourKey = myoptarg;
- break;
-
- case 'D' :
- #ifndef NO_DH
- ourDhParam = myoptarg;
- #endif
- break;
-
- case 'Z' :
- #ifndef NO_DH
- minDhKeyBits = atoi(myoptarg);
- if (minDhKeyBits <= 0 || minDhKeyBits > 16000) {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
- #endif
- break;
-
- case 'N':
- nonBlocking = 1;
- break;
-
- case 'S' :
- #ifdef HAVE_SNI
- sniHostName = myoptarg;
- #endif
- break;
-
- case 'o' :
- #ifdef HAVE_OCSP
- useOcsp = 1;
- #endif
- break;
-
- case 'O' :
- #ifdef HAVE_OCSP
- useOcsp = 1;
- ocspUrl = myoptarg;
- #endif
- break;
-
- case 'a' :
- #ifdef HAVE_ANON
- useAnon = 1;
- #endif
- break;
- case 'I':
- #ifndef NO_PSK
- sendPskIdentityHint = 0;
- #endif
- break;
-
- case 'L' :
- #ifdef HAVE_ALPN
- alpnList = myoptarg;
-
- if (alpnList[0] == 'C' && alpnList[1] == ':')
- alpn_opt = WOLFSSL_ALPN_CONTINUE_ON_MISMATCH;
- else if (alpnList[0] == 'F' && alpnList[1] == ':')
- alpn_opt = WOLFSSL_ALPN_FAILED_ON_MISMATCH;
- else {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
-
- alpnList += 2;
-
- #endif
- break;
-
- case 'i' :
- loops = -1;
- break;
-
- case 'C' :
- loops = atoi(myoptarg);
- if (loops <= 0) {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
- break;
-
- case 'e' :
- echoData = 1;
- break;
-
- case 'B':
- throughput = atol(myoptarg);
- for (; *myoptarg != '\0'; myoptarg++) {
- if (*myoptarg == ',') {
- block = atoi(myoptarg + 1);
- break;
- }
- }
- if (throughput == 0 || block <= 0) {
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
- break;
-
- #ifdef WOLFSSL_TRUST_PEER_CERT
- case 'E' :
- trustCert = myoptarg;
- break;
- #endif
-
- case 'q' :
- #ifdef HAVE_WNR
- wnrConfigFile = myoptarg;
- #endif
- break;
-
- case 'g' :
- useWebServerMsg = 1;
- break;
-
- case 'y' :
- #if defined(WOLFSSL_TLS13) && !defined(NO_DH)
- onlyKeyShare = 1;
- #endif
- break;
-
- case 'Y' :
- #if defined(WOLFSSL_TLS13) && defined(HAVE_ECC)
- onlyKeyShare = 2;
- #endif
- break;
-
- case 't' :
- #ifdef HAVE_CURVE25519
- useX25519 = 1;
- #if defined(WOLFSSL_TLS13) && defined(HAVE_ECC)
- onlyKeyShare = 2;
- #endif
- #endif
- break;
-
- case 'K' :
- #ifdef WOLFSSL_TLS13
- noPskDheKe = 1;
- #endif
- break;
-
- case 'T' :
- #if defined(WOLFSSL_TLS13) && defined(HAVE_SESSION_TICKET)
- noTicket = 1;
- #endif
- break;
-
- case 'U' :
- #ifdef WOLFSSL_TLS13
- updateKeysIVs = 1;
- #endif
- break;
-
- case 'F' :
- mutualAuth = 1;
- break;
-
- case 'Q' :
- #if defined(WOLFSSL_TLS13) && defined(WOLFSSL_POST_HANDSHAKE_AUTH)
- postHandAuth = 1;
- doCliCertCheck = 0;
- #endif
- break;
-
- case 'J' :
- #ifdef WOLFSSL_SEND_HRR_COOKIE
- hrrCookie = 1;
- #endif
- break;
-
- case 'M' :
- #ifdef HAVE_SECURE_RENEGOTIATION
- scr = 1;
- #endif /* HAVE_SECURE_RENEGOTIATION */
- break;
-
- case 'm' :
- #ifdef HAVE_SECURE_RENEGOTIATION
- scr = 1;
- forceScr = 1;
- #endif /* HAVE_SECURE_RENEGOTIATION */
- break;
-
- case '0' :
- #ifdef WOLFSSL_EARLY_DATA
- earlyData = 1;
- #endif
- break;
-
- case '1' :
- lng_index = atoi(myoptarg);
- if(lng_index<0||lng_index>1){
- lng_index = 0;
- }
- break;
-
- case '2' :
- #if !defined(NO_DH) && !defined(HAVE_FIPS) && \
- !defined(HAVE_SELFTEST) && !defined(WOLFSSL_OLD_PRIME_CHECK)
- doDhKeyCheck = 0;
- #endif
- break;
-
- case '3' :
- #ifdef WOLFSSL_MULTICAST
- doMcast = 1;
- mcastID = (byte)(atoi(myoptarg) & 0xFF);
- #endif
- break;
-
- case '4' :
- #ifdef WOLFSSL_DTLS
- XMEMSET(&dtlsCtx, 0, sizeof(dtlsCtx));
- doBlockSeq = 1;
- dtlsCtx.blockSeq = atoi(myoptarg);
- #endif
- break;
-
- case '5' :
- #ifdef HAVE_TRUSTED_CA
- trustedCaKeyId = 1;
- #endif /* HAVE_TRUSTED_CA */
- break;
-
- case '8' :
- #ifdef HAVE_CURVE448
- useX448 = 1;
- #if defined(WOLFSSL_TLS13) && defined(HAVE_ECC)
- onlyKeyShare = 2;
- #endif
- #endif
- break;
-
- default:
- Usage();
- XEXIT_T(MY_EX_USAGE);
- }
- }
-
- myoptind = 0; /* reset for test cases */
-#endif /* !WOLFSSL_VXWORKS */
-
- /* Can only use DTLS over UDP or SCTP, can't do both. */
- if (dtlsUDP && dtlsSCTP) {
- err_sys_ex(runWithErrors, "Cannot use DTLS with both UDP and SCTP.");
- }
-
- /* sort out DTLS versus TLS versions */
- if (version == CLIENT_INVALID_VERSION) {
- if (doDTLS)
- version = CLIENT_DTLS_DEFAULT_VERSION;
- else
- version = CLIENT_DEFAULT_VERSION;
- }
- else {
- if (doDTLS) {
- if (version == 3)
- version = -2;
- #if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
- else if (version == EITHER_DOWNGRADE_VERSION)
- version = -3;
- #endif
- else
- version = -1;
- }
- }
-
-#ifdef HAVE_WNR
- if (wc_InitNetRandom(wnrConfigFile, NULL, 5000) != 0)
- err_sys_ex(runWithErrors, "can't load whitewood net random config "
- "file");
-#endif
-
- switch (version) {
-#ifndef NO_OLD_TLS
- #ifdef WOLFSSL_ALLOW_SSLV3
- case 0:
- method = wolfSSLv3_server_method_ex;
- break;
- #endif
-
- #ifndef NO_TLS
- #ifdef WOLFSSL_ALLOW_TLSV10
- case 1:
- method = wolfTLSv1_server_method_ex;
- break;
- #endif
-
- case 2:
- method = wolfTLSv1_1_server_method_ex;
- break;
- #endif /* !NO_TLS */
-#endif /* !NO_OLD_TLS */
-
-#ifndef NO_TLS
- #ifndef WOLFSSL_NO_TLS12
- case 3:
- method = wolfTLSv1_2_server_method_ex;
- break;
- #endif
-
- #ifdef WOLFSSL_TLS13
- case 4:
- method = wolfTLSv1_3_server_method_ex;
- break;
- #endif
-
- case SERVER_DOWNGRADE_VERSION:
- method = wolfSSLv23_server_method_ex;
- break;
- #if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
- case EITHER_DOWNGRADE_VERSION:
- method = wolfSSLv23_method_ex;
- break;
- #endif
-#endif /* NO_TLS */
-
-#ifdef WOLFSSL_DTLS
- #ifndef NO_OLD_TLS
- case -1:
- method = wolfDTLSv1_server_method_ex;
- break;
- #endif
-
- #ifndef WOLFSSL_NO_TLS12
- case -2:
- method = wolfDTLSv1_2_server_method_ex;
- break;
- #endif
- #if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
- case -3:
- method = wolfDTLSv1_2_method_ex;
- break;
- #endif
-#endif
-
- default:
- err_sys_ex(runWithErrors, "Bad SSL version");
- }
-
- if (method == NULL)
- err_sys_ex(runWithErrors, "unable to get method");
-
-#ifdef WOLFSSL_STATIC_MEMORY
- #ifdef DEBUG_WOLFSSL
- /* print off helper buffer sizes for use with static memory
- * printing to stderr in case of debug mode turned on */
- fprintf(stderr, "static memory management size = %d\n",
- wolfSSL_MemoryPaddingSz());
- fprintf(stderr, "calculated optimum general buffer size = %d\n",
- wolfSSL_StaticBufferSz(memory, sizeof(memory), 0));
- fprintf(stderr, "calculated optimum IO buffer size = %d\n",
- wolfSSL_StaticBufferSz(memoryIO, sizeof(memoryIO),
- WOLFMEM_IO_POOL_FIXED));
- #endif /* DEBUG_WOLFSSL */
-
- if (wolfSSL_CTX_load_static_memory(&ctx, method, memory, sizeof(memory),0,1)
- != WOLFSSL_SUCCESS)
- err_sys_ex(catastrophic, "unable to load static memory and create ctx");
-
- /* load in a buffer for IO */
- if (wolfSSL_CTX_load_static_memory(&ctx, NULL, memoryIO, sizeof(memoryIO),
- WOLFMEM_IO_POOL_FIXED | WOLFMEM_TRACK_STATS, 1)
- != WOLFSSL_SUCCESS)
- err_sys_ex(catastrophic, "unable to load static memory and create ctx");
-#else
- ctx = SSL_CTX_new(method(NULL));
-#endif /* WOLFSSL_STATIC_MEMORY */
- if (ctx == NULL)
- err_sys_ex(catastrophic, "unable to get ctx");
-
-#if defined(HAVE_SESSION_TICKET) && defined(HAVE_CHACHA) && \
- defined(HAVE_POLY1305)
- if (TicketInit() != 0)
- err_sys_ex(catastrophic, "unable to setup Session Ticket Key context");
- wolfSSL_CTX_set_TicketEncCb(ctx, myTicketEncCb);
-#endif
-
- if (cipherList && !useDefCipherList) {
- if (SSL_CTX_set_cipher_list(ctx, cipherList) != WOLFSSL_SUCCESS)
- err_sys_ex(runWithErrors, "server can't set custom cipher list");
- }
-
-#ifdef WOLFSSL_LEANPSK
- if (!usePsk) {
- usePsk = 1;
- }
-#endif
-
-#if defined(NO_RSA) && !defined(HAVE_ECC) && !defined(HAVE_ED25519) && \
- !defined(HAVE_ED448)
- if (!usePsk) {
- usePsk = 1;
- }
-#endif
-
- if (fewerPackets)
- wolfSSL_CTX_set_group_messages(ctx);
-
-#ifdef WOLFSSL_SCTP
- if (dtlsSCTP)
- wolfSSL_CTX_dtls_set_sctp(ctx);
-#endif
-
-#ifdef WOLFSSL_ENCRYPTED_KEYS
- SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
-#endif
-
-#if !defined(NO_CERTS)
- if ((!usePsk || usePskPlus) && !useAnon && !(loadCertKeyIntoSSLObj == 1)) {
- #ifndef TEST_LOAD_BUFFER
- if (SSL_CTX_use_certificate_chain_file(ctx, ourCert)
- != WOLFSSL_SUCCESS)
- err_sys_ex(catastrophic, "can't load server cert file, check file "
- "and run from wolfSSL home dir");
- #else
- /* loads cert chain file using buffer API */
- load_buffer(ctx, ourCert, WOLFSSL_CERT_CHAIN);
- #endif
- }
-#endif
-
-#ifndef NO_DH
- if (wolfSSL_CTX_SetMinDhKey_Sz(ctx, (word16)minDhKeyBits)
- != WOLFSSL_SUCCESS) {
- err_sys_ex(runWithErrors, "Error setting minimum DH key size");
- }
-#endif
-#ifndef NO_RSA
- if (wolfSSL_CTX_SetMinRsaKey_Sz(ctx, minRsaKeyBits) != WOLFSSL_SUCCESS){
- err_sys_ex(runWithErrors, "Error setting minimum RSA key size");
- }
-#endif
-#ifdef HAVE_ECC
- if (wolfSSL_CTX_SetMinEccKey_Sz(ctx, minEccKeyBits) != WOLFSSL_SUCCESS){
- err_sys_ex(runWithErrors, "Error setting minimum ECC key size");
- }
-#endif
-
-#ifdef HAVE_NTRU
- if (useNtruKey) {
- if (wolfSSL_CTX_use_NTRUPrivateKey_file(ctx, ourKey)
- != WOLFSSL_SUCCESS)
- err_sys_ex(catastrophic, "can't load ntru key file, "
- "Please run from wolfSSL home dir");
- }
-#endif
-#if !defined(NO_CERTS)
- #ifdef HAVE_PK_CALLBACKS
- pkCbInfo.ourKey = ourKey;
- #endif
- if (!useNtruKey && (!usePsk || usePskPlus) && !useAnon
- && !(loadCertKeyIntoSSLObj == 1)
- #if defined(HAVE_PK_CALLBACKS) && defined(TEST_PK_PRIVKEY)
- && !pkCallbacks
- #endif /* HAVE_PK_CALLBACKS && TEST_PK_PRIVKEY */
- ) {
- #ifndef TEST_LOAD_BUFFER
- if (SSL_CTX_use_PrivateKey_file(ctx, ourKey, WOLFSSL_FILETYPE_PEM)
- != WOLFSSL_SUCCESS)
- err_sys_ex(catastrophic, "can't load server private key file, "
- "check file and run from wolfSSL home dir");
- #else
- /* loads private key file using buffer API */
- load_buffer(ctx, ourKey, WOLFSSL_KEY);
- #endif
- }
-#endif
-
- if (usePsk || usePskPlus) {
-#ifndef NO_PSK
- SSL_CTX_set_psk_server_callback(ctx, my_psk_server_cb);
- #ifdef WOLFSSL_TLS13
- wolfSSL_CTX_set_psk_server_tls13_callback(ctx, my_psk_server_tls13_cb);
- #endif
-
- if (sendPskIdentityHint == 1)
- SSL_CTX_use_psk_identity_hint(ctx, "cyassl server");
-
- if (cipherList == NULL && !usePskPlus) {
- const char *defaultCipherList;
- #if defined(HAVE_AESGCM) && !defined(NO_DH)
- #ifdef WOLFSSL_TLS13
- defaultCipherList = "DHE-PSK-AES128-GCM-SHA256:"
- "TLS13-AES128-GCM-SHA256";
- #else
- defaultCipherList = "DHE-PSK-AES128-GCM-SHA256";
- #endif
- needDH = 1;
- #elif defined(HAVE_NULL_CIPHER)
- defaultCipherList = "PSK-NULL-SHA256";
- #else
- defaultCipherList = "PSK-AES128-CBC-SHA256";
- #endif
- if (SSL_CTX_set_cipher_list(ctx, defaultCipherList)
- != WOLFSSL_SUCCESS)
- err_sys_ex(runWithErrors, "server can't set cipher list 2");
- }
-#endif
- }
-#ifndef NO_CERTS
- if (mutualAuth)
- wolfSSL_CTX_mutual_auth(ctx, 1);
-#endif
-
-
-#ifdef HAVE_ECC
- /* Use ECDHE key size that matches long term key.
- * Zero means use ctx->privateKeySz.
- * Default ECDHE_SIZE is 32 bytes
- */
- if (wolfSSL_CTX_SetTmpEC_DHE_Sz(ctx, 0) != WOLFSSL_SUCCESS){
- err_sys_ex(runWithErrors, "Error setting ECDHE size");
- }
-#endif
-
- if (useAnon) {
-#ifdef HAVE_ANON
- wolfSSL_CTX_allow_anon_cipher(ctx);
- if (cipherList == NULL || (cipherList && useDefCipherList)) {
- const char* defaultCipherList;
- defaultCipherList = "ADH-AES256-GCM-SHA384:"
- "ADH-AES128-SHA";
- if (SSL_CTX_set_cipher_list(ctx, defaultCipherList)
- != WOLFSSL_SUCCESS)
- err_sys_ex(runWithErrors, "server can't set cipher list 4");
- }
-#endif
- }
-
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS)
- /* if not using PSK, verify peer with certs
- if using PSK Plus then verify peer certs except PSK suites */
- if (doCliCertCheck && (usePsk == 0 || usePskPlus) && useAnon == 0) {
- unsigned int verify_flags = 0;
- SSL_CTX_set_verify(ctx, WOLFSSL_VERIFY_PEER |
- (usePskPlus ? WOLFSSL_VERIFY_FAIL_EXCEPT_PSK :
- WOLFSSL_VERIFY_FAIL_IF_NO_PEER_CERT),
- overrideDateErrors == 1 ? myDateCb : NULL);
-
- #ifdef TEST_BEFORE_DATE
- verify_flags |= WOLFSSL_LOAD_FLAG_DATE_ERR_OKAY;
- #endif
-
- if (wolfSSL_CTX_load_verify_locations_ex(ctx, verifyCert, 0,
- verify_flags) != WOLFSSL_SUCCESS) {
- err_sys_ex(catastrophic,
- "can't load ca file, Please run from wolfSSL home dir");
- }
- #ifdef WOLFSSL_TRUST_PEER_CERT
- if (trustCert) {
- if ((ret = wolfSSL_CTX_trust_peer_cert(ctx, trustCert,
- WOLFSSL_FILETYPE_PEM))
- != WOLFSSL_SUCCESS) {
- err_sys_ex(runWithErrors, "can't load trusted peer cert file");
- }
- }
- #endif /* WOLFSSL_TRUST_PEER_CERT */
- }
-#endif
-
-#if defined(WOLFSSL_SNIFFER)
- /* don't use EDH, can't sniff tmp keys */
- if (cipherList == NULL) {
- if (SSL_CTX_set_cipher_list(ctx, "AES128-SHA") != WOLFSSL_SUCCESS)
- err_sys_ex(runWithErrors, "server can't set cipher list 3");
- }
-#endif
-
-#ifdef HAVE_SNI
- if (sniHostName)
- if (wolfSSL_CTX_UseSNI(ctx, WOLFSSL_SNI_HOST_NAME, sniHostName,
- (word16) XSTRLEN(sniHostName)) != WOLFSSL_SUCCESS)
- err_sys_ex(runWithErrors, "UseSNI failed");
-#endif
-
-#ifdef USE_WINDOWS_API
- if (port == 0) {
- /* Generate random port for testing */
- port = GetRandomPort();
- }
-#endif /* USE_WINDOWS_API */
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- ret = wolfAsync_DevOpen(&devId);
- if (ret < 0) {
- printf("Async device open failed\nRunning without async\n");
- }
- wolfSSL_CTX_UseAsync(ctx, devId);
-#endif /* WOLFSSL_ASYNC_CRYPT */
-
-#ifdef WOLFSSL_TLS13
- if (noPskDheKe)
- wolfSSL_CTX_no_dhe_psk(ctx);
- if (noTicket)
- wolfSSL_CTX_no_ticket_TLSv13(ctx);
-#endif
-
- while (1) {
- /* allow resume option */
- if (resumeCount > 1) {
- if (dtlsUDP == 0) {
- SOCKADDR_IN_T client;
- socklen_t client_len = sizeof(client);
- clientfd = accept(sockfd, (struct sockaddr*)&client,
- (ACCEPT_THIRD_T)&client_len);
- }
- else {
- tcp_listen(&sockfd, &port, useAnyAddr, dtlsUDP, dtlsSCTP);
- clientfd = sockfd;
- }
- if (WOLFSSL_SOCKET_IS_INVALID(clientfd)) {
- err_sys_ex(runWithErrors, "tcp accept failed");
- }
- }
-#if defined(WOLFSSL_STATIC_MEMORY) && defined(DEBUG_WOLFSSL)
- fprintf(stderr, "Before creating SSL\n");
- if (wolfSSL_CTX_is_static_memory(ctx, &mem_stats) != 1)
- err_sys_ex(runWithErrors, "ctx not using static memory");
- if (wolfSSL_PrintStats(&mem_stats) != 1) /* function in test.h */
- err_sys_ex(runWithErrors, "error printing out memory stats");
-#endif
-
- if (doMcast) {
-#ifdef WOLFSSL_MULTICAST
- wolfSSL_CTX_mcast_set_member_id(ctx, mcastID);
- if (wolfSSL_CTX_set_cipher_list(ctx, "WDM-NULL-SHA256")
- != WOLFSSL_SUCCESS)
- err_sys("Couldn't set multicast cipher list.");
-#endif
- }
-
- if (doDTLS && dtlsUDP) {
-#ifdef WOLFSSL_DTLS
- if (doBlockSeq) {
- wolfSSL_CTX_SetIOSend(ctx, TestEmbedSendTo);
- }
-#endif
- }
-
-#ifdef HAVE_PK_CALLBACKS
- if (pkCallbacks)
- SetupPkCallbacks(ctx);
-#endif
-
- ssl = SSL_new(ctx);
- if (ssl == NULL)
- err_sys_ex(catastrophic, "unable to create an SSL object");
- #ifdef OPENSSL_EXTRA
- wolfSSL_KeepArrays(ssl);
- #endif
-
- /* Support for loading private key and cert using WOLFSSL object */
-#if !defined(NO_CERTS)
- if ((!usePsk || usePskPlus) && !useAnon && loadCertKeyIntoSSLObj) {
- #ifndef TEST_LOAD_BUFFER
- if (SSL_use_certificate_chain_file(ssl, ourCert)
- != WOLFSSL_SUCCESS)
- err_sys_ex(catastrophic, "can't load server cert file, check file "
- "and run from wolfSSL home dir");
- #else
- /* loads cert chain file using buffer API */
- load_ssl_buffer(ssl, ourCert, WOLFSSL_CERT_CHAIN);
- #endif
- }
-
- if (!useNtruKey && (!usePsk || usePskPlus) && !useAnon &&
- loadCertKeyIntoSSLObj
- #if defined(HAVE_PK_CALLBACKS) && defined(TEST_PK_PRIVKEY)
- && !pkCallbacks
- #endif /* HAVE_PK_CALLBACKS && TEST_PK_PRIVKEY */
- ) {
- #ifndef TEST_LOAD_BUFFER
- if (SSL_use_PrivateKey_file(ssl, ourKey, WOLFSSL_FILETYPE_PEM)
- != WOLFSSL_SUCCESS)
- err_sys_ex(catastrophic, "can't load server private key file, check"
- "file and run from wolfSSL home dir");
- #else
- /* loads private key file using buffer API */
- load_ssl_buffer(ssl, ourKey, WOLFSSL_KEY);
- #endif
- }
-#endif /* !NO_CERTS */
-
-#ifdef WOLFSSL_SEND_HRR_COOKIE
- if (hrrCookie && wolfSSL_send_hrr_cookie(ssl, NULL, 0)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to set use of cookie with HRR msg");
- }
-#endif
-
-#if defined(WOLFSSL_STATIC_MEMORY) && defined(DEBUG_WOLFSSL)
- fprintf(stderr, "After creating SSL\n");
- if (wolfSSL_CTX_is_static_memory(ctx, &mem_stats) != 1)
- err_sys_ex(runWithErrors, "ctx not using static memory");
- if (wolfSSL_PrintStats(&mem_stats) != 1) /* function in test.h */
- err_sys_ex(runWithErrors, "error printing out memory stats");
-#endif
-
- if (doMcast) {
-#ifdef WOLFSSL_MULTICAST
- byte pms[512];
- byte cr[32];
- byte sr[32];
- const byte suite[2] = {0, 0xfe}; /* WDM_WITH_NULL_SHA256 */
-
- XMEMSET(pms, 0x23, sizeof(pms));
- XMEMSET(cr, 0xA5, sizeof(cr));
- XMEMSET(sr, 0x5A, sizeof(sr));
-
- if (wolfSSL_set_secret(ssl, 1, pms, sizeof(pms), cr, sr, suite)
- != WOLFSSL_SUCCESS)
- err_sys("unable to set mcast secret");
-#endif
- }
-
-#ifdef HAVE_SECURE_RENEGOTIATION
- if (scr) {
- if (wolfSSL_UseSecureRenegotiation(ssl) != WOLFSSL_SUCCESS) {
- err_sys_ex(runWithErrors, "can't enable secure renegotiation");
- }
- }
-#endif /* HAVE_SECURE_RENEGOTIATION */
-
-#ifndef NO_HANDSHAKE_DONE_CB
- wolfSSL_SetHsDoneCb(ssl, myHsDoneCb, NULL);
-#endif
-#ifdef HAVE_CRL
- if (!disableCRL) {
-#ifdef HAVE_CRL_MONITOR
- crlFlags = WOLFSSL_CRL_MONITOR | WOLFSSL_CRL_START_MON;
-#endif
- if (wolfSSL_EnableCRL(ssl, 0) != WOLFSSL_SUCCESS)
- err_sys_ex(runWithErrors, "unable to enable CRL");
- if (wolfSSL_LoadCRL(ssl, crlPemDir, WOLFSSL_FILETYPE_PEM, crlFlags)
- != WOLFSSL_SUCCESS)
- err_sys_ex(runWithErrors, "unable to load CRL");
- if (wolfSSL_SetCRL_Cb(ssl, CRL_CallBack) != WOLFSSL_SUCCESS)
- err_sys_ex(runWithErrors, "unable to set CRL callback url");
- }
-#endif
-#ifdef HAVE_OCSP
- if (useOcsp) {
- if (ocspUrl != NULL) {
- wolfSSL_CTX_SetOCSP_OverrideURL(ctx, ocspUrl);
- wolfSSL_CTX_EnableOCSP(ctx, WOLFSSL_OCSP_NO_NONCE
- | WOLFSSL_OCSP_URL_OVERRIDE);
- }
- else
- wolfSSL_CTX_EnableOCSP(ctx, WOLFSSL_OCSP_NO_NONCE);
- }
-#ifndef NO_RSA
- /* All the OSCP Stapling test certs are RSA. */
-#if defined(HAVE_CERTIFICATE_STATUS_REQUEST) \
- || defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
- { /* scope start */
- const char* ca1 = "certs/ocsp/intermediate1-ca-cert.pem";
- const char* ca2 = "certs/ocsp/intermediate2-ca-cert.pem";
- const char* ca3 = "certs/ocsp/intermediate3-ca-cert.pem";
- int fails = 0;
-
- if (wolfSSL_CTX_EnableOCSPStapling(ctx) != WOLFSSL_SUCCESS) {
- err_sys_ex(catastrophic, "can't enable OCSP Stapling "
- "Certificate Manager");
- }
- if (SSL_CTX_load_verify_locations(ctx, ca1, 0) != WOLFSSL_SUCCESS) {
- fails++;
- err_sys_ex(runWithErrors, "can't load ca file, Please run from "
- "wolfSSL home dir");
- }
- if (SSL_CTX_load_verify_locations(ctx, ca2, 0) != WOLFSSL_SUCCESS) {
- fails++;
- err_sys_ex(runWithErrors, "can't load ca file, Please run from "
- "wolfSSL home dir");
- }
- if (SSL_CTX_load_verify_locations(ctx, ca3, 0) != WOLFSSL_SUCCESS) {
- fails++;
- err_sys_ex(runWithErrors, "can't load ca file, Please run from "
- "wolfSSL home dir");
- }
- if (fails > 2) {
- err_sys_ex(catastrophic, "Failed to load any intermediates for "
- "OCSP stapling test");
- }
- } /* scope end */
-#endif /* HAVE_CERTIFICATE_STATUS_REQUEST HAVE_CERTIFICATE_STATUS_REQUEST_V2 */
-#endif /* NO_RSA */
-#endif /* HAVE_OCSP */
-
-#ifdef HAVE_PK_CALLBACKS
- if (pkCallbacks)
- SetupPkCallbackContexts(ssl, &pkCbInfo);
-#endif
-
- #ifdef WOLFSSL_TLS13
- if (version >= 4) {
- WOLFSSL_START(WC_FUNC_CLIENT_KEY_EXCHANGE_DO);
- if (onlyKeyShare == 2) {
- if (useX25519 == 1) {
- #ifdef HAVE_CURVE25519
- int groups[1] = { WOLFSSL_ECC_X25519 };
-
- if (wolfSSL_UseKeyShare(ssl, WOLFSSL_ECC_X25519)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to use curve x25519");
- }
- if (wolfSSL_set_groups(ssl, groups, 1) != WOLFSSL_SUCCESS) {
- err_sys("unable to set groups: x25519");
- }
- #endif
- }
- else if (useX448 == 1) {
- #ifdef HAVE_CURVE448
- int groups[1] = { WOLFSSL_ECC_X448 };
-
- if (wolfSSL_UseKeyShare(ssl, WOLFSSL_ECC_X448)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to use curve x448");
- }
- if (wolfSSL_set_groups(ssl, groups, 1) != WOLFSSL_SUCCESS) {
- err_sys("unable to set groups: x448");
- }
- #endif
- }
- else {
- #ifdef HAVE_ECC
- #if !defined(NO_ECC256) || defined(HAVE_ALL_CURVES)
- int groups[1] = { WOLFSSL_ECC_SECP256R1 };
-
- if (wolfSSL_UseKeyShare(ssl, WOLFSSL_ECC_SECP256R1)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to use curve secp256r1");
- }
- if (wolfSSL_set_groups(ssl, groups, 1) != WOLFSSL_SUCCESS) {
- err_sys("unable to set groups: secp256r1");
- }
- #endif
- #endif
- }
- }
- else if (onlyKeyShare == 1) {
- #ifdef HAVE_FFDHE_2048
- int groups[1] = { WOLFSSL_FFDHE_2048 };
-
- if (wolfSSL_UseKeyShare(ssl, WOLFSSL_FFDHE_2048)
- != WOLFSSL_SUCCESS) {
- err_sys("unable to use DH 2048-bit parameters");
- }
- if (wolfSSL_set_groups(ssl, groups, 1) != WOLFSSL_SUCCESS) {
- err_sys("unable to set groups: DH 2048-bit");
- }
- #endif
- }
- WOLFSSL_END(WC_FUNC_CLIENT_KEY_EXCHANGE_DO);
- }
- #endif
-
- #ifdef HAVE_ENCRYPT_THEN_MAC
- if (disallowETM)
- wolfSSL_AllowEncryptThenMac(ssl, 0);
- #endif
-
-
- /* do accept */
- readySignal = ((func_args*)args)->signal;
- if (readySignal) {
- readySignal->srfName = serverReadyFile;
- }
- tcp_accept(&sockfd, &clientfd, (func_args*)args, port, useAnyAddr,
- dtlsUDP, dtlsSCTP, serverReadyFile ? 1 : 0, doListen);
- doListen = 0; /* Don't listen next time */
-
- if (SSL_set_fd(ssl, clientfd) != WOLFSSL_SUCCESS) {
- err_sys_ex(catastrophic, "error in setting fd");
- }
-
-#ifdef HAVE_TRUSTED_CA
- if (trustedCaKeyId) {
- if (wolfSSL_UseTrustedCA(ssl, WOLFSSL_TRUSTED_CA_PRE_AGREED,
- NULL, 0) != WOLFSSL_SUCCESS) {
- err_sys_ex(runWithErrors, "UseTrustedCA failed");
- }
- }
-#endif /* HAVE_TRUSTED_CA */
-
-#ifdef HAVE_ALPN
- if (alpnList != NULL) {
- printf("ALPN accepted protocols list : %s\n", alpnList);
- wolfSSL_UseALPN(ssl, alpnList, (word32)XSTRLEN(alpnList), alpn_opt);
- }
-#endif
-
-#ifdef WOLFSSL_DTLS
- if (doDTLS && dtlsUDP) {
- SOCKADDR_IN_T cliaddr;
- byte b[1500];
- int n;
- socklen_t len = sizeof(cliaddr);
-
- /* For DTLS, peek at the next datagram so we can get the client's
- * address and set it into the ssl object later to generate the
- * cookie. */
- n = (int)recvfrom(clientfd, (char*)b, sizeof(b), MSG_PEEK,
- (struct sockaddr*)&cliaddr, &len);
- if (n <= 0)
- err_sys_ex(runWithErrors, "recvfrom failed");
-
- if (doBlockSeq) {
- XMEMCPY(&dtlsCtx.peer.sa, &cliaddr, len);
- dtlsCtx.peer.sz = len;
- dtlsCtx.wfd = clientfd;
- dtlsCtx.failOnce = 1;
-
- wolfSSL_SetIOWriteCtx(ssl, &dtlsCtx);
- }
- else {
- wolfSSL_dtls_set_peer(ssl, &cliaddr, len);
- }
- }
-#endif
- if ((usePsk == 0 || usePskPlus) || useAnon == 1 || cipherList != NULL
- || needDH == 1) {
- #if !defined(NO_FILESYSTEM) && !defined(NO_DH) && !defined(NO_ASN)
- wolfSSL_SetTmpDH_file(ssl, ourDhParam, WOLFSSL_FILETYPE_PEM);
- #elif !defined(NO_DH)
- SetDH(ssl); /* repick suites with DHE, higher priority than
- * PSK */
- #endif
-#if !defined(NO_DH) && !defined(WOLFSSL_OLD_PRIME_CHECK) && \
- !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST)
- if (!doDhKeyCheck)
- wolfSSL_SetEnableDhKeyTest(ssl, 0);
-#endif
- }
-
-#ifndef WOLFSSL_CALLBACKS
- if (nonBlocking) {
- #ifdef WOLFSSL_DTLS
- if (doDTLS) {
- wolfSSL_dtls_set_using_nonblock(ssl, 1);
- }
- #endif
- tcp_set_nonblocking(&clientfd);
-
- ret = NonBlockingSSL_Accept(ssl);
- }
- else {
- #ifdef WOLFSSL_EARLY_DATA
- if (earlyData) {
- do {
- int len;
- err = 0; /* reset error */
- ret = wolfSSL_read_early_data(ssl, input, sizeof(input)-1,
- &len);
- if (ret != WOLFSSL_SUCCESS) {
- err = SSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl,
- WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- if (ret > 0) {
- input[ret] = 0; /* null terminate message */
- printf("Early Data Client message: %s\n", input);
- }
- } while (err == WC_PENDING_E || ret > 0);
- }
- #endif
- do {
- err = 0; /* reset error */
- ret = SSL_accept(ssl);
- if (ret != WOLFSSL_SUCCESS) {
- err = SSL_get_error(ssl, 0);
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) break;
- }
- #endif
- }
- } while (err == WC_PENDING_E);
- }
-#else
- ret = NonBlockingSSL_Accept(ssl);
-#endif
- if (ret != WOLFSSL_SUCCESS) {
- err = SSL_get_error(ssl, 0);
- printf("SSL_accept error %d, %s\n", err,
- ERR_error_string(err, buffer));
- if (!exitWithRet) {
- err_sys_ex(runWithErrors, "SSL_accept failed");
- } else {
- /* cleanup */
- SSL_free(ssl); ssl = NULL;
- SSL_CTX_free(ctx); ctx = NULL;
- CloseSocket(clientfd);
- CloseSocket(sockfd);
- ((func_args*)args)->return_code = err;
- goto exit;
- }
- }
-
- showPeerEx(ssl, lng_index);
- if (SSL_state(ssl) != 0) {
- err_sys_ex(runWithErrors, "SSL in error state");
- }
-
-#ifdef OPENSSL_EXTRA
- {
- byte* rnd;
- byte* pt;
- size_t size;
-
- /* get size of buffer then print */
- size = wolfSSL_get_server_random(NULL, NULL, 0);
- if (size == 0) {
- err_sys_ex(runWithErrors, "error getting server random buffer "
- "size");
- }
-
- rnd = (byte*)XMALLOC(size, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- if (rnd == NULL) {
- err_sys_ex(runWithErrors, "error creating server random buffer");
- }
-
- size = wolfSSL_get_server_random(ssl, rnd, size);
- if (size == 0) {
- if (rnd) {
- XFREE(rnd, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- rnd = NULL;
- }
- err_sys_ex(runWithErrors, "error getting server random buffer");
- }
-
- if (rnd) {
- printf("Server Random : ");
- for (pt = rnd; pt < rnd + size; pt++) printf("%02X", *pt);
- printf("\n");
-
- XFREE(rnd, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- rnd = NULL;
- }
- }
-#endif
-
-#ifdef HAVE_ALPN
- if (alpnList != NULL) {
- char *protocol_name = NULL, *list = NULL;
- word16 protocol_nameSz = 0, listSz = 0;
-
- err = wolfSSL_ALPN_GetProtocol(ssl, &protocol_name,
- &protocol_nameSz);
- if (err == WOLFSSL_SUCCESS)
- printf("Sent ALPN protocol : %s (%d)\n",
- protocol_name, protocol_nameSz);
- else if (err == WOLFSSL_ALPN_NOT_FOUND)
- printf("No ALPN response sent (no match)\n");
- else
- printf("Getting ALPN protocol name failed\n");
-
- err = wolfSSL_ALPN_GetPeerProtocol(ssl, &list, &listSz);
- if (err == WOLFSSL_SUCCESS)
- printf("List of protocol names sent by Client: %s (%d)\n",
- list, listSz);
- else
- printf("Get list of client's protocol name failed\n");
-
- free(list);
- }
-#endif
-
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS)
- #if defined(WOLFSSL_TLS13) && defined(WOLFSSL_POST_HANDSHAKE_AUTH)
- if (postHandAuth) {
- unsigned int verify_flags = 0;
-
- SSL_set_verify(ssl, WOLFSSL_VERIFY_PEER |
- ((usePskPlus) ? WOLFSSL_VERIFY_FAIL_EXCEPT_PSK :
- WOLFSSL_VERIFY_FAIL_IF_NO_PEER_CERT), 0);
-
- #ifdef TEST_BEFORE_DATE
- verify_flags |= WOLFSSL_LOAD_FLAG_DATE_ERR_OKAY;
- #endif
-
- if (wolfSSL_CTX_load_verify_locations_ex(ctx, verifyCert, 0,
- verify_flags)
- != WOLFSSL_SUCCESS) {
- err_sys_ex(runWithErrors, "can't load ca file, Please run from "
- "wolfSSL home dir");
- }
- #ifdef WOLFSSL_TRUST_PEER_CERT
- if (trustCert) {
- if ((ret = wolfSSL_trust_peer_cert(ssl, trustCert,
- WOLFSSL_FILETYPE_PEM)) != WOLFSSL_SUCCESS) {
- err_sys_ex(runWithErrors, "can't load trusted peer cert "
- "file");
- }
- }
- #endif /* WOLFSSL_TRUST_PEER_CERT */
- }
- #endif
-#endif
-
- if (echoData == 0 && throughput == 0) {
- ServerRead(ssl, input, sizeof(input)-1);
- err = SSL_get_error(ssl, 0);
- }
-
-#if defined(HAVE_SECURE_RENEGOTIATION) && \
- defined(HAVE_SERVER_RENEGOTIATION_INFO)
- if (scr && forceScr) {
- if (nonBlocking) {
- printf("not doing secure renegotiation on example with"
- " nonblocking yet\n");
- } else {
- if (wolfSSL_Rehandshake(ssl) != WOLFSSL_SUCCESS) {
- printf("not doing secure renegotiation\n");
- }
- else {
- printf("RENEGOTIATION SUCCESSFUL\n");
- }
- }
- }
-#endif /* HAVE_SECURE_RENEGOTIATION */
-
- if (err == 0 && echoData == 0 && throughput == 0) {
- const char* write_msg;
- int write_msg_sz;
-
-#ifdef WOLFSSL_TLS13
- if (updateKeysIVs)
- wolfSSL_update_keys(ssl);
-#endif
-#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_POST_HANDSHAKE_AUTH)
- if (postHandAuth)
- wolfSSL_request_certificate(ssl);
-#endif
-
- /* Write data */
- if (!useWebServerMsg) {
- write_msg = msg;
- write_msg_sz = sizeof(msg);
- }
- else {
- write_msg = webServerMsg;
- write_msg_sz = sizeof(webServerMsg);
- }
- ServerWrite(ssl, write_msg, write_msg_sz);
-
-#ifdef WOLFSSL_TLS13
- if (updateKeysIVs || postHandAuth)
- ServerRead(ssl, input, sizeof(input)-1);
-#endif
- }
- else if (err == 0 || err == WOLFSSL_ERROR_ZERO_RETURN) {
- ServerEchoData(ssl, clientfd, echoData, block, throughput);
- }
-
-#if defined(WOLFSSL_MDK_SHELL) && defined(HAVE_MDK_RTX)
- os_dly_wait(500) ;
-#elif defined (WOLFSSL_TIRTOS)
- Task_yield();
-#endif
-
- if (dtlsUDP == 0) {
- ret = SSL_shutdown(ssl);
- if (wc_shutdown && ret == WOLFSSL_SHUTDOWN_NOT_DONE) {
- ret = SSL_shutdown(ssl); /* bidirectional shutdown */
- if (ret == WOLFSSL_SUCCESS)
- printf("Bidirectional shutdown complete\n");
- }
- }
-
- /* display collected statistics */
-#ifdef WOLFSSL_STATIC_MEMORY
- if (wolfSSL_is_static_memory(ssl, &ssl_stats) != 1)
- err_sys_ex(runWithErrors, "static memory was not used with ssl");
-
- fprintf(stderr, "\nprint off SSL memory stats\n");
- fprintf(stderr, "*** This is memory state before wolfSSL_free is "
- "called\n");
- fprintf(stderr, "peak connection memory = %d\n", ssl_stats.peakMem);
- fprintf(stderr, "current memory in use = %d\n", ssl_stats.curMem);
- fprintf(stderr, "peak connection allocs = %d\n", ssl_stats.peakAlloc);
- fprintf(stderr, "current connection allocs = %d\n",ssl_stats.curAlloc);
- fprintf(stderr, "total connection allocs = %d\n",
- ssl_stats.totalAlloc);
- fprintf(stderr, "total connection frees = %d\n\n",
- ssl_stats.totalFr);
-
-#endif
- SSL_free(ssl); ssl = NULL;
-
- CloseSocket(clientfd);
-
- if (resume == 1 && resumeCount == 0) {
- resumeCount++; /* only do one resume for testing */
- continue;
- }
- resumeCount = 0;
-
- cnt++;
- if (loops > 0 && --loops == 0) {
- break; /* out of while loop, done with normal and resume option */
- }
- } /* while(1) */
-
- WOLFSSL_TIME(cnt);
- (void)cnt;
-
-#if defined(HAVE_CERTIFICATE_STATUS_REQUEST) \
- || defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
- wolfSSL_CTX_DisableOCSPStapling(ctx);
-#endif
-
- CloseSocket(sockfd);
- SSL_CTX_free(ctx); ctx = NULL;
-
- ((func_args*)args)->return_code = 0;
-
-exit:
-
-#if defined(HAVE_ECC) && defined(FP_ECC) && defined(HAVE_THREAD_LS) \
- && (defined(NO_MAIN_DRIVER) || defined(HAVE_STACK_SIZE))
- wc_ecc_fp_free(); /* free per thread cache */
-#endif
-
-#ifdef WOLFSSL_TIRTOS
- fdCloseSession(Task_self());
-#endif
-
-#if defined(HAVE_SESSION_TICKET) && defined(HAVE_CHACHA) && \
- defined(HAVE_POLY1305)
- TicketCleanup();
-#endif
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- wolfAsync_DevClose(&devId);
-#endif
-
- /* There are use cases when these assignments are not read. To avoid
- * potential confusion those warnings have been handled here.
- */
- (void) ourKey;
- (void) verifyCert;
- (void) doCliCertCheck;
- (void) useNtruKey;
- (void) ourDhParam;
- (void) ourCert;
- (void) useX25519;
- (void) useX448;
-#ifdef HAVE_SECURE_RENEGOTIATION
- (void) forceScr;
-#endif
-#ifndef WOLFSSL_TIRTOS
- return 0;
-#endif
-}
-
-#endif /* !NO_WOLFSSL_SERVER */
-
-
-/* so overall tests can pull in test function */
-#ifndef NO_MAIN_DRIVER
-
- int main(int argc, char** argv)
- {
- func_args args;
- tcp_ready ready;
-
-
- StartTCP();
-
- args.argc = argc;
- args.argv = argv;
- args.signal = &ready;
- args.return_code = 0;
- InitTcpReady(&ready);
-
-#if defined(DEBUG_WOLFSSL) && !defined(WOLFSSL_MDK_SHELL)
- wolfSSL_Debugging_ON();
-#endif
- wolfSSL_Init();
- ChangeToWolfRoot();
-
-#ifndef NO_WOLFSSL_SERVER
-#ifdef HAVE_STACK_SIZE
- StackSizeCheck(&args, server_test);
-#else
- server_test(&args);
-#endif
-#else
- printf("Server not compiled in!\n");
-#endif
-
- wolfSSL_Cleanup();
- FreeTcpReady(&ready);
-
-#ifdef HAVE_WNR
- if (wc_FreeNetRandom() < 0)
- err_sys_ex(runWithErrors, "Failed to free netRandom context");
-#endif /* HAVE_WNR */
-
- return args.return_code;
- }
-
- int myoptind = 0;
- char* myoptarg = NULL;
-
-#endif /* NO_MAIN_DRIVER */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.h b/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.h
deleted file mode 100644
index 91927c7ea..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* server.h
- *
- * Copyright (C) 2006-2020 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
-
-
-THREAD_RETURN WOLFSSL_THREAD server_test(void* args);
-
-/* Echo bytes using buffer of blockSize until [echoData] bytes are complete. */
-/* If [bechmarkThroughput] set the statistcs will be output at the end */
-int ServerEchoData(WOLFSSL* ssl, int clientfd, int echoData, int blockSize,
- size_t benchmarkThroughput);
-
-
-#endif /* WOLFSSL_SERVER_H */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.sln b/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.sln
deleted file mode 100644
index 7c9de3020..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual C++ Express 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "server.vcproj", "{13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Debug|Win32.ActiveCfg = Debug|Win32
- {13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Debug|Win32.Build.0 = Debug|Win32
- {13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Release|Win32.ActiveCfg = Release|Win32
- {13A60276-EFB2-4D3F-AFC3-D66E4C4CC27B}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.vcproj b/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.vcproj
deleted file mode 100644
index 05cd28833..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.vcproj
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="server"
- ProjectGUID="{E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}"
- RootNamespace="server"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../;../../IDE/WIN"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../../;../../IDE/WIN"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\server.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath="..\..\IDE\WIN\user_settings.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.vcxproj b/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.vcxproj
deleted file mode 100644
index d428490bd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/examples/server/server.vcxproj
+++ /dev/null
@@ -1,336 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Debug|Win32">
- <Configuration>DLL Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Debug|x64">
- <Configuration>DLL Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Release|Win32">
- <Configuration>DLL Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Release|x64">
- <Configuration>DLL Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}</ProjectGuid>
- <RootNamespace>server</RootNamespace>
- <Keyword>Win32Proj</Keyword>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader />
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader />
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../;../../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="server.c" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\wolfssl.vcxproj">
- <Project>{73973223-5ee8-41ca-8e88-1d60e89a237b}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\IDE\WIN\user_settings.h" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/fips-hash.sh b/FreeRTOS-Plus/Source/WolfSSL/fips-hash.sh
deleted file mode 100644
index fa2c1b908..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/fips-hash.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-
-if test ! -x ./wolfcrypt/test/testwolfcrypt
-then
- echo "fips-hash: wolfCrypt test missing"
- exit 1
-fi
-
-if test ! -s ./wolfcrypt/src/fips_test.c
-then
- echo "fips-hash: fips_test.c missing"
- exit 1
-fi
-
-NEWHASH=$(./wolfcrypt/test/testwolfcrypt | sed -n 's/hash = \(.*\)/\1/p')
-if test -n "$NEWHASH"
-then
- sed -i.bak "s/^\".*\";/\"${NEWHASH}\";/" wolfcrypt/src/fips_test.c
-fi
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/lib/dummy b/FreeRTOS-Plus/Source/WolfSSL/lib/dummy
deleted file mode 100644
index 13c3b18cd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/lib/dummy
+++ /dev/null
@@ -1,2 +0,0 @@
-// this is a dummy file
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_add_am_macro.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_add_am_macro.m4
deleted file mode 100644
index 3962002bf..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_add_am_macro.m4
+++ /dev/null
@@ -1,29 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_add_am_macro.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_ADD_AM_MACRO([RULE])
-#
-# DESCRIPTION
-#
-# Adds the specified rule to $AMINCLUDE. This macro will only work
-# properly with implementations of Make which allow include statements.
-# See also AX_ADD_AM_MACRO_STATIC.
-#
-# LICENSE
-#
-# Copyright (c) 2009 Tom Howard <tomhoward@users.sf.net>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 10
-
-AC_DEFUN([AX_ADD_AM_MACRO],[
- AC_REQUIRE([AX_AM_MACROS])
- AX_APPEND_TO_FILE([$AMINCLUDE],[$1])
-])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_am_jobserver.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_am_jobserver.m4
deleted file mode 100644
index 7da8d5e71..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_am_jobserver.m4
+++ /dev/null
@@ -1,57 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_am_jobserver.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_AM_JOBSERVER([default_value])
-#
-# DESCRIPTION
-#
-# Enables the use of make's jobserver for the purpose of parallel building
-# by passing the -j option to make.
-#
-# The option --enable-jobserver is added to configure which can accept a
-# yes, no, or an integer. The integer is the number of separate jobs to
-# allow. If 'yes' is given, then the is assumed to be one more than the
-# number of CPUs (determined through AX_COUNT_CPUS). If the value of no is
-# given, then the jobserver is disabled. The default value is given by the
-# first argument of the macro, or 'yes' if the argument is omitted.
-#
-# This macro makes use of AX_AM_MACROS, so you must add the following line
-#
-# @INC_AMINCLUDE@
-#
-# to your Makefile.am files.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Michael Paul Bailey <jinxidoru@byu.net>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 8.1
-# Local update: Make the increment of enable-jobserver so it isn't executable
-# and is more posix syntax.
-
-AC_DEFUN([AX_AM_JOBSERVER], [
- AC_REQUIRE([AX_COUNT_CPUS])
- AC_REQUIRE([AX_AM_MACROS])
- AC_ARG_ENABLE( jobserver,
- [ --enable-jobserver@<:@=no/yes/@%:@@:>@ default=m4_ifval([$1],[$1],[yes])
- Enable up to @%:@ make jobs
- yes: enable one more than CPU count
- ],, [enable_jobserver=m4_ifval([$1],[$1],[yes])])
- if test "x$enable_jobserver" = "xyes"; then
- enable_jobserver=$CPU_COUNT
- : $((enable_jobserver+=1))
- fi
- m4_pattern_allow(AM_MAKEFLAGS)
- if test "x$enable_jobserver" != "xno"; then
- AC_MSG_NOTICE([added jobserver support to make for $enable_jobserver jobs])
- AX_ADD_AM_MACRO( AM_MAKEFLAGS += -j$enable_jobserver )
- fi
-])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_am_macros.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_am_macros.m4
deleted file mode 100644
index 36c3ab6a2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_am_macros.m4
+++ /dev/null
@@ -1,44 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_am_macros.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_AM_MACROS
-#
-# DESCRIPTION
-#
-# Adds support for macros that create Make rules. You must manually add
-# the following line
-#
-# @INC_AMINCLUDE@
-#
-# to your Makefile.in (or Makefile.am if you use Automake) files.
-#
-# LICENSE
-#
-# Copyright (c) 2009 Tom Howard <tomhoward@users.sf.net>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 11
-
-AC_DEFUN([AX_AM_MACROS],
-[
-AC_MSG_NOTICE([adding automake macro support])
-AMINCLUDE="aminclude.am"
-AC_SUBST(AMINCLUDE)
-AC_MSG_NOTICE([creating $AMINCLUDE])
-AMINCLUDE_TIME=`LC_ALL=C date`
-AX_PRINT_TO_FILE([$AMINCLUDE],[[
-# generated automatically by configure from AX_AUTOMAKE_MACROS
-# on $AMINCLUDE_TIME
-
-]])
-
-INC_AMINCLUDE="include \$(top_builddir)/$AMINCLUDE"
-AC_SUBST(INC_AMINCLUDE)
-])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_append_compile_flags.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_append_compile_flags.m4
deleted file mode 100644
index 5b6f1af51..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_append_compile_flags.m4
+++ /dev/null
@@ -1,67 +0,0 @@
-# ============================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_append_compile_flags.html
-# ============================================================================
-#
-# SYNOPSIS
-#
-# AX_APPEND_COMPILE_FLAGS([FLAG1 FLAG2 ...], [FLAGS-VARIABLE], [EXTRA-FLAGS], [INPUT])
-#
-# DESCRIPTION
-#
-# For every FLAG1, FLAG2 it is checked whether the compiler works with the
-# flag. If it does, the flag is added FLAGS-VARIABLE
-#
-# If FLAGS-VARIABLE is not specified, the current language's flags (e.g.
-# CFLAGS) is used. During the check the flag is always added to the
-# current language's flags.
-#
-# If EXTRA-FLAGS is defined, it is added to the current language's default
-# flags (e.g. CFLAGS) when the check is done. The check is thus made with
-# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
-# force the compiler to issue an error when a bad flag is given.
-#
-# INPUT gives an alternative input source to AC_COMPILE_IFELSE.
-#
-# NOTE: This macro depends on the AX_APPEND_FLAG and
-# AX_CHECK_COMPILE_FLAG. Please keep this macro in sync with
-# AX_APPEND_LINK_FLAGS.
-#
-# LICENSE
-#
-# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
-#
-# This program 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 3 of the License, or (at your
-# option) any later version.
-#
-# This program 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, see <https://www.gnu.org/licenses/>.
-#
-# As a special exception, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 6
-
-AC_DEFUN([AX_APPEND_COMPILE_FLAGS],
-[AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG])
-AX_REQUIRE_DEFINED([AX_APPEND_FLAG])
-for flag in $1; do
- AX_CHECK_COMPILE_FLAG([$flag], [AX_APPEND_FLAG([$flag], [$2])], [], [$3], [$4])
-done
-])dnl AX_APPEND_COMPILE_FLAGS
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_append_flag.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_append_flag.m4
deleted file mode 100644
index e8c5312af..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_append_flag.m4
+++ /dev/null
@@ -1,71 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_append_flag.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE])
-#
-# DESCRIPTION
-#
-# FLAG is appended to the FLAGS-VARIABLE shell variable, with a space
-# added in between.
-#
-# If FLAGS-VARIABLE is not specified, the current language's flags (e.g.
-# CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains
-# FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly
-# FLAG.
-#
-# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
-# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
-#
-# This program 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 3 of the License, or (at your
-# option) any later version.
-#
-# This program 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, see <https://www.gnu.org/licenses/>.
-#
-# As a special exception, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 7
-
-AC_DEFUN([AX_APPEND_FLAG],
-[dnl
-AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_SET_IF
-AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])])
-AS_VAR_SET_IF(FLAGS,[
- AS_CASE([" AS_VAR_GET(FLAGS) "],
- [*" $1 "*], [AC_RUN_LOG([: FLAGS already contains $1])],
- [
- AS_VAR_APPEND(FLAGS,[" $1"])
- AC_RUN_LOG([: FLAGS="$FLAGS"])
- ])
- ],
- [
- AS_VAR_SET(FLAGS,[$1])
- AC_RUN_LOG([: FLAGS="$FLAGS"])
- ])
-AS_VAR_POPDEF([FLAGS])dnl
-])dnl AX_APPEND_FLAG
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_append_to_file.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_append_to_file.m4
deleted file mode 100644
index fca570837..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_append_to_file.m4
+++ /dev/null
@@ -1,27 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_append_to_file.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_APPEND_TO_FILE([FILE],[DATA])
-#
-# DESCRIPTION
-#
-# Appends the specified data to the specified file.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Tom Howard <tomhoward@users.sf.net>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 9
-
-AC_DEFUN([AX_APPEND_TO_FILE],[
-AC_REQUIRE([AX_FILE_ESCAPES])
-printf "%s" "$2" >> "$1"
-])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_check_compile_flag.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_check_compile_flag.m4
deleted file mode 100644
index dcabb92a1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_check_compile_flag.m4
+++ /dev/null
@@ -1,74 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
-#
-# DESCRIPTION
-#
-# Check whether the given FLAG works with the current language's compiler
-# or gives an error. (Warnings, however, are ignored)
-#
-# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
-# success/failure.
-#
-# If EXTRA-FLAGS is defined, it is added to the current language's default
-# flags (e.g. CFLAGS) when the check is done. The check is thus made with
-# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
-# force the compiler to issue an error when a bad flag is given.
-#
-# INPUT gives an alternative input source to AC_COMPILE_IFELSE.
-#
-# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
-# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
-# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
-#
-# This program 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 3 of the License, or (at your
-# option) any later version.
-#
-# This program 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, see <https://www.gnu.org/licenses/>.
-#
-# As a special exception, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 5
-
-AC_DEFUN([AX_CHECK_COMPILE_FLAG],
-[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
-AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
-AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
- ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
- _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
- AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
- [AS_VAR_SET(CACHEVAR,[yes])],
- [AS_VAR_SET(CACHEVAR,[no])])
- _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
-AS_VAR_IF(CACHEVAR,yes,
- [m4_default([$2], :)],
- [m4_default([$3], :)])
-AS_VAR_POPDEF([CACHEVAR])dnl
-])dnl AX_CHECK_COMPILE_FLAGS
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_check_link_flag.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_check_link_flag.m4
deleted file mode 100644
index 819409a20..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_check_link_flag.m4
+++ /dev/null
@@ -1,74 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
-#
-# DESCRIPTION
-#
-# Check whether the given FLAG works with the linker or gives an error.
-# (Warnings, however, are ignored)
-#
-# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
-# success/failure.
-#
-# If EXTRA-FLAGS is defined, it is added to the linker's default flags
-# when the check is done. The check is thus made with the flags: "LDFLAGS
-# EXTRA-FLAGS FLAG". This can for example be used to force the linker to
-# issue an error when a bad flag is given.
-#
-# INPUT gives an alternative input source to AC_LINK_IFELSE.
-#
-# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
-# macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
-# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
-#
-# This program 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 3 of the License, or (at your
-# option) any later version.
-#
-# This program 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, see <https://www.gnu.org/licenses/>.
-#
-# As a special exception, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 5
-
-AC_DEFUN([AX_CHECK_LINK_FLAG],
-[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
-AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl
-AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [
- ax_check_save_flags=$LDFLAGS
- LDFLAGS="$LDFLAGS $4 $1"
- AC_LINK_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
- [AS_VAR_SET(CACHEVAR,[yes])],
- [AS_VAR_SET(CACHEVAR,[no])])
- LDFLAGS=$ax_check_save_flags])
-AS_VAR_IF(CACHEVAR,yes,
- [m4_default([$2], :)],
- [m4_default([$3], :)])
-AS_VAR_POPDEF([CACHEVAR])dnl
-])dnl AX_CHECK_LINK_FLAGS
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_count_cpus.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_count_cpus.m4
deleted file mode 100644
index 5db892553..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_count_cpus.m4
+++ /dev/null
@@ -1,101 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_count_cpus.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_COUNT_CPUS([ACTION-IF-DETECTED],[ACTION-IF-NOT-DETECTED])
-#
-# DESCRIPTION
-#
-# Attempt to count the number of logical processor cores (including
-# virtual and HT cores) currently available to use on the machine and
-# place detected value in CPU_COUNT variable.
-#
-# On successful detection, ACTION-IF-DETECTED is executed if present. If
-# the detection fails, then ACTION-IF-NOT-DETECTED is triggered. The
-# default ACTION-IF-NOT-DETECTED is to set CPU_COUNT to 1.
-#
-# LICENSE
-#
-# Copyright (c) 2014,2016 Karlson2k (Evgeny Grin) <k2k@narod.ru>
-# Copyright (c) 2012 Brian Aker <brian@tangent.org>
-# Copyright (c) 2008 Michael Paul Bailey <jinxidoru@byu.net>
-# Copyright (c) 2008 Christophe Tournayre <turn3r@users.sourceforge.net>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 22
-
- AC_DEFUN([AX_COUNT_CPUS],[dnl
- AC_REQUIRE([AC_CANONICAL_HOST])dnl
- AC_REQUIRE([AC_PROG_EGREP])dnl
- AC_MSG_CHECKING([the number of available CPUs])
- CPU_COUNT="0"
-
- # Try generic methods
-
- # 'getconf' is POSIX utility, but '_NPROCESSORS_ONLN' and
- # 'NPROCESSORS_ONLN' are platform-specific
- command -v getconf >/dev/null 2>&1 && \
- CPU_COUNT=`getconf _NPROCESSORS_ONLN 2>/dev/null || getconf NPROCESSORS_ONLN 2>/dev/null` || CPU_COUNT="0"
- AS_IF([[test "$CPU_COUNT" -gt "0" 2>/dev/null || ! command -v nproc >/dev/null 2>&1]],[[: # empty]],[dnl
- # 'nproc' is part of GNU Coreutils and is widely available
- CPU_COUNT=`OMP_NUM_THREADS='' nproc 2>/dev/null` || CPU_COUNT=`nproc 2>/dev/null` || CPU_COUNT="0"
- ])dnl
-
- AS_IF([[test "$CPU_COUNT" -gt "0" 2>/dev/null]],[[: # empty]],[dnl
- # Try platform-specific preferred methods
- AS_CASE([[$host_os]],dnl
- [[*linux*]],[[CPU_COUNT=`lscpu -p 2>/dev/null | $EGREP -e '^@<:@0-9@:>@+,' -c` || CPU_COUNT="0"]],dnl
- [[*darwin*]],[[CPU_COUNT=`sysctl -n hw.logicalcpu 2>/dev/null` || CPU_COUNT="0"]],dnl
- [[freebsd*]],[[command -v sysctl >/dev/null 2>&1 && CPU_COUNT=`sysctl -n kern.smp.cpus 2>/dev/null` || CPU_COUNT="0"]],dnl
- [[netbsd*]], [[command -v sysctl >/dev/null 2>&1 && CPU_COUNT=`sysctl -n hw.ncpuonline 2>/dev/null` || CPU_COUNT="0"]],dnl
- [[solaris*]],[[command -v psrinfo >/dev/null 2>&1 && CPU_COUNT=`psrinfo 2>/dev/null | $EGREP -e '^@<:@0-9@:>@.*on-line' -c 2>/dev/null` || CPU_COUNT="0"]],dnl
- [[mingw*]],[[CPU_COUNT=`ls -qpU1 /proc/registry/HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System/CentralProcessor/ 2>/dev/null | $EGREP -e '^@<:@0-9@:>@+/' -c` || CPU_COUNT="0"]],dnl
- [[msys*]],[[CPU_COUNT=`ls -qpU1 /proc/registry/HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System/CentralProcessor/ 2>/dev/null | $EGREP -e '^@<:@0-9@:>@+/' -c` || CPU_COUNT="0"]],dnl
- [[cygwin*]],[[CPU_COUNT=`ls -qpU1 /proc/registry/HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System/CentralProcessor/ 2>/dev/null | $EGREP -e '^@<:@0-9@:>@+/' -c` || CPU_COUNT="0"]]dnl
- )dnl
- ])dnl
-
- AS_IF([[test "$CPU_COUNT" -gt "0" 2>/dev/null || ! command -v sysctl >/dev/null 2>&1]],[[: # empty]],[dnl
- # Try less preferred generic method
- # 'hw.ncpu' exist on many platforms, but not on GNU/Linux
- CPU_COUNT=`sysctl -n hw.ncpu 2>/dev/null` || CPU_COUNT="0"
- ])dnl
-
- AS_IF([[test "$CPU_COUNT" -gt "0" 2>/dev/null]],[[: # empty]],[dnl
- # Try platform-specific fallback methods
- # They can be less accurate and slower then preferred methods
- AS_CASE([[$host_os]],dnl
- [[*linux*]],[[CPU_COUNT=`$EGREP -e '^processor' -c /proc/cpuinfo 2>/dev/null` || CPU_COUNT="0"]],dnl
- [[*darwin*]],[[CPU_COUNT=`system_profiler SPHardwareDataType 2>/dev/null | $EGREP -i -e 'number of cores:'|cut -d : -f 2 -s|tr -d ' '` || CPU_COUNT="0"]],dnl
- [[freebsd*]],[[CPU_COUNT=`dmesg 2>/dev/null| $EGREP -e '^cpu@<:@0-9@:>@+: '|sort -u|$EGREP -e '^' -c` || CPU_COUNT="0"]],dnl
- [[netbsd*]], [[CPU_COUNT=`command -v cpuctl >/dev/null 2>&1 && cpuctl list 2>/dev/null| $EGREP -e '^@<:@0-9@:>@+ .* online ' -c` || \
- CPU_COUNT=`dmesg 2>/dev/null| $EGREP -e '^cpu@<:@0-9@:>@+ at'|sort -u|$EGREP -e '^' -c` || CPU_COUNT="0"]],dnl
- [[solaris*]],[[command -v kstat >/dev/null 2>&1 && CPU_COUNT=`kstat -m cpu_info -s state -p 2>/dev/null | $EGREP -c -e 'on-line'` || \
- CPU_COUNT=`kstat -m cpu_info 2>/dev/null | $EGREP -c -e 'module: cpu_info'` || CPU_COUNT="0"]],dnl
- [[mingw*]],[AS_IF([[CPU_COUNT=`reg query 'HKLM\\Hardware\\Description\\System\\CentralProcessor' 2>/dev/null | $EGREP -e '\\\\@<:@0-9@:>@+$' -c`]],dnl
- [[: # empty]],[[test "$NUMBER_OF_PROCESSORS" -gt "0" 2>/dev/null && CPU_COUNT="$NUMBER_OF_PROCESSORS"]])],dnl
- [[msys*]],[[test "$NUMBER_OF_PROCESSORS" -gt "0" 2>/dev/null && CPU_COUNT="$NUMBER_OF_PROCESSORS"]],dnl
- [[cygwin*]],[[test "$NUMBER_OF_PROCESSORS" -gt "0" 2>/dev/null && CPU_COUNT="$NUMBER_OF_PROCESSORS"]]dnl
- )dnl
- ])dnl
-
- AS_IF([[test "x$CPU_COUNT" != "x0" && test "$CPU_COUNT" -gt 0 2>/dev/null]],[dnl
- AC_MSG_RESULT([[$CPU_COUNT]])
- m4_ifvaln([$1],[$1],)dnl
- ],[dnl
- m4_ifval([$2],[dnl
- AS_UNSET([[CPU_COUNT]])
- AC_MSG_RESULT([[unable to detect]])
- $2
- ], [dnl
- CPU_COUNT="1"
- AC_MSG_RESULT([[unable to detect (assuming 1)]])
- ])dnl
- ])dnl
- ])dnl
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_create_generic_config.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_create_generic_config.m4
deleted file mode 100644
index 59aeee617..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_create_generic_config.m4
+++ /dev/null
@@ -1,195 +0,0 @@
-# ============================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_create_generic_config.html
-# ============================================================================
-#
-# SYNOPSIS
-#
-# AX_CREATE_GENERIC_CONFIG [(PACKAGEnlibs [, VERSION])]
-#
-# DESCRIPTION
-#
-# Creates a generic PACKAGE-config file that has all the things that you
-# want, hmm, well, at least it has --cflags, --version, --libs. Ahhm, did
-# you see ax_path_generic in the autoconf-archive? ;-)
-#
-# this macros saves you all the typing for a pkg-config.in script, you
-# don't even need to distribute one along. Place this macro in your
-# configure.ac, et voila, you got one that you want to install.
-#
-# oh, btw, if the first arg looks like "mylib -lwhat' then it will go to
-# be added to the --libs, and mylib is extracted.
-#
-# the defaults: $1 = $PACKAGE $LIBS $2 = $VERSION there is also an
-# AC_SUBST(GENERIC_CONFIG) that will be set to the name of the file that
-# we did output in this macro. Use as:
-#
-# install-exec-local: install-generic-config
-#
-# install-generic-config:
-# $(mkinstalldirs) $(DESTDIR)$(bindir)
-# $(INSTALL_SCRIPT) @GENERIC_CONFIG@ $(DESTDIR)$(bindir)
-#
-# LICENSE
-#
-# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
-#
-# This program 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 3 of the License, or (at your
-# option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-#
-# As a special exception, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 6
-
-AU_ALIAS([AC_CREATE_GENERIC_CONFIG], [AX_CREATE_GENERIC_CONFIG])
-AC_DEFUN([AX_CREATE_GENERIC_CONFIG],[# create a generic PACKAGE-config file
-L=`echo ifelse($1, , $PACKAGE $LIBS, $1)`
-P=`echo $L | sed -e 's/ -.*//'`
-P=`echo $P`
-V=`echo ifelse($2, , $VERSION, $2)`
-F=`echo $P-config`
-L=`echo -l$L | sed -e 's/^-llib/-l/'`
-AC_MSG_RESULT(creating $F - generic $V for $L)
-test "x$prefix" = xNONE && prefix="$ac_default_prefix"
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-echo '#! /bin/sh' >$F
-echo ' ' >>$F
-echo 'package="'$P'"' >>$F
-echo 'version="'$V'"' >>$F
-echo 'libs="'$L'"' >>$F
-echo ' ' >>$F
-# in the order of occurrence a standard automake Makefile
-echo 'prefix="'$prefix'"' >>$F
-echo 'exec_prefix="'$exec_prefix'"' >>$F
-echo 'bindir="'$bindir'"' >>$F
-echo 'sbindir="'$sbindir'"' >>$F
-echo 'libexecdir="'$libexecdir'"' >>$F
-echo 'datadir="'$datadir'"' >>$F
-echo 'sysconfdir="'$sysconfdir'"' >>$F
-echo 'sharedstatedir="'$sharedstatedir'"' >>$F
-echo 'localstatedir="'$localstatedir'"' >>$F
-echo 'libdir="'$libdir'"' >>$F
-echo 'infodir="'$infodir'"' >>$F
-echo 'mandir="'$mandir'"' >>$F
-echo 'includedir="'$includedir'"' >>$F
-echo 'target="'$target'"' >>$F
-echo 'host="'$host'"' >>$F
-echo 'build="'$build'"' >>$F
-echo ' ' >>$F
-echo 'if test "'"\$""#"'" -eq 0; then' >>$F
-echo ' cat <<EOF' >>$F
-echo 'Usage: $package-config [OPTIONS]' >>$F
-echo 'Options:' >>$F
-echo ' --prefix[=DIR]) : \$prefix' >>$F
-echo ' --package) : \$package' >>$F
-echo ' --version) : \$version' >>$F
-echo ' --cflags) : -I\$includedir' >>$F
-echo ' --libs) : -L\$libdir -l\$package' >>$F
-echo ' --help) print all the options (not just these)' >>$F
-echo 'EOF' >>$F
-echo 'fi' >>$F
-echo ' ' >>$F
-echo 'o=""' >>$F
-echo 'h=""' >>$F
-echo 'for i in "[$]@"; do' >>$F
-echo ' case $i in' >>$F
-echo ' --prefix=*) prefix=`echo $i | sed -e "s/--prefix=//"` ;;' >>$F
-echo ' --prefix) o="$o $prefix" ;;' >>$F
-echo ' --package) o="$o $package" ;;' >>$F
-echo ' --version) o="$o $version" ;;' >>$F
-echo ' --cflags) if test "_$includedir" != "_/usr/include"' >>$F
-echo ' then o="$o -I$includedir" ; fi' >>$F
-echo ' ;;' >>$F
-echo ' --libs) o="$o -L$libdir $libs" ;;' >>$F
-echo ' --exec_prefix|--eprefix) o="$o $exec_prefix" ;;' >>$F
-echo ' --bindir) o="$o $bindir" ;;' >>$F
-echo ' --sbindir) o="$o $sbindir" ;;' >>$F
-echo ' --libexecdir) o="$o $libexecdir" ;;' >>$F
-echo ' --datadir) o="$o $datadir" ;;' >>$F
-echo ' --datainc) o="$o -I$datadir" ;;' >>$F
-echo ' --datalib) o="$o -L$datadir" ;;' >>$F
-echo ' --sysconfdir) o="$o $sysconfdir" ;;' >>$F
-echo ' --sharedstatedir) o="$o $sharedstatedir" ;;' >>$F
-echo ' --localstatedir) o="$o $localstatedir" ;;' >>$F
-echo ' --libdir) o="$o $libdir" ;;' >>$F
-echo ' --libadd) o="$o -L$libdir" ;;' >>$F
-echo ' --infodir) o="$o $infodir" ;;' >>$F
-echo ' --mandir) o="$o $mandir" ;;' >>$F
-echo ' --target) o="$o $target" ;;' >>$F
-echo ' --host) o="$o $host" ;;' >>$F
-echo ' --build) o="$o $build" ;;' >>$F
-echo ' --data) o="$o -I$datadir/$package" ;;' >>$F
-echo ' --pkgdatadir) o="$o $datadir/$package" ;;' >>$F
-echo ' --pkgdatainc) o="$o -I$datadir/$package" ;;' >>$F
-echo ' --pkgdatalib) o="$o -L$datadir/$package" ;;' >>$F
-echo ' --pkglibdir) o="$o $libdir/$package" ;;' >>$F
-echo ' --pkglibinc) o="$o -I$libinc/$package" ;;' >>$F
-echo ' --pkglibadd) o="$o -L$libadd/$package" ;;' >>$F
-echo ' --pkgincludedir) o="$o $includedir/$package" ;;' >>$F
-echo ' --help) h="1" ;;' >>$F
-echo ' -?//*|-?/*//*|-?./*//*|//*|/*//*|./*//*) ' >>$F
-echo ' v=`echo $i | sed -e s://:\$:g`' >>$F
-echo ' v=`eval "echo $v"` ' >>$F
-echo ' o="$o $v" ;; ' >>$F
-echo ' esac' >>$F
-echo 'done' >>$F
-echo ' ' >>$F
-echo 'o=`eval "echo $o"`' >>$F
-echo 'o=`eval "echo $o"`' >>$F
-echo 'eval "echo $o"' >>$F
-echo ' ' >>$F
-echo 'if test ! -z "$h" ; then ' >>$F
-echo 'cat <<EOF' >>$F
-echo ' --prefix=xxx) (what is that for anyway?)' >>$F
-echo ' --prefix) \$prefix $prefix' >>$F
-echo ' --package) \$package $package' >>$F
-echo ' --version) \$version $version' >>$F
-echo ' --cflags) -I\$includedir unless it is /usr/include' >>$F
-echo ' --libs) -L\$libdir -l\$PACKAGE \$LIBS' >>$F
-echo ' --exec_prefix) or... ' >>$F
-echo ' --eprefix) \$exec_prefix $exec_prefix' >>$F
-echo ' --bindir) \$bindir $bindir' >>$F
-echo ' --sbindir) \$sbindir $sbindir' >>$F
-echo ' --libexecdir) \$libexecdir $libexecdir' >>$F
-echo ' --datadir) \$datadir $datadir' >>$F
-echo ' --sysconfdir) \$sysconfdir $sysconfdir' >>$F
-echo ' --sharedstatedir) \$sharedstatedir$sharedstatedir' >>$F
-echo ' --localstatedir) \$localstatedir $localstatedir' >>$F
-echo ' --libdir) \$libdir $libdir' >>$F
-echo ' --infodir) \$infodir $infodir' >>$F
-echo ' --mandir) \$mandir $mandir' >>$F
-echo ' --target) \$target $target' >>$F
-echo ' --host) \$host $host' >>$F
-echo ' --build) \$build $build' >>$F
-echo ' --data) -I\$datadir/\$package' >>$F
-echo ' --pkgdatadir) \$datadir/\$package' >>$F
-echo ' --pkglibdir) \$libdir/\$package' >>$F
-echo ' --pkgincludedir) \$includedir/\$package' >>$F
-echo ' --help) generated by ax_create_generic_config.m4' >>$F
-echo ' -I//varname and other inc-targets like --pkgdatainc supported' >>$F
-echo ' -L//varname and other lib-targets, e.g. --pkgdatalib or --libadd' >>$F
-echo 'EOF' >>$F
-echo 'fi' >>$F
-GENERIC_CONFIG="$F"
-AC_SUBST(GENERIC_CONFIG)
-])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_debug.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_debug.m4
deleted file mode 100644
index 94e4c9cb6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_debug.m4
+++ /dev/null
@@ -1,63 +0,0 @@
-# ===========================================================================
-# https://github.com/BrianAker/ddm4/
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_DEBUG()
-#
-# DESCRIPTION
-#
-# --enable-debug
-#
-# LICENSE
-#
-# Copyright (C) 2012 Brian Aker
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#
-# * The names of its contributors may not be used to endorse or
-# promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#serial 6.1
-
-AC_DEFUN([AX_DEBUG],
- [AC_PREREQ([2.63])dnl
- AC_ARG_ENABLE([debug],
- [AS_HELP_STRING([--enable-debug],
- [Add debug code/turns off optimizations (yes|no) @<:@default=no@:>@])],
- [ax_enable_debug=$enableval],
- [ax_enable_debug=no])
-
- AS_IF([test "x$ax_enable_debug" = xyes],
- [AC_DEFINE([DEBUG],[1],[Define to 1 to enable debugging code.])],
- [AC_SUBST([MCHECK])
- AC_DEFINE([DEBUG],[0],[Define to 1 to enable debugging code.])])
-
- AC_MSG_CHECKING([for debug])
- AC_MSG_RESULT([$ax_enable_debug])
- AM_CONDITIONAL([DEBUG],[test "x${ax_enable_debug}" = xyes])])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_file_escapes.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_file_escapes.m4
deleted file mode 100644
index a86fdc326..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_file_escapes.m4
+++ /dev/null
@@ -1,30 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_file_escapes.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_FILE_ESCAPES
-#
-# DESCRIPTION
-#
-# Writes the specified data to the specified file.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Tom Howard <tomhoward@users.sf.net>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 8
-
-AC_DEFUN([AX_FILE_ESCAPES],[
-AX_DOLLAR="\$"
-AX_SRB="\\135"
-AX_SLB="\\133"
-AX_BS="\\\\"
-AX_DQ="\""
-])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_harden_compiler_flags.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_harden_compiler_flags.m4
deleted file mode 100644
index 908855626..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_harden_compiler_flags.m4
+++ /dev/null
@@ -1,239 +0,0 @@
-# ===========================================================================
-# https://github.com/BrianAker/ddm4/
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_HARDEN_COMPILER_FLAGS()
-# AX_HARDEN_LINKER_FLAGS()
-# AX_HARDEN_CC_COMPILER_FLAGS()
-# AX_HARDEN_CXX_COMPILER_FLAGS()
-#
-# DESCRIPTION
-#
-# Any compiler flag that "hardens" or tests code. C99 is assumed.
-#
-# NOTE: Implementation based on AX_APPEND_FLAG.
-#
-# LICENSE
-#
-# Copyright (C) 2012 Brian Aker
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#
-# * The names of its contributors may not be used to endorse or
-# promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# The Following flags are not checked for
-# -Wdeclaration-after-statement is counter to C99
-# AX_APPEND_COMPILE_FLAGS([-std=c++11]) -- Not ready yet
-# AX_APPEND_COMPILE_FLAGS([-pedantic]) -- ?
-# AX_APPEND_COMPILE_FLAGS([-Wstack-protector]) -- Issues on 32bit compile
-# AX_APPEND_COMPILE_FLAGS([-fstack-protector-all]) -- Issues on 32bit compile
-# AX_APPEND_COMPILE_FLAGS([-Wlong-long]) -- Don't turn on for compatibility issues memcached_stat_st
-# AX_APPEND_COMPILE_FLAGS([-Wold-style-definition],,[$ax_append_compile_cflags_extra])
-# AX_APPEND_COMPILE_FLAGS([-std=c99],,[$ax_append_compile_cflags_extra])
-# AX_APPEND_COMPILE_FLAGS([-Wlogical-op],,[$ax_append_compile_cflags_extra])
-# AX_APPEND_COMPILE_FLAGS([-fstack-check],,[$ax_append_compile_cflags_extra]) -- problems with fastmath stack size checks
-# AX_APPEND_COMPILE_FLAGS([-floop-parallelize-all],,[$ax_append_compile_cflags_extra]) -- causes RSA verify problem on x64
-# AX_APPEND_COMPILE_FLAGS([-Wunreachable-code],,[$ax_append_compile_cflags_extra]) -- older clang and when gcc had it are buggy
-# AX_APPEND_COMPILE_FLAGS([-fPIE],,[$ax_append_compile_cflags_extra]) -- Flag for executables not libraries
-
-#serial 4.2
-# changes: deleted the clearing of CFLAGS
-
- AC_DEFUN([AX_HARDEN_LINKER_FLAGS], [
- AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG])
- AC_REQUIRE([AX_VCS_CHECKOUT])
- AC_REQUIRE([AX_DEBUG])
-
- dnl If we are inside of VCS we append -Werror, otherwise we just use it to test other flags
- AX_HARDEN_LIB=
- ax_append_compile_link_flags_extra=
- AS_IF([test "x$ac_cv_vcs_checkout" = "xyes"],[
- AX_CHECK_LINK_FLAG([-Werror],[
- AX_HARDEN_LIB="-Werror $AX_HARDEN_LIB"
- ])
- ],[
- AX_CHECK_LINK_FLAG([-Werror],[
- ax_append_compile_link_flags_extra='-Werror'
- ])
- ])
-
- AX_CHECK_LINK_FLAG([-z relro -z now],[
- AX_HARDEN_LIB="-z relro -z now $AX_HARDEN_LIB"
- ],,[$ax_append_compile_link_flags_extra])
-
- AX_CHECK_LINK_FLAG([-pie],[
- AX_HARDEN_LIB="-pie $AX_HARDEN_LIB"
- ],,[$ax_append_compile_link_flags_extra])
-
- LIB="$LIB $AX_HARDEN_LIB"
- ])
-
- AC_DEFUN([AX_HARDEN_CC_COMPILER_FLAGS], [
- AX_REQUIRE_DEFINED([AX_APPEND_COMPILE_FLAGS])
- AC_REQUIRE([AX_HARDEN_LINKER_FLAGS])
-
- AC_LANG_PUSH([C])
-
- ac_cv_warnings_as_errors=no
- ax_append_compile_cflags_extra=
- AS_IF([test "$ac_cv_vcs_checkout" = "yes"],[
- AX_APPEND_COMPILE_FLAGS([-Werror])
- ac_cv_warnings_as_errors=yes
- ],[
- AX_APPEND_COMPILE_FLAGS([-Werror],[ax_append_compile_cflags_extra])
- ])
-
- AS_IF([test "$ax_enable_debug" = "yes"], [
- AX_APPEND_COMPILE_FLAGS([-g])
- AX_APPEND_COMPILE_FLAGS([-ggdb],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-O0],,[$ax_append_compile_cflags_extra])
- ],[])
-
- AX_APPEND_COMPILE_FLAGS([-Wno-pragmas],,[$ax_append_compile_cflags_extra])
-
- AX_APPEND_COMPILE_FLAGS([-Wall],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wno-strict-aliasing],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wextra],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wunknown-pragmas],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wthis-test-should-fail],,[$ax_append_compile_cflags_extra])
- dnl Anything below this comment please keep sorted.
- AS_IF([test "$CC" = "clang"],[],[
- AX_APPEND_COMPILE_FLAGS([--param=ssp-buffer-size=1],,[$ax_append_compile_cflags_extra])
- ])
- AX_APPEND_COMPILE_FLAGS([-Waddress],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Warray-bounds],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast],,[$ax_append_compile_cflags_extra])
- dnl Not in use -Wc++-compat
- AX_APPEND_COMPILE_FLAGS([-Wchar-subscripts],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wcomment],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wfloat-equal],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wformat-security],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wformat=2],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wmaybe-uninitialized],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wmissing-field-initializers],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wmissing-noreturn],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wmissing-prototypes],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wnested-externs],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wnormalized=id],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Woverride-init],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wpointer-arith],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wpointer-sign],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wredundant-decls],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wshadow],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wshorten-64-to-32],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wsign-compare],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wstrict-overflow=1],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wstrict-prototypes],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wswitch-enum],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wundef],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wunused],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wunused-result],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wunused-variable],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wwrite-strings],,[$ax_append_compile_cflags_extra])
- AX_APPEND_COMPILE_FLAGS([-fwrapv],,[$ax_append_compile_cflags_extra])
- AC_LANG_POP
- ])
-
- AC_DEFUN([AX_HARDEN_CXX_COMPILER_FLAGS], [
- AC_REQUIRE_DEFINED([AX_APPEND_COMPILE_FLAGS])
- AC_REQUIRE([AX_HARDEN_CC_COMPILER_FLAGS])
- AC_LANG_PUSH([C++])
-
- ax_append_compile_cxxflags_extra=
- AS_IF([test "$ac_cv_warnings_as_errors" = "yes"],[
- AX_APPEND_COMPILE_FLAGS([-Werror])
- ],[
- AX_APPEND_COMPILE_FLAGS([-Werror],[ax_append_compile_cxxflags_extra])
- ])
-
- AS_IF([test "$ax_enable_debug" = "yes" ], [
- AX_APPEND_COMPILE_FLAGS([-g],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-O0],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-ggdb],,[$ax_append_compile_cxxflags_extra])
- ],[
- AX_APPEND_COMPILE_FLAGS([-D_FORTIFY_SOURCE=2],,[$ax_append_compile_cxxflags_extra])
- ])
-
- AS_IF([test "$ac_cv_vcs_checkout" = "yes" ], [
- AX_APPEND_COMPILE_FLAGS([-Werror],,[$ax_append_compile_cxxflags_extra])
- ],[
- AX_APPEND_COMPILE_FLAGS([-Wno-pragmas],,[$ax_append_compile_cxxflags_extra])
- ])
-
- AX_APPEND_COMPILE_FLAGS([-Wall],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wno-strict-aliasing],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wextra],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wunknown-pragmas],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wthis-test-should-fail],,[$ax_append_compile_cxxflags_extra])
- dnl Anything below this comment please keep sorted.
- AX_APPEND_COMPILE_FLAGS([--param=ssp-buffer-size=1],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Waddress],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Warray-bounds],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wchar-subscripts],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wcomment],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wctor-dtor-privacy],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wfloat-equal],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wformat=2],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wmaybe-uninitialized],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wmissing-field-initializers],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wmissing-noreturn],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wnon-virtual-dtor],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wnormalized=id],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Woverloaded-virtual],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wpointer-arith],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wredundant-decls],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wshadow],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wshorten-64-to-32],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wsign-compare],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wstrict-overflow=1],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wswitch-enum],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wundef],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wc++11-compat],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wunused],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wunused-result],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wunused-variable],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wwrite-strings],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-Wformat-security],,[$ax_append_compile_cxxflags_extra])
- AX_APPEND_COMPILE_FLAGS([-fwrapv],,[$ax_append_compile_cxxflags_extra])
- AC_LANG_POP
- ])
-
- AC_DEFUN([AX_HARDEN_COMPILER_FLAGS], [
- AC_REQUIRE([AX_HARDEN_CXX_COMPILER_FLAGS])
- ])
-
- AC_DEFUN([AX_CC_OTHER_FLAGS], [
- AX_REQUIRE_DEFINED([AX_APPEND_COMPILE_FLAGS])
- AC_REQUIRE([AX_HARDEN_CC_COMPILER_FLAGS])
-
- AC_LANG_PUSH([C])
- AX_APPEND_COMPILE_FLAGS([-pipe],,[$ax_append_compile_cflags_extra])
- AC_LANG_POP
- ])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_print_to_file.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_print_to_file.m4
deleted file mode 100644
index 8aa71120d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_print_to_file.m4
+++ /dev/null
@@ -1,27 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_print_to_file.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_PRINT_TO_FILE([FILE],[DATA])
-#
-# DESCRIPTION
-#
-# Writes the specified data to the specified file.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Tom Howard <tomhoward@users.sf.net>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 8
-
-AC_DEFUN([AX_PRINT_TO_FILE],[
-AC_REQUIRE([AX_FILE_ESCAPES])
-printf "$2" > "$1"
-])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_pthread.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_pthread.m4
deleted file mode 100644
index ada7071f2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_pthread.m4
+++ /dev/null
@@ -1,485 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_pthread.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
-#
-# DESCRIPTION
-#
-# This macro figures out how to build C programs using POSIX threads. It
-# sets the PTHREAD_LIBS output variable to the threads library and linker
-# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
-# flags that are needed. (The user can also force certain compiler
-# flags/libs to be tested by setting these environment variables.)
-#
-# Also sets PTHREAD_CC to any special C compiler that is needed for
-# multi-threaded programs (defaults to the value of CC otherwise). (This
-# is necessary on AIX to use the special cc_r compiler alias.)
-#
-# NOTE: You are assumed to not only compile your program with these flags,
-# but also to link with them as well. For example, you might link with
-# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
-#
-# If you are only building threaded programs, you may wish to use these
-# variables in your default LIBS, CFLAGS, and CC:
-#
-# LIBS="$PTHREAD_LIBS $LIBS"
-# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-# CC="$PTHREAD_CC"
-#
-# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
-# has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to
-# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
-#
-# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
-# PTHREAD_PRIO_INHERIT symbol is defined when compiling with
-# PTHREAD_CFLAGS.
-#
-# ACTION-IF-FOUND is a list of shell commands to run if a threads library
-# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
-# is not found. If ACTION-IF-FOUND is not specified, the default action
-# will define HAVE_PTHREAD.
-#
-# Please let the authors know if this macro fails on any platform, or if
-# you have any other suggestions or comments. This macro was based on work
-# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
-# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
-# Alejandro Forero Cuervo to the autoconf macro repository. We are also
-# grateful for the helpful feedback of numerous users.
-#
-# Updated for Autoconf 2.68 by Daniel Richard G.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
-# Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
-#
-# This program 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 3 of the License, or (at your
-# option) any later version.
-#
-# This program 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, see <https://www.gnu.org/licenses/>.
-#
-# As a special exception, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 24
-
-AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
-AC_DEFUN([AX_PTHREAD], [
-AC_REQUIRE([AC_CANONICAL_HOST])
-AC_REQUIRE([AC_PROG_CC])
-AC_REQUIRE([AC_PROG_SED])
-AC_LANG_PUSH([C])
-ax_pthread_ok=no
-
-# We used to check for pthread.h first, but this fails if pthread.h
-# requires special compiler flags (e.g. on Tru64 or Sequent).
-# It gets checked for in the link test anyway.
-
-# First of all, check if the user has set any of the PTHREAD_LIBS,
-# etcetera environment variables, and if threads linking works using
-# them:
-if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then
- ax_pthread_save_CC="$CC"
- ax_pthread_save_CFLAGS="$CFLAGS"
- ax_pthread_save_LIBS="$LIBS"
- AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"])
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
- LIBS="$PTHREAD_LIBS $LIBS"
- AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS])
- AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes])
- AC_MSG_RESULT([$ax_pthread_ok])
- if test "x$ax_pthread_ok" = "xno"; then
- PTHREAD_LIBS=""
- PTHREAD_CFLAGS=""
- fi
- CC="$ax_pthread_save_CC"
- CFLAGS="$ax_pthread_save_CFLAGS"
- LIBS="$ax_pthread_save_LIBS"
-fi
-
-# We must check for the threads library under a number of different
-# names; the ordering is very important because some systems
-# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
-# libraries is broken (non-POSIX).
-
-# Create a list of thread flags to try. Items starting with a "-" are
-# C compiler flags, and other items are library names, except for "none"
-# which indicates that we try without any flags at all, and "pthread-config"
-# which is a program returning the flags for the Pth emulation library.
-
-ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
-
-# The ordering *is* (sometimes) important. Some notes on the
-# individual items follow:
-
-# pthreads: AIX (must check this before -lpthread)
-# none: in case threads are in libc; should be tried before -Kthread and
-# other compiler flags to prevent continual compiler warnings
-# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
-# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64
-# (Note: HP C rejects this with "bad form for `-t' option")
-# -pthreads: Solaris/gcc (Note: HP C also rejects)
-# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
-# doesn't hurt to check since this sometimes defines pthreads and
-# -D_REENTRANT too), HP C (must be checked before -lpthread, which
-# is present but should not be used directly; and before -mthreads,
-# because the compiler interprets this as "-mt" + "-hreads")
-# -mthreads: Mingw32/gcc, Lynx/gcc
-# pthread: Linux, etcetera
-# --thread-safe: KAI C++
-# pthread-config: use pthread-config program (for GNU Pth library)
-
-case $host_os in
-
- freebsd*)
-
- # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
- # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
-
- ax_pthread_flags="-kthread lthread $ax_pthread_flags"
- ;;
-
- hpux*)
-
- # From the cc(1) man page: "[-mt] Sets various -D flags to enable
- # multi-threading and also sets -lpthread."
-
- ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
- ;;
-
- openedition*)
-
- # IBM z/OS requires a feature-test macro to be defined in order to
- # enable POSIX threads at all, so give the user a hint if this is
- # not set. (We don't define these ourselves, as they can affect
- # other portions of the system API in unpredictable ways.)
-
- AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING],
- [
-# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
- AX_PTHREAD_ZOS_MISSING
-# endif
- ],
- [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])])
- ;;
-
- solaris*)
-
- # On Solaris (at least, for some versions), libc contains stubbed
- # (non-functional) versions of the pthreads routines, so link-based
- # tests will erroneously succeed. (N.B.: The stubs are missing
- # pthread_cleanup_push, or rather a function called by this macro,
- # so we could check for that, but who knows whether they'll stub
- # that too in a future libc.) So we'll check first for the
- # standard Solaris way of linking pthreads (-mt -lpthread).
-
- ax_pthread_flags="-mt,pthread pthread $ax_pthread_flags"
- ;;
-esac
-
-# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC)
-
-AS_IF([test "x$GCC" = "xyes"],
- [ax_pthread_flags="-pthread -pthreads $ax_pthread_flags"])
-
-# The presence of a feature test macro requesting re-entrant function
-# definitions is, on some systems, a strong hint that pthreads support is
-# correctly enabled
-
-case $host_os in
- darwin* | hpux* | linux* | osf* | solaris*)
- ax_pthread_check_macro="_REENTRANT"
- ;;
-
- aix*)
- ax_pthread_check_macro="_THREAD_SAFE"
- ;;
-
- *)
- ax_pthread_check_macro="--"
- ;;
-esac
-AS_IF([test "x$ax_pthread_check_macro" = "x--"],
- [ax_pthread_check_cond=0],
- [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"])
-
-# Are we compiling with Clang?
-
-AC_CACHE_CHECK([whether $CC is Clang],
- [ax_cv_PTHREAD_CLANG],
- [ax_cv_PTHREAD_CLANG=no
- # Note that Autoconf sets GCC=yes for Clang as well as GCC
- if test "x$GCC" = "xyes"; then
- AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG],
- [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */
-# if defined(__clang__) && defined(__llvm__)
- AX_PTHREAD_CC_IS_CLANG
-# endif
- ],
- [ax_cv_PTHREAD_CLANG=yes])
- fi
- ])
-ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
-
-ax_pthread_clang_warning=no
-
-# Clang needs special handling, because older versions handle the -pthread
-# option in a rather... idiosyncratic way
-
-if test "x$ax_pthread_clang" = "xyes"; then
-
- # Clang takes -pthread; it has never supported any other flag
-
- # (Note 1: This will need to be revisited if a system that Clang
- # supports has POSIX threads in a separate library. This tends not
- # to be the way of modern systems, but it's conceivable.)
-
- # (Note 2: On some systems, notably Darwin, -pthread is not needed
- # to get POSIX threads support; the API is always present and
- # active. We could reasonably leave PTHREAD_CFLAGS empty. But
- # -pthread does define _REENTRANT, and while the Darwin headers
- # ignore this macro, third-party headers might not.)
-
- PTHREAD_CFLAGS="-pthread"
- PTHREAD_LIBS=
-
- ax_pthread_ok=yes
-
- # However, older versions of Clang make a point of warning the user
- # that, in an invocation where only linking and no compilation is
- # taking place, the -pthread option has no effect ("argument unused
- # during compilation"). They expect -pthread to be passed in only
- # when source code is being compiled.
- #
- # Problem is, this is at odds with the way Automake and most other
- # C build frameworks function, which is that the same flags used in
- # compilation (CFLAGS) are also used in linking. Many systems
- # supported by AX_PTHREAD require exactly this for POSIX threads
- # support, and in fact it is often not straightforward to specify a
- # flag that is used only in the compilation phase and not in
- # linking. Such a scenario is extremely rare in practice.
- #
- # Even though use of the -pthread flag in linking would only print
- # a warning, this can be a nuisance for well-run software projects
- # that build with -Werror. So if the active version of Clang has
- # this misfeature, we search for an option to squash it.
-
- AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread],
- [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG],
- [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
- # Create an alternate version of $ac_link that compiles and
- # links in two steps (.c -> .o, .o -> exe) instead of one
- # (.c -> exe), because the warning occurs only in the second
- # step
- ax_pthread_save_ac_link="$ac_link"
- ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
- ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"`
- ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
- ax_pthread_save_CFLAGS="$CFLAGS"
- for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
- AS_IF([test "x$ax_pthread_try" = "xunknown"], [break])
- CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
- ac_link="$ax_pthread_save_ac_link"
- AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
- [ac_link="$ax_pthread_2step_ac_link"
- AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
- [break])
- ])
- done
- ac_link="$ax_pthread_save_ac_link"
- CFLAGS="$ax_pthread_save_CFLAGS"
- AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no])
- ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
- ])
-
- case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
- no | unknown) ;;
- *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;;
- esac
-
-fi # $ax_pthread_clang = yes
-
-if test "x$ax_pthread_ok" = "xno"; then
-for ax_pthread_try_flag in $ax_pthread_flags; do
-
- case $ax_pthread_try_flag in
- none)
- AC_MSG_CHECKING([whether pthreads work without any flags])
- ;;
-
- -mt,pthread)
- AC_MSG_CHECKING([whether pthreads work with -mt -lpthread])
- PTHREAD_CFLAGS="-mt"
- PTHREAD_LIBS="-lpthread"
- ;;
-
- -*)
- AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag])
- PTHREAD_CFLAGS="$ax_pthread_try_flag"
- ;;
-
- pthread-config)
- AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
- AS_IF([test "x$ax_pthread_config" = "xno"], [continue])
- PTHREAD_CFLAGS="`pthread-config --cflags`"
- PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
- ;;
-
- *)
- AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag])
- PTHREAD_LIBS="-l$ax_pthread_try_flag"
- ;;
- esac
-
- ax_pthread_save_CFLAGS="$CFLAGS"
- ax_pthread_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
- LIBS="$PTHREAD_LIBS $LIBS"
-
- # Check for various functions. We must include pthread.h,
- # since some functions may be macros. (On the Sequent, we
- # need a special flag -Kthread to make this header compile.)
- # We check for pthread_join because it is in -lpthread on IRIX
- # while pthread_create is in libc. We check for pthread_attr_init
- # due to DEC craziness with -lpthreads. We check for
- # pthread_cleanup_push because it is one of the few pthread
- # functions on Solaris that doesn't have a non-functional libc stub.
- # We try pthread_create on general principles.
-
- AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
-dnl# if $ax_pthread_check_cond
-dnl# error "$ax_pthread_check_macro must be defined"
-dnl# endif
- static void routine(void *a) { a = 0; }
- static void *start_routine(void *a) { return a; }],
- [pthread_t th; pthread_attr_t attr;
- pthread_create(&th, 0, start_routine, 0);
- pthread_join(th, 0);
- pthread_attr_init(&attr);
- pthread_cleanup_push(routine, 0);
- pthread_cleanup_pop(0) /* ; */])],
- [ax_pthread_ok=yes],
- [])
-
- CFLAGS="$ax_pthread_save_CFLAGS"
- LIBS="$ax_pthread_save_LIBS"
-
- AC_MSG_RESULT([$ax_pthread_ok])
- AS_IF([test "x$ax_pthread_ok" = "xyes"], [break])
-
- PTHREAD_LIBS=""
- PTHREAD_CFLAGS=""
-done
-fi
-
-# Various other checks:
-if test "x$ax_pthread_ok" = "xyes"; then
- ax_pthread_save_CFLAGS="$CFLAGS"
- ax_pthread_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
- LIBS="$PTHREAD_LIBS $LIBS"
-
- # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
- AC_CACHE_CHECK([for joinable pthread attribute],
- [ax_cv_PTHREAD_JOINABLE_ATTR],
- [ax_cv_PTHREAD_JOINABLE_ATTR=unknown
- for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
- AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
- [int attr = $ax_pthread_attr; return attr /* ; */])],
- [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break],
- [])
- done
- ])
- AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
- test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
- test "x$ax_pthread_joinable_attr_defined" != "xyes"],
- [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE],
- [$ax_cv_PTHREAD_JOINABLE_ATTR],
- [Define to necessary symbol if this constant
- uses a non-standard name on your system.])
- ax_pthread_joinable_attr_defined=yes
- ])
-
- AC_CACHE_CHECK([whether more special flags are required for pthreads],
- [ax_cv_PTHREAD_SPECIAL_FLAGS],
- [ax_cv_PTHREAD_SPECIAL_FLAGS=no
- case $host_os in
- solaris*)
- ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS"
- ;;
- esac
- ])
- AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
- test "x$ax_pthread_special_flags_added" != "xyes"],
- [PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
- ax_pthread_special_flags_added=yes])
-
- AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
- [ax_cv_PTHREAD_PRIO_INHERIT],
- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
- [[int i = PTHREAD_PRIO_INHERIT;]])],
- [ax_cv_PTHREAD_PRIO_INHERIT=yes],
- [ax_cv_PTHREAD_PRIO_INHERIT=no])
- ])
- AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
- test "x$ax_pthread_prio_inherit_defined" != "xyes"],
- [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])
- ax_pthread_prio_inherit_defined=yes
- ])
-
- CFLAGS="$ax_pthread_save_CFLAGS"
- LIBS="$ax_pthread_save_LIBS"
-
- # More AIX lossage: compile with *_r variant
- if test "x$GCC" != "xyes"; then
- case $host_os in
- aix*)
- AS_CASE(["x/$CC"],
- [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
- [#handle absolute path differently from PATH based program lookup
- AS_CASE(["x$CC"],
- [x/*],
- [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
- [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
- ;;
- esac
- fi
-fi
-
-test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
-
-AC_SUBST([PTHREAD_LIBS])
-AC_SUBST([PTHREAD_CFLAGS])
-AC_SUBST([PTHREAD_CC])
-
-# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
-if test "x$ax_pthread_ok" = "xyes"; then
- ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
- :
-else
- ax_pthread_ok=no
- $2
-fi
-AC_LANG_POP
-])dnl AX_PTHREAD
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_require_defined.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_require_defined.m4
deleted file mode 100644
index 17c3eab7d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_require_defined.m4
+++ /dev/null
@@ -1,37 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_require_defined.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_REQUIRE_DEFINED(MACRO)
-#
-# DESCRIPTION
-#
-# AX_REQUIRE_DEFINED is a simple helper for making sure other macros have
-# been defined and thus are available for use. This avoids random issues
-# where a macro isn't expanded. Instead the configure script emits a
-# non-fatal:
-#
-# ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found
-#
-# It's like AC_REQUIRE except it doesn't expand the required macro.
-#
-# Here's an example:
-#
-# AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG])
-#
-# LICENSE
-#
-# Copyright (c) 2014 Mike Frysinger <vapier@gentoo.org>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 2
-
-AC_DEFUN([AX_REQUIRE_DEFINED], [dnl
- m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])])
-])dnl AX_REQUIRE_DEFINED
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_tls.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_tls.m4
deleted file mode 100644
index 3f6b5e10b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_tls.m4
+++ /dev/null
@@ -1,92 +0,0 @@
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_tls.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_TLS([action-if-found], [action-if-not-found])
-#
-# DESCRIPTION
-#
-# Provides a test for the compiler support of thread local storage (TLS)
-# extensions. Defines TLS if it is found. Currently knows about GCC/ICC
-# and MSVC. I think SunPro uses the same as GCC, and Borland apparently
-# supports either.
-#
-# LICENSE
-#
-# Copyright (c) 2008 Alan Woodland <ajw05@aber.ac.uk>
-# Copyright (c) 2010 Diego Elio Petteno` <flameeyes@gmail.com>
-#
-# This program 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 3 of the License, or (at your
-# option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-#
-# As a special exception, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 11
-
-# Define m4_ifblank and m4_ifnblank macros from introduced in
-# autotools 2.64 m4sugar.m4 if using an earlier autotools.
-
-ifdef([m4_ifblank], [], [
- m4_define([m4_ifblank],
- [m4_if(m4_translit([[$1]], [ ][ ][
-]), [], [$2], [$3])])
- ])
-
-
-ifdef([m4_ifnblank], [], [
- m4_define([m4_ifnblank],
- [m4_if(m4_translit([[$1]], [ ][ ][
-]), [], [$3], [$2])])
- ])
-
-AC_DEFUN([AX_TLS], [
- AC_MSG_CHECKING(for thread local storage (TLS) class)
- AC_CACHE_VAL(ac_cv_tls, [
- ax_tls_keywords="__thread __declspec(thread) none"
- for ax_tls_keyword in $ax_tls_keywords; do
- AS_CASE([$ax_tls_keyword],
- [none], [ac_cv_tls=none ; break],
- [AC_TRY_COMPILE(
- [#include <stdlib.h>
- static void
- foo(void) {
- static ] $ax_tls_keyword [ int bar;
- exit(1);
- }],
- [],
- [ac_cv_tls=$ax_tls_keyword ; break],
- ac_cv_tls=none
- )])
- done
- ])
- AC_MSG_RESULT($ac_cv_tls)
-
- AS_IF([test "$ac_cv_tls" != "none"],
- AC_DEFINE_UNQUOTED([TLS], $ac_cv_tls, [If the compiler supports a TLS storage class define it to that here])
- m4_ifnblank([$1], [$1]),
- m4_ifnblank([$2], [$2])
- )
-])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_vcs_checkout.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ax_vcs_checkout.m4
deleted file mode 100644
index 4636b58ed..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ax_vcs_checkout.m4
+++ /dev/null
@@ -1,78 +0,0 @@
-# ===========================================================================
-# http://
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_VCS_CHECKOUT
-#
-# DESCRIPTION
-#
-# Discover whether or not we are operating with a tree which
-# has been checked out of a version control system.
-#
-#
-# LICENSE
-#
-# Copyright (C) 2012 Brian Aker
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#
-# * The names of its contributors may not be used to endorse or
-# promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#serial 6.1
-#
-# Added tweak for git. The base repo's .git is a directory. Any worktree's
-# .git is a file. Use -e to check for either dir or file.
-
-AC_DEFUN([AX_VCS_SYSTEM],
- [AC_PREREQ([2.63])dnl
- AC_CACHE_CHECK([for vcs system], [ac_cv_vcs_system],
- [ac_cv_vcs_system="none"
- AS_IF([test -d ".bzr"],[ac_cv_vcs_system="bazaar"])
- AS_IF([test -d ".svn"],[ac_cv_vcs_system="svn"])
- AS_IF([test -d ".hg"],[ac_cv_vcs_system="mercurial"])
- AS_IF([test -e ".git"],[ac_cv_vcs_system="git"])
- ])
- AC_DEFINE_UNQUOTED([VCS_SYSTEM],["$ac_cv_vcs_system"],[VCS system])
- ])
-
-AC_DEFUN([AX_VCS_CHECKOUT],
- [AC_PREREQ([2.63])dnl
- AC_REQUIRE([AX_VCS_SYSTEM])
- AC_CACHE_CHECK([for vcs checkout],[ac_cv_vcs_checkout],
- [AS_IF([test "x$ac_cv_vcs_system" != "xnone"],
- [ac_cv_vcs_checkout=yes],
- [ac_cv_vcs_checkout=no])
- ])
-
- AM_CONDITIONAL([IS_VCS_CHECKOUT],[test "x$ac_cv_vcs_checkout" = "xyes"])
- AS_IF([test "x$ac_cv_vcs_checkout" = "xyes"],
- [AC_DEFINE([VCS_CHECKOUT],[1],[Define if the code was built from VCS.])],
- [AC_DEFINE([VCS_CHECKOUT],[0],[Define if the code was built from VCS.])])
- ])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/hexversion.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/hexversion.m4
deleted file mode 100644
index 8d26155e5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/hexversion.m4
+++ /dev/null
@@ -1,6 +0,0 @@
-AC_DEFUN([CREATE_HEX_VERSION],[
-
- HEX_VERSION=`echo $VERSION | sed 's|[\-a-z0-9]*$||' | \
- awk -F. '{printf "0x%0.2d%0.3d%0.3d", $[]1, $[]2, $[]3}'`
- AC_SUBST([HEX_VERSION])
-])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/lib_socket_nsl.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/lib_socket_nsl.m4
deleted file mode 100644
index e786e61c5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/lib_socket_nsl.m4
+++ /dev/null
@@ -1,25 +0,0 @@
-dnl @synopsis LIB_SOCKET_NSL
-dnl
-dnl This macro figures out what libraries are required on this platform
-dnl to link sockets programs.
-dnl
-dnl The common cases are not to need any extra libraries, or to need
-dnl -lsocket and -lnsl. We need to avoid linking with libnsl unless we
-dnl need it, though, since on some OSes where it isn't necessary it
-dnl will totally break networking. Unisys also includes gethostbyname()
-dnl in libsocket but needs libnsl for socket().
-dnl
-dnl @category Misc
-dnl @author Russ Allbery <rra@stanford.edu>
-dnl @author Stepan Kasal <kasal@ucw.cz>
-dnl @author Warren Young <warren@etr-usa.com>
-dnl @version 2005-09-06
-dnl @license AllPermissive
-
-AC_DEFUN([LIB_SOCKET_NSL],
-[
- AC_SEARCH_LIBS([gethostbyname], [nsl])
- AC_SEARCH_LIBS([socket], [socket], [], [
- AC_CHECK_LIB([socket], [socket], [LIBS="-lsocket -lnsl $LIBS"],
- [], [-lnsl])])
-])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/libtool.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/libtool.m4
deleted file mode 100644
index a3bc337b7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/libtool.m4
+++ /dev/null
@@ -1,8369 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-#
-# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-m4_define([_LT_COPYING], [dnl
-# Copyright (C) 2014 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions. There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# GNU Libtool 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 of the License, or
-# (at your option) any later version.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program or library that is built
-# using GNU Libtool, you may include this file under the same
-# distribution terms that you use for the rest of that program.
-#
-# GNU Libtool 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, see <http://www.gnu.org/licenses/>.
-])
-
-# serial 58 LT_INIT
-
-
-# LT_PREREQ(VERSION)
-# ------------------
-# Complain and exit if this libtool version is less that VERSION.
-m4_defun([LT_PREREQ],
-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
- [m4_default([$3],
- [m4_fatal([Libtool version $1 or higher is required],
- 63)])],
- [$2])])
-
-
-# _LT_CHECK_BUILDDIR
-# ------------------
-# Complain if the absolute build directory name contains unusual characters
-m4_defun([_LT_CHECK_BUILDDIR],
-[case `pwd` in
- *\ * | *\ *)
- AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-esac
-])
-
-
-# LT_INIT([OPTIONS])
-# ------------------
-AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
-AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS=$ltmain
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])# LT_INIT
-
-# Old names:
-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-
-
-# _LT_PREPARE_CC_BASENAME
-# -----------------------
-m4_defun([_LT_PREPARE_CC_BASENAME], [
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-func_cc_basename ()
-{
- for cc_temp in @S|@*""; do
- case $cc_temp in
- compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
- distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
- \-*) ;;
- *) break;;
- esac
- done
- func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-}
-])# _LT_PREPARE_CC_BASENAME
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME,
-# but that macro is also expanded into generated libtool script, which
-# arranges for $SED and $ECHO to be set by different means.
-m4_defun([_LT_CC_BASENAME],
-[m4_require([_LT_PREPARE_CC_BASENAME])dnl
-AC_REQUIRE([_LT_DECL_SED])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-func_cc_basename $1
-cc_basename=$func_cc_basename_result
-])
-
-
-# _LT_FILEUTILS_DEFAULTS
-# ----------------------
-# It is okay to use these file commands and assume they have been set
-# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'.
-m4_defun([_LT_FILEUTILS_DEFAULTS],
-[: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-])# _LT_FILEUTILS_DEFAULTS
-
-
-# _LT_SETUP
-# ---------
-m4_defun([_LT_SETUP],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-
-_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
-dnl
-_LT_DECL([], [host_alias], [0], [The host system])dnl
-_LT_DECL([], [host], [0])dnl
-_LT_DECL([], [host_os], [0])dnl
-dnl
-_LT_DECL([], [build_alias], [0], [The build system])dnl
-_LT_DECL([], [build], [0])dnl
-_LT_DECL([], [build_os], [0])dnl
-dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-test -z "$LN_S" && LN_S="ln -s"
-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-dnl
-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
-m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_WITH_SYSROOT])dnl
-m4_require([_LT_CMD_TRUNCATE])dnl
-
-_LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options that allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}"; then
- setopt NO_GLOB_SUBST
-fi
-])
-if test -n "${ZSH_VERSION+set}"; then
- setopt NO_GLOB_SUBST
-fi
-
-_LT_CHECK_OBJDIR
-
-m4_require([_LT_TAG_COMPILER])dnl
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test set != "${COLLECT_NAMES+set}"; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a '.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-old_CC=$CC
-old_CFLAGS=$CFLAGS
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- _LT_PATH_MAGIC
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-LT_SUPPORTED_TAG([CC])
-_LT_LANG_C_CONFIG
-_LT_LANG_DEFAULT_CONFIG
-_LT_CONFIG_COMMANDS
-])# _LT_SETUP
-
-
-# _LT_PREPARE_SED_QUOTE_VARS
-# --------------------------
-# Define a few sed substitution that help us do robust quoting.
-m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
-[# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-])
-
-# _LT_PROG_LTMAIN
-# ---------------
-# Note that this code is called both from 'configure', and 'config.status'
-# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
-# 'config.status' has no value for ac_aux_dir unless we are using Automake,
-# so we pass a copy along to make sure it has a sensible value anyway.
-m4_defun([_LT_PROG_LTMAIN],
-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain=$ac_aux_dir/ltmain.sh
-])# _LT_PROG_LTMAIN
-
-
-## ------------------------------------- ##
-## Accumulate code for creating libtool. ##
-## ------------------------------------- ##
-
-# So that we can recreate a full libtool script including additional
-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the 'libtool'
-# label.
-
-
-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-# ----------------------------------------
-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL_INIT],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-
-
-# _LT_CONFIG_LIBTOOL([COMMANDS])
-# ------------------------------
-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-
-
-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-# -----------------------------------------------------
-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-[_LT_CONFIG_LIBTOOL([$1])
-_LT_CONFIG_LIBTOOL_INIT([$2])
-])
-
-
-# _LT_FORMAT_COMMENT([COMMENT])
-# -----------------------------
-# Add leading comment marks to the start of each line, and a trailing
-# full-stop to the whole comment if one is not present already.
-m4_define([_LT_FORMAT_COMMENT],
-[m4_ifval([$1], [
-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
- [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-)])
-
-
-
-## ------------------------ ##
-## FIXME: Eliminate VARNAME ##
-## ------------------------ ##
-
-
-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-# -------------------------------------------------------------------
-# CONFIGNAME is the name given to the value in the libtool script.
-# VARNAME is the (base) name used in the configure script.
-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-# VARNAME. Any other value will be used directly.
-m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
- [m4_ifval([$1], [$1], [$2])])
- lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
- m4_ifval([$4],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
- lt_dict_add_subkey([lt_decl_dict], [$2],
- [tagged?], [m4_ifval([$5], [yes], [no])])])
-])
-
-
-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-# --------------------------------------------------------
-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-
-
-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_tag_varnames],
-[_lt_decl_filter([tagged?], [yes], $@)])
-
-
-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-# ---------------------------------------------------------
-m4_define([_lt_decl_filter],
-[m4_case([$#],
- [0], [m4_fatal([$0: too few arguments: $#])],
- [1], [m4_fatal([$0: too few arguments: $#: $1])],
- [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
- [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
- [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-])
-
-
-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-# --------------------------------------------------
-m4_define([lt_decl_quote_varnames],
-[_lt_decl_filter([value], [1], $@)])
-
-
-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_dquote_varnames],
-[_lt_decl_filter([value], [2], $@)])
-
-
-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_varnames_tagged],
-[m4_assert([$# <= 2])dnl
-_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
- m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-m4_define([_lt_decl_varnames_tagged],
-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-
-
-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_all_varnames],
-[_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_if([$2], [],
- m4_quote(lt_decl_varnames),
- m4_quote(m4_shift($@))))[]dnl
-])
-m4_define([_lt_decl_all_varnames],
-[lt_join($@, lt_decl_varnames_tagged([$1],
- lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-])
-
-
-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-# ------------------------------------
-# Quote a variable value, and forward it to 'config.status' so that its
-# declaration there will have the same value as in 'configure'. VARNAME
-# must have a single quote delimited value for this to work.
-m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
-
-
-# _LT_CONFIG_STATUS_DECLARATIONS
-# ------------------------------
-# We delimit libtool config variables with single quotes, so when
-# we write them to config.status, we have to be sure to quote all
-# embedded single quotes properly. In configure, this macro expands
-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-#
-# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
- [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAGS
-# ----------------
-# Output comment and list of tags supported by the script
-m4_defun([_LT_LIBTOOL_TAGS],
-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags='_LT_TAGS'dnl
-])
-
-
-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-# -----------------------------------
-# Extract the dictionary values for VARNAME (optionally with TAG) and
-# expand to a commented shell variable setting:
-#
-# # Some comment about what VAR is for.
-# visible_name=$lt_internal_name
-m4_define([_LT_LIBTOOL_DECLARE],
-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
- [description])))[]dnl
-m4_pushdef([_libtool_name],
- m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
- [0], [_libtool_name=[$]$1],
- [1], [_libtool_name=$lt_[]$1],
- [2], [_libtool_name=$lt_[]$1],
- [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-])
-
-
-# _LT_LIBTOOL_CONFIG_VARS
-# -----------------------
-# Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool'
-# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
-# section) are produced by _LT_LIBTOOL_TAG_VARS.
-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-[m4_foreach([_lt_var],
- m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAG_VARS(TAG)
-# -------------------------
-m4_define([_LT_LIBTOOL_TAG_VARS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-
-
-# _LT_TAGVAR(VARNAME, [TAGNAME])
-# ------------------------------
-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-
-
-# _LT_CONFIG_COMMANDS
-# -------------------
-# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
-# variables for single and double quote escaping we saved from calls
-# to _LT_DECL, we can put quote escaped variables declarations
-# into 'config.status', and then the shell code to quote escape them in
-# for loops in 'config.status'. Finally, any additional code accumulated
-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-m4_defun([_LT_CONFIG_COMMANDS],
-[AC_PROVIDE_IFELSE([LT_OUTPUT],
- dnl If the libtool generation code has been placed in $CONFIG_LT,
- dnl instead of duplicating it all over again into config.status,
- dnl then we will have config.status run $CONFIG_LT later, so it
- dnl needs to know what name is stored there:
- [AC_CONFIG_COMMANDS([libtool],
- [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
- dnl If the libtool generation code is destined for config.status,
- dnl expand the accumulated commands and init code now:
- [AC_CONFIG_COMMANDS([libtool],
- [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-])#_LT_CONFIG_COMMANDS
-
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-[
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-_LT_CONFIG_STATUS_DECLARATIONS
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$[]1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_quote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_dquote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-_LT_OUTPUT_LIBTOOL_INIT
-])
-
-# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
-# ------------------------------------
-# Generate a child script FILE with all initialization necessary to
-# reuse the environment learned by the parent script, and make the
-# file executable. If COMMENT is supplied, it is inserted after the
-# '#!' sequence but before initialization text begins. After this
-# macro, additional text can be appended to FILE to form the body of
-# the child script. The macro ends with non-zero status if the
-# file could not be fully written (such as if the disk is full).
-m4_ifdef([AS_INIT_GENERATED],
-[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
-[m4_defun([_LT_GENERATED_FILE_INIT],
-[m4_require([AS_PREPARE])]dnl
-[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
-[lt_write_fail=0
-cat >$1 <<_ASEOF || lt_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-$2
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$1 <<\_ASEOF || lt_write_fail=1
-AS_SHELL_SANITIZE
-_AS_PREPARE
-exec AS_MESSAGE_FD>&1
-_ASEOF
-test 0 = "$lt_write_fail" && chmod +x $1[]dnl
-m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
-
-# LT_OUTPUT
-# ---------
-# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), incase it is used in configure for compilation
-# tests.
-AC_DEFUN([LT_OUTPUT],
-[: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
-[# Run this file to recreate a libtool stub with the current configuration.])
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-lt_cl_silent=false
-exec AS_MESSAGE_LOG_FD>>config.log
-{
- echo
- AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-'$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
-
-Report bugs to <bug-libtool@gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2011 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test 0 != $[#]
-do
- case $[1] in
- --version | --v* | -V )
- echo "$lt_cl_version"; exit 0 ;;
- --help | --h* | -h )
- echo "$lt_cl_help"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --quiet | --q* | --silent | --s* | -q )
- lt_cl_silent=: ;;
-
- -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try '$[0] --help' for more information.]) ;;
-
- *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try '$[0] --help' for more information.]) ;;
- esac
- shift
-done
-
-if $lt_cl_silent; then
- exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure. Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-lt_cl_success=:
-test yes = "$silent" &&
- lt_config_lt_args="$lt_config_lt_args --quiet"
-exec AS_MESSAGE_LOG_FD>/dev/null
-$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-exec AS_MESSAGE_LOG_FD>>config.log
-$lt_cl_success || AS_EXIT(1)
-])# LT_OUTPUT
-
-
-# _LT_CONFIG(TAG)
-# ---------------
-# If TAG is the built-in tag, create an initial libtool script with a
-# default configuration from the untagged config vars. Otherwise add code
-# to config.status for appending the configuration named by TAG from the
-# matching tagged config vars.
-m4_defun([_LT_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_CONFIG_SAVE_COMMANDS([
- m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
- m4_if(_LT_TAG, [C], [
- # See if we are running on zsh, and set the options that allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}"; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile=${ofile}T
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-# Generated automatically by $as_me ($PACKAGE) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-
-# Provide generalized library-building support services.
-# Written by Gordon Matzigkeit, 1996
-
-_LT_COPYING
-_LT_LIBTOOL_TAGS
-
-# Configured defaults for sys_lib_dlsearch_path munging.
-: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
-
-# ### BEGIN LIBTOOL CONFIG
-_LT_LIBTOOL_CONFIG_VARS
-_LT_LIBTOOL_TAG_VARS
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- cat <<'_LT_EOF' >> "$cfgfile"
-
-# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
-
-_LT_PREPARE_MUNGE_PATH_LIST
-_LT_PREPARE_CC_BASENAME
-
-# ### END FUNCTIONS SHARED WITH CONFIGURE
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test set != "${COLLECT_NAMES+set}"; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
- _LT_PROG_LTMAIN
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-],
-[cat <<_LT_EOF >> "$ofile"
-
-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-dnl in a comment (ie after a #).
-# ### BEGIN LIBTOOL TAG CONFIG: $1
-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-# ### END LIBTOOL TAG CONFIG: $1
-_LT_EOF
-])dnl /m4_if
-],
-[m4_if([$1], [], [
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- RM='$RM'
- ofile='$ofile'], [])
-])dnl /_LT_CONFIG_SAVE_COMMANDS
-])# _LT_CONFIG
-
-
-# LT_SUPPORTED_TAG(TAG)
-# ---------------------
-# Trace this macro to discover what tags are supported by the libtool
-# --tag option, using:
-# autoconf --trace 'LT_SUPPORTED_TAG:$1'
-AC_DEFUN([LT_SUPPORTED_TAG], [])
-
-
-# C support is built-in for now
-m4_define([_LT_LANG_C_enabled], [])
-m4_define([_LT_TAGS], [])
-
-
-# LT_LANG(LANG)
-# -------------
-# Enable libtool support for the given language if not already enabled.
-AC_DEFUN([LT_LANG],
-[AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
- [C], [_LT_LANG(C)],
- [C++], [_LT_LANG(CXX)],
- [Go], [_LT_LANG(GO)],
- [Java], [_LT_LANG(GCJ)],
- [Fortran 77], [_LT_LANG(F77)],
- [Fortran], [_LT_LANG(FC)],
- [Windows Resource], [_LT_LANG(RC)],
- [m4_ifdef([_LT_LANG_]$1[_CONFIG],
- [_LT_LANG($1)],
- [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])# LT_LANG
-
-
-# _LT_LANG(LANGNAME)
-# ------------------
-m4_defun([_LT_LANG],
-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
- [LT_SUPPORTED_TAG([$1])dnl
- m4_append([_LT_TAGS], [$1 ])dnl
- m4_define([_LT_LANG_]$1[_enabled], [])dnl
- _LT_LANG_$1_CONFIG($1)])dnl
-])# _LT_LANG
-
-
-m4_ifndef([AC_PROG_GO], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_GO. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-m4_defun([AC_PROG_GO],
-[AC_LANG_PUSH(Go)dnl
-AC_ARG_VAR([GOC], [Go compiler command])dnl
-AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
-_AC_ARG_VAR_LDFLAGS()dnl
-AC_CHECK_TOOL(GOC, gccgo)
-if test -z "$GOC"; then
- if test -n "$ac_tool_prefix"; then
- AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
- fi
-fi
-if test -z "$GOC"; then
- AC_CHECK_PROG(GOC, gccgo, gccgo, false)
-fi
-])#m4_defun
-])#m4_ifndef
-
-
-# _LT_LANG_DEFAULT_CONFIG
-# -----------------------
-m4_defun([_LT_LANG_DEFAULT_CONFIG],
-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [LT_LANG(CXX)],
- [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_F77],
- [LT_LANG(F77)],
- [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_FC],
- [LT_LANG(FC)],
- [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-
-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-dnl pulling things in needlessly.
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
- [LT_LANG(GCJ)],
- [m4_ifdef([AC_PROG_GCJ],
- [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([A][M_PROG_GCJ],
- [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([LT_PROG_GCJ],
- [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
-AC_PROVIDE_IFELSE([AC_PROG_GO],
- [LT_LANG(GO)],
- [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
-
-AC_PROVIDE_IFELSE([LT_PROG_RC],
- [LT_LANG(RC)],
- [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
-
-# Obsolete macros:
-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-dnl AC_DEFUN([AC_LIBTOOL_RC], [])
-
-
-# _LT_TAG_COMPILER
-# ----------------
-m4_defun([_LT_TAG_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_TAG_COMPILER
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-m4_defun([_LT_COMPILER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-m4_defun([_LT_LINKER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# -------------------------
-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
- case $host_os in
- rhapsody* | darwin*)
- AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
- AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
- AC_CHECK_TOOL([LIPO], [lipo], [:])
- AC_CHECK_TOOL([OTOOL], [otool], [:])
- AC_CHECK_TOOL([OTOOL64], [otool64], [:])
- _LT_DECL([], [DSYMUTIL], [1],
- [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
- _LT_DECL([], [NMEDIT], [1],
- [Tool to change global to local symbols on Mac OS X])
- _LT_DECL([], [LIPO], [1],
- [Tool to manipulate fat objects and archives on Mac OS X])
- _LT_DECL([], [OTOOL], [1],
- [ldd/readelf like tool for Mach-O binaries on Mac OS X])
- _LT_DECL([], [OTOOL64], [1],
- [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-
- AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
- [lt_cv_apple_cc_single_mod=no
- if test -z "$LT_MULTI_MODULE"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- # If there is a non-empty error log, and "single_module"
- # appears in it, assume the flag caused a linker warning
- if test -s conftest.err && $GREP single_module conftest.err; then
- cat conftest.err >&AS_MESSAGE_LOG_FD
- # Otherwise, if the output was created with a 0 exit code from
- # the compiler, it worked.
- elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi])
-
- AC_CACHE_CHECK([for -exported_symbols_list linker flag],
- [lt_cv_ld_exported_symbols_list],
- [lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [lt_cv_ld_exported_symbols_list=yes],
- [lt_cv_ld_exported_symbols_list=no])
- LDFLAGS=$save_LDFLAGS
- ])
-
- AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
- [lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
- echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
- $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
- echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
- $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -s conftest.err && $GREP force_load conftest.err; then
- cat conftest.err >&AS_MESSAGE_LOG_FD
- elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
- ])
- case $host_os in
- rhapsody* | darwin1.[[012]])
- _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
- _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
- 10.[[012]][[,.]]*)
- _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test yes = "$lt_cv_apple_cc_single_mod"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test yes = "$lt_cv_ld_exported_symbols_list"; then
- _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
- fi
- if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-])
-
-
-# _LT_DARWIN_LINKER_FEATURES([TAG])
-# ---------------------------------
-# Checks for linker and compiler features on darwin
-m4_defun([_LT_DARWIN_LINKER_FEATURES],
-[
- m4_require([_LT_REQUIRED_DARWIN_CHECKS])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_automatic, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- if test yes = "$lt_cv_ld_force_load"; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
- m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
- [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes])
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=''
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined
- case $cc_basename in
- ifort*|nagfor*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test yes = "$_lt_dar_can_shared"; then
- output_verbose_link_cmd=func_echo_all
- _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
- _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
- _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
- m4_if([$1], [CXX],
-[ if test yes != "$lt_cv_apple_cc_single_mod"; then
- _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
- fi
-],[])
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
-])
-
-# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
-# ----------------------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-# Store the results from the different compilers for each TAGNAME.
-# Allow to override them for all tags through lt_cv_aix_libpath.
-m4_defun([_LT_SYS_MODULE_PATH_AIX],
-[m4_require([_LT_DECL_SED])dnl
-if test set = "${lt_cv_aix_libpath+set}"; then
- aix_libpath=$lt_cv_aix_libpath
-else
- AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
- [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
- lt_aix_libpath_sed='[
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }]'
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi],[])
- if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib
- fi
- ])
- aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
-fi
-])# _LT_SYS_MODULE_PATH_AIX
-
-
-# _LT_SHELL_INIT(ARG)
-# -------------------
-m4_define([_LT_SHELL_INIT],
-[m4_divert_text([M4SH-INIT], [$1
-])])# _LT_SHELL_INIT
-
-
-
-# _LT_PROG_ECHO_BACKSLASH
-# -----------------------
-# Find how we can fake an echo command that does not interpret backslash.
-# In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script that will find a shell with a builtin
-# printf (that we can use as an echo command).
-m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-AC_MSG_CHECKING([how to print strings])
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$[]1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-case $ECHO in
- printf*) AC_MSG_RESULT([printf]) ;;
- print*) AC_MSG_RESULT([print -r]) ;;
- *) AC_MSG_RESULT([cat]) ;;
-esac
-
-m4_ifdef([_AS_DETECT_SUGGESTED],
-[_AS_DETECT_SUGGESTED([
- test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test "X`printf %s $ECHO`" = "X$ECHO" \
- || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
-
-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
-])# _LT_PROG_ECHO_BACKSLASH
-
-
-# _LT_WITH_SYSROOT
-# ----------------
-AC_DEFUN([_LT_WITH_SYSROOT],
-[AC_MSG_CHECKING([for sysroot])
-AC_ARG_WITH([sysroot],
-[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
- [Search for dependent libraries within DIR (or the compiler's sysroot
- if not specified).])],
-[], [with_sysroot=no])
-
-dnl lt_sysroot will always be passed unquoted. We quote it here
-dnl in case the user passed a directory name.
-lt_sysroot=
-case $with_sysroot in #(
- yes)
- if test yes = "$GCC"; then
- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
- fi
- ;; #(
- /*)
- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
- ;; #(
- no|'')
- ;; #(
- *)
- AC_MSG_RESULT([$with_sysroot])
- AC_MSG_ERROR([The sysroot must be an absolute path.])
- ;;
-esac
-
- AC_MSG_RESULT([${lt_sysroot:-no}])
-_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-[dependent libraries, and where our libraries should be installed.])])
-
-# _LT_ENABLE_LOCK
-# ---------------
-m4_defun([_LT_ENABLE_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
- [AS_HELP_STRING([--disable-libtool-lock],
- [avoid locking (might break parallel builds)])])
-test no = "$enable_libtool_lock" || enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out what ABI is being produced by ac_compile, and set mode
- # options accordingly.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE=32
- ;;
- *ELF-64*)
- HPUX_IA64_MODE=64
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out what ABI is being produced by ac_compile, and set linker
- # options accordingly.
- echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- if test yes = "$lt_cv_prog_gnu_ld"; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-mips64*-*linux*)
- # Find out what ABI is being produced by ac_compile, and set linker
- # options accordingly.
- echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- emul=elf
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- emul="${emul}32"
- ;;
- *64-bit*)
- emul="${emul}64"
- ;;
- esac
- case `/usr/bin/file conftest.$ac_objext` in
- *MSB*)
- emul="${emul}btsmip"
- ;;
- *LSB*)
- emul="${emul}ltsmip"
- ;;
- esac
- case `/usr/bin/file conftest.$ac_objext` in
- *N32*)
- emul="${emul}n32"
- ;;
- esac
- LD="${LD-ld} -m $emul"
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out what ABI is being produced by ac_compile, and set linker
- # options accordingly. Note that the listed cases only cover the
- # situations where additional linker options are needed (such as when
- # doing 32-bit compilation for a host where ld defaults to 64-bit, or
- # vice versa); the common cases where no linker options are needed do
- # not appear in the list.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- case `/usr/bin/file conftest.o` in
- *x86-64*)
- LD="${LD-ld} -m elf32_x86_64"
- ;;
- *)
- LD="${LD-ld} -m elf_i386"
- ;;
- esac
- ;;
- powerpc64le-*linux*)
- LD="${LD-ld} -m elf32lppclinux"
- ;;
- powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- powerpcle-*linux*)
- LD="${LD-ld} -m elf64lppc"
- ;;
- powerpc-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -belf"
- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
- [AC_LANG_PUSH(C)
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
- AC_LANG_POP])
- if test yes != "$lt_cv_cc_needs_belf"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS=$SAVE_CFLAGS
- fi
- ;;
-*-*solaris*)
- # Find out what ABI is being produced by ac_compile, and set linker
- # options accordingly.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*)
- case $host in
- i?86-*-solaris*|x86_64-*-solaris*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- sparc*-*-solaris*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
- LD=${LD-ld}_sol2
- fi
- ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks=$enable_libtool_lock
-])# _LT_ENABLE_LOCK
-
-
-# _LT_PROG_AR
-# -----------
-m4_defun([_LT_PROG_AR],
-[AC_CHECK_TOOLS(AR, [ar], false)
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
-
-AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
- [lt_cv_ar_at_file=no
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
- [echo conftest.$ac_objext > conftest.lst
- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
- AC_TRY_EVAL([lt_ar_try])
- if test 0 -eq "$ac_status"; then
- # Ensure the archiver fails upon bogus file names.
- rm -f conftest.$ac_objext libconftest.a
- AC_TRY_EVAL([lt_ar_try])
- if test 0 -ne "$ac_status"; then
- lt_cv_ar_at_file=@
- fi
- fi
- rm -f conftest.* libconftest.a
- ])
- ])
-
-if test no = "$lt_cv_ar_at_file"; then
- archiver_list_spec=
-else
- archiver_list_spec=$lt_cv_ar_at_file
-fi
-_LT_DECL([], [archiver_list_spec], [1],
- [How to feed a file listing to the archiver])
-])# _LT_PROG_AR
-
-
-# _LT_CMD_OLD_ARCHIVE
-# -------------------
-m4_defun([_LT_CMD_OLD_ARCHIVE],
-[_LT_PROG_AR
-
-AC_CHECK_TOOL(STRIP, strip, :)
-test -z "$STRIP" && STRIP=:
-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-test -z "$RANLIB" && RANLIB=:
-_LT_DECL([], [RANLIB], [1],
- [Commands used to install an old-style archive])
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- bitrig* | openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-_LT_DECL([], [old_postinstall_cmds], [2])
-_LT_DECL([], [old_postuninstall_cmds], [2])
-_LT_TAGDECL([], [old_archive_cmds], [2],
- [Commands used to build an old-style archive])
-_LT_DECL([], [lock_old_archive_extraction], [0],
- [Whether to use a lock for old archive extraction])
-])# _LT_CMD_OLD_ARCHIVE
-
-
-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([_LT_COMPILER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- fi
- $RM conftest*
-])
-
-if test yes = "[$]$2"; then
- m4_if([$5], , :, [$5])
-else
- m4_if([$6], , :, [$6])
-fi
-])# _LT_COMPILER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-
-
-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------
-# Check whether the given linker option works
-AC_DEFUN([_LT_LINKER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS $3"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&AS_MESSAGE_LOG_FD
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- else
- $2=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS=$save_LDFLAGS
-])
-
-if test yes = "[$]$2"; then
- m4_if([$4], , :, [$4])
-else
- m4_if([$5], , :, [$5])
-fi
-])# _LT_LINKER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-
-
-# LT_CMD_MAX_LEN
-#---------------
-AC_DEFUN([LT_CMD_MAX_LEN],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
- i=0
- teststring=ABCD
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- os2*)
- # The test takes a long time on OS/2.
- lt_cv_sys_max_cmd_len=8192
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len" && \
- test undefined != "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test X`env echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test 17 != "$i" # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-])
-if test -n "$lt_cv_sys_max_cmd_len"; then
- AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
- AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
- [What is the maximum length of a command?])
-])# LT_CMD_MAX_LEN
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-
-
-# _LT_HEADER_DLFCN
-# ----------------
-m4_defun([_LT_HEADER_DLFCN],
-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-])# _LT_HEADER_DLFCN
-
-
-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ----------------------------------------------------------------
-m4_defun([_LT_TRY_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test yes = "$cross_compiling"; then :
- [$4]
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-[#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisibility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}]
-_LT_EOF
- if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then
- (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) $1 ;;
- x$lt_dlneed_uscore) $2 ;;
- x$lt_dlunknown|x*) $3 ;;
- esac
- else :
- # compilation failed
- $3
- fi
-fi
-rm -fr conftest*
-])# _LT_TRY_DLOPEN_SELF
-
-
-# LT_SYS_DLOPEN_SELF
-# ------------------
-AC_DEFUN([LT_SYS_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test yes != "$enable_dlopen"; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen=load_add_on
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen=LoadLibrary
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen=dlopen
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[
- lt_cv_dlopen=dyld
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ])
- ;;
-
- tpf*)
- # Don't try to run any link tests for TPF. We know it's impossible
- # because TPF is a cross-compiler, and we know how we open DSOs.
- lt_cv_dlopen=dlopen
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=no
- ;;
-
- *)
- AC_CHECK_FUNC([shl_load],
- [lt_cv_dlopen=shl_load],
- [AC_CHECK_LIB([dld], [shl_load],
- [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld],
- [AC_CHECK_FUNC([dlopen],
- [lt_cv_dlopen=dlopen],
- [AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],
- [AC_CHECK_LIB([svld], [dlopen],
- [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld],
- [AC_CHECK_LIB([dld], [dld_link],
- [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld])
- ])
- ])
- ])
- ])
- ])
- ;;
- esac
-
- if test no = "$lt_cv_dlopen"; then
- enable_dlopen=no
- else
- enable_dlopen=yes
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS=$CPPFLAGS
- test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS=$LDFLAGS
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS=$LIBS
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- AC_CACHE_CHECK([whether a program can dlopen itself],
- lt_cv_dlopen_self, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
- lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
- ])
-
- if test yes = "$lt_cv_dlopen_self"; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
- lt_cv_dlopen_self_static, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
- lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
- ])
- fi
-
- CPPFLAGS=$save_CPPFLAGS
- LDFLAGS=$save_LDFLAGS
- LIBS=$save_LIBS
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
- [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
- [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
- [Whether dlopen of statically linked programs is supported])
-])# LT_SYS_DLOPEN_SELF
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-
-
-# _LT_COMPILER_C_O([TAGNAME])
-# ---------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler.
-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-m4_defun([_LT_COMPILER_C_O],
-[m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
- fi
- fi
- chmod u+w . 2>&AS_MESSAGE_LOG_FD
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-])
-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
- [Does compiler simultaneously support -c and -o options?])
-])# _LT_COMPILER_C_O
-
-
-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-# ----------------------------------
-# Check to see if we can do hard links to lock some files if needed
-m4_defun([_LT_COMPILER_FILE_LOCKS],
-[m4_require([_LT_ENABLE_LOCK])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_COMPILER_C_O([$1])
-
-hard_links=nottested
-if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then
- # do not overwrite the value of need_locks provided by the user
- AC_MSG_CHECKING([if we can lock with hard links])
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- AC_MSG_RESULT([$hard_links])
- if test no = "$hard_links"; then
- AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe])
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-])# _LT_COMPILER_FILE_LOCKS
-
-
-# _LT_CHECK_OBJDIR
-# ----------------
-m4_defun([_LT_CHECK_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-_LT_DECL([], [objdir], [0],
- [The name of the directory that contains temporary libtool files])dnl
-m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/",
- [Define to the sub-directory where libtool stores uninstalled libraries.])
-])# _LT_CHECK_OBJDIR
-
-
-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-# --------------------------------------
-# Check hardcoding attributes.
-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
- test -n "$_LT_TAGVAR(runpath_var, $1)" ||
- test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then
-
- # We can hardcode non-existent directories.
- if test no != "$_LT_TAGVAR(hardcode_direct, $1)" &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" &&
- test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then
- # Linking always hardcodes the temporary library directory.
- _LT_TAGVAR(hardcode_action, $1)=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- _LT_TAGVAR(hardcode_action, $1)=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- _LT_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-
-if test relink = "$_LT_TAGVAR(hardcode_action, $1)" ||
- test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test yes = "$shlibpath_overrides_runpath" ||
- test no = "$enable_shared"; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-_LT_TAGDECL([], [hardcode_action], [0],
- [How to hardcode a shared library path into an executable])
-])# _LT_LINKER_HARDCODE_LIBPATH
-
-
-# _LT_CMD_STRIPLIB
-# ----------------
-m4_defun([_LT_CMD_STRIPLIB],
-[m4_require([_LT_DECL_EGREP])
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP"; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- fi
- ;;
- *)
- AC_MSG_RESULT([no])
- ;;
- esac
-fi
-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-_LT_DECL([], [striplib], [1])
-])# _LT_CMD_STRIPLIB
-
-
-# _LT_PREPARE_MUNGE_PATH_LIST
-# ---------------------------
-# Make sure func_munge_path_list() is defined correctly.
-m4_defun([_LT_PREPARE_MUNGE_PATH_LIST],
-[[# func_munge_path_list VARIABLE PATH
-# -----------------------------------
-# VARIABLE is name of variable containing _space_ separated list of
-# directories to be munged by the contents of PATH, which is string
-# having a format:
-# "DIR[:DIR]:"
-# string "DIR[ DIR]" will be prepended to VARIABLE
-# ":DIR[:DIR]"
-# string "DIR[ DIR]" will be appended to VARIABLE
-# "DIRP[:DIRP]::[DIRA:]DIRA"
-# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
-# "DIRA[ DIRA]" will be appended to VARIABLE
-# "DIR[:DIR]"
-# VARIABLE will be replaced by "DIR[ DIR]"
-func_munge_path_list ()
-{
- case x@S|@2 in
- x)
- ;;
- *:)
- eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
- ;;
- x:*)
- eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
- ;;
- *::*)
- eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
- eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
- ;;
- *)
- eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
- ;;
- esac
-}
-]])# _LT_PREPARE_PATH_LIST
-
-
-# _LT_SYS_DYNAMIC_LINKER([TAG])
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-m4_defun([_LT_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_OBJDUMP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-m4_if([$1],
- [], [
-if test yes = "$GCC"; then
- case $host_os in
- darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
- *) lt_awk_arg='/^libraries:/' ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
- *) lt_sed_strip_eq='s|=/|/|g' ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary...
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- # ...but if some path component already ends with the multilib dir we assume
- # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
- case "$lt_multi_os_dir; $lt_search_path_spec " in
- "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
- lt_multi_os_dir=
- ;;
- esac
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
- elif test -n "$lt_multi_os_dir"; then
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS = " "; FS = "/|\n";} {
- lt_foo = "";
- lt_count = 0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo = "/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[[lt_foo]]++; }
- if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=.so
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-AC_ARG_VAR([LT_SYS_LIBRARY_PATH],
-[User-defined run-time library search path.])
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='$libname$release$shared_ext$major'
- ;;
-
-aix[[4-9]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test ia64 = "$host_cpu"; then
- # AIX 5 supports IA64
- library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line '#! .'. This would cause the generated library to
- # depend on '.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[[01]] | aix4.[[01]].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # Using Import Files as archive members, it is possible to support
- # filename-based versioning of shared library archives on AIX. While
- # this would work for both with and without runtime linking, it will
- # prevent static linking of such archives. So we do filename-based
- # shared library versioning with .so extension only, which is used
- # when both runtime linking and shared linking is enabled.
- # Unfortunately, runtime linking may impact performance, so we do
- # not want this to be the default eventually. Also, we use the
- # versioned .so libs for executables only if there is the -brtl
- # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
- # To allow for filename-based versioning support, we need to create
- # libNAME.so.V as an archive file, containing:
- # *) an Import File, referring to the versioned filename of the
- # archive as well as the shared archive member, telling the
- # bitwidth (32 or 64) of that shared object, and providing the
- # list of exported symbols of that shared object, eventually
- # decorated with the 'weak' keyword
- # *) the shared object with the F_LOADONLY flag set, to really avoid
- # it being seen by the linker.
- # At run time we better use the real file rather than another symlink,
- # but for link time we create the symlink libNAME.so -> libNAME.so.V
-
- case $with_aix_soname,$aix_use_runtimelinking in
- # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- aix,yes) # traditional libtool
- dynamic_linker='AIX unversionable lib.so'
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- ;;
- aix,no) # traditional AIX only
- dynamic_linker='AIX lib.a[(]lib.so.V[)]'
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='$libname$release.a $libname.a'
- soname_spec='$libname$release$shared_ext$major'
- ;;
- svr4,*) # full svr4 only
- dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]"
- library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
- # We do not specify a path in Import Files, so LIBPATH fires.
- shlibpath_overrides_runpath=yes
- ;;
- *,yes) # both, prefer svr4
- dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]"
- library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
- # unpreferred sharedlib libNAME.a needs extra handling
- postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
- postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
- # We do not specify a path in Import Files, so LIBPATH fires.
- shlibpath_overrides_runpath=yes
- ;;
- *,no) # both, prefer aix
- dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]"
- library_names_spec='$libname$release.a $libname.a'
- soname_spec='$libname$release$shared_ext$major'
- # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
- postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
- postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
- ;;
- esac
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='$libname$shared_ext'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[[45]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=.dll
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
- library_names_spec='$libname.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec=$LIB
- if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
- soname_spec='$libname$release$major$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[[23]].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[[01]]* | freebsdelf3.[[01]]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
- freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=no
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- if test 32 = "$HPUX_IA64_MODE"; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- sys_lib_dlsearch_path_spec=/usr/lib/hpux32
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- sys_lib_dlsearch_path_spec=/usr/lib/hpux64
- fi
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[[3-9]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test yes = "$lt_cv_prog_gnu_ld"; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='$libname$release$shared_ext$major'
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
- sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-linux*android*)
- version_type=none # Android doesn't support versioned libraries.
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext'
- soname_spec='$libname$release$shared_ext'
- finish_cmds=
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- dynamic_linker='Android linker'
- # Don't embed -rpath directories since the linker doesn't support them.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
- [lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
- LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
- [lt_cv_shlibpath_overrides_runpath=yes])])
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
- ])
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Ideally, we could use ldconfig to report *all* directores which are
- # searched for libraries, however this is still not possible. Aside from not
- # being certain /sbin/ldconfig is available, command
- # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
- # even though it is searched at run-time. Try to do the best guess by
- # appending ld.so.conf contents (and includes) to the search path.
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd* | bitrig*)
- version_type=sunos
- sys_lib_dlsearch_path_spec=/usr/lib
- need_lib_prefix=no
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
- need_version=no
- else
- need_version=yes
- fi
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-os2*)
- libname_spec='$name'
- version_type=windows
- shrext_cmds=.dll
- need_version=no
- need_lib_prefix=no
- # OS/2 can only load a DLL with a base name of 8 characters or less.
- soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
- v=$($ECHO $release$versuffix | tr -d .-);
- n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
- $ECHO $n$v`$shared_ext'
- library_names_spec='${libname}_dll.$libext'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=BEGINLIBPATH
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='$libname$release$shared_ext$major'
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test yes = "$with_gnu_ld"; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec; then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
- soname_spec='$libname$shared_ext.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=sco
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test yes = "$with_gnu_ld"; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test no = "$dynamic_linker" && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test yes = "$GCC"; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
- sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
-fi
-
-if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
- sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
-fi
-
-# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
-configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
-
-# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
-func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
-
-# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
-configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
-
-_LT_DECL([], [variables_saved_for_relink], [1],
- [Variables whose values should be saved in libtool wrapper scripts and
- restored at link time])
-_LT_DECL([], [need_lib_prefix], [0],
- [Do we need the "lib" prefix for modules?])
-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-_LT_DECL([], [version_type], [0], [Library versioning type])
-_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable])
-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-_LT_DECL([], [shlibpath_overrides_runpath], [0],
- [Is shlibpath searched before the hard-coded library search path?])
-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-_LT_DECL([], [library_names_spec], [1],
- [[List of archive names. First name is the real one, the rest are links.
- The last name is the one that the linker finds with -lNAME]])
-_LT_DECL([], [soname_spec], [1],
- [[The coded name of the library, if different from the real name]])
-_LT_DECL([], [install_override_mode], [1],
- [Permission mode override for installation of shared libraries])
-_LT_DECL([], [postinstall_cmds], [2],
- [Command to use after installation of a shared archive])
-_LT_DECL([], [postuninstall_cmds], [2],
- [Command to use after uninstallation of a shared archive])
-_LT_DECL([], [finish_cmds], [2],
- [Commands used to finish a libtool library installation in a directory])
-_LT_DECL([], [finish_eval], [1],
- [[As "finish_cmds", except a single script fragment to be evaled but
- not shown]])
-_LT_DECL([], [hardcode_into_libs], [0],
- [Whether we should hardcode library paths into libraries])
-_LT_DECL([], [sys_lib_search_path_spec], [2],
- [Compile-time system search path for libraries])
-_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2],
- [Detected run-time system search path for libraries])
-_LT_DECL([], [configure_time_lt_sys_library_path], [2],
- [Explicit LT_SYS_LIBRARY_PATH set during ./configure time])
-])# _LT_SYS_DYNAMIC_LINKER
-
-
-# _LT_PATH_TOOL_PREFIX(TOOL)
-# --------------------------
-# find a file program that can recognize shared library
-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-[m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] | ?:[\\/]*])
- lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD=$MAGIC_CMD
- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word. This closes a longstanding sh security hole.
- ac_dummy="m4_if([$2], , $PATH, [$2])"
- for ac_dir in $ac_dummy; do
- IFS=$lt_save_ifs
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$1"; then
- lt_cv_path_MAGIC_CMD=$ac_dir/"$1"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD=$lt_cv_path_MAGIC_CMD
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS=$lt_save_ifs
- MAGIC_CMD=$lt_save_MAGIC_CMD
- ;;
-esac])
-MAGIC_CMD=$lt_cv_path_MAGIC_CMD
-if test -n "$MAGIC_CMD"; then
- AC_MSG_RESULT($MAGIC_CMD)
-else
- AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
- [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])# _LT_PATH_TOOL_PREFIX
-
-# Old name:
-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-
-
-# _LT_PATH_MAGIC
-# --------------
-# find a file program that can recognize a shared library
-m4_defun([_LT_PATH_MAGIC],
-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
- else
- MAGIC_CMD=:
- fi
-fi
-])# _LT_PATH_MAGIC
-
-
-# LT_PATH_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([LT_PATH_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
-
-AC_ARG_WITH([gnu-ld],
- [AS_HELP_STRING([--with-gnu-ld],
- [assume the C compiler uses GNU ld @<:@default=no@:>@])],
- [test no = "$withval" || with_gnu_ld=yes],
- [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test yes = "$GCC"; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by $CC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return, which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [[\\/]]* | ?:[[\\/]]*)
- re_direlt='/[[^/]][[^/]]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD=$ac_prog
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test yes = "$with_gnu_ld"; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS=$lt_save_ifs
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD=$ac_dir/$ac_prog
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test no != "$with_gnu_ld" && break
- ;;
- *)
- test yes != "$with_gnu_ld" && break
- ;;
- esac
- fi
- done
- IFS=$lt_save_ifs
-else
- lt_cv_path_LD=$LD # Let the user override the test with a path.
-fi])
-LD=$lt_cv_path_LD
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])# LT_PATH_LD
-
-# Old names:
-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_LD], [])
-dnl AC_DEFUN([AC_PROG_LD], [])
-
-
-# _LT_PATH_LD_GNU
-#- --------------
-m4_defun([_LT_PATH_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# _LT_PATH_LD_GNU
-
-
-# _LT_CMD_RELOAD
-# --------------
-# find reload flag for linker
-# -- PORTME Some linkers may need a different reload flag.
-m4_defun([_LT_CMD_RELOAD],
-[AC_CACHE_CHECK([for $LD option to reload object files],
- lt_cv_ld_reload_flag,
- [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- if test yes != "$GCC"; then
- reload_cmds=false
- fi
- ;;
- darwin*)
- if test yes = "$GCC"; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_TAGDECL([], [reload_cmds], [2])dnl
-])# _LT_CMD_RELOAD
-
-
-# _LT_PATH_DD
-# -----------
-# find a working dd
-m4_defun([_LT_PATH_DD],
-[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD],
-[printf 0123456789abcdef0123456789abcdef >conftest.i
-cat conftest.i conftest.i >conftest2.i
-: ${lt_DD:=$DD}
-AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd],
-[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
- cmp -s conftest.i conftest.out \
- && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
-fi])
-rm -f conftest.i conftest2.i conftest.out])
-])# _LT_PATH_DD
-
-
-# _LT_CMD_TRUNCATE
-# ----------------
-# find command to truncate a binary pipe
-m4_defun([_LT_CMD_TRUNCATE],
-[m4_require([_LT_PATH_DD])
-AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin],
-[printf 0123456789abcdef0123456789abcdef >conftest.i
-cat conftest.i conftest.i >conftest2.i
-lt_cv_truncate_bin=
-if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
- cmp -s conftest.i conftest.out \
- && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
-fi
-rm -f conftest.i conftest2.i conftest.out
-test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"])
-_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1],
- [Command to truncate a binary pipe])
-])# _LT_CMD_TRUNCATE
-
-
-# _LT_CHECK_MAGIC_METHOD
-# ----------------------
-# how to check for library dependencies
-# -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_MAGIC_METHOD],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# 'unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# that responds to the $file_magic_cmd with a given extended regex.
-# If you have 'file' or equivalent on your system and you're not sure
-# whether 'pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[[45]]*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- if ( file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- # Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[[3-9]]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd* | bitrig*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-os2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-])
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
- case $host_os in
- mingw* | pw32*)
- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
- want_nocaseglob=yes
- else
- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
- fi
- ;;
- esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-_LT_DECL([], [deplibs_check_method], [1],
- [Method to check whether dependent libraries are shared objects])
-_LT_DECL([], [file_magic_cmd], [1],
- [Command to use when deplibs_check_method = "file_magic"])
-_LT_DECL([], [file_magic_glob], [1],
- [How to find potential files when deplibs_check_method = "file_magic"])
-_LT_DECL([], [want_nocaseglob], [1],
- [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
-])# _LT_CHECK_MAGIC_METHOD
-
-
-# LT_PATH_NM
-# ----------
-# find the pathname to a BSD- or MS-compatible name lister
-AC_DEFUN([LT_PATH_NM],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM=$NM
-else
- lt_nm_to_check=${ac_tool_prefix}nm
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS=$lt_save_ifs
- test -z "$ac_dir" && ac_dir=.
- tmp_nm=$ac_dir/$lt_tmp_nm
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
- case $build_os in
- mingw*) lt_bad_file=conftest.nm/nofile ;;
- *) lt_bad_file=/dev/null ;;
- esac
- case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
- *$lt_bad_file* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break 2
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break 2
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS=$lt_save_ifs
- done
- : ${lt_cv_path_NM=no}
-fi])
-if test no != "$lt_cv_path_NM"; then
- NM=$lt_cv_path_NM
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
- case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols -headers"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
- AC_SUBST([DUMPBIN])
- if test : != "$DUMPBIN"; then
- NM=$DUMPBIN
- fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
- [lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
- cat conftest.out >&AS_MESSAGE_LOG_FD
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*])
-])# LT_PATH_NM
-
-# Old names:
-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_NM], [])
-dnl AC_DEFUN([AC_PROG_NM], [])
-
-# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-# --------------------------------
-# how to determine the name of the shared library
-# associated with a specific link library.
-# -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-m4_require([_LT_DECL_DLLTOOL])
-AC_CACHE_CHECK([how to associate runtime and link libraries],
-lt_cv_sharedlib_from_linklib_cmd,
-[lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
- # two different shell functions defined in ltmain.sh;
- # decide which one to use based on capabilities of $DLLTOOL
- case `$DLLTOOL --help 2>&1` in
- *--identify-strict*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
- ;;
- *)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
- ;;
- esac
- ;;
-*)
- # fallback: assume linklib IS sharedlib
- lt_cv_sharedlib_from_linklib_cmd=$ECHO
- ;;
-esac
-])
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
- [Command to associate shared and link libraries])
-])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-
-
-# _LT_PATH_MANIFEST_TOOL
-# ----------------------
-# locate the manifest tool
-m4_defun([_LT_PATH_MANIFEST_TOOL],
-[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
- [lt_cv_path_mainfest_tool=no
- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
- cat conftest.err >&AS_MESSAGE_LOG_FD
- if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_mainfest_tool=yes
- fi
- rm -f conftest*])
-if test yes != "$lt_cv_path_mainfest_tool"; then
- MANIFEST_TOOL=:
-fi
-_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
-])# _LT_PATH_MANIFEST_TOOL
-
-
-# _LT_DLL_DEF_P([FILE])
-# ---------------------
-# True iff FILE is a Windows DLL '.def' file.
-# Keep in sync with func_dll_def_p in the libtool script
-AC_DEFUN([_LT_DLL_DEF_P],
-[dnl
- test DEF = "`$SED -n dnl
- -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace
- -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments
- -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl
- -e q dnl Only consider the first "real" line
- $1`" dnl
-])# _LT_DLL_DEF_P
-
-
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
- # These system don't have libm, or don't need it
- ;;
-*-ncr-sysv4.3*)
- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw)
- AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
- ;;
-*)
- AC_CHECK_LIB(m, cos, LIBM=-lm)
- ;;
-esac
-AC_SUBST([LIBM])
-])# LT_LIB_M
-
-# Old name:
-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_CHECK_LIBM], [])
-
-
-# _LT_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------
-m4_defun([_LT_COMPILER_NO_RTTI],
-[m4_require([_LT_TAG_COMPILER])dnl
-
-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test yes = "$GCC"; then
- case $cc_basename in
- nvcc*)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
- esac
-
- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
- lt_cv_prog_compiler_rtti_exceptions,
- [-fno-rtti -fno-exceptions], [],
- [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
- [Compiler flag to turn off builtin functions])
-])# _LT_COMPILER_NO_RTTI
-
-
-# _LT_CMD_GLOBAL_SYMBOLS
-# ----------------------
-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[[BCDT]]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[[ABCDGISTW]]'
- ;;
-hpux*)
- if test ia64 = "$host_cpu"; then
- symcode='[[ABCDEGRST]]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[[BCDEGRST]]'
- ;;
-osf*)
- symcode='[[BCDEGQRST]]'
- ;;
-solaris*)
- symcode='[[BDRT]]'
- ;;
-sco3.2v5*)
- symcode='[[DT]]'
- ;;
-sysv4.2uw2*)
- symcode='[[DT]]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[[ABDT]]'
- ;;
-sysv4)
- symcode='[[DFNSTU]]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Gets list of data symbols to import.
- lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
- # Adjust the below global symbol transforms to fixup imported variables.
- lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
- lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
- lt_c_name_lib_hook="\
- -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
- -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
-else
- # Disable hooks by default.
- lt_cv_sys_global_symbol_to_import=
- lt_cdecl_hook=
- lt_c_name_hook=
- lt_c_name_lib_hook=
-fi
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n"\
-$lt_cdecl_hook\
-" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
-$lt_c_name_hook\
-" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
-
-# Transform an extracted symbol line into symbol name with lib prefix and
-# symbol address.
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
-$lt_c_name_lib_hook\
-" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
-" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function,
- # D for any global variable and I for any imported variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK ['"\
-" {last_section=section; section=\$ 3};"\
-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
-" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
-" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
-" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
-" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx]"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
-/* DATA imports from DLLs on WIN32 can't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT@&t@_DLSYM_CONST
-#elif defined __osf__
-/* This system does not cope well with relocations in const data. */
-# define LT@&t@_DLSYM_CONST
-#else
-# define LT@&t@_DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-LT@&t@_DLSYM_CONST struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[[]] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_globsym_save_LIBS=$LIBS
- lt_globsym_save_CFLAGS=$CFLAGS
- LIBS=conftstm.$ac_objext
- CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
- if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then
- pipe_works=yes
- fi
- LIBS=$lt_globsym_save_LIBS
- CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test yes = "$pipe_works"; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- AC_MSG_RESULT(failed)
-else
- AC_MSG_RESULT(ok)
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
- nm_file_list_spec='@'
-fi
-
-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
- [Take the output of nm and produce a listing of raw symbols and C names])
-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
- [Transform the output of nm in a proper C declaration])
-_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1],
- [Transform the output of nm into a list of symbols to manually relocate])
-_LT_DECL([global_symbol_to_c_name_address],
- [lt_cv_sys_global_symbol_to_c_name_address], [1],
- [Transform the output of nm in a C name address pair])
-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
- [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
- [Transform the output of nm in a C name address pair when lib prefix is needed])
-_LT_DECL([nm_interface], [lt_cv_nm_interface], [1],
- [The name lister interface])
-_LT_DECL([], [nm_file_list_spec], [1],
- [Specify filename containing input files for $NM])
-]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-# _LT_COMPILER_PIC([TAGNAME])
-# ---------------------------
-m4_defun([_LT_COMPILER_PIC],
-[m4_require([_LT_TAG_COMPILER])dnl
-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_TAGVAR(lt_prog_compiler_static, $1)=
-
-m4_if([$1], [CXX], [
- # C++ specific cases for pic, static, wl, etc.
- if test yes = "$GXX"; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test ia64 = "$host_cpu"; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the '-m68020' flag to GCC prevents building anything better,
- # like '-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- case $host_os in
- os2*)
- _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
- ;;
- esac
- ;;
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
- *djgpp*)
- # DJGPP does not support shared libraries at all
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- else
- case $host_os in
- aix[[4-9]]*)
- # All AIX code is PIC.
- if test ia64 = "$host_cpu"; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- chorus*)
- case $cc_basename in
- cxch68*)
- # Green Hills C++ Compiler
- # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
- ;;
- esac
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
- dgux*)
- case $cc_basename in
- ec++*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- freebsd* | dragonfly*)
- # FreeBSD uses GNU C++
- ;;
- hpux9* | hpux10* | hpux11*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
- if test ia64 != "$host_cpu"; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- fi
- ;;
- aCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- interix*)
- # This is c89, which is MS Visual C++ (no shared libs)
- # Anyone wants to do a port?
- ;;
- irix5* | irix6* | nonstopux*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- # CC pic flag -KPIC is the default.
- ;;
- *)
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- KCC*)
- # KAI C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- ecpc* )
- # old Intel C++ for x86_64, which still supported -KPIC.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- icpc* )
- # Intel C++, used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- cxx*)
- # Compaq C++
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
- # IBM XL 8.0, 9.0 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- esac
- ;;
- esac
- ;;
- lynxos*)
- ;;
- m88k*)
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
- ;;
- *)
- ;;
- esac
- ;;
- netbsd*)
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- cxx*)
- # Digital/Compaq C++
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- psos*)
- ;;
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- ;;
- *)
- ;;
- esac
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- lcc*)
- # Lucid
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- *)
- ;;
- esac
- ;;
- vxworks*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-],
-[
- if test yes = "$GCC"; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test ia64 = "$host_cpu"; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the '-m68020' flag to GCC prevents building anything better,
- # like '-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- case $host_os in
- os2*)
- _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
- if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
- fi
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- if test ia64 = "$host_cpu"; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- case $cc_basename in
- nagfor*)
- # NAG Fortran compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- case $host_os in
- os2*)
- _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
- ;;
- esac
- ;;
-
- hpux9* | hpux10* | hpux11*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC (with -KPIC) is the default.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- # old Intel for x86_64, which still supported -KPIC.
- ecc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- tcc*)
- # Fabrice Bellard et al's Tiny C Compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- ccc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All Alpha code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
- ;;
- *Sun\ F* | *Sun*Fortran*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- *Sun\ C*)
- # Sun C 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- ;;
- *Intel*\ [[CF]]*Compiler*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- *Portland\ Group*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All OSF/1 code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- rdos*)
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- solaris*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
- *)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- unicos*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
-
- uts4*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-])
-case $host_os in
- # For platforms that do not support PIC, -DPIC is meaningless:
- *djgpp*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
- ;;
-esac
-
-AC_CACHE_CHECK([for $compiler option to produce PIC],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
- [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
- [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
- "" | " "*) ;;
- *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
- esac],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
- [Additional compiler flags for building library objects])
-
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
- [How to pass a linker flag through the compiler])
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
- _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
- $lt_tmp_static_flag,
- [],
- [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
- [Compiler flag to prevent dynamic linking])
-])# _LT_COMPILER_PIC
-
-
-# _LT_LINKER_SHLIBS([TAGNAME])
-# ----------------------------
-# See if the linker supports building shared libraries.
-m4_defun([_LT_LINKER_SHLIBS],
-[AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-m4_if([$1], [CXX], [
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- case $host_os in
- aix[[4-9]]*)
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to GNU nm, but means don't demangle to AIX nm.
- # Without the "-l" option, or with the "-B" option, AIX nm treats
- # weak defined symbols like other global defined symbols, whereas
- # GNU nm marks them as "W".
- # While the 'weak' keyword is ignored in the Export File, we need
- # it in the Import File for the 'aix-soname' feature, so we have
- # to replace the "-B" option with "-P" for AIX nm.
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
- fi
- ;;
- pw32*)
- _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
- ;;
- cygwin* | mingw* | cegcc*)
- case $cc_basename in
- cl*)
- _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
- ;;
- esac
- ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- esac
-], [
- runpath_var=
- _LT_TAGVAR(allow_undefined_flag, $1)=
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(archive_cmds, $1)=
- _LT_TAGVAR(archive_expsym_cmds, $1)=
- _LT_TAGVAR(compiler_needs_object, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(hardcode_automatic, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- _LT_TAGVAR(hardcode_minus_L, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- _LT_TAGVAR(inherit_rpath, $1)=no
- _LT_TAGVAR(link_all_deplibs, $1)=unknown
- _LT_TAGVAR(module_cmds, $1)=
- _LT_TAGVAR(module_expsym_cmds, $1)=
- _LT_TAGVAR(old_archive_from_new_cmds, $1)=
- _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
- _LT_TAGVAR(thread_safe_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- _LT_TAGVAR(include_expsyms, $1)=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ' (' and ')$', so one must not match beginning or
- # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
- # as well as any symbol that contains 'd'.
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test yes != "$GCC"; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd* | bitrig*)
- with_gnu_ld=no
- ;;
- esac
-
- _LT_TAGVAR(ld_shlibs, $1)=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test yes = "$with_gnu_ld"; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
- *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test yes = "$lt_use_gnu_ld_interface"; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='$wl'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- supports_anon_versioning=no
- case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[[3-9]]*)
- # On AIX/PPC, the GNU linker is very broken
- if test ia64 != "$host_cpu"; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file, use it as
- # is; otherwise, prepend EXPORTS...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- os2*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- shrext_cmds=.dll
- _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- prefix_cmds="$SED"~
- if test EXPORTS = "`$SED 1q $export_symbols`"; then
- prefix_cmds="$prefix_cmds -e 1d";
- fi~
- prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
- cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- tmp_diet=no
- if test linux-dietlibc = "$host_os"; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test no = "$tmp_diet"
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- tmp_sharedflag='--shared' ;;
- nagfor*) # NAGFOR 5.3
- tmp_sharedflag='-Wl,-shared' ;;
- xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-
- if test yes = "$supports_anon_versioning"; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- tcc*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic'
- ;;
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test yes = "$supports_anon_versioning"; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
-
- if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then
- runpath_var=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- fi
- ;;
-
- aix[[4-9]]*)
- if test ia64 = "$host_cpu"; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to GNU nm, but means don't demangle to AIX nm.
- # Without the "-l" option, or with the "-B" option, AIX nm treats
- # weak defined symbols like other global defined symbols, whereas
- # GNU nm marks them as "W".
- # While the 'weak' keyword is ignored in the Export File, we need
- # it in the Import File for the 'aix-soname' feature, so we have
- # to replace the "-B" option with "-P" for AIX nm.
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # have runtime linking enabled, and use it for executables.
- # For shared libraries, we enable/disable runtime linking
- # depending on the kind of the shared library created -
- # when "with_aix_soname,aix_use_runtimelinking" is:
- # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
- # "aix,yes" lib.so shared, rtl:yes, for executables
- # lib.a static archive
- # "both,no" lib.so.V(shr.o) shared, rtl:yes
- # lib.a(lib.so.V) shared, rtl:no, for executables
- # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
- # lib.a(lib.so.V) shared, rtl:no
- # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
- # lib.a static archive
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
- # With aix-soname=svr4, we create the lib.so.V shared archives only,
- # so we don't have lib.a shared libs to link our executables.
- # We have to force runtime linking in this case.
- aix_use_runtimelinking=yes
- LDFLAGS="$LDFLAGS -Wl,-brtl"
- fi
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
- case $with_aix_soname,$aix_use_runtimelinking in
- aix,*) ;; # traditional, no import file
- svr4,* | *,yes) # use import file
- # The Import File defines what to hardcode.
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=no
- ;;
- esac
-
- if test yes = "$GCC"; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`$CC -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test yes = "$aix_use_runtimelinking"; then
- shared_flag="$shared_flag "'$wl-G'
- fi
- # Need to ensure runtime linking is disabled for the traditional
- # shared library, or the linker may eventually find shared libraries
- # /with/ Import File - we do not want to mix them.
- shared_flag_aix='-shared'
- shared_flag_svr4='-shared $wl-G'
- else
- # not using gcc
- if test ia64 = "$host_cpu"; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test yes = "$aix_use_runtimelinking"; then
- shared_flag='$wl-G'
- else
- shared_flag='$wl-bM:SRE'
- fi
- shared_flag_aix='$wl-bM:SRE'
- shared_flag_svr4='$wl-G'
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
- else
- if test ia64 = "$host_cpu"; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
- if test yes = "$with_gnu_ld"; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
- # -brtl affects multiple linker settings, -berok does not and is overridden later
- compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
- if test svr4 != "$with_aix_soname"; then
- # This is similar to how AIX traditionally builds its shared libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
- fi
- if test aix != "$with_aix_soname"; then
- _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
- else
- # used by -dlpreopen to get the symbols
- _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
- fi
- _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- bsdi[[45]]*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- case $cc_basename in
- cl*)
- # Native MSVC
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=.dll
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
- _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
- cp "$export_symbols" "$output_objdir/$soname.def";
- echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
- else
- $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
- # Don't use ranlib
- _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
- _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile=$lt_outputfile.exe
- lt_tool_outputfile=$lt_tool_outputfile.exe
- ;;
- esac~
- if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # Assume MSVC wrapper
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=.dll
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- # FIXME: Should let the user specify the lib program.
- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- hpux9*)
- if test yes = "$GCC"; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
- ;;
-
- hpux10*)
- if test yes,no = "$GCC,$with_gnu_ld"; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test no = "$with_gnu_ld"; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- fi
- ;;
-
- hpux11*)
- if test yes,no = "$GCC,$with_gnu_ld"; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- m4_if($1, [], [
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- _LT_LINKER_OPTION([if $CC understands -b],
- _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
- [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
- ;;
- esac
- fi
- if test no = "$with_gnu_ld"; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test yes = "$GCC"; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- # This should be the same for all languages, so no per-tag cache variable.
- AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
- [lt_cv_irix_exported_symbol],
- [save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
- AC_LINK_IFELSE(
- [AC_LANG_SOURCE(
- [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
- [C++], [[int foo (void) { return 0; }]],
- [Fortran 77], [[
- subroutine foo
- end]],
- [Fortran], [[
- subroutine foo
- end]])])],
- [lt_cv_irix_exported_symbol=yes],
- [lt_cv_irix_exported_symbol=no])
- LDFLAGS=$save_LDFLAGS])
- if test yes = "$lt_cv_irix_exported_symbol"; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
- fi
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- linux*)
- case $cc_basename in
- tcc*)
- # Fabrice Bellard et al's Tiny C Compiler
- _LT_TAGVAR(ld_shlibs, $1)=yes
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- newsos6)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd* | bitrig*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
- fi
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- os2*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- shrext_cmds=.dll
- _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- prefix_cmds="$SED"~
- if test EXPORTS = "`$SED 1q $export_symbols`"; then
- prefix_cmds="$prefix_cmds -e 1d";
- fi~
- prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
- cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- ;;
-
- osf3*)
- if test yes = "$GCC"; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test yes = "$GCC"; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- solaris*)
- _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
- if test yes = "$GCC"; then
- wlarc='$wl'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='$wl'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands '-z linker_flag'. GCC discards it without '$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test yes = "$GCC"; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- sunos4*)
- if test sequent = "$host_vendor"; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
- _LT_TAGVAR(hardcode_direct, $1)=no
- ;;
- motorola)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4.3*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- _LT_TAGVAR(ld_shlibs, $1)=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- if test yes = "$GCC"; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We CANNOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test yes = "$GCC"; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- if test sni = "$host_vendor"; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym'
- ;;
- esac
- fi
- fi
-])
-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
-
-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-
-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-_LT_DECL([], [extract_expsyms_cmds], [2],
- [The commands to extract the exported symbol list from a shared archive])
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
- # Assume -lc should be added
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-
- if test yes,yes = "$GCC,$enable_shared"; then
- case $_LT_TAGVAR(archive_cmds, $1) in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- AC_CACHE_CHECK([whether -lc should be explicitly linked in],
- [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
- [$RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
- pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
- _LT_TAGVAR(allow_undefined_flag, $1)=
- if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
- then
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
- else
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- fi
- _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- ])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
- ;;
- esac
- fi
- ;;
-esac
-
-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
- [Whether or not to add -lc for building shared libraries])
-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
- [enable_shared_with_static_runtimes], [0],
- [Whether or not to disallow shared libs when runtime libs are static])
-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
- [Compiler flag to allow reflexive dlopens])
-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
- [Compiler flag to generate shared objects directly from archives])
-_LT_TAGDECL([], [compiler_needs_object], [1],
- [Whether the compiler copes with passing no objects directly])
-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
- [Create an old-style archive from a shared archive])
-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
- [Create a temporary old-style archive to link instead of a shared archive])
-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-_LT_TAGDECL([], [archive_expsym_cmds], [2])
-_LT_TAGDECL([], [module_cmds], [2],
- [Commands used to build a loadable module if different from building
- a shared archive.])
-_LT_TAGDECL([], [module_expsym_cmds], [2])
-_LT_TAGDECL([], [with_gnu_ld], [1],
- [Whether we are building with GNU ld or not])
-_LT_TAGDECL([], [allow_undefined_flag], [1],
- [Flag that allows shared libraries with undefined symbols to be built])
-_LT_TAGDECL([], [no_undefined_flag], [1],
- [Flag that enforces no undefined symbols])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
- [Flag to hardcode $libdir into a binary during linking.
- This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
- [Whether we need a single "-rpath" flag with a separated argument])
-_LT_TAGDECL([], [hardcode_direct], [0],
- [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
- DIR into the resulting binary])
-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
- [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
- DIR into the resulting binary and the resulting library dependency is
- "absolute", i.e impossible to change by setting $shlibpath_var if the
- library is relocated])
-_LT_TAGDECL([], [hardcode_minus_L], [0],
- [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
- [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_automatic], [0],
- [Set to "yes" if building a shared library automatically hardcodes DIR
- into the library and all subsequent libraries and executables linked
- against it])
-_LT_TAGDECL([], [inherit_rpath], [0],
- [Set to yes if linker adds runtime paths of dependent libraries
- to runtime path list])
-_LT_TAGDECL([], [link_all_deplibs], [0],
- [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [always_export_symbols], [0],
- [Set to "yes" if exported symbols are required])
-_LT_TAGDECL([], [export_symbols_cmds], [2],
- [The commands to list exported symbols])
-_LT_TAGDECL([], [exclude_expsyms], [1],
- [Symbols that should not be listed in the preloaded symbols])
-_LT_TAGDECL([], [include_expsyms], [1],
- [Symbols that must always be exported])
-_LT_TAGDECL([], [prelink_cmds], [2],
- [Commands necessary for linking programs (against libraries) with templates])
-_LT_TAGDECL([], [postlink_cmds], [2],
- [Commands necessary for finishing linking programs])
-_LT_TAGDECL([], [file_list_spec], [1],
- [Specify filename containing input files])
-dnl FIXME: Not yet implemented
-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-dnl [Compiler flag to generate thread safe objects])
-])# _LT_LINKER_SHLIBS
-
-
-# _LT_LANG_C_CONFIG([TAG])
-# ------------------------
-# Ensure that the configuration variables for a C compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to 'libtool'.
-m4_defun([_LT_LANG_C_CONFIG],
-[m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC=$CC
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_TAG_COMPILER
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
- LT_SYS_DLOPEN_SELF
- _LT_CMD_STRIPLIB
-
- # Report what library types will actually be built
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test no = "$can_build_shared" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test yes = "$enable_shared" && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[[4-9]]*)
- if test ia64 != "$host_cpu"; then
- case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
- yes,aix,yes) ;; # shared object as lib.so file only
- yes,svr4,*) ;; # shared object as lib.so archive member only
- yes,*) enable_static=no ;; # shared object in lib.a archive as well
- esac
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test yes = "$enable_shared" || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_CONFIG($1)
-fi
-AC_LANG_POP
-CC=$lt_save_CC
-])# _LT_LANG_C_CONFIG
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to 'libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-if test -n "$CXX" && ( test no != "$CXX" &&
- ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
- (test g++ != "$CXX"))); then
- AC_PROG_CXXCPP
-else
- _lt_caught_CXX_error=yes
-fi
-
-AC_LANG_PUSH(C++)
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(compiler_needs_object, $1)=no
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test yes != "$_lt_caught_CXX_error"; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="int some_variable = 0;"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC=$CC
- lt_save_CFLAGS=$CFLAGS
- lt_save_LD=$LD
- lt_save_GCC=$GCC
- GCC=$GXX
- lt_save_with_gnu_ld=$with_gnu_ld
- lt_save_path_LD=$lt_cv_path_LD
- if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
- else
- $as_unset lt_cv_prog_gnu_ld
- fi
- if test -n "${lt_cv_path_LDCXX+set}"; then
- lt_cv_path_LD=$lt_cv_path_LDCXX
- else
- $as_unset lt_cv_path_LD
- fi
- test -z "${LDCXX+set}" || LD=$LDCXX
- CC=${CXX-"c++"}
- CFLAGS=$CXXFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- # We don't want -fno-exception when compiling C++ code, so set the
- # no_builtin_flag separately
- if test yes = "$GXX"; then
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
- else
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
- fi
-
- if test yes = "$GXX"; then
- # Set up default GNU C++ configuration
-
- LT_PATH_LD
-
- # Check if GNU C++ uses GNU ld as the underlying linker, since the
- # archiving commands below assume that GNU ld is being used.
- if test yes = "$with_gnu_ld"; then
- _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
-
- # If archive_cmds runs LD, not CC, wlarc should be empty
- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
- # investigate it a little bit more. (MM)
- wlarc='$wl'
-
- # ancient GNU ld didn't support --whole-archive et. al.
- if eval "`$CC -print-prog-name=ld` --help 2>&1" |
- $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- with_gnu_ld=no
- wlarc=
-
- # A generic and very simple default shared library creation
- # command for GNU C++ for the case where it uses the native
- # linker, instead of GNU ld. If possible, this setting should
- # overridden to take advantage of the native linker features on
- # the platform it is being used on.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- fi
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- GXX=no
- with_gnu_ld=no
- wlarc=
- fi
-
- # PORTME: fill in a description of your system's C++ link characteristics
- AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
- _LT_TAGVAR(ld_shlibs, $1)=yes
- case $host_os in
- aix3*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aix[[4-9]]*)
- if test ia64 = "$host_cpu"; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=
- else
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # have runtime linking enabled, and use it for executables.
- # For shared libraries, we enable/disable runtime linking
- # depending on the kind of the shared library created -
- # when "with_aix_soname,aix_use_runtimelinking" is:
- # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
- # "aix,yes" lib.so shared, rtl:yes, for executables
- # lib.a static archive
- # "both,no" lib.so.V(shr.o) shared, rtl:yes
- # lib.a(lib.so.V) shared, rtl:no, for executables
- # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
- # lib.a(lib.so.V) shared, rtl:no
- # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
- # lib.a static archive
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- case $ld_flag in
- *-brtl*)
- aix_use_runtimelinking=yes
- break
- ;;
- esac
- done
- if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
- # With aix-soname=svr4, we create the lib.so.V shared archives only,
- # so we don't have lib.a shared libs to link our executables.
- # We have to force runtime linking in this case.
- aix_use_runtimelinking=yes
- LDFLAGS="$LDFLAGS -Wl,-brtl"
- fi
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
- case $with_aix_soname,$aix_use_runtimelinking in
- aix,*) ;; # no import file
- svr4,* | *,yes) # use import file
- # The Import File defines what to hardcode.
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=no
- ;;
- esac
-
- if test yes = "$GXX"; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`$CC -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- esac
- shared_flag='-shared'
- if test yes = "$aix_use_runtimelinking"; then
- shared_flag=$shared_flag' $wl-G'
- fi
- # Need to ensure runtime linking is disabled for the traditional
- # shared library, or the linker may eventually find shared libraries
- # /with/ Import File - we do not want to mix them.
- shared_flag_aix='-shared'
- shared_flag_svr4='-shared $wl-G'
- else
- # not using gcc
- if test ia64 = "$host_cpu"; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test yes = "$aix_use_runtimelinking"; then
- shared_flag='$wl-G'
- else
- shared_flag='$wl-bM:SRE'
- fi
- shared_flag_aix='$wl-bM:SRE'
- shared_flag_svr4='$wl-G'
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to
- # export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- # The "-G" linker flag allows undefined symbols.
- _LT_TAGVAR(no_undefined_flag, $1)='-bernotok'
- # Determine the default libpath from the value encoded in an empty
- # executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
-
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
- else
- if test ia64 = "$host_cpu"; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
- if test yes = "$with_gnu_ld"; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
- # -brtl affects multiple linker settings, -berok does not and is overridden later
- compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
- if test svr4 != "$with_aix_soname"; then
- # This is similar to how AIX traditionally builds its shared
- # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
- _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
- fi
- if test aix != "$with_aix_soname"; then
- _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
- else
- # used by -dlpreopen to get the symbols
- _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
- fi
- _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
- fi
- fi
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- chorus*)
- case $cc_basename in
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- case $GXX,$cc_basename in
- ,cl* | no,cl*)
- # Native MSVC
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=.dll
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
- _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
- cp "$export_symbols" "$output_objdir/$soname.def";
- echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
- else
- $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- # Don't use ranlib
- _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
- _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile=$lt_outputfile.exe
- lt_tool_outputfile=$lt_tool_outputfile.exe
- ;;
- esac~
- func_to_tool_file "$lt_outputfile"~
- if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # g++
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file, use it as
- # is; otherwise, prepend EXPORTS...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- os2*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- shrext_cmds=.dll
- _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- prefix_cmds="$SED"~
- if test EXPORTS = "`$SED 1q $export_symbols`"; then
- prefix_cmds="$prefix_cmds -e 1d";
- fi~
- prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
- cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- ;;
-
- dgux*)
- case $cc_basename in
- ec++*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- freebsd2.*)
- # C++ shared libraries reported to be fairly broken before
- # switch to ELF
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- freebsd-elf*)
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- ;;
-
- freebsd* | dragonfly*)
- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
- # conventions
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- hpux9*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test yes = "$GXX"; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- hpux10*|hpux11*)
- if test no = "$with_gnu_ld"; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
- ;;
- esac
- fi
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- esac
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test yes = "$GXX"; then
- if test no = "$with_gnu_ld"; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC*)
- # SGI C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
-
- # Archives containing C++ object files must be created using
- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
- ;;
- *)
- if test yes = "$GXX"; then
- if test no = "$with_gnu_ld"; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'
- fi
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
- esac
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
- ;;
- icpc* | ecpc* )
- # Intel C++
- with_gnu_ld=yes
- # version 8.0 and above of icpc choke on multiply defined symbols
- # if we add $predep_objects and $postdep_objects, however 7.1 and
- # earlier do not add the objects themselves.
- case `$CC -V 2>&1` in
- *"Version 7."*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 8.0 or newer
- tmp_idyn=
- case $host_cpu in
- ia64*) tmp_idyn=' -i_dynamic';;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- case `$CC -V` in
- *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
- _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
- compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
- _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
- $RANLIB $oldlib'
- _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 6 and above use weak symbols
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- ;;
- cxx*)
- # Compaq C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols'
-
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
- ;;
- xl* | mpixl* | bgxl*)
- # IBM XL 8.0 on PPC, with GNU ld
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
- _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- if test yes = "$supports_anon_versioning"; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
- fi
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
-
- # Not sure whether something based on
- # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
- # would be better.
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- esac
- ;;
- esac
- ;;
-
- lynxos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- m88k*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- mvs*)
- case $cc_basename in
- cxx*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- fi
- # Workaround some broken pre-1.5 toolchains
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
- ;;
-
- *nto* | *qnx*)
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- openbsd* | bitrig*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
- _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
- fi
- output_verbose_link_cmd=func_echo_all
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Archives containing C++ object files must be created using
- # the KAI C++ compiler.
- case $host in
- osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
- *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
- esac
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- cxx*)
- case $host in
- osf3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
- ;;
- *)
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
- echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
- $RM $lib.exp'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test yes,no = "$GXX,$with_gnu_ld"; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
- case $host in
- osf3*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- psos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- lcc*)
- # Lucid
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands '-z linker_flag'.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
-
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
-
- # The C++ compiler must be used to create the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
- ;;
- *)
- # GNU C++ compiler with Solaris linker
- if test yes,no = "$GXX,$with_gnu_ld"; then
- _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs'
- if $CC --version | $GREP -v '^2\.7' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- else
- # g++ 2.7 appears to require '-G' NOT '-shared' on this
- # platform.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- fi
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
- ;;
- esac
- fi
- ;;
- esac
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We CANNOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
- '"$_LT_TAGVAR(old_archive_cmds, $1)"
- _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
- '"$_LT_TAGVAR(reload_cmds, $1)"
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- vxworks*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
- test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
-
- _LT_TAGVAR(GCC, $1)=$GXX
- _LT_TAGVAR(LD, $1)=$LD
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
- LDCXX=$LD
- LD=$lt_save_LD
- GCC=$lt_save_GCC
- with_gnu_ld=$lt_save_with_gnu_ld
- lt_cv_path_LDCXX=$lt_cv_path_LD
- lt_cv_path_LD=$lt_save_path_LD
- lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
- lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test yes != "$_lt_caught_CXX_error"
-
-AC_LANG_POP
-])# _LT_LANG_CXX_CONFIG
-
-
-# _LT_FUNC_STRIPNAME_CNF
-# ----------------------
-# func_stripname_cnf prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-#
-# This function is identical to the (non-XSI) version of func_stripname,
-# except this one can be used by m4 code that may be executed by configure,
-# rather than the libtool script.
-m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
-AC_REQUIRE([_LT_DECL_SED])
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
-func_stripname_cnf ()
-{
- case @S|@2 in
- .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;;
- *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;;
- esac
-} # func_stripname_cnf
-])# _LT_FUNC_STRIPNAME_CNF
-
-
-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-# ---------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
-# Dependencies to place before and after the object being linked:
-_LT_TAGVAR(predep_objects, $1)=
-_LT_TAGVAR(postdep_objects, $1)=
-_LT_TAGVAR(predeps, $1)=
-_LT_TAGVAR(postdeps, $1)=
-_LT_TAGVAR(compiler_lib_search_path, $1)=
-
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library. It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-int a;
-void foo (void) { a = 0; }
-_LT_EOF
-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-_LT_EOF
-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer*4 a
- a=0
- return
- end
-_LT_EOF
-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer a
- a=0
- return
- end
-_LT_EOF
-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-public class foo {
- private int a;
- public void bar (void) {
- a = 0;
- }
-};
-_LT_EOF
-], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
-package foo
-func foo() {
-}
-_LT_EOF
-])
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- for p in `eval "$output_verbose_link_cmd"`; do
- case $prev$p in
-
- -L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
- # Remove the space.
- if test x-L = "$p" ||
- test x-R = "$p"; then
- prev=$p
- continue
- fi
-
- # Expand the sysroot to ease extracting the directories later.
- if test -z "$prev"; then
- case $p in
- -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
- -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
- -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
- esac
- fi
- case $p in
- =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
- esac
- if test no = "$pre_test_object_deps_done"; then
- case $prev in
- -L | -R)
- # Internal compiler library paths should come after those
- # provided the user. The postdeps already come after the
- # user supplied libs so there is no need to process them.
- if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
- _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p
- else
- _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$_LT_TAGVAR(postdeps, $1)"; then
- _LT_TAGVAR(postdeps, $1)=$prev$p
- else
- _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p"
- fi
- fi
- prev=
- ;;
-
- *.lto.$objext) ;; # Ignore GCC LTO objects
- *.$objext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test no = "$pre_test_object_deps_done"; then
- if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
- _LT_TAGVAR(predep_objects, $1)=$p
- else
- _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
- fi
- else
- if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
- _LT_TAGVAR(postdep_objects, $1)=$p
- else
- _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-m4_if([$1], [CXX],
-[case $host_os in
-interix[[3-9]]*)
- # Interix 3.5 installs completely hosed .la files for C++, so rather than
- # hack all around it, let's just trust "g++" to DTRT.
- _LT_TAGVAR(predep_objects,$1)=
- _LT_TAGVAR(postdep_objects,$1)=
- _LT_TAGVAR(postdeps,$1)=
- ;;
-esac
-])
-
-case " $_LT_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'`
-fi
-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
- [The directories searched by this compiler when creating a shared library])
-_LT_TAGDECL([], [predep_objects], [1],
- [Dependencies to place before and after the objects being linked to
- create a shared library])
-_LT_TAGDECL([], [postdep_objects], [1])
-_LT_TAGDECL([], [predeps], [1])
-_LT_TAGDECL([], [postdeps], [1])
-_LT_TAGDECL([], [compiler_lib_search_path], [1],
- [The library search path used internally by the compiler when linking
- a shared library])
-])# _LT_SYS_HIDDEN_LIBDEPS
-
-
-# _LT_LANG_F77_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a Fortran 77 compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to 'libtool'.
-m4_defun([_LT_LANG_F77_CONFIG],
-[AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test no = "$F77"; then
- _lt_disable_F77=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the F77 compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test yes != "$_lt_disable_F77"; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC=$CC
- lt_save_GCC=$GCC
- lt_save_CFLAGS=$CFLAGS
- CC=${F77-"f77"}
- CFLAGS=$FFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
- GCC=$G77
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test no = "$can_build_shared" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test yes = "$enable_shared" && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test ia64 != "$host_cpu"; then
- case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
- yes,aix,yes) ;; # shared object as lib.so file only
- yes,svr4,*) ;; # shared object as lib.so archive member only
- yes,*) enable_static=no ;; # shared object in lib.a archive as well
- esac
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test yes = "$enable_shared" || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)=$G77
- _LT_TAGVAR(LD, $1)=$LD
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
-fi # test yes != "$_lt_disable_F77"
-
-AC_LANG_POP
-])# _LT_LANG_F77_CONFIG
-
-
-# _LT_LANG_FC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for a Fortran compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to 'libtool'.
-m4_defun([_LT_LANG_FC_CONFIG],
-[AC_LANG_PUSH(Fortran)
-
-if test -z "$FC" || test no = "$FC"; then
- _lt_disable_FC=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for fc test sources.
-ac_ext=${ac_fc_srcext-f}
-
-# Object file extension for compiled fc test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the FC compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test yes != "$_lt_disable_FC"; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC=$CC
- lt_save_GCC=$GCC
- lt_save_CFLAGS=$CFLAGS
- CC=${FC-"f95"}
- CFLAGS=$FCFLAGS
- compiler=$CC
- GCC=$ac_cv_fc_compiler_gnu
-
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test no = "$can_build_shared" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test yes = "$enable_shared" && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test ia64 != "$host_cpu"; then
- case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
- yes,aix,yes) ;; # shared object as lib.so file only
- yes,svr4,*) ;; # shared object as lib.so archive member only
- yes,*) enable_static=no ;; # shared object in lib.a archive as well
- esac
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test yes = "$enable_shared" || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu
- _LT_TAGVAR(LD, $1)=$LD
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
-fi # test yes != "$_lt_disable_FC"
-
-AC_LANG_POP
-])# _LT_LANG_FC_CONFIG
-
-
-# _LT_LANG_GCJ_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Java Compiler compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to 'libtool'.
-m4_defun([_LT_LANG_GCJ_CONFIG],
-[AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GCJ-"gcj"}
-CFLAGS=$GCJFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)=$LD
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GCJ_CONFIG
-
-
-# _LT_LANG_GO_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Go compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to 'libtool'.
-m4_defun([_LT_LANG_GO_CONFIG],
-[AC_REQUIRE([LT_PROG_GO])dnl
-AC_LANG_SAVE
-
-# Source file extension for Go test sources.
-ac_ext=go
-
-# Object file extension for compiled Go test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="package main; func main() { }"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='package main; func main() { }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GOC-"gccgo"}
-CFLAGS=$GOFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)=$LD
-_LT_CC_BASENAME([$compiler])
-
-# Go did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GO_CONFIG
-
-
-# _LT_LANG_RC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for the Windows resource compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to 'libtool'.
-m4_defun([_LT_LANG_RC_CONFIG],
-[AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code=$lt_simple_compile_test_code
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=
-CC=${RC-"windres"}
-CFLAGS=
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-if test -n "$compiler"; then
- :
- _LT_CONFIG($1)
-fi
-
-GCC=$lt_save_GCC
-AC_LANG_RESTORE
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_RC_CONFIG
-
-
-# LT_PROG_GCJ
-# -----------
-AC_DEFUN([LT_PROG_GCJ],
-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
- [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
- [AC_CHECK_TOOL(GCJ, gcj,)
- test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2"
- AC_SUBST(GCJFLAGS)])])[]dnl
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-
-
-# LT_PROG_GO
-# ----------
-AC_DEFUN([LT_PROG_GO],
-[AC_CHECK_TOOL(GOC, gccgo,)
-])
-
-
-# LT_PROG_RC
-# ----------
-AC_DEFUN([LT_PROG_RC],
-[AC_CHECK_TOOL(RC, windres,)
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_RC], [])
-
-
-# _LT_DECL_EGREP
-# --------------
-# If we don't have a new enough Autoconf to choose the best grep
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_EGREP],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_REQUIRE([AC_PROG_FGREP])dnl
-test -z "$GREP" && GREP=grep
-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-_LT_DECL([], [EGREP], [1], [An ERE matcher])
-_LT_DECL([], [FGREP], [1], [A literal string matcher])
-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-AC_SUBST([GREP])
-])
-
-
-# _LT_DECL_OBJDUMP
-# --------------
-# If we don't have a new enough Autoconf to choose the best objdump
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_OBJDUMP],
-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-AC_SUBST([OBJDUMP])
-])
-
-# _LT_DECL_DLLTOOL
-# ----------------
-# Ensure DLLTOOL variable is set.
-m4_defun([_LT_DECL_DLLTOOL],
-[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
-AC_SUBST([DLLTOOL])
-])
-
-# _LT_DECL_SED
-# ------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible. Prefer GNU sed if found.
-m4_defun([_LT_DECL_SED],
-[AC_PROG_SED
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
- [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-])# _LT_DECL_SED
-
-m4_ifndef([AC_PROG_SED], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_SED. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-
-m4_defun([AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for lt_ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
- lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
- fi
- done
- done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
- test ! -f "$lt_ac_sed" && continue
- cat /dev/null > conftest.in
- lt_ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >conftest.in
- # Check for GNU sed and select it if it is found.
- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
- lt_cv_path_SED=$lt_ac_sed
- break
- fi
- while true; do
- cat conftest.in conftest.in >conftest.tmp
- mv conftest.tmp conftest.in
- cp conftest.in conftest.nl
- echo >>conftest.nl
- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
- cmp -s conftest.out conftest.nl || break
- # 10000 chars as input seems more than enough
- test 10 -lt "$lt_ac_count" && break
- lt_ac_count=`expr $lt_ac_count + 1`
- if test "$lt_ac_count" -gt "$lt_ac_max"; then
- lt_ac_max=$lt_ac_count
- lt_cv_path_SED=$lt_ac_sed
- fi
- done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])#AC_PROG_SED
-])#m4_ifndef
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_SED], [])
-
-
-# _LT_CHECK_SHELL_FEATURES
-# ------------------------
-# Find out whether the shell is Bourne or XSI compatible,
-# or has some other useful features.
-m4_defun([_LT_CHECK_SHELL_FEATURES],
-[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-])# _LT_CHECK_SHELL_FEATURES
-
-
-# _LT_PATH_CONVERSION_FUNCTIONS
-# -----------------------------
-# Determine what file name conversion functions should be used by
-# func_to_host_file (and, implicitly, by func_to_host_path). These are needed
-# for certain cross-compile configurations and native mingw.
-m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_MSG_CHECKING([how to convert $build file names to $host format])
-AC_CACHE_VAL(lt_cv_to_host_file_cmd,
-[case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
- ;;
- esac
- ;;
- *-*-cygwin* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
- ;;
- esac
- ;;
- * ) # unhandled hosts (and "normal" native builds)
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
-esac
-])
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
-_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
- [0], [convert $build file names to $host format])dnl
-
-AC_MSG_CHECKING([how to convert $build file names to toolchain format])
-AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
-[#assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
- ;;
- esac
- ;;
-esac
-])
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
-_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
- [0], [convert $build files to toolchain format])dnl
-])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ltoptions.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ltoptions.m4
deleted file mode 100644
index 94b082976..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ltoptions.m4
+++ /dev/null
@@ -1,437 +0,0 @@
-# Helper functions for option handling. -*- Autoconf -*-
-#
-# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
-# Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 8 ltoptions.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-
-
-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-# ------------------------------------------
-m4_define([_LT_MANGLE_OPTION],
-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-
-
-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-# ---------------------------------------
-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-# matching handler defined, dispatch to it. Other OPTION-NAMEs are
-# saved as a flag.
-m4_define([_LT_SET_OPTION],
-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
- _LT_MANGLE_DEFUN([$1], [$2]),
- [m4_warning([Unknown $1 option '$2'])])[]dnl
-])
-
-
-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-# ------------------------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-m4_define([_LT_IF_OPTION],
-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-
-
-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-# -------------------------------------------------------
-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-# are set.
-m4_define([_LT_UNLESS_OPTIONS],
-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
- [m4_define([$0_found])])])[]dnl
-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-])[]dnl
-])
-
-
-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-# ----------------------------------------
-# OPTION-LIST is a space-separated list of Libtool options associated
-# with MACRO-NAME. If any OPTION has a matching handler declared with
-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-# the unknown option and exit.
-m4_defun([_LT_SET_OPTIONS],
-[# Set options
-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [_LT_SET_OPTION([$1], _LT_Option)])
-
-m4_if([$1],[LT_INIT],[
- dnl
- dnl Simply set some default values (i.e off) if boolean options were not
- dnl specified:
- _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
- ])
- _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
- ])
- dnl
- dnl If no reference was made to various pairs of opposing options, then
- dnl we run the default mode handler for the pair. For example, if neither
- dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
- dnl archives by default:
- _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
- _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
- [_LT_ENABLE_FAST_INSTALL])
- _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
- [_LT_WITH_AIX_SONAME([aix])])
- ])
-])# _LT_SET_OPTIONS
-
-
-## --------------------------------- ##
-## Macros to handle LT_INIT options. ##
-## --------------------------------- ##
-
-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-# -----------------------------------------
-m4_define([_LT_MANGLE_DEFUN],
-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-
-
-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-# -----------------------------------------------
-m4_define([LT_OPTION_DEFINE],
-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-])# LT_OPTION_DEFINE
-
-
-# dlopen
-# ------
-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-])
-
-AU_DEFUN([AC_LIBTOOL_DLOPEN],
-[_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the 'dlopen' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-
-
-# win32-dll
-# ---------
-# Declare package support for building win32 dll's.
-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-[enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
- AC_CHECK_TOOL(AS, as, false)
- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
- AC_CHECK_TOOL(OBJDUMP, objdump, false)
- ;;
-esac
-
-test -z "$AS" && AS=as
-_LT_DECL([], [AS], [1], [Assembler program])dnl
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
-])# win32-dll
-
-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the 'win32-dll' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-
-
-# _LT_ENABLE_SHARED([DEFAULT])
-# ----------------------------
-# implement the --enable-shared flag, and supports the 'shared' and
-# 'disable-shared' LT_INIT options.
-# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
-m4_define([_LT_ENABLE_SHARED],
-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([shared],
- [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
- [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for pkg in $enableval; do
- IFS=$lt_save_ifs
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac],
- [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-
- _LT_DECL([build_libtool_libs], [enable_shared], [0],
- [Whether or not to build shared libraries])
-])# _LT_ENABLE_SHARED
-
-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-
-AC_DEFUN([AC_DISABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-
-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-
-
-
-# _LT_ENABLE_STATIC([DEFAULT])
-# ----------------------------
-# implement the --enable-static flag, and support the 'static' and
-# 'disable-static' LT_INIT options.
-# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
-m4_define([_LT_ENABLE_STATIC],
-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([static],
- [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
- [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for pkg in $enableval; do
- IFS=$lt_save_ifs
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac],
- [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-
- _LT_DECL([build_old_libs], [enable_static], [0],
- [Whether or not to build static libraries])
-])# _LT_ENABLE_STATIC
-
-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-
-AC_DEFUN([AC_DISABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-
-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-
-
-
-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-# ----------------------------------
-# implement the --enable-fast-install flag, and support the 'fast-install'
-# and 'disable-fast-install' LT_INIT options.
-# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
-m4_define([_LT_ENABLE_FAST_INSTALL],
-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([fast-install],
- [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
- [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for pkg in $enableval; do
- IFS=$lt_save_ifs
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac],
- [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-
-_LT_DECL([fast_install], [enable_fast_install], [0],
- [Whether or not to optimize for fast installation])dnl
-])# _LT_ENABLE_FAST_INSTALL
-
-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-
-# Old names:
-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the 'fast-install' option into LT_INIT's first parameter.])
-])
-
-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the 'disable-fast-install' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-
-
-# _LT_WITH_AIX_SONAME([DEFAULT])
-# ----------------------------------
-# implement the --with-aix-soname flag, and support the `aix-soname=aix'
-# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
-# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'.
-m4_define([_LT_WITH_AIX_SONAME],
-[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
-shared_archive_member_spec=
-case $host,$enable_shared in
-power*-*-aix[[5-9]]*,yes)
- AC_MSG_CHECKING([which variant of shared library versioning to provide])
- AC_ARG_WITH([aix-soname],
- [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
- [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
- [case $withval in
- aix|svr4|both)
- ;;
- *)
- AC_MSG_ERROR([Unknown argument to --with-aix-soname])
- ;;
- esac
- lt_cv_with_aix_soname=$with_aix_soname],
- [AC_CACHE_VAL([lt_cv_with_aix_soname],
- [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
- with_aix_soname=$lt_cv_with_aix_soname])
- AC_MSG_RESULT([$with_aix_soname])
- if test aix != "$with_aix_soname"; then
- # For the AIX way of multilib, we name the shared archive member
- # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
- # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
- # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
- # the AIX toolchain works better with OBJECT_MODE set (default 32).
- if test 64 = "${OBJECT_MODE-32}"; then
- shared_archive_member_spec=shr_64
- else
- shared_archive_member_spec=shr
- fi
- fi
- ;;
-*)
- with_aix_soname=aix
- ;;
-esac
-
-_LT_DECL([], [shared_archive_member_spec], [0],
- [Shared archive member basename, for filename based shared library versioning on AIX])dnl
-])# _LT_WITH_AIX_SONAME
-
-LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
-LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
-LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
-
-
-# _LT_WITH_PIC([MODE])
-# --------------------
-# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
-# LT_INIT options.
-# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'.
-m4_define([_LT_WITH_PIC],
-[AC_ARG_WITH([pic],
- [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
- [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
- [lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for lt_pkg in $withval; do
- IFS=$lt_save_ifs
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac],
- [pic_mode=m4_default([$1], [default])])
-
-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-])# _LT_WITH_PIC
-
-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-
-# Old name:
-AU_DEFUN([AC_LIBTOOL_PICMODE],
-[_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the 'pic-only' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-
-## ----------------- ##
-## LTDL_INIT Options ##
-## ----------------- ##
-
-m4_define([_LTDL_MODE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
- [m4_define([_LTDL_MODE], [nonrecursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
- [m4_define([_LTDL_MODE], [recursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
- [m4_define([_LTDL_MODE], [subproject])])
-
-m4_define([_LTDL_TYPE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [installable],
- [m4_define([_LTDL_TYPE], [installable])])
-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
- [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ltsugar.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ltsugar.m4
deleted file mode 100644
index 48bc9344a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ltsugar.m4
+++ /dev/null
@@ -1,124 +0,0 @@
-# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
-#
-# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
-# Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltsugar.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-
-
-# lt_join(SEP, ARG1, [ARG2...])
-# -----------------------------
-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-# associated separator.
-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-# versions in m4sugar had bugs.
-m4_define([lt_join],
-[m4_if([$#], [1], [],
- [$#], [2], [[$2]],
- [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-m4_define([_lt_join],
-[m4_if([$#$2], [2], [],
- [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-
-
-# lt_car(LIST)
-# lt_cdr(LIST)
-# ------------
-# Manipulate m4 lists.
-# These macros are necessary as long as will still need to support
-# Autoconf-2.59, which quotes differently.
-m4_define([lt_car], [[$1]])
-m4_define([lt_cdr],
-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
- [$#], 1, [],
- [m4_dquote(m4_shift($@))])])
-m4_define([lt_unquote], $1)
-
-
-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
-# Note that neither SEPARATOR nor STRING are expanded; they are appended
-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-# than defined and empty).
-#
-# This macro is needed until we can rely on Autoconf 2.62, since earlier
-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-m4_define([lt_append],
-[m4_define([$1],
- m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-
-
-
-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-# ----------------------------------------------------------
-# Produce a SEP delimited list of all paired combinations of elements of
-# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
-# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
-m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
- [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
- [m4_foreach([_Lt_suffix],
- ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
- [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-
-
-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-# -----------------------------------------------------------------------
-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-m4_define([lt_if_append_uniq],
-[m4_ifdef([$1],
- [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
- [lt_append([$1], [$2], [$3])$4],
- [$5])],
- [lt_append([$1], [$2], [$3])$4])])
-
-
-# lt_dict_add(DICT, KEY, VALUE)
-# -----------------------------
-m4_define([lt_dict_add],
-[m4_define([$1($2)], [$3])])
-
-
-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-# --------------------------------------------
-m4_define([lt_dict_add_subkey],
-[m4_define([$1($2:$3)], [$4])])
-
-
-# lt_dict_fetch(DICT, KEY, [SUBKEY])
-# ----------------------------------
-m4_define([lt_dict_fetch],
-[m4_ifval([$3],
- m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
- m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-
-
-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-# -----------------------------------------------------------------
-m4_define([lt_if_dict_fetch],
-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
- [$5],
- [$6])])
-
-
-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-# --------------------------------------------------------------
-m4_define([lt_dict_filter],
-[m4_if([$5], [], [],
- [lt_join(m4_quote(m4_default([$4], [[, ]])),
- lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
- [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/ltversion.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/ltversion.m4
deleted file mode 100644
index fa04b52a3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/ltversion.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# ltversion.m4 -- version numbers -*- Autoconf -*-
-#
-# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# @configure_input@
-
-# serial 4179 ltversion.m4
-# This file is part of GNU Libtool
-
-m4_define([LT_PACKAGE_VERSION], [2.4.6])
-m4_define([LT_PACKAGE_REVISION], [2.4.6])
-
-AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.6'
-macro_revision='2.4.6'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/lt~obsolete.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/lt~obsolete.m4
deleted file mode 100644
index c6b26f88f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/lt~obsolete.m4
+++ /dev/null
@@ -1,99 +0,0 @@
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
-#
-# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
-# Foundation, Inc.
-# Written by Scott James Remnant, 2004.
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 5 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else. This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
-m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
-m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/m4/visibility.m4 b/FreeRTOS-Plus/Source/WolfSSL/m4/visibility.m4
deleted file mode 100644
index 7e9976475..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/m4/visibility.m4
+++ /dev/null
@@ -1,77 +0,0 @@
-# visibility.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2005, 2008, 2010-2018 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-dnl Tests whether the compiler supports the command-line option
-dnl -fvisibility=hidden and the function and variable attributes
-dnl __attribute__((__visibility__("hidden"))) and
-dnl __attribute__((__visibility__("default"))).
-dnl Does *not* test for __visibility__("protected") - which has tricky
-dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
-dnl Mac OS X.
-dnl Does *not* test for __visibility__("internal") - which has processor
-dnl dependent semantics.
-dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
-dnl "really only recommended for legacy code".
-dnl Set the variable CFLAG_VISIBILITY.
-dnl Defines and sets the variable HAVE_VISIBILITY.
-
-AC_DEFUN([gl_VISIBILITY],
-[
- AC_REQUIRE([AC_PROG_CC])
- CFLAG_VISIBILITY=
- HAVE_VISIBILITY=0
- if test -n "$GCC"; then
- dnl First, check whether -Werror can be added to the command line, or
- dnl whether it leads to an error because of some other option that the
- dnl user has put into $CC $CFLAGS $CPPFLAGS.
- AC_MSG_CHECKING([whether the -Werror option is usable])
- AC_CACHE_VAL([gl_cv_cc_vis_werror], [
- gl_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror"
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[]], [[]])],
- [gl_cv_cc_vis_werror=yes],
- [gl_cv_cc_vis_werror=no])
- CFLAGS="$gl_save_CFLAGS"])
- AC_MSG_RESULT([$gl_cv_cc_vis_werror])
- dnl Now check whether visibility declarations are supported.
- AC_MSG_CHECKING([for simple visibility declarations])
- AC_CACHE_VAL([gl_cv_cc_visibility], [
- gl_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -fvisibility=hidden"
- dnl We use the option -Werror and a function dummyfunc, because on some
- dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning
- dnl "visibility attribute not supported in this configuration; ignored"
- dnl at the first function definition in every compilation unit, and we
- dnl don't want to use the option in this case.
- if test $gl_cv_cc_vis_werror = yes; then
- CFLAGS="$CFLAGS -Werror"
- fi
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[extern __attribute__((__visibility__("hidden"))) int hiddenvar;
- extern __attribute__((__visibility__("default"))) int exportedvar;
- extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
- extern __attribute__((__visibility__("default"))) int exportedfunc (void);
- void dummyfunc (void) {}
- ]],
- [[]])],
- [gl_cv_cc_visibility=yes],
- [gl_cv_cc_visibility=no])
- CFLAGS="$gl_save_CFLAGS"])
- AC_MSG_RESULT([$gl_cv_cc_visibility])
- if test $gl_cv_cc_visibility = yes; then
- CFLAG_VISIBILITY="-fvisibility=hidden"
- HAVE_VISIBILITY=1
- fi
- fi
- AC_SUBST([CFLAG_VISIBILITY])
- AC_SUBST([HAVE_VISIBILITY])
- AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
- [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
-])
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/PIC32MZ-serial.h b/FreeRTOS-Plus/Source/WolfSSL/mcapi/PIC32MZ-serial.h
deleted file mode 100644
index b0df814c8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/PIC32MZ-serial.h
+++ /dev/null
@@ -1,75 +0,0 @@
-void _mon_putc(char c);
-
-#define BAUD_GEN(sysclk, baud) ((sysclk / (16 * baud)) - 1)
-
-#ifdef MICROCHIP_PIC32
-#if defined (__32MZ2048ECH144__) || defined(__32MZ2048ECM144__) || defined(__32MZ2048EFM144__)
- /* Code generated from Harmony example then exported using Window -> PIC32 Memory View -> Configuration Bits into system_config.h */
- #define SYS_CLK_FREQ 200000000ul
- #define SYS_CLK_BUS_PERIPHERAL_2 100000000ul
-
- // DEVCFG3
- #pragma config FMIIEN = ON // Ethernet RMII/MII Enable (MII Enabled)
- #pragma config FETHIO = ON // Ethernet I/O Pin Select (Default Ethernet I/O)
- #pragma config PGL1WAY = ON // Permission Group Lock One Way Configuration (Allow only one reconfiguration)
- #pragma config PMDL1WAY = ON // Peripheral Module Disable Configuration (Allow only one reconfiguration)
- #pragma config IOL1WAY = ON // Peripheral Pin Select Configuration (Allow only one reconfiguration)
- #pragma config FUSBIDIO = ON // USB USBID Selection (Controlled by the USB Module)
-
- // DEVCFG2
- #pragma config FPLLIDIV = DIV_1 // System PLL Input Divider (1x Divider)
- #pragma config FPLLRNG = RANGE_5_10_MHZ // System PLL Input Range (5-10 MHz Input)
- #pragma config FPLLICLK = PLL_FRC // System PLL Input Clock Selection (FRC is input to the System PLL)
- #pragma config FPLLMULT = MUL_50 // System PLL Multiplier (PLL Multiply by 50)
- #pragma config FPLLODIV = DIV_2 // System PLL Output Clock Divider (2x Divider)
- #pragma config UPLLFSEL = FREQ_24MHZ // USB PLL Input Frequency Selection (USB PLL input is 24 MHz)
-
- // DEVCFG1
- #pragma config FNOSC = SPLL // Oscillator Selection Bits (System PLL)
- #pragma config DMTINTV = WIN_127_128 // DMT Count Window Interval (Window/Interval value is 127/128 counter value)
- #pragma config FSOSCEN = OFF // Secondary Oscillator Enable (Disable SOSC)
- #pragma config IESO = OFF // Internal/External Switch Over (Disabled)
- #pragma config POSCMOD = OFF // Primary Oscillator Configuration (Primary osc disabled)
- #pragma config OSCIOFNC = OFF // CLKO Output Signal Active on the OSCO Pin (Disabled)
- #pragma config FCKSM = CSECME // Clock Switching and Monitor Selection (Clock Switch Enabled, FSCM Enabled)
- #pragma config WDTPS = PS1048576 // Watchdog Timer Postscaler (1:1048576)
- #pragma config WDTSPGM = STOP // Watchdog Timer Stop During Flash Programming (WDT stops during Flash programming)
- #pragma config WINDIS = NORMAL // Watchdog Timer Window Mode (Watchdog Timer is in non-Window mode)
- #pragma config FWDTEN = OFF // Watchdog Timer Enable (WDT Disabled)
- #pragma config FWDTWINSZ = WINSZ_25 // Watchdog Timer Window Size (Window size is 25%)
- #pragma config DMTCNT = DMT31 // Deadman Timer Count Selection (2^31 (2147483648))
- #pragma config FDMTEN = OFF // Deadman Timer Enable (Deadman Timer is disabled)
-
- // DEVCFG0
- #pragma config ICESEL = ICS_PGx2 // ICE/ICD Comm Channel Select (Communicate on PGEC2/PGED2)
-
- // DEVCP0
- #pragma config CP = OFF // Code Protect (Protection Disabled)
-
- #include <xc.h>
-#endif
-#endif
-
-static void init_serial(unsigned int sysClk) {
-#ifdef MICROCHIP_PIC32
-#if defined (__32MZ2048ECH144__) || defined(__32MZ2048ECM144__) || defined(__32MZ2048EFM144__)
- /* This is for pin B14 which is connected to the USB to UART connector J11 located under Ethernet connector */
-
- /* Setup UART2 */
-#ifdef SYS_CLK_BUS_PERIPHERAL_2
- U2BRG = BAUD_GEN(SYS_CLK_BUS_PERIPHERAL_2, 115200);
-#else
- if (sysClk > 100000000)
- sysClk /= 2;
- U2BRG = BAUD_GEN(sysClk, 115200);
-#endif
- ANSELBCLR = 0x4000;
- ANSELGCLR = 0x0040;
- RPB14R = 0x02;
- U2RXR = 0x01;
- U2MODE = 0x8000;
- U2STA = 0x400;
-#endif
-#endif
- (void)sysClk;
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/README b/FreeRTOS-Plus/Source/WolfSSL/mcapi/README
deleted file mode 100644
index 2cfb368b4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/README
+++ /dev/null
@@ -1,79 +0,0 @@
-WolfSSL MPLAB X Project Files
-
-This directory contains project files for the Microchip MPLAB X IDE. These
-projects have been set up to use the Microchip PIC32 Ethernet Starter Kit
-and the Microchip XC32 compiler, and have been created specifically to test
-the Microchip-specific WolfCrypt API with compression support. For MPLAB X
-projects that don't use compression and are generic to the WolfCrypt API,
-please see the <wolfssl_root>/mplabx directory.
-
-In order to generate the necessary auto-generated MPLAB X files, make sure
-to import the cyassl.X and zlib.X projects into your MPLAB X workspace before
-trying to build either the WolfCrypt test or benchmark applications. This will
-correctly set up the respective project's Makefiles.
-
-Included Project Files
------------------------
-
-1. wolfSSL library (wolfssl.X)
-
- This project builds a static wolfSSL library. Prior to building this
- project, uncomment the MICROCHIP_PIC32 define located in:
-
- <wolfssl_root>/wolfssl/wolfcrypt/settings.h
-
- After this project has been built, the compiled library will be located
- at:
-
- <wolfssl_root>/mplabx/wolfssl.X/dist/default/production/wolfssl.X.a
-
- Note that this project includes the zlib header location in the project's
- include paths. This is because this project has been set up to be compiled
- with zlib support to enable compression and decompression features.
-
-2. wolfCrypt Test App (wolfcrypt_test.X)
-
- This project tests the wolfCrypt cryptography modules. It is generally
- a good idea to run this first on an embedded system after compiling
- wolfSSL in order to verify all underlying crypto is working correctly.
-
-3. wolfCrypt Benchmark App (wolfcrypt_benchmark.X)
-
- This project builds the wolfCrypt benchmark application. If the wolfSSL
- project (wolfssl.X) has been compiled with libz support and is being
- used to build this project, the zlib.X project will need to added to
- the "Libraries" folder under the wolfcrypt_benchmark.X project before
- it will compile successfully.
-
-4. wolfCrypt MCAPI Test App (wolfcrypt_mcapi.X)
-
- This project tests the Microchip crypto API layer. The Microchip crypto
- layer is located under the <wolfssl_root>/mcapi directory.
-
-5. zlib library (zlib.X)
-
- This project builds the zlib library for use in the wolfcrypt_test.X
- and wolfcrypt_mcapi.X projects. This project expects the zlib sources
- to be located under the wolfSSL root directory. Currently it is set up
- to work with zlib 1.2.8, and looks for sources under:
-
- <wolfssl_root>/zlib-1.2.8
-
-PIC32MX/PIC32MZ
----------------
-
-The projects are set for PIC32MX by default. For PIC32MZ, change project
-properties->Devices and add "WOLFSSL_MICROCHIP_PIC32M" to
-XC32-gcc->Preprocessing and messages-> Preprocessor macros.
-
-MIPS16 and MIPS32 Support
--------------------------
-
-These projects support both MIPS16 and MIPS32 instruction sets. Switching
-between these two instruction sets can be done in each project's properties
-settings by checking the "Generate 16-bit code" checkbox.
-
-Support
--------
-Please send questions or comments to support@wolfssl.com
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/crypto.c b/FreeRTOS-Plus/Source/WolfSSL/mcapi/crypto.c
deleted file mode 100644
index 9437f1ede..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/crypto.c
+++ /dev/null
@@ -1,782 +0,0 @@
-/* crypto.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/* Implements Microchip CRYPTO API layer */
-#ifdef HAVE_CONFIG_H
- #include "config.h"
-#endif
-#ifdef MICROCHIP_MPLAB_HARMONY
- #include "system_config.h"
- #include "crypto/crypto.h"
-#else
- #include "crypto.h"
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#include <wolfssl/wolfcrypt/md5.h>
-#include <wolfssl/wolfcrypt/sha.h>
-#include <wolfssl/wolfcrypt/sha256.h>
-#include <wolfssl/wolfcrypt/sha512.h>
-#include <wolfssl/wolfcrypt/hmac.h>
-#include <wolfssl/wolfcrypt/compress.h>
-#include <wolfssl/wolfcrypt/random.h>
-#include <wolfssl/wolfcrypt/des3.h>
-#include <wolfssl/wolfcrypt/aes.h>
-#include <wolfssl/wolfcrypt/rsa.h>
-#include <wolfssl/wolfcrypt/ecc.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-
-#ifndef NO_MD5
-/* Initialize MD5 */
-int CRYPT_MD5_Initialize(CRYPT_MD5_CTX* md5)
-{
- typedef char md5_test[sizeof(CRYPT_MD5_CTX) >= sizeof(Md5) ? 1 : -1];
- (void)sizeof(md5_test);
-
- if (md5 == NULL)
- return BAD_FUNC_ARG;
-
- return wc_InitMd5((Md5*)md5);
-}
-
-int CRYPT_MD5_DataSizeSet(CRYPT_MD5_CTX* md5, unsigned int sz)
-{
- if (md5 == NULL)
- return BAD_FUNC_ARG;
-
-#ifdef WOLFSSL_PIC32MZ_HASH
- wc_Md5SizeSet((Md5*)md5, sz);
-#else
- (void)sz;
-#endif
-
- return 0;
-}
-
-/* Add data to MD5 */
-int CRYPT_MD5_DataAdd(CRYPT_MD5_CTX* md5, const unsigned char* input,
- unsigned int sz)
-{
- if (md5 == NULL || input == NULL)
- return BAD_FUNC_ARG;
-
- return wc_Md5Update((Md5*)md5, input, sz);
-}
-
-
-/* Get MD5 Final into digest */
-int CRYPT_MD5_Finalize(CRYPT_MD5_CTX* md5, unsigned char* digest)
-{
- if (md5 == NULL || digest == NULL)
- return BAD_FUNC_ARG;
-
- return wc_Md5Final((Md5*)md5, digest);
-}
-#endif
-
-#ifndef NO_SHA
-
-/* Initialize SHA */
-int CRYPT_SHA_Initialize(CRYPT_SHA_CTX* sha)
-{
- typedef char sha_test[sizeof(CRYPT_SHA_CTX) >= sizeof(Sha) ? 1 : -1];
- (void)sizeof(sha_test);
-
- if (sha == NULL)
- return BAD_FUNC_ARG;
-
- return wc_InitSha((wc_Sha*)sha);
-}
-
-int CRYPT_SHA_DataSizeSet(CRYPT_SHA_CTX* sha, unsigned int sz)
-{
- if (sha == NULL)
- return BAD_FUNC_ARG;
-
-#ifdef WOLFSSL_PIC32MZ_HASH
- wc_ShaSizeSet((wc_Sha*)sha, sz);
-#else
- (void)sz;
-#endif
-
- return 0;
-}
-
-/* Add data to SHA */
-int CRYPT_SHA_DataAdd(CRYPT_SHA_CTX* sha, const unsigned char* input,
- unsigned int sz)
-{
- if (sha == NULL || input == NULL)
- return BAD_FUNC_ARG;
-
- return wc_ShaUpdate((wc_Sha*)sha, input, sz);
-}
-
-
-/* Get SHA Final into digest */
-int CRYPT_SHA_Finalize(CRYPT_SHA_CTX* sha, unsigned char* digest)
-{
- if (sha == NULL || digest == NULL)
- return BAD_FUNC_ARG;
-
- return wc_ShaFinal((wc_Sha*)sha, digest);
-}
-#endif
-
-#ifndef NO_SHA256
-
-/* Initialize SHA-256 */
-int CRYPT_SHA256_Initialize(CRYPT_SHA256_CTX* sha256)
-{
- typedef char sha_test[sizeof(CRYPT_SHA256_CTX) >= sizeof(wc_Sha256) ? 1 : -1];
- (void)sizeof(sha_test);
-
- if (sha256 == NULL)
- return BAD_FUNC_ARG;
-
- return wc_InitSha256((wc_Sha256*)sha256);
-}
-
-int CRYPT_SHA256_DataSizeSet(CRYPT_SHA256_CTX* sha256, unsigned int sz)
-{
- if (sha256 == NULL)
- return BAD_FUNC_ARG;
-
-#ifdef WOLFSSL_PIC32MZ_HASH
- wc_Sha256SizeSet((wc_Sha256*)sha256, sz);
-#else
- (void)sz;
-#endif
-
- return 0;
-}
-
-/* Add data to SHA-256 */
-int CRYPT_SHA256_DataAdd(CRYPT_SHA256_CTX* sha256, const unsigned char* input,
- unsigned int sz)
-{
- if (sha256 == NULL || input == NULL)
- return BAD_FUNC_ARG;
-
- return wc_Sha256Update((wc_Sha256*)sha256, input, sz);
-}
-
-
-/* Get SHA-256 Final into digest */
-int CRYPT_SHA256_Finalize(CRYPT_SHA256_CTX* sha256, unsigned char* digest)
-{
- if (sha256 == NULL || digest == NULL)
- return BAD_FUNC_ARG;
-
- return wc_Sha256Final((wc_Sha256*)sha256, digest);
-}
-#endif
-
-#ifdef WOLFSSL_SHA512
-#ifdef WOLFSSL_SHA384
-/* Initialize SHA-384 */
-int CRYPT_SHA384_Initialize(CRYPT_SHA384_CTX* sha384)
-{
- typedef char sha_test[sizeof(CRYPT_SHA384_CTX) >= sizeof(wc_Sha384) ? 1 : -1];
- (void)sizeof(sha_test);
-
- if (sha384 == NULL)
- return BAD_FUNC_ARG;
-
- return wc_InitSha384((wc_Sha384*)sha384);
-}
-
-
-/* Add data to SHA-384 */
-int CRYPT_SHA384_DataAdd(CRYPT_SHA384_CTX* sha384, const unsigned char* input,
- unsigned int sz)
-{
- if (sha384 == NULL || input == NULL)
- return BAD_FUNC_ARG;
-
- return wc_Sha384Update((wc_Sha384*)sha384, input, sz);
-}
-
-
-/* Get SHA-384 Final into digest */
-int CRYPT_SHA384_Finalize(CRYPT_SHA384_CTX* sha384, unsigned char* digest)
-{
- if (sha384 == NULL || digest == NULL)
- return BAD_FUNC_ARG;
-
- return wc_Sha384Final((wc_Sha384*)sha384, digest);
-}
-#endif
-
-
-/* Initialize SHA-512 */
-int CRYPT_SHA512_Initialize(CRYPT_SHA512_CTX* sha512)
-{
- typedef char sha_test[sizeof(CRYPT_SHA512_CTX) >= sizeof(wc_Sha512) ? 1 : -1];
- (void)sizeof(sha_test);
-
- if (sha512 == NULL)
- return BAD_FUNC_ARG;
-
- return wc_InitSha512((wc_Sha512*)sha512);
-}
-
-
-/* Add data to SHA-512 */
-int CRYPT_SHA512_DataAdd(CRYPT_SHA512_CTX* sha512, const unsigned char* input,
- unsigned int sz)
-{
- if (sha512 == NULL || input == NULL)
- return BAD_FUNC_ARG;
-
- return wc_Sha512Update((wc_Sha512*)sha512, input, sz);
-}
-
-
-/* Get SHA-512 Final into digest */
-int CRYPT_SHA512_Finalize(CRYPT_SHA512_CTX* sha512, unsigned char* digest)
-{
- if (sha512 == NULL || digest == NULL)
- return BAD_FUNC_ARG;
-
- return wc_Sha512Final((wc_Sha512*)sha512, digest);
-}
-#endif
-
-#ifndef NO_HMAC
-/* Set HMAC key with type */
-int CRYPT_HMAC_SetKey(CRYPT_HMAC_CTX* hmac, int type, const unsigned char* key,
- unsigned int sz)
-{
- /* compile-time check to verify CRYPT_HMAC_CTX is large enough to hold Hmac */
- typedef char hmac_test[sizeof(CRYPT_HMAC_CTX) >= sizeof(Hmac) ? 1 : -1];
- (void)sizeof(hmac_test);
-
- if (hmac == NULL || key == NULL)
- return BAD_FUNC_ARG;
-
- if (type != CRYPT_HMAC_SHA && type != CRYPT_HMAC_SHA256 &&
- type != CRYPT_HMAC_SHA384 && type != CRYPT_HMAC_SHA512) {
- return BAD_FUNC_ARG; /* bad hmac type */
- }
-
- return wc_HmacSetKey((Hmac*)hmac, type, key, sz);
-}
-
-
-int CRYPT_HMAC_DataAdd(CRYPT_HMAC_CTX* hmac, const unsigned char* input,
- unsigned int sz)
-{
- if (hmac == NULL || input == NULL)
- return BAD_FUNC_ARG;
-
- return wc_HmacUpdate((Hmac*)hmac, input, sz);
-}
-
-
-/* Get HMAC Final into digest */
-int CRYPT_HMAC_Finalize(CRYPT_HMAC_CTX* hmac, unsigned char* digest)
-{
- if (hmac == NULL || digest == NULL)
- return BAD_FUNC_ARG;
-
- return wc_HmacFinal((Hmac*)hmac, digest);
-}
-
-#endif
-
-#ifdef HAVE_LIBZ
-
-/* Huffman Compression, set flag to do static, otherwise dynamic */
-/* return compressed size, otherwise < 0 for error */
-int CRYPT_HUFFMAN_Compress(unsigned char* out, unsigned int outSz,
- const unsigned char* in, unsigned int inSz,
- unsigned int flags)
-{
- if (out == NULL || in == NULL)
- return BAD_FUNC_ARG;
-
- return wc_Compress(out, outSz, in, inSz, flags);
-}
-
-
-/* Huffman DeCompression, self determines type */
-/* return decompressed size, otherwise < 0 for error */
-int CRYPT_HUFFMAN_DeCompress(unsigned char* out, unsigned int outSz,
- const unsigned char* in, unsigned int inSz)
-{
- if (out == NULL || in == NULL)
- return BAD_FUNC_ARG;
-
- return wc_DeCompress(out, outSz, in, inSz);
-}
-
-#endif
-
-#ifndef NO_RNG
-
-/* RNG Initialize, < 0 on error */
-int CRYPT_RNG_Initialize(CRYPT_RNG_CTX* rng)
-{
- typedef char rng_test[sizeof(CRYPT_RNG_CTX) >= sizeof(WC_RNG) ? 1 : -1];
- (void)sizeof(rng_test);
-
- if (rng == NULL)
- return BAD_FUNC_ARG;
-
- return wc_InitRng((WC_RNG*)rng);
-}
-
-
-/* RNG Get single bytes, < 0 on error */
-int CRYPT_RNG_Get(CRYPT_RNG_CTX* rng, unsigned char* b)
-{
- if (rng == NULL || b == NULL)
- return BAD_FUNC_ARG;
-
- return wc_RNG_GenerateByte((WC_RNG*)rng, (byte*)b);
-}
-
-
-/* RNG Block Generation of sz bytes, < 0 on error */
-int CRYPT_RNG_BlockGenerate(CRYPT_RNG_CTX* rng, unsigned char* b,
- unsigned int sz)
-{
- if (rng == NULL || b == NULL)
- return BAD_FUNC_ARG;
-
- return wc_RNG_GenerateBlock((WC_RNG*)rng, b, sz);
-}
-
-#endif
-
-#ifndef NO_DES3
-/* Triple DES Key Set, may have iv, will have direction */
-int CRYPT_TDES_KeySet(CRYPT_TDES_CTX* tdes, const unsigned char* key,
- const unsigned char* iv, int dir)
-{
- typedef char tdes_test[sizeof(CRYPT_TDES_CTX) >= sizeof(Des3) ? 1 : -1];
- (void)sizeof(tdes_test);
-
- if (tdes == NULL || key == NULL)
- return BAD_FUNC_ARG;
-
- return wc_Des3_SetKey((Des3*)tdes, key, iv, dir);
-}
-
-
-/* Triple DES Iv Set, sometimes added later */
-int CRYPT_TDES_IvSet(CRYPT_TDES_CTX* tdes, const unsigned char* iv)
-{
- if (tdes == NULL || iv == NULL)
- return BAD_FUNC_ARG;
-
- return wc_Des3_SetIV((Des3*)tdes, iv);
-}
-
-
-/* Triple DES CBC Encrypt */
-int CRYPT_TDES_CBC_Encrypt(CRYPT_TDES_CTX* tdes, unsigned char* out,
- const unsigned char* in, unsigned int inSz)
-{
- if (tdes == NULL || out == NULL || in == NULL)
- return BAD_FUNC_ARG;
-
- return wc_Des3_CbcEncrypt((Des3*)tdes, out, in, inSz);
-}
-
-
-/* Triple DES CBC Decrypt */
-int CRYPT_TDES_CBC_Decrypt(CRYPT_TDES_CTX* tdes, unsigned char* out,
- const unsigned char* in, unsigned int inSz)
-{
- if (tdes == NULL || out == NULL || in == NULL)
- return BAD_FUNC_ARG;
-
- return wc_Des3_CbcDecrypt((Des3*)tdes, out, in, inSz);
-}
-
-#endif
-
-#ifndef NO_AES
-
-/* AES Key Set, may have iv, will have direction */
-int CRYPT_AES_KeySet(CRYPT_AES_CTX* aes, const unsigned char* key,
- unsigned int keyLen, const unsigned char* iv, int dir)
-{
- typedef char aes_test[sizeof(CRYPT_AES_CTX) >= sizeof(Aes) ? 1 : -1];
- (void)sizeof(aes_test);
-
- if (aes == NULL || key == NULL)
- return BAD_FUNC_ARG;
-
- return wc_AesSetKey((Aes*)aes, key, keyLen, iv, dir);
-}
-
-
-/* AES Iv Set, sometimes added later */
-int CRYPT_AES_IvSet(CRYPT_AES_CTX* aes, const unsigned char* iv)
-{
- if (aes == NULL || iv == NULL)
- return BAD_FUNC_ARG;
-
- return wc_AesSetIV((Aes*)aes, iv);
-}
-
-
-/* AES CBC Encrypt */
-int CRYPT_AES_CBC_Encrypt(CRYPT_AES_CTX* aes, unsigned char* out,
- const unsigned char* in, unsigned int inSz)
-{
- if (aes == NULL || out == NULL || in == NULL)
- return BAD_FUNC_ARG;
-
- return wc_AesCbcEncrypt((Aes*)aes, out, in, inSz);
-}
-
-
-/* AES CBC Decrypt */
-int CRYPT_AES_CBC_Decrypt(CRYPT_AES_CTX* aes, unsigned char* out,
- const unsigned char* in, unsigned int inSz)
-{
- if (aes == NULL || out == NULL || in == NULL)
- return BAD_FUNC_ARG;
-
- return wc_AesCbcDecrypt((Aes*)aes, out, in, inSz);
-}
-#endif
-
-#ifdef WOLFSSL_AES_COUNTER
-/* AES CTR Encrypt (used for decrypt too, with ENCRYPT key setup) */
-int CRYPT_AES_CTR_Encrypt(CRYPT_AES_CTX* aes, unsigned char* out,
- const unsigned char* in, unsigned int inSz)
-{
- if (aes == NULL || out == NULL || in == NULL)
- return BAD_FUNC_ARG;
-
- return wc_AesCtrEncrypt((Aes*)aes, out, in, inSz);
-}
-#endif
-
-#ifdef WOLFSSL_AES_DIRECT
-
-/* AES Direct mode encrypt, one block at a time */
-int CRYPT_AES_DIRECT_Encrypt(CRYPT_AES_CTX* aes, unsigned char* out,
- const unsigned char* in)
-{
- if (aes == NULL || out == NULL || in == NULL)
- return BAD_FUNC_ARG;
-
- wc_AesEncryptDirect((Aes*)aes, out, in);
-
- return 0;
-}
-
-
-/* AES Direct mode decrypt, one block at a time */
-int CRYPT_AES_DIRECT_Decrypt(CRYPT_AES_CTX* aes, unsigned char* out,
- const unsigned char* in)
-{
- if (aes == NULL || out == NULL || in == NULL)
- return BAD_FUNC_ARG;
-
- wc_AesDecryptDirect((Aes*)aes, out, in);
-
- return 0;
-}
-#endif
-
-#ifndef NO_RSA
-
-/* RSA Initialize */
-int CRYPT_RSA_Initialize(CRYPT_RSA_CTX* rsa)
-{
- if (rsa == NULL)
- return BAD_FUNC_ARG;
-
- rsa->holder = (RsaKey*)XMALLOC(sizeof(RsaKey), NULL, DYNAMIC_TYPE_RSA);
- if (rsa->holder == NULL)
- return -1;
-
- return wc_InitRsaKey((RsaKey*)rsa->holder, NULL);
-}
-
-
-/* RSA Free resources */
-int CRYPT_RSA_Free(CRYPT_RSA_CTX* rsa)
-{
- if (rsa == NULL)
- return BAD_FUNC_ARG;
-
- wc_FreeRsaKey((RsaKey*)rsa->holder);
- XFREE(rsa->holder, NULL, DYNAMIC_TYPE_RSA);
- rsa->holder = NULL;
-
- return 0;
-}
-
-
-/* RSA Public key decode ASN.1 */
-int CRYPT_RSA_PublicKeyDecode(CRYPT_RSA_CTX* rsa, const unsigned char* in,
- unsigned int inSz)
-{
- unsigned int idx = 0;
- (void)idx;
-
- if (rsa == NULL || in == NULL)
- return BAD_FUNC_ARG;
-
- return wc_RsaPublicKeyDecode(in, &idx, (RsaKey*)rsa->holder, inSz);
-}
-
-
-/* RSA Private key decode ASN.1 */
-int CRYPT_RSA_PrivateKeyDecode(CRYPT_RSA_CTX* rsa, const unsigned char* in,
- unsigned int inSz)
-{
- unsigned int idx = 0;
- (void)idx;
-
- if (rsa == NULL || in == NULL)
- return BAD_FUNC_ARG;
-
- return wc_RsaPrivateKeyDecode(in, &idx, (RsaKey*)rsa->holder, inSz);
-}
-
-
-/* RSA Public Encrypt */
-int CRYPT_RSA_PublicEncrypt(CRYPT_RSA_CTX* rsa, unsigned char* out,
- unsigned int outSz, const unsigned char* in,
- unsigned int inSz, CRYPT_RNG_CTX* rng)
-{
- if (rsa == NULL || in == NULL || out == NULL || rng == NULL)
- return BAD_FUNC_ARG;
-
- return wc_RsaPublicEncrypt(in, inSz, out, outSz, (RsaKey*)rsa->holder,
- (WC_RNG*)rng);
-}
-
-
-/* RSA Private Decrypt */
-int CRYPT_RSA_PrivateDecrypt(CRYPT_RSA_CTX* rsa, unsigned char* out,
- unsigned int outSz, const unsigned char* in,
- unsigned int inSz)
-{
- if (rsa == NULL || in == NULL || out == NULL)
- return BAD_FUNC_ARG;
-
- return wc_RsaPrivateDecrypt(in, inSz, out, outSz, (RsaKey*)rsa->holder);
-}
-
-
-/* RSA Get Encrypt size helper */
-int CRYPT_RSA_EncryptSizeGet(CRYPT_RSA_CTX* rsa)
-{
- if (rsa == NULL)
- return BAD_FUNC_ARG;
-
- return wc_RsaEncryptSize((RsaKey*)rsa->holder);
-}
-
-
-int CRYPT_RSA_SetRng(CRYPT_RSA_CTX* rsa, CRYPT_RNG_CTX* rng)
-{
- if (rsa == NULL)
- return BAD_FUNC_ARG;
-
-#ifdef WC_RSA_BLINDING
- return wc_RsaSetRNG((RsaKey*)rsa->holder, (WC_RNG*)rng);
-#else
- (void)rng;
-
- return 0;
-#endif
-}
-#endif
-
-#ifdef HAVE_ECC
-
-/* ECC init */
-int CRYPT_ECC_Initialize(CRYPT_ECC_CTX* ecc)
-{
- if (ecc == NULL)
- return BAD_FUNC_ARG;
-
- ecc->holder = (ecc_key*)XMALLOC(sizeof(ecc_key), NULL, DYNAMIC_TYPE_ECC);
- if (ecc->holder == NULL)
- return -1;
-
- wc_ecc_init((ecc_key*)ecc->holder);
-
- return 0;
-}
-
-
-/* ECC free resources */
-int CRYPT_ECC_Free(CRYPT_ECC_CTX* ecc)
-{
- if (ecc == NULL)
- return BAD_FUNC_ARG;
-
- wc_ecc_free((ecc_key*)ecc->holder);
- XFREE(ecc->holder, NULL, DYNAMIC_TYPE_ECC);
- ecc->holder = NULL;
-
- return 0;
-}
-
-
-/* ECC Public x963 Export */
-int CRYPT_ECC_PublicExport(CRYPT_ECC_CTX* ecc, unsigned char* out,
- unsigned int outSz, unsigned int* usedSz)
-{
- int ret;
- unsigned int inOut = outSz;
-
- if (ecc == NULL || out == NULL)
- return BAD_FUNC_ARG;
-
- ret = wc_ecc_export_x963((ecc_key*)ecc->holder, out, &inOut);
- *usedSz = inOut;
-
- return ret;
-}
-
-
-/* ECC Public x963 Import */
-int CRYPT_ECC_PublicImport(CRYPT_ECC_CTX* ecc, const unsigned char* in,
- unsigned int inSz)
-{
- if (ecc == NULL || in == NULL)
- return BAD_FUNC_ARG;
-
- return wc_ecc_import_x963(in, inSz, (ecc_key*)ecc->holder);
-}
-
-
-/* ECC Private x963 Import */
-int CRYPT_ECC_PrivateImport(CRYPT_ECC_CTX* ecc, const unsigned char* priv,
- unsigned int privSz, const unsigned char* pub, unsigned int pubSz)
-{
- if (ecc == NULL || priv == NULL || pub == NULL)
- return BAD_FUNC_ARG;
-
- return wc_ecc_import_private_key(priv, privSz, pub, pubSz,
- (ecc_key*)ecc->holder);
-}
-
-
-/* ECC DHE Make key */
-int CRYPT_ECC_DHE_KeyMake(CRYPT_ECC_CTX* ecc, CRYPT_RNG_CTX* rng, int keySz)
-{
- if (ecc == NULL || rng == NULL)
- return BAD_FUNC_ARG;
-
- return wc_ecc_make_key((WC_RNG*)rng, keySz, (ecc_key*)ecc->holder);
-}
-
-
-/* ECC DHE Make shared secret with our private and peer public */
-int CRYPT_ECC_DHE_SharedSecretMake(CRYPT_ECC_CTX* priv, CRYPT_ECC_CTX* pub,
- unsigned char* out, unsigned int outSz, unsigned int* usedSz)
-{
- int ret;
- unsigned int inOut = outSz;
-
- if (priv == NULL || pub == NULL || out == NULL || usedSz == NULL)
- return BAD_FUNC_ARG;
-
- ret = wc_ecc_shared_secret((ecc_key*)priv->holder, (ecc_key*)pub->holder,
- out, &inOut);
- *usedSz = inOut;
-
- return ret;
-}
-
-
-/* ECC DSA Hash Sign */
-int CRYPT_ECC_DSA_HashSign(CRYPT_ECC_CTX* ecc, CRYPT_RNG_CTX* rng,
- unsigned char* sig, unsigned int sigSz,
- unsigned int* usedSz, const unsigned char* in,
- unsigned int inSz)
-{
- int ret;
- unsigned int inOut = sigSz;
-
- if (ecc == NULL || rng == NULL || sig == NULL || usedSz == NULL ||
- in == NULL)
- return BAD_FUNC_ARG;
-
- ret = wc_ecc_sign_hash(in, inSz, sig, &inOut, (WC_RNG*)rng,
- (ecc_key*)ecc->holder);
- *usedSz = inOut;
-
- return ret;
-}
-
-
-/* ECC DSA Hash Verify */
-int CRYPT_ECC_DSA_HashVerify(CRYPT_ECC_CTX* ecc, const unsigned char* sig,
- unsigned int sigSz, unsigned char* hash,
- unsigned int hashSz, int* status)
-{
- if (ecc == NULL || sig == NULL || hash == NULL || status == NULL)
- return BAD_FUNC_ARG;
-
- return wc_ecc_verify_hash(sig, sigSz, hash, hashSz, status,
- (ecc_key*)ecc->holder);
-}
-
-
-/* ECC get key size helper */
-int CRYPT_ECC_KeySizeGet(CRYPT_ECC_CTX* ecc)
-{
- if (ecc == NULL)
- return BAD_FUNC_ARG;
-
- return wc_ecc_size((ecc_key*)ecc->holder);
-}
-
-
-/* ECC get signature size helper */
-int CRYPT_ECC_SignatureSizeGet(CRYPT_ECC_CTX* ecc)
-{
- if (ecc == NULL)
- return BAD_FUNC_ARG;
-
- return wc_ecc_sig_size((ecc_key*)ecc->holder);
-}
-
-#endif
-
-/* Save error string from err to str which needs to be >= 80 chars */
-int CRYPT_ERROR_StringGet(int err, char* str)
-{
- if (str == NULL)
- return BAD_FUNC_ARG;
-
- wc_ErrorString(err, str);
-
- return 0;
-}
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/crypto.h b/FreeRTOS-Plus/Source/WolfSSL/mcapi/crypto.h
deleted file mode 100644
index ddb450b63..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/crypto.h
+++ /dev/null
@@ -1,273 +0,0 @@
-/* crypto.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-
-/* Defines Microchip CRYPTO API layer */
-
-
-#ifndef MC_CRYPTO_API_H
-#define MC_CRYPTO_API_H
-
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* MD5 */
-typedef struct CRYPT_MD5_CTX {
- int holder[28]; /* big enough to hold internal, but check on init */
-} CRYPT_MD5_CTX;
-
-int CRYPT_MD5_Initialize(CRYPT_MD5_CTX*);
-int CRYPT_MD5_DataAdd(CRYPT_MD5_CTX*, const unsigned char*, unsigned int);
-int CRYPT_MD5_Finalize(CRYPT_MD5_CTX*, unsigned char*);
-int CRYPT_MD5_DataSizeSet(CRYPT_MD5_CTX* md5, unsigned int sz);
-
-enum {
- CRYPT_MD5_DIGEST_SIZE = 16
-};
-
-
-/* SHA */
-typedef struct CRYPT_SHA_CTX {
- int holder[29]; /* big enough to hold internal, but check on init */
-} CRYPT_SHA_CTX;
-
-int CRYPT_SHA_Initialize(CRYPT_SHA_CTX*);
-int CRYPT_SHA_DataAdd(CRYPT_SHA_CTX*, const unsigned char*, unsigned int);
-int CRYPT_SHA_Finalize(CRYPT_SHA_CTX*, unsigned char*);
-int CRYPT_SHA_DataSizeSet(CRYPT_SHA_CTX* sha, unsigned int sz);
-
-enum {
- CRYPT_SHA_DIGEST_SIZE = 20
-};
-
-
-/* SHA-256 */
-typedef struct CRYPT_SHA256_CTX {
- int holder[32]; /* big enough to hold internal, but check on init */
-} CRYPT_SHA256_CTX;
-
-int CRYPT_SHA256_Initialize(CRYPT_SHA256_CTX*);
-int CRYPT_SHA256_DataAdd(CRYPT_SHA256_CTX*, const unsigned char*, unsigned int);
-int CRYPT_SHA256_Finalize(CRYPT_SHA256_CTX*, unsigned char*);
-int CRYPT_SHA256_DataSizeSet(CRYPT_SHA256_CTX* sha256, unsigned int sz);
-
-enum {
- CRYPT_SHA256_DIGEST_SIZE = 32
-};
-
-
-/* SHA-384 */
-typedef struct CRYPT_SHA384_CTX {
- long long holder[36]; /* big enough to hold internal, but check on init */
-} CRYPT_SHA384_CTX;
-
-int CRYPT_SHA384_Initialize(CRYPT_SHA384_CTX*);
-int CRYPT_SHA384_DataAdd(CRYPT_SHA384_CTX*, const unsigned char*, unsigned int);
-int CRYPT_SHA384_Finalize(CRYPT_SHA384_CTX*, unsigned char*);
-
-enum {
- CRYPT_SHA384_DIGEST_SIZE = 48
-};
-
-
-/* SHA-512 */
-typedef struct CRYPT_SHA512_CTX {
- long long holder[36]; /* big enough to hold internal, but check on init */
-} CRYPT_SHA512_CTX;
-
-int CRYPT_SHA512_Initialize(CRYPT_SHA512_CTX*);
-int CRYPT_SHA512_DataAdd(CRYPT_SHA512_CTX*, const unsigned char*, unsigned int);
-int CRYPT_SHA512_Finalize(CRYPT_SHA512_CTX*, unsigned char*);
-
-enum {
- CRYPT_SHA512_DIGEST_SIZE = 64
-};
-
-
-/* HMAC */
-typedef struct CRYPT_HMAC_CTX {
- long long holder[98]; /* big enough to hold internal, but check on init */
-} CRYPT_HMAC_CTX;
-
-int CRYPT_HMAC_SetKey(CRYPT_HMAC_CTX*, int, const unsigned char*, unsigned int);
-int CRYPT_HMAC_DataAdd(CRYPT_HMAC_CTX*, const unsigned char*, unsigned int);
-int CRYPT_HMAC_Finalize(CRYPT_HMAC_CTX*, unsigned char*);
-
-/* HMAC types */
-enum {
- CRYPT_HMAC_SHA = 4,
- CRYPT_HMAC_SHA256 = 6,
- CRYPT_HMAC_SHA384 = 7,
- CRYPT_HMAC_SHA512 = 8
-};
-
-
-/* Huffman */
-int CRYPT_HUFFMAN_Compress(unsigned char*, unsigned int, const unsigned char*,
- unsigned int, unsigned int);
-int CRYPT_HUFFMAN_DeCompress(unsigned char*, unsigned int, const unsigned char*,
- unsigned int);
-
-/* flag to use static huffman */
-enum {
- CRYPT_HUFFMAN_COMPRESS_STATIC = 1
-};
-
-
-/* RNG */
-typedef struct CRYPT_RNG_CTX {
- int holder[66]; /* big enough to hold internal, but check on init */
-} CRYPT_RNG_CTX;
-
-int CRYPT_RNG_Initialize(CRYPT_RNG_CTX*);
-int CRYPT_RNG_Get(CRYPT_RNG_CTX*, unsigned char*);
-int CRYPT_RNG_BlockGenerate(CRYPT_RNG_CTX*, unsigned char*, unsigned int);
-
-
-/* TDES */
-typedef struct CRYPT_TDES_CTX {
- int holder[104]; /* big enough to hold internal, but check on init */
-} CRYPT_TDES_CTX;
-
-int CRYPT_TDES_KeySet(CRYPT_TDES_CTX*, const unsigned char*,
- const unsigned char*, int);
-int CRYPT_TDES_IvSet(CRYPT_TDES_CTX*, const unsigned char*);
-int CRYPT_TDES_CBC_Encrypt(CRYPT_TDES_CTX*, unsigned char*,
- const unsigned char*, unsigned int);
-int CRYPT_TDES_CBC_Decrypt(CRYPT_TDES_CTX*, unsigned char*,
- const unsigned char*, unsigned int);
-
-/* key direction flags for setup */
-enum {
- CRYPT_TDES_ENCRYPTION = 0,
- CRYPT_TDES_DECRYPTION = 1
-};
-
-
-/* AES */
-typedef struct CRYPT_AES_CTX {
- int holder[90]; /* big enough to hold internal, but check on init */
-} CRYPT_AES_CTX;
-
-/* key */
-int CRYPT_AES_KeySet(CRYPT_AES_CTX*, const unsigned char*, unsigned int,
- const unsigned char*, int);
-int CRYPT_AES_IvSet(CRYPT_AES_CTX*, const unsigned char*);
-
-/* cbc */
-int CRYPT_AES_CBC_Encrypt(CRYPT_AES_CTX*, unsigned char*,
- const unsigned char*, unsigned int);
-int CRYPT_AES_CBC_Decrypt(CRYPT_AES_CTX*, unsigned char*,
- const unsigned char*, unsigned int);
-
-/* ctr (counter), use Encrypt both ways with ENCRYPT key setup */
-int CRYPT_AES_CTR_Encrypt(CRYPT_AES_CTX*, unsigned char*,
- const unsigned char*, unsigned int);
-
-/* direct, one block at a time */
-int CRYPT_AES_DIRECT_Encrypt(CRYPT_AES_CTX*, unsigned char*,
- const unsigned char*);
-int CRYPT_AES_DIRECT_Decrypt(CRYPT_AES_CTX*, unsigned char*,
- const unsigned char*);
-
-/* key direction flags for setup, ctr always uses ENCRYPT flag */
-enum {
- CRYPT_AES_ENCRYPTION = 0,
- CRYPT_AES_DECRYPTION = 1,
- CRYPT_AES_BLOCK_SIZE = 16
-};
-
-
-
-/* RSA */
-typedef struct CRYPT_RSA_CTX {
- void* holder;
-} CRYPT_RSA_CTX;
-
-/* init/free */
-int CRYPT_RSA_Initialize(CRYPT_RSA_CTX*);
-int CRYPT_RSA_Free(CRYPT_RSA_CTX*);
-
-/* key decode */
-int CRYPT_RSA_PublicKeyDecode(CRYPT_RSA_CTX*, const unsigned char*,
- unsigned int);
-int CRYPT_RSA_PrivateKeyDecode(CRYPT_RSA_CTX*, const unsigned char*,
- unsigned int);
-
-/* encrypt/decrypt */
-int CRYPT_RSA_PublicEncrypt(CRYPT_RSA_CTX*, unsigned char*,
- unsigned int, const unsigned char*, unsigned int,
- CRYPT_RNG_CTX*);
-int CRYPT_RSA_PrivateDecrypt(CRYPT_RSA_CTX*, unsigned char*,
- unsigned int, const unsigned char*, unsigned int);
-
-/* helpers */
-int CRYPT_RSA_EncryptSizeGet(CRYPT_RSA_CTX*);
-int CRYPT_RSA_SetRng(CRYPT_RSA_CTX*, CRYPT_RNG_CTX*);
-
-
-
-/* ECC */
-typedef struct CRYPT_ECC_CTX {
- void* holder;
-} CRYPT_ECC_CTX;
-
-/* init/free */
-int CRYPT_ECC_Initialize(CRYPT_ECC_CTX*);
-int CRYPT_ECC_Free(CRYPT_ECC_CTX*);
-
-/* key coders */
-int CRYPT_ECC_PublicExport(CRYPT_ECC_CTX*, unsigned char*, unsigned int,
- unsigned int*);
-int CRYPT_ECC_PublicImport(CRYPT_ECC_CTX*, const unsigned char*, unsigned int);
-int CRYPT_ECC_PrivateImport(CRYPT_ECC_CTX*, const unsigned char*, unsigned int,
- const unsigned char*, unsigned int);
-
-/* dhe */
-int CRYPT_ECC_DHE_KeyMake(CRYPT_ECC_CTX*, CRYPT_RNG_CTX*, int);
-int CRYPT_ECC_DHE_SharedSecretMake(CRYPT_ECC_CTX*, CRYPT_ECC_CTX*,
- unsigned char*, unsigned int, unsigned int*);
-
-/* dsa */
-int CRYPT_ECC_DSA_HashSign(CRYPT_ECC_CTX*, CRYPT_RNG_CTX*, unsigned char*,
- unsigned int, unsigned int*, const unsigned char*, unsigned int);
-int CRYPT_ECC_DSA_HashVerify(CRYPT_ECC_CTX*, const unsigned char*,
- unsigned int, unsigned char*, unsigned int, int*);
-
-/* helpers */
-int CRYPT_ECC_KeySizeGet(CRYPT_ECC_CTX*);
-int CRYPT_ECC_SignatureSizeGet(CRYPT_ECC_CTX*);
-
-
-/* Error string helper, string needs to be >= 80 chars */
-int CRYPT_ERROR_StringGet(int, char*);
-
-
-#ifdef __cplusplus
- } /* extern "C" */
-#endif
-
-
-#endif /* MC_CRYPTO_API_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/include.am b/FreeRTOS-Plus/Source/WolfSSL/mcapi/include.am
deleted file mode 100644
index 9448a5232..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/include.am
+++ /dev/null
@@ -1,19 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-if BUILD_MCAPI
-check_PROGRAMS += mcapi/test
-noinst_PROGRAMS += mcapi/test
-mcapi_test_SOURCES = mcapi/crypto.c \
- mcapi/mcapi_test.c
-mcapi_test_LDADD = src/libwolfssl.la
-mcapi_test_DEPENDENCIES = src/libwolfssl.la
-endif
-
-noinst_HEADERS += mcapi/crypto.h
-
-EXTRA_DIST += \
- mcapi/README \
- mcapi/PIC32MZ-serial.h \
- mcapi/user_settings.h
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/mcapi_test.c b/FreeRTOS-Plus/Source/WolfSSL/mcapi/mcapi_test.c
deleted file mode 100644
index cf0c31075..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/mcapi_test.c
+++ /dev/null
@@ -1,1510 +0,0 @@
-/* mcapi_test.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-
-/* Tests Microchip CRYPTO API layer */
-
-
-
-/* mc api header */
-#include "crypto.h"
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-/* sanity test against our default implementation, wolfssl headers */
-#include <wolfssl/wolfcrypt/md5.h>
-#include <wolfssl/wolfcrypt/sha.h>
-#include <wolfssl/wolfcrypt/sha256.h>
-#include <wolfssl/wolfcrypt/sha512.h>
-#include <wolfssl/wolfcrypt/hmac.h>
-#include <wolfssl/wolfcrypt/compress.h>
-#include <wolfssl/wolfcrypt/random.h>
-#include <wolfssl/wolfcrypt/des3.h>
-#include <wolfssl/wolfcrypt/aes.h>
-#include <wolfssl/wolfcrypt/ecc.h>
-#include <wolfssl/wolfcrypt/rsa.h>
-#define USE_CERT_BUFFERS_1024
-#include <wolfssl/certs_test.h>
-
-#if defined(WOLFSSL_MICROCHIP_PIC32MZ)
- #define MICROCHIP_PIC32
- #include <xc.h>
- #pragma config ICESEL = ICS_PGx2
- /* ICE/ICD Comm Channel Select (Communicate on PGEC2/PGED2) */
- #include <stdio.h>
- #include <stdlib.h>
- #include "PIC32MZ-serial.h"
- #define SYSTEMConfigPerformance(n) /* void out SYSTEMConfigPerformance(); */
-#elif defined(MICROCHIP_PIC32)
- #define PIC32_STARTER_KIT
- #include <stdio.h>
- #include <stdlib.h>
- #include <p32xxxx.h>
- #define _SUPPRESS_PLIB_WARNING
- #define _DISABLE_OPENADC10_CONFIGPORT_WARNING
- #include <plib.h>
- #include <sys/appio.h>
- #define init_serial() /* void out init_serial() */
-#else
- #include <stdio.h> /* order matters above ? */
-#endif
-#define OUR_DATA_SIZE 1024
-static byte ourData[OUR_DATA_SIZE];
-static byte* key = NULL;
-static byte* iv = NULL;
-static CRYPT_RNG_CTX mcRng;
-static WC_RNG defRng;
-
-static int check_md5(void);
-static int check_sha(void);
-static int check_sha256(void);
-static int check_sha384(void);
-static int check_sha512(void);
-static int check_hmac(void);
-static int check_compress(void);
-static int check_rng(void);
-static int check_des3(void);
-static int check_aescbc(void);
-static int check_aesctr(void);
-static int check_aesdirect(void);
-static int check_rsa(void);
-static int check_ecc(void);
-
-
-int main(int argc, char** argv)
-{
- int ret;
- int i;
-
- (void)argc;
- (void)argv;
-
-#if defined(MICROCHIP_PIC32)
- init_serial() ; /* initialize PIC32MZ serial I/O */
- SYSTEMConfigPerformance(80000000);
- DBINIT();
-#endif
-
- /* align key, iv pointers */
- key = (byte*)XMALLOC(32, NULL, DYNAMIC_TYPE_KEY);
- if (key == NULL) {
- printf("mcapi key alloc failed\n");
- return -1;
- }
-
- iv = (byte*)XMALLOC(16, NULL, DYNAMIC_TYPE_KEY);
- if (iv == NULL) {
- printf("mcapi iv alloc failed\n");
- return -1;
- }
-
- for (i = 0; i < OUR_DATA_SIZE; i++)
- ourData[i] = (byte)i;
-
- ret = check_md5();
- if (ret != 0) {
- printf("mcapi check_md5 failed\n");
- return -1;
- }
-
- ret = check_sha();
- if (ret != 0) {
- printf("mcapi check_sha failed\n");
- return -1;
- }
-
- ret = check_sha256();
- if (ret != 0) {
- printf("mcapi check_sha256 failed\n");
- return -1;
- }
-
- ret = check_sha384();
- if (ret != 0) {
- printf("mcapi check_sha384 failed\n");
- return -1;
- }
-
- ret = check_sha512();
- if (ret != 0) {
- printf("mcapi check_sha512 failed\n");
- return -1;
- }
-
- ret = check_hmac();
- if (ret != 0) {
- printf("mcapi check_hmac failed\n");
- return -1;
- }
-
- ret = check_compress();
- if (ret != 0) {
- printf("mcapi check_compress failed\n");
- return -1;
- }
-
- ret = check_rng();
- if (ret != 0) {
- printf("mcapi check_rng failed\n");
- return -1;
- }
-
- ret = check_des3();
- if (ret != 0) {
- printf("mcapi check_des3 failed\n");
- return -1;
- }
-
- ret = check_aescbc();
- if (ret != 0) {
- printf("mcapi check_aes cbc failed\n");
- return -1;
- }
-
- ret = check_aesctr();
- if (ret != 0) {
- printf("mcapi check_aes ctr failed\n");
- return -1;
- }
-
- ret = check_aesdirect();
- if (ret != 0) {
- printf("mcapi check_aes direct failed\n");
- return -1;
- }
-
- ret = check_rsa();
- if (ret != 0) {
- printf("mcapi check_rsa failed\n");
- return -1;
- }
-
- ret = check_ecc();
- if (ret != 0) {
- printf("mcapi check_ecc failed\n");
- return -1;
- }
-
- XFREE(iv, NULL, DYNAMIC_TYPE_KEY);
- XFREE(key, NULL, DYNAMIC_TYPE_KEY);
-
- return 0;
-}
-
-
-/* check mcapi md5 against internal */
-static int check_md5(void)
-{
- CRYPT_MD5_CTX mcMd5;
- Md5 defMd5;
- int ret;
- byte mcDigest[CRYPT_MD5_DIGEST_SIZE];
- byte defDigest[MD5_DIGEST_SIZE];
-
- CRYPT_MD5_Initialize(&mcMd5);
- ret = wc_InitMd5(&defMd5);
-
- if (ret == 0) {
- CRYPT_MD5_DataAdd(&mcMd5, ourData, OUR_DATA_SIZE);
- ret = wc_Md5Update(&defMd5, ourData, OUR_DATA_SIZE);
- }
-
- if (ret == 0) {
- CRYPT_MD5_Finalize(&mcMd5, mcDigest);
- ret = wc_Md5Final(&defMd5, defDigest);
- }
-
- if (ret != 0) {
- printf("md5 failed\n");
- return -1;
- }
-
- if (ret == 0 && memcmp(mcDigest, defDigest, CRYPT_MD5_DIGEST_SIZE) != 0) {
- printf("md5 final memcmp failed\n");
- return -1;
- }
- printf("md5 mcapi test passed\n");
-
- return ret;
-}
-
-
-/* check mcapi sha against internal */
-static int check_sha(void)
-{
- CRYPT_SHA_CTX mcSha;
- Sha defSha;
- int ret = 0;
- byte mcDigest[CRYPT_SHA_DIGEST_SIZE];
- byte defDigest[SHA_DIGEST_SIZE];
-
- CRYPT_SHA_Initialize(&mcSha);
- ret = wc_InitSha(&defSha);
- if (ret != 0) {
- printf("sha init default failed\n");
- return -1;
- }
-
- CRYPT_SHA_DataAdd(&mcSha, ourData, OUR_DATA_SIZE);
- wc_ShaUpdate(&defSha, ourData, OUR_DATA_SIZE);
-
- CRYPT_SHA_Finalize(&mcSha, mcDigest);
- wc_ShaFinal(&defSha, defDigest);
-
- if (memcmp(mcDigest, defDigest, CRYPT_SHA_DIGEST_SIZE) != 0) {
- printf("sha final memcmp failed\n");
- return -1;
- }
- printf("sha mcapi test passed\n");
-
- return 0;
-}
-
-
-/* check mcapi sha256 against internal */
-static int check_sha256(void)
-{
- CRYPT_SHA256_CTX mcSha256;
- wc_Sha256 defSha256;
- int ret;
- byte mcDigest[CRYPT_SHA256_DIGEST_SIZE];
- byte defDigest[WC_SHA256_DIGEST_SIZE];
-
- CRYPT_SHA256_Initialize(&mcSha256);
- ret = wc_InitSha256(&defSha256);
- if (ret != 0) {
- printf("sha256 init default failed\n");
- return -1;
- }
-
- CRYPT_SHA256_DataAdd(&mcSha256, ourData, OUR_DATA_SIZE);
- ret = wc_Sha256Update(&defSha256, ourData, OUR_DATA_SIZE);
- if (ret != 0) {
- printf("sha256 update default failed\n");
- return -1;
- }
-
- CRYPT_SHA256_Finalize(&mcSha256, mcDigest);
- ret = wc_Sha256Final(&defSha256, defDigest);
- if (ret != 0) {
- printf("sha256 final default failed\n");
- return -1;
- }
-
- if (memcmp(mcDigest, defDigest, CRYPT_SHA256_DIGEST_SIZE) != 0) {
- printf("sha256 final memcmp fialed\n");
- return -1;
- }
- printf("sha256 mcapi test passed\n");
-
- return 0;
-}
-
-
-/* check mcapi sha384 against internal */
-static int check_sha384(void)
-{
- CRYPT_SHA384_CTX mcSha384;
- wc_Sha384 defSha384;
- int ret;
- byte mcDigest[CRYPT_SHA384_DIGEST_SIZE];
- byte defDigest[WC_SHA384_DIGEST_SIZE];
-
- CRYPT_SHA384_Initialize(&mcSha384);
- ret = wc_InitSha384(&defSha384);
- if (ret != 0) {
- printf("sha384 init default failed\n");
- return -1;
- }
-
- CRYPT_SHA384_DataAdd(&mcSha384, ourData, OUR_DATA_SIZE);
- ret = wc_Sha384Update(&defSha384, ourData, OUR_DATA_SIZE);
- if (ret != 0) {
- printf("sha384 update default failed\n");
- return -1;
- }
-
- CRYPT_SHA384_Finalize(&mcSha384, mcDigest);
- ret = wc_Sha384Final(&defSha384, defDigest);
- if (ret != 0) {
- printf("sha384 final default failed\n");
- return -1;
- }
-
- if (memcmp(mcDigest, defDigest, CRYPT_SHA384_DIGEST_SIZE) != 0) {
- printf("sha384 final memcmp fialed\n");
- return -1;
- }
- printf("sha384 mcapi test passed\n");
-
- return 0;
-}
-
-
-/* check mcapi sha512 against internal */
-static int check_sha512(void)
-{
- CRYPT_SHA512_CTX mcSha512;
- wc_Sha512 defSha512;
- int ret;
- byte mcDigest[CRYPT_SHA512_DIGEST_SIZE];
- byte defDigest[WC_SHA512_DIGEST_SIZE];
-
- CRYPT_SHA512_Initialize(&mcSha512);
- ret = wc_InitSha512(&defSha512);
- if (ret != 0) {
- printf("sha512 init default failed\n");
- return -1;
- }
-
- CRYPT_SHA512_DataAdd(&mcSha512, ourData, OUR_DATA_SIZE);
- ret = wc_Sha512Update(&defSha512, ourData, OUR_DATA_SIZE);
- if (ret != 0) {
- printf("sha512 update default failed\n");
- return -1;
- }
-
- CRYPT_SHA512_Finalize(&mcSha512, mcDigest);
- ret = wc_Sha512Final(&defSha512, defDigest);
- if (ret != 0) {
- printf("sha512 final default failed\n");
- return -1;
- }
-
- if (memcmp(mcDigest, defDigest, CRYPT_SHA512_DIGEST_SIZE) != 0) {
- printf("sha512 final memcmp fialed\n");
- return -1;
- }
- printf("sha512 mcapi test passed\n");
-
- return 0;
-}
-
-
-/* check mcapi hmac against internal */
-static int check_hmac(void)
-{
- CRYPT_HMAC_CTX mcHmac;
- Hmac defHmac;
- int ret;
- byte mcDigest[CRYPT_SHA512_DIGEST_SIZE];
- byte defDigest[WC_SHA512_DIGEST_SIZE];
-
- memcpy((char*)key, "Jefe", 4);
-
- /* SHA1 */
- CRYPT_HMAC_SetKey(&mcHmac, CRYPT_HMAC_SHA, key, 4);
- ret = wc_HmacSetKey(&defHmac, WC_SHA, key, 4);
- if (ret != 0) {
- printf("hmac sha setkey default failed\n");
- return -1;
- }
-
- CRYPT_HMAC_DataAdd(&mcHmac, ourData, OUR_DATA_SIZE);
- ret = wc_HmacUpdate(&defHmac, ourData, OUR_DATA_SIZE);
- if (ret != 0) {
- printf("hmac sha update default failed\n");
- return -1;
- }
-
- CRYPT_HMAC_Finalize(&mcHmac, mcDigest);
- ret = wc_HmacFinal(&defHmac, defDigest);
- if (ret != 0) {
- printf("hmac sha final default failed\n");
- return -1;
- }
-
- if (memcmp(mcDigest, defDigest, CRYPT_SHA_DIGEST_SIZE) != 0) {
- printf("hmac sha final memcmp fialed\n");
- return -1;
- }
- printf("hmac sha mcapi test passed\n");
-
- /* SHA-256 */
- CRYPT_HMAC_SetKey(&mcHmac, CRYPT_HMAC_SHA256, key, 4);
- ret = wc_HmacSetKey(&defHmac, WC_SHA256, key, 4);
- if (ret != 0) {
- printf("hmac sha256 setkey default failed\n");
- return -1;
- }
-
- CRYPT_HMAC_DataAdd(&mcHmac, ourData, OUR_DATA_SIZE);
- ret = wc_HmacUpdate(&defHmac, ourData, OUR_DATA_SIZE);
- if (ret != 0) {
- printf("hmac sha256 update default failed\n");
- return -1;
- }
-
- CRYPT_HMAC_Finalize(&mcHmac, mcDigest);
- ret = wc_HmacFinal(&defHmac, defDigest);
- if (ret != 0) {
- printf("hmac sha256 final default failed\n");
- return -1;
- }
-
- if (memcmp(mcDigest, defDigest, CRYPT_SHA256_DIGEST_SIZE) != 0) {
- printf("hmac sha256 final memcmp fialed\n");
- return -1;
- }
- printf("hmac sha256 mcapi test passed\n");
-
- /* SHA-384 */
- CRYPT_HMAC_SetKey(&mcHmac, CRYPT_HMAC_SHA384, key, 4);
- ret = wc_HmacSetKey(&defHmac, WC_SHA384, key, 4);
- if (ret != 0) {
- printf("hmac sha384 setkey default failed\n");
- return -1;
- }
-
- CRYPT_HMAC_DataAdd(&mcHmac, ourData, OUR_DATA_SIZE);
- ret = wc_HmacUpdate(&defHmac, ourData, OUR_DATA_SIZE);
- if (ret != 0) {
- printf("hmac sha384 update default failed\n");
- return -1;
- }
-
- CRYPT_HMAC_Finalize(&mcHmac, mcDigest);
- ret = wc_HmacFinal(&defHmac, defDigest);
- if (ret != 0) {
- printf("hmac sha384 final default failed\n");
- return -1;
- }
-
- if (memcmp(mcDigest, defDigest, CRYPT_SHA384_DIGEST_SIZE) != 0) {
- printf("hmac sha384 final memcmp fialed\n");
- return -1;
- }
- printf("hmac sha384 mcapi test passed\n");
-
- /* SHA-512 */
- CRYPT_HMAC_SetKey(&mcHmac, CRYPT_HMAC_SHA512, key, 4);
- ret = wc_HmacSetKey(&defHmac, WC_SHA512, key, 4);
- if (ret != 0) {
- printf("hmac sha512 setkey default failed\n");
- return -1;
- }
-
- CRYPT_HMAC_DataAdd(&mcHmac, ourData, OUR_DATA_SIZE);
- ret = wc_HmacUpdate(&defHmac, ourData, OUR_DATA_SIZE);
- if (ret != 0) {
- printf("hmac sha512 update default failed\n");
- return -1;
- }
-
- CRYPT_HMAC_Finalize(&mcHmac, mcDigest);
- ret = wc_HmacFinal(&defHmac, defDigest);
- if (ret != 0) {
- printf("hmac sha512 final default failed\n");
- return -1;
- }
-
- if (memcmp(mcDigest, defDigest, CRYPT_SHA512_DIGEST_SIZE) != 0) {
- printf("hmac sha512 final memcmp fialed\n");
- return -1;
- }
- printf("hmac sha512 mcapi test passed\n");
-
- return 0;
-}
-
-
-/* check mcapi compress against internal */
-static int check_compress(void)
-{
- const unsigned char text[] =
- "Biodiesel cupidatat marfa, cliche aute put a bird on it incididunt elit\n"
- "polaroid. Sunt tattooed bespoke reprehenderit. Sint twee organic id\n"
- "marfa. Commodo veniam ad esse gastropub. 3 wolf moon sartorial vero,\n"
- "plaid delectus biodiesel squid +1 vice. Post-ironic keffiyeh leggings\n"
- "selfies cray fap hoodie, forage anim. Carles cupidatat shoreditch, VHS\n"
- "small batch meggings kogi dolore food truck bespoke gastropub.\n"
- "\n"
- "Terry richardson adipisicing actually typewriter tumblr, twee whatever\n"
- "four loko you probably haven't heard of them high life. Messenger bag\n"
- "whatever tattooed deep v mlkshk. Brooklyn pinterest assumenda chillwave\n"
- "et, banksy ullamco messenger bag umami pariatur direct trade forage.\n"
- "Typewriter culpa try-hard, pariatur sint brooklyn meggings. Gentrify\n"
- "food truck next level, tousled irony non semiotics PBR ethical anim cred\n"
- "readymade. Mumblecore brunch lomo odd future, portland organic terry\n"
- "four loko whatever street art yr farm-to-table.\n";
-
- unsigned int inSz = sizeof(text);
- unsigned int outSz;
- unsigned char cBuffer[1024];
- unsigned char dBuffer[1024];
-
- int ret1, ret2;
-
- /* dynamic */
- ret1 = CRYPT_HUFFMAN_Compress(cBuffer, sizeof(cBuffer), text, inSz, 0);
- ret2 = wc_Compress(dBuffer, sizeof(dBuffer), text, inSz, 0);
-
- if (ret1 != ret2 || ret1 < 0) {
- printf("compress dynamic ret failed\n");
- return -1;
- }
-
- if (memcmp(cBuffer, dBuffer, ret1) != 0) {
- printf("compress dynamic cmp failed\n");
- return -1;
- }
-
- outSz = ret1;
-
- ret1 = CRYPT_HUFFMAN_DeCompress(dBuffer, sizeof(dBuffer), cBuffer, outSz);
-
- if (memcmp(dBuffer, text, inSz) != 0) {
- printf("mcapi decompress dynamic cmp failed\n");
- return -1;
- }
-
- memset(dBuffer, 0, sizeof(dBuffer));
-
- ret1 = wc_DeCompress(dBuffer, sizeof(dBuffer), cBuffer, outSz);
-
- if (memcmp(dBuffer, text, inSz) != 0) {
- printf("decompress dynamic cmp failed\n");
- return -1;
- }
-
- memset(cBuffer, 0, sizeof(cBuffer));
- memset(dBuffer, 0, sizeof(dBuffer));
-
- /* static */
- ret1 = CRYPT_HUFFMAN_Compress(cBuffer, sizeof(cBuffer), text, inSz, 1);
- ret2 = wc_Compress(dBuffer, sizeof(dBuffer), text, inSz, 1);
-
- if (ret1 != ret2 || ret1 < 0) {
- printf("compress static ret failed\n");
- return -1;
- }
-
- if (memcmp(cBuffer, dBuffer, ret1) != 0) {
- printf("compress static cmp failed\n");
- return -1;
- }
-
- outSz = ret1;
-
- ret1 = CRYPT_HUFFMAN_DeCompress(dBuffer, sizeof(dBuffer), cBuffer, outSz);
-
- if (memcmp(dBuffer, text, inSz) != 0) {
- printf("mcapi decompress static cmp failed\n");
- return -1;
- }
-
- memset(dBuffer, 0, sizeof(dBuffer));
-
- ret1 = wc_DeCompress(dBuffer, sizeof(dBuffer), cBuffer, outSz);
-
- if (memcmp(dBuffer, text, inSz) != 0) {
- printf("decompress static cmp failed\n");
- return -1;
- }
-
- printf("huffman mcapi test passed\n");
-
- return 0;
-}
-
-
-#define RANDOM_BYTE_SZ 32
-
-/* check mcapi rng */
-static int check_rng(void)
-{
- int ret;
- int i;
- byte in[RANDOM_BYTE_SZ];
- byte out[RANDOM_BYTE_SZ];
-
- for (i = 0; i < RANDOM_BYTE_SZ; i++)
- in[i] = (byte)i;
-
- for (i = 0; i < RANDOM_BYTE_SZ; i++)
- out[i] = (byte)i;
-
- ret = wc_InitRng(&defRng);
- if (ret != 0) {
- printf("default rng init failed\n");
- return -1;
- }
-
- ret = CRYPT_RNG_Initialize(&mcRng);
- if (ret != 0) {
- printf("mcapi rng init failed\n");
- return -1;
- }
-
- ret = CRYPT_RNG_Get(&mcRng, &out[0]);
- if (ret != 0) {
- printf("mcapi rng get failed\n");
- return -1;
- }
-
- ret = CRYPT_RNG_BlockGenerate(&mcRng, out, RANDOM_BYTE_SZ);
- if (ret != 0) {
- printf("mcapi rng block gen failed\n");
- return -1;
- }
-
- if (memcmp(in, out, RANDOM_BYTE_SZ) == 0) {
- printf("mcapi rng block gen output failed\n");
- return -1;
- }
-
- printf("rng mcapi test passed\n");
-
- return 0;
-}
-
-
-#define TDES_TEST_SIZE 32
-
-/* check mcapi des3 */
-static int check_des3(void)
-{
- CRYPT_TDES_CTX mcDes3;
- Des3 defDes3;
- int ret;
- byte out1[TDES_TEST_SIZE];
- byte out2[TDES_TEST_SIZE];
-
- memcpy((char*)key, "1234567890abcdefghijklmn", 24);
- memcpy((char*)iv, "12345678", 8);
-
- /* cbc encrypt */
- ret = CRYPT_TDES_KeySet(&mcDes3, key, iv, CRYPT_TDES_ENCRYPTION);
- if (ret != 0) {
- printf("mcapi tdes key set failed\n");
- return -1;
- }
- ret = wc_Des3_SetKey(&defDes3, key, iv, DES_ENCRYPTION);
- if (ret != 0) {
- printf("default des3 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_TDES_CBC_Encrypt(&mcDes3, out1, ourData, TDES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi tdes cbc encrypt failed\n");
- return -1;
- }
- ret = wc_Des3_CbcEncrypt(&defDes3, out2, ourData, TDES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi default tdes cbc encrypt failed\n");
- return -1;
- }
-
- if (memcmp(out1, out2, TDES_TEST_SIZE) != 0) {
- printf("mcapi tdes cbc encrypt cmp failed\n");
- return -1;
- }
-
- /* cbc decrypt */
- ret = CRYPT_TDES_KeySet(&mcDes3, key, iv, CRYPT_TDES_DECRYPTION);
- if (ret != 0) {
- printf("mcapi tdes key set failed\n");
- return -1;
- }
- ret = wc_Des3_SetKey(&defDes3, key, iv, DES_DECRYPTION);
- if (ret != 0) {
- printf("default des3 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_TDES_CBC_Decrypt(&mcDes3, out2, out1, TDES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi tdes cbc decrypt failed\n");
- return -1;
- }
- ret = wc_Des3_CbcDecrypt(&defDes3, out1, out1, TDES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi default tdes cbc decrypt failed\n");
- return -1;
- }
-
- if (memcmp(out1, out2, TDES_TEST_SIZE) != 0) {
- printf("mcapi tdes cbc decrypt cmp failed\n");
- return -1;
- }
-
- if (memcmp(out1, ourData, TDES_TEST_SIZE) != 0) {
- printf("mcapi tdes cbc decrypt orig cmp failed\n");
- return -1;
- }
-
- printf("tdes mcapi test passed\n");
-
- return 0;
-}
-
-
-#define AES_TEST_SIZE 32
-
-/* check mcapi aes cbc */
-static int check_aescbc(void)
-{
- CRYPT_AES_CTX mcAes;
- Aes defAes;
- int ret;
- byte out1[AES_TEST_SIZE];
- byte out2[AES_TEST_SIZE];
-
- memcpy((char*)key, "1234567890abcdefghijklmnopqrstuv", 32);
- memcpy((char*)iv, "1234567890abcdef", 16);
-
- /* 128 cbc encrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 16, iv, CRYPT_AES_ENCRYPTION);
- if (ret != 0) {
- printf("mcapi aes-128 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 16, iv, AES_ENCRYPTION);
- if (ret != 0) {
- printf("default aes-128 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_CBC_Encrypt(&mcAes, out1, ourData, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-128 cbc encrypt failed\n");
- return -1;
- }
- wc_AesCbcEncrypt(&defAes, out2, ourData, AES_TEST_SIZE);
-
- if (memcmp(out1, out2, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-128 cbc encrypt cmp failed\n");
- return -1;
- }
-
- /* 128 cbc decrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 16, iv, CRYPT_AES_DECRYPTION);
- if (ret != 0) {
- printf("mcapi aes-128 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 16, iv, DES_DECRYPTION);
- if (ret != 0) {
- printf("default aes-128 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_CBC_Decrypt(&mcAes, out2, out1, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-128 cbc decrypt failed\n");
- return -1;
- }
- wc_AesCbcDecrypt(&defAes, out1, out1, AES_TEST_SIZE);
-
- if (memcmp(out1, out2, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-128 cbc decrypt cmp failed\n");
- return -1;
- }
-
- if (memcmp(out1, ourData, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-128 cbc decrypt orig cmp failed\n");
- return -1;
- }
-
- /* 192 cbc encrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 24, iv, CRYPT_AES_ENCRYPTION);
- if (ret != 0) {
- printf("mcapi aes-192 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 24, iv, AES_ENCRYPTION);
- if (ret != 0) {
- printf("default aes-192 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_CBC_Encrypt(&mcAes, out1, ourData, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-192 cbc encrypt failed\n");
- return -1;
- }
- wc_AesCbcEncrypt(&defAes, out2, ourData, AES_TEST_SIZE);
-
- if (memcmp(out1, out2, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-192 cbc encrypt cmp failed\n");
- return -1;
- }
-
- /* 192 cbc decrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 24, iv, CRYPT_AES_DECRYPTION);
- if (ret != 0) {
- printf("mcapi aes-192 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 24, iv, AES_DECRYPTION);
- if (ret != 0) {
- printf("default aes-192 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_CBC_Decrypt(&mcAes, out2, out1, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-192 cbc decrypt failed\n");
- return -1;
- }
- wc_AesCbcDecrypt(&defAes, out1, out1, AES_TEST_SIZE);
-
- if (memcmp(out1, out2, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-192 cbc decrypt cmp failed\n");
- return -1;
- }
-
- if (memcmp(out1, ourData, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-192 cbc decrypt orig cmp failed\n");
- return -1;
- }
-
- /* 256 cbc encrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 32, iv, CRYPT_AES_ENCRYPTION);
- if (ret != 0) {
- printf("mcapi aes-256 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 32, iv, AES_ENCRYPTION);
- if (ret != 0) {
- printf("default aes-256 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_CBC_Encrypt(&mcAes, out1, ourData, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-256 cbc encrypt failed\n");
- return -1;
- }
- wc_AesCbcEncrypt(&defAes, out2, ourData, AES_TEST_SIZE);
-
- if (memcmp(out1, out2, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-256 cbc encrypt cmp failed\n");
- return -1;
- }
-
- /* 256 cbc decrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 32, iv, CRYPT_AES_DECRYPTION);
- if (ret != 0) {
- printf("mcapi aes-256 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 32, iv, AES_DECRYPTION);
- if (ret != 0) {
- printf("default aes-256 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_CBC_Decrypt(&mcAes, out2, out1, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-256 cbc decrypt failed\n");
- return -1;
- }
- wc_AesCbcDecrypt(&defAes, out1, out1, AES_TEST_SIZE);
-
- if (memcmp(out1, out2, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-256 cbc decrypt cmp failed\n");
- return -1;
- }
-
- if (memcmp(out1, ourData, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-256 cbc decrypt orig cmp failed\n");
- return -1;
- }
-
- printf("aes-cbc mcapi test passed\n");
-
- return 0;
-}
-
-
-/* check mcapi aes ctr */
-static int check_aesctr(void)
-{
- CRYPT_AES_CTX mcAes;
- Aes defAes;
- int ret;
- byte out1[AES_TEST_SIZE];
- byte out2[AES_TEST_SIZE];
-
- memcpy((char*)key, "1234567890abcdefghijklmnopqrstuv", 32);
- memcpy((char*)iv, "1234567890abcdef", 16);
-
- /* 128 ctr encrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 16, iv, CRYPT_AES_ENCRYPTION);
- if (ret != 0) {
- printf("mcapi aes-128 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 16, iv, AES_ENCRYPTION);
- if (ret != 0) {
- printf("default aes-128 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_CTR_Encrypt(&mcAes, out1, ourData, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-128 ctr encrypt failed\n");
- return -1;
- }
- ret = wc_AesCtrEncrypt(&defAes, out2, ourData, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-128 ctr encrypt set failed\n");
- return -1;
- }
- if (memcmp(out1, out2, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-128 ctr encrypt cmp failed\n");
- return -1;
- }
-
- /* 128 ctr decrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 16, iv, CRYPT_AES_ENCRYPTION);
- if (ret != 0) {
- printf("mcapi aes-128 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 16, iv, AES_ENCRYPTION);
- if (ret != 0) {
- printf("default aes-128 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_CTR_Encrypt(&mcAes, out2, out1, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-128 ctr decrypt failed\n");
- return -1;
- }
-
- if (memcmp(out2, ourData, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-128 ctr decrypt orig cmp failed\n");
- return -1;
- }
-
- /* 192 ctr encrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 24, iv, CRYPT_AES_ENCRYPTION);
- if (ret != 0) {
- printf("mcapi aes-192 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 24, iv, AES_ENCRYPTION);
- if (ret != 0) {
- printf("default aes-192 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_CTR_Encrypt(&mcAes, out1, ourData, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-192 ctr encrypt failed\n");
- return -1;
- }
- ret = wc_AesCtrEncrypt(&defAes, out2, ourData, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-192 ctr encrypt set failed\n");
- return -1;
- }
- if (memcmp(out1, out2, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-192 ctr encrypt cmp failed\n");
- return -1;
- }
-
- /* 192 ctr decrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 24, iv, CRYPT_AES_ENCRYPTION);
- if (ret != 0) {
- printf("mcapi aes-192 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 24, iv, AES_DECRYPTION);
- if (ret != 0) {
- printf("default aes-192 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_CTR_Encrypt(&mcAes, out2, out1, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-192 ctr decrypt failed\n");
- return -1;
- }
-
- if (memcmp(out2, ourData, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-192 ctr decrypt orig cmp failed\n");
- return -1;
- }
-
- /* 256 ctr encrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 32, iv, CRYPT_AES_ENCRYPTION);
- if (ret != 0) {
- printf("mcapi aes-256 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 32, iv, AES_ENCRYPTION);
- if (ret != 0) {
- printf("default aes-256 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_CTR_Encrypt(&mcAes, out1, ourData, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-256 ctr encrypt failed\n");
- return -1;
- }
- ret = wc_AesCtrEncrypt(&defAes, out2, ourData, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-256 ctr encrypt set failed\n");
- return -1;
- }
- if (memcmp(out1, out2, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-256 ctr encrypt cmp failed\n");
- return -1;
- }
-
- /* 256 ctr decrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 32, iv, CRYPT_AES_ENCRYPTION);
- if (ret != 0) {
- printf("mcapi aes-256 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 32, iv, AES_ENCRYPTION);
- if (ret != 0) {
- printf("default aes-256 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_CTR_Encrypt(&mcAes, out2, out1, AES_TEST_SIZE);
- if (ret != 0) {
- printf("mcapi aes-256 ctr decrypt failed\n");
- return -1;
- }
-
- if (memcmp(out2, ourData, AES_TEST_SIZE) != 0) {
- printf("mcapi aes-256 ctr decrypt orig cmp failed\n");
- return -1;
- }
-
- printf("aes-ctr mcapi test passed\n");
-
- return 0;
-}
-
-
-/* check mcapi aes direct */
-static int check_aesdirect(void)
-{
- CRYPT_AES_CTX mcAes;
- Aes defAes;
- int ret;
- byte out1[CRYPT_AES_BLOCK_SIZE];
- byte out2[16]; /* one block at a time */
-
- memcpy((char*)key, "1234567890abcdefghijklmnopqrstuv", 32);
- memcpy((char*)iv, "1234567890abcdef", 16);
-
- /* 128 direct encrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 16, iv, CRYPT_AES_ENCRYPTION);
- if (ret != 0) {
- printf("mcapi aes-128 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 16, iv, AES_ENCRYPTION);
- if (ret != 0) {
- printf("default aes-128 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_DIRECT_Encrypt(&mcAes, out1, ourData);
- if (ret != 0) {
- printf("mcapi aes-128 direct encrypt failed\n");
- return -1;
- }
- wc_AesEncryptDirect(&defAes, out2, ourData);
-
- if (memcmp(out1, out2, CRYPT_AES_BLOCK_SIZE) != 0) {
- printf("mcapi aes-128 direct encrypt cmp failed\n");
- return -1;
- }
-
- /* 128 direct decrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 16, iv, CRYPT_AES_DECRYPTION);
- if (ret != 0) {
- printf("mcapi aes-128 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 16, iv, DES_DECRYPTION);
- if (ret != 0) {
- printf("default aes-128 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_DIRECT_Decrypt(&mcAes, out2, out1);
- if (ret != 0) {
- printf("mcapi aes-128 direct decrypt failed\n");
- return -1;
- }
- wc_AesDecryptDirect(&defAes, out1, out1);
-
- if (memcmp(out1, out2, CRYPT_AES_BLOCK_SIZE) != 0) {
- printf("mcapi aes-128 direct decrypt cmp failed\n");
- return -1;
- }
-
- if (memcmp(out1, ourData, CRYPT_AES_BLOCK_SIZE) != 0) {
- printf("mcapi aes-128 direct decrypt orig cmp failed\n");
- return -1;
- }
-
- /* 192 direct encrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 24, iv, CRYPT_AES_ENCRYPTION);
- if (ret != 0) {
- printf("mcapi aes-192 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 24, iv, AES_ENCRYPTION);
- if (ret != 0) {
- printf("default aes-192 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_DIRECT_Encrypt(&mcAes, out1, ourData);
- if (ret != 0) {
- printf("mcapi aes-192 direct encrypt failed\n");
- return -1;
- }
- wc_AesEncryptDirect(&defAes, out2, ourData);
-
- if (memcmp(out1, out2, CRYPT_AES_BLOCK_SIZE) != 0) {
- printf("mcapi aes-192 direct encrypt cmp failed\n");
- return -1;
- }
-
- /* 192 direct decrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 24, iv, CRYPT_AES_DECRYPTION);
- if (ret != 0) {
- printf("mcapi aes-192 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 24, iv, AES_DECRYPTION);
- if (ret != 0) {
- printf("default aes-192 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_DIRECT_Decrypt(&mcAes, out2, out1);
- if (ret != 0) {
- printf("mcapi aes-192 direct decrypt failed\n");
- return -1;
- }
- wc_AesDecryptDirect(&defAes, out1, out1);
-
- if (memcmp(out1, out2, CRYPT_AES_BLOCK_SIZE) != 0) {
- printf("mcapi aes-192 direct decrypt cmp failed\n");
- return -1;
- }
-
- if (memcmp(out1, ourData, CRYPT_AES_BLOCK_SIZE) != 0) {
- printf("mcapi aes-192 direct decrypt orig cmp failed\n");
- return -1;
- }
-
- /* 256 direct encrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 32, iv, CRYPT_AES_ENCRYPTION);
- if (ret != 0) {
- printf("mcapi aes-256 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 32, iv, AES_ENCRYPTION);
- if (ret != 0) {
- printf("default aes-256 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_DIRECT_Encrypt(&mcAes, out1, ourData);
- if (ret != 0) {
- printf("mcapi aes-256 direct encrypt failed\n");
- return -1;
- }
- wc_AesEncryptDirect(&defAes, out2, ourData);
-
- if (memcmp(out1, out2, CRYPT_AES_BLOCK_SIZE) != 0) {
- printf("mcapi aes-256 direct encrypt cmp failed\n");
- return -1;
- }
-
- /* 256 direct decrypt */
- ret = CRYPT_AES_KeySet(&mcAes, key, 32, iv, CRYPT_AES_DECRYPTION);
- if (ret != 0) {
- printf("mcapi aes-256 key set failed\n");
- return -1;
- }
- ret = wc_AesSetKey(&defAes, key, 32, iv, AES_DECRYPTION);
- if (ret != 0) {
- printf("default aes-256 key set failed\n");
- return -1;
- }
-
- ret = CRYPT_AES_DIRECT_Decrypt(&mcAes, out2, out1);
- if (ret != 0) {
- printf("mcapi aes-256 direct decrypt failed\n");
- return -1;
- }
- wc_AesDecryptDirect(&defAes, out1, out1);
-
- if (memcmp(out1, out2, CRYPT_AES_BLOCK_SIZE) != 0) {
- printf("mcapi aes-256 direct decrypt cmp failed\n");
- return -1;
- }
-
- if (memcmp(out1, ourData, CRYPT_AES_BLOCK_SIZE) != 0) {
- printf("mcapi aes-256 direct decrypt orig cmp failed\n");
- return -1;
- }
-
- printf("aes-direct mcapi test passed\n");
-
- return 0;
-}
-
-
-#define RSA_TEST_SIZE 64
-
-/* check mcapi rsa */
-static int check_rsa(void)
-{
- CRYPT_RSA_CTX mcRsa;
- RsaKey defRsa;
- int ret;
- int ret2;
- unsigned int keySz = (unsigned int)sizeof(client_key_der_1024);
- unsigned int idx = 0;
- byte out1[256];
- byte out2[256];
-
- ret = wc_InitRsaKey(&defRsa, NULL);
- if (ret == 0)
- ret = CRYPT_RSA_Initialize(&mcRsa);
- if (ret != 0) {
- printf("mcapi rsa init failed\n");
- return -1;
- }
-
- ret = CRYPT_RSA_PrivateKeyDecode(&mcRsa, client_key_der_1024, keySz);
- if (ret != 0) {
- printf("mcapi rsa private key decode failed\n");
- return -1;
- }
-
- ret = wc_RsaPrivateKeyDecode(client_key_der_1024, &idx, &defRsa, keySz);
- if (ret != 0) {
- printf("default rsa private key decode failed\n");
- return -1;
- }
-
- ret = CRYPT_RSA_SetRng(&mcRsa, &mcRng);
- if (ret != 0) {
- printf("mcapi rsa set rng failed\n");
- return -1;
- }
-
- ret = CRYPT_RSA_PublicEncrypt(&mcRsa, out1, sizeof(out1), ourData,
- RSA_TEST_SIZE, &mcRng);
- if (ret < 0) {
- printf("mcapi rsa public encrypt failed\n");
- return -1;
- }
-
- ret2 = wc_RsaPublicEncrypt(ourData, RSA_TEST_SIZE, out2, sizeof(out2),
- &defRsa, &defRng);
- if (ret2 < 0) {
- printf("default rsa public encrypt failed\n");
- return -1;
- }
-
- if (ret != ret2) {
- printf("default rsa public encrypt sz != mcapi sz\n");
- return -1;
- }
-
- if (ret != CRYPT_RSA_EncryptSizeGet(&mcRsa)) {
- printf("mcapi encrypt sz get != mcapi sz\n");
- return -1;
- }
-
- ret = CRYPT_RSA_PrivateDecrypt(&mcRsa, out2, sizeof(out2), out1, ret);
- if (ret < 0) {
- printf("mcapi rsa private derypt failed\n");
- return -1;
- }
-
- if (ret != RSA_TEST_SIZE) {
- printf("mcapi rsa private derypt plain size wrong\n");
- return -1;
- }
-
- if (memcmp(out2, ourData, ret) != 0) {
- printf("mcapi rsa private derypt plain text bad\n");
- return -1;
- }
-
- wc_FreeRsaKey(&defRsa);
- ret = CRYPT_RSA_Free(&mcRsa);
- if (ret != 0) {
- printf("mcapi rsa free failed\n");
- return -1;
- }
-
- printf("rsa mcapi test passed\n");
-
- return 0;
-}
-
-
-/* check mcapi ecc */
-static int check_ecc(void)
-{
- CRYPT_ECC_CTX userA;
- CRYPT_ECC_CTX userB;
- int ret;
- byte sharedA[100];
- byte sharedB[100];
- byte sig[100];
- unsigned int aSz = (unsigned int)sizeof(sharedA);
- unsigned int bSz = (unsigned int)sizeof(sharedB);
- unsigned int sigSz = (unsigned int)sizeof(sig);
- unsigned int usedA = 0;
- unsigned int usedB = 0;
- int verifyStatus = 0;
-
- /* init */
- ret = CRYPT_ECC_Initialize(&userA);
- if (ret != 0) {
- printf("mcapi ecc init failed\n");
- return -1;
- }
-
- ret = CRYPT_ECC_Initialize(&userB);
- if (ret != 0) {
- printf("mcapi ecc init b failed\n");
- return -1;
- }
-
- /* dhe + helpers */
- ret = CRYPT_ECC_DHE_KeyMake(&userA, &mcRng, 32);
- if (ret != 0) {
- printf("mcapi ecc make key failed\n");
- return -1;
- }
-
- ret = CRYPT_ECC_DHE_KeyMake(&userB, &mcRng, 32);
- if (ret != 0) {
- printf("mcapi ecc make key b failed\n");
- return -1;
- }
-
- ret = CRYPT_ECC_KeySizeGet(&userA);
- if (ret <= 0) {
- printf("mcapi ecc key size get failed\n");
- return -1;
- }
-
- ret = CRYPT_ECC_SignatureSizeGet(&userA);
- if (ret <= 0) {
- printf("mcapi ecc signature size get failed\n");
- return -1;
- }
-
- ret = CRYPT_ECC_DHE_SharedSecretMake(&userA, &userB, sharedA, aSz, &usedA);
- if (ret != 0) {
- printf("mcapi ecc make shared secret failed\n");
- return -1;
- }
-
- ret = CRYPT_ECC_DHE_SharedSecretMake(&userB, &userA, sharedB, bSz, &usedB);
- if (ret != 0) {
- printf("mcapi ecc make shared secret failed\n");
- return -1;
- }
-
- if (usedA != usedB || usedA == 0) {
- printf("mcapi ecc make shared secret output size match failed\n");
- return -1;
- }
-
- if (memcmp(sharedA, sharedB, usedA) != 0) {
- printf("mcapi ecc make shared secret output match cmp failed\n");
- return -1;
- }
-
- /* dsa */
- ret = CRYPT_ECC_DSA_HashSign(&userA, &mcRng, sig, sigSz, &usedA, ourData,
- CRYPT_SHA_DIGEST_SIZE);
- if (ret != 0) {
- printf("mcapi ecc sign hash failed\n");
- return -1;
- }
-
- sigSz = usedA;
- if (sigSz == 0) {
- printf("mcapi ecc sign hash bad sig size\n");
- return -1;
- }
-
- ret = CRYPT_ECC_DSA_HashVerify(&userA, sig, sigSz, ourData,
- CRYPT_SHA_DIGEST_SIZE, &verifyStatus);
- if (ret != 0) {
- printf("mcapi ecc verify hash failed\n");
- return -1;
- }
- if (verifyStatus != 1) {
- printf("mcapi ecc verify hash status failed\n");
- return -1;
- }
-
- /* import / export */
- usedA = 0;
- ret = CRYPT_ECC_PublicExport(&userA, sharedA, aSz, &usedA);
- if (ret != 0) {
- printf("mcapi ecc public export failed\n");
- return -1;
- }
-
- ret = CRYPT_ECC_PublicImport(&userB, sharedA, usedA);
- if (ret != 0) {
- printf("mcapi ecc public import failed\n");
- return -1;
- }
-
- ret = CRYPT_ECC_Free(&userA);
- if (ret != 0) {
- printf("mcapi ecc free failed\n");
- return -1;
- }
-
- ret = CRYPT_ECC_Free(&userB);
- if (ret != 0) {
- printf("mcapi ecc free b failed\n");
- return -1;
- }
-
- printf("ecc mcapi test passed\n");
-
- return 0;
-}
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/user_settings.h b/FreeRTOS-Plus/Source/WolfSSL/mcapi/user_settings.h
deleted file mode 100644
index b89a6f785..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/user_settings.h
+++ /dev/null
@@ -1,386 +0,0 @@
-/* Example custom user settings for wolfSSL */
-
-#ifndef WOLFSSL_USER_SETTINGS_H
-#define WOLFSSL_USER_SETTINGS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stddef.h> /* for size_t */
-
-
-/* ------------------------------------------------------------------------- */
-/* Platform */
-/* ------------------------------------------------------------------------- */
-#undef WOLFSSL_GENERAL_ALIGNMENT
-#define WOLFSSL_GENERAL_ALIGNMENT 4
-
-#undef SINGLE_THREADED
-#define SINGLE_THREADED
-
-#undef WOLFSSL_SMALL_STACK
-#define WOLFSSL_SMALL_STACK
-
-#undef MICROCHIP_PIC32
-#define MICROCHIP_PIC32
-
-#undef WOLFSSL_MICROCHIP_PIC32MZ
-#define WOLFSSL_MICROCHIP_PIC32MZ
-
-
-/* ------------------------------------------------------------------------- */
-/* Math Configuration */
-/* ------------------------------------------------------------------------- */
-#undef USE_FAST_MATH
-#define USE_FAST_MATH
-
-#ifdef USE_FAST_MATH
- #undef TFM_TIMING_RESISTANT
- #define TFM_TIMING_RESISTANT
-
- /* Optimizations */
- //#define TFM_MIPS
-#endif
-
-
-/* ------------------------------------------------------------------------- */
-/* Crypto */
-/* ------------------------------------------------------------------------- */
-/* ECC */
-#if 1
- #undef HAVE_ECC
- #define HAVE_ECC
-
- /* Manually define enabled curves */
- #undef ECC_USER_CURVES
- #define ECC_USER_CURVES
-
- //#define HAVE_ECC192
- //#define HAVE_ECC224
- #undef NO_ECC256
- //#define HAVE_ECC384
- //#define HAVE_ECC521
-
- /* Fixed point cache (speeds repeated operations against same private key) */
- #undef FP_ECC
- //#define FP_ECC
- #ifdef FP_ECC
- /* Bits / Entries */
- #undef FP_ENTRIES
- #define FP_ENTRIES 2
- #undef FP_LUT
- #define FP_LUT 4
- #endif
-
- /* Optional ECC calculation method */
- /* Note: doubles heap usage, but slightly faster */
- #undef ECC_SHAMIR
- #define ECC_SHAMIR
-
- /* Reduces heap usage, but slower */
- #undef ECC_TIMING_RESISTANT
- #define ECC_TIMING_RESISTANT
-
- #ifdef USE_FAST_MATH
- /* use reduced size math buffers for ecc points */
- #undef ALT_ECC_SIZE
- #define ALT_ECC_SIZE
-
- /* Enable TFM optimizations for ECC */
- #if defined(HAVE_ECC192) || defined(HAVE_ALL_CURVES)
- #define TFM_ECC192
- #endif
- #if defined(HAVE_ECC224) || defined(HAVE_ALL_CURVES)
- #define TFM_ECC224
- #endif
- #if !defined(NO_ECC256) || defined(HAVE_ALL_CURVES)
- #define TFM_ECC256
- #endif
- #if defined(HAVE_ECC384) || defined(HAVE_ALL_CURVES)
- #define TFM_ECC384
- #endif
- #if defined(HAVE_ECC521) || defined(HAVE_ALL_CURVES)
- #define TFM_ECC521
- #endif
- #endif
-#endif
-
-/* RSA */
-#undef NO_RSA
-#if 1
- #ifdef USE_FAST_MATH
- /* Maximum math bits (Max RSA key bits * 2) */
- #undef FP_MAX_BITS
- #define FP_MAX_BITS 4096
- #endif
-
- /* half as much memory but twice as slow */
- #undef RSA_LOW_MEM
- //#define RSA_LOW_MEM
-
- /* timing resistance */
- #undef WC_RSA_BLINDING
- #define WC_RSA_BLINDING
-#else
- #define NO_RSA
-#endif
-
-/* AES */
-#undef NO_AES
-#if 1
- #undef HAVE_AES_DECRYPT
- #define HAVE_AES_DECRYPT
-
- #undef HAVE_AESGCM
- #define HAVE_AESGCM
-
- /* GCM Method: GCM_SMALL, GCM_WORD32 or GCM_TABLE */
- #undef GCM_SMALL
- #define GCM_SMALL
-
- #undef HAVE_AESCCM
- #define HAVE_AESCCM
-
- #undef WOLFSSL_AES_COUNTER
- #define WOLFSSL_AES_COUNTER
-
- #undef WOLFSSL_AES_DIRECT
- #define WOLFSSL_AES_DIRECT
-#else
- #define NO_AES
-#endif
-
-/* DES3 */
-#undef NO_DES3
-#if 1
- #undef WOLFSSL_DES_ECB
- #define WOLFSSL_DES_ECB
-#else
- #define NO_DES3
-#endif
-
-
-/* ChaCha20 / Poly1305 */
-#undef HAVE_CHACHA
-#undef HAVE_POLY1305
-#if 0
- #define HAVE_CHACHA
- #define HAVE_POLY1305
-
- /* Needed for Poly1305 */
- #undef HAVE_ONE_TIME_AUTH
- #define HAVE_ONE_TIME_AUTH
-#endif
-
-/* Ed25519 / Curve25519 */
-#undef HAVE_CURVE25519
-#undef HAVE_ED25519
-#if 0
- #define HAVE_CURVE25519
- #define HAVE_ED25519
-
- /* Optionally use small math (less flash usage, but much slower) */
- #if 0
- #define CURVED25519_SMALL
- #endif
-#endif
-
-
-/* ------------------------------------------------------------------------- */
-/* Hashing */
-/* ------------------------------------------------------------------------- */
-/* Sha */
-#undef NO_SHA
-#if 1
- /* 1k smaller, but 25% slower */
- //#define USE_SLOW_SHA
-#else
- #define NO_SHA
-#endif
-
-/* Sha256 */
-#undef NO_SHA256
-#if 1
-#else
- #define NO_SHA256
-#endif
-
-/* Sha512 */
-#undef WOLFSSL_SHA512
-#if 1
- #define WOLFSSL_SHA512
-
- /* Sha384 */
- #undef WOLFSSL_SHA384
- #if 1
- #define WOLFSSL_SHA384
- #endif
-
- /* over twice as small, but 50% slower */
- //#define USE_SLOW_SHA2
-#endif
-
-/* MD5 */
-#undef NO_MD5
-#if 1
-#else
- #define NO_MD5
-#endif
-
-
-/* ------------------------------------------------------------------------- */
-/* Benchmark / Test */
-/* ------------------------------------------------------------------------- */
-/* Use reduced benchmark / test sizes */
-#undef BENCH_EMBEDDED
-#define BENCH_EMBEDDED
-
-#undef USE_CERT_BUFFERS_2048
-#define USE_CERT_BUFFERS_2048
-
-#undef USE_CERT_BUFFERS_1024
-//#define USE_CERT_BUFFERS_1024
-
-#undef USE_CERT_BUFFERS_256
-#define USE_CERT_BUFFERS_256
-
-
-/* ------------------------------------------------------------------------- */
-/* Time */
-/* ------------------------------------------------------------------------- */
-#if 0
- /* Override Current Time */
- /* Allows custom "custom_time()" function to be used for benchmark */
- #define WOLFSSL_USER_CURRTIME
- #define USER_TICKS
- extern unsigned long custom_time(unsigned long* timer);
- #define XTIME custom_time
-#else
- #warning Time/RTC disabled
- #undef NO_ASN_TIME
- #define NO_ASN_TIME
-#endif
-
-/* ------------------------------------------------------------------------- */
-/* Debugging */
-/* ------------------------------------------------------------------------- */
-#undef DEBUG_WOLFSSL
-#define DEBUG_WOLFSSL
-
-#ifdef DEBUG_WOLFSSL
- /* Use this to measure / print heap usage */
- #if 0
- #undef USE_WOLFSSL_MEMORY
- #define USE_WOLFSSL_MEMORY
- #undef WOLFSSL_TRACK_MEMORY
- #define WOLFSSL_TRACK_MEMORY
- #endif
-#else
- #undef NO_WOLFSSL_MEMORY
- #define NO_WOLFSSL_MEMORY
-
- #undef NO_ERROR_STRINGS
- //#define NO_ERROR_STRINGS
-#endif
-
-
-/* ------------------------------------------------------------------------- */
-/* Enable Features */
-/* ------------------------------------------------------------------------- */
-#undef KEEP_PEER_CERT
-//#define KEEP_PEER_CERT
-
-#undef HAVE_COMP_KEY
-//#define HAVE_COMP_KEY
-
-#undef HAVE_TLS_EXTENSIONS
-//#define HAVE_TLS_EXTENSIONS
-
-#undef HAVE_SUPPORTED_CURVES
-//#define HAVE_SUPPORTED_CURVES
-
-#undef WOLFSSL_BASE64_ENCODE
-//#define WOLFSSL_BASE64_ENCODE
-
-/* TLS Session Cache */
-#if 0
- #define SMALL_SESSION_CACHE
-#else
- #define NO_SESSION_CACHE
-#endif
-
-
-/* ------------------------------------------------------------------------- */
-/* Disable Features */
-/* ------------------------------------------------------------------------- */
-#undef NO_WOLFSSL_SERVER
-//#define NO_WOLFSSL_SERVER
-
-#undef NO_WOLFSSL_CLIENT
-//#define NO_WOLFSSL_CLIENT
-
-#undef NO_CRYPT_TEST
-//#define NO_CRYPT_TEST
-
-#undef NO_CRYPT_BENCHMARK
-//#define NO_CRYPT_BENCHMARK
-
-/* In-lining of misc.c functions */
-/* If defined, must include wolfcrypt/src/misc.c in build */
-/* Slower, but about 1k smaller */
-#undef NO_INLINE
-//#define NO_INLINE
-
-#undef NO_FILESYSTEM
-#define NO_FILESYSTEM
-
-#undef NO_WRITEV
-#define NO_WRITEV
-
-#undef NO_MAIN_DRIVER
-#define NO_MAIN_DRIVER
-
-#undef NO_DEV_RANDOM
-#define NO_DEV_RANDOM
-
-#undef NO_DSA
-#define NO_DSA
-
-#undef NO_DH
-#define NO_DH
-
-#undef NO_RC4
-#define NO_RC4
-
-#undef NO_OLD_TLS
-#define NO_OLD_TLS
-
-#undef NO_HC128
-#define NO_HC128
-
-#undef NO_RABBIT
-#define NO_RABBIT
-
-#undef NO_PSK
-#define NO_PSK
-
-#undef NO_MD4
-#define NO_MD4
-
-#undef NO_PWDBASED
-#define NO_PWDBASED
-
-#undef NO_CODING
-//#define NO_CODING
-
-
-/* Suppress array-bounds */
-#pragma GCC diagnostic ignored "-Warray-bounds"
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* WOLFSSL_USER_SETTINGS_H */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/Makefile b/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/Makefile
deleted file mode 100644
index 55369918f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/Makefile
+++ /dev/null
@@ -1,108 +0,0 @@
-#
-# There exist several targets which are by default empty and which can be
-# used for execution of your targets. These targets are usually executed
-# before and after some main targets. They are:
-#
-# .build-pre: called before 'build' target
-# .build-post: called after 'build' target
-# .clean-pre: called before 'clean' target
-# .clean-post: called after 'clean' target
-# .clobber-pre: called before 'clobber' target
-# .clobber-post: called after 'clobber' target
-# .all-pre: called before 'all' target
-# .all-post: called after 'all' target
-# .help-pre: called before 'help' target
-# .help-post: called after 'help' target
-#
-# Targets beginning with '.' are not intended to be called on their own.
-#
-# Main targets can be executed directly, and they are:
-#
-# build build a specific configuration
-# clean remove built files from a configuration
-# clobber remove all built files
-# all build all configurations
-# help print help message
-#
-# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
-# .help-impl are implemented in nbproject/makefile-impl.mk.
-#
-# Available make variables:
-#
-# CND_BASEDIR base directory for relative paths
-# CND_DISTDIR default top distribution directory (build artifacts)
-# CND_BUILDDIR default top build directory (object files, ...)
-# CONF name of current configuration
-# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
-# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
-# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
-# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
-# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
-# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
-#
-# NOCDDL
-
-
-# Environment
-MKDIR=mkdir
-CP=cp
-CCADMIN=CCadmin
-RANLIB=ranlib
-
-
-# build
-build: .build-post
-
-.build-pre:
-# Add your pre 'build' code here...
-
-.build-post: .build-impl
-# Add your post 'build' code here...
-
-
-# clean
-clean: .clean-post
-
-.clean-pre:
-# Add your pre 'clean' code here...
-
-.clean-post: .clean-impl
-# Add your post 'clean' code here...
-
-
-# clobber
-clobber: .clobber-post
-
-.clobber-pre:
-# Add your pre 'clobber' code here...
-
-.clobber-post: .clobber-impl
-# Add your post 'clobber' code here...
-
-
-# all
-all: .all-post
-
-.all-pre:
-# Add your pre 'all' code here...
-
-.all-post: .all-impl
-# Add your post 'all' code here...
-
-
-# help
-help: .help-post
-
-.help-pre:
-# Add your pre 'help' code here...
-
-.help-post: .help-impl
-# Add your post 'help' code here...
-
-
-
-# include project implementation makefile
-include nbproject/Makefile-impl.mk
-
-# include project make variables
-include nbproject/Makefile-variables.mk
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/nbproject/configurations.xml b/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/nbproject/configurations.xml
deleted file mode 100644
index 09fb14503..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/nbproject/configurations.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configurationDescriptor version="62">
- <logicalFolder name="root" displayName="root" projectFiles="true">
- <logicalFolder name="HeaderFiles"
- displayName="Header Files"
- projectFiles="true">
- <itemPath>../user_settings.h</itemPath>
- </logicalFolder>
- <logicalFolder name="LinkerScript"
- displayName="Linker Files"
- projectFiles="true">
- </logicalFolder>
- <logicalFolder name="SourceFiles"
- displayName="Source Files"
- projectFiles="true">
- <itemPath>../mcapi_test.c</itemPath>
- <itemPath>../crypto.c</itemPath>
- </logicalFolder>
- <logicalFolder name="ExternalFiles"
- displayName="Important Files"
- projectFiles="false">
- <itemPath>Makefile</itemPath>
- </logicalFolder>
- </logicalFolder>
- <sourceRootList>
- <Elem>..</Elem>
- </sourceRootList>
- <projectmakefile>Makefile</projectmakefile>
- <confs>
- <conf name="default" type="2">
- <toolsSet>
- <developmentServer>localhost</developmentServer>
- <targetDevice>PIC32MX795F512L</targetDevice>
- <targetHeader></targetHeader>
- <targetPluginBoard></targetPluginBoard>
- <platformTool>SKDEPIC32PlatformTool</platformTool>
- <languageToolchain>XC32</languageToolchain>
- <languageToolchainVersion>1.34</languageToolchainVersion>
- <platform>4</platform>
- </toolsSet>
- <compileType>
- <linkerTool>
- <linkerLibItems>
- <linkerLibProjectItem>
- <makeArtifact PL="../wolfssl.X"
- CT="3"
- CN="default"
- AC="true"
- BL="true"
- WD="../wolfssl.X"
- BC="${MAKE} -f Makefile CONF=default"
- DBC="${MAKE} -f Makefile CONF=default TYPE_IMAGE=DEBUG_RUN"
- CC="rm -rf &quot;build/default&quot; &quot;dist/default&quot;"
- OP="dist/default/production/wolfssl.X.a"
- DOP="dist/default/debug/wolfssl.X.a"
- FL="dist/default/production/wolfssl.X.a"
- PD="dist/default/production/wolfssl.X."
- DD="dist/default/debug/wolfssl.X.">
- </makeArtifact>
- </linkerLibProjectItem>
- <linkerLibProjectItem>
- <makeArtifact PL="../zlib.X"
- CT="3"
- CN="default"
- AC="true"
- BL="true"
- WD="../zlib.X"
- BC="${MAKE} -f Makefile CONF=default"
- DBC="${MAKE} -f Makefile CONF=default TYPE_IMAGE=DEBUG_RUN"
- CC="rm -rf &quot;build/default&quot; &quot;dist/default&quot;"
- OP="dist/default/production/zlib.X.a"
- DOP="dist/default/debug/zlib.X.a"
- FL="dist/default/production/zlib.X.a"
- PD="dist/default/production/zlib.X."
- DD="dist/default/debug/zlib.X.">
- </makeArtifact>
- </linkerLibProjectItem>
- </linkerLibItems>
- </linkerTool>
- <archiverTool>
- </archiverTool>
- <loading>
- <useAlternateLoadableFile>false</useAlternateLoadableFile>
- <parseOnProdLoad>false</parseOnProdLoad>
- <alternateLoadableFile></alternateLoadableFile>
- </loading>
- </compileType>
- <makeCustomizationType>
- <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
- <makeCustomizationPreStep></makeCustomizationPreStep>
- <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>
- <makeCustomizationPostStep></makeCustomizationPostStep>
- <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>
- <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>
- <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
- </makeCustomizationType>
- <C32>
- <property key="additional-warnings" value="false"/>
- <property key="enable-app-io" value="false"/>
- <property key="enable-omit-frame-pointer" value="false"/>
- <property key="enable-symbols" value="true"/>
- <property key="enable-unroll-loops" value="false"/>
- <property key="exclude-floating-point" value="false"/>
- <property key="extra-include-directories"
- value="../../;../../mcapi;../../zlib-1.2.8"/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="isolate-each-function" value="false"/>
- <property key="make-warnings-into-errors" value="false"/>
- <property key="optimization-level" value=""/>
- <property key="place-data-into-section" value="false"/>
- <property key="post-instruction-scheduling" value="default"/>
- <property key="pre-instruction-scheduling" value="default"/>
- <property key="preprocessor-macros" value="WOLFSSL_USER_SETTINGS;HAVE_LIBZ;HAVE_MCAPI"/>
- <property key="strict-ansi" value="false"/>
- <property key="support-ansi" value="false"/>
- <property key="use-cci" value="false"/>
- <property key="use-iar" value="false"/>
- <property key="use-indirect-calls" value="false"/>
- </C32>
- <C32-AR>
- <property key="additional-options-chop-files" value="false"/>
- </C32-AR>
- <C32-AS>
- </C32-AS>
- <C32-LD>
- <property key="additional-options-use-response-files" value="false"/>
- <property key="enable-check-sections" value="false"/>
- <property key="exclude-floating-point-library" value="false"/>
- <property key="exclude-standard-libraries" value="false"/>
- <property key="extra-lib-directories" value=""/>
- <property key="fill-flash-options-addr" value=""/>
- <property key="fill-flash-options-const" value=""/>
- <property key="fill-flash-options-how" value="0"/>
- <property key="fill-flash-options-inc-const" value="1"/>
- <property key="fill-flash-options-increment" value=""/>
- <property key="fill-flash-options-seq" value=""/>
- <property key="fill-flash-options-what" value="0"/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-cross-reference-file" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="heap-size" value="32768"/>
- <property key="input-libraries" value=""/>
- <property key="linker-symbols" value=""/>
- <property key="map-file" value=""/>
- <property key="no-startup-files" value="false"/>
- <property key="oXC32ld-extra-opts" value=""/>
- <property key="optimization-level" value=""/>
- <property key="preprocessor-macros" value=""/>
- <property key="remove-unused-sections" value="false"/>
- <property key="report-memory-usage" value="false"/>
- <property key="stack-size" value="20480"/>
- <property key="symbol-stripping" value=""/>
- <property key="trace-symbols" value=""/>
- <property key="warn-section-align" value="false"/>
- </C32-LD>
- <C32CPP>
- <property key="additional-warnings" value="false"/>
- <property key="check-new" value="false"/>
- <property key="eh-specs" value="true"/>
- <property key="enable-app-io" value="false"/>
- <property key="enable-omit-frame-pointer" value="false"/>
- <property key="enable-symbols" value="true"/>
- <property key="enable-unroll-loops" value="false"/>
- <property key="exceptions" value="true"/>
- <property key="exclude-floating-point" value="false"/>
- <property key="extra-include-directories" value=""/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="isolate-each-function" value="false"/>
- <property key="make-warnings-into-errors" value="false"/>
- <property key="optimization-level" value=""/>
- <property key="place-data-into-section" value="false"/>
- <property key="post-instruction-scheduling" value="default"/>
- <property key="pre-instruction-scheduling" value="default"/>
- <property key="preprocessor-macros" value=""/>
- <property key="rtti" value="true"/>
- <property key="strict-ansi" value="false"/>
- <property key="use-cci" value="false"/>
- <property key="use-iar" value="false"/>
- <property key="use-indirect-calls" value="false"/>
- </C32CPP>
- <C32Global>
- <property key="common-include-directories" value=""/>
- <property key="gp-relative-option" value=""/>
- <property key="legacy-libc" value="false"/>
- <property key="relaxed-math" value="false"/>
- <property key="save-temps" value="false"/>
- <property key="wpo-lto" value="false"/>
- </C32Global>
- <SKDEPIC32PlatformTool>
- <property key="whatToProgram" value="all"/>
- </SKDEPIC32PlatformTool>
- </conf>
- </confs>
-</configurationDescriptor>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/nbproject/include.am b/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/nbproject/include.am
deleted file mode 100644
index 11b2ae9cb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/nbproject/include.am
+++ /dev/null
@@ -1,11 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- mcapi/wolfcrypt_mcapi.X/Makefile
-
-EXTRA_DIST += \
- mcapi/wolfcrypt_mcapi.X/nbproject/configurations.xml \
- mcapi/wolfcrypt_mcapi.X/nbproject/project.xml
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/nbproject/project.xml b/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/nbproject/project.xml
deleted file mode 100644
index c133c7c87..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_mcapi.X/nbproject/project.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://www.netbeans.org/ns/project/1">
- <type>com.microchip.mplab.nbide.embedded.makeproject</type>
- <configuration>
- <data xmlns="http://www.netbeans.org/ns/make-project/1">
- <name>wolfcrypt_mcapi</name>
- <creation-uuid>2ca6ab9b-e225-4ad3-b48e-9ea7b47a4ca4</creation-uuid>
- <make-project-type>0</make-project-type>
- <c-extensions>c</c-extensions>
- <cpp-extensions/>
- <header-extensions/>
- <sourceEncoding>ISO-8859-1</sourceEncoding>
- <asminc-extensions/>
- <make-dep-projects>
- <make-dep-project>../wolfssl.X</make-dep-project>
- <make-dep-project>../zlib.X</make-dep-project>
- </make-dep-projects>
- </data>
- </configuration>
-</project>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/Makefile b/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/Makefile
deleted file mode 100644
index 55369918f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/Makefile
+++ /dev/null
@@ -1,108 +0,0 @@
-#
-# There exist several targets which are by default empty and which can be
-# used for execution of your targets. These targets are usually executed
-# before and after some main targets. They are:
-#
-# .build-pre: called before 'build' target
-# .build-post: called after 'build' target
-# .clean-pre: called before 'clean' target
-# .clean-post: called after 'clean' target
-# .clobber-pre: called before 'clobber' target
-# .clobber-post: called after 'clobber' target
-# .all-pre: called before 'all' target
-# .all-post: called after 'all' target
-# .help-pre: called before 'help' target
-# .help-post: called after 'help' target
-#
-# Targets beginning with '.' are not intended to be called on their own.
-#
-# Main targets can be executed directly, and they are:
-#
-# build build a specific configuration
-# clean remove built files from a configuration
-# clobber remove all built files
-# all build all configurations
-# help print help message
-#
-# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
-# .help-impl are implemented in nbproject/makefile-impl.mk.
-#
-# Available make variables:
-#
-# CND_BASEDIR base directory for relative paths
-# CND_DISTDIR default top distribution directory (build artifacts)
-# CND_BUILDDIR default top build directory (object files, ...)
-# CONF name of current configuration
-# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
-# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
-# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
-# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
-# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
-# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
-#
-# NOCDDL
-
-
-# Environment
-MKDIR=mkdir
-CP=cp
-CCADMIN=CCadmin
-RANLIB=ranlib
-
-
-# build
-build: .build-post
-
-.build-pre:
-# Add your pre 'build' code here...
-
-.build-post: .build-impl
-# Add your post 'build' code here...
-
-
-# clean
-clean: .clean-post
-
-.clean-pre:
-# Add your pre 'clean' code here...
-
-.clean-post: .clean-impl
-# Add your post 'clean' code here...
-
-
-# clobber
-clobber: .clobber-post
-
-.clobber-pre:
-# Add your pre 'clobber' code here...
-
-.clobber-post: .clobber-impl
-# Add your post 'clobber' code here...
-
-
-# all
-all: .all-post
-
-.all-pre:
-# Add your pre 'all' code here...
-
-.all-post: .all-impl
-# Add your post 'all' code here...
-
-
-# help
-help: .help-post
-
-.help-pre:
-# Add your pre 'help' code here...
-
-.help-post: .help-impl
-# Add your post 'help' code here...
-
-
-
-# include project implementation makefile
-include nbproject/Makefile-impl.mk
-
-# include project make variables
-include nbproject/Makefile-variables.mk
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/nbproject/configurations.xml b/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/nbproject/configurations.xml
deleted file mode 100644
index 5112f0ab3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/nbproject/configurations.xml
+++ /dev/null
@@ -1,212 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configurationDescriptor version="62">
- <logicalFolder name="root" displayName="root" projectFiles="true">
- <logicalFolder name="HeaderFiles"
- displayName="Header Files"
- projectFiles="true">
- <itemPath>../user_settings.h</itemPath>
- </logicalFolder>
- <logicalFolder name="LinkerScript"
- displayName="Linker Files"
- projectFiles="true">
- </logicalFolder>
- <logicalFolder name="SourceFiles"
- displayName="Source Files"
- projectFiles="true">
- <itemPath>../../mplabx/test_main.c</itemPath>
- <itemPath>../../wolfcrypt/test/test.c</itemPath>
- </logicalFolder>
- <logicalFolder name="ExternalFiles"
- displayName="Important Files"
- projectFiles="false">
- <itemPath>Makefile</itemPath>
- </logicalFolder>
- </logicalFolder>
- <sourceRootList>
- <Elem>../../mplabx</Elem>
- <Elem>../../wolfcrypt/test</Elem>
- </sourceRootList>
- <projectmakefile>Makefile</projectmakefile>
- <confs>
- <conf name="default" type="2">
- <toolsSet>
- <developmentServer>localhost</developmentServer>
- <targetDevice>PIC32MX795F512L</targetDevice>
- <targetHeader></targetHeader>
- <targetPluginBoard></targetPluginBoard>
- <platformTool>SKDEPIC32PlatformTool</platformTool>
- <languageToolchain>XC32</languageToolchain>
- <languageToolchainVersion>1.34</languageToolchainVersion>
- <platform>4</platform>
- </toolsSet>
- <compileType>
- <linkerTool>
- <linkerLibItems>
- <linkerLibProjectItem>
- <makeArtifact PL="../wolfssl.X"
- CT="3"
- CN="default"
- AC="true"
- BL="true"
- WD="../wolfssl.X"
- BC="${MAKE} -f Makefile CONF=default"
- DBC="${MAKE} -f Makefile CONF=default TYPE_IMAGE=DEBUG_RUN"
- CC="rm -rf &quot;build/default&quot; &quot;dist/default&quot;"
- OP="dist/default/production/wolfssl.X.a"
- DOP="dist/default/debug/wolfssl.X.a"
- FL="dist/default/production/wolfssl.X.a"
- PD="dist/default/production/wolfssl.X."
- DD="dist/default/debug/wolfssl.X.">
- </makeArtifact>
- </linkerLibProjectItem>
- <linkerLibProjectItem>
- <makeArtifact PL="../zlib.X"
- CT="3"
- CN="default"
- AC="true"
- BL="true"
- WD="../zlib.X"
- BC="${MAKE} -f Makefile CONF=default"
- DBC="${MAKE} -f Makefile CONF=default TYPE_IMAGE=DEBUG_RUN"
- CC="rm -rf &quot;build/default&quot; &quot;dist/default&quot;"
- OP="dist/default/production/zlib.X.a"
- DOP="dist/default/debug/zlib.X.a"
- FL="dist/default/production/zlib.X.a"
- PD="dist/default/production/zlib.X."
- DD="dist/default/debug/zlib.X.">
- </makeArtifact>
- </linkerLibProjectItem>
- </linkerLibItems>
- </linkerTool>
- <archiverTool>
- </archiverTool>
- <loading>
- <useAlternateLoadableFile>false</useAlternateLoadableFile>
- <parseOnProdLoad>false</parseOnProdLoad>
- <alternateLoadableFile></alternateLoadableFile>
- </loading>
- </compileType>
- <makeCustomizationType>
- <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
- <makeCustomizationPreStep></makeCustomizationPreStep>
- <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>
- <makeCustomizationPostStep></makeCustomizationPostStep>
- <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>
- <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>
- <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
- </makeCustomizationType>
- <C32>
- <property key="additional-warnings" value="false"/>
- <property key="enable-app-io" value="false"/>
- <property key="enable-omit-frame-pointer" value="false"/>
- <property key="enable-symbols" value="false"/>
- <property key="enable-unroll-loops" value="false"/>
- <property key="exclude-floating-point" value="false"/>
- <property key="extra-include-directories" value="../../;../../zlib-1.2.7"/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="isolate-each-function" value="false"/>
- <property key="make-warnings-into-errors" value="false"/>
- <property key="optimization-level" value="-Os"/>
- <property key="place-data-into-section" value="false"/>
- <property key="post-instruction-scheduling" value="default"/>
- <property key="pre-instruction-scheduling" value="default"/>
- <property key="preprocessor-macros" value="WOLFSSL_USER_SETTINGS;HAVE_LIBZ;HAVE_MCAPI"/>
- <property key="strict-ansi" value="false"/>
- <property key="support-ansi" value="false"/>
- <property key="use-cci" value="false"/>
- <property key="use-iar" value="false"/>
- <property key="use-indirect-calls" value="false"/>
- </C32>
- <C32-AR>
- <property key="additional-options-chop-files" value="false"/>
- </C32-AR>
- <C32-AS>
- <property key="assembler-symbols" value=""/>
- <property key="enable-symbols" value="true"/>
- <property key="exclude-floating-point-library" value="false"/>
- <property key="expand-macros" value="false"/>
- <property key="extra-include-directories-for-assembler" value=""/>
- <property key="extra-include-directories-for-preprocessor" value=""/>
- <property key="false-conditionals" value="false"/>
- <property key="keep-locals" value="false"/>
- <property key="list-assembly" value="false"/>
- <property key="list-source" value="false"/>
- <property key="list-symbols" value="false"/>
- <property key="oXC32asm-list-to-file" value="false"/>
- <property key="omit-debug-dirs" value="false"/>
- <property key="omit-forms" value="false"/>
- <property key="preprocessor-macros" value=""/>
- <property key="warning-level" value=""/>
- </C32-AS>
- <C32-LD>
- <property key="additional-options-use-response-files" value="false"/>
- <property key="enable-check-sections" value="false"/>
- <property key="exclude-floating-point-library" value="false"/>
- <property key="exclude-standard-libraries" value="false"/>
- <property key="extra-lib-directories" value=""/>
- <property key="fill-flash-options-addr" value=""/>
- <property key="fill-flash-options-const" value=""/>
- <property key="fill-flash-options-how" value="0"/>
- <property key="fill-flash-options-inc-const" value="1"/>
- <property key="fill-flash-options-increment" value=""/>
- <property key="fill-flash-options-seq" value=""/>
- <property key="fill-flash-options-what" value="0"/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-cross-reference-file" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="heap-size" value="32768"/>
- <property key="input-libraries" value=""/>
- <property key="linker-symbols" value=""/>
- <property key="map-file" value=""/>
- <property key="no-startup-files" value="false"/>
- <property key="oXC32ld-extra-opts" value=""/>
- <property key="optimization-level" value="-Os"/>
- <property key="preprocessor-macros" value=""/>
- <property key="remove-unused-sections" value="true"/>
- <property key="report-memory-usage" value="false"/>
- <property key="stack-size" value="1024"/>
- <property key="symbol-stripping" value=""/>
- <property key="trace-symbols" value=""/>
- <property key="warn-section-align" value="false"/>
- </C32-LD>
- <C32CPP>
- <property key="additional-warnings" value="false"/>
- <property key="check-new" value="false"/>
- <property key="eh-specs" value="true"/>
- <property key="enable-app-io" value="false"/>
- <property key="enable-omit-frame-pointer" value="false"/>
- <property key="enable-symbols" value="true"/>
- <property key="enable-unroll-loops" value="false"/>
- <property key="exceptions" value="true"/>
- <property key="exclude-floating-point" value="false"/>
- <property key="extra-include-directories" value=""/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="isolate-each-function" value="false"/>
- <property key="make-warnings-into-errors" value="false"/>
- <property key="optimization-level" value=""/>
- <property key="place-data-into-section" value="false"/>
- <property key="post-instruction-scheduling" value="default"/>
- <property key="pre-instruction-scheduling" value="default"/>
- <property key="preprocessor-macros" value=""/>
- <property key="rtti" value="true"/>
- <property key="strict-ansi" value="false"/>
- <property key="use-cci" value="false"/>
- <property key="use-iar" value="false"/>
- <property key="use-indirect-calls" value="false"/>
- </C32CPP>
- <C32Global>
- <property key="common-include-directories" value=""/>
- <property key="gp-relative-option" value=""/>
- <property key="legacy-libc" value="false"/>
- <property key="relaxed-math" value="false"/>
- <property key="save-temps" value="false"/>
- <property key="wpo-lto" value="false"/>
- </C32Global>
- <SKDEPIC32PlatformTool>
- <property key="whatToProgram" value="all"/>
- </SKDEPIC32PlatformTool>
- </conf>
- </confs>
-</configurationDescriptor>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/nbproject/include.am b/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/nbproject/include.am
deleted file mode 100644
index 83cdc61d7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/nbproject/include.am
+++ /dev/null
@@ -1,11 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- mcapi/wolfcrypt_test.X/Makefile
-
-EXTRA_DIST += \
- mcapi/wolfcrypt_test.X/nbproject/configurations.xml \
- mcapi/wolfcrypt_test.X/nbproject/project.xml
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/nbproject/project.xml b/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/nbproject/project.xml
deleted file mode 100644
index 0fd889d6b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfcrypt_test.X/nbproject/project.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://www.netbeans.org/ns/project/1">
- <type>com.microchip.mplab.nbide.embedded.makeproject</type>
- <configuration>
- <data xmlns="http://www.netbeans.org/ns/make-project/1">
- <name>wolfcrypt_test</name>
- <creation-uuid>b34c4937-7042-4352-88b1-7717bcdf8aeb</creation-uuid>
- <make-project-type>0</make-project-type>
- <c-extensions>c</c-extensions>
- <cpp-extensions/>
- <header-extensions/>
- <sourceEncoding>ISO-8859-1</sourceEncoding>
- <asminc-extensions/>
- <make-dep-projects>
- <make-dep-project>../wolfssl.X</make-dep-project>
- <make-dep-project>../zlib.X</make-dep-project>
- </make-dep-projects>
- </data>
- </configuration>
-</project>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/Makefile b/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/Makefile
deleted file mode 100644
index 55369918f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/Makefile
+++ /dev/null
@@ -1,108 +0,0 @@
-#
-# There exist several targets which are by default empty and which can be
-# used for execution of your targets. These targets are usually executed
-# before and after some main targets. They are:
-#
-# .build-pre: called before 'build' target
-# .build-post: called after 'build' target
-# .clean-pre: called before 'clean' target
-# .clean-post: called after 'clean' target
-# .clobber-pre: called before 'clobber' target
-# .clobber-post: called after 'clobber' target
-# .all-pre: called before 'all' target
-# .all-post: called after 'all' target
-# .help-pre: called before 'help' target
-# .help-post: called after 'help' target
-#
-# Targets beginning with '.' are not intended to be called on their own.
-#
-# Main targets can be executed directly, and they are:
-#
-# build build a specific configuration
-# clean remove built files from a configuration
-# clobber remove all built files
-# all build all configurations
-# help print help message
-#
-# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
-# .help-impl are implemented in nbproject/makefile-impl.mk.
-#
-# Available make variables:
-#
-# CND_BASEDIR base directory for relative paths
-# CND_DISTDIR default top distribution directory (build artifacts)
-# CND_BUILDDIR default top build directory (object files, ...)
-# CONF name of current configuration
-# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
-# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
-# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
-# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
-# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
-# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
-#
-# NOCDDL
-
-
-# Environment
-MKDIR=mkdir
-CP=cp
-CCADMIN=CCadmin
-RANLIB=ranlib
-
-
-# build
-build: .build-post
-
-.build-pre:
-# Add your pre 'build' code here...
-
-.build-post: .build-impl
-# Add your post 'build' code here...
-
-
-# clean
-clean: .clean-post
-
-.clean-pre:
-# Add your pre 'clean' code here...
-
-.clean-post: .clean-impl
-# Add your post 'clean' code here...
-
-
-# clobber
-clobber: .clobber-post
-
-.clobber-pre:
-# Add your pre 'clobber' code here...
-
-.clobber-post: .clobber-impl
-# Add your post 'clobber' code here...
-
-
-# all
-all: .all-post
-
-.all-pre:
-# Add your pre 'all' code here...
-
-.all-post: .all-impl
-# Add your post 'all' code here...
-
-
-# help
-help: .help-post
-
-.help-pre:
-# Add your pre 'help' code here...
-
-.help-post: .help-impl
-# Add your post 'help' code here...
-
-
-
-# include project implementation makefile
-include nbproject/Makefile-impl.mk
-
-# include project make variables
-include nbproject/Makefile-variables.mk
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/nbproject/configurations.xml b/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/nbproject/configurations.xml
deleted file mode 100644
index d805bac76..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/nbproject/configurations.xml
+++ /dev/null
@@ -1,243 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configurationDescriptor version="62">
- <logicalFolder name="root" displayName="root" projectFiles="true">
- <logicalFolder name="HeaderFiles"
- displayName="Header Files"
- projectFiles="true">
- <itemPath>../user_settings.h</itemPath>
- </logicalFolder>
- <logicalFolder name="LinkerScript"
- displayName="Linker Files"
- projectFiles="true">
- </logicalFolder>
- <logicalFolder name="SourceFiles"
- displayName="Source Files"
- projectFiles="true">
- <logicalFolder name="wolfcrypt" displayName="wolfcrypt" projectFiles="true">
- <itemPath>../../wolfcrypt/src/aes.c</itemPath>
- <itemPath>../../wolfcrypt/src/arc4.c</itemPath>
- <itemPath>../../wolfcrypt/src/asm.c</itemPath>
- <itemPath>../../wolfcrypt/src/asn.c</itemPath>
- <itemPath>../../wolfcrypt/src/blake2b.c</itemPath>
- <itemPath>../../wolfcrypt/src/camellia.c</itemPath>
- <itemPath>../../wolfcrypt/src/chacha.c</itemPath>
- <itemPath>../../wolfcrypt/src/coding.c</itemPath>
- <itemPath>../../wolfcrypt/src/compress.c</itemPath>
- <itemPath>../../wolfcrypt/src/des3.c</itemPath>
- <itemPath>../../wolfcrypt/src/dh.c</itemPath>
- <itemPath>../../wolfcrypt/src/dsa.c</itemPath>
- <itemPath>../../wolfcrypt/src/ecc.c</itemPath>
- <itemPath>../../wolfcrypt/src/ecc_fp.c</itemPath>
- <itemPath>../../wolfcrypt/src/error.c</itemPath>
- <itemPath>../../wolfcrypt/src/hc128.c</itemPath>
- <itemPath>../../wolfcrypt/src/hmac.c</itemPath>
- <itemPath>../../wolfcrypt/src/integer.c</itemPath>
- <itemPath>../../wolfcrypt/src/logging.c</itemPath>
- <itemPath>../../wolfcrypt/src/md2.c</itemPath>
- <itemPath>../../wolfcrypt/src/md4.c</itemPath>
- <itemPath>../../wolfcrypt/src/md5.c</itemPath>
- <itemPath>../../wolfcrypt/src/memory.c</itemPath>
- <itemPath>../../wolfcrypt/src/misc.c</itemPath>
- <itemPath>../../wolfcrypt/src/pkcs7.c</itemPath>
- <itemPath>../../wolfcrypt/src/poly1305.c</itemPath>
- <itemPath>../../wolfcrypt/src/pwdbased.c</itemPath>
- <itemPath>../../wolfcrypt/src/rabbit.c</itemPath>
- <itemPath>../../wolfcrypt/src/random.c</itemPath>
- <itemPath>../../wolfcrypt/src/ripemd.c</itemPath>
- <itemPath>../../wolfcrypt/src/rsa.c</itemPath>
- <itemPath>../../wolfcrypt/src/sha.c</itemPath>
- <itemPath>../../wolfcrypt/src/sha256.c</itemPath>
- <itemPath>../../wolfcrypt/src/sha512.c</itemPath>
- <itemPath>../../wolfcrypt/src/tfm.c</itemPath>
- <itemPath>../../wolfcrypt/src/wc_port.c</itemPath>
- <itemPath>../../wolfcrypt/src/port/pic32/pic32mz-hash.c</itemPath>
- <itemPath>../../wolfcrypt/src/port/pic32/pic32mz-crypt.c</itemPath>
- <itemPath>../../wolfcrypt/src/hash.c</itemPath>
- <itemPath>../../wolfcrypt/src/chacha20_poly1305.c</itemPath>
- <itemPath>../../wolfcrypt/src/curve25519.c</itemPath>
- <itemPath>../../wolfcrypt/src/ed25519.c</itemPath>
- <itemPath>../../wolfcrypt/src/fe_low_mem.c</itemPath>
- <itemPath>../../wolfcrypt/src/fe_operations.c</itemPath>
- <itemPath>../../wolfcrypt/src/ge_low_mem.c</itemPath>
- <itemPath>../../wolfcrypt/src/ge_operations.c</itemPath>
- <itemPath>../../wolfcrypt/src/wc_encrypt.c</itemPath>
- <itemPath>../../wolfcrypt/src/pkcs12.c</itemPath>
- <itemPath>../../wolfcrypt/src/signature.c</itemPath>
- <itemPath>../../wolfcrypt/src/wolfevent.c</itemPath>
- <itemPath>../../wolfcrypt/src/wolfmath.c</itemPath>
- </logicalFolder>
- <logicalFolder name="src" displayName="wolfssl" projectFiles="true">
- <itemPath>../../src/crl.c</itemPath>
- <itemPath>../../src/internal.c</itemPath>
- <itemPath>../../src/wolfio.c</itemPath>
- <itemPath>../../src/keys.c</itemPath>
- <itemPath>../../src/ocsp.c</itemPath>
- <itemPath>../../src/sniffer.c</itemPath>
- <itemPath>../../src/ssl.c</itemPath>
- <itemPath>../../src/tls.c</itemPath>
- <itemPath>../../src/tls13.c</itemPath>
- </logicalFolder>
- </logicalFolder>
- <logicalFolder name="ExternalFiles"
- displayName="Important Files"
- projectFiles="false">
- <itemPath>Makefile</itemPath>
- </logicalFolder>
- </logicalFolder>
- <sourceRootList>
- <Elem>..</Elem>
- <Elem>../../ctaocrypt/src</Elem>
- <Elem>../../src</Elem>
- <Elem>../../wolfcrypt</Elem>
- </sourceRootList>
- <projectmakefile>Makefile</projectmakefile>
- <confs>
- <conf name="default" type="3">
- <toolsSet>
- <developmentServer>localhost</developmentServer>
- <targetDevice>PIC32MX795F512L</targetDevice>
- <targetHeader></targetHeader>
- <targetPluginBoard></targetPluginBoard>
- <platformTool>SKDEPIC32PlatformTool</platformTool>
- <languageToolchain>XC32</languageToolchain>
- <languageToolchainVersion>1.34</languageToolchainVersion>
- <platform>4</platform>
- </toolsSet>
- <compileType>
- <linkerTool>
- <linkerLibItems>
- </linkerLibItems>
- </linkerTool>
- <archiverTool>
- </archiverTool>
- <loading>
- <useAlternateLoadableFile>false</useAlternateLoadableFile>
- <parseOnProdLoad>false</parseOnProdLoad>
- <alternateLoadableFile></alternateLoadableFile>
- </loading>
- </compileType>
- <makeCustomizationType>
- <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
- <makeCustomizationPreStep></makeCustomizationPreStep>
- <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>
- <makeCustomizationPostStep></makeCustomizationPostStep>
- <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>
- <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>
- <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
- </makeCustomizationType>
- <C32>
- <property key="additional-warnings" value="false"/>
- <property key="enable-app-io" value="false"/>
- <property key="enable-omit-frame-pointer" value="false"/>
- <property key="enable-symbols" value="false"/>
- <property key="enable-unroll-loops" value="false"/>
- <property key="exclude-floating-point" value="false"/>
- <property key="extra-include-directories"
- value="../../;../../mcapi;../../mplabx;../../zlib-1.2.8"/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="isolate-each-function" value="false"/>
- <property key="make-warnings-into-errors" value="false"/>
- <property key="optimization-level" value="-Os"/>
- <property key="place-data-into-section" value="false"/>
- <property key="post-instruction-scheduling" value="default"/>
- <property key="pre-instruction-scheduling" value="default"/>
- <property key="preprocessor-macros" value="WOLFSSL_USER_SETTINGS;HAVE_LIBZ;HAVE_MCAPI"/>
- <property key="strict-ansi" value="false"/>
- <property key="support-ansi" value="false"/>
- <property key="use-cci" value="false"/>
- <property key="use-iar" value="false"/>
- <property key="use-indirect-calls" value="false"/>
- </C32>
- <C32-AR>
- <property key="additional-options-chop-files" value="false"/>
- </C32-AR>
- <C32-AS>
- <property key="assembler-symbols" value=""/>
- <property key="enable-symbols" value="false"/>
- <property key="exclude-floating-point-library" value="false"/>
- <property key="expand-macros" value="false"/>
- <property key="extra-include-directories-for-assembler" value="../../"/>
- <property key="extra-include-directories-for-preprocessor" value="../../"/>
- <property key="false-conditionals" value="false"/>
- <property key="keep-locals" value="false"/>
- <property key="list-assembly" value="false"/>
- <property key="list-source" value="false"/>
- <property key="list-symbols" value="false"/>
- <property key="oXC32asm-list-to-file" value="false"/>
- <property key="omit-debug-dirs" value="false"/>
- <property key="omit-forms" value="false"/>
- <property key="preprocessor-macros" value=""/>
- <property key="warning-level" value=""/>
- </C32-AS>
- <C32-LD>
- <property key="additional-options-use-response-files" value="false"/>
- <property key="enable-check-sections" value="false"/>
- <property key="exclude-floating-point-library" value="false"/>
- <property key="exclude-standard-libraries" value="false"/>
- <property key="extra-lib-directories" value=""/>
- <property key="fill-flash-options-addr" value=""/>
- <property key="fill-flash-options-const" value=""/>
- <property key="fill-flash-options-how" value="0"/>
- <property key="fill-flash-options-inc-const" value="1"/>
- <property key="fill-flash-options-increment" value=""/>
- <property key="fill-flash-options-seq" value=""/>
- <property key="fill-flash-options-what" value="0"/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-cross-reference-file" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="heap-size" value=""/>
- <property key="input-libraries" value=""/>
- <property key="linker-symbols" value=""/>
- <property key="map-file" value=""/>
- <property key="no-startup-files" value="false"/>
- <property key="oXC32ld-extra-opts" value=""/>
- <property key="optimization-level" value="-Os"/>
- <property key="preprocessor-macros" value=""/>
- <property key="remove-unused-sections" value="true"/>
- <property key="report-memory-usage" value="false"/>
- <property key="stack-size" value=""/>
- <property key="symbol-stripping" value="-s"/>
- <property key="trace-symbols" value=""/>
- <property key="warn-section-align" value="false"/>
- </C32-LD>
- <C32CPP>
- <property key="additional-warnings" value="false"/>
- <property key="check-new" value="false"/>
- <property key="eh-specs" value="false"/>
- <property key="enable-app-io" value="false"/>
- <property key="enable-omit-frame-pointer" value="false"/>
- <property key="enable-symbols" value="true"/>
- <property key="enable-unroll-loops" value="false"/>
- <property key="exceptions" value="false"/>
- <property key="exclude-floating-point" value="false"/>
- <property key="extra-include-directories" value=""/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="isolate-each-function" value="false"/>
- <property key="make-warnings-into-errors" value="false"/>
- <property key="optimization-level" value=""/>
- <property key="place-data-into-section" value="false"/>
- <property key="post-instruction-scheduling" value="default"/>
- <property key="pre-instruction-scheduling" value="default"/>
- <property key="preprocessor-macros" value=""/>
- <property key="rtti" value="false"/>
- <property key="strict-ansi" value="false"/>
- <property key="use-cci" value="false"/>
- <property key="use-iar" value="false"/>
- <property key="use-indirect-calls" value="false"/>
- </C32CPP>
- <C32Global>
- <property key="common-include-directories" value=""/>
- <property key="gp-relative-option" value=""/>
- <property key="legacy-libc" value="false"/>
- <property key="relaxed-math" value="false"/>
- <property key="save-temps" value="false"/>
- <property key="wpo-lto" value="false"/>
- </C32Global>
- <SKDEPIC32PlatformTool>
- <property key="whatToProgram" value="all"/>
- </SKDEPIC32PlatformTool>
- </conf>
- </confs>
-</configurationDescriptor>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/nbproject/include.am b/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/nbproject/include.am
deleted file mode 100644
index 9ace61b5e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/nbproject/include.am
+++ /dev/null
@@ -1,11 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- mcapi/wolfssl.X/Makefile
-
-EXTRA_DIST += \
- mcapi/wolfssl.X/nbproject/configurations.xml \
- mcapi/wolfssl.X/nbproject/project.xml
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/nbproject/project.xml b/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/nbproject/project.xml
deleted file mode 100644
index efab333a4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/wolfssl.X/nbproject/project.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://www.netbeans.org/ns/project/1">
- <type>com.microchip.mplab.nbide.embedded.makeproject</type>
- <configuration>
- <data xmlns="http://www.netbeans.org/ns/make-project/1">
- <name>wolfssl</name>
- <creation-uuid>93bbfc3a-a0fa-4d48-bbc8-6cd47a2bd05b</creation-uuid>
- <make-project-type>0</make-project-type>
- <c-extensions>c</c-extensions>
- <cpp-extensions/>
- <header-extensions/>
- <sourceEncoding>ISO-8859-1</sourceEncoding>
- <asminc-extensions/>
- <make-dep-projects/>
- </data>
- </configuration>
-</project>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/Makefile b/FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/Makefile
deleted file mode 100644
index 55369918f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/Makefile
+++ /dev/null
@@ -1,108 +0,0 @@
-#
-# There exist several targets which are by default empty and which can be
-# used for execution of your targets. These targets are usually executed
-# before and after some main targets. They are:
-#
-# .build-pre: called before 'build' target
-# .build-post: called after 'build' target
-# .clean-pre: called before 'clean' target
-# .clean-post: called after 'clean' target
-# .clobber-pre: called before 'clobber' target
-# .clobber-post: called after 'clobber' target
-# .all-pre: called before 'all' target
-# .all-post: called after 'all' target
-# .help-pre: called before 'help' target
-# .help-post: called after 'help' target
-#
-# Targets beginning with '.' are not intended to be called on their own.
-#
-# Main targets can be executed directly, and they are:
-#
-# build build a specific configuration
-# clean remove built files from a configuration
-# clobber remove all built files
-# all build all configurations
-# help print help message
-#
-# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
-# .help-impl are implemented in nbproject/makefile-impl.mk.
-#
-# Available make variables:
-#
-# CND_BASEDIR base directory for relative paths
-# CND_DISTDIR default top distribution directory (build artifacts)
-# CND_BUILDDIR default top build directory (object files, ...)
-# CONF name of current configuration
-# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
-# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
-# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
-# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
-# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
-# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
-#
-# NOCDDL
-
-
-# Environment
-MKDIR=mkdir
-CP=cp
-CCADMIN=CCadmin
-RANLIB=ranlib
-
-
-# build
-build: .build-post
-
-.build-pre:
-# Add your pre 'build' code here...
-
-.build-post: .build-impl
-# Add your post 'build' code here...
-
-
-# clean
-clean: .clean-post
-
-.clean-pre:
-# Add your pre 'clean' code here...
-
-.clean-post: .clean-impl
-# Add your post 'clean' code here...
-
-
-# clobber
-clobber: .clobber-post
-
-.clobber-pre:
-# Add your pre 'clobber' code here...
-
-.clobber-post: .clobber-impl
-# Add your post 'clobber' code here...
-
-
-# all
-all: .all-post
-
-.all-pre:
-# Add your pre 'all' code here...
-
-.all-post: .all-impl
-# Add your post 'all' code here...
-
-
-# help
-help: .help-post
-
-.help-pre:
-# Add your pre 'help' code here...
-
-.help-post: .help-impl
-# Add your post 'help' code here...
-
-
-
-# include project implementation makefile
-include nbproject/Makefile-impl.mk
-
-# include project make variables
-include nbproject/Makefile-variables.mk
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/nbproject/configurations.xml b/FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/nbproject/configurations.xml
deleted file mode 100644
index cf780f4e7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/nbproject/configurations.xml
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configurationDescriptor version="62">
- <logicalFolder name="root" displayName="root" projectFiles="true">
- <logicalFolder name="HeaderFiles"
- displayName="Header Files"
- projectFiles="true">
- </logicalFolder>
- <logicalFolder name="LinkerScript"
- displayName="Linker Files"
- projectFiles="true">
- </logicalFolder>
- <logicalFolder name="SourceFiles"
- displayName="Source Files"
- projectFiles="true">
- <itemPath>../../zlib-1.2.8/adler32.c</itemPath>
- <itemPath>../../zlib-1.2.8/compress.c</itemPath>
- <itemPath>../../zlib-1.2.8/crc32.c</itemPath>
- <itemPath>../../zlib-1.2.8/deflate.c</itemPath>
- <itemPath>../../zlib-1.2.8/gzclose.c</itemPath>
- <itemPath>../../zlib-1.2.8/gzlib.c</itemPath>
- <itemPath>../../zlib-1.2.8/gzread.c</itemPath>
- <itemPath>../../zlib-1.2.8/gzwrite.c</itemPath>
- <itemPath>../../zlib-1.2.8/infback.c</itemPath>
- <itemPath>../../zlib-1.2.8/inffast.c</itemPath>
- <itemPath>../../zlib-1.2.8/inflate.c</itemPath>
- <itemPath>../../zlib-1.2.8/inftrees.c</itemPath>
- <itemPath>../../zlib-1.2.8/trees.c</itemPath>
- <itemPath>../../zlib-1.2.8/uncompr.c</itemPath>
- <itemPath>../../zlib-1.2.8/zutil.c</itemPath>
- </logicalFolder>
- <logicalFolder name="ExternalFiles"
- displayName="Important Files"
- projectFiles="false">
- <itemPath>Makefile</itemPath>
- </logicalFolder>
- </logicalFolder>
- <projectmakefile>Makefile</projectmakefile>
- <confs>
- <conf name="default" type="3">
- <toolsSet>
- <developmentServer>localhost</developmentServer>
- <targetDevice>PIC32MX795F512L</targetDevice>
- <targetHeader></targetHeader>
- <targetPluginBoard></targetPluginBoard>
- <platformTool>PKOBSKDEPlatformTool</platformTool>
- <languageToolchain>XC32</languageToolchain>
- <languageToolchainVersion>1.34</languageToolchainVersion>
- <platform>4</platform>
- </toolsSet>
- <compileType>
- <linkerTool>
- <linkerLibItems>
- </linkerLibItems>
- </linkerTool>
- <archiverTool>
- </archiverTool>
- <loading>
- <useAlternateLoadableFile>false</useAlternateLoadableFile>
- <parseOnProdLoad>false</parseOnProdLoad>
- <alternateLoadableFile></alternateLoadableFile>
- </loading>
- </compileType>
- <makeCustomizationType>
- <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
- <makeCustomizationPreStep></makeCustomizationPreStep>
- <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>
- <makeCustomizationPostStep></makeCustomizationPostStep>
- <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>
- <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>
- <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
- </makeCustomizationType>
- <C32>
- <property key="additional-warnings" value="false"/>
- <property key="enable-app-io" value="false"/>
- <property key="enable-omit-frame-pointer" value="false"/>
- <property key="enable-symbols" value="true"/>
- <property key="enable-unroll-loops" value="false"/>
- <property key="exclude-floating-point" value="false"/>
- <property key="extra-include-directories" value="../../zlib-1.2.8"/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="isolate-each-function" value="false"/>
- <property key="make-warnings-into-errors" value="false"/>
- <property key="optimization-level" value="-Os"/>
- <property key="place-data-into-section" value="false"/>
- <property key="post-instruction-scheduling" value="default"/>
- <property key="pre-instruction-scheduling" value="default"/>
- <property key="preprocessor-macros"
- value="HAVE_HIDDEN;MAX_MEM_LEVEL=1;MAX_WBITS=11"/>
- <property key="strict-ansi" value="false"/>
- <property key="support-ansi" value="false"/>
- <property key="use-cci" value="false"/>
- <property key="use-iar" value="false"/>
- <property key="use-indirect-calls" value="false"/>
- </C32>
- <C32-AR>
- <property key="additional-options-chop-files" value="false"/>
- </C32-AR>
- <C32-AS>
- <property key="assembler-symbols" value=""/>
- <property key="enable-symbols" value="true"/>
- <property key="exclude-floating-point-library" value="false"/>
- <property key="expand-macros" value="false"/>
- <property key="extra-include-directories-for-assembler" value=""/>
- <property key="extra-include-directories-for-preprocessor" value=""/>
- <property key="false-conditionals" value="false"/>
- <property key="keep-locals" value="false"/>
- <property key="list-assembly" value="false"/>
- <property key="list-source" value="false"/>
- <property key="list-symbols" value="false"/>
- <property key="oXC32asm-list-to-file" value="false"/>
- <property key="omit-debug-dirs" value="false"/>
- <property key="omit-forms" value="false"/>
- <property key="preprocessor-macros" value=""/>
- <property key="warning-level" value=""/>
- </C32-AS>
- <C32-LD>
- <property key="additional-options-use-response-files" value="false"/>
- <property key="enable-check-sections" value="false"/>
- <property key="exclude-floating-point-library" value="false"/>
- <property key="exclude-standard-libraries" value="false"/>
- <property key="extra-lib-directories" value=""/>
- <property key="fill-flash-options-addr" value=""/>
- <property key="fill-flash-options-const" value=""/>
- <property key="fill-flash-options-how" value="0"/>
- <property key="fill-flash-options-inc-const" value="1"/>
- <property key="fill-flash-options-increment" value=""/>
- <property key="fill-flash-options-seq" value=""/>
- <property key="fill-flash-options-what" value="0"/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-cross-reference-file" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="heap-size" value=""/>
- <property key="input-libraries" value=""/>
- <property key="linker-symbols" value=""/>
- <property key="map-file" value=""/>
- <property key="no-startup-files" value="false"/>
- <property key="oXC32ld-extra-opts" value=""/>
- <property key="optimization-level" value=""/>
- <property key="preprocessor-macros" value=""/>
- <property key="remove-unused-sections" value="false"/>
- <property key="report-memory-usage" value="false"/>
- <property key="stack-size" value=""/>
- <property key="symbol-stripping" value=""/>
- <property key="trace-symbols" value=""/>
- <property key="warn-section-align" value="false"/>
- </C32-LD>
- <C32CPP>
- <property key="additional-warnings" value="false"/>
- <property key="check-new" value="false"/>
- <property key="eh-specs" value="true"/>
- <property key="enable-app-io" value="false"/>
- <property key="enable-omit-frame-pointer" value="false"/>
- <property key="enable-symbols" value="true"/>
- <property key="enable-unroll-loops" value="false"/>
- <property key="exceptions" value="true"/>
- <property key="exclude-floating-point" value="false"/>
- <property key="extra-include-directories" value=""/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="isolate-each-function" value="false"/>
- <property key="make-warnings-into-errors" value="false"/>
- <property key="optimization-level" value=""/>
- <property key="place-data-into-section" value="false"/>
- <property key="post-instruction-scheduling" value="default"/>
- <property key="pre-instruction-scheduling" value="default"/>
- <property key="preprocessor-macros" value=""/>
- <property key="rtti" value="true"/>
- <property key="strict-ansi" value="false"/>
- <property key="use-cci" value="false"/>
- <property key="use-iar" value="false"/>
- <property key="use-indirect-calls" value="false"/>
- </C32CPP>
- <C32Global>
- <property key="common-include-directories" value=""/>
- <property key="gp-relative-option" value=""/>
- <property key="legacy-libc" value="false"/>
- <property key="relaxed-math" value="false"/>
- <property key="save-temps" value="false"/>
- <property key="wpo-lto" value="false"/>
- </C32Global>
- <PKOBSKDEPlatformTool>
- <property key="AutoSelectMemRanges" value="auto"/>
- <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
- <property key="ToolFirmwareFilePath"
- value="Press to browse for a specific firmware version"/>
- <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>
- <property key="memories.configurationmemory" value="true"/>
- <property key="memories.dataflash" value="true"/>
- <property key="memories.eeprom" value="true"/>
- <property key="memories.id" value="true"/>
- <property key="memories.programmemory" value="true"/>
- <property key="memories.programmemory.end" value="0x1d07ffff"/>
- <property key="memories.programmemory.start" value="0x1d000000"/>
- <property key="memories.userotp" value="true"/>
- <property key="poweroptions.powerenable" value="false"/>
- <property key="programoptions.donoteraseauxmem" value="false"/>
- <property key="programoptions.eraseb4program" value="true"/>
- <property key="programoptions.preservedataflash" value="false"/>
- <property key="programoptions.preserveeeprom" value="false"/>
- <property key="programoptions.preserveprogramrange" value="false"/>
- <property key="programoptions.preserveprogramrange.end" value="0x1d0001ff"/>
- <property key="programoptions.preserveprogramrange.start" value="0x1d000000"/>
- <property key="programoptions.usehighvoltageonmclr" value="false"/>
- <property key="programoptions.uselvpprogramming" value="false"/>
- <property key="voltagevalue" value="3.25"/>
- </PKOBSKDEPlatformTool>
- </conf>
- </confs>
-</configurationDescriptor>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/nbproject/include.am b/FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/nbproject/include.am
deleted file mode 100644
index 8cb88ca86..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/nbproject/include.am
+++ /dev/null
@@ -1,10 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- mcapi/zlib.X/Makefile
-
-EXTRA_DIST += \
- mcapi/zlib.X/nbproject/configurations.xml \
- mcapi/zlib.X/nbproject/project.xml
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/nbproject/project.xml b/FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/nbproject/project.xml
deleted file mode 100644
index d3b077973..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mcapi/zlib.X/nbproject/project.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://www.netbeans.org/ns/project/1">
- <type>com.microchip.mplab.nbide.embedded.makeproject</type>
- <configuration>
- <data xmlns="http://www.netbeans.org/ns/make-project/1">
- <name>zlib</name>
- <creation-uuid>8eef651d-e634-46ae-9183-39443c98e390</creation-uuid>
- <make-project-type>0</make-project-type>
- <c-extensions>c</c-extensions>
- <cpp-extensions/>
- <header-extensions/>
- <sourceEncoding>ISO-8859-1</sourceEncoding>
- <asminc-extensions/>
- <make-dep-projects/>
- </data>
- </configuration>
-</project>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/PIC32MZ-serial.h b/FreeRTOS-Plus/Source/WolfSSL/mplabx/PIC32MZ-serial.h
deleted file mode 100644
index a64bdb766..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/PIC32MZ-serial.h
+++ /dev/null
@@ -1,96 +0,0 @@
-void _mon_putc(char c);
-
-#define BAUD_GEN(sysclk, baud) ((sysclk / (16 * baud)) - 1)
-
-#ifdef MICROCHIP_PIC32
-#if defined (__32MZ2048ECH144__) || defined(__32MZ2048ECM144__) || defined(__32MZ2048EFM144__)
- /* Code generated from Harmony example then exported using Window -> PIC32 Memory View -> Configuration Bits into system_config.h */
- #define SYS_CLK_FREQ 200000000ul
- #define SYS_CLK_BUS_PERIPHERAL_2 100000000ul
-
- /* PIC32MZ2048EFM144 Configuration Bit Settings */
-
- /*** DEVCFG0 ***/
- #pragma config DEBUG = OFF
- #pragma config JTAGEN = OFF
- #pragma config ICESEL = ICS_PGx2
- #pragma config TRCEN = OFF
- #pragma config BOOTISA = MIPS32
- #pragma config FECCCON = OFF_UNLOCKED
- #pragma config FSLEEP = OFF
- #pragma config DBGPER = PG_ALL
- #pragma config SMCLR = MCLR_NORM
- #pragma config SOSCGAIN = GAIN_2X
- #pragma config SOSCBOOST = ON
- #pragma config POSCGAIN = GAIN_2X
- #pragma config POSCBOOST = ON
- #pragma config EJTAGBEN = NORMAL
- #pragma config CP = OFF
-
- /*** DEVCFG1 ***/
- #pragma config FNOSC = SPLL
- #pragma config DMTINTV = WIN_127_128
- #pragma config FSOSCEN = OFF
- #pragma config IESO = OFF
- #pragma config POSCMOD = EC
- #pragma config OSCIOFNC = OFF
- #pragma config FCKSM = CSECME
- #pragma config WDTPS = PS1048576
- #pragma config WDTSPGM = STOP
- #pragma config FWDTEN = OFF
- #pragma config WINDIS = NORMAL
- #pragma config FWDTWINSZ = WINSZ_25
- #pragma config DMTCNT = DMT31
- #pragma config FDMTEN = OFF
-
- /*** DEVCFG2 ***/
- #pragma config FPLLIDIV = DIV_3
- #pragma config FPLLRNG = RANGE_5_10_MHZ
- #pragma config FPLLICLK = PLL_POSC
- #pragma config FPLLMULT = MUL_50
- #pragma config FPLLODIV = DIV_2
- #pragma config UPLLFSEL = FREQ_24MHZ
-
- /*** DEVCFG3 ***/
- #pragma config USERID = 0xffff
- #pragma config FMIIEN = ON
- #pragma config FETHIO = ON
- #pragma config PGL1WAY = ON
- #pragma config PMDL1WAY = ON
- #pragma config IOL1WAY = ON
- #pragma config FUSBIDIO = ON
-
- /*** BF1SEQ0 ***/
- #pragma config TSEQ = 0x0000
- #pragma config CSEQ = 0xffff
-
- /* #pragma config statements should precede project file includes. */
- /* Use project enums instead of #define for ON and OFF. */
-
- #include <xc.h>
-#endif
-#endif
-
-static void init_serial(unsigned int sysClk) {
-#ifdef MICROCHIP_PIC32
-#if defined (__32MZ2048ECH144__) || defined(__32MZ2048ECM144__) || defined(__32MZ2048EFM144__)
- /* This is for pin B14 which is connected to the USB to UART connector J11 located under Ethernet connector */
-
- /* Setup UART2 */
-#ifdef SYS_CLK_BUS_PERIPHERAL_2
- U2BRG = BAUD_GEN(SYS_CLK_BUS_PERIPHERAL_2, 115200);
-#else
- if (sysClk > 100000000)
- sysClk /= 2;
- U2BRG = BAUD_GEN(sysClk, 115200);
-#endif
- ANSELBCLR = 0x4000;
- ANSELGCLR = 0x0040;
- RPB14R = 0x02;
- U2RXR = 0x01;
- U2MODE = 0x8000;
- U2STA = 0x400;
-#endif
-#endif
- (void)sysClk;
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/README b/FreeRTOS-Plus/Source/WolfSSL/mplabx/README
deleted file mode 100644
index 66c0731a0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/README
+++ /dev/null
@@ -1,66 +0,0 @@
-wolfSSL MPLAB X Project Files
-
-This directory contains project files for the Microchip MPLAB X IDE. These
-projects have been set up to use the Microchip PIC32 Ethernet Starter Kit
-and the Microchip XC32 compiler.
-
-In order to generate the necessary auto-generated MPLAB X files, make sure
-to import the wolfssl.X project into your MPLAB X workspace before trying to
-build either the wolfCrypt test or benchmark applications. This will
-correctly set up the respective project's Makefiles.
-
-Included Project Files
------------------------
-
-1. wolfSSL library (wolfssl.X)
-
- This project builds a static wolfSSL library. The settings for this project
- are in `user_settings.h`:
-
- <wolfssl_root>/wolfssl/wolfcrypt/settings.h
-
- After this project has been built, the compiled library will be located
- at:
-
- <wolfssl_root>/mplabx/wolfssl.X/dist/default/production/wolfssl.X.a
-
-2. wolfCrypt Test App (wolfcrypt_test.X)
-
- This project tests the wolfCrypt cryptography modules. It is generally
- a good idea to run this first on an embedded system after compiling
- wolfSSL in order to verify all underlying crypto is working correctly.
-
-3. wolfCrypt Benchmark App (wolfcrypt_benchmark.X)
-
- This project builds the wolfCrypt benchmark application.
- For the benchmark timer, adjust CLOCK value under
- "#elif defined MICROCHIP_PIC32" in wolfcrypt/benchmark/benchmark.c
-
-PIC32MX/PIC32MZ
----------------
-
-The projects are set for PIC32MZ by default. For PIC32MX, comment out the
-`WOLFSSL_MICROCHIP_PIC32MZ` line in `user_settings.h`.
-
-You also need to adjust the microcontroller device in the project properties.
-
-
-MIPS16 and MIPS32 Support
--------------------------
-
-These projects support both MIPS16 and MIPS32 instruction sets. Switching
-between these two instruction sets can be done in each project's properties
-settings by checking the "Generate 16-bit code" checkbox.
-
-
-Legacy Peripheral Libraries
-___________________________
-
-If you get a linker error locating `ReadCoreTimer` and `WriteCoreTimer` you
-can enable wrappers in benchmark_main.c and test_main.c.
-
-
-Support
--------
-Please send questions or comments to support@wolfssl.com
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/benchmark_main.c b/FreeRTOS-Plus/Source/WolfSSL/mplabx/benchmark_main.c
deleted file mode 100644
index 461e53bea..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/benchmark_main.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* benchmark_main.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-#include <wolfcrypt/benchmark/benchmark.h>
-
-#if defined(WOLFSSL_MICROCHIP_PIC32MZ)
- #define MICROCHIP_PIC32
- #include <stdio.h>
- #include <stdlib.h>
- #include "PIC32MZ-serial.h"
- #include <xc.h>
- #define SYSTEMConfigPerformance(a) /* void out SYSTEMConfigPerformance(); */
- #define SYS_CLK 200000000
-#else
- #define PIC32_STARTER_KIT
- #define _SUPPRESS_PLIB_WARNING
- #define _DISABLE_OPENADC10_CONFIGPORT_WARNING
- #include <plib.h>
- #include <sys/appio.h>
- #define init_serial() /* void out init_serial() ; */
- #define SYS_CLK 80000000
-#endif
-
-#if 1
-/* enable this if ReadCoreTimer and WriteCoreTimer are missing */
-unsigned int ReadCoreTimer(void)
-{
- unsigned int timer;
- timer = __builtin_mfc0(9, 0);
- return timer;
-}
-void WriteCoreTimer(unsigned int t)
-{
- /* do nothing here */
- (void)t;
-}
-#endif
-
-/*
- * Main driver for wolfCrypt benchmarks.
- */
-int main(int argc, char** argv)
-{
- SYSTEMConfigPerformance(SYS_CLK);
- DBINIT();
-
- init_serial(SYS_CLK) ; /* initialize PIC32MZ serial I/O */
-
- printf("wolfCrypt Benchmark:\n");
-
- benchmark_test(NULL);
-
- printf("End of wolfCrypt Benchmark:\n");
- return 0;
-}
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/include.am b/FreeRTOS-Plus/Source/WolfSSL/mplabx/include.am
deleted file mode 100644
index 0536e9006..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/include.am
+++ /dev/null
@@ -1,10 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- mplabx/README \
- mplabx/benchmark_main.c \
- mplabx/test_main.c \
- mplabx/PIC32MZ-serial.h \
- mplabx/user_settings.h
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/test_main.c b/FreeRTOS-Plus/Source/WolfSSL/mplabx/test_main.c
deleted file mode 100644
index 8d1881cc4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/test_main.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* main.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-#include <wolfcrypt/test/test.h>
-
-#if defined(WOLFSSL_MICROCHIP_PIC32MZ)
- #define MICROCHIP_PIC32
- #include <stdio.h>
- #include <stdlib.h>
- #include "PIC32MZ-serial.h"
- #include <xc.h>
- #define SYSTEMConfigPerformance(a) /* void out SYSTEMConfigPerformance(); */
- #define SYS_CLK 200000000
-#else
- #define PIC32_STARTER_KIT
- #include <stdio.h>
- #include <stdlib.h>
- #include <p32xxxx.h>
- #define _SUPPRESS_PLIB_WARNING
- #define _DISABLE_OPENADC10_CONFIGPORT_WARNING
- #include <plib.h>
- #include <sys/appio.h>
- #define init_serial(x) /* void out init_serial() */
- #define SYS_CLK 80000000
-#endif
-
-/* func_args from test.h, so don't have to pull in other junk */
-typedef struct func_args {
- int argc;
- char** argv;
- int return_code;
-} func_args;
-
-
-#if 1
-/* enable this if ReadCoreTimer and WriteCoreTimer are missing */
-unsigned int ReadCoreTimer(void)
-{
- unsigned int timer;
- timer = __builtin_mfc0(9, 0);
- return timer;
-}
-void WriteCoreTimer(unsigned int t)
-{
- /* do nothing here */
- (void)t;
-}
-#endif
-
-/*
- * Main driver for WolfCrypt tests.
- */
-int main(int argc, char** argv)
-{
- func_args args;
-
- SYSTEMConfigPerformance(SYS_CLK);
- DBINIT();
-
- init_serial(SYS_CLK) ; /* initialize PIC32MZ serial I/O */
-
- printf("WolfCrypt Test:\n");
-
- args.argc = argc;
- args.argv = argv;
-
- wolfcrypt_test(&args);
-
- if (args.return_code == 0) {
- printf("All tests passed!\n");
- }
-
- return 0;
-}
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/user_settings.h b/FreeRTOS-Plus/Source/WolfSSL/mplabx/user_settings.h
deleted file mode 100644
index b89a6f785..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/user_settings.h
+++ /dev/null
@@ -1,386 +0,0 @@
-/* Example custom user settings for wolfSSL */
-
-#ifndef WOLFSSL_USER_SETTINGS_H
-#define WOLFSSL_USER_SETTINGS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stddef.h> /* for size_t */
-
-
-/* ------------------------------------------------------------------------- */
-/* Platform */
-/* ------------------------------------------------------------------------- */
-#undef WOLFSSL_GENERAL_ALIGNMENT
-#define WOLFSSL_GENERAL_ALIGNMENT 4
-
-#undef SINGLE_THREADED
-#define SINGLE_THREADED
-
-#undef WOLFSSL_SMALL_STACK
-#define WOLFSSL_SMALL_STACK
-
-#undef MICROCHIP_PIC32
-#define MICROCHIP_PIC32
-
-#undef WOLFSSL_MICROCHIP_PIC32MZ
-#define WOLFSSL_MICROCHIP_PIC32MZ
-
-
-/* ------------------------------------------------------------------------- */
-/* Math Configuration */
-/* ------------------------------------------------------------------------- */
-#undef USE_FAST_MATH
-#define USE_FAST_MATH
-
-#ifdef USE_FAST_MATH
- #undef TFM_TIMING_RESISTANT
- #define TFM_TIMING_RESISTANT
-
- /* Optimizations */
- //#define TFM_MIPS
-#endif
-
-
-/* ------------------------------------------------------------------------- */
-/* Crypto */
-/* ------------------------------------------------------------------------- */
-/* ECC */
-#if 1
- #undef HAVE_ECC
- #define HAVE_ECC
-
- /* Manually define enabled curves */
- #undef ECC_USER_CURVES
- #define ECC_USER_CURVES
-
- //#define HAVE_ECC192
- //#define HAVE_ECC224
- #undef NO_ECC256
- //#define HAVE_ECC384
- //#define HAVE_ECC521
-
- /* Fixed point cache (speeds repeated operations against same private key) */
- #undef FP_ECC
- //#define FP_ECC
- #ifdef FP_ECC
- /* Bits / Entries */
- #undef FP_ENTRIES
- #define FP_ENTRIES 2
- #undef FP_LUT
- #define FP_LUT 4
- #endif
-
- /* Optional ECC calculation method */
- /* Note: doubles heap usage, but slightly faster */
- #undef ECC_SHAMIR
- #define ECC_SHAMIR
-
- /* Reduces heap usage, but slower */
- #undef ECC_TIMING_RESISTANT
- #define ECC_TIMING_RESISTANT
-
- #ifdef USE_FAST_MATH
- /* use reduced size math buffers for ecc points */
- #undef ALT_ECC_SIZE
- #define ALT_ECC_SIZE
-
- /* Enable TFM optimizations for ECC */
- #if defined(HAVE_ECC192) || defined(HAVE_ALL_CURVES)
- #define TFM_ECC192
- #endif
- #if defined(HAVE_ECC224) || defined(HAVE_ALL_CURVES)
- #define TFM_ECC224
- #endif
- #if !defined(NO_ECC256) || defined(HAVE_ALL_CURVES)
- #define TFM_ECC256
- #endif
- #if defined(HAVE_ECC384) || defined(HAVE_ALL_CURVES)
- #define TFM_ECC384
- #endif
- #if defined(HAVE_ECC521) || defined(HAVE_ALL_CURVES)
- #define TFM_ECC521
- #endif
- #endif
-#endif
-
-/* RSA */
-#undef NO_RSA
-#if 1
- #ifdef USE_FAST_MATH
- /* Maximum math bits (Max RSA key bits * 2) */
- #undef FP_MAX_BITS
- #define FP_MAX_BITS 4096
- #endif
-
- /* half as much memory but twice as slow */
- #undef RSA_LOW_MEM
- //#define RSA_LOW_MEM
-
- /* timing resistance */
- #undef WC_RSA_BLINDING
- #define WC_RSA_BLINDING
-#else
- #define NO_RSA
-#endif
-
-/* AES */
-#undef NO_AES
-#if 1
- #undef HAVE_AES_DECRYPT
- #define HAVE_AES_DECRYPT
-
- #undef HAVE_AESGCM
- #define HAVE_AESGCM
-
- /* GCM Method: GCM_SMALL, GCM_WORD32 or GCM_TABLE */
- #undef GCM_SMALL
- #define GCM_SMALL
-
- #undef HAVE_AESCCM
- #define HAVE_AESCCM
-
- #undef WOLFSSL_AES_COUNTER
- #define WOLFSSL_AES_COUNTER
-
- #undef WOLFSSL_AES_DIRECT
- #define WOLFSSL_AES_DIRECT
-#else
- #define NO_AES
-#endif
-
-/* DES3 */
-#undef NO_DES3
-#if 1
- #undef WOLFSSL_DES_ECB
- #define WOLFSSL_DES_ECB
-#else
- #define NO_DES3
-#endif
-
-
-/* ChaCha20 / Poly1305 */
-#undef HAVE_CHACHA
-#undef HAVE_POLY1305
-#if 0
- #define HAVE_CHACHA
- #define HAVE_POLY1305
-
- /* Needed for Poly1305 */
- #undef HAVE_ONE_TIME_AUTH
- #define HAVE_ONE_TIME_AUTH
-#endif
-
-/* Ed25519 / Curve25519 */
-#undef HAVE_CURVE25519
-#undef HAVE_ED25519
-#if 0
- #define HAVE_CURVE25519
- #define HAVE_ED25519
-
- /* Optionally use small math (less flash usage, but much slower) */
- #if 0
- #define CURVED25519_SMALL
- #endif
-#endif
-
-
-/* ------------------------------------------------------------------------- */
-/* Hashing */
-/* ------------------------------------------------------------------------- */
-/* Sha */
-#undef NO_SHA
-#if 1
- /* 1k smaller, but 25% slower */
- //#define USE_SLOW_SHA
-#else
- #define NO_SHA
-#endif
-
-/* Sha256 */
-#undef NO_SHA256
-#if 1
-#else
- #define NO_SHA256
-#endif
-
-/* Sha512 */
-#undef WOLFSSL_SHA512
-#if 1
- #define WOLFSSL_SHA512
-
- /* Sha384 */
- #undef WOLFSSL_SHA384
- #if 1
- #define WOLFSSL_SHA384
- #endif
-
- /* over twice as small, but 50% slower */
- //#define USE_SLOW_SHA2
-#endif
-
-/* MD5 */
-#undef NO_MD5
-#if 1
-#else
- #define NO_MD5
-#endif
-
-
-/* ------------------------------------------------------------------------- */
-/* Benchmark / Test */
-/* ------------------------------------------------------------------------- */
-/* Use reduced benchmark / test sizes */
-#undef BENCH_EMBEDDED
-#define BENCH_EMBEDDED
-
-#undef USE_CERT_BUFFERS_2048
-#define USE_CERT_BUFFERS_2048
-
-#undef USE_CERT_BUFFERS_1024
-//#define USE_CERT_BUFFERS_1024
-
-#undef USE_CERT_BUFFERS_256
-#define USE_CERT_BUFFERS_256
-
-
-/* ------------------------------------------------------------------------- */
-/* Time */
-/* ------------------------------------------------------------------------- */
-#if 0
- /* Override Current Time */
- /* Allows custom "custom_time()" function to be used for benchmark */
- #define WOLFSSL_USER_CURRTIME
- #define USER_TICKS
- extern unsigned long custom_time(unsigned long* timer);
- #define XTIME custom_time
-#else
- #warning Time/RTC disabled
- #undef NO_ASN_TIME
- #define NO_ASN_TIME
-#endif
-
-/* ------------------------------------------------------------------------- */
-/* Debugging */
-/* ------------------------------------------------------------------------- */
-#undef DEBUG_WOLFSSL
-#define DEBUG_WOLFSSL
-
-#ifdef DEBUG_WOLFSSL
- /* Use this to measure / print heap usage */
- #if 0
- #undef USE_WOLFSSL_MEMORY
- #define USE_WOLFSSL_MEMORY
- #undef WOLFSSL_TRACK_MEMORY
- #define WOLFSSL_TRACK_MEMORY
- #endif
-#else
- #undef NO_WOLFSSL_MEMORY
- #define NO_WOLFSSL_MEMORY
-
- #undef NO_ERROR_STRINGS
- //#define NO_ERROR_STRINGS
-#endif
-
-
-/* ------------------------------------------------------------------------- */
-/* Enable Features */
-/* ------------------------------------------------------------------------- */
-#undef KEEP_PEER_CERT
-//#define KEEP_PEER_CERT
-
-#undef HAVE_COMP_KEY
-//#define HAVE_COMP_KEY
-
-#undef HAVE_TLS_EXTENSIONS
-//#define HAVE_TLS_EXTENSIONS
-
-#undef HAVE_SUPPORTED_CURVES
-//#define HAVE_SUPPORTED_CURVES
-
-#undef WOLFSSL_BASE64_ENCODE
-//#define WOLFSSL_BASE64_ENCODE
-
-/* TLS Session Cache */
-#if 0
- #define SMALL_SESSION_CACHE
-#else
- #define NO_SESSION_CACHE
-#endif
-
-
-/* ------------------------------------------------------------------------- */
-/* Disable Features */
-/* ------------------------------------------------------------------------- */
-#undef NO_WOLFSSL_SERVER
-//#define NO_WOLFSSL_SERVER
-
-#undef NO_WOLFSSL_CLIENT
-//#define NO_WOLFSSL_CLIENT
-
-#undef NO_CRYPT_TEST
-//#define NO_CRYPT_TEST
-
-#undef NO_CRYPT_BENCHMARK
-//#define NO_CRYPT_BENCHMARK
-
-/* In-lining of misc.c functions */
-/* If defined, must include wolfcrypt/src/misc.c in build */
-/* Slower, but about 1k smaller */
-#undef NO_INLINE
-//#define NO_INLINE
-
-#undef NO_FILESYSTEM
-#define NO_FILESYSTEM
-
-#undef NO_WRITEV
-#define NO_WRITEV
-
-#undef NO_MAIN_DRIVER
-#define NO_MAIN_DRIVER
-
-#undef NO_DEV_RANDOM
-#define NO_DEV_RANDOM
-
-#undef NO_DSA
-#define NO_DSA
-
-#undef NO_DH
-#define NO_DH
-
-#undef NO_RC4
-#define NO_RC4
-
-#undef NO_OLD_TLS
-#define NO_OLD_TLS
-
-#undef NO_HC128
-#define NO_HC128
-
-#undef NO_RABBIT
-#define NO_RABBIT
-
-#undef NO_PSK
-#define NO_PSK
-
-#undef NO_MD4
-#define NO_MD4
-
-#undef NO_PWDBASED
-#define NO_PWDBASED
-
-#undef NO_CODING
-//#define NO_CODING
-
-
-/* Suppress array-bounds */
-#pragma GCC diagnostic ignored "-Warray-bounds"
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* WOLFSSL_USER_SETTINGS_H */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/Makefile b/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/Makefile
deleted file mode 100644
index 7b941ab95..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/Makefile
+++ /dev/null
@@ -1,108 +0,0 @@
-#
-# There exist several targets which are by default empty and which can be
-# used for execution of your targets. These targets are usually executed
-# before and after some main targets. They are:
-#
-# .build-pre: called before 'build' target
-# .build-post: called after 'build' target
-# .clean-pre: called before 'clean' target
-# .clean-post: called after 'clean' target
-# .clobber-pre: called before 'clobber' target
-# .clobber-post: called after 'clobber' target
-# .all-pre: called before 'all' target
-# .all-post: called after 'all' target
-# .help-pre: called before 'help' target
-# .help-post: called after 'help' target
-#
-# Targets beginning with '.' are not intended to be called on their own.
-#
-# Main targets can be executed directly, and they are:
-#
-# build build a specific configuration
-# clean remove built files from a configuration
-# clobber remove all built files
-# all build all configurations
-# help print help message
-#
-# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
-# .help-impl are implemented in nbproject/makefile-impl.mk.
-#
-# Available make variables:
-#
-# CND_BASEDIR base directory for relative paths
-# CND_DISTDIR default top distribution directory (build artifacts)
-# CND_BUILDDIR default top build directory (object files, ...)
-# CONF name of current configuration
-# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
-# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
-# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
-# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
-# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
-# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
-#
-# NOCDDL
-
-
-# Environment
-MKDIR=mkdir
-CP=cp
-CCADMIN=CCadmin
-RANLIB=ranlib
-
-
-# build
-build: .build-post
-
-.build-pre:
-# Add your pre 'build' code here...
-
-.build-post: .build-impl
-# Add your post 'build' code here...
-
-
-# clean
-clean: .clean-post
-
-.clean-pre:
-# Add your pre 'clean' code here...
-
-.clean-post: .clean-impl
-# Add your post 'clean' code here...
-
-
-# clobber
-clobber: .clobber-post
-
-.clobber-pre:
-# Add your pre 'clobber' code here...
-
-.clobber-post: .clobber-impl
-# Add your post 'clobber' code here...
-
-
-# all
-all: .all-post
-
-.all-pre:
-# Add your pre 'all' code here...
-
-.all-post: .all-impl
-# Add your post 'all' code here...
-
-
-# help
-help: .help-post
-
-.help-pre:
-# Add your pre 'help' code here...
-
-.help-post: .help-impl
-# Add your post 'help' code here...
-
-
-
-# include project implementation makefile
-include nbproject/Makefile-impl.mk
-
-# include project make variables
-include nbproject/Makefile-variables.mk
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/nbproject/configurations.xml b/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/nbproject/configurations.xml
deleted file mode 100644
index a6bdcd00a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/nbproject/configurations.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configurationDescriptor version="62">
- <logicalFolder name="root" displayName="root" projectFiles="true">
- <logicalFolder name="HeaderFiles"
- displayName="Header Files"
- projectFiles="true">
- <itemPath>../user_settings.h</itemPath>
- </logicalFolder>
- <logicalFolder name="LinkerScript"
- displayName="Linker Files"
- projectFiles="true">
- </logicalFolder>
- <logicalFolder name="SourceFiles"
- displayName="Source Files"
- projectFiles="true">
- <itemPath>../../wolfcrypt/benchmark/benchmark.c</itemPath>
- <itemPath>../benchmark_main.c</itemPath>
- </logicalFolder>
- <logicalFolder name="ExternalFiles"
- displayName="Important Files"
- projectFiles="false">
- <itemPath>Makefile</itemPath>
- </logicalFolder>
- </logicalFolder>
- <sourceRootList>
- <Elem>..</Elem>
- <Elem>../../wolfcrypt/benchmark</Elem>
- </sourceRootList>
- <projectmakefile>Makefile</projectmakefile>
- <confs>
- <conf name="default" type="2">
- <toolsSet>
- <developmentServer>localhost</developmentServer>
- <targetDevice>PIC32MZ2048EFM144</targetDevice>
- <targetHeader></targetHeader>
- <targetPluginBoard></targetPluginBoard>
- <platformTool>PKOBSKDEPlatformTool</platformTool>
- <languageToolchain>XC32</languageToolchain>
- <languageToolchainVersion></languageToolchainVersion>
- <platform>4</platform>
- </toolsSet>
- <compileType>
- <linkerTool>
- <linkerLibItems>
- <linkerLibProjectItem>
- <makeArtifact PL="../wolfssl.X"
- CT="3"
- CN="default"
- AC="true"
- BL="true"
- WD="../wolfssl.X"
- BC="${MAKE} -f Makefile CONF=default"
- DBC="${MAKE} -f Makefile CONF=default TYPE_IMAGE=DEBUG_RUN"
- CC="rm -rf &quot;build/default&quot; &quot;dist/default&quot;"
- OP="dist/default/production/wolfssl.X.a"
- DOP="dist/default/debug/wolfssl.X.a"
- FL="dist/default/production/wolfssl.X.a"
- PD="dist/default/production/wolfssl.X."
- DD="dist/default/debug/wolfssl.X.">
- </makeArtifact>
- </linkerLibProjectItem>
- </linkerLibItems>
- </linkerTool>
- <archiverTool>
- </archiverTool>
- <loading>
- <useAlternateLoadableFile>false</useAlternateLoadableFile>
- <parseOnProdLoad>false</parseOnProdLoad>
- <alternateLoadableFile></alternateLoadableFile>
- </loading>
- </compileType>
- <makeCustomizationType>
- <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
- <makeCustomizationPreStep></makeCustomizationPreStep>
- <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>
- <makeCustomizationPostStep></makeCustomizationPostStep>
- <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>
- <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>
- <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
- </makeCustomizationType>
- <C32>
- <property key="additional-warnings" value="false"/>
- <property key="enable-app-io" value="false"/>
- <property key="enable-omit-frame-pointer" value="false"/>
- <property key="enable-symbols" value="true"/>
- <property key="enable-unroll-loops" value="false"/>
- <property key="exclude-floating-point" value="false"/>
- <property key="extra-include-directories" value="../../;../"/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="isolate-each-function" value="false"/>
- <property key="make-warnings-into-errors" value="false"/>
- <property key="optimization-level" value="-O3"/>
- <property key="place-data-into-section" value="false"/>
- <property key="post-instruction-scheduling" value="default"/>
- <property key="pre-instruction-scheduling" value="default"/>
- <property key="preprocessor-macros" value="WOLFSSL_USER_SETTINGS"/>
- <property key="strict-ansi" value="false"/>
- <property key="support-ansi" value="false"/>
- <property key="use-cci" value="false"/>
- <property key="use-iar" value="false"/>
- <property key="use-indirect-calls" value="false"/>
- </C32>
- <C32-AR>
- <property key="additional-options-chop-files" value="false"/>
- </C32-AR>
- <C32-AS>
- <property key="assembler-symbols" value=""/>
- <property key="enable-symbols" value="true"/>
- <property key="exclude-floating-point-library" value="false"/>
- <property key="expand-macros" value="false"/>
- <property key="extra-include-directories-for-assembler" value=""/>
- <property key="extra-include-directories-for-preprocessor" value=""/>
- <property key="false-conditionals" value="false"/>
- <property key="keep-locals" value="false"/>
- <property key="list-assembly" value="false"/>
- <property key="list-source" value="false"/>
- <property key="list-symbols" value="false"/>
- <property key="oXC32asm-list-to-file" value="false"/>
- <property key="omit-debug-dirs" value="false"/>
- <property key="omit-forms" value="false"/>
- <property key="preprocessor-macros" value=""/>
- <property key="warning-level" value=""/>
- </C32-AS>
- <C32-LD>
- <property key="additional-options-use-response-files" value="false"/>
- <property key="enable-check-sections" value="false"/>
- <property key="exclude-floating-point-library" value="false"/>
- <property key="exclude-standard-libraries" value="false"/>
- <property key="extra-lib-directories" value=""/>
- <property key="fill-flash-options-addr" value=""/>
- <property key="fill-flash-options-const" value=""/>
- <property key="fill-flash-options-how" value="0"/>
- <property key="fill-flash-options-inc-const" value="1"/>
- <property key="fill-flash-options-increment" value=""/>
- <property key="fill-flash-options-seq" value=""/>
- <property key="fill-flash-options-what" value="0"/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-cross-reference-file" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="heap-size" value="20480"/>
- <property key="input-libraries" value=""/>
- <property key="linker-symbols" value=""/>
- <property key="map-file" value=""/>
- <property key="no-startup-files" value="false"/>
- <property key="oXC32ld-extra-opts" value=""/>
- <property key="optimization-level" value="-O3"/>
- <property key="preprocessor-macros" value=""/>
- <property key="remove-unused-sections" value="false"/>
- <property key="report-memory-usage" value="false"/>
- <property key="stack-size" value="20480"/>
- <property key="symbol-stripping" value=""/>
- <property key="trace-symbols" value=""/>
- <property key="warn-section-align" value="false"/>
- </C32-LD>
- <C32CPP>
- <property key="additional-warnings" value="false"/>
- <property key="check-new" value="false"/>
- <property key="eh-specs" value="true"/>
- <property key="enable-app-io" value="false"/>
- <property key="enable-omit-frame-pointer" value="false"/>
- <property key="enable-symbols" value="true"/>
- <property key="enable-unroll-loops" value="false"/>
- <property key="exceptions" value="true"/>
- <property key="exclude-floating-point" value="false"/>
- <property key="extra-include-directories" value=""/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="isolate-each-function" value="false"/>
- <property key="make-warnings-into-errors" value="false"/>
- <property key="optimization-level" value=""/>
- <property key="place-data-into-section" value="false"/>
- <property key="post-instruction-scheduling" value="default"/>
- <property key="pre-instruction-scheduling" value="default"/>
- <property key="preprocessor-macros" value=""/>
- <property key="rtti" value="true"/>
- <property key="strict-ansi" value="false"/>
- <property key="use-cci" value="false"/>
- <property key="use-iar" value="false"/>
- <property key="use-indirect-calls" value="false"/>
- </C32CPP>
- <C32Global>
- <property key="common-include-directories" value=""/>
- <property key="gp-relative-option" value=""/>
- <property key="legacy-libc" value="false"/>
- <property key="relaxed-math" value="false"/>
- <property key="save-temps" value="false"/>
- <property key="wpo-lto" value="false"/>
- </C32Global>
- <PKOBSKDEPlatformTool>
- <property key="AutoSelectMemRanges" value="auto"/>
- <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
- <property key="ToolFirmwareFilePath"
- value="Press to browse for a specific firmware version"/>
- <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>
- <property key="memories.configurationmemory" value="true"/>
- <property key="memories.dataflash" value="true"/>
- <property key="memories.eeprom" value="true"/>
- <property key="memories.id" value="true"/>
- <property key="memories.programmemory" value="true"/>
- <property key="memories.programmemory.end" value="0x1d07ffff"/>
- <property key="memories.programmemory.start" value="0x1d000000"/>
- <property key="memories.userotp" value="true"/>
- <property key="poweroptions.powerenable" value="false"/>
- <property key="programoptions.donoteraseauxmem" value="false"/>
- <property key="programoptions.eraseb4program" value="true"/>
- <property key="programoptions.preservedataflash" value="false"/>
- <property key="programoptions.preserveeeprom" value="false"/>
- <property key="programoptions.preserveprogramrange" value="false"/>
- <property key="programoptions.preserveprogramrange.end" value="0x1d0001ff"/>
- <property key="programoptions.preserveprogramrange.start" value="0x1d000000"/>
- <property key="programoptions.usehighvoltageonmclr" value="false"/>
- <property key="programoptions.uselvpprogramming" value="false"/>
- <property key="voltagevalue" value="3.25"/>
- </PKOBSKDEPlatformTool>
- </conf>
- </confs>
-</configurationDescriptor>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/nbproject/include.am b/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/nbproject/include.am
deleted file mode 100644
index 8fccbc726..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/nbproject/include.am
+++ /dev/null
@@ -1,11 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- mplabx/wolfcrypt_benchmark.X/Makefile
-
-EXTRA_DIST += \
- mplabx/wolfcrypt_benchmark.X/nbproject/configurations.xml \
- mplabx/wolfcrypt_benchmark.X/nbproject/project.xml
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/nbproject/project.xml b/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/nbproject/project.xml
deleted file mode 100644
index 91468cb01..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_benchmark.X/nbproject/project.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://www.netbeans.org/ns/project/1">
- <type>com.microchip.mplab.nbide.embedded.makeproject</type>
- <configuration>
- <data xmlns="http://www.netbeans.org/ns/make-project/1">
- <name>wolfcrypt_benchmark</name>
- <creation-uuid>22e4138b-5f20-4957-ac0a-c181b94d3342</creation-uuid>
- <make-project-type>0</make-project-type>
- <c-extensions>c</c-extensions>
- <cpp-extensions/>
- <header-extensions>h</header-extensions>
- <sourceEncoding>ISO-8859-1</sourceEncoding>
- <asminc-extensions/>
- <make-dep-projects>
- <make-dep-project>../wolfssl.X</make-dep-project>
- </make-dep-projects>
- </data>
- </configuration>
-</project>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/Makefile b/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/Makefile
deleted file mode 100644
index 7b941ab95..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/Makefile
+++ /dev/null
@@ -1,108 +0,0 @@
-#
-# There exist several targets which are by default empty and which can be
-# used for execution of your targets. These targets are usually executed
-# before and after some main targets. They are:
-#
-# .build-pre: called before 'build' target
-# .build-post: called after 'build' target
-# .clean-pre: called before 'clean' target
-# .clean-post: called after 'clean' target
-# .clobber-pre: called before 'clobber' target
-# .clobber-post: called after 'clobber' target
-# .all-pre: called before 'all' target
-# .all-post: called after 'all' target
-# .help-pre: called before 'help' target
-# .help-post: called after 'help' target
-#
-# Targets beginning with '.' are not intended to be called on their own.
-#
-# Main targets can be executed directly, and they are:
-#
-# build build a specific configuration
-# clean remove built files from a configuration
-# clobber remove all built files
-# all build all configurations
-# help print help message
-#
-# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
-# .help-impl are implemented in nbproject/makefile-impl.mk.
-#
-# Available make variables:
-#
-# CND_BASEDIR base directory for relative paths
-# CND_DISTDIR default top distribution directory (build artifacts)
-# CND_BUILDDIR default top build directory (object files, ...)
-# CONF name of current configuration
-# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
-# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
-# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
-# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
-# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
-# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
-#
-# NOCDDL
-
-
-# Environment
-MKDIR=mkdir
-CP=cp
-CCADMIN=CCadmin
-RANLIB=ranlib
-
-
-# build
-build: .build-post
-
-.build-pre:
-# Add your pre 'build' code here...
-
-.build-post: .build-impl
-# Add your post 'build' code here...
-
-
-# clean
-clean: .clean-post
-
-.clean-pre:
-# Add your pre 'clean' code here...
-
-.clean-post: .clean-impl
-# Add your post 'clean' code here...
-
-
-# clobber
-clobber: .clobber-post
-
-.clobber-pre:
-# Add your pre 'clobber' code here...
-
-.clobber-post: .clobber-impl
-# Add your post 'clobber' code here...
-
-
-# all
-all: .all-post
-
-.all-pre:
-# Add your pre 'all' code here...
-
-.all-post: .all-impl
-# Add your post 'all' code here...
-
-
-# help
-help: .help-post
-
-.help-pre:
-# Add your pre 'help' code here...
-
-.help-post: .help-impl
-# Add your post 'help' code here...
-
-
-
-# include project implementation makefile
-include nbproject/Makefile-impl.mk
-
-# include project make variables
-include nbproject/Makefile-variables.mk
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/nbproject/configurations.xml b/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/nbproject/configurations.xml
deleted file mode 100644
index 1ee4b6bda..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/nbproject/configurations.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configurationDescriptor version="62">
- <logicalFolder name="root" displayName="root" projectFiles="true">
- <logicalFolder name="HeaderFiles"
- displayName="Header Files"
- projectFiles="true">
- <itemPath>../user_settings.h</itemPath>
- </logicalFolder>
- <logicalFolder name="LinkerScript"
- displayName="Linker Files"
- projectFiles="true">
- </logicalFolder>
- <logicalFolder name="SourceFiles"
- displayName="Source Files"
- projectFiles="true">
- <itemPath>../test_main.c</itemPath>
- <itemPath>../../wolfcrypt/test/test.c</itemPath>
- </logicalFolder>
- <logicalFolder name="ExternalFiles"
- displayName="Important Files"
- projectFiles="false">
- <itemPath>Makefile</itemPath>
- </logicalFolder>
- </logicalFolder>
- <sourceRootList>
- <Elem>..</Elem>
- <Elem>../../wolfcrypt/test</Elem>
- </sourceRootList>
- <projectmakefile>Makefile</projectmakefile>
- <confs>
- <conf name="default" type="2">
- <toolsSet>
- <developmentServer>localhost</developmentServer>
- <targetDevice>PIC32MZ2048EFM144</targetDevice>
- <targetHeader></targetHeader>
- <targetPluginBoard></targetPluginBoard>
- <platformTool>PKOBSKDEPlatformTool</platformTool>
- <languageToolchain>XC32</languageToolchain>
- <languageToolchainVersion></languageToolchainVersion>
- <platform>4</platform>
- </toolsSet>
- <compileType>
- <linkerTool>
- <linkerLibItems>
- <linkerLibProjectItem>
- <makeArtifact PL="../wolfssl.X"
- CT="3"
- CN="default"
- AC="true"
- BL="true"
- WD="../wolfssl.X"
- BC="${MAKE} -f Makefile CONF=default"
- DBC="${MAKE} -f Makefile CONF=default TYPE_IMAGE=DEBUG_RUN"
- CC="rm -rf &quot;build/default&quot; &quot;dist/default&quot;"
- OP="dist/default/production/wolfssl.X.a"
- DOP="dist/default/debug/wolfssl.X.a"
- FL="dist/default/production/wolfssl.X.a"
- PD="dist/default/production/wolfssl.X."
- DD="dist/default/debug/wolfssl.X.">
- </makeArtifact>
- </linkerLibProjectItem>
- </linkerLibItems>
- </linkerTool>
- <archiverTool>
- </archiverTool>
- <loading>
- <useAlternateLoadableFile>false</useAlternateLoadableFile>
- <parseOnProdLoad>false</parseOnProdLoad>
- <alternateLoadableFile></alternateLoadableFile>
- </loading>
- </compileType>
- <makeCustomizationType>
- <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
- <makeCustomizationPreStep></makeCustomizationPreStep>
- <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>
- <makeCustomizationPostStep></makeCustomizationPostStep>
- <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>
- <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>
- <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
- </makeCustomizationType>
- <C32>
- <property key="additional-warnings" value="false"/>
- <property key="enable-app-io" value="false"/>
- <property key="enable-omit-frame-pointer" value="false"/>
- <property key="enable-symbols" value="false"/>
- <property key="enable-unroll-loops" value="false"/>
- <property key="exclude-floating-point" value="false"/>
- <property key="extra-include-directories" value="../../;../"/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="isolate-each-function" value="false"/>
- <property key="make-warnings-into-errors" value="false"/>
- <property key="optimization-level" value="-O3"/>
- <property key="place-data-into-section" value="false"/>
- <property key="post-instruction-scheduling" value="default"/>
- <property key="pre-instruction-scheduling" value="default"/>
- <property key="preprocessor-macros" value="WOLFSSL_USER_SETTINGS"/>
- <property key="strict-ansi" value="false"/>
- <property key="support-ansi" value="false"/>
- <property key="use-cci" value="false"/>
- <property key="use-iar" value="false"/>
- <property key="use-indirect-calls" value="false"/>
- </C32>
- <C32-AR>
- <property key="additional-options-chop-files" value="false"/>
- </C32-AR>
- <C32-AS>
- <property key="assembler-symbols" value=""/>
- <property key="enable-symbols" value="true"/>
- <property key="exclude-floating-point-library" value="false"/>
- <property key="expand-macros" value="false"/>
- <property key="extra-include-directories-for-assembler" value=""/>
- <property key="extra-include-directories-for-preprocessor" value=""/>
- <property key="false-conditionals" value="false"/>
- <property key="keep-locals" value="false"/>
- <property key="list-assembly" value="false"/>
- <property key="list-source" value="false"/>
- <property key="list-symbols" value="false"/>
- <property key="oXC32asm-list-to-file" value="false"/>
- <property key="omit-debug-dirs" value="false"/>
- <property key="omit-forms" value="false"/>
- <property key="preprocessor-macros" value=""/>
- <property key="warning-level" value=""/>
- </C32-AS>
- <C32-LD>
- <property key="additional-options-use-response-files" value="false"/>
- <property key="enable-check-sections" value="false"/>
- <property key="exclude-floating-point-library" value="false"/>
- <property key="exclude-standard-libraries" value="false"/>
- <property key="extra-lib-directories" value=""/>
- <property key="fill-flash-options-addr" value=""/>
- <property key="fill-flash-options-const" value=""/>
- <property key="fill-flash-options-how" value="0"/>
- <property key="fill-flash-options-inc-const" value="1"/>
- <property key="fill-flash-options-increment" value=""/>
- <property key="fill-flash-options-seq" value=""/>
- <property key="fill-flash-options-what" value="0"/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-cross-reference-file" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="heap-size" value="20480"/>
- <property key="input-libraries" value=""/>
- <property key="linker-symbols" value=""/>
- <property key="map-file" value=""/>
- <property key="no-startup-files" value="false"/>
- <property key="oXC32ld-extra-opts" value=""/>
- <property key="optimization-level" value="-Os"/>
- <property key="preprocessor-macros" value=""/>
- <property key="remove-unused-sections" value="true"/>
- <property key="report-memory-usage" value="false"/>
- <property key="stack-size" value="20480"/>
- <property key="symbol-stripping" value=""/>
- <property key="trace-symbols" value=""/>
- <property key="warn-section-align" value="false"/>
- </C32-LD>
- <C32CPP>
- <property key="additional-warnings" value="false"/>
- <property key="check-new" value="false"/>
- <property key="eh-specs" value="true"/>
- <property key="enable-app-io" value="false"/>
- <property key="enable-omit-frame-pointer" value="false"/>
- <property key="enable-symbols" value="true"/>
- <property key="enable-unroll-loops" value="false"/>
- <property key="exceptions" value="true"/>
- <property key="exclude-floating-point" value="false"/>
- <property key="extra-include-directories" value=""/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="isolate-each-function" value="false"/>
- <property key="make-warnings-into-errors" value="false"/>
- <property key="optimization-level" value=""/>
- <property key="place-data-into-section" value="false"/>
- <property key="post-instruction-scheduling" value="default"/>
- <property key="pre-instruction-scheduling" value="default"/>
- <property key="preprocessor-macros" value=""/>
- <property key="rtti" value="true"/>
- <property key="strict-ansi" value="false"/>
- <property key="use-cci" value="false"/>
- <property key="use-iar" value="false"/>
- <property key="use-indirect-calls" value="false"/>
- </C32CPP>
- <C32Global>
- <property key="common-include-directories" value=""/>
- <property key="gp-relative-option" value=""/>
- <property key="legacy-libc" value="false"/>
- <property key="relaxed-math" value="false"/>
- <property key="save-temps" value="false"/>
- <property key="wpo-lto" value="false"/>
- </C32Global>
- <PKOBSKDEPlatformTool>
- <property key="AutoSelectMemRanges" value="auto"/>
- <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
- <property key="ToolFirmwareFilePath"
- value="Press to browse for a specific firmware version"/>
- <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>
- <property key="memories.configurationmemory" value="true"/>
- <property key="memories.dataflash" value="true"/>
- <property key="memories.eeprom" value="true"/>
- <property key="memories.id" value="true"/>
- <property key="memories.programmemory" value="true"/>
- <property key="memories.programmemory.end" value="0x1d07ffff"/>
- <property key="memories.programmemory.start" value="0x1d000000"/>
- <property key="memories.userotp" value="true"/>
- <property key="poweroptions.powerenable" value="false"/>
- <property key="programoptions.donoteraseauxmem" value="false"/>
- <property key="programoptions.eraseb4program" value="true"/>
- <property key="programoptions.preservedataflash" value="false"/>
- <property key="programoptions.preserveeeprom" value="false"/>
- <property key="programoptions.preserveprogramrange" value="false"/>
- <property key="programoptions.preserveprogramrange.end" value="0x1d0001ff"/>
- <property key="programoptions.preserveprogramrange.start" value="0x1d000000"/>
- <property key="programoptions.usehighvoltageonmclr" value="false"/>
- <property key="programoptions.uselvpprogramming" value="false"/>
- <property key="voltagevalue" value="3.25"/>
- </PKOBSKDEPlatformTool>
- </conf>
- </confs>
-</configurationDescriptor>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/nbproject/include.am b/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/nbproject/include.am
deleted file mode 100644
index 840e87973..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/nbproject/include.am
+++ /dev/null
@@ -1,11 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- mplabx/wolfcrypt_test.X/Makefile
-
-EXTRA_DIST += \
- mplabx/wolfcrypt_test.X/nbproject/configurations.xml \
- mplabx/wolfcrypt_test.X/nbproject/project.xml
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/nbproject/project.xml b/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/nbproject/project.xml
deleted file mode 100644
index c2ffc29aa..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfcrypt_test.X/nbproject/project.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://www.netbeans.org/ns/project/1">
- <type>com.microchip.mplab.nbide.embedded.makeproject</type>
- <configuration>
- <data xmlns="http://www.netbeans.org/ns/make-project/1">
- <name>wolfcrypt_test</name>
- <creation-uuid>b34c4937-7042-4352-88b1-7717bcdf8aeb</creation-uuid>
- <make-project-type>0</make-project-type>
- <c-extensions>c</c-extensions>
- <cpp-extensions/>
- <header-extensions>h</header-extensions>
- <sourceEncoding>ISO-8859-1</sourceEncoding>
- <asminc-extensions/>
- <make-dep-projects>
- <make-dep-project>../wolfssl.X</make-dep-project>
- </make-dep-projects>
- </data>
- </configuration>
-</project>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/Makefile b/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/Makefile
deleted file mode 100644
index 7b941ab95..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/Makefile
+++ /dev/null
@@ -1,108 +0,0 @@
-#
-# There exist several targets which are by default empty and which can be
-# used for execution of your targets. These targets are usually executed
-# before and after some main targets. They are:
-#
-# .build-pre: called before 'build' target
-# .build-post: called after 'build' target
-# .clean-pre: called before 'clean' target
-# .clean-post: called after 'clean' target
-# .clobber-pre: called before 'clobber' target
-# .clobber-post: called after 'clobber' target
-# .all-pre: called before 'all' target
-# .all-post: called after 'all' target
-# .help-pre: called before 'help' target
-# .help-post: called after 'help' target
-#
-# Targets beginning with '.' are not intended to be called on their own.
-#
-# Main targets can be executed directly, and they are:
-#
-# build build a specific configuration
-# clean remove built files from a configuration
-# clobber remove all built files
-# all build all configurations
-# help print help message
-#
-# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
-# .help-impl are implemented in nbproject/makefile-impl.mk.
-#
-# Available make variables:
-#
-# CND_BASEDIR base directory for relative paths
-# CND_DISTDIR default top distribution directory (build artifacts)
-# CND_BUILDDIR default top build directory (object files, ...)
-# CONF name of current configuration
-# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
-# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
-# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
-# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
-# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
-# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
-#
-# NOCDDL
-
-
-# Environment
-MKDIR=mkdir
-CP=cp
-CCADMIN=CCadmin
-RANLIB=ranlib
-
-
-# build
-build: .build-post
-
-.build-pre:
-# Add your pre 'build' code here...
-
-.build-post: .build-impl
-# Add your post 'build' code here...
-
-
-# clean
-clean: .clean-post
-
-.clean-pre:
-# Add your pre 'clean' code here...
-
-.clean-post: .clean-impl
-# Add your post 'clean' code here...
-
-
-# clobber
-clobber: .clobber-post
-
-.clobber-pre:
-# Add your pre 'clobber' code here...
-
-.clobber-post: .clobber-impl
-# Add your post 'clobber' code here...
-
-
-# all
-all: .all-post
-
-.all-pre:
-# Add your pre 'all' code here...
-
-.all-post: .all-impl
-# Add your post 'all' code here...
-
-
-# help
-help: .help-post
-
-.help-pre:
-# Add your pre 'help' code here...
-
-.help-post: .help-impl
-# Add your post 'help' code here...
-
-
-
-# include project implementation makefile
-include nbproject/Makefile-impl.mk
-
-# include project make variables
-include nbproject/Makefile-variables.mk
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/nbproject/configurations.xml b/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/nbproject/configurations.xml
deleted file mode 100644
index a07c30598..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/nbproject/configurations.xml
+++ /dev/null
@@ -1,265 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configurationDescriptor version="62">
- <logicalFolder name="root" displayName="root" projectFiles="true">
- <logicalFolder name="HeaderFiles"
- displayName="Header Files"
- projectFiles="true">
- <itemPath>../user_settings.h</itemPath>
- </logicalFolder>
- <logicalFolder name="LinkerScript"
- displayName="Linker Files"
- projectFiles="true">
- </logicalFolder>
- <logicalFolder name="SourceFiles"
- displayName="Source Files"
- projectFiles="true">
- <logicalFolder name="f2" displayName="wolfcrypt" projectFiles="true">
- <itemPath>../../wolfcrypt/src/aes.c</itemPath>
- <itemPath>../../wolfcrypt/src/arc4.c</itemPath>
- <itemPath>../../wolfcrypt/src/asm.c</itemPath>
- <itemPath>../../wolfcrypt/src/asn.c</itemPath>
- <itemPath>../../wolfcrypt/src/blake2b.c</itemPath>
- <itemPath>../../wolfcrypt/src/camellia.c</itemPath>
- <itemPath>../../wolfcrypt/src/chacha.c</itemPath>
- <itemPath>../../wolfcrypt/src/coding.c</itemPath>
- <itemPath>../../wolfcrypt/src/compress.c</itemPath>
- <itemPath>../../wolfcrypt/src/des3.c</itemPath>
- <itemPath>../../wolfcrypt/src/dh.c</itemPath>
- <itemPath>../../wolfcrypt/src/dsa.c</itemPath>
- <itemPath>../../wolfcrypt/src/ecc.c</itemPath>
- <itemPath>../../wolfcrypt/src/ecc_fp.c</itemPath>
- <itemPath>../../wolfcrypt/src/error.c</itemPath>
- <itemPath>../../wolfcrypt/src/hc128.c</itemPath>
- <itemPath>../../wolfcrypt/src/hmac.c</itemPath>
- <itemPath>../../wolfcrypt/src/integer.c</itemPath>
- <itemPath>../../wolfcrypt/src/logging.c</itemPath>
- <itemPath>../../wolfcrypt/src/md2.c</itemPath>
- <itemPath>../../wolfcrypt/src/md4.c</itemPath>
- <itemPath>../../wolfcrypt/src/md5.c</itemPath>
- <itemPath>../../wolfcrypt/src/memory.c</itemPath>
- <itemPath>../../wolfcrypt/src/misc.c</itemPath>
- <itemPath>../../wolfcrypt/src/pkcs7.c</itemPath>
- <itemPath>../../wolfcrypt/src/poly1305.c</itemPath>
- <itemPath>../../wolfcrypt/src/pwdbased.c</itemPath>
- <itemPath>../../wolfcrypt/src/rabbit.c</itemPath>
- <itemPath>../../wolfcrypt/src/random.c</itemPath>
- <itemPath>../../wolfcrypt/src/ripemd.c</itemPath>
- <itemPath>../../wolfcrypt/src/rsa.c</itemPath>
- <itemPath>../../wolfcrypt/src/sha.c</itemPath>
- <itemPath>../../wolfcrypt/src/sha256.c</itemPath>
- <itemPath>../../wolfcrypt/src/sha512.c</itemPath>
- <itemPath>../../wolfcrypt/src/tfm.c</itemPath>
- <itemPath>../../wolfcrypt/src/wc_port.c</itemPath>
- <itemPath>../../wolfcrypt/src/port/pic32/pic32mz-crypt.c</itemPath>
- <itemPath>../../wolfcrypt/src/hash.c</itemPath>
- <itemPath>../../wolfcrypt/src/chacha20_poly1305.c</itemPath>
- <itemPath>../../wolfcrypt/src/curve25519.c</itemPath>
- <itemPath>../../wolfcrypt/src/ed25519.c</itemPath>
- <itemPath>../../wolfcrypt/src/fe_low_mem.c</itemPath>
- <itemPath>../../wolfcrypt/src/fe_operations.c</itemPath>
- <itemPath>../../wolfcrypt/src/ge_low_mem.c</itemPath>
- <itemPath>../../wolfcrypt/src/ge_operations.c</itemPath>
- <itemPath>../../wolfcrypt/src/wc_encrypt.c</itemPath>
- <itemPath>../../wolfcrypt/src/pkcs12.c</itemPath>
- <itemPath>../../wolfcrypt/src/signature.c</itemPath>
- <itemPath>../../wolfcrypt/src/wolfevent.c</itemPath>
- <itemPath>../../wolfcrypt/src/wolfmath.c</itemPath>
- </logicalFolder>
- <logicalFolder name="f1" displayName="wolfssl" projectFiles="true">
- <itemPath>../../src/crl.c</itemPath>
- <itemPath>../../src/internal.c</itemPath>
- <itemPath>../../src/wolfio.c</itemPath>
- <itemPath>../../src/keys.c</itemPath>
- <itemPath>../../src/ocsp.c</itemPath>
- <itemPath>../../src/sniffer.c</itemPath>
- <itemPath>../../src/ssl.c</itemPath>
- <itemPath>../../src/tls.c</itemPath>
- <itemPath>../../src/tls13.c</itemPath>
- </logicalFolder>
- </logicalFolder>
- <logicalFolder name="ExternalFiles"
- displayName="Important Files"
- projectFiles="false">
- <itemPath>Makefile</itemPath>
- </logicalFolder>
- </logicalFolder>
- <sourceRootList>
- <Elem>..</Elem>
- <Elem>../../cyassl/ctaocrypt</Elem>
- <Elem>../../ctaocrypt/src</Elem>
- <Elem>../../src</Elem>
- <Elem>../../wolfcrypt/src</Elem>
- </sourceRootList>
- <projectmakefile>Makefile</projectmakefile>
- <confs>
- <conf name="default" type="3">
- <toolsSet>
- <developmentServer>localhost</developmentServer>
- <targetDevice>PIC32MZ2048EFM144</targetDevice>
- <targetHeader></targetHeader>
- <targetPluginBoard></targetPluginBoard>
- <platformTool>PKOBSKDEPlatformTool</platformTool>
- <languageToolchain>XC32</languageToolchain>
- <languageToolchainVersion>1.33</languageToolchainVersion>
- <platform>4</platform>
- </toolsSet>
- <compileType>
- <linkerTool>
- <linkerLibItems>
- </linkerLibItems>
- </linkerTool>
- <archiverTool>
- </archiverTool>
- <loading>
- <useAlternateLoadableFile>false</useAlternateLoadableFile>
- <parseOnProdLoad>false</parseOnProdLoad>
- <alternateLoadableFile></alternateLoadableFile>
- </loading>
- </compileType>
- <makeCustomizationType>
- <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
- <makeCustomizationPreStep></makeCustomizationPreStep>
- <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>
- <makeCustomizationPostStep></makeCustomizationPostStep>
- <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>
- <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>
- <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
- </makeCustomizationType>
- <C32>
- <property key="additional-warnings" value="false"/>
- <property key="enable-app-io" value="false"/>
- <property key="enable-omit-frame-pointer" value="false"/>
- <property key="enable-symbols" value="false"/>
- <property key="enable-unroll-loops" value="false"/>
- <property key="exclude-floating-point" value="false"/>
- <property key="extra-include-directories" value="../../;../"/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="isolate-each-function" value="false"/>
- <property key="make-warnings-into-errors" value="false"/>
- <property key="optimization-level" value="-O3"/>
- <property key="place-data-into-section" value="false"/>
- <property key="post-instruction-scheduling" value="default"/>
- <property key="pre-instruction-scheduling" value="default"/>
- <property key="preprocessor-macros" value="WOLFSSL_USER_SETTINGS"/>
- <property key="strict-ansi" value="false"/>
- <property key="support-ansi" value="false"/>
- <property key="use-cci" value="false"/>
- <property key="use-iar" value="false"/>
- <property key="use-indirect-calls" value="false"/>
- </C32>
- <C32-AR>
- <property key="additional-options-chop-files" value="false"/>
- </C32-AR>
- <C32-AS>
- <property key="assembler-symbols" value=""/>
- <property key="enable-symbols" value="false"/>
- <property key="exclude-floating-point-library" value="false"/>
- <property key="expand-macros" value="false"/>
- <property key="extra-include-directories-for-assembler" value="../../"/>
- <property key="extra-include-directories-for-preprocessor" value="../../"/>
- <property key="false-conditionals" value="false"/>
- <property key="keep-locals" value="false"/>
- <property key="list-assembly" value="false"/>
- <property key="list-source" value="false"/>
- <property key="list-symbols" value="false"/>
- <property key="oXC32asm-list-to-file" value="false"/>
- <property key="omit-debug-dirs" value="false"/>
- <property key="omit-forms" value="false"/>
- <property key="preprocessor-macros" value=""/>
- <property key="warning-level" value=""/>
- </C32-AS>
- <C32-LD>
- <property key="additional-options-use-response-files" value="false"/>
- <property key="enable-check-sections" value="false"/>
- <property key="exclude-floating-point-library" value="false"/>
- <property key="exclude-standard-libraries" value="false"/>
- <property key="extra-lib-directories" value=""/>
- <property key="fill-flash-options-addr" value=""/>
- <property key="fill-flash-options-const" value=""/>
- <property key="fill-flash-options-how" value="0"/>
- <property key="fill-flash-options-inc-const" value="1"/>
- <property key="fill-flash-options-increment" value=""/>
- <property key="fill-flash-options-seq" value=""/>
- <property key="fill-flash-options-what" value="0"/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-cross-reference-file" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="heap-size" value=""/>
- <property key="input-libraries" value=""/>
- <property key="linker-symbols" value=""/>
- <property key="map-file" value=""/>
- <property key="no-startup-files" value="false"/>
- <property key="oXC32ld-extra-opts" value=""/>
- <property key="optimization-level" value="-Os"/>
- <property key="preprocessor-macros" value=""/>
- <property key="remove-unused-sections" value="true"/>
- <property key="report-memory-usage" value="false"/>
- <property key="stack-size" value=""/>
- <property key="symbol-stripping" value="-s"/>
- <property key="trace-symbols" value=""/>
- <property key="warn-section-align" value="false"/>
- </C32-LD>
- <C32CPP>
- <property key="additional-warnings" value="false"/>
- <property key="check-new" value="false"/>
- <property key="eh-specs" value="false"/>
- <property key="enable-app-io" value="false"/>
- <property key="enable-omit-frame-pointer" value="false"/>
- <property key="enable-symbols" value="true"/>
- <property key="enable-unroll-loops" value="false"/>
- <property key="exceptions" value="false"/>
- <property key="exclude-floating-point" value="false"/>
- <property key="extra-include-directories" value=""/>
- <property key="generate-16-bit-code" value="false"/>
- <property key="generate-micro-compressed-code" value="false"/>
- <property key="isolate-each-function" value="false"/>
- <property key="make-warnings-into-errors" value="false"/>
- <property key="optimization-level" value=""/>
- <property key="place-data-into-section" value="false"/>
- <property key="post-instruction-scheduling" value="default"/>
- <property key="pre-instruction-scheduling" value="default"/>
- <property key="preprocessor-macros" value=""/>
- <property key="rtti" value="false"/>
- <property key="strict-ansi" value="false"/>
- <property key="use-cci" value="false"/>
- <property key="use-iar" value="false"/>
- <property key="use-indirect-calls" value="false"/>
- </C32CPP>
- <C32Global>
- <property key="common-include-directories" value=""/>
- <property key="gp-relative-option" value=""/>
- <property key="legacy-libc" value="false"/>
- <property key="relaxed-math" value="false"/>
- <property key="save-temps" value="false"/>
- <property key="wpo-lto" value="false"/>
- </C32Global>
- <PKOBSKDEPlatformTool>
- <property key="AutoSelectMemRanges" value="auto"/>
- <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
- <property key="ToolFirmwareFilePath"
- value="Press to browse for a specific firmware version"/>
- <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>
- <property key="memories.configurationmemory" value="true"/>
- <property key="memories.dataflash" value="true"/>
- <property key="memories.eeprom" value="true"/>
- <property key="memories.id" value="true"/>
- <property key="memories.programmemory" value="true"/>
- <property key="memories.programmemory.end" value="0x1d07ffff"/>
- <property key="memories.programmemory.start" value="0x1d000000"/>
- <property key="memories.userotp" value="true"/>
- <property key="poweroptions.powerenable" value="false"/>
- <property key="programoptions.donoteraseauxmem" value="false"/>
- <property key="programoptions.eraseb4program" value="true"/>
- <property key="programoptions.preservedataflash" value="false"/>
- <property key="programoptions.preserveeeprom" value="false"/>
- <property key="programoptions.preserveprogramrange" value="false"/>
- <property key="programoptions.preserveprogramrange.end" value="0x1d0001ff"/>
- <property key="programoptions.preserveprogramrange.start" value="0x1d000000"/>
- <property key="programoptions.usehighvoltageonmclr" value="false"/>
- <property key="programoptions.uselvpprogramming" value="false"/>
- <property key="voltagevalue" value="3.25"/>
- </PKOBSKDEPlatformTool>
- </conf>
- </confs>
-</configurationDescriptor>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/nbproject/include.am b/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/nbproject/include.am
deleted file mode 100644
index 510c26ae0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/nbproject/include.am
+++ /dev/null
@@ -1,10 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- mplabx/wolfssl.X/Makefile
-
-EXTRA_DIST += \
- mplabx/wolfssl.X/nbproject/configurations.xml \
- mplabx/wolfssl.X/nbproject/project.xml
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/nbproject/project.xml b/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/nbproject/project.xml
deleted file mode 100644
index 92994f1f0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mplabx/wolfssl.X/nbproject/project.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://www.netbeans.org/ns/project/1">
- <type>com.microchip.mplab.nbide.embedded.makeproject</type>
- <configuration>
- <data xmlns="http://www.netbeans.org/ns/make-project/1">
- <name>wolfssl</name>
- <creation-uuid>93bbfc3a-a0fa-4d48-bbc8-6cd47a2bd05b</creation-uuid>
- <make-project-type>0</make-project-type>
- <c-extensions>c</c-extensions>
- <cpp-extensions/>
- <header-extensions>h</header-extensions>
- <sourceEncoding>ISO-8859-1</sourceEncoding>
- <asminc-extensions/>
- <make-dep-projects/>
- </data>
- </configuration>
-</project>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/README b/FreeRTOS-Plus/Source/WolfSSL/mqx/README
deleted file mode 100644
index 55c13c671..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/README
+++ /dev/null
@@ -1,43 +0,0 @@
-wolfSSL Freescale CodeWarrior Project Files
-
-This directory contains project files for Freescale CodeWarrior 10.6 with
-the Freescale GCC compiler. These project have been created to use MQX, RTCS,
-and MFS on the Freescale Kinetis K70 Tower System (TWRK70F120M).
-
-Included Project Files
------------------------
-
-1. wolfSSL library (/wolfssl)
-
- Prior to building this project, uncomment the FREESCALE_MQX define
- located in:
-
- <wolfssl_root>/wolfssl/wolfcrypt/settings.h
-
-2. wolfCrypt Test App (/wolfcrypt_test)
-
-3. wolfCrypt Benchmark App (/wolfcrypt_benchmark)
-
-3. Example wolfSSL Client (/wolfssl_client)
-
-4. Utility library (/util_lib)
-
- This library is used by the wolfSSL example client project and wolfCrypt
- test app project for opening/closing the SD card, etc.
-
-Importing into CodeWarrior Workspace
-------------------------------------
-
-These projects can be imported into a CodeWarrior workspace using the standard
-"Import Project" feature. To import a project from CodeWarrior, follow
-these steps:
-
-1. File -> Import
-2. General -> Existing Projects into Workspace
-3. Select Root Directory (browse to this "<wolfssl_root>/mqx" directory)
-4. Select desired projects -> Finish
-
-Keep in mind that the projects above reference wolfSSL source files and header
-files with relative paths to the projects' current location in the
-<wolfssl_root>/mqx directory.
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/.cproject b/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/.cproject
deleted file mode 100644
index 5c4fc14ec..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/.cproject
+++ /dev/null
@@ -1,541 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?fileVersion 4.0.0?>
-
-<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
- <storageModule moduleId="org.eclipse.cdt.core.settings">
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_DDRData_Debug">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="a" artifactName="util_lib" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_DDRData_Debug" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.974506159" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.1064224380" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.776480756" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <targetPlatform id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.1929295348" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_DDRData_Debug" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.1460536836" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildOn="true" parallelBuildWorkspaceOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.226235155" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.230457632" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- </option>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.555218868" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1631157130" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1306215263" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.550628909" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.749966319" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.371619007" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -D_EWL_C99=1" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.1358123073" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.334935915" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.605358471" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.1677495877" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.101853813" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.152802354" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.287942895" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1455514328" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="&quot;gcc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;stdc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;rt&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;supc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.1163177586" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.1459624691" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.1690396779" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value="-n -z muldefs" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.1561262395" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="false" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.323198746" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1212417167" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags" valueType="stringList">
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group -lgcc -lstdc++ -lm -lrt -lc++ -lsupc++ -lc -Xlinker --end-group"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1077914304" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_ddrdata.ld" valueType="string"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.1946070893" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1165965890" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.489093214" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.670568624" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.23581816" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.963520079" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.340071289" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.953296172" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1187124945" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.1854077742" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.714960268" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.1122007757" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/K70FN1M0.mem|Debugger/mass_erase_kinetis.tcl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_DDRData_Release">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="a" artifactName="util_lib" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" buildReferences="true" buildReferencingConfigurations="false" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_DDRData_Release" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" produceBuildErrorsWithMissingReferences="true">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.192713895" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.1790844662" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.1902895600" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <targetPlatform id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.826801222" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_DDRData_Release" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.974603812" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildWorkspaceOn="true" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1786730272" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.2031300737" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs&quot;"/>
- </option>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1342116944" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1717479051" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1480119700" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.794157503" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.1395918832" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.1672003240" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.1530269020" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -D_EWL_C99=1" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.1629180197" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.258615998" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.782133448" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.285727177" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.730189659" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.65051055" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1987819860" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="&quot;gcc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;stdc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;rt&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;supc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.267333148" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.845152990" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.33970607" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value="-n -z muldefs" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.1987396071" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="false" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.984230931" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.689194763" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags" valueType="stringList">
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs/mfs.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs/mfs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group -lgcc -lstdc++ -lm -lrt -lc++ -lsupc++ -lc -Xlinker --end-group"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1437884906" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\release\bsp\intflash_ddrdata.ld" valueType="string"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.1008103501" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1864071683" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.2023735277" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.173543357" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.996266315" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1192087739" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.1214409516" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.631893692" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1413694685" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.570811620" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.1732646952" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.1610537932" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/K70FN1M0.mem|Debugger/mass_erase_kinetis.tcl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_SramData_Debug">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="a" artifactName="util_lib" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_SramData_Debug" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.225492832" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.1716699711" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.1988573380" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <targetPlatform id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.2001737632" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_SramData_Debug" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.1664389494" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildOn="true" parallelBuildWorkspaceOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.953512570" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.1209252825" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- </option>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.153611981" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1895051771" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1442998979" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.942194914" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.477617310" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.344269247" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -D_EWL_C99=1" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.488762671" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.1920634446" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1966302572" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.45995414" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.1305513318" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.1169776246" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.2014924908" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1507275763" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="&quot;gcc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;stdc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;rt&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;supc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.300434476" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.1759246044" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.2101445725" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value="-n -z muldefs" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.2000317134" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="false" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.750651929" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1869420661" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags" valueType="stringList">
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group -lgcc -lstdc++ -lm -lrt -lc++ -lsupc++ -lc -Xlinker --end-group"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1386890338" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_sramdata.ld" valueType="string"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.528847790" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.514014862" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug"/>
- <tool errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.408249245" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.2003783427" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.1571642216" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.708986703" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.1067493811" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.78949311" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1565324538" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.1119426482" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.940685186" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.939599568" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/K70FN1M0.mem|Debugger/mass_erase_kinetis.tcl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_SramData_Release">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="a" artifactName="util_lib" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_SramData_Release" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.489100301" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.1790779036" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.1181943572" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <targetPlatform id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.1131791921" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_SramData_Release" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.1197643770" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildWorkspaceOn="true" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1771521876" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.463065916" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs&quot;"/>
- </option>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1745237860" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1712364512" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1829275338" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.73244514" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.193043409" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.1494738286" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.1741586383" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -D_EWL_C99=1" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.564520693" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.942972989" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.2066163409" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.1303915861" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.1528509888" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.2092334977" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1902170102" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="&quot;gcc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;stdc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;rt&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;supc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.1453604321" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.481560722" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.160821973" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value="-n -z muldefs" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.1206978188" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="false" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.1196709335" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.762343017" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags" valueType="stringList">
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs/mfs.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs/mfs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group -lgcc -lstdc++ -lm -lrt -lc++ -lsupc++ -lc -Xlinker --end-group"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1026546810" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\release\bsp\intflash_sramdata.ld" valueType="string"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.837961278" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1104994417" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.524824372" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.1691275444" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.744266853" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.746456936" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.890163560" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.1745244847" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1504070862" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.997987876" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.706972193" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.1151996620" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/K70FN1M0.mem|Debugger/mass_erase_kinetis.tcl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <project id="util_lib.com.freescale.arm.cdt.toolchain.project.arm.1610136749" name="ARM Project" projectType="com.freescale.arm.cdt.toolchain.project.arm"/>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.pathentry"/>
- <storageModule moduleId="refreshScope" versionNumber="2">
- <configuration configurationName="twrk70f120m_Int_Flash_SramData_Debug">
- <resource resourceType="PROJECT" workspacePath="/util_lib"/>
- </configuration>
- <configuration configurationName="twrk70f120m_Int_Flash_DDRData_Debug">
- <resource resourceType="PROJECT" workspacePath="/util_lib"/>
- </configuration>
- <configuration configurationName="twrk70f120m_Int_Flash_DDRData_Release">
- <resource resourceType="PROJECT" workspacePath="/util_lib"/>
- </configuration>
- <configuration configurationName="twrk70f120m_Int_Flash_SramData_Release">
- <resource resourceType="PROJECT" workspacePath="/util_lib"/>
- </configuration>
- </storageModule>
- <storageModule moduleId="scannerConfiguration">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1786730272;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1342116944">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1712364512;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.942972989">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.226235155;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.555218868">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.953512570;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.153611981">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1631157130;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.605358471">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1717479051;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.258615998">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1771521876;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1745237860">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1895051771;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1966302572">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- </storageModule>
-</cproject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/.project b/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/.project
deleted file mode 100644
index 5f5f5ffaa..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>util_lib</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.cdt.core.cnature</nature>
- <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
- <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
- </natures>
- <variableList>
- <variable>
- <name>MQX_ROOT_DIR</name>
- <value>file:/C:/Freescale/Freescale_MQX_4_1</value>
- </variable>
- </variableList>
-</projectDescription>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/Sources/include.am b/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/Sources/include.am
deleted file mode 100644
index 4b54a5a60..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/Sources/include.am
+++ /dev/null
@@ -1,12 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- mqx/util_lib/.cproject \
- mqx/util_lib/.project
-
-EXTRA_DIST += \
- mqx/util_lib/Sources/util.c \
- mqx/util_lib/Sources/util.h
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/Sources/util.c b/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/Sources/util.c
deleted file mode 100644
index c7ce08bca..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/Sources/util.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/* util.c */
-
-#include <mqx.h>
-#include <bsp.h>
-#include <fio.h>
-#include <mfs.h>
-#include <sdcard.h>
-#include <spi.h>
-#include <part_mgr.h>
-
-#include "util.h"
-
-#if !BSPCFG_ENABLE_IO_SUBSYSTEM
- #error This application requires BSPCFG_ENABLE_IO_SUBSYSTEM defined \
- non-zero in user_config.h. Please recompile BSP with this option.
-#endif
-
-#ifndef BSP_DEFAULT_IO_CHANNEL_DEFINED
- #error This application requires BSP_DEFAULT_IO_CHANNEL to be not \
- NULL. Please set corresponding BSPCFG_ENABLE_TTYx to non-zero \
- in user_config.h and recompile BSP with this option.
-#endif
-
-#if defined BSP_SDCARD_ESDHC_CHANNEL
- #if ! BSPCFG_ENABLE_ESDHC
- #error This application requires BSPCFG_ENABLE_ESDHC defined \
- non-zero in user_config.h. Please recompile libraries with \
- this option.
- #endif
-#elif defined BSP_SDCARD_SDHC_CHANNEL
- #if ! BSPCFG_ENABLE_SDHC
- #error This application requires BSPCFG_ENABLE_SDHC defined \
- non-zero in user_config.h. Please recompile libraries with \
- this option.
- #endif
-#endif
-
-#if defined (BSP_SDCARD_SPI_CHANNEL)
- #define SDCARD_COM_CHANNEL BSP_SDCARD_SPI_CHANNEL
-#elif defined (BSP_SDCARD_ESDHC_CHANNEL)
- #define SDCARD_COM_CHANNEL BSP_SDCARD_ESDHC_CHANNEL
-#elif defined (BSP_SDCARD_SDHC_CHANNEL)
- #define SDCARD_COM_CHANNEL BSP_SDCARD_SDHC_CHANNEL
-#else
- #error "SDCARD low level communication device not defined!"
-#endif
-
-int sdcard_open(MQX_FILE_PTR *com_handle, MQX_FILE_PTR *sdcard_handle,
- MQX_FILE_PTR *partman_handle, MQX_FILE_PTR *filesystem_handle,
- char *partman_name, char *filesystem_name)
-{
- _mqx_int error_code;
- _mqx_uint param;
-
- /* Open low level communication device */
- *com_handle = fopen(SDCARD_COM_CHANNEL, NULL);
-
- if (NULL == *com_handle) {
- printf("Error installing communication handle.\n");
- return -60;
- }
-
- /* Install SD card device */
- error_code = _io_sdcard_install("sdcard:", (void *)&_bsp_sdcard0_init,
- *com_handle);
- if (error_code != MQX_OK) {
- printf("Error installing SD card device (0x%x)\n", error_code);
- return -61;
- }
-
- _time_delay(200);
-
- /* Open the device which MFS will be installed on */
- *sdcard_handle = fopen("sdcard:", 0);
- if (*sdcard_handle == NULL) {
- printf("Unable to open SD card device.\n");
- return -62;
- }
-
- /* Install partition manager over SD card driver */
- error_code = _io_part_mgr_install(*sdcard_handle, partman_name, 0);
- if (error_code != MFS_NO_ERROR) {
- printf("Error installing partition manager: %s\n", MFS_Error_text(
- (uint32_t) error_code));
- return -63;
- }
-
- /* Open partition manager */
- *partman_handle = fopen(partman_name, NULL);
- if (*partman_handle == NULL) {
- error_code = ferror(*partman_handle);
- printf("Error opening partition manager: %s\n", MFS_Error_text(
- (uint32_t) error_code));
- return -64;
- }
-
- /* Validate partition 1 */
- param = 1;
- error_code = _io_ioctl(*partman_handle, IO_IOCTL_VAL_PART, &param);
- if (error_code == MQX_OK) {
- /* Install MFS over partition 1 */
- error_code = _io_mfs_install(*partman_handle, filesystem_name, param);
- if (error_code != MFS_NO_ERROR) {
- printf("Error initializing MFS over partition: %s\n",
- MFS_Error_text((uint32_t) error_code));
- return -65;
- }
-
- } else {
- /* Install MFS over SD card driver */
- error_code = _io_mfs_install(*sdcard_handle, filesystem_name,
- (_file_size) 0);
- if (error_code != MFS_NO_ERROR) {
- printf("Error initializing MFS: %s\n", MFS_Error_text(
- (uint32_t) error_code));
- return -66;
- }
- } /* end Validate partition 1 */
-
- /* Open file system */
- *filesystem_handle = fopen(filesystem_name, NULL);
- error_code = ferror(*filesystem_handle);
- if ((error_code != MFS_NO_ERROR) && (error_code != MFS_NOT_A_DOS_DISK)) {
- printf("Error opening filesystem: %s\n", MFS_Error_text(
- (uint32_t) error_code));
- return -67;
- }
- if (error_code == MFS_NOT_A_DOS_DISK) {
- printf("NOT A DOS DISK! You must format to continue.\n");
- return -68;
- }
-
- return 0;
-}
-
-int sdcard_close(MQX_FILE_PTR *sdcard_handle, MQX_FILE_PTR *partman_handle,
- MQX_FILE_PTR *filesystem_handle,
- char *partman_name, char *filesystem_name)
-{
- _mqx_int error_code;
-
- /* Close the filesystem */
- if (MQX_OK != fclose(*filesystem_handle)) {
- printf("Error closing filesystem.\n");
- return -69;
- }
- *filesystem_handle = NULL;
-
- /* Uninstall MFS */
- error_code = _io_dev_uninstall(filesystem_name);
- if (error_code != MFS_NO_ERROR) {
- printf("Error uninstalling filesystem.\n");
- return -70;
- }
-
- /* Close partition manager */
- if (MQX_OK != fclose(*partman_handle)) {
- printf("Unable to close partition manager.\n");
- return -71;
- }
- *partman_handle = NULL;
-
- /* Uninstall partition manager */
- error_code = _io_dev_uninstall(partman_name);
- if (error_code != MFS_NO_ERROR) {
- printf("Error uninstalling partition manager.\n");
- return -72;
- }
-
- /* Close the SD card device */
- if (MQX_OK != fclose(*sdcard_handle)) {
- printf("Unable to close SD card device.\n");
- return -73;
- }
- *sdcard_handle = NULL;
-
- return 0;
-}
-
-/* EOF */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/Sources/util.h b/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/Sources/util.h
deleted file mode 100644
index 67bdca2fe..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/util_lib/Sources/util.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* util.h */
-
-#ifndef UTIL_H_
-#define UTIL_H_
-
-int sdcard_open(MQX_FILE_PTR *com_handle, MQX_FILE_PTR *sdcard_handle,
- MQX_FILE_PTR *partman_handle, MQX_FILE_PTR *filesystem_handle,
- char *partman_name, char *filesystem_name);
-
-int sdcard_close(MQX_FILE_PTR *sdcard_handle, MQX_FILE_PTR *partman_handle,
- MQX_FILE_PTR *filesystem_handle,
- char *partman_name, char *filesystem_name);
-
-#endif /* UTIL_H_ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/.cproject b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/.cproject
deleted file mode 100644
index d110e10ea..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/.cproject
+++ /dev/null
@@ -1,698 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?fileVersion 4.0.0?>
-
-<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
- <storageModule moduleId="org.eclipse.cdt.core.settings">
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_DDRData_Debug">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactName="wolfcrypt_benchmark" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildReferences="true" buildReferencingConfigurations="false" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_DDRData_Debug" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="" produceBuildErrorsWithMissingReferences="true">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.2073798950" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.944664726" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.2001334203" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi.378842296" name="Float ABI" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.abi.softfp" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit.352096883" name="FPU Type" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
- <targetPlatform binaryParser="org.eclipse.cdt.core.GNU_ELF" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.1695073226" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_DDRData_Debug" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.1635499622" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildWorkspaceOn="true" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.225074258" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.178221621" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def.1935380268" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="FREESCALE_MQX"/>
- <listOptionValue builtIn="false" value="BENCH_EMBEDDED"/>
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn.1018090779" name="Inhibit all warnings (-w)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1885700653" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.421594858" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1099493406" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.most" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.1750148454" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.196872720" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.821674852" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -fno-strict-aliasing -Wno-missing-braces -Wno-switch -Wno-unused-value -Wno-unused-variable -Wno-unused-but-set-variable -Wno-pointer-to-int-cast -Wno-unused-function -Wno-unused-label -Wno-char-subscripts -Wno-int-to-pointer-cast " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.1735252853" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.1706134705" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.1851847575" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="BENCH_EMBEDDED"/>
- <listOptionValue builtIn="false" value="FREESCALE_MQX"/>
- <listOptionValue builtIn="false" value="__VFPV4__=1"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc.180260131" name="Do not search system directories (-nostdinc)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1096688444" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.1435131260" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.719090893" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.1197915696" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; -Xlinker --start-group ${INPUTS} -Xlinker --end-group ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.891244336" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1741367061" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="&quot;gcc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;stdc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;rt&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;supc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c&quot;"/>
- <listOptionValue builtIn="false" value="wolfssl"/>
- <listOptionValue builtIn="false" value="util_lib"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.1799569542" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/arm-none-eabi/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\wolfssl\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.1678404828" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.404568634" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value=" -Xlinker -z -Xlinker muldefs -Xlinker -static " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.107849556" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.1523868061" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1508779635" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1906952899" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_sramdata.ld" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.775690823" name="Link Order" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder" valueType="stringList">
- <listOptionValue builtIn="false" value="Sources/main.c"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="Sources/wolfcrypt_benchmark/benchmark.c"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs.1249833391" name="Do not use default libraries (-nodefaultlibs)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs.109827579" name="No startup or default libs (-nostdlib)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref.1579920448" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled.162363892" name="Customize linker input order:" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled" value="false" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.578803050" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1630992862" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref.363665770" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.1901040884" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.712336871" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.270270493" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1938127368" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.1198868158" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.2051623880" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.1062136201" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1325647418" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.328701376" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.1358790038" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.443165878" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.1018826076" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/mass_erase_kinetis.tcl|Debugger/K70FN1M0.mem" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_DDRData_Release">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactName="wolfcrypt_benchmark" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_DDRData_Release" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.992920808" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.183408450" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi.1595622658" name="Float ABI" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.abi.softfp" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit.2006460224" name="FPU Type" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.509418092" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <targetPlatform id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.9855938" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_DDRData_Release" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.567642107" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildWorkspaceOn="true" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.394252372" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.1859625790" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def.882561101" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="FREESCALE_MQX"/>
- <listOptionValue builtIn="false" value="BENCH_EMBEDDED"/>
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn.287476202" name="Inhibit all warnings (-w)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1103549433" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.882229545" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1895651269" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.most" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.946591059" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.1042400188" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.407735554" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.1589679638" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -fno-strict-aliasing -Wno-missing-braces -Wno-switch -Wno-unused-value -Wno-unused-variable -Wno-unused-but-set-variable -Wno-pointer-to-int-cast -Wno-unused-function -Wno-unused-label -Wno-char-subscripts -Wno-int-to-pointer-cast " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.1079204418" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.1299537463" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="BENCH_EMBEDDED"/>
- <listOptionValue builtIn="false" value="FREESCALE_MQX"/>
- <listOptionValue builtIn="false" value="__VFPV4__=1"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc.1664794403" name="Do not search system directories (-nostdinc)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1320581762" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.1249471995" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.388132419" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.871123639" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; -Xlinker --start-group ${INPUTS} -Xlinker --end-group ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.1197585275" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1147139900" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="&quot;gcc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;stdc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;rt&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;supc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c&quot;"/>
- <listOptionValue builtIn="false" value="wolfssl"/>
- <listOptionValue builtIn="false" value="util_lib"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.940903300" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/arm-none-eabi/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\wolfssl\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.1389344626" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.1398486689" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value=" -Xlinker -z -Xlinker muldefs -Xlinker -static " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.1464686164" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.1435405486" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1625292164" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.496752186" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_sramdata.ld" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.670967758" name="Link Order" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder" valueType="stringList">
- <listOptionValue builtIn="false" value="Sources/main.c"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="Sources/wolfcrypt_benchmark/benchmark.c"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs.334893892" name="Do not use default libraries (-nodefaultlibs)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs.1518299900" name="No startup or default libs (-nostdlib)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref.1025578627" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled.737474682" name="Customize linker input order:" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled" value="false" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.159626245" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.566792581" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref.817894294" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.1047291857" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.1178575354" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.1098268302" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.14310948" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.744373806" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.742527773" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.842457972" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.999283618" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.1178275553" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.884479400" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.190063736" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.1460825174" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/mass_erase_kinetis.tcl|Debugger/K70FN1M0.mem" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_SramData_Debug">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactName="wolfcrypt_benchmark" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildReferences="true" buildReferencingConfigurations="false" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_SramData_Debug" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="" produceBuildErrorsWithMissingReferences="true">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.976343888" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.1791314680" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.62293834" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.toolchain.sharedoption.librarian.279422699" name="Enable automatic library configurations" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.toolchain.sharedoption.librarian" value="false" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi.575448263" name="Float ABI" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.abi.softfp" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit.929092695" name="FPU Type" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
- <targetPlatform id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.558843418" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_SramData_Debug" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.927768878" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildOn="true" parallelBuildWorkspaceOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1318968617" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.3388065" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def.410750241" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="FREESCALE_MQX"/>
- <listOptionValue builtIn="false" value="BENCH_EMBEDDED"/>
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn.644603631" name="Inhibit all warnings (-w)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.159133944" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.796575084" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1355083605" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.most" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.1367457681" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.72835193" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.1461159830" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -fno-strict-aliasing -Wno-missing-braces -Wno-switch -Wno-unused-value -Wno-unused-variable -Wno-unused-but-set-variable -Wno-pointer-to-int-cast -Wno-unused-function -Wno-unused-label -Wno-char-subscripts -Wno-int-to-pointer-cast " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.234940653" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.1172764933" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.871447199" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="BENCH_EMBEDDED"/>
- <listOptionValue builtIn="false" value="FREESCALE_MQX"/>
- <listOptionValue builtIn="false" value="__VFPV4__=1"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc.720024275" name="Do not search system directories (-nostdinc)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.94337760" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.947278360" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.1715091513" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.537191017" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; -Xlinker --start-group ${INPUTS} -Xlinker --end-group ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.1761058144" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1877696792" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="rt"/>
- <listOptionValue builtIn="false" value="c"/>
- <listOptionValue builtIn="false" value="m"/>
- <listOptionValue builtIn="false" value="c++"/>
- <listOptionValue builtIn="false" value="stdc++"/>
- <listOptionValue builtIn="false" value="gcc"/>
- <listOptionValue builtIn="false" value="supc++"/>
- <listOptionValue builtIn="false" value="wolfssl"/>
- <listOptionValue builtIn="false" value="util_lib"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.330763302" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/arm-none-eabi/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\wolfssl\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.1069836785" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.374418889" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value=" -Xlinker -z -Xlinker muldefs -Xlinker -static " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.909946910" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.1803201089" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1983819046" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1060921895" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_sramdata.ld" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.752796656" name="Link Order" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder" valueType="stringList">
- <listOptionValue builtIn="false" value="Sources/main.c"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="Sources/wolfcrypt_benchmark/benchmark.c"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs.1397109882" name="Do not use default libraries (-nodefaultlibs)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs.817941097" name="No startup or default libs (-nostdlib)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled.2058727283" name="Customize linker input order:" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled" value="false" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref.634348827" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.strip.1760790600" name="Omit all symbol information (-s)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.strip" value="false" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.1062763285" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.458284566" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref.609895582" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.1094871156" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool command="arm-none-eabi-objdump" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.1031322022" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.357650786" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.450914262" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.831786096" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.1072791121" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.1073474137" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.102793723" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.1818142894" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.1870881451" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.1734303103" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.36234091" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Sources/mfs_init.c|Debugger/mass_erase_kinetis.tcl|Debugger/K70FN1M0.mem" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings">
- <externalSettings containerId="wolfssl" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
- <externalSettings containerId="util_lib" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
- </storageModule>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_SramData_Release">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactName="wolfcrypt_benchmark" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_SramData_Release" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.766408415" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.2049560136" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi.559007737" name="Float ABI" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.abi.softfp" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit.596052734" name="FPU Type" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.1448201792" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <targetPlatform id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.793025427" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_SramData_Release" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.2141868680" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildWorkspaceOn="true" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.276084757" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.36043354" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def.526352808" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="FREESCALE_MQX"/>
- <listOptionValue builtIn="false" value="BENCH_EMBEDDED"/>
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn.128435039" name="Inhibit all warnings (-w)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.73962146" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1657211710" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1993390967" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.most" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.716302220" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.863257063" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.1023288458" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.497385638" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -fno-strict-aliasing -Wno-missing-braces -Wno-switch -Wno-unused-value -Wno-unused-variable -Wno-unused-but-set-variable -Wno-pointer-to-int-cast -Wno-unused-function -Wno-unused-label -Wno-char-subscripts -Wno-int-to-pointer-cast " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.1999135559" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.1366388422" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="BENCH_EMBEDDED"/>
- <listOptionValue builtIn="false" value="FREESCALE_MQX"/>
- <listOptionValue builtIn="false" value="__VFPV4__=1"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc.1226585402" name="Do not search system directories (-nostdinc)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1773735736" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.910265076" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.431828146" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.1836114884" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; -Xlinker --start-group ${INPUTS} -Xlinker --end-group ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.738453011" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1921876762" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="&quot;gcc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;stdc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;rt&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;supc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c&quot;"/>
- <listOptionValue builtIn="false" value="wolfssl"/>
- <listOptionValue builtIn="false" value="util_lib"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.2028362740" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/arm-none-eabi/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\wolfssl\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.253845966" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.1185948342" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value=" -Xlinker -z -Xlinker muldefs -Xlinker -static " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.530533704" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.1845241542" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1473289577" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1678123607" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_sramdata.ld" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.619064948" name="Link Order" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder" valueType="stringList">
- <listOptionValue builtIn="false" value="Sources/main.c"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="Sources/wolfcrypt_benchmark/benchmark.c"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs.279409181" name="Do not use default libraries (-nodefaultlibs)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs.1549369013" name="No startup or default libs (-nostdlib)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref.181802704" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled.903274514" name="Customize linker input order:" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled" value="false" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.215277470" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1026539483" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref.638837762" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.1058862870" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.1734987363" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.574066521" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1735600116" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.963111015" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.615636330" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.1469651490" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.42098179" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.829959471" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.82208385" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.231926030" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.369904630" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/mass_erase_kinetis.tcl|Debugger/K70FN1M0.mem" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <project id="wolfcrypt_benchmark.org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.1324745606" name="ARM Cross Target Application" projectType="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf"/>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.pathentry"/>
- <storageModule moduleId="refreshScope" versionNumber="2">
- <configuration configurationName="twrk70f120m_Int_Flash_SramData_Debug">
- <resource resourceType="PROJECT" workspacePath="/wolfcrypt_benchmark"/>
- </configuration>
- <configuration configurationName="twrk70f120m_Int_Flash_DDRData_Debug">
- <resource resourceType="PROJECT" workspacePath="/wolfcrypt_benchmark"/>
- </configuration>
- <configuration configurationName="twrk70f120m_Int_Flash_DDRData_Release">
- <resource resourceType="PROJECT" workspacePath="/wolfcrypt_benchmark"/>
- </configuration>
- <configuration configurationName="twrk70f120m_Int_Flash_SramData_Release">
- <resource resourceType="PROJECT" workspacePath="/wolfcrypt_benchmark"/>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
- <storageModule moduleId="scannerConfiguration">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.225074258;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1885700653">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1318968617;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.159133944">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.882229545;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1320581762">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.421594858;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1096688444">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.394252372;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1103549433">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.796575084;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.94337760">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.276084757;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.73962146">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1657211710;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1773735736">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- </storageModule>
-</cproject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/.project b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/.project
deleted file mode 100644
index 082bb8973..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/.project
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>wolfcrypt_benchmark</name>
- <comment></comment>
- <projects>
- <project location="PARENT-1-PROJECT_LOC/wolfssl">
-wolfssl </project>
- <project location="PARENT-1-PROJECT_LOC/util_lib">
-util_lib </project>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.cdt.core.cnature</nature>
- <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
- <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
- </natures>
- <linkedResources>
- <link>
- <name>Sources/wolfcrypt_benchmark</name>
- <type>2</type>
- <locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/benchmark</locationURI>
- </link>
- </linkedResources>
- <variableList>
- <variable>
- <name>MQX_ROOT_DIR</name>
- <value>file:/C:/Freescale/Freescale_MQX_4_1</value>
- </variable>
- </variableList>
-</projectDescription>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Debugger/K70FN1M0.mem b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Debugger/K70FN1M0.mem
deleted file mode 100644
index 4a7c6198d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Debugger/K70FN1M0.mem
+++ /dev/null
@@ -1,43 +0,0 @@
-// Memory Configuration File
-//
-// Description:
-// A memory configuration file contains commands that define the legally accessible
-// areas of memory for your specific board. Useful for example when the debugger
-// tries to display the content of a "char *" variable, that has not yet been initialized.
-// In this case the debugger may try to read from a bogus address, which could cause a
-// bus error.
-//
-// Board:
-// Kinetis K70FN1M0
-//
-// Reference:
-// -
-
-
-// All reserved ranges read back 0xBABA...
-reservedchar 0xBA
-
-usederivative "MK70F15"
-
-// Memory Map:
-// ----------------------------------------------------------------------
-
-range 0x00000000 0x000FFFFF 4 ReadWrite // 1024KB Code Flash
-reserved 0x00100000 0x13FFFFFF
-range 0x14000000 0x14003FFF 4 ReadWrite // 16KB Programming acceleration RAM
-reserved 0x14004000 0x1FFEFFFF
-range 0x1FFF0000 0x1FFFFFFF 4 ReadWrite // 64KB On chip SRAM (TCML)
-range 0x20000000 0x2000FFFF 4 ReadWrite // 64KB On chip SRAM (TCMU)
-reserved 0x20010000 0x21FFFFFF
-range 0x22000000 0x221FFFFF 4 ReadWrite // Aliased to TCMU SRAM bitband
-reserved 0x22200000 0x3FFFFFFF
-reserved 0x60000000 0x6FFFFFFF // Flexbus for external memory
-range 0x70000000 0x7FFFFFFF 4 ReadWrite // DRAM Controller - Write-back
-range 0x80000000 0x8FFFFFFF 4 ReadWrite // DRAM Controller - Write-through
-reserved 0x90000000 0xDFFFFFFF // Flexbus for external memory
-reserved 0xE0100000 0xFFFFFFFF
-
-// Comment the following line for NFC-projects
-reserved 0x400A8000 0x400ABEFF
-// Uncomment the following line for NFC-projects
-//range 0x400A8000 0x400ABEFF 4 ReadWrite
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Debugger/init_kinetis.tcl b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Debugger/init_kinetis.tcl
deleted file mode 100644
index 467b8ff9f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Debugger/init_kinetis.tcl
+++ /dev/null
@@ -1,71 +0,0 @@
-# this method initializes debug modules which are not affected by software reset
-# register names should be referenced including the register group name to improve performance
-
-proc init_debug_modules {} {
- # initialize LR to avoid invalid stack after reset
- reg "User\\/System Mode Registers/LR" = 0xFFFFFFFF
-
- # clear DWT function registers
- reg "Core Debug Registers/DEMCR" = 0x1000001
- reg "Data Watchpoint and Trace Unit Registers/DWT_FUNCTION0" = 0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_FUNCTION1" = 0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_FUNCTION2" = 0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_FUNCTION3" = 0x0
- # clear FPB comparators
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP0" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP1" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP2" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP3" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP4" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP5" = 0x0
-}
-
-proc init_trace_modules {} {
- # clear DWT registers
- reg "Data Watchpoint and Trace Unit Registers/DWT_CTRL" =0x40000000
- reg "Data Watchpoint and Trace Unit Registers/DWT_CYCCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_CPICNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_EXCCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_SLEEPCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_LSUCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_FOLDCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_COMP0" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_COMP1" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_COMP2" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_COMP3" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_MASK0" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_MASK1" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_MASK2" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_MASK3" =0x0
- # clear ITM registers
- reg "Instrumentation Trace Macrocell Registers/ITM_LAR" =0xc5acce55
- reg "Instrumentation Trace Macrocell Registers/ITM_TER" =0x0
- reg "Instrumentation Trace Macrocell Registers/ITM_TPR" =0x0
- reg "Instrumentation Trace Macrocell Registers/ITM_TCR" =0x0
- reg "Instrumentation Trace Macrocell Registers/ITM_LAR" =0x1
- # reset Funnel registers
- reg "Embedded Trace Funnel Registers/ETF_FCR" =0x300
- # clear MCM registers
- reg "Core Platform Miscellaneous Control Module (MCM) Registers/MCM_ETBCC" =0x0
- reg "Core Platform Miscellaneous Control Module (MCM) Registers/MCM_ETBRL" =0x0
- # set SCB_VTOR register for RAM
- reg "System Control Registers/SCB_VTOR" =0x20000000
-}
-
-proc envsetup {} {
- # Environment Setup
- radix x
- config hexprefix 0x
- config MemIdentifier p
- config MemWidth 32
- config MemAccess 32
- config MemSwap off
-}
-
-#-------------------------------------------------------------------------------
-# Main
-#-------------------------------------------------------------------------------
-
- envsetup
- init_debug_modules
- init_trace_modules
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Debugger/mass_erase_kinetis.tcl b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Debugger/mass_erase_kinetis.tcl
deleted file mode 100644
index 2d8b84054..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Debugger/mass_erase_kinetis.tcl
+++ /dev/null
@@ -1,31 +0,0 @@
-# This script performs the mass erase operation for Kinetis targets
-
-# Command mass erase with system reset and core reset
-set mdmapControl [cmdwin::reg MDMAP_C -np]
-set mdmapControl [expr $mdmapControl | 0x19]
-cmdwin::reg MDMAP_C = $mdmapControl
-
-# Release system reset while still holding core reset
-set mdmapControl [expr $mdmapControl & 0xFFFFFFF7]
-cmdwin::reg MDMAP_C = $mdmapControl
-
-# Wait for the mass erase operation to complete
-set done 0
-for {set i 0} {$i < 10} {incr i} {
- refresh
- set mdmapControl [cmdwin::reg MDMAP_C -np]
- if {($mdmapControl & 1) == 0} {
- set done 1
- break;
- }
- wait 50
-}
-
-# Release the core reset
-set mdmapControl [expr $mdmapControl & 0xFFFFFFEF]
-cmdwin::reg MDMAP_C = $mdmapControl
-if {$done} {
- puts "OK: Mass erase succeeded"
-} else {
- puts "Error: Timeout"
-} \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/ReferencedRSESystems.xml b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/ReferencedRSESystems.xml
deleted file mode 100644
index 6d9f8f799..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/ReferencedRSESystems.xml
+++ /dev/null
@@ -1,296 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- This file stores a copy of all RSE Systems referenced by the project
-so the systems can be automatically recreated when the project is imported in a new workspace.
-This file is automatically generated and updated by the Eclipse IDE.-->
-<APSC_Memento>
-<host>
-<properties>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.proj.wolfcrypt_benchmark" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.proj.wolfcrypt_benchmark"/>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<property key="propertySet.[cw.dbg.conn].rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600"/>
-<property key="propertySet.[cw.dbg.ct.bareboard.gdi].logData" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryTimeout" value="20"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryWithTimeoutOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].TerminateConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].retryPromptUserActionOn" value="true"/>
-<property key="propertySet.[cw.dbg.ct].Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink Target"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableHSSTIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableNetworkIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableSerialIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableStopTransferIOModelConfig" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].ethernetController" value="UEC1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].executeReset" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkDebuggerAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkGateway" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkMACAddress" value="**-**-**-**-**-**"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkNetMask" value="255.255.255.255"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkTargetAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkUDPPort" value="1234"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].noIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].runOutOfReset" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].targetIsPalladium" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useInitFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useMemoryConfigFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkGateway" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkMACAddress" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkUDPPort" value="false"/>
-<property key="propertySet.[cw.dbg.main].systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.proj.wolfcrypt_benchmark" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.proj.wolfcrypt_benchmark"/>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<property key="propertySet.[cw.dbg.conn].rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard.gdi].logData" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryTimeout" value="20"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryWithTimeoutOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].TerminateConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].retryPromptUserActionOn" value="true"/>
-<property key="propertySet.[cw.dbg.ct].Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.1"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink Target"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableHSSTIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableNetworkIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableSerialIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableStopTransferIOModelConfig" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].ethernetController" value="UEC1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].executeReset" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkDebuggerAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkGateway" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkMACAddress" value="**-**-**-**-**-**"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkNetMask" value="255.255.255.255"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkTargetAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkUDPPort" value="1234"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].noIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].runOutOfReset" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].targetIsPalladium" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useInitFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useMemoryConfigFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkGateway" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkMACAddress" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkUDPPort" value="false"/>
-<property key="propertySet.[cw.dbg.main].systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.1"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.proj.wolfcrypt_benchmark" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.proj.wolfcrypt_benchmark"/>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.proj.wolfcrypt_benchmark" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.proj.wolfcrypt_benchmark"/>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.freescale.mcu.debug.connections.jlink.arm."/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.SimulatorConnectionAttributeBase" value=""/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.CommandLineArgs" value=""/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.ConfigFile" value=""/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.Debug port interface" value="JTAG"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.Delay after reset (ms)" value="0"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD fixed speed (Khz)" value="4000"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD speed" value="Fixed"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.Library" value="arm_jlink_gdi"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.USB device" value="0"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.names_of_user_added_attributes" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<property key="propertySet.[cw.dbg.conn].rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.2"/>
-<property key="propertySet.[cw.dbg.ct.bareboard.gdi].logData" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryTimeout" value="20"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryWithTimeoutOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].TerminateConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].retryPromptUserActionOn" value="true"/>
-<property key="propertySet.[cw.dbg.ct].Connection Type" value="com.freescale.mcu.debug.connections.jlink.arm"/>
-<property key="propertySet.[cw.dbg.main].templateId" value="None"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.2"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1410292099859"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink Target"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableHSSTIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableNetworkIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableSerialIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableStopTransferIOModelConfig" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].ethernetController" value="UEC1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].executeReset" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkDebuggerAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkGateway" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkMACAddress" value="**-**-**-**-**-**"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkNetMask" value="255.255.255.255"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkTargetAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkUDPPort" value="1234"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].noIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].runOutOfReset" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].targetIsPalladium" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useInitFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useMemoryConfigFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkGateway" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkMACAddress" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkUDPPort" value="false"/>
-<property key="propertySet.[cw.dbg.main].systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.2"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.proj.wolfcrypt_benchmark" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.proj.wolfcrypt_benchmark"/>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<property key="propertySet.[cw.dbg.conn].rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.3"/>
-<property key="propertySet.[cw.dbg.ct.bareboard.gdi].logData" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryTimeout" value="20"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryWithTimeoutOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].TerminateConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].retryPromptUserActionOn" value="true"/>
-<property key="propertySet.[cw.dbg.ct].Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.3"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink Target"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableHSSTIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableNetworkIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableSerialIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableStopTransferIOModelConfig" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].ethernetController" value="UEC1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].executeReset" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkDebuggerAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkGateway" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkMACAddress" value="**-**-**-**-**-**"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkNetMask" value="255.255.255.255"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkTargetAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkUDPPort" value="1234"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].noIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].runOutOfReset" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].targetIsPalladium" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useInitFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useMemoryConfigFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkGateway" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkMACAddress" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkUDPPort" value="false"/>
-<property key="propertySet.[cw.dbg.main].systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.3"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-</APSC_Memento>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Sources/include.am b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Sources/include.am
deleted file mode 100644
index fb4221836..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Sources/include.am
+++ /dev/null
@@ -1,22 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- mqx/wolfcrypt_benchmark/.cproject \
- mqx/wolfcrypt_benchmark/.project \
- mqx/wolfcrypt_benchmark/Debugger/K70FN1M0.mem \
- mqx/wolfcrypt_benchmark/Debugger/init_kinetis.tcl \
- mqx/wolfcrypt_benchmark/Debugger/mass_erase_kinetis.tcl \
- mqx/wolfcrypt_benchmark/ReferencedRSESystems.xml \
- mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch \
- mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch \
- mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink \
- mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch \
- mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch \
- mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
-
-EXTRA_DIST += \
- mqx/wolfcrypt_benchmark/Sources/main.c \
- mqx/wolfcrypt_benchmark/Sources/main.h
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Sources/main.c b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Sources/main.c
deleted file mode 100644
index 683463039..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Sources/main.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* main.c */
-
-#include "main.h"
-
-/* SD card open/close utility functions */
-#include "util.h"
-
-#if !BSPCFG_ENABLE_IO_SUBSYSTEM
-#error This application requires BSPCFG_ENABLE_IO_SUBSYSTEM defined \
- non-zero in user_config.h. Please recompile BSP with this option.
-#endif
-
-#ifndef BSP_DEFAULT_IO_CHANNEL_DEFINED
-#error This application requires BSP_DEFAULT_IO_CHANNEL to be not NULL. \
- Please set corresponding BSPCFG_ENABLE_TTYx to non-zero in \
- user_config.h and recompile BSP with this option.
-#endif
-
-TASK_TEMPLATE_STRUCT MQX_template_list[] =
-{
- /* Task number, Entry point, Stack, Pri, String, Auto? */
- {MAIN_TASK, Main_task, 30000, 9, "main", MQX_AUTO_START_TASK},
- {0, 0, 0, 0, 0, 0, }
-};
-
-#if defined BSP_SDCARD_ESDHC_CHANNEL
- #if ! BSPCFG_ENABLE_ESDHC
- #error This application requires BSPCFG_ENABLE_ESDHC defined \
- non-zero in user_config.h. Please recompile libraries with \
- this option.
- #endif
-
-#elif defined BSP_SDCARD_SDHC_CHANNEL
- #if ! BSPCFG_ENABLE_SDHC
- #error This application requires BSPCFG_ENABLE_SDHC defined \
- non-zero in user_config.h. Please recompile libraries with \
- this option.
- #endif
-#endif
-
-#if defined (BSP_SDCARD_SPI_CHANNEL)
- #define SDCARD_COM_CHANNEL BSP_SDCARD_SPI_CHANNEL
-#elif defined (BSP_SDCARD_ESDHC_CHANNEL)
- #define SDCARD_COM_CHANNEL BSP_SDCARD_ESDHC_CHANNEL
-#elif defined (BSP_SDCARD_SDHC_CHANNEL)
- #define SDCARD_COM_CHANNEL BSP_SDCARD_SDHC_CHANNEL
-#else
- #error "SDCARD low level communication device not defined!"
-#endif
-
-/* func_args from test.h */
-typedef struct func_args {
- int argc;
- char** argv;
- int return_code;
-} func_args;
-
-/*TASK*-----------------------------------------------------------------
- * Function Name : Main_task
- * Comments :
- * This task opens the SD card device and runs the
- * wolfCrypt benchmark functions located in benchmark.c.
- *END------------------------------------------------------------------*/
-
-void Main_task(uint32_t initial_data)
-{
- int ret = 0;
- func_args args;
- char filesystem_name[] = "a:";
- char partman_name[] = "pm:";
- MQX_FILE_PTR com_handle, sdcard_handle, filesystem_handle, partman_handle;
-
- ret = sdcard_open(&com_handle, &sdcard_handle, &partman_handle,
- &filesystem_handle, partman_name, filesystem_name);
- if (ret != 0) {
- printf("error: sdcard_open(), ret = %d\n", ret);
- _mqx_exit(1);
- }
- printf("SD card installed to %s\n", filesystem_name);
-
- benchmark_test(&args);
-
- ret = sdcard_close(&sdcard_handle, &partman_handle,
- &filesystem_handle, partman_name, filesystem_name);
- if (ret != 0) {
- printf("error: sdcard_close(), ret = %d\n", ret);
- _mqx_exit(1);
- }
- printf("SD card uninstalled.\n");
-
- _mqx_exit(0);
-
-}
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Sources/main.h b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Sources/main.h
deleted file mode 100644
index 23ba07231..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/Sources/main.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* main.h */
-
-#ifndef __main_h_
-#define __main_h_
-
-#include <mqx.h>
-#include <bsp.h>
-#include <fio.h>
-#include <mfs.h>
-#include <sdcard.h>
-#include <spi.h>
-#include <part_mgr.h>
-
-#define MAIN_TASK 1
-
-extern void Main_task (uint32_t);
-int benchmark_test(void* args);
-
-#endif /* __main_h_ */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch
deleted file mode 100644
index 03b293770..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch
+++ /dev/null
@@ -1,133 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_DDRData_Debug/wolfcrypt_benchmark.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfcrypt_benchmark"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfcrypt_benchmark"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch
deleted file mode 100644
index beda4b284..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch
+++ /dev/null
@@ -1,133 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.1"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_DDRData_Release/wolfcrypt_benchmark.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfcrypt_benchmark"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfcrypt_benchmark"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink
deleted file mode 100644
index de1b137f3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink
+++ /dev/null
@@ -1,34 +0,0 @@
-[BREAKPOINTS]
-ShowInfoWin = 1
-EnableFlashBP = 2
-BPDuringExecution = 0
-[CFI]
-CFISize = 0x00
-CFIAddr = 0x00
-[CPU]
-OverrideMemMap = 0
-AllowSimulation = 1
-ScriptFile=""
-[FLASH]
-CacheExcludeSize = 0x00
-CacheExcludeAddr = 0x00
-MinNumBytesFlashDL = 0
-SkipProgOnCRCMatch = 1
-VerifyDownload = 1
-AllowCaching = 1
-EnableFlashDL = 2
-Override = 0
-Device="UNSPECIFIED"
-[GENERAL]
-WorkRAMSize = 0x00
-WorkRAMAddr = 0x00
-RAMUsageLimit = 0x00
-[SWO]
-SWOLogFile=""
-[MEM]
-RdOverrideOrMask = 0x00
-RdOverrideAndMask = 0xFFFFFFFF
-RdOverrideAddr = 0xFFFFFFFF
-WrOverrideOrMask = 0x00
-WrOverrideAndMask = 0xFFFFFFFF
-WrOverrideAddr = 0xFFFFFFFF
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch
deleted file mode 100644
index 4b4a78bd1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch
+++ /dev/null
@@ -1,182 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.disable_interrupts_during_stepping" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.altLoadAddr" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.enableAltLoadAddr" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<listAttribute key="com.freescale.cdt.debug.cw.Debug"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.ExecuteTasks" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.StandardDownload" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskInitialLaunches"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskNames"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskSuccessiveRuns"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskTypes"/>
-<listAttribute key="com.freescale.cdt.debug.cw.ExecutablePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePC" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtProgramEntryPoint" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.InitializePCAtSymbol" value="main"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtUserSpecified" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.LaunchMode" value="DOWNLOAD"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtUserSpecified" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemoteDownload"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemotePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.ResumeProgram" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.SMPCores"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.SYNC_WITH_ENCL_PROJ" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.UseApplication" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.freescale.mcu.debug.connections.jlink.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.freescale.mcu.debug.connections.jlink.arm."/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.SimulatorConnectionAttributeBase" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.2"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeInitScripts" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeResetSequence" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.skipSystemInitialization" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.CommandLineArgs" value=""/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.ConfigFile" value=""/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Debug port interface" value="JTAG"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Delay after reset (ms)" value="0"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD fixed speed (Khz)" value="4000"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD speed" value="Fixed"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Library" value="arm_jlink_gdi"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.USB device" value="0"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.names_of_user_added_attributes" value=""/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.sa.mcu.launch.ENABLE_ANALYSIS" value="false"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;contentList/&gt;"/>
-<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;globalVariableList/&gt;&#13;&#10;"/>
-<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList/&gt;&#13;&#10;"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_SramData_Debug/wolfcrypt_benchmark.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfcrypt_benchmark"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006"/>
-<intAttribute key="org.eclipse.cdt.launch.SET_REGULAR_BREAKPOINT_TYPE_AS" value="0"/>
-<booleanAttribute key="org.eclipse.cdt.launch.USE_SET_REGULAR_BREAKPOINT_TYPE_AS" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfcrypt_benchmark"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SERVER_SOCKET" value="false"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET" value="false"/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_HOST" value=""/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_PORT" value=""/>
-<stringAttribute key="process_factory_id" value="com.freescale.cdt.debug.cw.core.ProcessFactoryID"/>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch
deleted file mode 100644
index 4b4a78bd1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch
+++ /dev/null
@@ -1,182 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.disable_interrupts_during_stepping" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.altLoadAddr" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.enableAltLoadAddr" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<listAttribute key="com.freescale.cdt.debug.cw.Debug"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.ExecuteTasks" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.StandardDownload" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskInitialLaunches"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskNames"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskSuccessiveRuns"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskTypes"/>
-<listAttribute key="com.freescale.cdt.debug.cw.ExecutablePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePC" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtProgramEntryPoint" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.InitializePCAtSymbol" value="main"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtUserSpecified" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.LaunchMode" value="DOWNLOAD"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtUserSpecified" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemoteDownload"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemotePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.ResumeProgram" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.SMPCores"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.SYNC_WITH_ENCL_PROJ" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.UseApplication" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.freescale.mcu.debug.connections.jlink.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.freescale.mcu.debug.connections.jlink.arm."/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.SimulatorConnectionAttributeBase" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.2"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeInitScripts" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeResetSequence" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.skipSystemInitialization" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.CommandLineArgs" value=""/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.ConfigFile" value=""/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Debug port interface" value="JTAG"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Delay after reset (ms)" value="0"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD fixed speed (Khz)" value="4000"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD speed" value="Fixed"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Library" value="arm_jlink_gdi"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.USB device" value="0"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.names_of_user_added_attributes" value=""/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.sa.mcu.launch.ENABLE_ANALYSIS" value="false"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;contentList/&gt;"/>
-<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;globalVariableList/&gt;&#13;&#10;"/>
-<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList/&gt;&#13;&#10;"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_SramData_Debug/wolfcrypt_benchmark.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfcrypt_benchmark"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006"/>
-<intAttribute key="org.eclipse.cdt.launch.SET_REGULAR_BREAKPOINT_TYPE_AS" value="0"/>
-<booleanAttribute key="org.eclipse.cdt.launch.USE_SET_REGULAR_BREAKPOINT_TYPE_AS" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfcrypt_benchmark"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SERVER_SOCKET" value="false"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET" value="false"/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_HOST" value=""/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_PORT" value=""/>
-<stringAttribute key="process_factory_id" value="com.freescale.cdt.debug.cw.core.ProcessFactoryID"/>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
deleted file mode 100644
index f09268cc4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_benchmark/wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
+++ /dev/null
@@ -1,168 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.disable_interrupts_during_stepping" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.altLoadAddr" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.enableAltLoadAddr" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<listAttribute key="com.freescale.cdt.debug.cw.Debug"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.ExecuteTasks" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.StandardDownload" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskInitialLaunches"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskNames"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskSuccessiveRuns"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskTypes"/>
-<listAttribute key="com.freescale.cdt.debug.cw.ExecutablePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePC" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtProgramEntryPoint" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.InitializePCAtSymbol" value="main"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtUserSpecified" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.LaunchMode" value="DOWNLOAD"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtUserSpecified" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemoteDownload"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemotePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.ResumeProgram" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.SMPCores"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.SYNC_WITH_ENCL_PROJ" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.UseApplication" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.3"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeInitScripts" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeResetSequence" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.skipSystemInitialization" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.sa.mcu.launch.ENABLE_ANALYSIS" value="false"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_SramData_Release/wolfcrypt_benchmark.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfcrypt_benchmark"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619"/>
-<intAttribute key="org.eclipse.cdt.launch.SET_REGULAR_BREAKPOINT_TYPE_AS" value="0"/>
-<booleanAttribute key="org.eclipse.cdt.launch.USE_SET_REGULAR_BREAKPOINT_TYPE_AS" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfcrypt_benchmark"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SERVER_SOCKET" value="false"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET" value="false"/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_HOST" value=""/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_PORT" value=""/>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/.cproject b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/.cproject
deleted file mode 100644
index 6287ebbe5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/.cproject
+++ /dev/null
@@ -1,681 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?fileVersion 4.0.0?>
-
-<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
- <storageModule moduleId="org.eclipse.cdt.core.settings">
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_DDRData_Debug">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactName="wolfcrypt_test" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildReferences="true" buildReferencingConfigurations="false" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_DDRData_Debug" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="" produceBuildErrorsWithMissingReferences="true">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.2073798950" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.944664726" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.2001334203" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi.378842296" name="Float ABI" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.abi.softfp" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit.352096883" name="FPU Type" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
- <targetPlatform binaryParser="org.eclipse.cdt.core.GNU_ELF" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.1695073226" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_DDRData_Debug" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.1635499622" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildWorkspaceOn="true" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.225074258" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.178221621" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def.1935380268" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn.1018090779" name="Inhibit all warnings (-w)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1885700653" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.421594858" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1099493406" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.1750148454" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.196872720" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.821674852" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -fno-strict-aliasing -Wno-missing-braces -Wno-switch -Wno-unused-value -Wno-unused-variable -Wno-unused-but-set-variable -Wno-pointer-to-int-cast -Wno-unused-function -Wno-unused-label -Wno-char-subscripts -Wno-int-to-pointer-cast " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.1735252853" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.1706134705" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.1851847575" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="__VFPV4__=1"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc.180260131" name="Do not search system directories (-nostdinc)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1096688444" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.1435131260" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.719090893" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.1197915696" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; -Xlinker --start-group ${INPUTS} -Xlinker --end-group ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.891244336" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1741367061" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="&quot;gcc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;stdc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;rt&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;supc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c&quot;"/>
- <listOptionValue builtIn="false" value="wolfssl"/>
- <listOptionValue builtIn="false" value="util_lib"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.1799569542" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/arm-none-eabi/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\wolfssl\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.1678404828" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.404568634" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value=" -Xlinker -z -Xlinker muldefs -Xlinker -static " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.107849556" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.1523868061" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1508779635" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags" valueType="stringList"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1906952899" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_sramdata.ld" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.775690823" name="Link Order" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder" valueType="stringList">
- <listOptionValue builtIn="false" value="Sources/main.c"/>
- <listOptionValue builtIn="false" value="Sources/test/test.c"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs.1249833391" name="Do not use default libraries (-nodefaultlibs)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs.109827579" name="No startup or default libs (-nostdlib)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref.1579920448" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled.162363892" name="Customize linker input order:" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled" value="false" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.578803050" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1630992862" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref.363665770" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.1901040884" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.712336871" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.270270493" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1938127368" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.1198868158" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.2051623880" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.1062136201" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1325647418" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.328701376" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.1358790038" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.443165878" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.1018826076" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/K70FN1M0.mem|Debugger/mass_erase_kinetis.tcl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_DDRData_Release">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactName="wolfcrypt_test" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_DDRData_Release" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.992920808" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.183408450" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi.1595622658" name="Float ABI" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.abi.softfp" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit.2006460224" name="FPU Type" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.509418092" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <targetPlatform id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.9855938" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_DDRData_Release" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.567642107" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildWorkspaceOn="true" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.394252372" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.1859625790" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def.882561101" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn.287476202" name="Inhibit all warnings (-w)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1103549433" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.882229545" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1895651269" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.946591059" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.1042400188" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.407735554" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.1589679638" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -fno-strict-aliasing -Wno-missing-braces -Wno-switch -Wno-unused-value -Wno-unused-variable -Wno-unused-but-set-variable -Wno-pointer-to-int-cast -Wno-unused-function -Wno-unused-label -Wno-char-subscripts -Wno-int-to-pointer-cast " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.1079204418" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.1299537463" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="__VFPV4__=1"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc.1664794403" name="Do not search system directories (-nostdinc)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1320581762" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.1249471995" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.388132419" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.871123639" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; -Xlinker --start-group ${INPUTS} -Xlinker --end-group ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.1197585275" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1147139900" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="&quot;gcc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;stdc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;rt&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;supc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c&quot;"/>
- <listOptionValue builtIn="false" value="wolfssl"/>
- <listOptionValue builtIn="false" value="util_lib"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.940903300" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/arm-none-eabi/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\wolfssl\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.1389344626" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.1398486689" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value=" -Xlinker -z -Xlinker muldefs -Xlinker -static " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.1464686164" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.1435405486" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1625292164" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags" valueType="stringList"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.496752186" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_sramdata.ld" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.670967758" name="Link Order" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder" valueType="stringList">
- <listOptionValue builtIn="false" value="Sources/main.c"/>
- <listOptionValue builtIn="false" value="Sources/test/test.c"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs.334893892" name="Do not use default libraries (-nodefaultlibs)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs.1518299900" name="No startup or default libs (-nostdlib)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref.1025578627" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled.737474682" name="Customize linker input order:" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled" value="false" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.159626245" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.566792581" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref.817894294" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.1047291857" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.1178575354" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.1098268302" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.14310948" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.744373806" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.742527773" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.842457972" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.999283618" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.1178275553" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.884479400" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.190063736" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.1460825174" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/K70FN1M0.mem|Debugger/mass_erase_kinetis.tcl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_SramData_Debug">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactName="wolfcrypt_test" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildReferences="true" buildReferencingConfigurations="false" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_SramData_Debug" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="" produceBuildErrorsWithMissingReferences="true">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.976343888" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.1791314680" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.62293834" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.toolchain.sharedoption.librarian.279422699" name="Enable automatic library configurations" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.toolchain.sharedoption.librarian" value="false" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi.575448263" name="Float ABI" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.abi.softfp" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit.929092695" name="FPU Type" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
- <targetPlatform id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.558843418" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_SramData_Debug" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.927768878" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildOn="true" parallelBuildWorkspaceOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1318968617" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.3388065" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def.410750241" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn.644603631" name="Inhibit all warnings (-w)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.159133944" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.796575084" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1355083605" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.1367457681" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.72835193" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.1461159830" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -fno-strict-aliasing -Wno-missing-braces -Wno-switch -Wno-unused-value -Wno-unused-variable -Wno-unused-but-set-variable -Wno-pointer-to-int-cast -Wno-unused-function -Wno-unused-label -Wno-char-subscripts -Wno-int-to-pointer-cast " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.234940653" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.1172764933" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.871447199" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="__VFPV4__=1"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc.720024275" name="Do not search system directories (-nostdinc)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.94337760" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.947278360" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.1715091513" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.537191017" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; -Xlinker --start-group ${INPUTS} -Xlinker --end-group ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.1761058144" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1877696792" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="rt"/>
- <listOptionValue builtIn="false" value="c"/>
- <listOptionValue builtIn="false" value="m"/>
- <listOptionValue builtIn="false" value="c++"/>
- <listOptionValue builtIn="false" value="stdc++"/>
- <listOptionValue builtIn="false" value="gcc"/>
- <listOptionValue builtIn="false" value="supc++"/>
- <listOptionValue builtIn="false" value="wolfssl"/>
- <listOptionValue builtIn="false" value="util_lib"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.330763302" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/arm-none-eabi/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\wolfssl\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.1069836785" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.374418889" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value=" -Xlinker -z -Xlinker muldefs -Xlinker -static " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.909946910" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.1803201089" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1983819046" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1060921895" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_sramdata.ld" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.752796656" name="Link Order" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder" valueType="stringList">
- <listOptionValue builtIn="false" value="Sources/main.c"/>
- <listOptionValue builtIn="false" value="Sources/test/test.c"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs.1397109882" name="Do not use default libraries (-nodefaultlibs)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs.817941097" name="No startup or default libs (-nostdlib)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled.2058727283" name="Customize linker input order:" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled" value="false" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref.634348827" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.1062763285" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.458284566" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref.609895582" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.1094871156" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool command="arm-none-eabi-objdump" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.1031322022" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.357650786" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.450914262" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.831786096" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.1072791121" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.1073474137" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.102793723" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.1818142894" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.1870881451" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.1734303103" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.36234091" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Sources/mfs_init.c|Debugger/init_kinetis.tcl|Debugger/K70FN1M0.mem|Debugger/mass_erase_kinetis.tcl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings">
- <externalSettings containerId="wolfssl" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
- <externalSettings containerId="util_lib" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
- </storageModule>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_SramData_Release">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactName="wolfcrypt_test" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_SramData_Release" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.766408415" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.2049560136" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi.559007737" name="Float ABI" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.abi.softfp" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit.596052734" name="FPU Type" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.1448201792" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <targetPlatform id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.793025427" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_SramData_Release" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.2141868680" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildWorkspaceOn="true" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.276084757" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.36043354" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def.526352808" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn.128435039" name="Inhibit all warnings (-w)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.73962146" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1657211710" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1993390967" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.716302220" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.863257063" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.1023288458" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.497385638" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -fno-strict-aliasing -Wno-missing-braces -Wno-switch -Wno-unused-value -Wno-unused-variable -Wno-unused-but-set-variable -Wno-pointer-to-int-cast -Wno-unused-function -Wno-unused-label -Wno-char-subscripts -Wno-int-to-pointer-cast " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.1999135559" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.1366388422" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="NO_MAIN_DRIVER"/>
- <listOptionValue builtIn="false" value="__VFPV4__=1"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc.1226585402" name="Do not search system directories (-nostdinc)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1773735736" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.910265076" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.431828146" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.1836114884" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; -Xlinker --start-group ${INPUTS} -Xlinker --end-group ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.738453011" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1921876762" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="&quot;gcc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;stdc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;rt&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;supc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c&quot;"/>
- <listOptionValue builtIn="false" value="wolfssl"/>
- <listOptionValue builtIn="false" value="util_lib"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.2028362740" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/arm-none-eabi/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\wolfssl\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.253845966" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.1185948342" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value=" -Xlinker -z -Xlinker muldefs -Xlinker -static " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.530533704" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.1845241542" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1473289577" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags" valueType="stringList"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1678123607" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_sramdata.ld" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.619064948" name="Link Order" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder" valueType="stringList">
- <listOptionValue builtIn="false" value="Sources/main.c"/>
- <listOptionValue builtIn="false" value="Sources/test/test.c"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs.279409181" name="Do not use default libraries (-nodefaultlibs)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs.1549369013" name="No startup or default libs (-nostdlib)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref.181802704" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled.903274514" name="Customize linker input order:" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled" value="false" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.215277470" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1026539483" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref.638837762" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.1058862870" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.1734987363" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.574066521" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1735600116" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.963111015" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.615636330" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.1469651490" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.42098179" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.829959471" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.82208385" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.231926030" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.369904630" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/K70FN1M0.mem|Debugger/mass_erase_kinetis.tcl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <project id="wolfcrypt_test.org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.1324745606" name="ARM Cross Target Application" projectType="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf"/>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.pathentry"/>
- <storageModule moduleId="refreshScope" versionNumber="2">
- <configuration configurationName="twrk70f120m_Int_Flash_SramData_Debug">
- <resource resourceType="PROJECT" workspacePath="/wolfcrypt_test"/>
- </configuration>
- <configuration configurationName="twrk70f120m_Int_Flash_DDRData_Debug">
- <resource resourceType="PROJECT" workspacePath="/wolfcrypt_test"/>
- </configuration>
- <configuration configurationName="twrk70f120m_Int_Flash_DDRData_Release">
- <resource resourceType="PROJECT" workspacePath="/wolfcrypt_test"/>
- </configuration>
- <configuration configurationName="twrk70f120m_Int_Flash_SramData_Release">
- <resource resourceType="PROJECT" workspacePath="/wolfcrypt_test"/>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
- <storageModule moduleId="scannerConfiguration">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.225074258;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1885700653">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.421594858;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1096688444">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.882229545;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1320581762">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.276084757;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.73962146">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.796575084;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.94337760">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.394252372;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1103549433">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1318968617;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.159133944">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1657211710;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1773735736">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- </storageModule>
-</cproject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/.project b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/.project
deleted file mode 100644
index fab6252bd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/.project
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>wolfcrypt_test</name>
- <comment></comment>
- <projects>
- <project location="PARENT-1-PROJECT_LOC/wolfssl">
-wolfssl </project>
- <project location="PARENT-1-PROJECT_LOC/util_lib">
-util_lib </project>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.cdt.core.cnature</nature>
- <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
- <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
- </natures>
- <linkedResources>
- <link>
- <name>Sources/test</name>
- <type>2</type>
- <locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/test</locationURI>
- </link>
- </linkedResources>
- <variableList>
- <variable>
- <name>MQX_ROOT_DIR</name>
- <value>file:/C:/Freescale/Freescale_MQX_4_1</value>
- </variable>
- </variableList>
-</projectDescription>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Debugger/K70FN1M0.mem b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Debugger/K70FN1M0.mem
deleted file mode 100644
index 4a7c6198d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Debugger/K70FN1M0.mem
+++ /dev/null
@@ -1,43 +0,0 @@
-// Memory Configuration File
-//
-// Description:
-// A memory configuration file contains commands that define the legally accessible
-// areas of memory for your specific board. Useful for example when the debugger
-// tries to display the content of a "char *" variable, that has not yet been initialized.
-// In this case the debugger may try to read from a bogus address, which could cause a
-// bus error.
-//
-// Board:
-// Kinetis K70FN1M0
-//
-// Reference:
-// -
-
-
-// All reserved ranges read back 0xBABA...
-reservedchar 0xBA
-
-usederivative "MK70F15"
-
-// Memory Map:
-// ----------------------------------------------------------------------
-
-range 0x00000000 0x000FFFFF 4 ReadWrite // 1024KB Code Flash
-reserved 0x00100000 0x13FFFFFF
-range 0x14000000 0x14003FFF 4 ReadWrite // 16KB Programming acceleration RAM
-reserved 0x14004000 0x1FFEFFFF
-range 0x1FFF0000 0x1FFFFFFF 4 ReadWrite // 64KB On chip SRAM (TCML)
-range 0x20000000 0x2000FFFF 4 ReadWrite // 64KB On chip SRAM (TCMU)
-reserved 0x20010000 0x21FFFFFF
-range 0x22000000 0x221FFFFF 4 ReadWrite // Aliased to TCMU SRAM bitband
-reserved 0x22200000 0x3FFFFFFF
-reserved 0x60000000 0x6FFFFFFF // Flexbus for external memory
-range 0x70000000 0x7FFFFFFF 4 ReadWrite // DRAM Controller - Write-back
-range 0x80000000 0x8FFFFFFF 4 ReadWrite // DRAM Controller - Write-through
-reserved 0x90000000 0xDFFFFFFF // Flexbus for external memory
-reserved 0xE0100000 0xFFFFFFFF
-
-// Comment the following line for NFC-projects
-reserved 0x400A8000 0x400ABEFF
-// Uncomment the following line for NFC-projects
-//range 0x400A8000 0x400ABEFF 4 ReadWrite
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Debugger/init_kinetis.tcl b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Debugger/init_kinetis.tcl
deleted file mode 100644
index 467b8ff9f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Debugger/init_kinetis.tcl
+++ /dev/null
@@ -1,71 +0,0 @@
-# this method initializes debug modules which are not affected by software reset
-# register names should be referenced including the register group name to improve performance
-
-proc init_debug_modules {} {
- # initialize LR to avoid invalid stack after reset
- reg "User\\/System Mode Registers/LR" = 0xFFFFFFFF
-
- # clear DWT function registers
- reg "Core Debug Registers/DEMCR" = 0x1000001
- reg "Data Watchpoint and Trace Unit Registers/DWT_FUNCTION0" = 0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_FUNCTION1" = 0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_FUNCTION2" = 0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_FUNCTION3" = 0x0
- # clear FPB comparators
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP0" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP1" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP2" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP3" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP4" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP5" = 0x0
-}
-
-proc init_trace_modules {} {
- # clear DWT registers
- reg "Data Watchpoint and Trace Unit Registers/DWT_CTRL" =0x40000000
- reg "Data Watchpoint and Trace Unit Registers/DWT_CYCCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_CPICNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_EXCCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_SLEEPCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_LSUCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_FOLDCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_COMP0" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_COMP1" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_COMP2" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_COMP3" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_MASK0" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_MASK1" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_MASK2" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_MASK3" =0x0
- # clear ITM registers
- reg "Instrumentation Trace Macrocell Registers/ITM_LAR" =0xc5acce55
- reg "Instrumentation Trace Macrocell Registers/ITM_TER" =0x0
- reg "Instrumentation Trace Macrocell Registers/ITM_TPR" =0x0
- reg "Instrumentation Trace Macrocell Registers/ITM_TCR" =0x0
- reg "Instrumentation Trace Macrocell Registers/ITM_LAR" =0x1
- # reset Funnel registers
- reg "Embedded Trace Funnel Registers/ETF_FCR" =0x300
- # clear MCM registers
- reg "Core Platform Miscellaneous Control Module (MCM) Registers/MCM_ETBCC" =0x0
- reg "Core Platform Miscellaneous Control Module (MCM) Registers/MCM_ETBRL" =0x0
- # set SCB_VTOR register for RAM
- reg "System Control Registers/SCB_VTOR" =0x20000000
-}
-
-proc envsetup {} {
- # Environment Setup
- radix x
- config hexprefix 0x
- config MemIdentifier p
- config MemWidth 32
- config MemAccess 32
- config MemSwap off
-}
-
-#-------------------------------------------------------------------------------
-# Main
-#-------------------------------------------------------------------------------
-
- envsetup
- init_debug_modules
- init_trace_modules
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Debugger/mass_erase_kinetis.tcl b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Debugger/mass_erase_kinetis.tcl
deleted file mode 100644
index 2d8b84054..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Debugger/mass_erase_kinetis.tcl
+++ /dev/null
@@ -1,31 +0,0 @@
-# This script performs the mass erase operation for Kinetis targets
-
-# Command mass erase with system reset and core reset
-set mdmapControl [cmdwin::reg MDMAP_C -np]
-set mdmapControl [expr $mdmapControl | 0x19]
-cmdwin::reg MDMAP_C = $mdmapControl
-
-# Release system reset while still holding core reset
-set mdmapControl [expr $mdmapControl & 0xFFFFFFF7]
-cmdwin::reg MDMAP_C = $mdmapControl
-
-# Wait for the mass erase operation to complete
-set done 0
-for {set i 0} {$i < 10} {incr i} {
- refresh
- set mdmapControl [cmdwin::reg MDMAP_C -np]
- if {($mdmapControl & 1) == 0} {
- set done 1
- break;
- }
- wait 50
-}
-
-# Release the core reset
-set mdmapControl [expr $mdmapControl & 0xFFFFFFEF]
-cmdwin::reg MDMAP_C = $mdmapControl
-if {$done} {
- puts "OK: Mass erase succeeded"
-} else {
- puts "Error: Timeout"
-} \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/ReferencedRSESystems.xml b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/ReferencedRSESystems.xml
deleted file mode 100644
index ea3c502e9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/ReferencedRSESystems.xml
+++ /dev/null
@@ -1,296 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- This file stores a copy of all RSE Systems referenced by the project
-so the systems can be automatically recreated when the project is imported in a new workspace.
-This file is automatically generated and updated by the Eclipse IDE.-->
-<APSC_Memento>
-<host>
-<properties>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.proj.wolfcrypt_test" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.proj.wolfcrypt_test"/>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<property key="propertySet.[cw.dbg.conn].rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600"/>
-<property key="propertySet.[cw.dbg.ct.bareboard.gdi].logData" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryTimeout" value="20"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryWithTimeoutOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].TerminateConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].retryPromptUserActionOn" value="true"/>
-<property key="propertySet.[cw.dbg.ct].Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink Target"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableHSSTIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableNetworkIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableSerialIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableStopTransferIOModelConfig" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].ethernetController" value="UEC1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].executeReset" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkDebuggerAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkGateway" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkMACAddress" value="**-**-**-**-**-**"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkNetMask" value="255.255.255.255"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkTargetAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkUDPPort" value="1234"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].noIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].runOutOfReset" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].targetIsPalladium" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useInitFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useMemoryConfigFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkGateway" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkMACAddress" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkUDPPort" value="false"/>
-<property key="propertySet.[cw.dbg.main].systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.proj.wolfcrypt_test" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.proj.wolfcrypt_test"/>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<property key="propertySet.[cw.dbg.conn].rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard.gdi].logData" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryTimeout" value="20"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryWithTimeoutOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].TerminateConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].retryPromptUserActionOn" value="true"/>
-<property key="propertySet.[cw.dbg.ct].Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.1"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink Target"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableHSSTIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableNetworkIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableSerialIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableStopTransferIOModelConfig" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].ethernetController" value="UEC1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].executeReset" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkDebuggerAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkGateway" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkMACAddress" value="**-**-**-**-**-**"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkNetMask" value="255.255.255.255"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkTargetAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkUDPPort" value="1234"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].noIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].runOutOfReset" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].targetIsPalladium" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useInitFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useMemoryConfigFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkGateway" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkMACAddress" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkUDPPort" value="false"/>
-<property key="propertySet.[cw.dbg.main].systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.1"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.proj.wolfcrypt_test" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.proj.wolfcrypt_test"/>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.proj.wolfcrypt_test" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.proj.wolfcrypt_test"/>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.freescale.mcu.debug.connections.jlink.arm."/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.SimulatorConnectionAttributeBase" value=""/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.CommandLineArgs" value=""/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.ConfigFile" value=""/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.Debug port interface" value="JTAG"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.Delay after reset (ms)" value="0"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD fixed speed (Khz)" value="4000"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD speed" value="Fixed"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.Library" value="arm_jlink_gdi"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.USB device" value="0"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.names_of_user_added_attributes" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<property key="propertySet.[cw.dbg.conn].rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.2"/>
-<property key="propertySet.[cw.dbg.ct.bareboard.gdi].logData" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryTimeout" value="20"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryWithTimeoutOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].TerminateConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].retryPromptUserActionOn" value="true"/>
-<property key="propertySet.[cw.dbg.ct].Connection Type" value="com.freescale.mcu.debug.connections.jlink.arm"/>
-<property key="propertySet.[cw.dbg.main].templateId" value="None"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.2"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1410292099859"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink Target"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableHSSTIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableNetworkIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableSerialIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableStopTransferIOModelConfig" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].ethernetController" value="UEC1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].executeReset" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkDebuggerAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkGateway" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkMACAddress" value="**-**-**-**-**-**"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkNetMask" value="255.255.255.255"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkTargetAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkUDPPort" value="1234"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].noIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].runOutOfReset" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].targetIsPalladium" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useInitFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useMemoryConfigFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkGateway" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkMACAddress" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkUDPPort" value="false"/>
-<property key="propertySet.[cw.dbg.main].systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.2"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.proj.wolfcrypt_test" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.proj.wolfcrypt_test"/>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<property key="propertySet.[cw.dbg.conn].rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.3"/>
-<property key="propertySet.[cw.dbg.ct.bareboard.gdi].logData" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryTimeout" value="20"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryWithTimeoutOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].TerminateConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].retryPromptUserActionOn" value="true"/>
-<property key="propertySet.[cw.dbg.ct].Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.3"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink Target"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableHSSTIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableNetworkIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableSerialIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableStopTransferIOModelConfig" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].ethernetController" value="UEC1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].executeReset" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkDebuggerAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkGateway" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkMACAddress" value="**-**-**-**-**-**"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkNetMask" value="255.255.255.255"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkTargetAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkUDPPort" value="1234"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].noIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].runOutOfReset" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].targetIsPalladium" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useInitFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useMemoryConfigFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkGateway" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkMACAddress" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkUDPPort" value="false"/>
-<property key="propertySet.[cw.dbg.main].systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.3"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-</APSC_Memento>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Sources/include.am b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Sources/include.am
deleted file mode 100644
index 1fe7ffa28..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Sources/include.am
+++ /dev/null
@@ -1,22 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- mqx/wolfcrypt_test/.cproject \
- mqx/wolfcrypt_test/.project \
- mqx/wolfcrypt_test/Debugger/K70FN1M0.mem \
- mqx/wolfcrypt_test/Debugger/init_kinetis.tcl \
- mqx/wolfcrypt_test/Debugger/mass_erase_kinetis.tcl \
- mqx/wolfcrypt_test/ReferencedRSESystems.xml \
- mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch \
- mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch \
- mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink \
- mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch \
- mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch \
- mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
-
-EXTRA_DIST += \
- mqx/wolfcrypt_test/Sources/main.c \
- mqx/wolfcrypt_test/Sources/main.h
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Sources/main.c b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Sources/main.c
deleted file mode 100644
index 040a2bf3c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Sources/main.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* main.c */
-
-#include "main.h"
-
-/* SD card open/close utility functions */
-#include "util.h"
-
-#if !BSPCFG_ENABLE_IO_SUBSYSTEM
-#error This application requires BSPCFG_ENABLE_IO_SUBSYSTEM defined \
- non-zero in user_config.h. Please recompile BSP with this option.
-#endif
-
-#ifndef BSP_DEFAULT_IO_CHANNEL_DEFINED
-#error This application requires BSP_DEFAULT_IO_CHANNEL to be not NULL. \
- Please set corresponding BSPCFG_ENABLE_TTYx to non-zero in \
- user_config.h and recompile BSP with this option.
-#endif
-
-TASK_TEMPLATE_STRUCT MQX_template_list[] =
-{
- /* Task number, Entry point, Stack, Pri, String, Auto? */
- {MAIN_TASK, Main_task, 20000, 9, "main", MQX_AUTO_START_TASK},
- {0, 0, 0, 0, 0, 0, }
-};
-
-#if defined BSP_SDCARD_ESDHC_CHANNEL
- #if ! BSPCFG_ENABLE_ESDHC
- #error This application requires BSPCFG_ENABLE_ESDHC defined \
- non-zero in user_config.h. Please recompile libraries with \
- this option.
- #endif
-
-#elif defined BSP_SDCARD_SDHC_CHANNEL
- #if ! BSPCFG_ENABLE_SDHC
- #error This application requires BSPCFG_ENABLE_SDHC defined \
- non-zero in user_config.h. Please recompile libraries with \
- this option.
- #endif
-#endif
-
-#if defined (BSP_SDCARD_SPI_CHANNEL)
- #define SDCARD_COM_CHANNEL BSP_SDCARD_SPI_CHANNEL
-#elif defined (BSP_SDCARD_ESDHC_CHANNEL)
- #define SDCARD_COM_CHANNEL BSP_SDCARD_ESDHC_CHANNEL
-#elif defined (BSP_SDCARD_SDHC_CHANNEL)
- #define SDCARD_COM_CHANNEL BSP_SDCARD_SDHC_CHANNEL
-#else
- #error "SDCARD low level communication device not defined!"
-#endif
-
-/* func_args from test.h */
-typedef struct func_args {
- int argc;
- char** argv;
- int return_code;
-} func_args;
-
-/*TASK*-----------------------------------------------------------------
- * Function Name : Main_task
- * Comments :
- * This task opens the SD card device and runs the
- * wolfCrypt test functions located in test.c.
- *END------------------------------------------------------------------*/
-
-void Main_task(uint32_t initial_data)
-{
- int ret = 0;
- func_args args;
- char filesystem_name[] = "a:";
- char partman_name[] = "pm:";
- MQX_FILE_PTR com_handle, sdcard_handle, filesystem_handle, partman_handle;
-
- ret = sdcard_open(&com_handle, &sdcard_handle, &partman_handle,
- &filesystem_handle, partman_name, filesystem_name);
- if (ret != 0) {
- printf("error: sdcard_open(), ret = %d\n", ret);
- _mqx_exit(1);
- }
- printf("SD card installed to %s\n", filesystem_name);
-
- wolfcrypt_test(&args);
-
- ret = sdcard_close(&sdcard_handle, &partman_handle,
- &filesystem_handle, partman_name, filesystem_name);
- if (ret != 0) {
- printf("error: sdcard_close(), ret = %d\n", ret);
- _mqx_exit(1);
- }
- printf("SD card uninstalled.\n");
-
- _mqx_exit(0);
-
-}
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Sources/main.h b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Sources/main.h
deleted file mode 100644
index 189c7ce15..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/Sources/main.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* main.h */
-
-#ifndef __main_h_
-#define __main_h_
-
-#include <mqx.h>
-#include <bsp.h>
-#include <fio.h>
-#include <mfs.h>
-#include <sdcard.h>
-#include <spi.h>
-#include <part_mgr.h>
-
-#define MAIN_TASK 1
-
-extern void Main_task (uint32_t);
-void wolfcrypt_test(void* args);
-
-#endif /* __main_h_ */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch
deleted file mode 100644
index bc7fd451b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch
+++ /dev/null
@@ -1,133 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_DDRData_Debug/wolfcrypt_test.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfcrypt_test"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfcrypt_test"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch
deleted file mode 100644
index 9217d72fa..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch
+++ /dev/null
@@ -1,133 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.1"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_DDRData_Release/wolfcrypt_test.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfcrypt_test"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfcrypt_test"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink
deleted file mode 100644
index f40a58f1c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink
+++ /dev/null
@@ -1,34 +0,0 @@
-[BREAKPOINTS]
-ShowInfoWin = 1
-EnableFlashBP = 2
-BPDuringExecution = 0
-[CFI]
-CFISize = 0x00
-CFIAddr = 0x00
-[CPU]
-OverrideMemMap = 0
-AllowSimulation = 1
-ScriptFile=""
-[FLASH]
-CacheExcludeSize = 0x00
-CacheExcludeAddr = 0x00
-MinNumBytesFlashDL = 0
-SkipProgOnCRCMatch = 1
-VerifyDownload = 1
-AllowCaching = 1
-EnableFlashDL = 2
-Override = 0
-Device="UNSPECIFIED"
-[GENERAL]
-WorkRAMSize = 0x00
-WorkRAMAddr = 0x00
-RAMUsageLimit = 0x00
-[SWO]
-SWOLogFile=""
-[MEM]
-RdOverrideOrMask = 0x00
-RdOverrideAndMask = 0xFFFFFFFF
-RdOverrideAddr = 0xFFFFFFFF
-WrOverrideOrMask = 0x00
-WrOverrideAndMask = 0xFFFFFFFF
-WrOverrideAddr = 0xFFFFFFFF
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch
deleted file mode 100644
index 2cc81ce38..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch
+++ /dev/null
@@ -1,182 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.disable_interrupts_during_stepping" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.altLoadAddr" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.enableAltLoadAddr" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<listAttribute key="com.freescale.cdt.debug.cw.Debug"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.ExecuteTasks" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.StandardDownload" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskInitialLaunches"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskNames"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskSuccessiveRuns"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskTypes"/>
-<listAttribute key="com.freescale.cdt.debug.cw.ExecutablePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePC" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtProgramEntryPoint" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.InitializePCAtSymbol" value="main"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtUserSpecified" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.LaunchMode" value="DOWNLOAD"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtUserSpecified" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemoteDownload"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemotePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.ResumeProgram" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.SMPCores"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.SYNC_WITH_ENCL_PROJ" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.UseApplication" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.freescale.mcu.debug.connections.jlink.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.freescale.mcu.debug.connections.jlink.arm."/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.SimulatorConnectionAttributeBase" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.2"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeInitScripts" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeResetSequence" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.skipSystemInitialization" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.CommandLineArgs" value=""/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.ConfigFile" value=""/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Debug port interface" value="JTAG"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Delay after reset (ms)" value="0"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD fixed speed (Khz)" value="4000"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD speed" value="Fixed"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Library" value="arm_jlink_gdi"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.USB device" value="0"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.names_of_user_added_attributes" value=""/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.sa.mcu.launch.ENABLE_ANALYSIS" value="false"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;contentList/&gt;"/>
-<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;globalVariableList/&gt;&#13;&#10;"/>
-<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList/&gt;&#13;&#10;"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_SramData_Debug/wolfcrypt_test.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfcrypt_test"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006"/>
-<intAttribute key="org.eclipse.cdt.launch.SET_REGULAR_BREAKPOINT_TYPE_AS" value="0"/>
-<booleanAttribute key="org.eclipse.cdt.launch.USE_SET_REGULAR_BREAKPOINT_TYPE_AS" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfcrypt_test"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SERVER_SOCKET" value="false"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET" value="false"/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_HOST" value=""/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_PORT" value=""/>
-<stringAttribute key="process_factory_id" value="com.freescale.cdt.debug.cw.core.ProcessFactoryID"/>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch
deleted file mode 100644
index 2cc81ce38..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch
+++ /dev/null
@@ -1,182 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.disable_interrupts_during_stepping" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.altLoadAddr" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.enableAltLoadAddr" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<listAttribute key="com.freescale.cdt.debug.cw.Debug"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.ExecuteTasks" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.StandardDownload" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskInitialLaunches"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskNames"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskSuccessiveRuns"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskTypes"/>
-<listAttribute key="com.freescale.cdt.debug.cw.ExecutablePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePC" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtProgramEntryPoint" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.InitializePCAtSymbol" value="main"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtUserSpecified" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.LaunchMode" value="DOWNLOAD"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtUserSpecified" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemoteDownload"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemotePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.ResumeProgram" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.SMPCores"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.SYNC_WITH_ENCL_PROJ" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.UseApplication" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.freescale.mcu.debug.connections.jlink.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.freescale.mcu.debug.connections.jlink.arm."/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.SimulatorConnectionAttributeBase" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.2"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeInitScripts" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeResetSequence" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.skipSystemInitialization" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.CommandLineArgs" value=""/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.ConfigFile" value=""/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Debug port interface" value="JTAG"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Delay after reset (ms)" value="0"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD fixed speed (Khz)" value="4000"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD speed" value="Fixed"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Library" value="arm_jlink_gdi"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.USB device" value="0"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.names_of_user_added_attributes" value=""/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.sa.mcu.launch.ENABLE_ANALYSIS" value="false"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;contentList/&gt;"/>
-<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;globalVariableList/&gt;&#13;&#10;"/>
-<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList/&gt;&#13;&#10;"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_SramData_Debug/wolfcrypt_test.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfcrypt_test"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006"/>
-<intAttribute key="org.eclipse.cdt.launch.SET_REGULAR_BREAKPOINT_TYPE_AS" value="0"/>
-<booleanAttribute key="org.eclipse.cdt.launch.USE_SET_REGULAR_BREAKPOINT_TYPE_AS" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfcrypt_test"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SERVER_SOCKET" value="false"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET" value="false"/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_HOST" value=""/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_PORT" value=""/>
-<stringAttribute key="process_factory_id" value="com.freescale.cdt.debug.cw.core.ProcessFactoryID"/>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
deleted file mode 100644
index d089c2435..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfcrypt_test/wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
+++ /dev/null
@@ -1,168 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.disable_interrupts_during_stepping" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.altLoadAddr" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.enableAltLoadAddr" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<listAttribute key="com.freescale.cdt.debug.cw.Debug"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.ExecuteTasks" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.StandardDownload" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskInitialLaunches"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskNames"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskSuccessiveRuns"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskTypes"/>
-<listAttribute key="com.freescale.cdt.debug.cw.ExecutablePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePC" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtProgramEntryPoint" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.InitializePCAtSymbol" value="main"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtUserSpecified" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.LaunchMode" value="DOWNLOAD"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtUserSpecified" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemoteDownload"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemotePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.ResumeProgram" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.SMPCores"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.SYNC_WITH_ENCL_PROJ" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.UseApplication" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.3"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeInitScripts" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeResetSequence" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.skipSystemInitialization" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.sa.mcu.launch.ENABLE_ANALYSIS" value="false"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_SramData_Release/wolfcrypt_test.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfcrypt_test"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619"/>
-<intAttribute key="org.eclipse.cdt.launch.SET_REGULAR_BREAKPOINT_TYPE_AS" value="0"/>
-<booleanAttribute key="org.eclipse.cdt.launch.USE_SET_REGULAR_BREAKPOINT_TYPE_AS" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfcrypt_test"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SERVER_SOCKET" value="false"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET" value="false"/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_HOST" value=""/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_PORT" value=""/>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl/.cproject b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl/.cproject
deleted file mode 100644
index 7a2b634f8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl/.cproject
+++ /dev/null
@@ -1,1145 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?fileVersion 4.0.0?>
-
-<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
- <storageModule moduleId="org.eclipse.cdt.core.settings">
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_DDRData_Debug">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="a" artifactName="wolfssl" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" buildReferences="true" buildReferencingConfigurations="false" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_DDRData_Debug" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" produceBuildErrorsWithMissingReferences="true">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.974506159" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.1064224380" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.none" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.776480756" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <targetPlatform id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.1929295348" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_DDRData_Debug" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.1460536836" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildOn="true" parallelBuildWorkspaceOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.226235155" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.230457632" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}/../../&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- </option>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.555218868" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1631157130" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1306215263" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.most" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.550628909" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.749966319" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.371619007" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -D_EWL_C99=1" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.1358123073" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.334935915" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}/../../&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.1432422939" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="_EWL_FLOATING_POINT"/>
- </option>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.605358471" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.1677495877" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.101853813" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.152802354" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.287942895" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1455514328" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="&quot;gcc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;stdc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;rt&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;supc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.1163177586" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.1459624691" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.1690396779" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value="-n -z muldefs" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.1561262395" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="false" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.323198746" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1212417167" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags" valueType="stringList">
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group -lgcc -lstdc++ -lm -lrt -lc++ -lsupc++ -lc -Xlinker --end-group"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1077914304" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_ddrdata.ld" valueType="string"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.1946070893" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1165965890" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug"/>
- <tool errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.489093214" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.670568624" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.23581816" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.963520079" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.340071289" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.953296172" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1187124945" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.1854077742" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.714960268" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.1122007757" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Sources/wolfcrypt_src/port/pic32/pic32mz-hash.c|Sources/wolfcrypt_src/misc.c|Sources/wolfcrypt_src/aes_asm.asm|Sources/wolfcrypt_src/aes_asm.s|Debugger/init_kinetis.tcl|Debugger/mass_erase_kinetis.tcl|Debugger/K70FN1M0.mem" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_DDRData_Release">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="a" artifactName="wolfssl" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_DDRData_Release" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.192713895" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.1790844662" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.none" valueType="enumerated"/>
- <targetPlatform id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.826801222" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_DDRData_Release" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.974603812" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildWorkspaceOn="true" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1786730272" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.2031300737" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}/../../&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs&quot;"/>
- </option>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1342116944" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1717479051" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1480119700" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.most" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.794157503" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}/../../&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.1395918832" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.1672003240" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.1530269020" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -D_EWL_C99=1" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.1629180197" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.869453299" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="_EWL_FLOATING_POINT"/>
- </option>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.258615998" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.782133448" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.285727177" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.730189659" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.65051055" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1987819860" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="&quot;gcc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;stdc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;rt&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;supc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.267333148" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.845152990" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.33970607" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value="-n -z muldefs" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.1987396071" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="false" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.984230931" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.689194763" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags" valueType="stringList">
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs/mfs.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs/mfs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group -lgcc -lstdc++ -lm -lrt -lc++ -lsupc++ -lc -Xlinker --end-group"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1437884906" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\release\bsp\intflash_ddrdata.ld" valueType="string"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.1008103501" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1864071683" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.2023735277" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.173543357" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.996266315" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1192087739" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.1214409516" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.631893692" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1413694685" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.570811620" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.1732646952" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.1610537932" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/mass_erase_kinetis.tcl|Debugger/K70FN1M0.mem" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_SramData_Debug">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="a" artifactName="wolfssl" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" buildReferences="true" buildReferencingConfigurations="false" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_SramData_Debug" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" produceBuildErrorsWithMissingReferences="true">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.225492832" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.1716699711" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.none" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.1988573380" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi.614878464" name="Float ABI" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.abi.soft" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.toolchain.sharedoption.librarian.1781180783" name="Enable automatic library configurations" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.toolchain.sharedoption.librarian" value="false" valueType="boolean"/>
- <targetPlatform id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.2001737632" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_SramData_Debug" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.1664389494" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildOn="true" parallelBuildWorkspaceOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.953512570" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.1209252825" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}/../../&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- </option>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.153611981" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1895051771" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1442998979" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.most" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.942194914" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.477617310" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.344269247" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -D_EWL_C99=1" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.488762671" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.1920634446" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}/../../&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.2008410771" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="_EWL_FLOATING_POINT"/>
- </option>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1966302572" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.45995414" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.1305513318" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.1169776246" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.2014924908" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1507275763" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="&quot;gcc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;stdc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;rt&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;supc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.300434476" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.1759246044" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.2101445725" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value="-n -z muldefs" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.2000317134" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="false" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.750651929" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1869420661" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags" valueType="stringList">
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group -lgcc -lstdc++ -lm -lrt -lc++ -lsupc++ -lc -Xlinker --end-group"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1386890338" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_sramdata.ld" valueType="string"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.528847790" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.514014862" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug"/>
- <tool errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.408249245" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.2003783427" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.1571642216" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.708986703" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.1067493811" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.78949311" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1565324538" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.1119426482" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.940685186" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.939599568" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Sources/wolfcrypt_src/port/pic32/pic32mz-hash.c|Sources/wolfcrypt_src/misc.c|Sources/wolfcrypt_src/aes_asm.asm|Sources/wolfcrypt_src/aes_asm.s|Debugger/init_kinetis.tcl|Debugger/mass_erase_kinetis.tcl|Debugger/K70FN1M0.mem" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_SramData_Release">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactExtension="a" artifactName="wolfssl" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.staticLib" buildReferences="true" buildReferencingConfigurations="false" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator;" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_SramData_Release" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" produceBuildErrorsWithMissingReferences="true">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.489100301" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.1790779036" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.none" valueType="enumerated"/>
- <targetPlatform id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.1131791921" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_SramData_Release" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.1197643770" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildWorkspaceOn="true" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1771521876" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.463065916" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}/../../&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs&quot;"/>
- </option>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1745237860" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1712364512" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1829275338" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.most" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.73244514" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}/../../&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.193043409" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.1494738286" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.1741586383" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -D_EWL_C99=1" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.564520693" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.1641606883" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="_EWL_FLOATING_POINT"/>
- </option>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.942972989" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.2066163409" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.1303915861" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.1528509888" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.2092334977" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1902170102" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="&quot;gcc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;stdc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;rt&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;supc++&quot;"/>
- <listOptionValue builtIn="false" value="&quot;c&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.1453604321" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.481560722" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.160821973" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value="-n -z muldefs" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.1206978188" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="false" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.1196709335" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.762343017" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags" valueType="stringList">
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs/mfs.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/rtcs/rtcs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/mfs/mfs.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/bsp/bsp.a&quot; &quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/release/psp/psp.a&quot; -Xlinker --end-group"/>
- <listOptionValue builtIn="false" value="--start-group -lgcc -lstdc++ -lm -lrt -lc++ -lsupc++ -lc -Xlinker --end-group"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1026546810" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\release\bsp\intflash_sramdata.ld" valueType="string"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.837961278" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1104994417" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.524824372" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.1691275444" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.744266853" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.746456936" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.890163560" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.1745244847" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1504070862" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.997987876" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.706972193" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.1151996620" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976.Debugger/mass_erase_kinetis.tcl" name="mass_erase_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/mass_erase_kinetis.tcl" toolsToInvoke=""/>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976.Debugger/init_kinetis.tcl" name="init_kinetis.tcl" rcbsApplicability="disable" resourcePath="Debugger/init_kinetis.tcl" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/mass_erase_kinetis.tcl|Debugger/K70FN1M0.mem" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
- </cconfiguration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <project id="wolfSSL_K70F120M_MQX.com.freescale.arm.cdt.toolchain.project.arm.1479856437" name="ARM Project" projectType="com.freescale.arm.cdt.toolchain.project.arm"/>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.pathentry"/>
- <storageModule moduleId="refreshScope" versionNumber="2">
- <configuration configurationName="twrk70f120m_Int_Flash_SramData_Debug">
- <resource resourceType="PROJECT" workspacePath="/wolfssl"/>
- </configuration>
- <configuration configurationName="twrk70f120m_Int_Flash_DDRData_Debug">
- <resource resourceType="PROJECT" workspacePath="/wolfssl"/>
- </configuration>
- <configuration configurationName="twrk70f120m_Int_Flash_DDRData_Release"/>
- <configuration configurationName="twrk70f120m_Int_Flash_SramData_Release">
- <resource resourceType="PROJECT" workspacePath="/wolfssl"/>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
- <storageModule moduleId="scannerConfiguration">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.226235155;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.555218868">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1986912024.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1631157130;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.605358471">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="com.freescale.arm.cdt.toolchain.config.arm.release.526022451;com.freescale.arm.cdt.toolchain.config.arm.release.526022451.;com.freescale.arm.cdt.toolchain.compiler.132604418;com.freescale.arm.cdt.toolchain.armCpp.cSource.600563444">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.freescale.arm.cdt.toolchain.c.symbols.discoveryProfile"/>
- <profile id="com.freescale.arm.cdt.toolchain.c.symbols.discoveryProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="false"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="" command="" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="com.freescale.arm.cdt.toolchain.config.arm.release.924778656;com.freescale.arm.cdt.toolchain.config.arm.release.924778656.;com.freescale.arm.cdt.toolchain.compiler.343153840;com.freescale.arm.cdt.toolchain.armCpp.cSource.1028301793">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.freescale.arm.cdt.toolchain.c.symbols.discoveryProfile"/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="com.freescale.arm.cdt.toolchain.config.arm.release.1162140987;com.freescale.arm.cdt.toolchain.config.arm.release.1162140987.;com.freescale.arm.cdt.toolchain.compiler.1017653273;com.freescale.arm.cdt.toolchain.armCpp.cSource.1665621304">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.freescale.arm.cdt.toolchain.c.symbols.discoveryProfile"/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.953512570;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.153611981">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="com.freescale.arm.cdt.toolchain.config.arm.release.1421805235;com.freescale.arm.cdt.toolchain.config.arm.release.1421805235.;com.freescale.arm.cdt.toolchain.compiler.746332828;com.freescale.arm.cdt.toolchain.armCpp.cSource.2106470409">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.freescale.arm.cdt.toolchain.c.symbols.discoveryProfile"/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1717479051;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.258615998">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1348786405.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1786730272;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1342116944">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="com.freescale.arm.cdt.toolchain.config.arm.release.1155600294;com.freescale.arm.cdt.toolchain.config.arm.release.1155600294.;com.freescale.arm.cdt.toolchain.compiler.1797150640;com.freescale.arm.cdt.toolchain.armCpp.cSource.1093151441">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.freescale.arm.cdt.toolchain.c.symbols.discoveryProfile"/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1712364512;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.942972989">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.689549762.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1895051771;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1966302572">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.104157976.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1771521876;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1745237860">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
- <buildOutputProvider>
- <openAction enabled="true" filePath=""/>
- <parser enabled="true"/>
- </buildOutputProvider>
- <scannerInfoProvider id="specsFile">
- <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
- <parser enabled="true"/>
- </scannerInfoProvider>
- </profile>
- </scannerConfigBuildInfo>
- </storageModule>
-</cproject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl/.project b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl/.project
deleted file mode 100644
index 8a201057b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl/.project
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>wolfssl</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.cdt.core.cnature</nature>
- <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
- <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
- </natures>
- <linkedResources>
- <link>
- <name>twrk70f120m_Int_Flash_DDRData_Debug</name>
- <type>2</type>
- <locationURI>PARENT-5-PROJECT_LOC/Documents/GitHub/wolfssl/mqx/wolfssl/twrk70f120m_Int_Flash_DDRData_Debug/build-wolfssl-twrk70f120m_Int_Flash_DDRData_Debug</locationURI>
- </link>
- <link>
- <name>Sources/wolfcrypt_src</name>
- <type>2</type>
- <locationURI>PARENT-2-PROJECT_LOC/wolfcrypt/src</locationURI>
- </link>
- <link>
- <name>Sources/wolfssl_src</name>
- <type>2</type>
- <locationURI>PARENT-2-PROJECT_LOC/src</locationURI>
- </link>
- </linkedResources>
- <variableList>
- <variable>
- <name>MQX_ROOT_DIR</name>
- <value>file:/C:/Freescale/Freescale_MQX_4_1</value>
- </variable>
- </variableList>
-</projectDescription>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl/include.am b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl/include.am
deleted file mode 100644
index 99cbf0895..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl/include.am
+++ /dev/null
@@ -1,11 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- mqx/README
-
-EXTRA_DIST += \
- mqx/wolfssl/.cproject \
- mqx/wolfssl/.project
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/.cproject b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/.cproject
deleted file mode 100644
index 559a66666..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/.cproject
+++ /dev/null
@@ -1,681 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?fileVersion 4.0.0?>
-
-<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
- <storageModule moduleId="org.eclipse.cdt.core.settings">
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_DDRData_Debug">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactName="wolfssl_client" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildReferences="true" buildReferencingConfigurations="false" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_DDRData_Debug" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="" produceBuildErrorsWithMissingReferences="true">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.2073798950" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.944664726" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.2001334203" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi.378842296" name="Float ABI" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.abi.softfp" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit.352096883" name="FPU Type" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
- <targetPlatform binaryParser="org.eclipse.cdt.core.GNU_ELF" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.1695073226" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_DDRData_Debug" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.1635499622" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildOn="true" parallelBuildWorkspaceOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.225074258" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.178221621" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def.1935380268" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn.1018090779" name="Inhibit all warnings (-w)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1885700653" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.421594858" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1099493406" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.most" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.1750148454" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.196872720" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.821674852" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -fno-strict-aliasing -Wno-missing-braces -Wno-switch -Wno-unused-value -Wno-unused-variable -Wno-unused-but-set-variable -Wno-pointer-to-int-cast -Wno-unused-function -Wno-unused-label -Wno-char-subscripts -Wno-int-to-pointer-cast " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.1735252853" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.1706134705" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.1851847575" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="MQX_USE_IO_OLD"/>
- <listOptionValue builtIn="false" value="__VFPV4__=1"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc.180260131" name="Do not search system directories (-nostdinc)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1096688444" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.1435131260" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.719090893" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.1197915696" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; -Xlinker --start-group ${INPUTS} -Xlinker --end-group ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.891244336" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1741367061" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="rt"/>
- <listOptionValue builtIn="false" value="c"/>
- <listOptionValue builtIn="false" value="m"/>
- <listOptionValue builtIn="false" value="c++"/>
- <listOptionValue builtIn="false" value="stdc++"/>
- <listOptionValue builtIn="false" value="gcc"/>
- <listOptionValue builtIn="false" value="supc++"/>
- <listOptionValue builtIn="false" value="wolfssl"/>
- <listOptionValue builtIn="false" value="util_lib"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.1799569542" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/arm-none-eabi/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\wolfssl\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.1678404828" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.404568634" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value=" -Xlinker -z -Xlinker muldefs -Xlinker -static " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.107849556" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.1523868061" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1508779635" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags" valueType="stringList"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1906952899" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_sramdata.ld" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.775690823" name="Link Order" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder" valueType="stringList">
- <listOptionValue builtIn="false" value="Sources/main.c"/>
- <listOptionValue builtIn="false" value="Sources/test/test.c"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs.1249833391" name="Do not use default libraries (-nodefaultlibs)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs.109827579" name="No startup or default libs (-nostdlib)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref.1579920448" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled.162363892" name="Customize linker input order:" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled" value="false" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.578803050" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1630992862" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref.363665770" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.1901040884" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool command="arm-none-eabi-objdump" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.712336871" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.270270493" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1938127368" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.1198868158" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.2051623880" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.1062136201" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1325647418" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.328701376" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.1358790038" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.443165878" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.1018826076" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/K70FN1M0.mem|Debugger/mass_erase_kinetis.tcl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings">
- <externalSettings containerId="wolfssl" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
- <externalSettings containerId="util_lib" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
- </storageModule>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_DDRData_Release">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactName="wolfssl_client" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_DDRData_Release" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.992920808" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.183408450" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi.1595622658" name="Float ABI" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.abi.softfp" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit.2006460224" name="FPU Type" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.509418092" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <targetPlatform binaryParser="org.eclipse.cdt.core.GNU_ELF" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.9855938" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder autoBuildTarget="all" buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_DDRData_Release" cleanBuildTarget="clean" enableAutoBuild="true" enableCleanBuild="true" enabledIncrementalBuild="true" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.567642107" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="ARM Ltd Windows GNU Make builder" parallelBuildOn="false" parallelBuildWorkspaceOn="true" parallelizationNumber="1" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.394252372" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.1859625790" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def.882561101" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn.287476202" name="Inhibit all warnings (-w)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1103549433" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.882229545" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1895651269" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.most" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.946591059" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.1042400188" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.407735554" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.1589679638" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -fno-strict-aliasing -Wno-missing-braces -Wno-switch -Wno-unused-value -Wno-unused-variable -Wno-unused-but-set-variable -Wno-pointer-to-int-cast -Wno-unused-function -Wno-unused-label -Wno-char-subscripts -Wno-int-to-pointer-cast " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.1079204418" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.1299537463" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="MQX_USE_IO_OLD"/>
- <listOptionValue builtIn="false" value="__VFPV4__=1"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc.1664794403" name="Do not search system directories (-nostdinc)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1320581762" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.1249471995" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.388132419" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.871123639" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; -Xlinker --start-group ${INPUTS} -Xlinker --end-group ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.1197585275" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1147139900" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="rt"/>
- <listOptionValue builtIn="false" value="c"/>
- <listOptionValue builtIn="false" value="m"/>
- <listOptionValue builtIn="false" value="c++"/>
- <listOptionValue builtIn="false" value="stdc++"/>
- <listOptionValue builtIn="false" value="gcc"/>
- <listOptionValue builtIn="false" value="supc++"/>
- <listOptionValue builtIn="false" value="wolfssl"/>
- <listOptionValue builtIn="false" value="util_lib"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.940903300" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/arm-none-eabi/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\wolfssl\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.1389344626" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.1398486689" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value=" -Xlinker -z -Xlinker muldefs -Xlinker -static " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.1464686164" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.1435405486" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1625292164" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags" valueType="stringList"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.496752186" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_sramdata.ld" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.670967758" name="Link Order" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder" valueType="stringList">
- <listOptionValue builtIn="false" value="Sources/main.c"/>
- <listOptionValue builtIn="false" value="Sources/test/test.c"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs.334893892" name="Do not use default libraries (-nodefaultlibs)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs.1518299900" name="No startup or default libs (-nostdlib)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref.1025578627" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled.737474682" name="Customize linker input order:" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled" value="false" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.159626245" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.566792581" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref.817894294" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.1047291857" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool command="arm-none-eabi-objdump" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.1178575354" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.1098268302" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.14310948" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.744373806" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.742527773" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.842457972" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.999283618" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.1178275553" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.884479400" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.190063736" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.1460825174" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/K70FN1M0.mem|Debugger/mass_erase_kinetis.tcl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings">
- <externalSettings containerId="wolfssl" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
- <externalSettings containerId="util_lib" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
- </storageModule>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_SramData_Debug">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactName="wolfssl_client" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildReferences="true" buildReferencingConfigurations="false" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_SramData_Debug" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="" produceBuildErrorsWithMissingReferences="true">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.976343888" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.1791314680" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.62293834" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.toolchain.sharedoption.librarian.279422699" name="Enable automatic library configurations" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.toolchain.sharedoption.librarian" value="false" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi.575448263" name="Float ABI" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.abi.softfp" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit.929092695" name="FPU Type" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.format.551085182" name="Debug format" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.format" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.format.dwarf2" valueType="enumerated"/>
- <targetPlatform binaryParser="org.eclipse.cdt.core.GNU_ELF" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.558843418" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_SramData_Debug" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.927768878" keepEnvironmentInBuildfile="false" name="ARM Ltd Windows GNU Make builder" parallelBuildOn="true" parallelBuildWorkspaceOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1318968617" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.3388065" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def.410750241" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn.644603631" name="Inhibit all warnings (-w)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.159133944" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.796575084" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1355083605" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.most" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.1367457681" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.72835193" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.1461159830" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -fno-strict-aliasing -Wno-missing-braces -Wno-switch -Wno-unused-value -Wno-unused-variable -Wno-unused-but-set-variable -Wno-pointer-to-int-cast -Wno-unused-function -Wno-unused-label -Wno-char-subscripts -Wno-int-to-pointer-cast " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.234940653" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.1172764933" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.871447199" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="MQX_USE_IO_OLD"/>
- <listOptionValue builtIn="false" value="__VFPV4__=1"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc.720024275" name="Do not search system directories (-nostdinc)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.94337760" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.947278360" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.1715091513" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.537191017" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; -Xlinker --start-group ${INPUTS} -Xlinker --end-group ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.1761058144" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1877696792" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="rt"/>
- <listOptionValue builtIn="false" value="c"/>
- <listOptionValue builtIn="false" value="m"/>
- <listOptionValue builtIn="false" value="c++"/>
- <listOptionValue builtIn="false" value="stdc++"/>
- <listOptionValue builtIn="false" value="gcc"/>
- <listOptionValue builtIn="false" value="supc++"/>
- <listOptionValue builtIn="false" value="wolfssl"/>
- <listOptionValue builtIn="false" value="util_lib"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.330763302" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/arm-none-eabi/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\wolfssl\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.1069836785" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.374418889" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value=" -Xlinker -z -Xlinker muldefs -Xlinker -static " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.909946910" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.1803201089" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1983819046" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1060921895" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_sramdata.ld" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.752796656" name="Link Order" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder" valueType="stringList">
- <listOptionValue builtIn="false" value="Sources/main.c"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs.1397109882" name="Do not use default libraries (-nodefaultlibs)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs.817941097" name="No startup or default libs (-nostdlib)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled.2058727283" name="Customize linker input order:" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled" value="false" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref.634348827" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.strip.971261875" name="Omit all symbol information (-s)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.strip" value="false" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.1062763285" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.458284566" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref.609895582" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.1094871156" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool command="arm-none-eabi-objdump" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.1031322022" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.357650786" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.450914262" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.831786096" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.1072791121" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.1073474137" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.102793723" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.1818142894" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.1870881451" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.1734303103" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.36234091" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Sources/mfs_init.c|Debugger/init_kinetis.tcl|Debugger/K70FN1M0.mem|Debugger/mass_erase_kinetis.tcl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings">
- <externalSettings containerId="wolfssl" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
- <externalSettings containerId="util_lib" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
- </storageModule>
- </cconfiguration>
- <cconfiguration id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619" moduleId="org.eclipse.cdt.core.settings" name="twrk70f120m_Int_Flash_SramData_Release">
- <externalSettings/>
- <extensions>
- <extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
- <extension id="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
- <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
- </extensions>
- </storageModule>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <configuration artifactName="wolfssl_client" buildArtefactType="org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.cross.arm.gnu.buildArtefactType.application" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619" isPrebuildInvalidatingBuild="false" isVersionInfoProjSpecific="false" name="twrk70f120m_Int_Flash_SramData_Release" parent="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
- <folderInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619." name="/" resourcePath="">
- <toolChain errorParsers="" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug.766408415" name="ARM Ltd Windows GCC (G++ Lite)" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.toolchain.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level.2049560136" name="Debug level" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.debugging.level.max" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi.559007737" name="Float ABI" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.abi" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.abi.softfp" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit.596052734" name="FPU Type" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.target.fpu.unit" value="org.eclipse.cdt.cross.arm.gnu.base.option.target.fpu.unit.fpv4spd16" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other.1448201792" name="Other debugging flags" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.option.debugging.other" value="-gstrict-dwarf" valueType="string"/>
- <targetPlatform binaryParser="org.eclipse.cdt.core.GNU_ELF" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug.793025427" isAbstract="false" name="Windows Platform" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.platform.debug"/>
- <builder autoBuildTarget="all" buildPath="${ProjDirPath}/twrk70f120m_Int_Flash_SramData_Release" cleanBuildTarget="clean" enableAutoBuild="true" enableCleanBuild="true" enabledIncrementalBuild="true" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug.2141868680" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="ARM Ltd Windows GNU Make builder" parallelBuildOn="false" parallelBuildWorkspaceOn="true" parallelizationNumber="1" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.builder.debug"/>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.276084757" name="ARM Ltd Windows GCC Assembler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths.36043354" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def.526352808" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn.128435039" name="Inhibit all warnings (-w)" superClass="org.eclipse.cdt.cross.arm.gnu.assembler.option.warnings.nowarn" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.73962146" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input"/>
- </tool>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1657211710" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level.1993390967" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.most" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths.716302220" name="Include paths (-I)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.include.paths" valueType="includePath">
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ProcessorExpert/lib/Kinetis/pdd/inc&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Generated_Code&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/Sources&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_C/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/EWL_Runtime/include&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\..\&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\Sources&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections.863257063" name="Function sections (-ffunction-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.functionsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections.1023288458" name="Data sections (-fdata-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.optimization.datasections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags.497385638" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.other.otherflags" value="-c -fmessage-length=0 -fno-strict-aliasing -Wno-missing-braces -Wno-switch -Wno-unused-value -Wno-unused-variable -Wno-unused-but-set-variable -Wno-pointer-to-int-cast -Wno-unused-function -Wno-unused-label -Wno-char-subscripts -Wno-int-to-pointer-cast " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.1999135559" name="Language Standard" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std" value="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.misc.std.gnu99" valueType="enumerated"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def.1366388422" name="Defined symbols (-D)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="MQX_USE_IO_OLD"/>
- <listOptionValue builtIn="false" value="__VFPV4__=1"/>
- <listOptionValue builtIn="false" value="_EWL_C99=1"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc.1226585402" name="Do not search system directories (-nostdinc)" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.option.preprocessor.nostdinc" value="true" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1773735736" name="ARM Ltd Windows GCC C Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc.910265076" superClass="org.eclipse.cdt.cross.arm.gnu.c.compiler.input.asmSourcePreproc"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug.431828146" name="ARM Ltd Windows GCC C++ Compiler" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.compiler.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level.1836114884" name="Optimization level" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.compiler.option.optimization.level" value="org.eclipse.cdt.cross.arm.gnu.base.option.optimization.level.none" valueType="enumerated"/>
- </tool>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; -Xlinker --start-group ${INPUTS} -Xlinker --end-group ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug.738453011" name="ARM Ltd Windows GCC C Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs.1921876762" name="Libraries (-l)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.libs" valueType="libs">
- <listOptionValue builtIn="false" value="rt"/>
- <listOptionValue builtIn="false" value="c"/>
- <listOptionValue builtIn="false" value="m"/>
- <listOptionValue builtIn="false" value="c++"/>
- <listOptionValue builtIn="false" value="stdc++"/>
- <listOptionValue builtIn="false" value="gcc"/>
- <listOptionValue builtIn="false" value="supc++"/>
- <listOptionValue builtIn="false" value="wolfssl"/>
- <listOptionValue builtIn="false" value="util_lib"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths.2028362740" name="Library search path (-L)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.paths" valueType="libPaths">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/lib/gcc/arm-none-eabi/4.7.3/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../Cross_Tools/arm-none-eabi-gcc-4_7_3/arm-none-eabi/lib/armv7e-m/softfp&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCUToolsBaseDir}/ARM_GCC_Support/ewl/lib/armv7e-m&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\util_lib\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${ProjDirPath}\..\wolfssl\twrk70f120m_Int_Flash_SramData_Debug&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs.253845966" name="Other objects" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherobjs" valueType="userObjs">
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/rtcs/rtcs.a&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags.1185948342" name="Other flags" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.otherflags" value=" -Xlinker -z -Xlinker muldefs -Xlinker -static " valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart.530533704" name="Do not use standard start files (-nostartfiles)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostart" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections.1845241542" name="Remove unused sections (-Xlinker --gc-sections)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.gcsections" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags.1473289577" name="Linker flags (-Xlinker [option])" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.ldflags" valueType="stringList"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile.1678123607" name="Script file (-T)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.scriptfile" value="${MQX_ROOT_DIR}\lib\twrk70f120m.cw10gcc\debug\bsp\intflash_sramdata.ld" valueType="string"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.619064948" name="Link Order" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder" valueType="stringList">
- <listOptionValue builtIn="false" value="Sources/main.c"/>
- <listOptionValue builtIn="false" value="Sources/test/test.c"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/bsp/bsp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/psp/psp.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MQX_ROOT_DIR}/lib/twrk70f120m.cw10gcc/debug/mfs/mfs.a&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_start.o&quot;"/>
- <listOptionValue builtIn="false" value="&quot;${MCU_TOOLS_HOME}/../MCU/ARM_GCC_Support/ewl/lib/armv7e-m/__arm_end.o&quot;"/>
- </option>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs.279409181" name="Do not use default libraries (-nodefaultlibs)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nodeflibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs.1549369013" name="No startup or default libs (-nostdlib)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref.181802704" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.other.cref" value="true" valueType="boolean"/>
- <option id="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled.903274514" name="Customize linker input order:" superClass="org.eclipse.cdt.cross.arm.gnu.c.link.option.linkorder.enabled" value="false" valueType="boolean"/>
- <inputType id="org.eclipse.cdt.cross.arm.gnu.c.linker.input.215277470" superClass="org.eclipse.cdt.cross.arm.gnu.c.linker.input">
- <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
- <additionalInput kind="additionalinput" paths="$(LIBS)"/>
- </inputType>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug.1026539483" name="ARM Ltd Windows GCC C++ Linker" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.linker.debug">
- <option id="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref.638837762" name="Cross Reference (-Xlinker --cref)" superClass="org.eclipse.cdt.cross.arm.gnu.cpp.link.option.other.cref" value="true" valueType="boolean"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base.1058862870" name="ARM Ltd Windows GCC Archiver" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.archiver.base"/>
- <tool command="arm-none-eabi-objdump" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug.1734987363" name="ARM Ltd Windows GCC Disassembler" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.disassembler.debug"/>
- <tool command="arm-none-eabi-gcc" commandLinePattern="&quot;${ARMSourceryDir}/${COMMAND}&quot; ${INPUTS} ${FLAGS}" errorParsers="com.freescale.core.ide.cdt.errorParsers.GCCErrorParser" id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug.574066521" name="ARM Ltd Windows GCC C Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.1735600116" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.963111015" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath"/>
- <inputType id="com.freescale.cdt.cross.arm.gnu.preprocessor.source.615636330" name="Preprocessor Input" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.source"/>
- </tool>
- <tool id="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug.1469651490" name="ARM Ltd Windows GCC C++ Preprocessor" superClass="com.freescale.cdt.cross.arm.gnu.sourcery.windows.elf.cpp.preprocessor.debug">
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc.42098179" name="Do not search system directories (-nostdinc)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.settings.nostdinc" value="true" valueType="boolean"/>
- <option id="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths.829959471" name="Include paths (-I)" superClass="com.freescale.cdt.cross.arm.gnu.preprocessor.dirs.include.paths" valueType="includePath"/>
- </tool>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug.82208385" name="ARM Ltd Windows GNU Create Flash Image" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createflash.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug.231926030" name="ARM Ltd Windows GNU Create Listing" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.createlisting.debug"/>
- <tool id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug.369904630" name="ARM Ltd Windows GNU Print Size" superClass="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.printsize.debug"/>
- </toolChain>
- </folderInfo>
- <fileInfo id="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619.Debugger/K70FN1M0.mem" name="K70FN1M0.mem" rcbsApplicability="disable" resourcePath="Debugger/K70FN1M0.mem" toolsToInvoke=""/>
- <sourceEntries>
- <entry excluding="Debugger/init_kinetis.tcl|Debugger/K70FN1M0.mem|Debugger/mass_erase_kinetis.tcl" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
- </sourceEntries>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings">
- <externalSettings containerId="wolfssl" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
- <externalSettings containerId="util_lib" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
- </storageModule>
- </cconfiguration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
- <storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <project id="wolfssl_client.com.freescale.arm.cdt.toolchain.project.arm.1318543548" name="ARM Project" projectType="com.freescale.arm.cdt.toolchain.project.arm"/>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.pathentry"/>
- <storageModule moduleId="refreshScope" versionNumber="2">
- <configuration configurationName="twrk70f120m_Int_Flash_SramData_Debug">
- <resource resourceType="PROJECT" workspacePath="/wolfssl_client"/>
- </configuration>
- <configuration configurationName="twrk70f120m_Int_Flash_DDRData_Debug">
- <resource resourceType="PROJECT" workspacePath="/wolfssl_client"/>
- </configuration>
- <configuration configurationName="twrk70f120m_Int_Flash_DDRData_Release">
- <resource resourceType="PROJECT" workspacePath="/wolfssl_client"/>
- </configuration>
- <configuration configurationName="twrk70f120m_Int_Flash_SramData_Release">
- <resource resourceType="PROJECT" workspacePath="/wolfssl_client"/>
- </configuration>
- </storageModule>
- <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
- <storageModule moduleId="scannerConfiguration">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.225074258;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1885700653">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.1318968617;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.159133944">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.796575084;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.94337760">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.276084757;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.73962146">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.assembler.debug.394252372;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.assembler.base.input.1103549433">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.421594858;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1096688444">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.882229545;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1320581762">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619.;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.c.compiler.debug.1657211710;org.eclipse.cdt.cross.arm.gnu.sourcery.windows.c.compiler.base.input.1773735736">
- <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.cross.arm.gnu.ARM_CS_GCCWinManagedMakePerProjectProfileC"/>
- </scannerConfigBuildInfo>
- </storageModule>
-</cproject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/.project b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/.project
deleted file mode 100644
index f82a98c06..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/.project
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>wolfssl_client</name>
- <comment></comment>
- <projects>
- <project location="PARENT-1-PROJECT_LOC/wolfssl">
-wolfssl </project>
- <project location="PARENT-1-PROJECT_LOC/util_lib">
-util_lib </project>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
- <triggers>full,incremental,</triggers>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.cdt.core.cnature</nature>
- <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
- <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
- </natures>
- <variableList>
- <variable>
- <name>MQX_ROOT_DIR</name>
- <value>file:/C:/Freescale/Freescale_MQX_4_1</value>
- </variable>
- </variableList>
-</projectDescription>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Debugger/K70FN1M0.mem b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Debugger/K70FN1M0.mem
deleted file mode 100644
index 4a7c6198d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Debugger/K70FN1M0.mem
+++ /dev/null
@@ -1,43 +0,0 @@
-// Memory Configuration File
-//
-// Description:
-// A memory configuration file contains commands that define the legally accessible
-// areas of memory for your specific board. Useful for example when the debugger
-// tries to display the content of a "char *" variable, that has not yet been initialized.
-// In this case the debugger may try to read from a bogus address, which could cause a
-// bus error.
-//
-// Board:
-// Kinetis K70FN1M0
-//
-// Reference:
-// -
-
-
-// All reserved ranges read back 0xBABA...
-reservedchar 0xBA
-
-usederivative "MK70F15"
-
-// Memory Map:
-// ----------------------------------------------------------------------
-
-range 0x00000000 0x000FFFFF 4 ReadWrite // 1024KB Code Flash
-reserved 0x00100000 0x13FFFFFF
-range 0x14000000 0x14003FFF 4 ReadWrite // 16KB Programming acceleration RAM
-reserved 0x14004000 0x1FFEFFFF
-range 0x1FFF0000 0x1FFFFFFF 4 ReadWrite // 64KB On chip SRAM (TCML)
-range 0x20000000 0x2000FFFF 4 ReadWrite // 64KB On chip SRAM (TCMU)
-reserved 0x20010000 0x21FFFFFF
-range 0x22000000 0x221FFFFF 4 ReadWrite // Aliased to TCMU SRAM bitband
-reserved 0x22200000 0x3FFFFFFF
-reserved 0x60000000 0x6FFFFFFF // Flexbus for external memory
-range 0x70000000 0x7FFFFFFF 4 ReadWrite // DRAM Controller - Write-back
-range 0x80000000 0x8FFFFFFF 4 ReadWrite // DRAM Controller - Write-through
-reserved 0x90000000 0xDFFFFFFF // Flexbus for external memory
-reserved 0xE0100000 0xFFFFFFFF
-
-// Comment the following line for NFC-projects
-reserved 0x400A8000 0x400ABEFF
-// Uncomment the following line for NFC-projects
-//range 0x400A8000 0x400ABEFF 4 ReadWrite
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Debugger/init_kinetis.tcl b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Debugger/init_kinetis.tcl
deleted file mode 100644
index 467b8ff9f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Debugger/init_kinetis.tcl
+++ /dev/null
@@ -1,71 +0,0 @@
-# this method initializes debug modules which are not affected by software reset
-# register names should be referenced including the register group name to improve performance
-
-proc init_debug_modules {} {
- # initialize LR to avoid invalid stack after reset
- reg "User\\/System Mode Registers/LR" = 0xFFFFFFFF
-
- # clear DWT function registers
- reg "Core Debug Registers/DEMCR" = 0x1000001
- reg "Data Watchpoint and Trace Unit Registers/DWT_FUNCTION0" = 0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_FUNCTION1" = 0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_FUNCTION2" = 0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_FUNCTION3" = 0x0
- # clear FPB comparators
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP0" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP1" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP2" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP3" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP4" = 0x0
- reg "Flash Patch and Breakpoint Unit Registers/FP_COMP5" = 0x0
-}
-
-proc init_trace_modules {} {
- # clear DWT registers
- reg "Data Watchpoint and Trace Unit Registers/DWT_CTRL" =0x40000000
- reg "Data Watchpoint and Trace Unit Registers/DWT_CYCCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_CPICNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_EXCCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_SLEEPCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_LSUCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_FOLDCNT" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_COMP0" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_COMP1" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_COMP2" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_COMP3" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_MASK0" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_MASK1" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_MASK2" =0x0
- reg "Data Watchpoint and Trace Unit Registers/DWT_MASK3" =0x0
- # clear ITM registers
- reg "Instrumentation Trace Macrocell Registers/ITM_LAR" =0xc5acce55
- reg "Instrumentation Trace Macrocell Registers/ITM_TER" =0x0
- reg "Instrumentation Trace Macrocell Registers/ITM_TPR" =0x0
- reg "Instrumentation Trace Macrocell Registers/ITM_TCR" =0x0
- reg "Instrumentation Trace Macrocell Registers/ITM_LAR" =0x1
- # reset Funnel registers
- reg "Embedded Trace Funnel Registers/ETF_FCR" =0x300
- # clear MCM registers
- reg "Core Platform Miscellaneous Control Module (MCM) Registers/MCM_ETBCC" =0x0
- reg "Core Platform Miscellaneous Control Module (MCM) Registers/MCM_ETBRL" =0x0
- # set SCB_VTOR register for RAM
- reg "System Control Registers/SCB_VTOR" =0x20000000
-}
-
-proc envsetup {} {
- # Environment Setup
- radix x
- config hexprefix 0x
- config MemIdentifier p
- config MemWidth 32
- config MemAccess 32
- config MemSwap off
-}
-
-#-------------------------------------------------------------------------------
-# Main
-#-------------------------------------------------------------------------------
-
- envsetup
- init_debug_modules
- init_trace_modules
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Debugger/mass_erase_kinetis.tcl b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Debugger/mass_erase_kinetis.tcl
deleted file mode 100644
index 2d8b84054..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Debugger/mass_erase_kinetis.tcl
+++ /dev/null
@@ -1,31 +0,0 @@
-# This script performs the mass erase operation for Kinetis targets
-
-# Command mass erase with system reset and core reset
-set mdmapControl [cmdwin::reg MDMAP_C -np]
-set mdmapControl [expr $mdmapControl | 0x19]
-cmdwin::reg MDMAP_C = $mdmapControl
-
-# Release system reset while still holding core reset
-set mdmapControl [expr $mdmapControl & 0xFFFFFFF7]
-cmdwin::reg MDMAP_C = $mdmapControl
-
-# Wait for the mass erase operation to complete
-set done 0
-for {set i 0} {$i < 10} {incr i} {
- refresh
- set mdmapControl [cmdwin::reg MDMAP_C -np]
- if {($mdmapControl & 1) == 0} {
- set done 1
- break;
- }
- wait 50
-}
-
-# Release the core reset
-set mdmapControl [expr $mdmapControl & 0xFFFFFFEF]
-cmdwin::reg MDMAP_C = $mdmapControl
-if {$done} {
- puts "OK: Mass erase succeeded"
-} else {
- puts "Error: Timeout"
-} \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/ReferencedRSESystems.xml b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/ReferencedRSESystems.xml
deleted file mode 100644
index 4feeab4e3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/ReferencedRSESystems.xml
+++ /dev/null
@@ -1,296 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- This file stores a copy of all RSE Systems referenced by the project
-so the systems can be automatically recreated when the project is imported in a new workspace.
-This file is automatically generated and updated by the Eclipse IDE.-->
-<APSC_Memento>
-<host>
-<properties>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfssl_client_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.proj.wolfssl_client" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfssl_client_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.proj.wolfssl_client"/>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<property key="propertySet.[cw.dbg.conn].rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600"/>
-<property key="propertySet.[cw.dbg.ct.bareboard.gdi].logData" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryTimeout" value="20"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryWithTimeoutOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].TerminateConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].retryPromptUserActionOn" value="true"/>
-<property key="propertySet.[cw.dbg.ct].Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink Target"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableHSSTIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableNetworkIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableSerialIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableStopTransferIOModelConfig" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].ethernetController" value="UEC1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].executeReset" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkDebuggerAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkGateway" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkMACAddress" value="**-**-**-**-**-**"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkNetMask" value="255.255.255.255"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkTargetAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkUDPPort" value="1234"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].noIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].runOutOfReset" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].targetIsPalladium" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useInitFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useMemoryConfigFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkGateway" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkMACAddress" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkUDPPort" value="false"/>
-<property key="propertySet.[cw.dbg.main].systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfssl_client_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.proj.wolfssl_client" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfssl_client_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.proj.wolfssl_client"/>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<property key="propertySet.[cw.dbg.conn].rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard.gdi].logData" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryTimeout" value="20"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryWithTimeoutOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].TerminateConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].retryPromptUserActionOn" value="true"/>
-<property key="propertySet.[cw.dbg.ct].Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.1"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink Target"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableHSSTIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableNetworkIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableSerialIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableStopTransferIOModelConfig" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].ethernetController" value="UEC1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].executeReset" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkDebuggerAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkGateway" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkMACAddress" value="**-**-**-**-**-**"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkNetMask" value="255.255.255.255"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkTargetAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkUDPPort" value="1234"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].noIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].runOutOfReset" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].targetIsPalladium" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useInitFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useMemoryConfigFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkGateway" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkMACAddress" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkUDPPort" value="false"/>
-<property key="propertySet.[cw.dbg.main].systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.1"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.proj.wolfssl_client" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.proj.wolfssl_client"/>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.proj.wolfssl_client" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.proj.wolfssl_client"/>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.freescale.mcu.debug.connections.jlink.arm."/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.SimulatorConnectionAttributeBase" value=""/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.CommandLineArgs" value=""/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.ConfigFile" value=""/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.Debug port interface" value="JTAG"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.Delay after reset (ms)" value="0"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD fixed speed (Khz)" value="4000"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD speed" value="Fixed"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.Library" value="arm_jlink_gdi"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.USB device" value="0"/>
-<property key="propertySet.[com.freescale.mcu.debug.connections.jlink.arm].com.freescale.mcu.debug.connections.jlink.arm.names_of_user_added_attributes" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<property key="propertySet.[cw.dbg.conn].rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.2"/>
-<property key="propertySet.[cw.dbg.ct.bareboard.gdi].logData" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryTimeout" value="20"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryWithTimeoutOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].TerminateConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].retryPromptUserActionOn" value="true"/>
-<property key="propertySet.[cw.dbg.ct].Connection Type" value="com.freescale.mcu.debug.connections.jlink.arm"/>
-<property key="propertySet.[cw.dbg.main].templateId" value="None"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.2"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1410292099859"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink Target"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableHSSTIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableNetworkIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableSerialIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableStopTransferIOModelConfig" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].ethernetController" value="UEC1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].executeReset" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkDebuggerAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkGateway" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkMACAddress" value="**-**-**-**-**-**"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkNetMask" value="255.255.255.255"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkTargetAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkUDPPort" value="1234"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].noIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].runOutOfReset" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].targetIsPalladium" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useInitFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useMemoryConfigFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkGateway" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkMACAddress" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkUDPPort" value="false"/>
-<property key="propertySet.[cw.dbg.main].systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.2"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="hidden.applicator.com.freescale.debugger.applicator.launchconfiguration.lc.wolfssl_client_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.proj.wolfssl_client" value="com.freescale.debugger.applicator.launchconfiguration.lc.wolfssl_client_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.proj.wolfssl_client"/>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<property key="propertySet.[com.pemicro.mcu.debug.connections.pne.arm].com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<property key="propertySet.[cw.dbg.conn].rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.3"/>
-<property key="propertySet.[cw.dbg.ct.bareboard.gdi].logData" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryTimeout" value="20"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].RetryWithTimeoutOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].TerminateConnectionOn" value="false"/>
-<property key="propertySet.[cw.dbg.ct.targetConnLost].retryPromptUserActionOn" value="true"/>
-<property key="propertySet.[cw.dbg.ct].Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.3"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-<host>
-<properties>
-<property key="host.address" value=""/>
-<property key="host.defaultEncoding" value=""/>
-<property key="host.defaultUser" value="Christopher Conlon"/>
-<property key="host.description" value=""/>
-<property key="host.name" value="wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink Target"/>
-<property key="host.promptable" value="false"/>
-<property key="host.type" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system"/>
-<property key="propertySet.[OptionalPropertySet].enableConnectorServicesPropertyPage" value="false"/>
-<property key="propertySet.[OptionalPropertySet].enableGenericHostPropertyPage" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableHSSTIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableNetworkIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableSerialIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].enableStopTransferIOModelConfig" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].ethernetController" value="UEC1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].executeReset" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkDebuggerAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkGateway" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkMACAddress" value="**-**-**-**-**-**"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkNetMask" value="255.255.255.255"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkTargetAddress" value="127.0.0.1"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].networkUDPPort" value="1234"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].noIOModelConfig" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].runOutOfReset" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].targetIsPalladium" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useInitFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useMemoryConfigFile" value="true"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkGateway" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkMACAddress" value="false"/>
-<property key="propertySet.[cw.dbg.ct.bareboard].useNetworkUDPPort" value="false"/>
-<property key="propertySet.[cw.dbg.main].systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.HostID" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.system.140905160549-0600.3"/>
-<property key="propertySet.[cw.ide.settingscache].hidden.TimeStamp" value="1409954755358"/>
-</properties>
-</host>
-</APSC_Memento>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Sources/include.am b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Sources/include.am
deleted file mode 100644
index 335af80c6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Sources/include.am
+++ /dev/null
@@ -1,22 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += \
- mqx/wolfssl_client/.cproject \
- mqx/wolfssl_client/.project \
- mqx/wolfssl_client/Debugger/K70FN1M0.mem \
- mqx/wolfssl_client/Debugger/init_kinetis.tcl \
- mqx/wolfssl_client/Debugger/mass_erase_kinetis.tcl \
- mqx/wolfssl_client/ReferencedRSESystems.xml \
- mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch \
- mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch \
- mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink \
- mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch \
- mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch \
- mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
-
-EXTRA_DIST += \
- mqx/wolfssl_client/Sources/main.c \
- mqx/wolfssl_client/Sources/main.h
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Sources/main.c b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Sources/main.c
deleted file mode 100644
index 4b42b79ad..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Sources/main.c
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * main.c
- */
-
-#include "main.h"
-#include "util.h"
-
-#if !BSPCFG_ENABLE_IO_SUBSYSTEM
-#error This application requires BSPCFG_ENABLE_IO_SUBSYSTEM defined \
- non-zero in user_config.h. Please recompile BSP with this option.
-#endif
-
-#ifndef BSP_DEFAULT_IO_CHANNEL_DEFINED
-#error This application requires BSP_DEFAULT_IO_CHANNEL to be not NULL. \
- Please set corresponding BSPCFG_ENABLE_TTYx to non-zero in \
- user_config.h and recompile BSP with this option.
-#endif
-
-#if defined BSP_SDCARD_ESDHC_CHANNEL
-#if ! BSPCFG_ENABLE_ESDHC
-#error This application requires BSPCFG_ENABLE_ESDHC defined non-zero in \
- user_config.h. Please recompile libraries with this option.
-#endif
-
-#elif defined BSP_SDCARD_SDHC_CHANNEL
-
-#if ! BSPCFG_ENABLE_SDHC
-#error This application requires BSPCFG_ENABLE_SDHC defined non-zero in \
- user_config.h. Please recompile libraries with this option.
-#endif
-
-#endif
-
-#if defined (BSP_SDCARD_SPI_CHANNEL)
- #define SDCARD_COM_CHANNEL BSP_SDCARD_SPI_CHANNEL
-#elif defined (BSP_SDCARD_ESDHC_CHANNEL)
- #define SDCARD_COM_CHANNEL BSP_SDCARD_ESDHC_CHANNEL
-#elif defined (BSP_SDCARD_SDHC_CHANNEL)
- #define SDCARD_COM_CHANNEL BSP_SDCARD_SDHC_CHANNEL
-#else
- #error "SDCARD low level communication device not defined!"
-#endif
-
-TASK_TEMPLATE_STRUCT MQX_template_list[] =
-{
- /* Task number, Entry point, Stack, Pri, String, Auto? */
- {MAIN_TASK, Main_task, 20000, 9, "main", MQX_AUTO_START_TASK},
- {0, 0, 0, 0, 0, 0, }
-};
-
-/*TASK*-----------------------------------------------------
- *
- * Task Name : Main_task
- * Comments :
- * This task sets up the SD card and Ethernet devices,
- * then starts the example wolfSSL client. The example
- * wolfSSL client connects to a server over TLS and sends
- * a simple HTTP GET message, then prints out the reply
- * from the server.
- *
- * To change the IP address and port of the server,
- * change the wolfsslIP and wolfsslPort variables in
- * client_test(). Note that wolfsslIP needs to be given
- * in hexadecimal.
- *
- *END*-----------------------------------------------------*/
-
-void Main_task(uint32_t initial_data)
-{
- int ret = 0;
- char filesystem_name[] = "a:";
- char partman_name[] = "pm:";
- MQX_FILE_PTR com_handle, sdcard_handle, filesystem_handle, partman_handle;
-
- printf("Starting client example... \n");
-
- ret = sdcard_open(&com_handle, &sdcard_handle, &partman_handle,
- &filesystem_handle, partman_name, filesystem_name);
-
- if (ret != 0) {
- printf("error: sdcard_open(), ret = %d\n", ret);
- _mqx_exit(1);
- }
- printf("SD card installed to %s\n", filesystem_name);
-
- setup_ethernet();
- setup_clock();
- client_test();
-
- ret = sdcard_close(&sdcard_handle, &partman_handle, &filesystem_handle,
- partman_name, filesystem_name);
-
- if (ret != 0) {
- printf("error: sdcard_close(), ret = %d\n", ret);
- _mqx_exit(1);
- }
- printf("SD card uninstalled.\n");
-
- _mqx_exit(0);
-}
-
-void setup_ethernet(void)
-{
- int error;
- _enet_handle ehandle; /* for Ethernet driver */
- _rtcs_if_handle ihandle;
- _enet_address address;
-
- error = RTCS_create();
- if (error) {
- err_sys("failed to create RTCS");
- }
-
- ENET_get_mac_address(BSP_DEFAULT_ENET_DEVICE, ENET_IPADDR, address);
-
- /* Set up the Ethernet driver */
- error = ENET_initialize(BSP_DEFAULT_ENET_DEVICE, address, 0, &ehandle);
- if (error)
- err_sys("failed to initialize Ethernet driver");
-
- error = RTCS_if_add(ehandle, RTCS_IF_ENET, &ihandle);
- if (error)
- err_sys("failed to add interface for Ethernet");
-
- error = RTCS_if_bind(ihandle, ENET_IPADDR, ENET_IPMASK);
- if (error)
- err_sys("failed to bind interface for Ethernet");
-
-#ifdef GATE_IPADDR
- RTCS_gate_add(GATE_IPADDR, INADDR_ANY, INADDR_ANY);
-#endif
-
- printf("Ethernet device %d bound to %X\n", BSP_DEFAULT_ENET_DEVICE,
- ENET_IPADDR);
-}
-
-void setup_clock(void)
-{
- uint32_t ret = 0, i = 0;
- uint32_t sntp_connected = 0;
- uint32_t sntp_max_tries = 3;
- TIME_STRUCT time_s;
- DATE_STRUCT date_s;
-
- /* NTP server: nist1-lnk.binary.net */
- _ip_address ipaddr = IPADDR(216,229,0,179);
-
- for (i = 0; i < sntp_max_tries; i++) {
-
- printf("Getting time from NTP server [ attempt %u of %u ]...\n",
- i+1, sntp_max_tries);
-
- /* update time from NTP server */
- ret = SNTP_oneshot(ipaddr, 5000);
-
- if (ret == RTCS_OK) {
- sntp_connected = 1;
- printf("SNTP successfully updated device time\n");
- break;
- } else if (ret == RTCSERR_TIMEOUT) {
- printf("SNTP attempt timed out.\n");
- }
-
- _time_delay(1000);
- }
-
- if (sntp_connected == 0) {
- err_sys("SNTP failed to update device time");
- }
-
- /* print device time, for debug purposes */
- _time_get(&time_s);
- _time_to_date(&time_s, &date_s);
- printf("Current time: %02d/%02d/%02d %02d:%02d:%02d\n",
- date_s.YEAR, date_s.MONTH, date_s.DAY, date_s.HOUR, date_s.MINUTE,
- date_s.SECOND);
-
- return;
-}
-
-int myVerify(int preverify, WOLFSSL_X509_STORE_CTX* store)
-{
- (void)preverify;
- char buffer[80];
-
- printf("In verification callback, error = %d, %s\n",
- store->error, wolfSSL_ERR_error_string(store->error, buffer));
-
- return 0;
-}
-
-void client_test(void)
-{
- char msg[64];
- char reply[1024];
- int sockfd, input;
- int ret = 0, msgSz = 0;
- struct sockaddr_in servaddr;
- WOLFSSL_CTX* ctx;
- WOLFSSL* ssl;
-
- long wolfsslIP = IPADDR(192,168,1,125);
- long wolfsslPort = 11111;
-
- /* for debug, compile wolfSSL with DEBUG_WOLFSSL defined */
- wolfSSL_Debugging_ON();
-
- wolfSSL_Init();
-
- ctx = wolfSSL_CTX_new(wolfTLSv1_2_client_method());
- if (ctx == 0)
- err_sys("setting up ctx");
-
- wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, myVerify);
-
- ret = wolfSSL_CTX_use_certificate_file(ctx, clientCert, SSL_FILETYPE_PEM);
- if (ret != SSL_SUCCESS)
- err_sys("can't load client cert file, check file");
-
- ret = wolfSSL_CTX_use_PrivateKey_file(ctx, clientKey, SSL_FILETYPE_PEM);
- if (ret != SSL_SUCCESS)
- err_sys("can't load client key file, check file");
-
- ret = wolfSSL_CTX_load_verify_locations(ctx, caCert, 0);
- if (ret != SSL_SUCCESS)
- err_sys("can't load CA cert file, check file");
-
- /* create socket descriptor */
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if (sockfd == RTCS_SOCKET_ERROR) {
- err_sys("socket creation failed");
- } else {
- printf("socket created successfully\n");
- }
-
- /*
- * Unlike most TCP/IP stacks, RTCS requires that sin_port and
- * sin_addr needs to be in Host Byte Order, not Network Byte Order.
- * This means we shouldn't use htons() when setting these values.
- */
- memset((char*)&servaddr, 0, sizeof(servaddr));
- servaddr.sin_family = AF_INET;
- servaddr.sin_port = wolfsslPort;
- servaddr.sin_addr.s_addr = wolfsslIP;
-
- ret = connect(sockfd, &servaddr, sizeof(servaddr));
- if (ret != RTCS_OK) {
- err_sys("connect() failed");
- } else {
- printf("Connected to %lx, port %d.\n", servaddr.sin_addr.s_addr,
- servaddr.sin_port);
- }
-
- if ( (ssl = wolfSSL_new(ctx)) == NULL)
- err_sys("wolfSSL_new failed");
-
- ret = wolfSSL_set_fd(ssl, sockfd);
- if (ret != SSL_SUCCESS)
- err_sys("wolfSSL_set_fd failed");
-
- ret = wolfSSL_connect(ssl);
- if (ret != SSL_SUCCESS)
- err_sys("wolfSSL_connect failed");
-
- printf("wolfSSL_connect() ok, sending GET...\n");
- msgSz = 28;
- strncpy(msg, "GET /index.html HTTP/1.0\r\n\r\n", msgSz);
- if (wolfSSL_write(ssl, msg, msgSz) != msgSz)
- err_sys("wolfSSL_write() failed");
-
- input = wolfSSL_read(ssl, reply, sizeof(reply)-1);
- if (input > 0) {
- reply[input] = 0;
- printf("Server response: %s\n", reply);
-
- while (1) {
- input = wolfSSL_read(ssl, reply, sizeof(reply)-1);
- if (input > 0) {
- reply[input] = 0;
- printf("%s\n", reply);
- } else {
- break;
- }
- }
- }
-
- wolfSSL_shutdown(ssl);
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
- wolfSSL_Cleanup();
-}
-
-/* EOF */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Sources/main.h b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Sources/main.h
deleted file mode 100644
index 1740ddcb4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/Sources/main.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* main.h */
-
-#ifndef __main_h_
-#define __main_h_
-
-#include <mqx.h>
-#include <bsp.h>
-#include <mfs.h>
-#include <fio.h>
-#include <rtcs.h>
-#include <ipcfg.h>
-#include <sdcard.h>
-#include <spi.h>
-#include <part_mgr.h>
-
-#include <wolfssl/ssl.h>
-
-#define MAIN_TASK 1
-
-extern void Main_task(uint32_t);
-extern void setup_ethernet(void);
-extern void setup_clock(void);
-extern void client_test(void);
-
-/* cert file locations */
-static const char* caCert = "a:\\certs\\ca-cert.pem";
-static const char* clientCert = "a:\\certs\\client-cert.pem";
-static const char* clientKey = "a:\\certs\\client-key.pem";
-
-static inline void err_sys(const char* msg)
-{
- printf("wolfssl error: %s\n", msg);
- if (msg)
- _mqx_exit(1);
-}
-
-/* PPP device must be set manually and
- * must be different from the default IO channel (BSP_DEFAULT_IO_CHANNEL)
- */
-#define PPP_DEVICE "ittyb:"
-
-/*
- * Define PPP_DEVICE_DUN only when using PPP to communicate
- * to Win9x Dial-Up Networking over a null-modem
- * This is ignored if PPP_DEVICE is not #define'd
- */
-#define PPP_DEVICE_DUN 1
-
-#ifndef ENET_IPADDR
- #define ENET_IPADDR IPADDR(192,168,1,155)
-#endif
-
-#ifndef ENET_IPMASK
- #define ENET_IPMASK IPADDR(255,255,255,0)
-#endif
-
-#define GATE_IPADDR IPADDR(192,168,1,1)
-
-#endif /* __main_h_ */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch
deleted file mode 100644
index 183c73dc4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch
+++ /dev/null
@@ -1,133 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_DDRData_Debug/wolfssl_client.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfssl_client"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.685476017"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfssl_client"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch
deleted file mode 100644
index 32434797a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch
+++ /dev/null
@@ -1,133 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.1"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_DDRData_Release/wolfssl_client.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfssl_client"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.14851640"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfssl_client"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink
deleted file mode 100644
index f40a58f1c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink
+++ /dev/null
@@ -1,34 +0,0 @@
-[BREAKPOINTS]
-ShowInfoWin = 1
-EnableFlashBP = 2
-BPDuringExecution = 0
-[CFI]
-CFISize = 0x00
-CFIAddr = 0x00
-[CPU]
-OverrideMemMap = 0
-AllowSimulation = 1
-ScriptFile=""
-[FLASH]
-CacheExcludeSize = 0x00
-CacheExcludeAddr = 0x00
-MinNumBytesFlashDL = 0
-SkipProgOnCRCMatch = 1
-VerifyDownload = 1
-AllowCaching = 1
-EnableFlashDL = 2
-Override = 0
-Device="UNSPECIFIED"
-[GENERAL]
-WorkRAMSize = 0x00
-WorkRAMAddr = 0x00
-RAMUsageLimit = 0x00
-[SWO]
-SWOLogFile=""
-[MEM]
-RdOverrideOrMask = 0x00
-RdOverrideAndMask = 0xFFFFFFFF
-RdOverrideAddr = 0xFFFFFFFF
-WrOverrideOrMask = 0x00
-WrOverrideAndMask = 0xFFFFFFFF
-WrOverrideAddr = 0xFFFFFFFF
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch
deleted file mode 100644
index 66a3e7c01..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch
+++ /dev/null
@@ -1,182 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.disable_interrupts_during_stepping" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.altLoadAddr" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.enableAltLoadAddr" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<listAttribute key="com.freescale.cdt.debug.cw.Debug"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.ExecuteTasks" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.StandardDownload" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskInitialLaunches"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskNames"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskSuccessiveRuns"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskTypes"/>
-<listAttribute key="com.freescale.cdt.debug.cw.ExecutablePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePC" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtProgramEntryPoint" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.InitializePCAtSymbol" value="main"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtUserSpecified" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.LaunchMode" value="DOWNLOAD"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtUserSpecified" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemoteDownload"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemotePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.ResumeProgram" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.SMPCores"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.SYNC_WITH_ENCL_PROJ" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.UseApplication" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.freescale.mcu.debug.connections.jlink.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.freescale.mcu.debug.connections.jlink.arm."/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.SimulatorConnectionAttributeBase" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.2"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeInitScripts" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeResetSequence" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.skipSystemInitialization" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.CommandLineArgs" value=""/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.ConfigFile" value=""/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Debug port interface" value="JTAG"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Delay after reset (ms)" value="0"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD fixed speed (Khz)" value="4000"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD speed" value="Fixed"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Library" value="arm_jlink_gdi"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.USB device" value="0"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.names_of_user_added_attributes" value=""/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.sa.mcu.launch.ENABLE_ANALYSIS" value="false"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;contentList/&gt;"/>
-<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;globalVariableList/&gt;&#13;&#10;"/>
-<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList/&gt;&#13;&#10;"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_SramData_Debug/wolfssl_client.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfssl_client"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006"/>
-<intAttribute key="org.eclipse.cdt.launch.SET_REGULAR_BREAKPOINT_TYPE_AS" value="0"/>
-<booleanAttribute key="org.eclipse.cdt.launch.USE_SET_REGULAR_BREAKPOINT_TYPE_AS" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfssl_client"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SERVER_SOCKET" value="false"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET" value="false"/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_HOST" value=""/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_PORT" value=""/>
-<stringAttribute key="process_factory_id" value="com.freescale.cdt.debug.cw.core.ProcessFactoryID"/>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch
deleted file mode 100644
index 66a3e7c01..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch
+++ /dev/null
@@ -1,182 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.disable_interrupts_during_stepping" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.altLoadAddr" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.enableAltLoadAddr" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<listAttribute key="com.freescale.cdt.debug.cw.Debug"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.ExecuteTasks" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.StandardDownload" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskInitialLaunches"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskNames"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskSuccessiveRuns"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskTypes"/>
-<listAttribute key="com.freescale.cdt.debug.cw.ExecutablePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePC" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtProgramEntryPoint" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.InitializePCAtSymbol" value="main"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtUserSpecified" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.LaunchMode" value="DOWNLOAD"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtUserSpecified" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemoteDownload"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemotePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.ResumeProgram" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.SMPCores"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.SYNC_WITH_ENCL_PROJ" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.UseApplication" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.freescale.mcu.debug.connections.jlink.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.freescale.mcu.debug.connections.jlink.arm."/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.SimulatorConnectionAttributeBase" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.2"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeInitScripts" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeResetSequence" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.skipSystemInitialization" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.CommandLineArgs" value=""/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.ConfigFile" value=""/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Debug port interface" value="JTAG"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Delay after reset (ms)" value="0"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD fixed speed (Khz)" value="4000"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.JTAG/SWD speed" value="Fixed"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.Library" value="arm_jlink_gdi"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.USB device" value="0"/>
-<stringAttribute key="com.freescale.mcu.debug.connections.jlink.arm.names_of_user_added_attributes" value=""/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.sa.mcu.launch.ENABLE_ANALYSIS" value="false"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;contentList/&gt;"/>
-<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;globalVariableList/&gt;&#13;&#10;"/>
-<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList/&gt;&#13;&#10;"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_SramData_Debug/wolfssl_client.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfssl_client"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.1358518006"/>
-<intAttribute key="org.eclipse.cdt.launch.SET_REGULAR_BREAKPOINT_TYPE_AS" value="0"/>
-<booleanAttribute key="org.eclipse.cdt.launch.USE_SET_REGULAR_BREAKPOINT_TYPE_AS" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfssl_client"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SERVER_SOCKET" value="false"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET" value="false"/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_HOST" value=""/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_PORT" value=""/>
-<stringAttribute key="process_factory_id" value="com.freescale.cdt.debug.cw.core.ProcessFactoryID"/>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch b/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
deleted file mode 100644
index 9f67cb934..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/mqx/wolfssl_client/wolfssl_client_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
+++ /dev/null
@@ -1,168 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="com.freescale.cdt.launch.cw.download">
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor" value="K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.busFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.checkUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.hardFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.intErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.memManageErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.noCoprocessorErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Exceptions.stateUsageFaultErr" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.disable_interrupts_during_stepping" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_enabled" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Interrupt.interrupt_mask" value="0"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.altLoadAddr" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Debugger PIC Settings Panel.enableAltLoadAddr" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.IVuninitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDconstant" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDexecutable" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDinitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SDuninitialized" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVconstant" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVexecutable" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVinitialized" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Download.SVuninitialized" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.coreIndex" value="0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.homogeneousMulticore" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.initPath" value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.memConfigPath" value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.simulator" value=""/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.smp" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.systemType" value="com.freescale.cw.system.kinetis.K70F.K70FN1M0"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useDefaultConfigFile" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useInitFile" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.Embedded Initialization.useMemoryConfigFile" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.CoreNameList">
-<listEntry value="K70FN1M0#0"/>
-</listAttribute>
-<listAttribute key="com.freescale.cdt.debug.cw.Debug"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.DebuggerTab.StopAtUserSpecified" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.ExecuteTasks" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Embedded Download.StandardDownload" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskInitialLaunches"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskNames"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskSuccessiveRuns"/>
-<listAttribute key="com.freescale.cdt.debug.cw.Embedded Download.TaskTypes"/>
-<listAttribute key="com.freescale.cdt.debug.cw.ExecutablePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePC" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtProgramEntryPoint" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.InitializePCAtSymbol" value="main"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.InitializePCAtUserSpecified" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.LaunchMode" value="DOWNLOAD"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtProgramEntryPoint" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtStartUp" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.PN_StopAtUserSpecified" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.RefreshPolicy.RefreshPeriod" value="2.0"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemoteDownload"/>
-<listAttribute key="com.freescale.cdt.debug.cw.RemotePath"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.ResumeProgram" value="true"/>
-<listAttribute key="com.freescale.cdt.debug.cw.SMPCores"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.SYNC_WITH_ENCL_PROJ" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.CacheSymbolicsBetweenRuns" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.Symbolics.UseExecutableCopy" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.UDPPort" value="1234"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.UseApplication" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryConnectionOn" value="false"/>
-<intAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryTimeout" value="20"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.RetryWithTimeoutOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.TerminateConnectionOn" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.ConnectionCommonData.TargetConnectionLost.promptUserActionOn" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Protocol Plugin Name" value="ARM GDI"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Connection Type" value="com.pemicro.mcu.debug.connections.pne.arm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.DebuggerCommonData.Processor Attr Name" value="com.freescale.cdt.debug.cw.CW_SHADOWED_PREF.ARM Debugger.processor"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.PhysicalConnectionAttributeBase" value="com.pemicro.mcu.debug.connections.pne.arm."/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.core.settings.GdiConnection.Common.logData" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.rseSystemId" value="com.freescale.cdt.debug.cw.core.ui.rse.systemtype.bareboard.hardware.140905160549-0600.3"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.core.settings.wizardSystemNameHint" value="PnE U-MultiLink"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.debuggerAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.disableIO" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.ethCtrl" value="UEC1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeInitScripts" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerCoresReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executePerprocessorReset" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeReset" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.executeResetSequence" value="true"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.gateway" value="127.0.0.1"/>
-<listAttribute key="com.freescale.cdt.debug.cw.initPathList">
-<listEntry value="${ProjDirPath}/Debugger/init_kinetis.tcl"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.macAddress" value="**-**-**-**-**-**"/>
-<listAttribute key="com.freescale.cdt.debug.cw.memConfigPathList">
-<listEntry value="${ProjDirPath}/Debugger/K70FN1M0.mem"/>
-</listAttribute>
-<stringAttribute key="com.freescale.cdt.debug.cw.netMask" value="255.255.255.255"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.osContributorID" value="com.freescale.os.mqx.cortexm"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.rtospluginname" value="MQX RTOS CORTEXM"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.osawareness.targetos" value="MQX OS for Cortex"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perCoreResetList"/>
-<listAttribute key="com.freescale.cdt.debug.cw.perProcessorResetList"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.processor" value="Generic"/>
-<listAttribute key="com.freescale.cdt.debug.cw.runOutOfResetList">
-<listEntry value="false"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.skipSystemInitialization" value="false"/>
-<stringAttribute key="com.freescale.cdt.debug.cw.targetAddress" value="127.0.0.1"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useGateway" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useHSSTIO" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useInitPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useMacAddress" value="false"/>
-<listAttribute key="com.freescale.cdt.debug.cw.useMemConfigPathList">
-<listEntry value="true"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useNetworkTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useSerialTransferIO" value="false"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useStopTransferIO" value="true"/>
-<booleanAttribute key="com.freescale.cdt.debug.cw.useUDPPort" value="false"/>
-<listAttribute key="com.freescale.panel.list">
-<listEntry value="Debugger Common Settings"/>
-<listEntry value="ARM Exceptions"/>
-<listEntry value="ARM Interrupt"/>
-<listEntry value="Embedded Download"/>
-<listEntry value="Debugger PIC Settings Panel"/>
-<listEntry value="Other Executables"/>
-<listEntry value="Symbolics"/>
-<listEntry value="osawareness"/>
-</listAttribute>
-<booleanAttribute key="com.freescale.sa.mcu.launch.ENABLE_ANALYSIS" value="false"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.CommandLineArgs" value="arm_icd"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.Library" value="arm_pne_gdi"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.PEDEBUG_CURRENTDEVICE" value="K70FN1M0"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_PORT" value="21"/>
-<stringAttribute key="com.pemicro.mcu.debug.connections.pne.arm.STARTUP_interface_selection" value="1"/>
-<booleanAttribute key="forceShellDownload" value="false"/>
-<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="com.freescale.cdt.debug.cw.arm.ArmDebugger"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/>
-<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_REGISTER_BOOKKEEPING" value="false"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_RESTORE_WATCHPOINTS" value="true"/>
-<booleanAttribute key="org.eclipse.cdt.launch.ENABLE_VARIABLE_BOOKKEEPING" value="false"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="twrk70f120m_Int_Flash_SramData_Release/wolfssl_client.elf"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="wolfssl_client"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="org.eclipse.cdt.cross.arm.gnu.sourcery.windows.elf.debug.99688619"/>
-<intAttribute key="org.eclipse.cdt.launch.SET_REGULAR_BREAKPOINT_TYPE_AS" value="0"/>
-<booleanAttribute key="org.eclipse.cdt.launch.USE_SET_REGULAR_BREAKPOINT_TYPE_AS" value="false"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/wolfssl_client"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SERVER_SOCKET" value="false"/>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET" value="false"/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_HOST" value=""/>
-<stringAttribute key="org.eclipse.debug.ui.ATTR_REDIRECT_TO_SOCKET_PORT" value=""/>
-</launchConfiguration>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/resource.h b/FreeRTOS-Plus/Source/WolfSSL/resource.h
deleted file mode 100644
index b8c8297e7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/resource.h
+++ /dev/null
@@ -1,14 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by wolfssl.rc
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 101
-#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1001
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
diff --git a/FreeRTOS-Plus/Source/WolfSSL/rpm/include.am b/FreeRTOS-Plus/Source/WolfSSL/rpm/include.am
deleted file mode 100644
index e5253dd15..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/rpm/include.am
+++ /dev/null
@@ -1,37 +0,0 @@
-# vim:ft=automake
-
-rpm-build: rpm/spec dist
- @rm -f *.rpm
- @rm -f ~/rpmbuild/RPMS/x86_64/$(PACKAGE)-$(VERSION)*.rpm
- @rm -f ~/rpmbuild/SRPMS/$(PACKAGE)-$(VERSION)*.rpm
- @mkdir -p ~/rpmbuild/BUILD/
- @mkdir -p ~/rpmbuild/RPMS/i386/
- @mkdir -p ~/rpmbuild/RPMS/i686/
- @mkdir -p ~/rpmbuild/RPMS/noarch/
- @mkdir -p ~/rpmbuild/RPMS/x86_64/
- @mkdir -p ~/rpmbuild/SOURCES/
- @mkdir -p ~/rpmbuild/SPECS/
- @mkdir -p ~/rpmbuild/SRPMS/
- @cp $(PACKAGE)-$(VERSION).tar.gz ~/rpmbuild/SOURCES/
- @rpmbuild -ba --clean rpm/spec
- @cp ~/rpmbuild/RPMS/x86_64/$(PACKAGE)-$(VERSION)*.rpm .
- @cp ~/rpmbuild/RPMS/x86_64/$(PACKAGE)-devel-$(VERSION)*.rpm .
- @cp ~/rpmbuild/RPMS/x86_64/$(PACKAGE)-debuginfo-$(VERSION)*.rpm .
- @cp ~/rpmbuild/SRPMS/$(PACKAGE)-$(VERSION)*.rpm .
-
-rpm-sign: rpm-build
- @rpm --addsign *.rpm
- @rpm --checksig *.rpm
-
-clean-rpm:
- @rm -f *.tar.gz
- @rm -f *.src.rpm
- @rm -f *.rpm
-
-rpm: rpm-build
-
-release: rpm-sign
-
-auto-rpmbuild:
- @auto-br-rpmbuild -ba rpm/spec
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/rpm/spec.in b/FreeRTOS-Plus/Source/WolfSSL/rpm/spec.in
deleted file mode 100644
index 188d91066..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/rpm/spec.in
+++ /dev/null
@@ -1,345 +0,0 @@
-Summary: Embedded SSL Library
-Name: @PACKAGE@
-Version: @VERSION@
-Release: 1
-License: GPLv2
-Group: System Environment/Libraries
-BuildRequires: gcc
-BuildRequires: glibc
-BuildRequires: glibc-common
-BuildRequires: glibc-devel
-BuildRequires: glibc-headers
-BuildRequires: make
-BuildRequires: pkgconfig
-BuildRequires: sed
-BuildRequires: tar
-URL: http://www.wolfssl.com/
-
-Packager: Brian Aker <brian@tangent.org>
-
-Source: http://wolfssl.com/%{name}-%{version}.tar.gz
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
-
-%description
-Misc tools for wolfSSL.
-
-%package devel
-Summary: Header files and development libraries for %{name}
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-
-%description devel
-This package contains the header files and development libraries
-for %{name}. If you like to develop programs using %{name},
-you will need to install %{name}-devel.
-
-%prep
-%setup -q
-
-%configure
-
-
-%build
-%{__make} %{?_smp_mflags}
-
-%install
-%{__rm} -rf %{buildroot}
-%{__make} install DESTDIR="%{buildroot}" AM_INSTALL_PROGRAM_FLAGS=""
-mkdir -p $RPM_BUILD_ROOT/
-
-%check
-
-
-%clean
-%{__rm} -rf %{buildroot}
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-%files
-%defattr(-,root,root,-)
-%doc AUTHORS ChangeLog.md COPYING README README.md
-%{_docdir}/wolfssl/taoCert.txt
-%{_docdir}/wolfssl/example/echoserver.c
-%{_docdir}/wolfssl/example/server.c
-%{_docdir}/wolfssl/example/echoclient.c
-%{_docdir}/wolfssl/example/client.c
-%{_docdir}/wolfssl/example/sctp-client.c
-%{_docdir}/wolfssl/example/sctp-server.c
-%{_docdir}/wolfssl/example/sctp-client-dtls.c
-%{_docdir}/wolfssl/example/sctp-server-dtls.c
-%{_docdir}/wolfssl/example/tls_bench.c
-%{_docdir}/wolfssl/README.txt
-%{_libdir}/libwolfssl.la
-%{_libdir}/libwolfssl.so
-%{_libdir}/libwolfssl.so.24
-%{_libdir}/libwolfssl.so.24.1.0
-
-%files devel
-%defattr(-,root,root,-)
-%doc AUTHORS ChangeLog.md COPYING README README.md
-%{_bindir}/wolfssl-config
-%{_includedir}/cyassl/callbacks.h
-%{_includedir}/cyassl/certs_test.h
-%{_includedir}/cyassl/crl.h
-%{_includedir}/cyassl/ctaocrypt/aes.h
-%{_includedir}/cyassl/ctaocrypt/arc4.h
-%{_includedir}/cyassl/ctaocrypt/asn.h
-%{_includedir}/cyassl/ctaocrypt/asn_public.h
-%{_includedir}/cyassl/ctaocrypt/blake2-impl.h
-%{_includedir}/cyassl/ctaocrypt/blake2-int.h
-%{_includedir}/cyassl/ctaocrypt/blake2.h
-%{_includedir}/cyassl/ctaocrypt/camellia.h
-%{_includedir}/cyassl/ctaocrypt/chacha.h
-%{_includedir}/cyassl/ctaocrypt/coding.h
-%{_includedir}/cyassl/ctaocrypt/compress.h
-%{_includedir}/cyassl/ctaocrypt/des3.h
-%{_includedir}/cyassl/ctaocrypt/dh.h
-%{_includedir}/cyassl/ctaocrypt/dsa.h
-%{_includedir}/cyassl/ctaocrypt/ecc.h
-%{_includedir}/cyassl/ctaocrypt/error-crypt.h
-%{_includedir}/cyassl/ctaocrypt/fips_test.h
-%{_includedir}/cyassl/ctaocrypt/hc128.h
-%{_includedir}/cyassl/ctaocrypt/hmac.h
-%{_includedir}/cyassl/ctaocrypt/integer.h
-%{_includedir}/cyassl/ctaocrypt/logging.h
-%{_includedir}/cyassl/ctaocrypt/md2.h
-%{_includedir}/cyassl/ctaocrypt/md4.h
-%{_includedir}/cyassl/ctaocrypt/md5.h
-%{_includedir}/cyassl/ctaocrypt/memory.h
-%{_includedir}/cyassl/ctaocrypt/misc.h
-%{_includedir}/cyassl/ctaocrypt/mpi_class.h
-%{_includedir}/cyassl/ctaocrypt/mpi_superclass.h
-%{_includedir}/cyassl/ctaocrypt/pkcs7.h
-%{_includedir}/cyassl/ctaocrypt/poly1305.h
-%{_includedir}/cyassl/ctaocrypt/pwdbased.h
-%{_includedir}/cyassl/ctaocrypt/rabbit.h
-%{_includedir}/cyassl/ctaocrypt/random.h
-%{_includedir}/cyassl/ctaocrypt/ripemd.h
-%{_includedir}/cyassl/ctaocrypt/rsa.h
-%{_includedir}/cyassl/ctaocrypt/settings.h
-%{_includedir}/cyassl/ctaocrypt/settings_comp.h
-%{_includedir}/cyassl/ctaocrypt/sha.h
-%{_includedir}/cyassl/ctaocrypt/sha256.h
-%{_includedir}/cyassl/ctaocrypt/sha512.h
-%{_includedir}/cyassl/ctaocrypt/tfm.h
-%{_includedir}/cyassl/ctaocrypt/types.h
-%{_includedir}/cyassl/ctaocrypt/visibility.h
-%{_includedir}/cyassl/ctaocrypt/wc_port.h
-%{_includedir}/cyassl/error-ssl.h
-%{_includedir}/cyassl/ocsp.h
-%{_includedir}/cyassl/openssl/asn1.h
-%{_includedir}/cyassl/openssl/bio.h
-%{_includedir}/cyassl/openssl/bn.h
-%{_includedir}/cyassl/openssl/conf.h
-%{_includedir}/cyassl/openssl/crypto.h
-%{_includedir}/cyassl/openssl/des.h
-%{_includedir}/cyassl/openssl/dh.h
-%{_includedir}/cyassl/openssl/dsa.h
-%{_includedir}/cyassl/openssl/ec.h
-%{_includedir}/cyassl/openssl/ec25519.h
-%{_includedir}/cyassl/openssl/ec448.h
-%{_includedir}/cyassl/openssl/ecdh.h
-%{_includedir}/cyassl/openssl/ecdsa.h
-%{_includedir}/cyassl/openssl/ed25519.h
-%{_includedir}/cyassl/openssl/ed448.h
-%{_includedir}/cyassl/openssl/engine.h
-%{_includedir}/cyassl/openssl/err.h
-%{_includedir}/cyassl/openssl/evp.h
-%{_includedir}/cyassl/openssl/hmac.h
-%{_includedir}/cyassl/openssl/lhash.h
-%{_includedir}/cyassl/openssl/md4.h
-%{_includedir}/cyassl/openssl/md5.h
-%{_includedir}/cyassl/openssl/ocsp.h
-%{_includedir}/cyassl/openssl/opensslconf.h
-%{_includedir}/cyassl/openssl/opensslv.h
-%{_includedir}/cyassl/openssl/ossl_typ.h
-%{_includedir}/cyassl/openssl/pem.h
-%{_includedir}/cyassl/openssl/pkcs12.h
-%{_includedir}/cyassl/openssl/rand.h
-%{_includedir}/cyassl/openssl/ripemd.h
-%{_includedir}/cyassl/openssl/rsa.h
-%{_includedir}/cyassl/openssl/sha.h
-%{_includedir}/cyassl/openssl/ssl.h
-%{_includedir}/cyassl/openssl/ssl23.h
-%{_includedir}/cyassl/openssl/stack.h
-%{_includedir}/cyassl/openssl/ui.h
-%{_includedir}/cyassl/openssl/x509.h
-%{_includedir}/cyassl/openssl/x509v3.h
-%{_includedir}/cyassl/options.h
-%{_includedir}/cyassl/sniffer.h
-%{_includedir}/cyassl/sniffer_error.h
-%{_includedir}/cyassl/ssl.h
-%{_includedir}/cyassl/test.h
-%{_includedir}/cyassl/version.h
-%{_includedir}/wolfssl/callbacks.h
-%{_includedir}/wolfssl/certs_test.h
-%{_includedir}/wolfssl/crl.h
-%{_includedir}/wolfssl/error-ssl.h
-%{_includedir}/wolfssl/ocsp.h
-%{_includedir}/wolfssl/openssl/aes.h
-%{_includedir}/wolfssl/openssl/asn1.h
-%{_includedir}/wolfssl/openssl/bio.h
-%{_includedir}/wolfssl/openssl/bn.h
-%{_includedir}/wolfssl/openssl/buffer.h
-%{_includedir}/wolfssl/openssl/conf.h
-%{_includedir}/wolfssl/openssl/crypto.h
-%{_includedir}/wolfssl/openssl/des.h
-%{_includedir}/wolfssl/openssl/dh.h
-%{_includedir}/wolfssl/openssl/dsa.h
-%{_includedir}/wolfssl/openssl/ec.h
-%{_includedir}/wolfssl/openssl/ec25519.h
-%{_includedir}/wolfssl/openssl/ec448.h
-%{_includedir}/wolfssl/openssl/ecdh.h
-%{_includedir}/wolfssl/openssl/ecdsa.h
-%{_includedir}/wolfssl/openssl/ed25519.h
-%{_includedir}/wolfssl/openssl/ed448.h
-%{_includedir}/wolfssl/openssl/engine.h
-%{_includedir}/wolfssl/openssl/err.h
-%{_includedir}/wolfssl/openssl/evp.h
-%{_includedir}/wolfssl/openssl/hmac.h
-%{_includedir}/wolfssl/openssl/lhash.h
-%{_includedir}/wolfssl/openssl/md4.h
-%{_includedir}/wolfssl/openssl/md5.h
-%{_includedir}/wolfssl/openssl/obj_mac.h
-%{_includedir}/wolfssl/openssl/objects.h
-%{_includedir}/wolfssl/openssl/ocsp.h
-%{_includedir}/wolfssl/openssl/opensslconf.h
-%{_includedir}/wolfssl/openssl/opensslv.h
-%{_includedir}/wolfssl/openssl/ossl_typ.h
-%{_includedir}/wolfssl/openssl/pem.h
-%{_includedir}/wolfssl/openssl/pkcs12.h
-%{_includedir}/wolfssl/openssl/pkcs7.h
-%{_includedir}/wolfssl/openssl/rand.h
-%{_includedir}/wolfssl/openssl/rc4.h
-%{_includedir}/wolfssl/openssl/ripemd.h
-%{_includedir}/wolfssl/openssl/rsa.h
-%{_includedir}/wolfssl/openssl/sha.h
-%{_includedir}/wolfssl/openssl/sha3.h
-%{_includedir}/wolfssl/openssl/ssl.h
-%{_includedir}/wolfssl/openssl/ssl23.h
-%{_includedir}/wolfssl/openssl/stack.h
-%{_includedir}/wolfssl/openssl/tls1.h
-%{_includedir}/wolfssl/openssl/ui.h
-%{_includedir}/wolfssl/openssl/x509.h
-%{_includedir}/wolfssl/openssl/x509_vfy.h
-%{_includedir}/wolfssl/openssl/x509v3.h
-%{_includedir}/wolfssl/options.h
-%{_includedir}/wolfssl/sniffer.h
-%{_includedir}/wolfssl/sniffer_error.h
-%{_includedir}/wolfssl/ssl.h
-%{_includedir}/wolfssl/test.h
-%{_includedir}/wolfssl/version.h
-%{_includedir}/wolfssl/wolfcrypt/aes.h
-%{_includedir}/wolfssl/wolfcrypt/arc4.h
-%{_includedir}/wolfssl/wolfcrypt/asn.h
-%{_includedir}/wolfssl/wolfcrypt/asn_public.h
-%{_includedir}/wolfssl/wolfcrypt/blake2-impl.h
-%{_includedir}/wolfssl/wolfcrypt/blake2-int.h
-%{_includedir}/wolfssl/wolfcrypt/blake2.h
-%{_includedir}/wolfssl/wolfcrypt/camellia.h
-%{_includedir}/wolfssl/wolfcrypt/chacha.h
-%{_includedir}/wolfssl/wolfcrypt/chacha20_poly1305.h
-%{_includedir}/wolfssl/wolfcrypt/cmac.h
-%{_includedir}/wolfssl/wolfcrypt/coding.h
-%{_includedir}/wolfssl/wolfcrypt/compress.h
-%{_includedir}/wolfssl/wolfcrypt/cpuid.h
-%{_includedir}/wolfssl/wolfcrypt/cryptocb.h
-%{_includedir}/wolfssl/wolfcrypt/curve25519.h
-%{_includedir}/wolfssl/wolfcrypt/curve448.h
-%{_includedir}/wolfssl/wolfcrypt/des3.h
-%{_includedir}/wolfssl/wolfcrypt/dh.h
-%{_includedir}/wolfssl/wolfcrypt/dsa.h
-%{_includedir}/wolfssl/wolfcrypt/ecc.h
-%{_includedir}/wolfssl/wolfcrypt/ed25519.h
-%{_includedir}/wolfssl/wolfcrypt/ed448.h
-%{_includedir}/wolfssl/wolfcrypt/error-crypt.h
-%{_includedir}/wolfssl/wolfcrypt/fe_448.h
-%{_includedir}/wolfssl/wolfcrypt/fe_operations.h
-%{_includedir}/wolfssl/wolfcrypt/fips_test.h
-%{_includedir}/wolfssl/wolfcrypt/ge_448.h
-%{_includedir}/wolfssl/wolfcrypt/ge_operations.h
-%{_includedir}/wolfssl/wolfcrypt/hash.h
-%{_includedir}/wolfssl/wolfcrypt/hc128.h
-%{_includedir}/wolfssl/wolfcrypt/hmac.h
-%{_includedir}/wolfssl/wolfcrypt/idea.h
-%{_includedir}/wolfssl/wolfcrypt/integer.h
-%{_includedir}/wolfssl/wolfcrypt/logging.h
-%{_includedir}/wolfssl/wolfcrypt/md2.h
-%{_includedir}/wolfssl/wolfcrypt/md4.h
-%{_includedir}/wolfssl/wolfcrypt/md5.h
-%{_includedir}/wolfssl/wolfcrypt/mem_track.h
-%{_includedir}/wolfssl/wolfcrypt/memory.h
-%{_includedir}/wolfssl/wolfcrypt/misc.h
-%{_includedir}/wolfssl/wolfcrypt/mpi_class.h
-%{_includedir}/wolfssl/wolfcrypt/mpi_superclass.h
-%{_includedir}/wolfssl/wolfcrypt/pkcs12.h
-%{_includedir}/wolfssl/wolfcrypt/pkcs7.h
-%{_includedir}/wolfssl/wolfcrypt/poly1305.h
-%{_includedir}/wolfssl/wolfcrypt/pwdbased.h
-%{_includedir}/wolfssl/wolfcrypt/rabbit.h
-%{_includedir}/wolfssl/wolfcrypt/random.h
-%{_includedir}/wolfssl/wolfcrypt/ripemd.h
-%{_includedir}/wolfssl/wolfcrypt/rsa.h
-%{_includedir}/wolfssl/wolfcrypt/settings.h
-%{_includedir}/wolfssl/wolfcrypt/sha.h
-%{_includedir}/wolfssl/wolfcrypt/sha256.h
-%{_includedir}/wolfssl/wolfcrypt/sha3.h
-%{_includedir}/wolfssl/wolfcrypt/sha512.h
-%{_includedir}/wolfssl/wolfcrypt/signature.h
-%{_includedir}/wolfssl/wolfcrypt/srp.h
-%{_includedir}/wolfssl/wolfcrypt/tfm.h
-%{_includedir}/wolfssl/wolfcrypt/types.h
-%{_includedir}/wolfssl/wolfcrypt/visibility.h
-%{_includedir}/wolfssl/wolfcrypt/wc_encrypt.h
-%{_includedir}/wolfssl/wolfcrypt/wc_port.h
-%{_includedir}/wolfssl/wolfcrypt/wolfevent.h
-%{_includedir}/wolfssl/wolfcrypt/wolfmath.h
-%{_includedir}/wolfssl/wolfio.h
-%{_libdir}/pkgconfig/wolfssl.pc
-
-%changelog
-* Thu Apr 16 2020 John Safranek <john@wolfssl.com>
-- Add some missing headers.
-- Sort the file list.
-* Thu Dec 19 2019 Jacob Barthelmeh <jacob@wolfssl.com>
-- Add wolfssl/openssl/tls1.h, wolfssl/openssl/x509_vfy.h
-* Fri Mar 15 2019 John Safranek <john@wolfssl.com>
-- Updates for the v4 release.
-* Thu Dec 20 2018 Jacob Barthelmeh <jacob@wolfssl.com>
-- Remove wolfssl/wolfcrypt/fips.h, add wolfssl/openssl/pkcs7.h
-* Wed Jun 20 2018 Jacob Barthelmeh <jacob@wolfssl.com>
-- Remove NEWS, update ChangeLog to ChangeLog.md, remove wolfssl/wolfcrypt/fips.h, add wolfssl/wolfcrypt/cryptocb.h
-* Thu May 31 2018 John Safranek <john@wolfssl.com>
-- Update the version number on the library SO file.
-* Fri Mar 02 2018 Jacob Barthelmeh <jacob@wolfssl.com>
-- Added headder files fips.h, buffer.h, objects.h, rc4.h and example tls_bench.c
-* Fri Sep 08 2017 Jacob Barthelmeh <jacob@wolfssl.com>
-- Change name for header wolfssl/io.h to wolfssl/wolfio.h
-* Fri Aug 04 2017 Jacob Barthelmeh <jacob@wolfssl.com>
-- Added header for wolfssl/wolfcrypt/cpuid.h, wolfssl/wolfcrypt/sha3.h
-* Thu May 04 2017 Jacob Barthelmeh <jacob@wolfssl.com>
-- Added header for wolfssl/io.h, wolfssl/openssl/ssl23.h, cyassl/openssl/ssl23.h
-* Thu Feb 09 2017 Jacob Barthelmeh <jacob@wolfssl.com>
-- Added header for wolfssl/wolfcrypt/wolfmath.h
-* Fri Nov 11 2016 Jacob Barthelmeh <jacob@wolfssl.com>
-- Added header for wolfssl/openssl/aes.h
-* Fri Oct 28 2016 Jacob Barthelmeh <jacob@wolfssl.com>
-- Added header for pkcs12
-* Fri Sep 23 2016 John Safranek <john@wolfssl.com>
-- Add the dtls-sctp example sources
-* Tue Jun 14 2016 Jacob Barthelmeh <jacob@wolfssl.com>
-- Change location for mem_track.h header
-- Added header for cmac.h
-* Thu Mar 17 2016 Jacob Barthelmeh <jacob@wolfssl.com>
-- Added header for mem_track.h
-* Wed Dec 30 2015 Jacob Barthelmeh <jacob@wolfssl.com>
-- Added headers for curve25519 and ed25519 openssl compatibility
-- Added headers for Idea, srp, signature, and wc_encrypt
-* Tue Mar 31 2015 John Safranek <john@wolfssl.com>
-- Added recent new wolfcrypt headers for curve25519
-* Fri Jan 09 2015 John Safranek <john@wolfssl.com>
-- Update for cyassl->wolfssl name change
-* Sat Oct 20 2012 Brian Aker <brian@tangent.org>
-- Initial package
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/benchmark.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/benchmark.test
deleted file mode 100644
index 435f2fd6e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/benchmark.test
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/bin/sh
-
-#benchmark.test
-
-if [ "$#" -lt 2 ]; then
- echo "Usage: $0 [mode] [num] [clientargs] [serverargs]" >&2
- echo " [mode]: 1=Connection Rate (TPS), 2=Throughput Bytes" >&2
- echo " [num]: Mode 1=Connection Count, Mode 2=Bytes to TX/RX" >&2
- echo " [clientargs]: Passed to client (see \"./example/client/client -?\" for help)" >&2
- echo " Example: Use different cipher suite: \"-l DHE-RSA-AES256-SHA\"" >&2
- echo " [serverargs]: Passed to server (see \"./example/server/server -?\" for help)" >&2
- echo " Example: Disable client certificate check: \"-d\"" >&2
- echo "Note: If additional client or server args contains spaces wrap with double quotes" >&2
- exit 1
-fi
-
-# Use unique benchmark port so it won't conflict with any other tests
-bench_port=11113
-no_pid=-1
-server_pid=$no_pid
-counter=0
-client_result=-1
-
-remove_ready_file() {
- if test -e /tmp/wolfssl_server_ready; then
- echo "removing existing server_ready file"
- rm /tmp/wolfssl_server_ready
- fi
-}
-
-
-do_cleanup() {
- echo "in cleanup"
-
- if [ $server_pid != $no_pid ]
- then
- echo "killing server"
- kill -9 $server_pid
- fi
- remove_ready_file
-}
-
-do_trap() {
- echo "got trap"
- do_cleanup
- exit -1
-}
-
-trap do_trap INT TERM
-
-# Start server in loop continuous mode (-L) with echo data (-e) enabled and non-blocking (-N)
-echo "\nStarting example server for benchmark test"
-remove_ready_file
-# benchmark connections
-if [ $1 -eq 1 ]
-then
- # start server in loop mode with port
- ./examples/server/server -i -p $bench_port $4 &
- server_pid=$!
-fi
-
-# benchmark throughput
-if [ $1 -eq 2 ]
-then
- # start server in loop mode, non-blocking, benchmark throughput with port
- ./examples/server/server -i -N -B $2 -p $bench_port $4 &
- server_pid=$!
-fi
-
-
-echo "Waiting for server_ready file..."
-while [ ! -s /tmp/wolfssl_server_ready -a "$counter" -lt 20 ]; do
- sleep 0.1
- counter=$((counter+ 1))
-done
-
-# benchmark connections
-if [ $1 -eq 1 ]
-then
- echo "Starting example client to benchmark connection average time"
- # start client to benchmark average time for each connection using port
- ./examples/client/client -b $2 -p $bench_port $3
- client_result=$?
-fi
-
-# benchmark throughput
-if [ $1 -eq 2 ]
-then
- echo "Starting example client to benchmark throughput"
- # start client in non-blocking mode, benchmark throughput using port
- ./examples/client/client -N -B $2 -p $bench_port $3
- client_result=$?
-fi
-
-if [ $client_result != 0 ]
-then
- echo "Client failed!"
- do_cleanup
- exit 1
-fi
-
-# End server
-kill -6 $server_pid
-server_result=$?
-remove_ready_file
-
-if [ $server_result != 0 ]
-then
- echo "Server failed!"
- exit 1
-fi
-
-echo "\nSuccess!\n"
-
-exit 0
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/cleanup_testfiles.sh b/FreeRTOS-Plus/Source/WolfSSL/scripts/cleanup_testfiles.sh
deleted file mode 100644
index c7f3885fc..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/cleanup_testfiles.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-# Script to cleanup test files
-# This is helpful if running ./tests/unit.test as sudo,
-# which creates these files with sudoer permissions and
-# will cause issues on subsequent tests without sudo
-
-rm -f ./tests/bio_write_test.txt
-rm -f ./test-write-dhparams.pem
-rm -f ./certeccrsa.pem
-rm -f ./certeccrsa.der
-rm -f ./ecc-key.der
-rm -f ./ecc-key.pem
-rm -f ./ecc-public-key.der
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/crl-revoked.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/crl-revoked.test
deleted file mode 100644
index 5588aa5b4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/crl-revoked.test
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/bin/sh
-
-#crl.test
-
-revocation_code="-361"
-exit_code=1
-counter=0
-# need a unique resume port since may run the same time as testsuite
-# use server port zero hack to get one
-crl_port=0
-#no_pid tells us process was never started if -1
-no_pid=-1
-#server_pid captured on startup, stores the id of the server process
-server_pid=$no_pid
-# let's use absolute path to a local dir (make distcheck may be in sub dir)
-# also let's add some randomness by adding pid in case multiple 'make check's
-# per source tree
-ready_file=`pwd`/wolfssl_crl_ready$$
-
-remove_ready_file() {
- if test -e $ready_file; then
- echo -e "removing existing ready file"
- rm $ready_file
- fi
-}
-
-# trap this function so if user aborts with ^C or other kill signal we still
-# get an exit that will in turn clean up the file system
-abort_trap() {
- echo "script aborted"
-
- if [ $server_pid != $no_pid ]
- then
- echo "killing server"
- kill -9 $server_pid
- fi
-
- exit_code=2 #different exit code in case of user interrupt
-
- echo "got abort signal, exiting with $exit_code"
- exit $exit_code
-}
-trap abort_trap INT TERM
-
-
-# trap this function so that if we exit on an error the file system will still
-# be restored and the other tests may still pass. Never call this function
-# instead use "exit <some value>" and this function will run automatically
-restore_file_system() {
- remove_ready_file
-}
-trap restore_file_system EXIT
-
-run_test() {
- echo -e "\nStarting example server for crl test...\n"
-
- remove_ready_file
-
- # starts the server on crl_port, -R generates ready file to be used as a
- # mutex lock, -c loads the revoked certificate. We capture the processid
- # into the variable server_pid
- ./examples/server/server -R $ready_file -p $crl_port \
- -c certs/server-revoked-cert.pem -k certs/server-revoked-key.pem &
- server_pid=$!
-
- while [ ! -s $ready_file -a "$counter" -lt 20 ]; do
- echo -e "waiting for ready file..."
- sleep 0.1
- counter=$((counter+ 1))
- done
-
- if test -e $ready_file; then
- echo -e "found ready file, starting client..."
- else
- echo -e "NO ready file ending test..."
- exit 1
- fi
-
- # get created port 0 ephemeral port
- crl_port=`cat $ready_file`
-
- # starts client on crl_port and captures the output from client
- capture_out=$(./examples/client/client -p $crl_port 2>&1)
- client_result=$?
-
- wait $server_pid
- server_result=$?
-
- case "$capture_out" in
- *$revocation_code*)
- # only exit with zero on detection of the expected error code
- echo ""
- echo "Successful Revocation!!!!"
- echo ""
- exit_code=0
- echo "exiting with $exit_code"
- exit $exit_code
- ;;
- *)
- echo ""
- echo "Certificate was not revoked saw this instead: $capture_out"
- echo ""
- echo "configure with --enable-crl and run this script again"
- echo ""
- esac
-}
-
-
-######### begin program #########
-
-# run the test
-run_test
-
-# If we get to this exit, exit_code will be a 1 signaling failure
-echo "exiting with $exit_code certificate was not revoked"
-exit $exit_code
-########## end program ##########
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/dertoc.pl b/FreeRTOS-Plus/Source/WolfSSL/scripts/dertoc.pl
deleted file mode 100644
index c02d7d3f3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/dertoc.pl
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/perl
-
-# dertoc.pl
-# version 1.0
-# Updated 07/31/2018
-#
-# Copyright (C) 2006-2018 wolfSSL Inc.
-#
-
-use strict;
-use warnings;
-
-my $num_args = $#ARGV + 1;
-if ($num_args != 3 ) {
- print "usage: ./scripts/dertoc.pl ./certs/server-cert.der server_cert_der_2048 dertoc.c\n";
- exit;
-}
-
-my $inFile = $ARGV[0];
-my $outName = $ARGV[1];
-my $outputFile = $ARGV[2];
-
-# open our output file, "+>" creates and/or truncates
-open OUT_FILE, "+>", $outputFile or die $!;
-
-print OUT_FILE "/* $outputFile */\n\n";
-
-print OUT_FILE "static const unsigned char $outName\[] =\n";
-print OUT_FILE "{\n";
-file_to_hex($inFile);
-print OUT_FILE "};\n";
-print OUT_FILE "static const int sizeof_$outName = sizeof($outName);\n\n";
-
-# close file
-close OUT_FILE or die $!;
-
-
-
-# print file as hex, comma-separated, as needed by C buffer
-sub file_to_hex {
- my $fileName = $_[0];
-
- open my $fp, "<", $fileName or die $!;
- binmode($fp);
-
- my $fileLen = -s $fileName;
- my $byte;
-
- for (my $i = 0, my $j = 1; $i < $fileLen; $i++, $j++)
- {
- if ($j == 1) {
- print OUT_FILE "\t";
- }
- read($fp, $byte, 1) or die "Error reading $fileName";
- my $output = sprintf("0x%02X", ord($byte));
- print OUT_FILE $output;
-
- if ($i != ($fileLen - 1)) {
- print OUT_FILE ", ";
- }
-
- if ($j == 10) {
- $j = 0;
- print OUT_FILE "\n";
- }
- }
-
- print OUT_FILE "\n";
-
- close($fp);
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/external.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/external.test
deleted file mode 100644
index 9557a0b43..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/external.test
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-
-# external.test
-
-server=www.wolfssl.com
-ca=./certs/wolfssl-website-ca.pem
-
-[ ! -x ./examples/client/client ] && echo -e "\n\nClient doesn't exist" && exit 1
-
-# www.wolfssl.com isn't using RFC 8446 yet but the draft instead.
-./examples/client/client -v 3 2>&1 | grep -- 'Bad SSL version'
-if [ $? -ne 0 ]; then
-
- # cloudflare seems to change CAs quickly, disabled by default
- if test -n "$WOLFSSL_EXTERNAL_TEST"; then
- echo "WOLFSSL_EXTERNAL_TEST set, running test..."
- else
- echo "WOLFSSL_EXTERNAL_TEST NOT set, won't run"
- exit 0
- fi
-
- # is our desired server there?
- ./scripts/ping.test $server 2
- RESULT=$?
- [ $RESULT -ne 0 ] && exit 0
-
- # client test against the server
- ./examples/client/client -X -C -h $server -p 443 -g -A $ca
- RESULT=$?
- [ $RESULT -ne 0 ] && echo -e "\n\nClient connection failed" && exit 1
-
-fi
-
-exit 0
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/google.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/google.test
deleted file mode 100644
index 7b58a8a29..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/google.test
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-
-# google.test
-
-server=www.google.com
-
-[ ! -x ./examples/client/client ] && echo -e "\n\nClient doesn't exist" && exit 1
-
-# TODO: [TLS13] Remove this when google supports final version of TLS 1.3
-./examples/client/client -v 3 2>&1 | grep -- 'Bad SSL version'
-if [ $? -eq 0 ]; then
- echo -e "\n\nClient doesn't support TLS v1.2"
- exit 0
-fi
-
-# is our desired server there?
-./scripts/ping.test $server 2
-RESULT=$?
-[ $RESULT -ne 0 ] && exit 0
-
-# client test against the server
-./examples/client/client -X -C -h $server -p 443 -g -d
-RESULT=$?
-[ $RESULT -ne 0 ] && echo -e "\n\nClient connection failed" && exit 1
-
-exit 0
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/include.am b/FreeRTOS-Plus/Source/WolfSSL/scripts/include.am
deleted file mode 100644
index 195dae78a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/include.am
+++ /dev/null
@@ -1,98 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-
-
-if BUILD_SNIFFTEST
-dist_noinst_SCRIPTS+= scripts/sniffer-testsuite.test
-endif
-
-if BUILD_EXAMPLE_SERVERS
-
-dist_noinst_SCRIPTS+= scripts/resume.test
-
-EXTRA_DIST+= scripts/benchmark.test
-EXTRA_DIST+= scripts/memtest.sh
-
-# The CRL and OCSP tests use RSA certificates.
-if BUILD_RSA
-
-if BUILD_CRL
-# make revoked test rely on completion of resume test
-dist_noinst_SCRIPTS+= scripts/crl-revoked.test
-scripts/crl-revoked.log: scripts/resume.log
-endif
-
-if BUILD_OCSP_STAPLING
-dist_noinst_SCRIPTS+= scripts/ocsp-stapling.test
-scripts/ocsp-stapling.log: tests/unit.log
-scripts/ocsp-stapling.log: scripts/ocsp.log
-dist_noinst_SCRIPTS+= scripts/ocsp-stapling-with-ca-as-responder.test
-scripts/ocsp-stapling-with-ca-as-responder.log: tests/unit.log
-scripts/ocsp-stapling-with-ca-as-responder.log: scripts/ocsp.log
-scripts/ocsp-stapling-with-ca-as-responder.log: scripts/ocsp-stapling.log
-endif
-
-if BUILD_OCSP_STAPLING_V2
-dist_noinst_SCRIPTS+= scripts/ocsp-stapling2.test
-
-if BUILD_OCSP_STAPLING
-scripts/ocsp-stapling2.log: tests/unit.log
-scripts/ocsp-stapling2.log: scripts/ocsp.log
-scripts/ocsp-stapling2.log: scripts/ocsp-stapling.log
-scripts/ocsp-stapling2.log: scripts/ocsp-stapling-with-ca-as-responder.log
-else
-scripts/ocsp-stapling2.log: tests/unit.log
-scripts/ocsp-stapling2.log: scripts/ocsp.log
-endif
-
-endif
-
-endif
-
-if BUILD_PSK
-dist_noinst_SCRIPTS+= scripts/psk.test
-endif
-
-if BUILD_TRUST_PEER_CERT
-dist_noinst_SCRIPTS+= scripts/trusted_peer.test
-endif
-
-if BUILD_PKCALLBACKS
-dist_noinst_SCRIPTS+= scripts/pkcallbacks.test
-scripts/pkcallbacks.log: scripts/resume.log
-endif
-
-if BUILD_TLS13
-dist_noinst_SCRIPTS+= scripts/tls13.test
-endif
-
-endif # end of BUILD_EXAMPLE_SERVERS
-
-if BUILD_EXAMPLE_CLIENTS
-if !BUILD_IPV6
-dist_noinst_SCRIPTS+= scripts/external.test
-dist_noinst_SCRIPTS+= scripts/google.test
-dist_noinst_SCRIPTS+= scripts/openssl.test
-
-if BUILD_OCSP
-dist_noinst_SCRIPTS+= scripts/ocsp.test
-endif
-
-endif
-endif
-
-EXTRA_DIST += scripts/testsuite.pcap \
- scripts/sniffer-ipv6.pcap \
- scripts/ping.test
-
-# leave openssl.test as extra until non bash works
-EXTRA_DIST += scripts/openssl.test
-
-EXTRA_DIST += scripts/dertoc.pl
-
-# for use with wolfssl-x.x.x-commercial-fips-stm32l4-v2
-EXTRA_DIST += scripts/stm32l4-v4_0_1_build.sh
-
-EXTRA_DIST += scripts/cleanup_testfiles.sh
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/memtest.sh b/FreeRTOS-Plus/Source/WolfSSL/scripts/memtest.sh
deleted file mode 100644
index 41fa8edcc..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/memtest.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-# Run this script from the wolfSSL root as `./scripts/memtest.sh`.
-
-./autogen.sh
-./configure --enable-debug --disable-shared --enable-memtest \
- --enable-opensslextra --enable-des3 --enable-dh --enable-ecc --enable-aesgcm --enable-aesccm --enable-hc128 \
- --enable-sniffer --enable-psk --enable-rabbit --enable-camellia --enable-sha512 --enable-crl --enable-ocsp --enable-savesession \
- --enable-savecert --enable-atomicuser --enable-pkcallbacks --enable-scep;
-
- #DTLS has issue with trapping client/server failure disconnect since its stateless. Need to find way to communicate failure through file system.
- #--enable-dtls
-make
-
-for i in {1..1000}
-do
- echo "Trying $i...\n"
-
- ./tests/unit.test > ./scripts/memtest.txt 2>&1
-
- RESULT=$?
- [ $RESULT -eq 139 ] && echo "Mem Seg Fault" && exit 1
-done
-echo "Loop SUCCESS"
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp-stapling-with-ca-as-responder.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp-stapling-with-ca-as-responder.test
deleted file mode 100644
index 4773ec104..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp-stapling-with-ca-as-responder.test
+++ /dev/null
@@ -1,231 +0,0 @@
-#!/bin/bash
-# ocsp-stapling.test
-
-
-./examples/client/client -v 3 2>&1 | grep -- 'Bad SSL version'
-if [ $? -eq 0 ]; then
- echo "TLS 1.2 or lower required"
- echo "Skipped"
- exit 0
-fi
-
-
-WORKSPACE=`pwd`
-CERT_DIR="./certs/ocsp"
-resume_port=0
-ready_file=`pwd`/wolf_ocsp_s1_readyF$$
-ready_file2=`pwd`/wolf_ocsp_s1_readyF2$$
-printf '%s\n' "ready file: $ready_file"
-
-test_cnf="ocsp_s_w_ca_a_r.cnf"
-
-copy_originals() {
- cd $CERT_DIR
- cp intermediate1-ca-cert.pem bak-intermediate1-ca-cert.pem
- cp intermediate2-ca-cert.pem bak-intermediate2-ca-cert.pem
- cp intermediate3-ca-cert.pem bak-intermediate3-ca-cert.pem
- cp ocsp-responder-cert.pem bak-ocsp-responder-cert.pem
- cp root-ca-cert.pem bak-root-ca-cert.pem
- cp server1-cert.pem bak-server1-cert.pem
- cp server2-cert.pem bak-server2-cert.pem
- cp server3-cert.pem bak-server3-cert.pem
- cp server4-cert.pem bak-server4-cert.pem
- cp server5-cert.pem bak-server5-cert.pem
- cd $WORKSPACE
-}
-
-restore_originals() {
- cd $CERT_DIR
- mv bak-intermediate1-ca-cert.pem intermediate1-ca-cert.pem
- mv bak-intermediate2-ca-cert.pem intermediate2-ca-cert.pem
- mv bak-intermediate3-ca-cert.pem intermediate3-ca-cert.pem
- mv bak-ocsp-responder-cert.pem ocsp-responder-cert.pem
- mv bak-root-ca-cert.pem root-ca-cert.pem
- mv bak-server1-cert.pem server1-cert.pem
- mv bak-server2-cert.pem server2-cert.pem
- mv bak-server3-cert.pem server3-cert.pem
- mv bak-server4-cert.pem server4-cert.pem
- mv bak-server5-cert.pem server5-cert.pem
-}
-
-wait_for_readyFile(){
-
- counter=0
-
- while [ ! -s $1 -a "$counter" -lt 20 ]; do
- echo -e "waiting for ready file..."
- sleep 0.1
- counter=$((counter+ 1))
- done
-
- if test -e $1; then
- echo -e "found ready file, starting client..."
- else
- echo -e "NO ready file ending test..."
- exit 1
- fi
-
-}
-
-remove_single_rF(){
- if test -e $1; then
- printf '%s\n' "removing ready file: $1"
- rm $1
- fi
-}
-
-#create a configure file for cert generation with the port 0 solution
-create_new_cnf() {
- copy_originals
-
- printf '%s\n' "Random Port Selected: $RPORTSELECTED"
-
- printf '%s\n' "#" > $test_cnf
- printf '%s\n' "# openssl configuration file for OCSP certificates" >> $test_cnf
- printf '%s\n' "#" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# Extensions to add to a certificate request (intermediate1-ca)" >> $test_cnf
- printf '%s\n' "[ v3_req1 ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:false" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "keyUsage = nonRepudiation, digitalSignature, keyEncipherment" >> $test_cnf
- printf '%s\n' "authorityInfoAccess = OCSP;URI:http://127.0.0.1:$1" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# Extensions to add to a certificate request (intermediate2-ca)" >> $test_cnf
- printf '%s\n' "[ v3_req2 ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:false" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "keyUsage = nonRepudiation, digitalSignature, keyEncipherment" >> $test_cnf
- printf '%s\n' "authorityInfoAccess = OCSP;URI:http://127.0.0.1:22222" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# Extensions to add to a certificate request (intermediate3-ca)" >> $test_cnf
- printf '%s\n' "[ v3_req3 ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:false" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "keyUsage = nonRepudiation, digitalSignature, keyEncipherment" >> $test_cnf
- printf '%s\n' "authorityInfoAccess = OCSP;URI:http://127.0.0.1:22223" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# Extensions for a typical CA" >> $test_cnf
- printf '%s\n' "[ v3_ca ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:true" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "keyUsage = keyCertSign, cRLSign" >> $test_cnf
- printf '%s\n' "authorityInfoAccess = OCSP;URI:http://127.0.0.1:22220" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# OCSP extensions." >> $test_cnf
- printf '%s\n' "[ v3_ocsp ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:false" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "extendedKeyUsage = OCSPSigning" >> $test_cnf
-
- mv $test_cnf $CERT_DIR/$test_cnf
- cd $CERT_DIR
- CURR_LOC=`pwd`
- printf '%s\n' "echo now in $CURR_LOC"
- ./renewcerts-for-test.sh $test_cnf
- cd $WORKSPACE
-}
-
-remove_ready_file() {
- if test -e $ready_file; then
- printf '%s\n' "removing ready file"
- rm $ready_file
- fi
- if test -e $ready_file2; then
- printf '%s\n' "removing ready file: $ready_file2"
- rm $ready_file2
- fi
-}
-
-
-cleanup()
-{
- for i in $(jobs -pr)
- do
- kill -s HUP "$i"
- done
- remove_ready_file
- rm $CERT_DIR/$test_cnf
- restore_originals
-}
-trap cleanup EXIT INT TERM HUP
-
-server=login.live.com
-ca=certs/external/baltimore-cybertrust-root.pem
-
-[ ! -x ./examples/client/client ] && printf '\n\n%s\n' "Client doesn't exist" && exit 1
-
-# create a port 0 port to use with openssl ocsp responder
-./examples/server/server -R $ready_file -p $resume_port &
-wait_for_readyFile $ready_file
-if [ ! -f $ready_file ]; then
- printf '%s\n' "Failed to create ready file: \"$ready_file\""
- exit 1
-else
- RPORTSELECTED=`cat $ready_file`
- printf '%s\n' "Random port selected: $RPORTSELECTED"
- # Use client connection to shutdown the server cleanly
- ./examples/client/client -p $RPORTSELECTED
- create_new_cnf $RPORTSELECTED
-fi
-sleep 1
-
-# is our desired server there? - login.live.com doesn't answers PING
-#./scripts/ping.test $server 2
-
-# client test against the server
-# external test case was never running, disable for now but retain case in event
-# we wish to re-activate in the future.
-#./examples/client/client -X -C -h $server -p 443 -A $ca -g -W 1
-#RESULT=$?
-#[ $RESULT -ne 0 ] && echo -e "\n\nClient connection failed" && exit 1
-
-# setup ocsp responder
-# OLD: ./certs/ocsp/ocspd-intermediate1-ca-issued-certs-with-ca-as-responder.sh &
-# NEW: openssl isn't being cleaned up, invoke directly in script for cleanup
-# purposes!
-openssl ocsp -port $RPORTSELECTED -nmin 1 \
- -index certs/ocsp/index-intermediate1-ca-issued-certs.txt \
- -rsigner certs/ocsp/intermediate1-ca-cert.pem \
- -rkey certs/ocsp/intermediate1-ca-key.pem \
- -CA certs/ocsp/intermediate1-ca-cert.pem \
- $@ \
- &
-
-sleep 1
-# "jobs" is not portable for posix. Must use bash interpreter!
-[ $(jobs -r | wc -l) -ne 1 ] && printf '\n\n%s\n' "Setup ocsp responder failed, skipping" && exit 0
-
-printf '%s\n\n' "------------- TEST CASE 1 SHOULD PASS ------------------------"
-# client test against our own server - GOOD CERT
-./examples/server/server -c certs/ocsp/server1-cert.pem \
- -k certs/ocsp/server1-key.pem -R $ready_file2 \
- -p $resume_port &
-wait_for_readyFile $ready_file2
-CLI_PORT=`cat $ready_file2`
-./examples/client/client -C -A certs/ocsp/root-ca-cert.pem -W 1 \
- -p $CLI_PORT
-RESULT=$?
-[ $RESULT -ne 0 ] && printf '\n\n%s\n' "Client connection failed" && exit 1
-printf '%s\n\n' "Test PASSED!"
-
-printf '%s\n\n' "------------- TEST CASE 2 SHOULD REVOKE ----------------------"
-# client test against our own server - REVOKED CERT
-remove_single_rF $ready_file2
-./examples/server/server -c certs/ocsp/server2-cert.pem \
- -k certs/ocsp/server2-key.pem -R $ready_file2 \
- -p $resume_port &
-wait_for_readyFile $ready_file2
-CLI_PORT=`cat $ready_file2`
-./examples/client/client -C -A certs/ocsp/root-ca-cert.pem -W 1 \
- -p $CLI_PORT
-RESULT=$?
-[ $RESULT -ne 1 ] && printf '\n\n%s\n' "Client connection succeeded $RESULT" && exit 1
-printf '%s\n\n' "Test successfully REVOKED!"
-
-exit 0
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp-stapling.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp-stapling.test
deleted file mode 100644
index 778c7151e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp-stapling.test
+++ /dev/null
@@ -1,314 +0,0 @@
-#!/bin/bash
-
-# ocsp-stapling.test
-
-
-./examples/client/client -v 3 2>&1 | grep -- 'Bad SSL version'
-if [ $? -eq 0 ]; then
- echo "TLS 1.2 or lower required"
- echo "Skipped"
- exit 0
-fi
-
-
-# create a unique ready file ending in PID for the script instance ($$) to take
-# advantage of port zero solution
-WORKSPACE=`pwd`
-CERT_DIR="./certs/ocsp"
-resume_port=0
-ready_file=`pwd`/wolf_ocsp_s1_readyF$$
-ready_file2=`pwd`/wolf_ocsp_s1_readyF2$$
-printf '%s\n' "ready file: $ready_file"
-
-test_cnf="ocsp_s1.cnf"
-
-copy_originals() {
- cd $CERT_DIR
- cp intermediate1-ca-cert.pem bak-intermediate1-ca-cert.pem
- cp intermediate2-ca-cert.pem bak-intermediate2-ca-cert.pem
- cp intermediate3-ca-cert.pem bak-intermediate3-ca-cert.pem
- cp ocsp-responder-cert.pem bak-ocsp-responder-cert.pem
- cp root-ca-cert.pem bak-root-ca-cert.pem
- cp server1-cert.pem bak-server1-cert.pem
- cp server2-cert.pem bak-server2-cert.pem
- cp server3-cert.pem bak-server3-cert.pem
- cp server4-cert.pem bak-server4-cert.pem
- cp server5-cert.pem bak-server5-cert.pem
- cd $WORKSPACE
-}
-
-restore_originals() {
- cd $CERT_DIR
- mv bak-intermediate1-ca-cert.pem intermediate1-ca-cert.pem
- mv bak-intermediate2-ca-cert.pem intermediate2-ca-cert.pem
- mv bak-intermediate3-ca-cert.pem intermediate3-ca-cert.pem
- mv bak-ocsp-responder-cert.pem ocsp-responder-cert.pem
- mv bak-root-ca-cert.pem root-ca-cert.pem
- mv bak-server1-cert.pem server1-cert.pem
- mv bak-server2-cert.pem server2-cert.pem
- mv bak-server3-cert.pem server3-cert.pem
- mv bak-server4-cert.pem server4-cert.pem
- mv bak-server5-cert.pem server5-cert.pem
-}
-
-wait_for_readyFile(){
-
- counter=0
-
- while [ ! -s $1 -a "$counter" -lt 20 ]; do
- echo -e "waiting for ready file..."
- sleep 0.1
- counter=$((counter+ 1))
- done
-
- if test -e $1; then
- echo -e "found ready file, starting client..."
- else
- echo -e "NO ready file ending test..."
- exit 1
- fi
-
-}
-
-remove_single_rF(){
- if test -e $1; then
- printf '%s\n' "removing ready file: $1"
- rm $1
- fi
-}
-
-#create a configure file for cert generation with the port 0 solution
-create_new_cnf() {
- copy_originals
-
- printf '%s\n' "Random Port Selected: $RPORTSELECTED"
-
- printf '%s\n' "#" > $test_cnf
- printf '%s\n' "# openssl configuration file for OCSP certificates" >> $test_cnf
- printf '%s\n' "#" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# Extensions to add to a certificate request (intermediate1-ca)" >> $test_cnf
- printf '%s\n' "[ v3_req1 ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:false" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "keyUsage = nonRepudiation, digitalSignature, keyEncipherment" >> $test_cnf
- printf '%s\n' "authorityInfoAccess = OCSP;URI:http://127.0.0.1:$1" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# Extensions to add to a certificate request (intermediate2-ca)" >> $test_cnf
- printf '%s\n' "[ v3_req2 ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:false" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "keyUsage = nonRepudiation, digitalSignature, keyEncipherment" >> $test_cnf
- printf '%s\n' "authorityInfoAccess = OCSP;URI:http://127.0.0.1:22222" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# Extensions to add to a certificate request (intermediate3-ca)" >> $test_cnf
- printf '%s\n' "[ v3_req3 ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:false" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "keyUsage = nonRepudiation, digitalSignature, keyEncipherment" >> $test_cnf
- printf '%s\n' "authorityInfoAccess = OCSP;URI:http://127.0.0.1:22223" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# Extensions for a typical CA" >> $test_cnf
- printf '%s\n' "[ v3_ca ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:true" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "keyUsage = keyCertSign, cRLSign" >> $test_cnf
- printf '%s\n' "authorityInfoAccess = OCSP;URI:http://127.0.0.1:22220" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# OCSP extensions." >> $test_cnf
- printf '%s\n' "[ v3_ocsp ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:false" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "extendedKeyUsage = OCSPSigning" >> $test_cnf
-
- mv $test_cnf $CERT_DIR/$test_cnf
- cd $CERT_DIR
- CURR_LOC=`pwd`
- printf '%s\n' "echo now in $CURR_LOC"
- ./renewcerts-for-test.sh $test_cnf
- cd $WORKSPACE
-}
-
-remove_ready_file() {
- if test -e $ready_file; then
- printf '%s\n' "removing ready file"
- rm $ready_file
- fi
- if test -e $ready_file2; then
- printf '%s\n' "removing ready file: $ready_file2"
- rm $ready_file2
- fi
-}
-
-cleanup()
-{
- for i in $(jobs -pr)
- do
- kill -s HUP "$i"
- done
- remove_ready_file
- rm $CERT_DIR/$test_cnf
- restore_originals
-}
-trap cleanup EXIT INT TERM HUP
-
-server=login.live.com
-ca=certs/external/baltimore-cybertrust-root.pem
-
-[ ! -x ./examples/client/client ] && echo -e "\n\nClient doesn't exist" && exit 1
-./examples/client/client '-?' 2>&1 | grep -- 'Client not compiled in!'
-if [ $? -eq 0 ]; then
- exit 0
-fi
-
-# check if supported key size is large enough to handle 4096 bit RSA
-size=`./examples/client/client '-?' | grep "Max RSA key"`
-size=`echo ${size//[^0-9]/}`
-if [ ! -z "$size" ]; then
- printf 'check on max key size of %d ...' $size
- if [ $size -lt 4096 ]; then
- printf '%s\n' "4096 bit RSA keys not supported"
- exit 0
- fi
- printf 'OK\n'
-fi
-
-# test interop fail case
-ready_file=`pwd`/wolf_ocsp_readyF$$
-printf '%s\n' "ready file: $ready_file"
-./examples/server/server -o -R $ready_file &
-wolf_pid=$!
-wait_for_readyFile $ready_file
-if [ ! -f $ready_file ]; then
- printf '%s\n' "Failed to create ready file: \"$ready_file\""
- exit 1
-else
- # should fail if ocspstapling is also enabled
- RPORTSELECTED=`cat $ready_file`
- echo "hi" | openssl s_client -status -connect 127.0.0.1:${RPORTSELECTED} -cert ./certs/client-cert.pem -key ./certs/client-key.pem -CAfile ./certs/ocsp/root-ca-cert.pem
- if [ $? -eq 0 ]; then
- printf '%s\n' "Succeeded when should have failed"
- remove_single_rF $ready_file
- exit 1
- fi
- remove_single_rF $ready_file
- wait $wolf_pid
- if [ $? -ne 1 ]; then
- printf '%s\n' "wolfSSL server unexpected fail value"
- exit 1
- fi
-fi
-
-
-# create a port 0 port to use with openssl ocsp responder
-./examples/server/server -R $ready_file -p $resume_port &
-wait_for_readyFile $ready_file
-if [ ! -f $ready_file ]; then
- printf '%s\n' "Failed to create ready file: \"$ready_file\""
- exit 1
-else
- RPORTSELECTED=`cat $ready_file`
- printf '%s\n' "Random port selected: $RPORTSELECTED"
- # Use client connection to shutdown the server cleanly
- ./examples/client/client -p $RPORTSELECTED
- create_new_cnf $RPORTSELECTED
-fi
-sleep 1
-
-# is our desired server there? - login.live.com doesn't answers PING
-#./scripts/ping.test $server 2
-
-# client test against the server
-./examples/client/client -C -h $server -p 443 -A $ca -g -W 1
-RESULT=$?
-[ $RESULT -ne 0 ] && echo -e "\n\nClient connection failed" && exit 1
-
-
-# Test with example server
-
-./examples/server/server '-?' 2>&1 | grep -- 'Server not compiled in!'
-if [ $? -eq 0 ]; then
- exit 0
-fi
-
-# setup ocsp responder
-# OLD: ./certs/ocsp/ocspd-intermediate1-ca-issued-certs.sh &
-# NEW: openssl isn't being cleaned up, invoke directly in script for cleanup
-# purposes!
-openssl ocsp -port $RPORTSELECTED -nmin 1 \
- -index certs/ocsp/index-intermediate1-ca-issued-certs.txt \
- -rsigner certs/ocsp/ocsp-responder-cert.pem \
- -rkey certs/ocsp/ocsp-responder-key.pem \
- -CA certs/ocsp/intermediate1-ca-cert.pem \
- "$@" &
-
-sleep 1
-# "jobs" is not portable for posix. Must use bash interpreter!
-[ $(jobs -r | wc -l) -ne 1 ] && \
- printf '\n\n%s\n' "Setup ocsp responder failed, skipping" && exit 0
-
-printf '%s\n\n' "------------- TEST CASE 1 SHOULD PASS ------------------------"
-# client test against our own server - GOOD CERT
-./examples/server/server -c certs/ocsp/server1-cert.pem -R $ready_file2 \
- -k certs/ocsp/server1-key.pem -p $resume_port &
-wait_for_readyFile $ready_file2
-CLI_PORT=`cat $ready_file2`
-./examples/client/client -C -A certs/ocsp/root-ca-cert.pem -W 1 -p $CLI_PORT
-RESULT=$?
-[ $RESULT -ne 0 ] && printf '\n\n%s\n' "Client connection 2 failed" && exit 1
-printf '%s\n\n' "Test PASSED!"
-
-printf '%s\n\n' "------------- TEST CASE 2 SHOULD REVOKE ----------------------"
-# client test against our own server - REVOKED CERT
-remove_single_rF $ready_file2
-./examples/server/server -c certs/ocsp/server2-cert.pem -R $ready_file2 \
- -k certs/ocsp/server2-key.pem -p $resume_port &
-wait_for_readyFile $ready_file2
-sleep 1
-CLI_PORT=`cat $ready_file2`
-./examples/client/client -C -A certs/ocsp/root-ca-cert.pem -W 1 -p $CLI_PORT
-RESULT=$?
-[ $RESULT -ne 1 ] && printf '\n\n%s\n' "Client connection succeeded $RESULT" \
- && exit 1
-printf '%s\n\n' "Test successfully REVOKED!"
-
-
-./examples/client/client -v 4 2>&1 | grep -- 'Bad SSL version'
-if [ $? -ne 0 ]; then
- printf '%s\n\n' "------------- TEST CASE 3 SHOULD PASS --------------------"
- # client test against our own server - GOOD CERT
- remove_single_rF $ready_file2
- ./examples/server/server -c certs/ocsp/server1-cert.pem -R $ready_file2 \
- -k certs/ocsp/server1-key.pem -v 4 \
- -p $resume_port &
- wait_for_readyFile $ready_file2
- CLI_PORT=`cat $ready_file2`
- ./examples/client/client -C -A certs/ocsp/root-ca-cert.pem -W 1 -v 4 -F 1 \
- -p $CLI_PORT
- RESULT=$?
- [ $RESULT -ne 0 ] && printf '\n\n%s\n' "Client connection 3 failed" && exit 1
- printf '%s\n\n' "Test PASSED!"
-
- printf '%s\n\n' "------------- TEST CASE 4 SHOULD REVOKE ------------------"
- # client test against our own server - REVOKED CERT
- remove_single_rF $ready_file2
- ./examples/server/server -c certs/ocsp/server2-cert.pem -R $ready_file2 \
- -k certs/ocsp/server2-key.pem -v 4 \
- -p $resume_port &
- wait_for_readyFile $ready_file2
- CLI_PORT=`cat $ready_file2`
- ./examples/client/client -C -A certs/ocsp/root-ca-cert.pem -W 1 -v 4 -F 1 \
- -p $CLI_PORT
- RESULT=$?
- [ $RESULT -ne 1 ] && \
- printf '\n\n%s\n' "Client connection succeeded $RESULT" \
- && exit 1
- printf '%s\n\n' "Test successfully REVOKED!"
-fi
-
-exit 0
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp-stapling2.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp-stapling2.test
deleted file mode 100644
index f162365ab..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp-stapling2.test
+++ /dev/null
@@ -1,395 +0,0 @@
-#!/bin/bash
-# ocsp-stapling.test
-
-
-./examples/client/client -v 3 2>&1 | grep -- 'Bad SSL version'
-if [ $? -eq 0 ]; then
- echo "TLS 1.2 or lower required"
- echo "Skipped"
- exit 0
-fi
-
-
-WORKSPACE=`pwd`
-CERT_DIR="certs/ocsp"
-
-resume_port=0
-ready_file1=`pwd`/wolf_ocsp_s2_readyF1$$
-ready_file2=`pwd`/wolf_ocsp_s2_readyF2$$
-ready_file3=`pwd`/wolf_ocsp_s2_readyF3$$
-ready_file4=`pwd`/wolf_ocsp_s2_readyF4$$
-ready_file5=`pwd`/wolf_ocsp_s2_readyF5$$
-printf '%s\n' "ready file 1: $ready_file1"
-printf '%s\n' "ready file 2: $ready_file2"
-printf '%s\n' "ready file 3: $ready_file3"
-printf '%s\n' "ready file 4: $ready_file4"
-printf '%s\n' "ready file 5: $ready_file5"
-
-test_cnf="ocsp_s2.cnf"
-
-copy_originals() {
- cd $CERT_DIR
- cp intermediate1-ca-cert.pem bak-intermediate1-ca-cert.pem
- cp intermediate2-ca-cert.pem bak-intermediate2-ca-cert.pem
- cp intermediate3-ca-cert.pem bak-intermediate3-ca-cert.pem
- cp ocsp-responder-cert.pem bak-ocsp-responder-cert.pem
- cp root-ca-cert.pem bak-root-ca-cert.pem
- cp server1-cert.pem bak-server1-cert.pem
- cp server2-cert.pem bak-server2-cert.pem
- cp server3-cert.pem bak-server3-cert.pem
- cp server4-cert.pem bak-server4-cert.pem
- cp server5-cert.pem bak-server5-cert.pem
- cd $WORKSPACE
-}
-
-restore_originals() {
- cd $CERT_DIR
- mv bak-intermediate1-ca-cert.pem intermediate1-ca-cert.pem
- mv bak-intermediate2-ca-cert.pem intermediate2-ca-cert.pem
- mv bak-intermediate3-ca-cert.pem intermediate3-ca-cert.pem
- mv bak-ocsp-responder-cert.pem ocsp-responder-cert.pem
- mv bak-root-ca-cert.pem root-ca-cert.pem
- mv bak-server1-cert.pem server1-cert.pem
- mv bak-server2-cert.pem server2-cert.pem
- mv bak-server3-cert.pem server3-cert.pem
- mv bak-server4-cert.pem server4-cert.pem
- mv bak-server5-cert.pem server5-cert.pem
-}
-
-wait_for_readyFile(){
-
- counter=0
-
- while [ ! -s $1 -a "$counter" -lt 20 ]; do
- echo -e "waiting for ready file..."
- sleep 0.1
- counter=$((counter+ 1))
- done
-
- if test -e $1; then
- echo -e "found ready file, starting client..."
- else
- echo -e "NO ready file ending test..."
- exit 1
- fi
-
-}
-
-remove_single_rF(){
- if test -e $1; then
- printf '%s\n' "removing ready file: $1"
- rm $1
- fi
-}
-
-#create a configure file for cert generation with the port 0 solution
-create_new_cnf() {
- copy_originals
-
- printf '%s\n' "Random Port Selected: $RPORTSELECTED"
-
- printf '%s\n' "#" > $test_cnf
- printf '%s\n' "# openssl configuration file for OCSP certificates" >> $test_cnf
- printf '%s\n' "#" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# Extensions to add to a certificate request (intermediate1-ca)" >> $test_cnf
- printf '%s\n' "[ v3_req1 ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:false" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "keyUsage = nonRepudiation, digitalSignature, keyEncipherment" >> $test_cnf
- printf '%s\n' "authorityInfoAccess = OCSP;URI:http://127.0.0.1:$1" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# Extensions to add to a certificate request (intermediate2-ca)" >> $test_cnf
- printf '%s\n' "[ v3_req2 ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:false" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "keyUsage = nonRepudiation, digitalSignature, keyEncipherment" >> $test_cnf
- printf '%s\n' "authorityInfoAccess = OCSP;URI:http://127.0.0.1:$2" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# Extensions to add to a certificate request (intermediate3-ca)" >> $test_cnf
- printf '%s\n' "[ v3_req3 ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:false" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "keyUsage = nonRepudiation, digitalSignature, keyEncipherment" >> $test_cnf
- printf '%s\n' "authorityInfoAccess = OCSP;URI:http://127.0.0.1:$3" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# Extensions for a typical CA" >> $test_cnf
- printf '%s\n' "[ v3_ca ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:true" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "keyUsage = keyCertSign, cRLSign" >> $test_cnf
- printf '%s\n' "authorityInfoAccess = OCSP;URI:http://127.0.0.1:$4" >> $test_cnf
- printf '%s\n' "" >> $test_cnf
- printf '%s\n' "# OCSP extensions." >> $test_cnf
- printf '%s\n' "[ v3_ocsp ]" >> $test_cnf
- printf '%s\n' "basicConstraints = CA:false" >> $test_cnf
- printf '%s\n' "subjectKeyIdentifier = hash" >> $test_cnf
- printf '%s\n' "authorityKeyIdentifier = keyid:always,issuer:always" >> $test_cnf
- printf '%s\n' "extendedKeyUsage = OCSPSigning" >> $test_cnf
-
- mv $test_cnf $CERT_DIR/$test_cnf
- cd $CERT_DIR
- CURR_LOC=`pwd`
- printf '%s\n' "echo now in $CURR_LOC"
- ./renewcerts-for-test.sh $test_cnf
- cd $WORKSPACE
-}
-
-remove_ready_file(){
- if test -e $ready_file1; then
- printf '%s\n' "removing ready file: $ready_file1"
- rm $ready_file1
- fi
- if test -e $ready_file2; then
- printf '%s\n' "removing ready file: $ready_file2"
- rm $ready_file2
- fi
- if test -e $ready_file3; then
- printf '%s\n' "removing ready file: $ready_file3"
- rm $ready_file3
- fi
- if test -e $ready_file4; then
- printf '%s\n' "removing ready file: $ready_file4"
- rm $ready_file4
- fi
- if test -e $ready_file5; then
- printf '%s\n' "removing ready file: $ready_file5"
- rm $ready_file5
- fi
-}
-
-cleanup()
-{
- for i in $(jobs -pr)
- do
- kill -s HUP "$i"
- done
- remove_ready_file
- rm $CERT_DIR/$test_cnf
- restore_originals
-}
-trap cleanup EXIT INT TERM HUP
-
-[ ! -x ./examples/client/client ] && echo -e "\n\nClient doesn't exist" && exit 1
-
-# check if supported key size is large enough to handle 4096 bit RSA
-size=`./examples/client/client '-?' | grep "Max RSA key"`
-size=`echo ${size//[^0-9]/}`
-if [ ! -z "$size" ]; then
- printf 'check on max key size of %d ...' $size
- if [ $size -lt 4096 ]; then
- printf '%s\n' "4096 bit RSA keys not supported"
- exit 0
- fi
- printf 'OK\n'
-fi
-
-#get four unique ports
-# 1:
-./examples/server/server -R $ready_file1 -p $resume_port &
-wait_for_readyFile $ready_file1
-if [ ! -f $ready_file1 ]; then
- printf '%s\n' "Failed to create ready file1: \"$ready_file1\""
- exit 1
-fi
-# 2:
-./examples/server/server -R $ready_file2 -p $resume_port &
-wait_for_readyFile $ready_file2
-if [ ! -f $ready_file2 ]; then
- printf '%s\n' "Failed to create ready file2: \"$ready_file2\""
- exit 1
-fi
-# 3:
-./examples/server/server -R $ready_file3 -p $resume_port &
-wait_for_readyFile $ready_file3
-if [ ! -f $ready_file3 ]; then
- printf '%s\n' "Failed to create ready file3: \"$ready_file3\""
- exit 1
-fi
-# 4:
-./examples/server/server -R $ready_file4 -p $resume_port &
-wait_for_readyFile $ready_file4
-if [ ! -f $ready_file4 ]; then
- printf '%s\n' "Failed to create ready file4: \"$ready_file4\""
- exit 1
-else
- RPORTSELECTED1=`cat $ready_file1`
- RPORTSELECTED2=`cat $ready_file2`
- RPORTSELECTED3=`cat $ready_file3`
- RPORTSELECTED4=`cat $ready_file4`
- printf '%s\n' "------------- PORTS ---------------"
- printf '%s' "Random ports selected: $RPORTSELECTED1 $RPORTSELECTED2"
- printf '%s\n' " $RPORTSELECTED3 $RPORTSELECTED4"
- printf '%s\n' "-----------------------------------"
- # Use client connections to cleanly shutdown the servers
- ./examples/client/client -p $RPORTSELECTED1
- ./examples/client/client -p $RPORTSELECTED2
- ./examples/client/client -p $RPORTSELECTED3
- ./examples/client/client -p $RPORTSELECTED4
- create_new_cnf $RPORTSELECTED1 $RPORTSELECTED2 $RPORTSELECTED3 \
- $RPORTSELECTED4
-fi
-sleep 1
-
-# setup ocsp responders
-# OLD: ./certs/ocsp/ocspd-root-ca-and-intermediate-cas.sh &
-# NEW: openssl isn't being cleaned up, invoke directly in script for cleanup
-# purposes!
-openssl ocsp -port $RPORTSELECTED1 -nmin 1 \
- -index certs/ocsp/index-ca-and-intermediate-cas.txt \
- -rsigner certs/ocsp/ocsp-responder-cert.pem \
- -rkey certs/ocsp/ocsp-responder-key.pem \
- -CA certs/ocsp/root-ca-cert.pem \
- $@ \
- &
-
-# OLD: ./certs/ocsp/ocspd-intermediate2-ca-issued-certs.sh &
-# NEW: openssl isn't being cleaned up, invoke directly in script for cleanup
-# purposes!
-openssl ocsp -port $RPORTSELECTED2 -nmin 1 \
- -index certs/ocsp/index-intermediate2-ca-issued-certs.txt \
- -rsigner certs/ocsp/ocsp-responder-cert.pem \
- -rkey certs/ocsp/ocsp-responder-key.pem \
- -CA certs/ocsp/intermediate2-ca-cert.pem \
- $@ \
- &
-
-# OLD: ./certs/ocsp/ocspd-intermediate3-ca-issued-certs.sh &
-# NEW: openssl isn't being cleaned up, invoke directly in script for cleanup
-# purposes!
-openssl ocsp -port $RPORTSELECTED3 -nmin 1 \
- -index certs/ocsp/index-intermediate3-ca-issued-certs.txt \
- -rsigner certs/ocsp/ocsp-responder-cert.pem \
- -rkey certs/ocsp/ocsp-responder-key.pem \
- -CA certs/ocsp/intermediate3-ca-cert.pem \
- $@ \
- &
-
-sleep 1
-# "jobs" is not portable for posix. Must use bash interpreter!
-[ $(jobs -r | wc -l) -ne 3 ] && printf '\n\n%s\n' "Setup ocsp responder failed, skipping" && exit 0
-
-printf '\n\n%s\n\n' "All OCSP responders started successfully!"
-printf '%s\n\n' "------------- TEST CASE 1 SHOULD PASS ------------------------"
-# client test against our own server - GOOD CERTS
-./examples/server/server -c certs/ocsp/server3-cert.pem \
- -k certs/ocsp/server3-key.pem -R $ready_file5 \
- -p $resume_port &
-wait_for_readyFile $ready_file5
-CLI_PORT=`cat $ready_file5`
-./examples/client/client -C -A certs/ocsp/root-ca-cert.pem -W 2 -v 3 \
- -p $CLI_PORT
-RESULT=$?
-[ $RESULT -ne 0 ] && printf '\n\n%s\n' "Client connection 1 failed" && exit 1
-printf '%s\n\n' "Test PASSED!"
-
-printf '%s\n\n' "TEST CASE 2 DISABLED PENDING REVIEW"
-#printf '%s\n\n' "------------- TEST CASE 2 SHOULD PASS ------------------------"
-#remove_single_rF $ready_file5
-#./examples/server/server -c certs/ocsp/server3-cert.pem \
-# -k certs/ocsp/server3-key.pem -R $ready_file5 \
-# -p $resume_port &
-#wait_for_readyFile $ready_file5
-#CLI_PORT=`cat $ready_file5`
-#./examples/client/client -C -A certs/ocsp/root-ca-cert.pem -W 3 -v 3 \
-# -p $CLI_PORT
-#RESULT=$?
-#[ $RESULT -ne 0 ] && printf '\n\n%s\n' "Client connection 2 failed" && exit 1
-#printf '%s\n\n' "Test PASSED!"
-
-printf '%s\n\n' "------------- TEST CASE 3 SHOULD REVOKE ----------------------"
-# client test against our own server - REVOKED SERVER CERT
-remove_single_rF $ready_file5
-./examples/server/server -c certs/ocsp/server4-cert.pem \
- -k certs/ocsp/server4-key.pem -R $ready_file5 \
- -p $resume_port &
-wait_for_readyFile $ready_file5
-CLI_PORT=`cat $ready_file5`
-./examples/client/client -C -A certs/ocsp/root-ca-cert.pem -W 2 -v 3 \
- -p $CLI_PORT
-RESULT=$?
-[ $RESULT -ne 1 ] && printf '\n\n%s\n' "Client connection succeeded $RESULT" && exit 1
-printf '%s\n\n' "Test successfully REVOKED!"
-
-printf '%s\n\n' "------------- TEST CASE 4 SHOULD REVOKE ----------------------"
-remove_single_rF $ready_file5
-./examples/server/server -c certs/ocsp/server4-cert.pem \
- -k certs/ocsp/server4-key.pem -R $ready_file5 \
- -p $resume_port &
-sleep 1
-CLI_PORT=`cat $ready_file5`
-./examples/client/client -C -A certs/ocsp/root-ca-cert.pem -W 3 -v 3 \
- -p $CLI_PORT
-RESULT=$?
-[ $RESULT -ne 1 ] && printf '\n\n%s\n' "Client connection succeeded $RESULT" && exit 1
-printf '%s\n\n' "Test successfully REVOKED!"
-
-printf '%s\n\n' "------------- TEST CASE 5 SHOULD PASS ------------------------"
-# client test against our own server - REVOKED INTERMEDIATE CERT
-remove_single_rF $ready_file5
-./examples/server/server -c certs/ocsp/server5-cert.pem \
- -k certs/ocsp/server5-key.pem -R $ready_file5 \
- -p $resume_port &
-wait_for_readyFile $ready_file5
-CLI_PORT=`cat $ready_file5`
-./examples/client/client -C -A certs/ocsp/root-ca-cert.pem -W 2 -v 3 \
- -p $CLI_PORT
-RESULT=$?
-[ $RESULT -ne 0 ] && printf '\n\n%s\n' "Client connection 3 failed $RESULT" && exit 1
-printf '%s\n\n' "Test PASSED!"
-
-printf '%s\n\n' "------------- TEST CASE 6 SHOULD REVOKE ----------------------"
-remove_single_rF $ready_file5
-./examples/server/server -c certs/ocsp/server5-cert.pem \
- -k certs/ocsp/server5-key.pem -R $ready_file5 \
- -p $resume_port &
-wait_for_readyFile $ready_file5
-CLI_PORT=`cat $ready_file5`
-./examples/client/client -C -A certs/ocsp/root-ca-cert.pem -W 3 -v 3 \
- -p $CLI_PORT
-RESULT=$?
-[ $RESULT -ne 1 ] && printf '\n\n%s\n' "Client connection succeeded $RESULT" && exit 1
-printf '%s\n\n' "Test successfully REVOKED!"
-printf '%s\n\n' "------------- TEST CASE 7 LOAD CERT IN SSL -------------------"
-remove_single_rF $ready_file5
-./examples/server/server -c certs/ocsp/server1-cert.pem \
- -k certs/ocsp/server1-key.pem -R $ready_file5 \
- -p $resume_port -H loadSSL &
-wolf_pid=$!
-wait_for_readyFile $ready_file5
-CLI_PORT=`cat $ready_file5`
-echo "test connection" | openssl s_client -status -connect 127.0.0.1:$CLI_PORT -cert ./certs/client-cert.pem -key ./certs/client-key.pem -CAfile ./certs/ocsp/root-ca-cert.pem
-RESULT=$?
-[ $RESULT -ne 0 ] && printf '\n\n%s\n' "Client connection failed $RESULT" && exit 1
-wait $wolf_pid
-if [ $? -ne 0 ]; then
- printf '%s\n' "Unexpected server result"
- exit 1
-fi
-printf '%s\n\n' "Test successful"
-printf '%s\n\n' "------------- TEST CASE 8 SHOULD REVOKE ----------------------"
-remove_single_rF $ready_file5
-./examples/server/server -c certs/ocsp/server4-cert.pem \
- -k certs/ocsp/server4-key.pem -R $ready_file5 \
- -p $resume_port -H loadSSL &
-wolf_pid=$!
-sleep 1
-CLI_PORT=`cat $ready_file5`
-./examples/client/client -C -A certs/ocsp/root-ca-cert.pem -W 3 -v 3 \
- -p $CLI_PORT
-RESULT=$?
-[ $RESULT -ne 1 ] && printf '\n\n%s\n' "Client connection succeeded $RESULT" && exit 1
-wait $wolf_pid
-if [ $? -ne 1 ]; then
- printf '%s\n' "Unexpected server result"
- exit 1
-fi
-printf '%s\n\n' "Test successfully REVOKED!"
-
-printf '%s\n\n' "------------------- TESTS COMPLETE ---------------------------"
-
-exit 0
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp.test
deleted file mode 100644
index 543705617..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/ocsp.test
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/sh
-
-# ocsp.test
-
-server=www.globalsign.com
-ca=certs/external/ca-globalsign-root.pem
-
-[ ! -x ./examples/client/client ] && printf '\n\n%s\n' "Client doesn't exist" \
- && exit 1
-
-./examples/client/client -v 3 2>&1 | grep -- 'Bad SSL version'
-if [ $? -eq 0 ]; then
- echo "TLS 1.2 or lower required"
- echo "Skipped"
- exit 0
-fi
-
-GL_UNREACHABLE=0
-# Global Sign now requires server name indication extension to work, check
-# enabled prior to testing
-OUTPUT=$(eval "./examples/client/client -S check")
-if [ "$OUTPUT" = "SNI is: ON" ]; then
- printf '\n\n%s\n\n' "SNI is on, proceed with globalsign test"
-
- # is our desired server there?
- ./scripts/ping.test $server 2
- RESULT=$?
- if [ $RESULT -ne 0 ]; then
- GL_UNREACHABLE=1
- fi
-
- if [ $RESULT -eq 0 ]; then
- # client test against the server
- ./examples/client/client -X -C -h $server -p 443 -A $ca -g -o -N -v d -S $server
- GL_RESULT=$?
- [ $GL_RESULT -ne 0 ] && printf '\n\n%s\n' "Client connection failed"
- else
- GL_RESULT=1
- fi
-else
- printf '\n\n%s\n\n' "SNI disabled, skipping globalsign test"
- GL_RESULT=0
-fi
-
-server=www.google.com
-ca=certs/external/ca-google-root.pem
-
-# is our desired server there?
-./scripts/ping.test $server 2
-RESULT=$?
-if [ $RESULT -eq 0 ]; then
- # client test against the server
- ./examples/client/client -X -C -h $server -p 443 -A $ca -g -o -N
- GR_RESULT=$?
- [ $GR_RESULT -ne 0 ] && printf '\n\n%s\n' "Client connection failed"
-else
- GR_RESULT=1
-fi
-
-if test -n "$WOLFSSL_OCSP_TEST"; then
- # check that both passed
- if [ $GL_RESULT -eq 0 ] && [ $GR_RESULT -eq 0 ]; then
- printf '\n\n%s\n' "Both OCSP connection to globalsign and google passed"
- printf '%s\n' "Test Passed!"
- exit 0
- elif [ $GL_UNREACHABLE -eq 1 ] && [ $GR_RESULT -eq 0 ]; then
- printf '%s\n' "Global Sign is currently unreachable. Logging it but if"
- printf '%s\n' "this continues to occur should be investigated"
- exit 0
- else
- # Unlike other environment variables the intent of WOLFSSL_OCSP_TEST
- # is to indicate a requirement for both tests to pass. If variable is
- # set and either tests fail then whole case fails. Do not set the
- # variable if either case passing is to be considered a success.
- printf '\n\n%s\n' "One of the OCSP connections to either globalsign or"
- printf '%s\n' "google failed, however since WOLFSSL_OCSP_TEST is set"
- printf '%s\n' "the test is considered to have failed"
- printf '%s\n' "Test Failed!"
- exit 1
- fi
-else
- # if environment variable is not set then just need one to pass
- if [ $GL_RESULT -ne 0 ] && [ $GR_RESULT -ne 0 ]; then
- printf '\n\n%s\n' "Both OCSP connection to globalsign and google failed"
- printf '%s\n' "Test Failed!"
- exit 1
- else
- printf '\n\n%s\n' "WOLFSSL_OCSP_TEST NOT set, and 1 of the tests passed"
- printf '%s\n' "Test Passed!"
- exit 0
- fi
-fi
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/openssl.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/openssl.test
deleted file mode 100644
index 341beff6a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/openssl.test
+++ /dev/null
@@ -1,327 +0,0 @@
-#!/bin/sh
-
-#openssl.test
-
-# need a unique port since may run the same time as testsuite
-generate_port() {
- port=`LC_CTYPE=C tr -cd 0-9 </dev/urandom | head -c 7`
- port=$((`LC_CTYPE=C tr -cd 1-9 </dev/urandom | head -c 1`$port))
- port=$(($port % (65535-49512)))
- port=$(($port + 49512))
-}
-
-
-generate_port
-openssl_port=$port
-no_pid=-1
-server_pid=$no_pid
-ecdh_server_pid=$no_pid
-wolf_suites_tested=0
-wolf_suites_total=0
-counter=0
-testing_summary="OpenSSL Interop Testing Summary:\nVersion\tTested\t#Found\t#Tested\n"
-versionName="Invalid"
-if [ "$OPENSSL" = "" ]; then
- OPENSSL=openssl
-fi
-
-version_name() {
- case $version in "0")
- versionName="SSLv3"
- ;;
- "1")
- versionName="TLSv1"
- ;;
- "2")
- versionName="TLSv1.1"
- ;;
- "3")
- versionName="TLSv1.2"
- ;;
- "4")
- versionName="ALL"
- ;;
- esac
-}
-
-do_cleanup() {
- echo "in cleanup"
-
- if [ $server_pid != $no_pid ]
- then
- echo "killing server"
- kill -9 $server_pid
- fi
-
- if [ $ecdh_server_pid != $no_pid ]
- then
- echo "killing ECDH-RSA server"
- kill -9 $ecdh_server_pid
- fi
-}
-
-do_trap() {
- echo "got trap"
- do_cleanup
- exit 1
-}
-
-trap do_trap INT TERM
-
-if test -n "$WOLFSSL_OPENSSL_TEST"; then
- echo "WOLFSSL_OPENSSL_TEST set, running test..."
-else
- echo "WOLFSSL_OPENSSL_TEST NOT set, won't run"
- exit 0
-fi
-
-echo -e "\nTesting existence of openssl command...\n"
-command -v $OPENSSL >/dev/null 2>&1 || { echo >&2 "Requires openssl command, but it's not installed. Ending."; exit 0; }
-
-
-echo -e "\nTesting for _build directory as part of distcheck, different paths"
-currentDir=`pwd`
-if [ $currentDir = *"_build" ]
-then
- echo -e "_build directory detected, moving a directory back"
- cd ..
-fi
-
-
-# get wolfssl ciphers
-wolf_ciphers=`./examples/client/client -e`
-
-found_free_port=0
-while [ "$counter" -lt 20 ]; do
- echo -e "\nTrying to start openssl server on port $openssl_port...\n"
-
- $OPENSSL s_server -accept $openssl_port -cert ./certs/server-cert.pem -key ./certs/server-key.pem -quiet -CAfile ./certs/client-ca.pem -www -dhparam ./certs/dh2048.pem -dcert ./certs/server-ecc.pem -dkey ./certs/ecc-key.pem -verify 10 -verify_return_error -psk 1a2b3c4d -cipher "ALL:eNULL" &
- server_pid=$!
- # wait to see if s_server successfully starts before continuing
- sleep 0.1
-
- if ps -p $server_pid > /dev/null
- then
- echo "s_server started successfully on port $openssl_port"
- found_free_port=1
- break
- else
- #port already started, try a different port
- counter=$((counter+ 1))
- generate_port
- openssl_port=$port
- fi
-done
-
-if [ $found_free_port = 0 ]
-then
- echo -e "Couldn't find free port for server"
- do_cleanup
- exit 1
-fi
-
-# if ECDH-RSA is enabled then start up server for ECDH-RSA suites
-case $wolf_ciphers in
-*ECDH-RSA*)
- generate_port
- ecdh_port=$port
- found_free_port=0
- counter=0
- while [ "$counter" -lt 20 ]; do
- echo -e "\nTrying to start ECDH-RSA openssl server on port $ecdh_port...\n"
-
- $OPENSSL s_server -accept $ecdh_port -cert ./certs/server-ecc-rsa.pem -key ./certs/ecc-key.pem -quiet -CAfile ./certs/client-ca.pem -www -dhparam ./certs/dh2048.pem -verify 10 -verify_return_error -cipher "ALL:eNULL" &
- ecdh_server_pid=$!
- # wait to see if s_server successfully starts before continuing
- sleep 0.1
-
- if ps -p $ecdh_server_pid > /dev/null
- then
- echo "s_server started successfully on port $ecdh_port"
- found_free_port=1
- break
- else
- #port already started, try a different port
- counter=$((counter+ 1))
- generate_port
- ecdh_port=$port
- fi
- done
-
- if [ $found_free_port = 0 ]
- then
- echo -e "Couldn't find free port for server"
- do_cleanup
- exit 1
- fi
- ;;
-esac
-
-# server should be ready, let's make sure
-server_ready=0
-while [ "$counter" -lt 20 ]; do
- echo -e "waiting for openssl s_server ready..."
- nc -z localhost $openssl_port
- nc_result=$?
- if [ $nc_result = 0 ]
- then
- echo -e "openssl s_server ready!"
- server_ready=1
- break
- fi
- sleep 0.1
- counter=$((counter+ 1))
-done
-
-
-if [ $server_ready = 0 ]
-then
- echo -e "Couldn't verify openssl server is running, timeout error"
- do_cleanup
- exit 1
-fi
-
-OIFS=$IFS # store old separator to reset
-IFS=$'\:' # set delimiter
-set -f # no globbing
-
-wolf_versions=`./examples/client/client -V`
-wolf_versions="$wolf_versions:4" #:4 will test without -v flag
-
-wolf_temp_suites_total=0
-wolf_temp_suites_tested=0
-
-for version in $wolf_versions;
-do
- echo -e "version = $version"
- # get openssl ciphers depending on version
- # -s flag for only supported ciphers
- case $version in "0")
- openssl_ciphers=`$OPENSSL ciphers "SSLv3"`
-
- # double check that can actually do a sslv3 connection using
- # client-cert.pem to send but any file with EOF works
- $OPENSSL s_client -ssl3 -no_ign_eof -host localhost -port $openssl_port < ./certs/client-cert.pem
- sslv3_sup=$?
-
- if [ $sslv3_sup != 0 ]
- then
- echo -e "Not testing SSLv3. No OpenSSL support for 'SSLv3' modifier"
- testing_summary="$testing_summary SSLv3\tNo\tN/A\tN/A\t (No OpenSSL Support for cipherstring)\n"
- continue
- fi
- ;;
- "1")
- openssl_ciphers=`$OPENSSL ciphers -s "TLSv1"`
- tlsv1_sup=$?
- if [ $tlsv1_sup != 0 ]
- then
- echo -e "Not testing TLSv1. No OpenSSL support for 'TLSv1' modifier"
- testing_summary="$testing_summary TLSv1\tNo\tN/A\tN/A\t (No OpenSSL Support for cipherstring)\n"
- continue
- fi
- ;;
- "2")
- openssl_ciphers=`$OPENSSL ciphers -s "TLSv1.1"`
- tlsv1_1_sup=$?
- if [ $tlsv1_1_sup != 0 ]
- then
- echo -e "Not testing TLSv1.1. No OpenSSL support for 'TLSv1.1' modifier"
- testing_summary="${testing_summary}TLSv1.1\tNo\tN/A\tN/A\t (No OpenSSL Support for cipherstring)\n"
- continue
- fi
- ;;
- "3")
- openssl_ciphers=`$OPENSSL ciphers -s "TLSv1.2"`
- tlsv1_2_sup=$?
- if [ $tlsv1_2_sup != 0 ]
- then
- echo -e "Not testing TLSv1.2. No OpenSSL support for 'TLSv1.2' modifier"
- testing_summary="$testing_summary TLSv1.2\tNo\tN/A\tN/A\t (No OpenSSL Support for cipherstring)\n"
- continue
- fi
- ;;
- "4") #test all suites
- openssl_ciphers=`$OPENSSL ciphers -s "ALL"`
- all_sup=$?
- if [ $all_sup != 0 ]
- then
- echo -e "Not testing ALL. No OpenSSL support for ALL modifier"
- testing_summary="$testing_summary ALL\tNo\tN/A\tN/A\t (No OpenSSL Support for cipherstring)\n"
- continue
- fi
- ;;
- esac
-
- for wolfSuite in $wolf_ciphers; do
- echo -e "trying wolfSSL cipher suite $wolfSuite"
- wolf_temp_suites_total=$((wolf_temp_suites_total + 1))
- matchSuite=0;
-
- case ":$openssl_ciphers:" in *":$wolfSuite:"*) # add extra : for edge cases
- echo -e "Matched to OpenSSL suite support"
- matchSuite=1;;
- esac
-
- if [ $matchSuite = 0 ]
- then
- echo -e "Couldn't match suite, continuing..."
- continue
- fi
-
- # check for psk suite and turn on client psk if so
- psk=""
- adh=""
- port=$openssl_port
- caCert=""
- case $wolfSuite in
- *ECDH-RSA*)
- port=$ecdh_port ;;
- *ECDHE-ECDSA*|*ECDH-ECDSA*)
- caCert="-A./certs/ca-ecc-cert.pem" ;;
- *PSK*)
- psk="-s " ;;
- *ADH*)
- adh="-a " ;;
- esac
-
- if [ $version -lt 4 ]
- then
- ./examples/client/client -p $port -g -r -l $wolfSuite -v $version $psk $adh $caCert
- else
- # do all versions
- ./examples/client/client -p $port -g -r -l $wolfSuite $psk $adh $caCert
- fi
-
- client_result=$?
-
- if [ $client_result != 0 ]
- then
- echo -e "client failed! Suite = $wolfSuite version = $version"
- do_cleanup
- exit 1
- fi
- wolf_temp_suites_tested=$((wolf_temp_suites_tested+1))
-
- done
- wolf_suites_tested=$((wolf_temp_suites_tested+wolf_suites_tested))
- wolf_suites_total=$((wolf_temp_suites_total+wolf_suites_total))
- echo -e "wolfSSL suites tested with version:$version $wolf_temp_suites_tested"
- version_name
- testing_summary="$testing_summary$versionName\tYes\t$wolf_temp_suites_total\t$wolf_temp_suites_tested\n"
- wolf_temp_suites_total=0
- wolf_temp_suites_tested=0
-done
-IFS=$OIFS #restore separator
-
-kill -9 $server_pid
-if [ $ecdh_server_pid != $no_pid ]
-then
- kill -9 $ecdh_server_pid
-fi
-
-echo -e "wolfSSL total suites $wolf_suites_total"
-echo -e "wolfSSL suites tested $wolf_suites_tested"
-echo -e "\nSuccess!\n\n\n\n"
-echo -e "$testing_summary"
-exit 0
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/ping.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/ping.test
deleted file mode 100644
index f1049d48e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/ping.test
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-# ping.test
-
-# defaults
-server=www.wolfssl.com
-tries=2
-
-# populate args
-if [ "$#" -gt 1 ]; then
- tries=$2
-fi
-if [ "$#" -gt 0 ]; then
- server=$1
-fi
-
-# determine os
-OS="`uname`"
-case $OS in
- MINGW* | MSYS*) PINGSW=-n ;;
- *) PINGSW=-c ;;
-esac
-
-# is our desired server there?
-ping $PINGSW $tries $server
-RESULT=$?
-[ $RESULT -ne 0 ] && echo -e "\n\nCouldn't find $server, skipping" && exit 1
-
-exit 0
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/pkcallbacks.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/pkcallbacks.test
deleted file mode 100644
index 24c9228f5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/pkcallbacks.test
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/bin/sh
-
-#pkcallbacks.test
-
-exit_code=1
-counter=0
-# need a unique resume port since may run the same time as testsuite
-# use server port zero hack to get one
-pk_port=0
-#no_pid tells us process was never started if -1
-no_pid=-1
-#server_pid captured on startup, stores the id of the server process
-server_pid=$no_pid
-# let's use absolute path to a local dir (make distcheck may be in sub dir)
-# also let's add some randomness by adding pid in case multiple 'make check's
-# per source tree
-ready_file=`pwd`/wolfssl_pk_ready$$
-
-remove_ready_file() {
- if test -e $ready_file; then
- echo -e "removing existing ready file"
- rm $ready_file
- fi
-}
-
-do_cleanup() {
- echo "in cleanup"
-
- if [ $server_pid != $no_pid ]
- then
- echo "killing server"
- kill -9 $server_pid
- fi
- remove_ready_file
-}
-
-# trap this function so if user aborts with ^C or other kill signal we still
-# get an exit that will in turn clean up the file system
-abort_trap() {
- echo "script aborted"
-
- if [ $server_pid != $no_pid ]
- then
- echo "killing server"
- kill -9 $server_pid
- fi
-
- exit_code=2 #different exit code in case of user interrupt
-
- echo "got abort signal, exiting with $exit_code"
- exit $exit_code
-}
-trap abort_trap INT TERM
-
-
-# trap this function so that if we exit on an error the file system will still
-# be restored and the other tests may still pass. Never call this function
-# instead use "exit <some value>" and this function will run automatically
-restore_file_system() {
- remove_ready_file
-}
-trap restore_file_system EXIT
-
-run_test() {
- echo -e "\nStarting example server for pkcallbacks test...\n"
-
- remove_ready_file
-
- # starts the server on pk_port, -R generates ready file to be used as a
- # mutex lock, -P does pkcallbacks. We capture the processid
- # into the variable server_pid
- ./examples/server/server -P -R $ready_file -p $pk_port &
- server_pid=$!
-
- while [ ! -s $ready_file -a "$counter" -lt 20 ]; do
- echo -e "waiting for ready file..."
- sleep 0.1
- counter=$((counter+ 1))
- done
-
- if test -e $ready_file; then
- echo -e "found ready file, starting client..."
- else
- echo -e "NO ready file ending test..."
- exit 1
- fi
-
- # get created port 0 ephemeral port
- pk_port=`cat $ready_file`
-
- # starts client on pk_port with pkcallbacks, captures the output from client
- capture_out=$(./examples/client/client -P -p $pk_port 2>&1)
- client_result=$?
-
- if [ $client_result != 0 ]
- then
- echo -e "client failed!"
- do_cleanup
- exit 1
- fi
-
- wait $server_pid
- server_result=$?
-
- if [ $server_result != 0 ]
- then
- echo -e "server failed!"
- exit 1
- fi
-
-}
-
-
-######### begin program #########
-
-# run the test
-run_test
-
-# If we get to this, success
-echo "Success!"
-exit 0
-########## end program ##########
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/psk.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/psk.test
deleted file mode 100644
index d11ac59b5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/psk.test
+++ /dev/null
@@ -1,148 +0,0 @@
-#!/bin/sh
-
-# psk.test
-# copyright wolfSSL 2016
-
-# getting unique port is modeled after resume.test script
-# need a unique port since may run the same time as testsuite
-# use server port zero hack to get one
-port=0
-no_pid=-1
-server_pid=$no_pid
-counter=0
-# let's use absolute path to a local dir (make distcheck may be in sub dir)
-# also let's add some randomness by adding pid in case multiple 'make check's
-# per source tree
-ready_file=`pwd`/wolfssl_psk_ready$$
-
-echo "ready file $ready_file"
-
-create_port() {
- while [ ! -s $ready_file -a "$counter" -lt 20 ]; do
- echo -e "waiting for ready file..."
- sleep 0.1
- counter=$((counter+ 1))
- done
-
- if test -e $ready_file; then
- echo -e "found ready file, starting client..."
-
- # get created port 0 ephemeral port
- port=`cat $ready_file`
- else
- echo -e "NO ready file ending test..."
- do_cleanup
- fi
-}
-
-remove_ready_file() {
- if test -e $ready_file; then
- echo -e "removing existing ready file"
- rm $ready_file
- fi
-}
-
-do_cleanup() {
- echo "in cleanup"
-
- if [ $server_pid != $no_pid ]
- then
- echo "killing server"
- kill -9 $server_pid
- fi
- remove_ready_file
-}
-
-do_trap() {
- echo "got trap"
- do_cleanup
- exit -1
-}
-
-trap do_trap INT TERM
-
-[ ! -x ./examples/client/client ] && echo -e "\n\nClient doesn't exist" && exit 1
-./examples/client/client '-?' 2>&1 | grep -- 'Client not compiled in!'
-if [ $? -eq 0 ]; then
- exit 0
-fi
-./examples/server/server '-?' 2>&1 | grep -- 'Server not compiled in!'
-if [ $? -eq 0 ]; then
- exit 0
-fi
-
-# Usual psk server / psk client. This use case is tested in
-# tests/unit.test and is used here for just checking if PSK is enabled
-port=0
-./examples/server/server -s -R $ready_file -p $port &
-server_pid=$!
-create_port
-./examples/client/client -s -p $port
-RESULT=$?
-remove_ready_file
-# if fail here then is a settings issue so return 0
-if [ $RESULT -ne 0 ]; then
- echo -e "\n\nPSK not enabled"
- do_cleanup
- exit 0
-fi
-echo ""
-
-# client test against the server
-###############################
-
-./examples/client/client -v 3 2>&1 | grep -- 'Bad SSL version'
-if [ $? -ne 0 ]; then
- # Usual server / client. This use case is tested in
- # tests/unit.test and is used here for just checking if cipher suite
- # is available (one case for example is with disable-asn)
- port=0
- ./examples/server/server -R $ready_file -p $port -l DHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-DES-CBC3-SHA &
- server_pid=$!
- create_port
- ./examples/client/client -p $port
- RESULT=$?
- remove_ready_file
- # if fail here then is a settings issue so return 0
- if [ $RESULT -ne 0 ]; then
- echo -e "\n\nIssue with chosen non PSK suites"
- do_cleanup
- exit 0
- fi
- echo ""
-
- # psk server with non psk client
- port=0
- ./examples/server/server -j -R $ready_file -p $port &
- server_pid=$!
- create_port
- ./examples/client/client -p $port
- RESULT=$?
- remove_ready_file
- if [ $RESULT -ne 0 ]; then
- echo -e "\n\nClient connection failed"
- do_cleanup
- exit 1
- fi
- echo ""
-
- # check fail if no auth, psk server with non psk client
- echo "Checking fail when not sending peer cert"
- port=0
- ./examples/server/server -j -R $ready_file -p $port &
- server_pid=$!
- create_port
- ./examples/client/client -x -p $port
- RESULT=$?
- remove_ready_file
- if [ $RESULT -eq 0 ]; then
- echo -e "\n\nClient connected when supposed to fail"
- do_cleanup
- exit 1
- fi
-fi
-
-echo -e "\nALL Tests Passed"
-
-exit 0
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/resume.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/resume.test
deleted file mode 100644
index 35d05e1f2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/resume.test
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/bin/sh
-
-#resume.test
-
-# need a unique resume port since may run the same time as testsuite
-# use server port zero hack to get one
-resume_string="reused"
-resume_sup_string="Resume session"
-ems_string="Extended\ Master\ Secret"
-resume_port=0
-no_pid=-1
-server_pid=$no_pid
-counter=0
-# let's use absolute path to a local dir (make distcheck may be in sub dir)
-# also let's add some randomness by adding pid in case multiple 'make check's
-# per source tree
-ready_file=`pwd`/wolfssl_resume_ready$$
-
-echo "ready file $ready_file"
-
-remove_ready_file() {
- if test -e $ready_file; then
- echo -e "removing existing ready file"
- rm $ready_file
- fi
-}
-
-
-do_cleanup() {
- echo "in cleanup"
-
- if [ $server_pid != $no_pid ]
- then
- echo "killing server"
- kill -9 $server_pid
- fi
- remove_ready_file
-}
-
-do_trap() {
- echo "got trap"
- do_cleanup
- exit -1
-}
-
-do_test() {
- echo -e "\nStarting example server for resume test...\n"
-
- #make sure we support session resumption (!NO_SESSION_CACHE)
- # Check the client for the extended master secret disable option. If
- # present we need to run the test twice.
- options_check=`./examples/client/client '-?'`
- case "$options_check" in
- *$resume_sup_string*)
- echo -e "\nResume test supported";;
- *)
- echo -e "\nResume test not supported with build"
- return;;
- esac
-
- remove_ready_file
- ./examples/server/server -r -R $ready_file -p $resume_port &
- server_pid=$!
-
- while [ ! -s $ready_file -a "$counter" -lt 20 ]; do
- echo -e "waiting for ready file..."
- sleep 0.1
- counter=$((counter+ 1))
- done
-
- if test -e $ready_file; then
- echo -e "found ready file, starting client..."
- else
- echo -e "NO ready file ending test..."
- do_cleanup
- exit 1
- fi
-
- # get created port 0 ephemeral port
- resume_port=`cat $ready_file`
-
- capture_out=$(./examples/client/client $1 -r -p $resume_port 2>&1)
- client_result=$?
-
- if [ $client_result != 0 ]
- then
- echo -e "client failed!\ncapture_out=$capture_out\nclient_result=$client_result"
- do_cleanup
- exit 1
- fi
-
- wait $server_pid
- server_result=$?
- remove_ready_file
-
- if [ $server_result != 0 ]
- then
- echo -e "client failed!"
- exit 1
- fi
-
- case "$capture_out" in
- *$resume_string*)
- echo "resumed session" ;;
- *)
- echo "did NOT resume session as expected"
- exit 1
- ;;
- esac
-}
-
-trap do_trap INT TERM
-
-./examples/client/client '-?' 2>&1 | grep -- 'Client not compiled in!'
-if [ $? -ne 0 ]; then
- ./examples/server/server '-?' 2>&1 | grep -- 'Server not compiled in!'
- if [ $? -ne 0 ]; then
- RUN_TEST="Y"
- fi
-fi
-
-./examples/client/client '-?' 2>&1 | grep -- 'Resume session'
-if [ $? -ne 0 ]; then
- RUN_TEST="Y"
-fi
-
-if [ "$RUN_TEST" = "Y" ]; then
- do_test
-
- # Check the client for the extended master secret disable option. If
- # present we need to run the test twice.
- options_check=`./examples/client/client -?`
- case "$options_check" in
- *$ems_string*)
- echo -e "\nRepeating resume test without extended master secret..."
- do_test -n ;;
- *)
- ;;
- esac
-fi
-
-echo -e "\nSuccess!\n"
-
-exit 0
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/sniffer-ipv6.pcap b/FreeRTOS-Plus/Source/WolfSSL/scripts/sniffer-ipv6.pcap
deleted file mode 100644
index 6d8ac4343..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/sniffer-ipv6.pcap
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/sniffer-testsuite.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/sniffer-testsuite.test
deleted file mode 100644
index 491c1197e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/sniffer-testsuite.test
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-
-#sniffer-testsuite.test
-
-echo -e "\nStaring snifftest on testsuite.pcap...\n"
-./sslSniffer/sslSnifferTest/snifftest ./scripts/testsuite.pcap ./certs/server-key.pem 127.0.0.1 11111
-
-RESULT=$?
-[ $RESULT -ne 0 ] && echo -e "\nsnifftest failed\n" && exit 1
-
-
-if test $# -ne 0 && test "x$1" = "x-6";
-then
- echo -e "\nStaring snifftest on sniffer-ipv6.pcap...\n"
- ./sslSniffer/sslSnifferTest/snifftest ./scripts/sniffer-ipv6.pcap ./certs/server-key.pem ::1 11111
-
- RESULT=$?
- [ $RESULT -ne 0 ] && echo -e "\nsnifftest (ipv6) failed\n" && exit 1
-fi
-
-echo -e "\nSuccess!\n"
-
-exit 0
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/stm32l4-v4_0_1_build.sh b/FreeRTOS-Plus/Source/WolfSSL/scripts/stm32l4-v4_0_1_build.sh
deleted file mode 100644
index 6d9bdff55..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/stm32l4-v4_0_1_build.sh
+++ /dev/null
@@ -1,199 +0,0 @@
-#!/bin/bash
-WOLF_ROOT=$(eval "pwd")
-echo "WOLF_ROOT set to: \"$WOLF_ROOT\""
-cd ../ || exit 5
-APP_ROOT=$(eval "pwd")
-echo "APP_ROOT set to: \"$APP_ROOT\""
-cd ../../ || exit 5
-FIRMWARE_ROOT=$(eval "pwd")
-echo "FIRMWARE_ROOT set to: \"$FIRMWARE_ROOT\""
-cd "$WOLF_ROOT" || exit 5
-
-WOLFCRYPT_SRC_LIST=(wolfcrypt_first hmac random sha256 rsa ecc aes des3 sha
- sha512 sha3 dh cmac fips fips_test wolfcrypt_last asn coding
- dsa error hash logging md5 memory signature tfm wc_encrypt
- wc_port wolfmath
- )
-
-assumptions(){
- printf '%s\n' "ASSUMPTIONS:"
- printf '%s\n' "It is assumed that the firmware directory layout is as follows:"
- printf '%s\n' "firmware-root/"
- printf '%s\n' "firmware-root/dir1/"
- printf '%s\n' "firmware-root/dir1/app-root/"
- printf '%s\n' "firmware-root/dir1/app-root/wolfssl-x.x.x-commercial-fips-stm32l4-v2/"
- printf '\n\n%s\n' "It is also assumed this script will be run from the directory:"
- printf '%s\n' "firmware-root/dir1/app-root/wolfssl-x.x.x-commercial-fips-stm32l4-v2/"
- printf '%s\n' "with the command:"
- printf '%s\n' "./scripts/stm32l4-v4_0_2_build.sh"
-}
-
-flatten_wolfcrypt_sources(){
- if [ -d "$WOLF_ROOT" ]; then
-
- for TARGET_FILE in "${WOLFCRYPT_SRC_LIST[@]}"
- do
- if [ -f "$APP_ROOT/$TARGET_FILE".c ]; then
- printf '%s\n' "Removing: APP_ROOT/$TARGET_FILE.c"
- rm "$APP_ROOT/$TARGET_FILE".c
- fi
- printf '%s\n' "WOLF_ROOT/wolfcrypt/src/$TARGET_FILE.c --> APP_ROOT/$TARGET_FILE.c"
- cp "$WOLF_ROOT/wolfcrypt/src/$TARGET_FILE".c "$APP_ROOT/"
- done
-
- # uncomment to copy over the test app for testing purposes
- #cp "$WOLF_ROOT/wolfcrypt/test/test.c" ./
- else
- printf '%s\n' "Please update the MY_WOLF_RELEASE_VARIABLE to the name"
- printf '%s\n' "of the release you received most recently. Currently"
- printf '%s\n' "it is set to \"$MY_WOLF_RELEASE_NAME\""
- fi
-}
-
-update_user_settings(){
- if [ -f user_settings.h ]; then
- printf '%s\n' "Removing old user_settings.h"
- rm user_settings.h
- fi
-
- printf '%s\n' "Generating new user_settings.h..."
- touch user_settings.h
-
- printf '%s\n' "#ifndef STM32L4_V_4_0_1_USER_SETTINGS_H" > user_settings.h
- {
- printf '%s\n' "#define STM32L4_V_4_0_1_USER_SETTINGS_H";
- printf '%s\n' "";
- printf '%s\n' "/* FIPS SETTINGS - BEGIN */";
- printf '%s\n' "#define HAVE_FIPS";
- printf '%s\n' "#define HAVE_FIPS_VERSION 2";
- printf '%s\n' "#define NO_THREAD_LS";
- printf '%s\n' "#define NO_STRICT_ECDSA_LEN";
- printf '%s\n' "#define HAVE_ECC";
- printf '%s\n' "#define HAVE_HKDF";
- printf '%s\n' "#define HAVE_AESCCM";
- printf '%s\n' "#define HAVE_AES_ECB";
- printf '%s\n' "#define HAVE_ECC_CDH";
- printf '%s\n' "#define HAVE_FFDHE_Q";
- printf '%s\n' "#define HAVE_FFDHE_2048"; # NEW
- printf '%s\n' "#define HAVE_HASHDRBG";
- printf '%s\n' "#define WOLFSSL_SHA3";
- printf '%s\n' "#define WOLFSSL_CMAC";
- printf '%s\n' "#define WOLFSSL_SHA224";
- printf '%s\n' "#define WOLFSSL_SHA384";
- printf '%s\n' "#define WOLFSSL_SHA512";
- printf '%s\n' "#define WOLFSSL_KEY_GEN";
- printf '%s\n' "#define WOLFSSL_PUBLIC_MP";
- printf '%s\n' "#define WOLFSSL_AES_DIRECT";
- printf '%s\n' "#define WOLFSSL_AES_COUNTER";
- printf '%s\n' "#define WOLFSSL_BASE64_ENCODE";
- printf '%s\n' "#define WOLFSSL_VALIDATE_FFC_IMPORT";
- printf '%s\n' "#define WOLFSSL_VALIDATE_ECC_IMPORT";
- printf '%s\n' "#define WC_RSA_PSS";
- printf '%s\n' "#define WC_RSA_NO_PADDING";
-# NEW printf '%s\n' "#define WC_RSA_BLINDING";
- printf '%s\n' "#define FP_MAX_BITS 8192";
- printf '%s\n' "";
- printf '%s\n' "/* For operational testing use only in validation effort */";
-# printf '%s\n' "/* #define HAVE_FORCE_FIPS_FAILURE */";
- printf '%s\n' "#define HAVE_FORCE_FIPS_FAILURE";
- printf '%s\n' "/* FIPS SETTINGS - END */";
- printf '%s\n' "";
- printf '%s\n' "/* Debugging */";
- printf '%s\n' "/* #define WOLFSSL_DEBUG_MEMORY */";
- printf '%s\n' "/* #define WOLFSSL_TRACK_MEMORY */";
- printf '%s\n' "/* #define WOLFSSL_DEBUG_MEMORY_PRINT */";
- printf '%s\n' "/* Debugging */";
- printf '%s\n' "";
- printf '%s\n' "/* Environment settings */";
- printf '%s\n' "#define NO_FILESYSTEM";
- printf '%s\n' "#define USE_FAST_MATH";
- printf '%s\n' "#define NO_MAIN_DRIVER";
- printf '%s\n' "#define WOLFCRYPT_ONLY";
- printf '%s\n' "#define WC_RSA_BLINDING";
- printf '%s\n' "#define SINGLE_THREADED";
- printf '%s\n' "#define TFM_TIMING_RESISTANT";
- printf '%s\n' "#define ECC_TIMING_RESISTANT";
- printf '%s\n' "#define USE_CERT_BUFFERS_256";
- printf '%s\n' "#define USE_CERT_BUFFERS_2048";
- printf '%s\n' "#define WOLFSSL_STM32L4";
- printf '%s\n' "#define WOLFSSL_STM32_CUBEMX";
- printf '%s\n' "#define WOLFSSL_CUBEMX_USE_LL";
- printf '%s\n' "#define STM32_RNG";
- printf '%s\n' "#define NO_STM32_CRYPTO";
- printf '%s\n' "#define NO_STM32_HASH";
- printf '%s\n' "#define NO_OLD_RNGNAME";
- printf '%s\n' "/* Environment settings */";
- printf '%s\n' "";
- printf '%s\n' "/* Tuning options */";
- printf '%s\n' "#define ALT_ECC_SIZE";
- printf '%s\n' "#define NO_RC4";
- printf '%s\n' "#define NO_MD4";
- printf '%s\n' "#define NO_PSK";
- printf '%s\n' "#define NO_HC128";
- printf '%s\n' "#define NO_RABBIT";
- printf '%s\n' "#define GCM_SMALL";
- printf '%s\n' "#define TFM_ECC256";
- printf '%s\n' "#define ECC_SHAMIR";
- printf '%s\n' "#define HAVE_AESGCM";
- printf '%s\n' "#define NO_PWDBASED";
- printf '%s\n' "/* Tuning options */";
- printf '%s\n' "";
- printf '%s\n' "/* Non-FIPS related settings */";
- printf '%s\n' "#define HAVE_TLS_EXTENSIONS";
- printf '%s\n' "#define HAVE_EXTENDED_MASTER";
- printf '%s\n' "#define HAVE_SUPPORTED_CURVES";
- printf '%s\n' "/* Non-FIPS related settings */";
- printf '%s\n' "";
- printf '%s\n' "/* Agent harness settings */";
- printf '%s\n' "#define USE_NORMAL_PRINTF";
- printf '%s\n' "#define STM32L4R9I_DISCO";
- printf '%s\n' "#define USE_NORMAL_SCAN";
- printf '%s\n' "#define HAVE_FIPS";
- printf '%s\n' "#define HAVE_FIPS_VERSION 2";
- printf '%s\n' "#define VERIFY_GENERATED_PSS_SIGS";
- printf '%s\n' "/* Agent harness settings */";
- printf '%s\n' "";
- printf '%s\n' "#endif /* STM32L4_V_4_0_1_USER_SETTINGS_H */";
- printf '%s\n' "";
- } >> user_settings.h
-
- printf '%s\n' "new user_settings.h has been created"
-}
-
-assumptions
-
-if [ -f wolfssl/ssl.h ]; then
- if [ -f "$FIRMWARE_ROOT"/project.mk ]; then
- printf '%s\n' "Found ../../../project.mk, wolfSSL properly placed in"
- printf '%s\n' "application root directory"
- else
- printf '%s\n' "Failed to locate ../../../project.mk, wolfSSL in wrong"
- printf '%s\n' "location or assumptions need updated."
- fi
-else
- printf '%s\n' "Run this script from the wolfSSL root directory"
- exit 1
-fi
-
-flatten_wolfcrypt_sources
-# optional test application, remove if not testing
-if [ -f "$APP_ROOT/test.c" ]; then
- printf '%s\n' "Removing: $APP_ROOT/test.c"
- rm "$APP_ROOT/test.c"
-fi
-printf '%s\n' "WOLF_ROOT/wolfcrypt/test/test.c --> APP_ROOT/test.c"
-cp "$WOLF_ROOT/wolfcrypt/test/test.c" "$APP_ROOT/"
-# optional test application section end
-
-# used during fips validation only, these will not be in final distribution
-#./scripts/flatten-agent-sources.sh
-#./scripts/flatten-op-test.sh
-# used during fips validation only, these will not be in final distribution
-
-update_user_settings
-
-cd "$FIRMWARE_ROOT"
-make clean
-make -j 1
-cd "$APP_ROOT"
-make install-target
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/testsuite.pcap b/FreeRTOS-Plus/Source/WolfSSL/scripts/testsuite.pcap
deleted file mode 100644
index a39ad3916..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/testsuite.pcap
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/tls13.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/tls13.test
deleted file mode 100644
index df67a3963..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/tls13.test
+++ /dev/null
@@ -1,203 +0,0 @@
-#!/bin/sh
-
-# tls13.test
-# copyright wolfSSL 2016
-
-# getting unique port is modeled after resume.test script
-# need a unique port since may run the same time as testsuite
-# use server port zero hack to get one
-port=0
-no_pid=-1
-server_pid=$no_pid
-counter=0
-# let's use absolute path to a local dir (make distcheck may be in sub dir)
-# also let's add some randomness by adding pid in case multiple 'make check's
-# per source tree
-ready_file=`pwd`/wolfssl_tls13_ready$$
-client_file=`pwd`/wolfssl_tls13_client$$
-
-echo "ready file $ready_file"
-
-create_port() {
- while [ ! -s $ready_file ]; do
- if [ "$counter" -gt 50 ]; then
- break
- fi
- echo -e "waiting for ready file..."
- sleep 0.1
- counter=$((counter+ 1))
- done
-
- if [ -e $ready_file ]; then
- echo -e "found ready file, starting client..."
-
- # get created port 0 ephemeral port
- port=`cat $ready_file`
- else
- echo -e "NO ready file ending test..."
- do_cleanup
- fi
-}
-
-remove_ready_file() {
- if [ -e $ready_file ]; then
- echo -e "removing existing ready file"
- rm $ready_file
- fi
-}
-
-do_cleanup() {
- echo "in cleanup"
-
- if [ $server_pid != $no_pid ]
- then
- echo "killing server"
- kill -9 $server_pid
- fi
- remove_ready_file
- if [ -e $client_file ]; then
- echo -e "removing existing client file"
- rm $client_file
- fi
-}
-
-do_trap() {
- echo "got trap"
- do_cleanup
- exit -1
-}
-
-trap do_trap INT TERM
-
-[ ! -x ./examples/client/client ] && echo -e "\n\nClient doesn't exist" && exit 1
-./examples/client/client '-?' 2>&1 | grep -- 'Client not compiled in!'
-if [ $? -eq 0 ]; then
- exit 0
-fi
-./examples/server/server '-?' 2>&1 | grep -- 'Server not compiled in!'
-if [ $? -eq 0 ]; then
- exit 0
-fi
-
-# Usual TLS v1.3 server / TLS v1.3 client.
-echo -e "\n\nTLS v1.3 server with TLS v1.3 client"
-port=0
-./examples/server/server -v 4 -R $ready_file -p $port &
-server_pid=$!
-create_port
-./examples/client/client -v 4 -p $port | tee $client_file
-RESULT=$?
-remove_ready_file
-if [ $RESULT -ne 0 ]; then
- echo -e "\n\nTLS v1.3 not enabled"
- do_cleanup
- exit 1
-fi
-echo ""
-
-# TLS 1.3 cipher suites server / client.
-echo -e "\n\nTLS v1.3 cipher suite mismatch"
-port=0
-./examples/server/server -v 4 -R $ready_file -p $port -l TLS13-CHACHA20-POLY1305-SHA256 &
-server_pid=$!
-create_port
-./examples/client/client -v 4 -p $port -l TLS13-AES256-GCM-SHA384
-RESULT=$?
-remove_ready_file
-if [ $RESULT -eq 0 ]; then
- echo -e "\n\nIssue with mismatched TLS v1.3 cipher suites"
- do_cleanup
- exit 1
-fi
-echo ""
-
-# TLS 1.3 mutual auth required but client doesn't send certificates.
-echo -e "\n\nTLS v1.3 mutual auth fail"
-port=0
-./examples/server/server -v 4 -F -R $ready_file -p $port &
-server_pid=$!
-create_port
-./examples/client/client -v 4 -x -p $port
-RESULT=$?
-remove_ready_file
-if [ $RESULT -eq 0 ]; then
- echo -e "\n\nIssue with requiring mutual authentication"
- do_cleanup
- exit 1
-fi
-echo ""
-
-
-./examples/client/client -v 3 2>&1 | grep -- 'Bad SSL version'
-if [ $? -ne 0 ]; then
- # TLS 1.3 server / TLS 1.2 client.
- echo -e "\n\nTLS v1.3 server downgrading to TLS v1.2"
- port=0
- ./examples/server/server -v 4 -R $ready_file -p $port &
- server_pid=$!
- create_port
- ./examples/client/client -v 3 -p $port
- RESULT=$?
- remove_ready_file
- if [ $RESULT -eq 0 ]; then
- echo -e "\n\nIssue with TLS v1.3 server downgrading to TLS v1.2"
- do_cleanup
- exit 1
- fi
- echo ""
-
- # TLS 1.2 server / TLS 1.3 client.
- echo -e "\n\nTLS v1.3 client upgrading server to TLS v1.3"
- port=0
- ./examples/server/server -v 3 -R $ready_file -p $port &
- server_pid=$!
- create_port
- ./examples/client/client -v 4 -p $port
- RESULT=$?
- remove_ready_file
- if [ $RESULT -eq 0 ]; then
- echo -e "\n\nIssue with TLS v1.3 client upgrading server to TLS v1.3"
- do_cleanup
- exit 1
- fi
- echo ""
-
- echo "Find usable TLS 1.2 cipher suite"
- for CS in ECDHE-RSA-AES128-GCM-SHA256 DHE-RSA-AES128-GCM-SHA256
- do
- echo $CS
- ./examples/client/client -e | grep $CS >/dev/null
- if [ "$?" = "0" ]; then
- TLS12_CS=$CS
- break
- fi
- done
- if [ "$TLS12_CS" != "" ]; then
- # TLS 1.3 downgrade server and client - no common TLS 1.3 ciphers
- echo -e "\n\nTLS v1.3 downgrade server and client - no common TLS 1.3 ciphers"
- port=0
- SERVER_CS="TLS13-AES256-GCM-SHA384:$TLS12_CS"
- CLIENT_CS="TLS13-AES128-GCM-SHA256:$TLS12_CS"
- ./examples/server/server -v d -l $SERVER_CS -R $ready_file -p $port &
- server_pid=$!
- create_port
- ./examples/client/client -v d -l $CLIENT_CS -p $port
- RESULT=$?
- remove_ready_file
- if [ $RESULT -eq 0 ]; then
- echo -e "\n\nTLS v1.3 downgrading to TLS v1.2 due to ciphers"
- do_cleanup
- exit 1
- fi
- echo ""
- else
- echo "No usable TLS 1.2 cipher suite found"
- fi
-fi
-
-do_cleanup
-
-echo -e "\nALL Tests Passed"
-
-exit 0
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/scripts/trusted_peer.test b/FreeRTOS-Plus/Source/WolfSSL/scripts/trusted_peer.test
deleted file mode 100644
index 67ee7803e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/scripts/trusted_peer.test
+++ /dev/null
@@ -1,286 +0,0 @@
-#!/bin/sh
-
-# trusted_peer.test
-# copyright wolfSSL 2016
-
-# getting unique port is modeled after resume.test script
-# need a unique port since may run the same time as testsuite
-# use server port zero hack to get one
-port=0
-no_pid=-1
-server_pid=$no_pid
-counter=0
-# let's use absolute path to a local dir (make distcheck may be in sub dir)
-# also let's add some randomness by adding pid in case multiple 'make check's
-# per source tree
-ready_file=`pwd`/wolfssl_tp_ready$$
-
-# variables for certs so can use RSA or ECC
-client_cert=`pwd`/certs/client-cert.pem
-client_ca=`pwd`/certs/ca-cert.pem
-client_key=`pwd`/certs/client-key.pem
-ca_key=`pwd`/certs/ca-key.pem
-server_cert=`pwd`/certs/server-cert.pem
-server_key=`pwd`/certs/server-key.pem
-combined_cert=`pwd`/certs/client_combined.pem
-wrong_ca=`pwd`/certs/wolfssl-website-ca.pem
-wrong_cert=`pwd`/certs/server-revoked-cert.pem
-
-echo "ready file $ready_file"
-
-create_port() {
- while [ ! -s $ready_file -a "$counter" -lt 20 ]; do
- echo -e "waiting for ready file..."
- sleep 0.1
- counter=$((counter+ 1))
- done
-
- if test -e $ready_file; then
- echo -e "found ready file, starting client..."
-
- # get created port 0 ephemeral port
- port=`cat $ready_file`
- else
- echo -e "NO ready file ending test..."
- do_cleanup
- fi
-}
-
-remove_ready_file() {
- if test -e $ready_file; then
- echo -e "removing existing ready file"
- rm $ready_file
- fi
-}
-
-do_cleanup() {
- echo "in cleanup"
-
- if [ $server_pid != $no_pid ]
- then
- echo "killing server"
- kill -9 $server_pid
- fi
- remove_ready_file
-}
-
-do_trap() {
- echo "got trap"
- do_cleanup
- exit -1
-}
-
-trap do_trap INT TERM
-
-[ ! -x ./examples/client/client ] && echo -e "\n\nClient doesn't exist" && exit 1
-
-# Look for if RSA and/or ECC is enabled and adjust certs/keys
-ciphers=`./examples/client/client -e`
-if [[ $ciphers != *"RSA"* ]]; then
- if [[ $ciphers == *"ECDSA"* ]]; then
- client_cert=`pwd`/certs/client-ecc-cert.pem
- client_ca=`pwd`/certs/server-ecc.pem
- client_key=`pwd`/certs/ecc-client-key.pem
- ca_key=`pwd`/certs/ecc-key.pem
- server_cert=`pwd`/certs/server-ecc.pem
- server_key=`pwd`/certs/ecc-key.pem
- wrong_ca=`pwd`/certs/server-ecc-comp.pem
- wrong_cert=`pwd`/certs/server-ecc-comp.pem
- else
- echo "configure options not set up for test. No RSA or ECC"
- exit 0
- fi
-fi
-
-# CRL list not set up for tests
-crl_test=`./examples/client/client -h`
-if [[ $crl_test == *"-C "* ]]; then
- echo "test not set up to run with CRL"
- exit 0
-fi
-
-# Test for trusted peer certs build
-echo ""
-echo "Checking built with trusted peer certs "
-echo "-----------------------------------------------------"
-port=0
-remove_ready_file
-./examples/server/server -E $client_cert -c $server_cert -k $server_key -R $ready_file -p $port &
-server_pid=$!
-create_port
-./examples/client/client -A $client_ca -p $port
-RESULT=$?
-remove_ready_file
-# if fail here then is a settings issue so return 0
-if [ $RESULT -ne 0 ]; then
- echo -e "\n\nTrusted peer certs not enabled \"WOLFSSL_TRUST_PEER_CERT\""
- do_cleanup
- exit 0
-fi
-echo ""
-
-# Test that using no CA's and only trusted peer certs works
-echo "Server and Client relying on trusted peer cert loaded"
-echo "-----------------------------------------------------"
-port=0
-./examples/server/server -A $wrong_ca -E $client_cert -c $server_cert -k $server_key -R $ready_file -p $port &
-server_pid=$!
-create_port
-./examples/client/client -A $wrong_ca -E $server_cert -c $client_cert -p $port
-RESULT=$?
-remove_ready_file
-if [ $RESULT -ne 0 ]; then
- echo -e "\nServer and Client trusted peer cert failed!"
- do_cleanup
- exit 1
-fi
-echo ""
-
-# Test that using server trusted peer certs works
-echo "Server relying on trusted peer cert loaded"
-echo "-----------------------------------------------------"
-port=0
-./examples/server/server -A $wrong_ca -E $client_cert -c $server_cert -k $server_key -R $ready_file -p $port &
-server_pid=$!
-create_port
-./examples/client/client -A $client_ca -c $client_cert -p $port
-RESULT=$?
-remove_ready_file
-if [ $RESULT -ne 0 ]; then
- echo -e "\nServer trusted peer cert test failed!"
- do_cleanup
- exit 1
-fi
-echo ""
-
-# Test that using client trusted peer certs works
-echo "Client relying on trusted peer cert loaded"
-echo "-----------------------------------------------------"
-port=0
-./examples/server/server -c $server_cert -k $server_key -R $ready_file -p $port &
-server_pid=$!
-create_port
-./examples/client/client -A $wrong_ca -E $server_cert -p $port
-RESULT=$?
-remove_ready_file
-if [ $RESULT -ne 0 ]; then
- echo -e "\nClient trusted peer cert test failed!"
- do_cleanup
- exit 1
-fi
-echo ""
-
-# Test that client fall through to CA works
-echo "Client fall through to loaded CAs"
-echo "-----------------------------------------------------"
-port=0
-./examples/server/server -c $server_cert -k $server_key -R $ready_file -p $port &
-server_pid=$!
-create_port
-./examples/client/client -A $client_ca -E $wrong_cert -p $port
-RESULT=$?
-remove_ready_file
-if [ $RESULT -ne 0 ]; then
- echo -e "\nClient trusted peer cert fall through to CA test failed!"
- do_cleanup
- exit 1
-fi
-echo ""
-
-# Test that client can fail
-# check if using ECC client example is hard coded to load correct ECC ca so skip
-if [[ $wrong_ca != *"ecc"* ]]; then
-echo "Client wrong CA and wrong trusted peer cert loaded"
-echo "-----------------------------------------------------"
-port=0
-./examples/server/server -c $server_cert -k $server_key -R $ready_file -p $port &
-server_pid=$!
-create_port
-./examples/client/client -A $wrong_ca -E $wrong_cert -p $port
-RESULT=$?
-remove_ready_file
-if [ $RESULT -eq 0 ]; then
- echo -e "\nClient trusted peer cert test failed!"
- do_cleanup
- exit 1
-fi
-echo ""
-fi
-
-# Test that server can fail
-echo "Server wrong CA and wrong trusted peer cert loaded"
-echo "-----------------------------------------------------"
-port=0
-./examples/server/server -A $wrong_ca -E $wrong_cert -c $server_cert -k $server_key -R $ready_file -p $port &
-server_pid=$!
-create_port
-./examples/client/client -A $client_ca -p $port
-RESULT=$?
-remove_ready_file
-if [ $RESULT -eq 0 ]; then
- echo -e "\nServer trusted peer cert test failed!"
- do_cleanup
- exit 1
-fi
-echo ""
-
-# Test that server fall through to CA works
-echo "Server fall through to loaded CAs"
-echo "-----------------------------------------------------"
-port=0
-./examples/server/server -E $wrong_cert -c $server_cert -k $server_key -R $ready_file -p $port &
-server_pid=$!
-create_port
-./examples/client/client -A $client_ca -p $port
-RESULT=$?
-remove_ready_file
-if [ $RESULT -ne 0 ]; then
- echo -e "\nServer trusted peer cert fall through to CA test failed!"
- do_cleanup
- exit 1
-fi
-echo ""
-
-# test loading multiple certs
-echo "Server loading multiple trusted peer certs"
-echo "Test two success cases and one fail case"
-echo "-----------------------------------------------------"
-port=0
-cat $client_cert $client_ca > $combined_cert
-./examples/server/server -i -A $wrong_ca -E $combined_cert -c $server_cert -k $server_key -R $ready_file -p $port &
-server_pid=$!
-create_port
-./examples/client/client -A $client_ca -c $client_cert -k $client_key -p $port
-RESULT=$?
-if [ $RESULT -ne 0 ]; then
- echo -e "\nServer load multiple trusted peer certs failed!"
- do_cleanup
- exit 1
-fi
-./examples/client/client -A $client_ca -c $client_ca -k $ca_key -p $port
-RESULT=$?
-if [ $RESULT -ne 0 ]; then
- echo -e "\nServer load multiple trusted peer certs failed!"
- do_cleanup
- exit 1
-fi
-./examples/client/client -A $client_ca -c $wrong_cert -k $client_key -p $port
-RESULT=$?
-if [ $RESULT -eq 0 ]; then
- echo -e "\nServer load multiple trusted peer certs failed!"
- do_cleanup
- exit 1
-fi
-
-do_cleanup # kill PID of server running in infinite loop
-rm $combined_cert
-remove_ready_file
-echo ""
-
-echo "-----------------------------------------------------"
-echo "ALL TESTS PASSED"
-echo "-----------------------------------------------------"
-
-exit 0
-
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/src/bio.c b/FreeRTOS-Plus/Source/WolfSSL/src/bio.c
index 4afeaa929..c13479801 100644
--- a/FreeRTOS-Plus/Source/WolfSSL/src/bio.c
+++ b/FreeRTOS-Plus/Source/WolfSSL/src/bio.c
@@ -23,7 +23,7 @@
#if !defined(WOLFSSL_BIO_INCLUDED)
#ifndef WOLFSSL_IGNORE_FILE_WARN
-// #warning bio.c does not need to be compiled separately from ssl.c
+ #warning bio.c does not need to be compiled separately from ssl.c
#endif
#else
diff --git a/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSniffer.vcproj b/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSniffer.vcproj
deleted file mode 100644
index d6d03a835..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSniffer.vcproj
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="sslSniffer"
- ProjectGUID="{34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}"
- RootNamespace="sslSniffer"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../;../IDE/WIN"
- PreprocessorDefinitions="WOLFSSL_LIB;SSL_SNIFFER_EXPORTS;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="false"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../;../IDE/WIN"
- PreprocessorDefinitions="WOLFSSL_LIB;SSL_SNIFFER_EXPORTS;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath="..\src\sniffer.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath="..\wolfssl\sniffer.h"
- >
- </File>
- <File
- RelativePath="..\IDE\WIN\user_settings.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- <File
- RelativePath="..\wolfssl\sniffer_error.rc"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSniffer.vcxproj b/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSniffer.vcxproj
deleted file mode 100644
index bfbc7fc9d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSniffer.vcxproj
+++ /dev/null
@@ -1,188 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}</ProjectGuid>
- <RootNamespace>sslSniffer</RootNamespace>
- <Keyword>Win32Proj</Keyword>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../;../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WOLFSSL_LIB;SSL_SNIFFER_EXPORTS;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader />
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Windows</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../;../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WOLFSSL_LIB;SSL_SNIFFER_EXPORTS;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Windows</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../;../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WOLFSSL_LIB;SSL_SNIFFER_EXPORTS;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader />
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Windows</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../;../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WOLFSSL_LIB;SSL_SNIFFER_EXPORTS;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Windows</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\src\sniffer.c" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\wolfssl\sniffer.h" />
- <ClInclude Include="..\IDE\WIN\user_settings.h" />
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="..\wolfssl\sniffer_error.rc" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\wolfssl.vcxproj">
- <Project>{73973223-5ee8-41ca-8e88-1d60e89a237b}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSnifferTest/include.am b/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSnifferTest/include.am
deleted file mode 100644
index 23de07f91..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSnifferTest/include.am
+++ /dev/null
@@ -1,14 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-if BUILD_SNIFFTEST
-noinst_PROGRAMS += sslSniffer/sslSnifferTest/snifftest
-sslSniffer_sslSnifferTest_snifftest_SOURCES = sslSniffer/sslSnifferTest/snifftest.c
-sslSniffer_sslSnifferTest_snifftest_LDADD = src/libwolfssl.la -lpcap $(LIB_STATIC_ADD)
-sslSniffer_sslSnifferTest_snifftest_DEPENDENCIES = src/libwolfssl.la
-endif
-EXTRA_DIST += sslSniffer/sslSniffer.vcproj
-EXTRA_DIST += sslSniffer/sslSniffer.vcxproj
-EXTRA_DIST += sslSniffer/sslSnifferTest/sslSniffTest.vcproj
-DISTCLEANFILES+= sslSniffer/sslSnifferTest/.libs/snifftest
diff --git a/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSnifferTest/snifftest.c b/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSnifferTest/snifftest.c
deleted file mode 100644
index 1b4292af1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSnifferTest/snifftest.c
+++ /dev/null
@@ -1,563 +0,0 @@
-/* snifftest.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifdef WOLFSSL_SNIFFER_STORE_DATA_CB
- #include <wolfssl/wolfcrypt/memory.h>
-#endif
-
-#ifdef _WIN32
- #define WOLFSSL_SNIFFER
-#endif
-
-#ifndef WOLFSSL_SNIFFER
-
-/* blank build */
-#include <stdio.h>
-#include <stdlib.h>
-int main(void)
-{
- printf("do ./configure --enable-sniffer to enable build support\n");
- return EXIT_SUCCESS;
-}
-
-#else
-/* do a full build */
-
-#ifdef _MSC_VER
- /* builds on *nix too, for scanf device and port */
- #define _CRT_SECURE_NO_WARNINGS
-#endif
-
-#include <pcap/pcap.h> /* pcap stuff */
-#include <stdio.h> /* printf */
-#include <stdlib.h> /* EXIT_SUCCESS */
-#include <string.h> /* strcmp */
-#include <signal.h> /* signal */
-#include <ctype.h> /* isprint */
-
-#include <cyassl/sniffer.h>
-
-
-#ifndef _WIN32
- #include <sys/socket.h> /* AF_INET */
- #include <arpa/inet.h>
- #include <netinet/in.h>
-#endif
-
-typedef unsigned char byte;
-
-enum {
- ETHER_IF_FRAME_LEN = 14, /* ethernet interface frame length */
- NULL_IF_FRAME_LEN = 4, /* no link interface frame length */
-};
-
-
-/* A TLS record can be 16k and change. The chain is broken up into 2K chunks.
- * This covers the TLS record, plus a chunk for TCP/IP headers. */
-#ifndef CHAIN_INPUT_CHUNK_SIZE
- #define CHAIN_INPUT_CHUNK_SIZE 2048
-#elif (CHAIN_INPUT_CHUNK_SIZE < 256)
- #undef CHAIN_INPUT_CHUNK_SIZE
- #define CHAIN_INPUT_CHUNK_SIZE 256
-#elif (CHAIN_INPUT_CHUNK_SIZE > 16384)
- #undef CHAIN_INPUT_CHUNK_SIZE
- #define CHAIN_INPUT_CHUNK_SIZE 16384
-#endif
-#define CHAIN_INPUT_COUNT ((16384 / CHAIN_INPUT_CHUNK_SIZE) + 1)
-
-
-#ifndef STORE_DATA_BLOCK_SZ
- #define STORE_DATA_BLOCK_SZ 1024
-#endif
-
-
-pcap_t* pcap = NULL;
-pcap_if_t* alldevs = NULL;
-
-
-static void FreeAll(void)
-{
- if (pcap)
- pcap_close(pcap);
- if (alldevs)
- pcap_freealldevs(alldevs);
-#ifndef _WIN32
- ssl_FreeSniffer();
-#endif
-}
-
-
-#ifdef WOLFSSL_SNIFFER_STATS
-
-static void DumpStats(void)
-{
- SSLStats sslStats;
- ssl_ReadStatistics(&sslStats);
-
- printf("SSL Stats (sslStandardConns):%lu\n",
- sslStats.sslStandardConns);
- printf("SSL Stats (sslClientAuthConns):%lu\n",
- sslStats.sslClientAuthConns);
- printf("SSL Stats (sslResumedConns):%lu\n",
- sslStats.sslResumedConns);
- printf("SSL Stats (sslEphemeralMisses):%lu\n",
- sslStats.sslEphemeralMisses);
- printf("SSL Stats (sslResumeMisses):%lu\n",
- sslStats.sslResumeMisses);
- printf("SSL Stats (sslCiphersUnsupported):%lu\n",
- sslStats.sslCiphersUnsupported);
- printf("SSL Stats (sslKeysUnmatched):%lu\n",
- sslStats.sslKeysUnmatched);
- printf("SSL Stats (sslKeyFails):%lu\n",
- sslStats.sslKeyFails);
- printf("SSL Stats (sslDecodeFails):%lu\n",
- sslStats.sslDecodeFails);
- printf("SSL Stats (sslAlerts):%lu\n",
- sslStats.sslAlerts);
- printf("SSL Stats (sslDecryptedBytes):%lu\n",
- sslStats.sslDecryptedBytes);
- printf("SSL Stats (sslEncryptedBytes):%lu\n",
- sslStats.sslEncryptedBytes);
- printf("SSL Stats (sslEncryptedPackets):%lu\n",
- sslStats.sslEncryptedPackets);
- printf("SSL Stats (sslDecryptedPackets):%lu\n",
- sslStats.sslDecryptedPackets);
- printf("SSL Stats (sslKeyMatches):%lu\n",
- sslStats.sslKeyMatches);
- printf("SSL Stats (sslEncryptedConns):%lu\n",
- sslStats.sslEncryptedConns);
-}
-
-#endif
-
-
-static void sig_handler(const int sig)
-{
- printf("SIGINT handled = %d.\n", sig);
- FreeAll();
-#ifdef WOLFSSL_SNIFFER_STATS
- DumpStats();
-#endif
- if (sig)
- exit(EXIT_SUCCESS);
-}
-
-
-static void err_sys(const char* msg)
-{
- fprintf(stderr, "%s\n", msg);
- if (msg)
- exit(EXIT_FAILURE);
-}
-
-
-#ifdef _WIN32
- #define SNPRINTF _snprintf
-#else
- #define SNPRINTF snprintf
-#endif
-
-
-static char* iptos(const struct in_addr* addr)
-{
- static char output[32];
- byte *p = (byte*)&addr->s_addr;
-
- snprintf(output, sizeof(output), "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
-
- return output;
-}
-
-
-static const char* ip6tos(const struct in6_addr* addr)
-{
- static char output[42];
- return inet_ntop(AF_INET6, addr, output, 42);
-}
-
-
-#if defined(WOLFSSL_SNIFFER_STORE_DATA_CB) || defined(WOLFSSL_SNIFFER_CHAIN_INPUT)
-
-static inline unsigned int min(unsigned int a, unsigned int b)
-{
- return a > b ? b : a;
-}
-
-#endif
-
-
-#ifdef WOLFSSL_SNIFFER_WATCH
-
-const byte rsaHash[] = {
- 0xD1, 0xB6, 0x12, 0xAD, 0xB6, 0x50, 0x7B, 0x59,
- 0x97, 0x83, 0x6B, 0xCB, 0x35, 0xF5, 0xB8, 0x67,
- 0xEB, 0x83, 0x75, 0x40, 0x1B, 0x42, 0x61, 0xF1,
- 0x03, 0x72, 0xDC, 0x09, 0x0D, 0x60, 0x83, 0x15
-};
-
-const byte eccHash[] = {
- 0xDA, 0x08, 0x6D, 0xB5, 0x0B, 0xC4, 0x9F, 0x8A,
- 0x9E, 0x61, 0x9E, 0x87, 0x57, 0x5F, 0x00, 0xAA,
- 0x76, 0xE5, 0x1C, 0x9C, 0x74, 0x2A, 0x19, 0xBE,
- 0x22, 0xAE, 0x25, 0x3F, 0xA8, 0xAF, 0x8E, 0x7F
-};
-
-
-static int myWatchCb(void* vSniffer,
- const unsigned char* certHash, unsigned int certHashSz,
- const unsigned char* certChain, unsigned int certChainSz,
- void* ctx, char* error)
-{
- const char* certName = NULL;
-
- (void)certChain;
- (void)certChainSz;
- (void)ctx;
-
- if (certHashSz == sizeof(rsaHash) &&
- memcmp(certHash, rsaHash, certHashSz) == 0)
- certName = "../../certs/server-key.pem";
- if (certHashSz == sizeof(eccHash) &&
- memcmp(certHash, eccHash, certHashSz) == 0)
- certName = "../../certs/ecc-key.pem";
-
- if (certName == NULL)
- return -1;
-
- return ssl_SetWatchKey_file(vSniffer, certName, FILETYPE_PEM, NULL, error);
-}
-
-#endif
-
-
-#ifdef WOLFSSL_SNIFFER_STORE_DATA_CB
-
-static int myStoreDataCb(const unsigned char* decryptBuf,
- unsigned int decryptBufSz, unsigned int decryptBufOffset, void* ctx)
-{
- byte** data = (byte**)ctx;
- unsigned int qty;
-
- if (data == NULL)
- return -1;
-
- if (decryptBufSz < decryptBufOffset)
- return -1;
-
- qty = min(decryptBufSz - decryptBufOffset, STORE_DATA_BLOCK_SZ);
-
- if (*data == NULL) {
- byte* tmpData;
- tmpData = (byte*)XREALLOC(*data, decryptBufSz + 1,
- NULL, DYNAMIC_TYPE_TMP_BUFFER);
- if (tmpData == NULL) {
- XFREE(*data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- *data = NULL;
- return -1;
- }
- *data = tmpData;
- }
-
- memcpy(*data + decryptBufOffset, decryptBuf + decryptBufOffset, qty);
-
- return qty;
-}
-
-#endif
-
-
-int main(int argc, char** argv)
-{
- int ret = 0;
- int hadBadPacket = 0;
- int inum;
- int port;
- int saveFile = 0;
- int i = 0;
- int frame = ETHER_IF_FRAME_LEN;
- char err[PCAP_ERRBUF_SIZE];
- char filter[32];
- const char *server = NULL;
- struct bpf_program fp;
- pcap_if_t *d;
- pcap_addr_t *a;
-#ifdef WOLFSSL_SNIFFER_CHAIN_INPUT
- struct iovec chain[CHAIN_INPUT_COUNT];
- int chainSz;
-#endif
-
- signal(SIGINT, sig_handler);
-
-#ifndef _WIN32
- ssl_InitSniffer(); /* dll load on Windows */
-#endif
- ssl_Trace("./tracefile.txt", err);
- ssl_EnableRecovery(1, -1, err);
-#ifdef WOLFSSL_SNIFFER_WATCH
- ssl_SetWatchKeyCallback(myWatchCb, err);
-#endif
-#ifdef WOLFSSL_SNIFFER_STORE_DATA_CB
- ssl_SetStoreDataCallback(myStoreDataCb);
-#endif
-
- if (argc == 1) {
- /* normal case, user chooses device and port */
-
- if (pcap_findalldevs(&alldevs, err) == -1)
- err_sys("Error in pcap_findalldevs");
-
- for (d = alldevs; d; d=d->next) {
- printf("%d. %s", ++i, d->name);
- if (d->description)
- printf(" (%s)\n", d->description);
- else
- printf(" (No description available)\n");
- }
-
- if (i == 0)
- err_sys("No interfaces found! Make sure pcap or WinPcap is"
- " installed correctly and you have sufficient permissions");
-
- printf("Enter the interface number (1-%d): ", i);
- ret = scanf("%d", &inum);
- if (ret != 1) {
- printf("scanf port failed\n");
- }
-
- if (inum < 1 || inum > i)
- err_sys("Interface number out of range");
-
- /* Jump to the selected adapter */
- for (d = alldevs, i = 0; i < inum - 1; d = d->next, i++);
-
- pcap = pcap_create(d->name, err);
-
- if (pcap == NULL) printf("pcap_create failed %s\n", err);
-
- /* print out addresses for selected interface */
- for (a = d->addresses; a; a = a->next) {
- if (a->addr->sa_family == AF_INET) {
- server =
- iptos(&((struct sockaddr_in *)a->addr)->sin_addr);
- printf("server = %s\n", server);
- }
- else if (a->addr->sa_family == AF_INET6) {
- server =
- ip6tos(&((struct sockaddr_in6 *)a->addr)->sin6_addr);
- printf("server = %s\n", server);
- }
- }
- if (server == NULL)
- err_sys("Unable to get device IPv4 or IPv6 address");
-
- ret = pcap_set_snaplen(pcap, 65536);
- if (ret != 0) printf("pcap_set_snaplen failed %s\n", pcap_geterr(pcap));
-
- ret = pcap_set_timeout(pcap, 1000);
- if (ret != 0) printf("pcap_set_timeout failed %s\n", pcap_geterr(pcap));
-
- ret = pcap_set_buffer_size(pcap, 1000000);
- if (ret != 0)
- printf("pcap_set_buffer_size failed %s\n", pcap_geterr(pcap));
-
- ret = pcap_set_promisc(pcap, 1);
- if (ret != 0) printf("pcap_set_promisc failed %s\n", pcap_geterr(pcap));
-
-
- ret = pcap_activate(pcap);
- if (ret != 0) printf("pcap_activate failed %s\n", pcap_geterr(pcap));
-
- printf("Enter the port to scan: ");
- ret = scanf("%d", &port);
- if (ret != 1)
- printf("scanf port failed\n");
-
- SNPRINTF(filter, sizeof(filter), "tcp and port %d", port);
-
- ret = pcap_compile(pcap, &fp, filter, 0, 0);
- if (ret != 0) printf("pcap_compile failed %s\n", pcap_geterr(pcap));
-
- ret = pcap_setfilter(pcap, &fp);
- if (ret != 0) printf("pcap_setfilter failed %s\n", pcap_geterr(pcap));
-
- /* get IPv4 or IPv6 addresses for selected interface */
- for (a = d->addresses; a; a = a->next) {
- server = NULL;
- if (a->addr->sa_family == AF_INET) {
- server =
- iptos(&((struct sockaddr_in *)a->addr)->sin_addr);
- }
- else if (a->addr->sa_family == AF_INET6) {
- server =
- ip6tos(&((struct sockaddr_in6 *)a->addr)->sin6_addr);
- }
-
- if (server) {
- #ifndef WOLFSSL_SNIFFER_WATCH
- ret = ssl_SetPrivateKey(server, port,
- "../../certs/server-key.pem",
- FILETYPE_PEM, NULL, err);
- if (ret != 0) {
- printf("Please run directly from sslSniffer/sslSnifferTest"
- "dir\n");
- }
- #ifdef HAVE_SNI
- {
- char altName[128];
-
- printf("Enter alternate SNI: ");
- ret = scanf("%s", altName);
-
- if (strnlen(altName, 128) > 0) {
- ret = ssl_SetNamedPrivateKey(altName,
- server, port, "../../certs/server-key.pem",
- FILETYPE_PEM, NULL, err);
- if (ret != 0) {
- printf("Please run directly from "
- "sslSniffer/sslSnifferTest dir\n");
- }
- }
- }
- #endif
- #endif
- }
- }
- }
- else if (argc >= 3) {
- saveFile = 1;
- pcap = pcap_open_offline(argv[1], err);
- if (pcap == NULL) {
- printf("pcap_open_offline failed %s\n", err);
- ret = -1;
- }
- else {
- const char* passwd = NULL;
- /* defaults for server and port */
- port = 443;
- server = "127.0.0.1";
-
- if (argc >= 4)
- server = argv[3];
-
- if (argc >= 5)
- port = atoi(argv[4]);
-
- if (argc >= 6)
- passwd = argv[5];
-
- ret = ssl_SetPrivateKey(server, port, argv[2],
- FILETYPE_PEM, passwd, err);
- }
- }
- else {
- /* usage error */
- printf( "usage: ./snifftest or ./snifftest dump pemKey"
- " [server] [port] [password]\n");
- exit(EXIT_FAILURE);
- }
-
- if (ret != 0)
- err_sys(err);
-
- if (pcap_datalink(pcap) == DLT_NULL)
- frame = NULL_IF_FRAME_LEN;
-
- while (1) {
- static int packetNumber = 0;
- struct pcap_pkthdr header;
- const unsigned char* packet = pcap_next(pcap, &header);
- SSLInfo sslInfo;
- packetNumber++;
- if (packet) {
-
- byte* data = NULL;
-
- if (header.caplen > 40) { /* min ip(20) + min tcp(20) */
- packet += frame;
- header.caplen -= frame;
- }
- else
- continue;
-#ifdef WOLFSSL_SNIFFER_CHAIN_INPUT
- {
- unsigned int j = 0;
- unsigned int remainder = header.caplen;
-
- chainSz = 0;
- do {
- unsigned int chunkSz;
-
- chunkSz = min(remainder, CHAIN_INPUT_CHUNK_SIZE);
- chain[chainSz].iov_base = (void*)(packet + j);
- chain[chainSz].iov_len = chunkSz;
- j += chunkSz;
- remainder -= chunkSz;
- chainSz++;
- } while (j < header.caplen);
- }
-#endif
-
-#if defined(WOLFSSL_SNIFFER_CHAIN_INPUT) && \
- defined(WOLFSSL_SNIFFER_STORE_DATA_CB)
- ret = ssl_DecodePacketWithChainSessionInfoStoreData(chain, chainSz,
- &data, &sslInfo, err);
-#elif defined(WOLFSSL_SNIFFER_CHAIN_INPUT)
- (void)sslInfo;
- ret = ssl_DecodePacketWithChain(chain, chainSz, &data, err);
-#elif defined(WOLFSSL_SNIFFER_STORE_DATA_CB)
- ret = ssl_DecodePacketWithSessionInfoStoreData(packet,
- header.caplen, &data, &sslInfo, err);
-#else
- ret = ssl_DecodePacketWithSessionInfo(packet, header.caplen, &data,
- &sslInfo, err);
-#endif
- if (ret < 0) {
- printf("ssl_Decode ret = %d, %s\n", ret, err);
- hadBadPacket = 1;
- }
- if (ret > 0) {
- int j;
- /* Convert non-printable data to periods. */
- for (j = 0; j < ret; j++) {
- if (isprint(data[j]) || isspace(data[j])) continue;
- data[j] = '.';
- }
- data[ret] = 0;
- printf("SSL App Data(%d:%d):%s\n", packetNumber, ret, data);
- ssl_FreeZeroDecodeBuffer(&data, ret, err);
- }
- }
- else if (saveFile)
- break; /* we're done reading file */
- }
- FreeAll();
-
- return hadBadPacket ? EXIT_FAILURE : EXIT_SUCCESS;
-}
-
-#endif /* full build */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSnifferTest/sslSniffTest.vcproj b/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSnifferTest/sslSniffTest.vcproj
deleted file mode 100644
index ff9977fa9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/sslSniffer/sslSnifferTest/sslSniffTest.vcproj
+++ /dev/null
@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="sslSniffTest"
- ProjectGUID="{8C89E16E-9C36-45EF-A491-F4EBD4A8D8F1}"
- RootNamespace="sslSniffTest"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../../WpdPack/Include;../.."
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="wpcap.lib"
- LinkIncremental="2"
- AdditionalLibraryDirectories="../../../WpdPack/Lib"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../../../WpdPack/Include;../.."
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="wpcap.lib"
- LinkIncremental="1"
- AdditionalLibraryDirectories="../../../WpdPack/Lib"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\snifftest.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/support/include.am b/FreeRTOS-Plus/Source/WolfSSL/support/include.am
deleted file mode 100644
index db3ed7387..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/support/include.am
+++ /dev/null
@@ -1,10 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-#
-
-EXTRA_DIST += support/wolfssl.pc
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = support/wolfssl.pc
-
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/support/wolfssl.pc b/FreeRTOS-Plus/Source/WolfSSL/support/wolfssl.pc
deleted file mode 100644
index 8550a98c0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/support/wolfssl.pc
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=/usr/local
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
-Name: wolfssl
-Description: wolfssl C library.
-Version: 4.4.0
-Libs: -L${libdir} -lwolfssl
-Cflags: -I${includedir}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/support/wolfssl.pc.in b/FreeRTOS-Plus/Source/WolfSSL/support/wolfssl.pc.in
deleted file mode 100644
index e8cb694fd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/support/wolfssl.pc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: wolfssl
-Description: wolfssl C library.
-Version: @VERSION@
-Libs: -L${libdir} -lwolfssl
-Cflags: -I${includedir}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/swig/PythonBuild.sh b/FreeRTOS-Plus/Source/WolfSSL/swig/PythonBuild.sh
deleted file mode 100644
index ae4ac45f4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/swig/PythonBuild.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-echo
-swig -python wolfssl.i
-pythonIncludes=`python-config --includes`
-pythonLibs=`python-config --libs`
-gcc -c -fpic wolfssl_wrap.c -I$pythonIncludes
-gcc -c -fpic wolfssl_adds.c
-gcc -shared -flat_namespace wolfssl_adds.o wolfssl_wrap.o -lwolfssl $pythonLibs -o _wolfssl.so
-python runme.py
diff --git a/FreeRTOS-Plus/Source/WolfSSL/swig/README b/FreeRTOS-Plus/Source/WolfSSL/swig/README
deleted file mode 100644
index 22f99c368..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/swig/README
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-Initial swig interface file
-
-Please send questions to support@wolfssl.com
-
-
-
-**Python Support**
-
- For Linux, OS X, or *nix
-
-1) build wolfSSL with fpic on Linux, not needed on OS X
- ./configure --disable-shared CFLAGS=-fpic
- make
- sudo make install
-
- NOTE: if you want to use pbkdf pkcs #12 algorithm you should build CyaSSL with --enable-pwdbased:
- ./configure --disable-shared --enable-pwdbased CFLAGS=-fpic
-
-2) start the example server from the root directory
- ./examples/server/server -d
-
-3) run ./PythonBuild.sh from this directory it will
- a) build the swig wrapper file
- b) compile the swig wrapper and wolfssl wrapper files
- c) place them into a wolfssl shared library for python
- d) run runme.py which will connect to the wolfSSL server, write a
- string, then read the result and output it
-
-
- Windows only
-
-1) Make sure the install path to wolfssl doesn't have any spaces anywhere in the
- directory path because swig doesn't like that
-2) Have python for Windows installed, note install directory
-3) Have swigwin installed, note install directory
-4) Make sure swigwin install directory is added to PATH env. variable
-5) Make sure env. variables PYTHON_INCLUDE and PYTHON_LIB are set correctly e.g.
- PYTHON_INCLUE="c:\Python26\include"
- PYTHON_LIB="c:\Python26\libs\python26.lib"
-6) Build python_wolfssl in Release mode only, Debug build fails to find a debug
- python library that isn't included by default
-7) The outputs _wolfssl.pyd and wolfssl.py are the wolfssl import library
-8) Can now run python runme.py from the swig directory
diff --git a/FreeRTOS-Plus/Source/WolfSSL/swig/include.am b/FreeRTOS-Plus/Source/WolfSSL/swig/include.am
deleted file mode 100644
index 3bd4c0920..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/swig/include.am
+++ /dev/null
@@ -1,12 +0,0 @@
-# vim:ft=automake
-# All paths should be given relative to the root
-
-EXTRA_DIST+= \
- swig/PythonBuild.sh \
- swig/README \
- swig/wolfssl.i \
- swig/wolfssl_adds.c \
- swig/python_wolfssl.vcproj \
- swig/rsasign.py \
- swig/runme.py
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/swig/python_wolfssl.vcproj b/FreeRTOS-Plus/Source/WolfSSL/swig/python_wolfssl.vcproj
deleted file mode 100644
index 6af2d3675..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/swig/python_wolfssl.vcproj
+++ /dev/null
@@ -1,225 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="python_wolfssl"
- ProjectGUID="{47A3ABA9-EC54-4788-BC7E-370595B2011A}"
- RootNamespace="python_wolfssl"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../include;../wolfcrypt/include;&quot;$(PYTHON_INCLUDE)&quot;"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;PYTHON_WOLFSSL_EXPORTS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="$(PYTHON_LIB) Ws2_32.lib"
- OutputFile="_wolfssl.pyd"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../include;../wolfcrypt/include;&quot;$(PYTHON_INCLUDE)&quot;"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PYTHON_WOLFSSL_EXPORTS"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="$(PYTHON_LIB) Ws2_32.lib"
- OutputFile="_wolfssl.pyd"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\wolfssl_adds.c"
- >
- </File>
- <File
- RelativePath=".\wolfssl_wrap.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- <File
- RelativePath=".\wolfssl.i"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="echo In order to function correctly, please ensure the following environment variables are correctly set:&#x0D;&#x0A;echo PYTHON_INCLUDE: %PYTHON_INCLUDE%&#x0D;&#x0A;echo PYTHON_LIB: %PYTHON_LIB%&#x0D;&#x0A;echo on&#x0D;&#x0A;swig.exe -python $(InputPath)&#x0D;&#x0A;"
- Outputs="$(InputName)_wrap.c"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="echo In order to function correctly, please ensure the following environment variables are correctly set:&#x0D;&#x0A;echo PYTHON_INCLUDE: %PYTHON_INCLUDE%&#x0D;&#x0A;echo PYTHON_LIB: %PYTHON_LIB%&#x0D;&#x0A;echo on&#x0D;&#x0A;swig.exe -python $(InputPath)"
- Outputs="$(InputName)_wrap.c"
- />
- </FileConfiguration>
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/swig/rsasign.py b/FreeRTOS-Plus/Source/WolfSSL/swig/rsasign.py
deleted file mode 100644
index c1c69d09b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/swig/rsasign.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# file: rsasign.py
-
-import wolfssl
-
-
-# start Random Number Generator
-rng = wolfssl.GetRng()
-if rng == None:
- print "Couldn't get an RNG"
- exit(-1)
-
-# load RSA private key in DER format
-key = wolfssl.GetRsaPrivateKey("../certs/client-key.der")
-if key == None:
- print "Couldn't load DER private key file"
- exit(-1)
-
-# Make byte Arrays and fill input
-signOutput = wolfssl.byteArray(128) # 128 allows 1024 bit private key
-signStr = wolfssl.byteArray(25) # input can't be larger then key size
- # 64 for 512 bit 128 for 1024 bit
-wolfssl.FillSignStr(signStr, "Everybody gets Friday off", 25)
-
-# Do RSA Sign
-signedSize = wolfssl.RsaSSL_Sign(signStr, 25, signOutput, 128, key, rng)
-
-# Show output
-print "Signed Size = ", signedSize, " signed array = ", wolfssl.cdata(signOutput, signedSize)
-
-# let's verify this worked
-signVerify = wolfssl.byteArray(signedSize)
-verifySize = wolfssl.RsaSSL_Verify(signOutput, signedSize, signVerify, signedSize, key)
-
-print "Verify Size = ", verifySize, " verify array = ", wolfssl.cdata(signVerify, verifySize)
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/swig/runme.py b/FreeRTOS-Plus/Source/WolfSSL/swig/runme.py
deleted file mode 100644
index 90fc43159..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/swig/runme.py
+++ /dev/null
@@ -1,43 +0,0 @@
-# file: runme.py
-
-import wolfssl
-
-print ""
-print "Trying to connect to the example server -d..."
-
-wolfssl.wolfSSL_Init()
-#wolfssl.wolfSSL_Debugging_ON()
-ctx = wolfssl.wolfSSL_CTX_new(wolfssl.wolfTLSv1_2_client_method())
-if ctx == None:
- print "Couldn't get SSL CTX for TLSv1.2"
- exit(-1)
-
-ret = wolfssl.wolfSSL_CTX_load_verify_locations(ctx, "../certs/ca-cert.pem", None)
-if ret != wolfssl.SSL_SUCCESS:
- print "Couldn't do SSL_CTX_load_verify_locations "
- print "error string = ", ret
- exit(-1)
-
-ssl = wolfssl.wolfSSL_new(ctx)
-ret = wolfssl.wolfSSL_swig_connect(ssl, "localhost", 11111)
-
-if ret != wolfssl.SSL_SUCCESS:
- print "Couldn't do SSL connect"
- err = wolfssl.wolfSSL_get_error(ssl, 0)
- if ret == -2:
- print "tcp error, is example server running?"
- else:
- print "error string = ", wolfssl.wolfSSL_error_string(err)
- exit(-1)
-
-print "...Connected"
-written = wolfssl.wolfSSL_write(ssl, "hello from python\r\n", 19)
-
-if written > 0:
- print "Wrote ", written, " bytes"
-
-byteArray = wolfssl.byteArray(100)
-readBytes = wolfssl.wolfSSL_read(ssl, byteArray, 100)
-
-print "server reply: ", wolfssl.cdata(byteArray, readBytes)
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/swig/wolfssl.i b/FreeRTOS-Plus/Source/WolfSSL/swig/wolfssl.i
deleted file mode 100644
index 2571cda3f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/swig/wolfssl.i
+++ /dev/null
@@ -1,68 +0,0 @@
-/* wolfssl.i
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-%module wolfssl
-%{
- #include <wolfssl/ssl.h>
- #include <wolfssl/wolfcrypt/rsa.h>
- #include <wolfssl/wolfcrypt/pwdbased.h>
-
- /* defn adds */
- char* wolfSSL_error_string(int err);
- int wolfSSL_swig_connect(WOLFSSL*, const char* server, int port);
- WC_RNG* GetRng(void);
- RsaKey* GetRsaPrivateKey(const char* file);
- void FillSignStr(unsigned char*, const char*, int);
-%}
-
-
-WOLFSSL_METHOD* wolfTLSv1_2_client_method(void);
-WOLFSSL_CTX* wolfSSL_CTX_new(WOLFSSL_METHOD*);
-int wolfSSL_CTX_load_verify_locations(WOLFSSL_CTX*, const char*, const char*);
-WOLFSSL* wolfSSL_new(WOLFSSL_CTX*);
-int wolfSSL_get_error(WOLFSSL*, int);
-int wolfSSL_write(WOLFSSL*, const char*, int);
-int wolfSSL_Debugging_ON(void);
-int wolfSSL_Init(void);
-char* wolfSSL_error_string(int);
-int wolfSSL_swig_connect(WOLFSSL*, const char* server, int port);
-
-int wc_PKCS12_PBKDF(unsigned char* output, const unsigned char* passwd, int pLen, const unsigned char* salt,
- int sLen, int iterations, int kLen, int hashType, int purpose);
-
-int wc_RsaSSL_Sign(const unsigned char* in, int inLen, unsigned char* out, int outLen, RsaKey* key, WC_RNG* rng);
-
-int wc_RsaSSL_Verify(const unsigned char* in, int inLen, unsigned char* out, int outLen, RsaKey* key);
-
-WC_RNG* GetRng(void);
-RsaKey* GetRsaPrivateKey(const char* file);
-void FillSignStr(unsigned char*, const char*, int);
-
-%include carrays.i
-%include cdata.i
-%array_class(unsigned char, byteArray);
-int wolfSSL_read(WOLFSSL*, unsigned char*, int);
-
-
-#define SSL_FAILURE 0
-#define SSL_SUCCESS 1
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/swig/wolfssl_adds.c b/FreeRTOS-Plus/Source/WolfSSL/swig/wolfssl_adds.c
deleted file mode 100644
index fd055ff80..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/swig/wolfssl_adds.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/* wolfssl_adds.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifndef _WIN32
- #define HAVE_CONFIG_H
-#endif
-
-#include <wolfssl/ssl.h>
-#include <wolfssl/wolfcrypt/rsa.h>
-#include <wolfssl/wolfcrypt/asn.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <ctype.h>
-
-#ifdef _WIN32
- #include <winsock2.h>
- #include <process.h>
- #ifdef TEST_IPV6 /* don't require newer SDK for IPV4 */
- #include <ws2tcpip.h>
- #include <wspiapi.h>
- #endif
- #define SOCKET_T int
-#else
- #include <string.h>
- #include <unistd.h>
- #include <netdb.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <sys/ioctl.h>
- #include <sys/time.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <pthread.h>
- #ifdef NON_BLOCKING
- #include <fcntl.h>
- #endif
- #ifdef TEST_IPV6
- #include <netdb.h>
- #endif
- #define SOCKET_T unsigned int
-#endif /* _WIN32 */
-
-#ifdef _MSC_VER
- /* disable conversion warning */
- /* 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy */
- #pragma warning(disable:4244 4996)
-#endif
-
-#if defined(__MACH__) || defined(_WIN32)
- #ifndef _SOCKLEN_T
- typedef int socklen_t;
- #endif
-#endif
-
-
-/* HPUX doesn't use socklent_t for third parameter to accept */
-#if !defined(__hpux__)
- typedef socklen_t* ACCEPT_THIRD_T;
-#else
- typedef int* ACCEPT_THIRD_T;
-#endif
-
-
-#ifdef _WIN32
- #define CloseSocket(s) closesocket(s)
- #define StartTCP() { WSADATA wsd; WSAStartup(0x0002, &wsd); }
-#else
- #define CloseSocket(s) close(s)
- #define StartTCP()
-#endif
-
-
-#ifdef TEST_IPV6
- typedef struct sockaddr_in6 SOCKADDR_IN_T;
- #define AF_INET_V AF_INET6
-#else
- typedef struct sockaddr_in SOCKADDR_IN_T;
- #define AF_INET_V AF_INET
-#endif
-
-
-enum {
- SSL_BLOCKING = 2,
- SSL_NONBLOCKING = 4
-};
-
-
-static int tcp_socket(SOCKET_T* sockfd, SOCKADDR_IN_T* addr, const char* peer,
- short port)
-{
- const char* host = peer;
-
- /* peer could be in human readable form */
- if (isalpha(peer[0])) {
- struct hostent* entry = gethostbyname(peer);
-
- if (entry) {
- struct sockaddr_in tmp;
- memset(&tmp, 0, sizeof(struct sockaddr_in));
- memcpy(&tmp.sin_addr.s_addr, entry->h_addr_list[0],entry->h_length);
- host = inet_ntoa(tmp.sin_addr);
- }
- else
- return -1; /* no entry for host */
- }
-
- *sockfd = socket(AF_INET, SOCK_STREAM, 0);
- memset(addr, 0, sizeof(SOCKADDR_IN_T));
-
- addr->sin_family = AF_INET;
- addr->sin_port = htons(port);
- addr->sin_addr.s_addr = inet_addr(host);
-
-#ifdef SO_NOSIGPIPE
- {
- int on = 1;
- socklen_t len = sizeof(on);
- setsockopt(*sockfd, SOL_SOCKET, SO_NOSIGPIPE, &on, len);
- }
-#endif
-
- return 0;
-}
-
-
-static int tcp_connect(SOCKET_T* sockfd, const char* ip, short port)
-{
- SOCKADDR_IN_T addr;
- int ret = tcp_socket(sockfd, &addr, ip, port);
- if (ret != 0) return ret;
-
- if (connect(*sockfd, (const struct sockaddr*)&addr, sizeof(addr)) != 0)
- return -2; /* can't connect */
-
- return 0;
-}
-
-
-int wolfSSL_swig_connect(WOLFSSL* ssl, const char* server, int port)
-{
- SOCKET_T sockfd;
- int ret = tcp_connect(&sockfd, server, port);
- if (ret != 0) return ret;
-
- ret = wolfSSL_set_fd(ssl, sockfd);
- if (ret != SSL_SUCCESS) return ret;
-
- return wolfSSL_connect(ssl);
-}
-
-
-char* wolfSSL_error_string(int err)
-{
- static char buffer[WOLFSSL_MAX_ERROR_SZ];
-
- return wolfSSL_ERR_error_string(err, buffer);
-}
-
-
-WC_RNG* GetRng(void)
-{
- WC_RNG* rng = (WC_RNG*)malloc(sizeof(WC_RNG));
-
- if (rng)
- if (wc_InitRng(rng) != 0) {
- free(rng);
- rng = 0;
- }
-
- return rng;
-}
-
-
-RsaKey* GetRsaPrivateKey(const char* keyFile)
-{
- RsaKey* key = (RsaKey*)malloc(sizeof(RsaKey));
-
- if (key) {
- byte tmp[1024];
- size_t bytes;
- int ret;
- word32 idx = 0;
- XFILE file = XFOPEN(keyFile, "rb");
-
- if (file == XBADFILE)
- {
- free(key);
- return 0;
- }
-
- bytes = XFREAD(tmp, 1, sizeof(tmp), file);
- XFCLOSE(file);
- wc_InitRsaKey(key, 0);
-
- ret = wc_RsaPrivateKeyDecode(tmp, &idx, key, (word32)bytes);
- if (ret != 0) {
- wc_FreeRsaKey(key);
- free(key);
- return 0;
- }
- }
- return key;
-}
-
-
-void FillSignStr(unsigned char* dst, const char* src, int size)
-{
- memcpy(dst, src, size);
-}
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/api.c b/FreeRTOS-Plus/Source/WolfSSL/tests/api.c
deleted file mode 100644
index 4975981e6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/api.c
+++ /dev/null
@@ -1,32482 +0,0 @@
-/* api.c API unit tests
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/*----------------------------------------------------------------------------*
- | Includes
- *----------------------------------------------------------------------------*/
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifndef FOURK_BUF
- #define FOURK_BUF 4096
-#endif
-#ifndef TWOK_BUF
- #define TWOK_BUF 2048
-#endif
-#ifndef ONEK_BUF
- #define ONEK_BUF 1024
-#endif
-#if defined(WOLFSSL_STATIC_MEMORY)
- #include <wolfssl/wolfcrypt/memory.h>
-#endif /* WOLFSSL_STATIC_MEMORY */
-#ifndef HEAP_HINT
- #define HEAP_HINT NULL
-#endif /* WOLFSSL_STAIC_MEMORY */
-#ifdef WOLFSSL_ASNC_CRYPT
- #include <wolfssl/wolfcrypt/async.h>
-#endif
-#ifdef HAVE_ECC
- #include <wolfssl/wolfcrypt/ecc.h> /* wc_ecc_fp_free */
- #ifndef ECC_ASN963_MAX_BUF_SZ
- #define ECC_ASN963_MAX_BUF_SZ 133
- #endif
- #ifndef ECC_PRIV_KEY_BUF
- #define ECC_PRIV_KEY_BUF 66 /* For non user defined curves. */
- #endif
- #ifdef HAVE_ALL_CURVES
- /* ecc key sizes: 14, 16, 20, 24, 28, 30, 32, 40, 48, 64*/
- #ifndef KEY14
- #define KEY14 14
- #endif
- #if !defined(KEY16)
- #define KEY16 16
- #endif
- #if !defined(KEY20)
- #define KEY20 20
- #endif
- #if !defined(KEY24)
- #define KEY24 24
- #endif
- #if !defined(KEY28)
- #define KEY28 28
- #endif
- #if !defined(KEY30)
- #define KEY30 30
- #endif
- #if !defined(KEY32)
- #define KEY32 32
- #endif
- #if !defined(KEY40)
- #define KEY40 40
- #endif
- #if !defined(KEY48)
- #define KEY48 48
- #endif
- #if !defined(KEY64)
- #define KEY64 64
- #endif
- #else
- /* ecc key sizes: 14, 16, 20, 24, 28, 30, 32, 40, 48, 64*/
- #ifndef KEY14
- #define KEY14 32
- #endif
- #if !defined(KEY16)
- #define KEY16 32
- #endif
- #if !defined(KEY20)
- #define KEY20 32
- #endif
- #if !defined(KEY24)
- #define KEY24 32
- #endif
- #if !defined(KEY28)
- #define KEY28 32
- #endif
- #if !defined(KEY30)
- #define KEY30 32
- #endif
- #if !defined(KEY32)
- #define KEY32 32
- #endif
- #if !defined(KEY40)
- #define KEY40 32
- #endif
- #if !defined(KEY48)
- #define KEY48 32
- #endif
- #if !defined(KEY64)
- #define KEY64 32
- #endif
- #endif
- #if !defined(HAVE_COMP_KEY)
- #if !defined(NOCOMP)
- #define NOCOMP 0
- #endif
- #else
- #if !defined(COMP)
- #define COMP 1
- #endif
- #endif
- #if !defined(DER_SZ)
- #define DER_SZ (keySz * 2 + 1)
- #endif
-#endif
-#ifndef NO_ASN
- #include <wolfssl/wolfcrypt/asn_public.h>
-#endif
-#include <wolfssl/error-ssl.h>
-
-#include <stdlib.h>
-#include <wolfssl/ssl.h> /* compatibility layer */
-#include <wolfssl/test.h>
-#include <tests/unit.h>
-#include "examples/server/server.h"
- /* for testing compatibility layer callbacks */
-
-#ifndef NO_MD5
- #include <wolfssl/wolfcrypt/md5.h>
-#endif
-#ifndef NO_SHA
- #include <wolfssl/wolfcrypt/sha.h>
-#endif
-#ifndef NO_SHA256
- #include <wolfssl/wolfcrypt/sha256.h>
-#endif
-#ifdef WOLFSSL_SHA512
- #include <wolfssl/wolfcrypt/sha512.h>
-#endif
-#ifdef WOLFSSL_SHA384
- #include <wolfssl/wolfcrypt/sha512.h>
-#endif
-
-#ifdef WOLFSSL_SHA3
- #include <wolfssl/wolfcrypt/sha3.h>
- #ifndef HEAP_HINT
- #define HEAP_HINT NULL
- #endif
-#endif
-
-#ifndef NO_AES
- #include <wolfssl/wolfcrypt/aes.h>
- #ifdef HAVE_AES_DECRYPT
- #include <wolfssl/wolfcrypt/wc_encrypt.h>
- #endif
-#endif
-#ifdef WOLFSSL_RIPEMD
- #include <wolfssl/wolfcrypt/ripemd.h>
-#endif
-#ifdef HAVE_IDEA
- #include <wolfssl/wolfcrypt/idea.h>
-#endif
-#ifndef NO_DES3
- #include <wolfssl/wolfcrypt/des3.h>
- #include <wolfssl/wolfcrypt/wc_encrypt.h>
-#endif
-
-#ifndef NO_HMAC
- #include <wolfssl/wolfcrypt/hmac.h>
-#endif
-
-#ifdef HAVE_CHACHA
- #include <wolfssl/wolfcrypt/chacha.h>
-#endif
-
-#ifdef HAVE_POLY1305
- #include <wolfssl/wolfcrypt/poly1305.h>
-#endif
-
-#if defined(HAVE_CHACHA) && defined(HAVE_POLY1305)
- #include <wolfssl/wolfcrypt/chacha20_poly1305.h>
-#endif
-
-#ifdef HAVE_CAMELLIA
- #include <wolfssl/wolfcrypt/camellia.h>
-#endif
-
-#ifndef NO_RABBIT
- #include <wolfssl/wolfcrypt/rabbit.h>
-#endif
-
-#ifndef NO_RC4
- #include <wolfssl/wolfcrypt/arc4.h>
-#endif
-
-#ifdef HAVE_BLAKE2
- #include <wolfssl/wolfcrypt/blake2.h>
-#endif
-
-#include <wolfssl/wolfcrypt/hash.h>
-#ifndef NO_RSA
- #include <wolfssl/wolfcrypt/rsa.h>
-
- #define FOURK_BUF 4096
- #define GEN_BUF 294
-
- #ifndef USER_CRYPTO_ERROR
- #define USER_CRYPTO_ERROR -101 /* error returned by IPP lib. */
- #endif
-#endif
-
-#ifndef NO_SIG_WRAPPER
- #include <wolfssl/wolfcrypt/signature.h>
-#endif
-
-
-#ifdef HAVE_AESCCM
- #include <wolfssl/wolfcrypt/aes.h>
-#endif
-
-#ifdef HAVE_HC128
- #include <wolfssl/wolfcrypt/hc128.h>
-#endif
-
-#ifdef HAVE_PKCS7
- #include <wolfssl/wolfcrypt/pkcs7.h>
- #include <wolfssl/wolfcrypt/asn.h>
-#endif
-
-#ifdef WOLFSSL_SMALL_CERT_VERIFY
- #include <wolfssl/wolfcrypt/asn.h>
-#endif
-
-#if defined(WOLFSSL_SHA3) || defined(HAVE_PKCS7) || (!defined(NO_RSA) && \
- !defined(NO_SIG_WRAPPER))
- static int devId = INVALID_DEVID;
-#endif
-#ifndef NO_DSA
- #include <wolfssl/wolfcrypt/dsa.h>
- #ifndef ONEK_BUF
- #define ONEK_BUF 1024
- #endif
- #ifndef TWOK_BUF
- #define TWOK_BUF 2048
- #endif
- #ifndef FOURK_BUF
- #define FOURK_BUF 4096
- #endif
- #ifndef DSA_SIG_SIZE
- #define DSA_SIG_SIZE 40
- #endif
- #ifndef MAX_DSA_PARAM_SIZE
- #define MAX_DSA_PARAM_SIZE 256
- #endif
-#endif
-
-#ifdef WOLFSSL_CMAC
- #include <wolfssl/wolfcrypt/cmac.h>
-#endif
-
-#ifdef HAVE_ED25519
- #include <wolfssl/wolfcrypt/ed25519.h>
-#endif
-#ifdef HAVE_CURVE25519
- #include <wolfssl/wolfcrypt/curve25519.h>
-#endif
-#ifdef HAVE_ED448
- #include <wolfssl/wolfcrypt/ed448.h>
-#endif
-#ifdef HAVE_CURVE448
- #include <wolfssl/wolfcrypt/curve448.h>
-#endif
-
-#ifdef HAVE_PKCS12
- #include <wolfssl/wolfcrypt/pkcs12.h>
-#endif
-
-#if (defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) || defined(OPENSSL_ALL))
- #include <wolfssl/openssl/ssl.h>
- #ifndef NO_ASN
- /* for ASN_COMMON_NAME DN_tags enum */
- #include <wolfssl/wolfcrypt/asn.h>
- #endif
- #ifdef HAVE_OCSP
- #include <wolfssl/openssl/ocsp.h>
- #endif
-#endif
-#ifdef OPENSSL_EXTRA
- #include <wolfssl/openssl/x509v3.h>
- #include <wolfssl/openssl/asn1.h>
- #include <wolfssl/openssl/crypto.h>
- #include <wolfssl/openssl/pkcs12.h>
- #include <wolfssl/openssl/evp.h>
- #include <wolfssl/openssl/dh.h>
- #include <wolfssl/openssl/bn.h>
- #include <wolfssl/openssl/buffer.h>
- #include <wolfssl/openssl/pem.h>
- #include <wolfssl/openssl/ec.h>
- #include <wolfssl/openssl/engine.h>
- #include <wolfssl/openssl/crypto.h>
- #include <wolfssl/openssl/hmac.h>
- #include <wolfssl/openssl/objects.h>
-#ifndef NO_AES
- #include <wolfssl/openssl/aes.h>
-#endif
-#ifndef NO_DES3
- #include <wolfssl/openssl/des.h>
-#endif
-#ifdef HAVE_ECC
- #include <wolfssl/openssl/ecdsa.h>
-#endif
-#ifdef HAVE_PKCS7
- #include <wolfssl/openssl/pkcs7.h>
-#endif
-#endif /* OPENSSL_EXTRA */
-
-#if defined(OPENSSL_EXTRA) && defined(WOLFCRYPT_HAVE_SRP) \
- && !defined(NO_SHA256) && !defined(RC_NO_RNG)
- #include <wolfssl/wolfcrypt/srp.h>
-#endif
-
-#if defined(SESSION_CERTS) && defined(TEST_PEER_CERT_CHAIN)
-#include "wolfssl/internal.h" /* for testing SSL_get_peer_cert_chain */
-#endif
-
-/* force enable test buffers */
-#ifndef USE_CERT_BUFFERS_2048
- #define USE_CERT_BUFFERS_2048
-#endif
-#ifndef USE_CERT_BUFFERS_256
- #define USE_CERT_BUFFERS_256
-#endif
-#include <wolfssl/certs_test.h>
-
-typedef struct testVector {
- const char* input;
- const char* output;
- size_t inLen;
- size_t outLen;
-
-} testVector;
-
-#if defined(HAVE_PKCS7)
- typedef struct {
- const byte* content;
- word32 contentSz;
- int contentOID;
- int encryptOID;
- int keyWrapOID;
- int keyAgreeOID;
- byte* cert;
- size_t certSz;
- byte* privateKey;
- word32 privateKeySz;
- } pkcs7EnvelopedVector;
-
- #ifndef NO_PKCS7_ENCRYPTED_DATA
- typedef struct {
- const byte* content;
- word32 contentSz;
- int contentOID;
- int encryptOID;
- byte* encryptionKey;
- word32 encryptionKeySz;
- } pkcs7EncryptedVector;
- #endif
-#endif /* HAVE_PKCS7 */
-
-
-/*----------------------------------------------------------------------------*
- | Constants
- *----------------------------------------------------------------------------*/
-
-#define TEST_SUCCESS (1)
-#define TEST_FAIL (0)
-
-#define testingFmt " %s:"
-#define resultFmt " %s\n"
-static const char* passed = "passed";
-static const char* failed = "failed";
-
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && \
- (!defined(NO_WOLFSSL_SERVER) || !defined(NO_WOLFSSL_CLIENT))
- static const char* bogusFile =
- #ifdef _WIN32
- "NUL"
- #else
- "/dev/null"
- #endif
- ;
-#endif /* !NO_FILESYSTEM && !NO_CERTS && (!NO_WOLFSSL_SERVER || !NO_WOLFSSL_CLIENT) */
-
-enum {
- TESTING_RSA = 1,
- TESTING_ECC = 2
-};
-
-
-/*----------------------------------------------------------------------------*
- | Setup
- *----------------------------------------------------------------------------*/
-
-static int test_wolfSSL_Init(void)
-{
- int result;
-
- printf(testingFmt, "wolfSSL_Init()");
- result = wolfSSL_Init();
- printf(resultFmt, result == WOLFSSL_SUCCESS ? passed : failed);
-
- return result;
-}
-
-
-static int test_wolfSSL_Cleanup(void)
-{
- int result;
-
- printf(testingFmt, "wolfSSL_Cleanup()");
- result = wolfSSL_Cleanup();
- printf(resultFmt, result == WOLFSSL_SUCCESS ? passed : failed);
-
- return result;
-}
-
-
-/* Initialize the wolfCrypt state.
- * POST: 0 success.
- */
-static int test_wolfCrypt_Init(void)
-{
- int result;
-
- printf(testingFmt, "wolfCrypt_Init()");
- result = wolfCrypt_Init();
- printf(resultFmt, result == 0 ? passed : failed);
-
- return result;
-
-} /* END test_wolfCrypt_Init */
-
-/*----------------------------------------------------------------------------*
- | Platform dependent function test
- *----------------------------------------------------------------------------*/
- static int test_fileAccess()
-{
-#if defined(WOLFSSL_TEST_PLATFORMDEPEND) && !defined(NO_FILESYSTEM)
- const char *fname[] = {
- svrCertFile, svrKeyFile, caCertFile,
- eccCertFile, eccKeyFile, eccRsaCertFile,
- cliCertFile, cliCertDerFile, cliKeyFile,
- ntruCertFile, ntruKeyFile, dhParamFile,
- cliEccKeyFile, cliEccCertFile, caEccCertFile, edCertFile, edKeyFile,
- cliEdCertFile, cliEdKeyFile, caEdCertFile,
- NULL
- };
- const char derfile[] = "./certs/server-cert.der";
- XFILE f;
- size_t sz;
- byte *buff;
- int i;
-
- printf(testingFmt, "test_fileAccess()");
-
- AssertTrue(XFOPEN("badfilename", "rb") == XBADFILE);
- for(i=0; fname[i] != NULL ; i++){
- AssertTrue((f = XFOPEN(fname[i], "rb")) != XBADFILE);
- XFCLOSE(f);
- }
-
- AssertTrue((f = XFOPEN(derfile, "rb")) != XBADFILE);
- AssertTrue(XFSEEK(f, 0, XSEEK_END) == 0);
- sz = (size_t) XFTELL(f);
- XREWIND(f);
- AssertTrue(sz == sizeof_server_cert_der_2048);
- AssertTrue((buff = (byte*)XMALLOC(sz, NULL, DYNAMIC_TYPE_FILE)) != NULL) ;
- AssertTrue(XFREAD(buff, 1, sz, f) == sz);
- XMEMCMP(server_cert_der_2048, buff, sz);
- printf(resultFmt, passed);
-#endif
- return WOLFSSL_SUCCESS;
-}
-
-/*----------------------------------------------------------------------------*
- | Method Allocators
- *----------------------------------------------------------------------------*/
-
-static void test_wolfSSL_Method_Allocators(void)
-{
- #define TEST_METHOD_ALLOCATOR(allocator, condition) \
- do { \
- WOLFSSL_METHOD *method; \
- condition(method = allocator()); \
- XFREE(method, 0, DYNAMIC_TYPE_METHOD); \
- } while(0)
-
- #define TEST_VALID_METHOD_ALLOCATOR(a) \
- TEST_METHOD_ALLOCATOR(a, AssertNotNull)
-
- #define TEST_INVALID_METHOD_ALLOCATOR(a) \
- TEST_METHOD_ALLOCATOR(a, AssertNull)
-
-#ifndef NO_OLD_TLS
- #ifdef WOLFSSL_ALLOW_SSLV3
- #ifndef NO_WOLFSSL_SERVER
- TEST_VALID_METHOD_ALLOCATOR(wolfSSLv3_server_method);
- #endif
- #ifndef NO_WOLFSSL_CLIENT
- TEST_VALID_METHOD_ALLOCATOR(wolfSSLv3_client_method);
- #endif
- #endif
- #ifdef WOLFSSL_ALLOW_TLSV10
- #ifndef NO_WOLFSSL_SERVER
- TEST_VALID_METHOD_ALLOCATOR(wolfTLSv1_server_method);
- #endif
- #ifndef NO_WOLFSSL_CLIENT
- TEST_VALID_METHOD_ALLOCATOR(wolfTLSv1_client_method);
- #endif
- #endif
- #ifndef NO_WOLFSSL_SERVER
- TEST_VALID_METHOD_ALLOCATOR(wolfTLSv1_1_server_method);
- #endif
- #ifndef NO_WOLFSSL_CLIENT
- TEST_VALID_METHOD_ALLOCATOR(wolfTLSv1_1_client_method);
- #endif
-#endif /* !NO_OLD_TLS */
-
-#ifndef WOLFSSL_NO_TLS12
- #ifndef NO_WOLFSSL_SERVER
- TEST_VALID_METHOD_ALLOCATOR(wolfTLSv1_2_server_method);
- #endif
- #ifndef NO_WOLFSSL_CLIENT
- TEST_VALID_METHOD_ALLOCATOR(wolfTLSv1_2_client_method);
- #endif
-#endif /* !WOLFSSL_NO_TLS12 */
-
-#ifdef WOLFSSL_TLS13
- #ifndef NO_WOLFSSL_SERVER
- TEST_VALID_METHOD_ALLOCATOR(wolfTLSv1_3_server_method);
- #endif
- #ifndef NO_WOLFSSL_CLIENT
- TEST_VALID_METHOD_ALLOCATOR(wolfTLSv1_3_client_method);
- #endif
-#endif /* WOLFSSL_TLS13 */
-
-#ifndef NO_WOLFSSL_SERVER
- TEST_VALID_METHOD_ALLOCATOR(wolfSSLv23_server_method);
-#endif
-#ifndef NO_WOLFSSL_CLIENT
- TEST_VALID_METHOD_ALLOCATOR(wolfSSLv23_client_method);
-#endif
-
-#ifdef WOLFSSL_DTLS
- #ifndef NO_OLD_TLS
- #ifndef NO_WOLFSSL_SERVER
- TEST_VALID_METHOD_ALLOCATOR(wolfDTLSv1_server_method);
- #endif
- #ifndef NO_WOLFSSL_CLIENT
- TEST_VALID_METHOD_ALLOCATOR(wolfDTLSv1_client_method);
- #endif
- #endif
- #ifndef WOLFSSL_NO_TLS12
- #ifndef NO_WOLFSSL_SERVER
- TEST_VALID_METHOD_ALLOCATOR(wolfDTLSv1_2_server_method);
- #endif
- #ifndef NO_WOLFSSL_CLIENT
- TEST_VALID_METHOD_ALLOCATOR(wolfDTLSv1_2_client_method);
- #endif
- #endif
-#endif /* WOLFSSL_DTLS */
-
-#if !defined(NO_OLD_TLS) && defined(OPENSSL_EXTRA)
- /* Stubs */
- #ifndef NO_WOLFSSL_SERVER
- TEST_INVALID_METHOD_ALLOCATOR(wolfSSLv2_server_method);
- #endif
- #ifndef NO_WOLFSSL_CLIENT
- TEST_INVALID_METHOD_ALLOCATOR(wolfSSLv2_client_method);
- #endif
-#endif
-
- /* Test Either Method (client or server) */
-#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
- TEST_VALID_METHOD_ALLOCATOR(wolfSSLv23_method);
- #ifndef NO_OLD_TLS
- #ifdef WOLFSSL_ALLOW_TLSV10
- TEST_VALID_METHOD_ALLOCATOR(wolfTLSv1_method);
- #endif
- TEST_VALID_METHOD_ALLOCATOR(wolfTLSv1_1_method);
- #endif /* !NO_OLD_TLS */
- #ifndef WOLFSSL_NO_TLS12
- TEST_VALID_METHOD_ALLOCATOR(wolfTLSv1_2_method);
- #endif /* !WOLFSSL_NO_TLS12 */
- #ifdef WOLFSSL_TLS13
- TEST_VALID_METHOD_ALLOCATOR(wolfTLSv1_3_method);
- #endif /* WOLFSSL_TLS13 */
- #ifdef WOLFSSL_DTLS
- TEST_VALID_METHOD_ALLOCATOR(wolfDTLS_method);
- #ifndef NO_OLD_TLS
- TEST_VALID_METHOD_ALLOCATOR(wolfDTLSv1_method);
- #endif /* !NO_OLD_TLS */
- #ifndef WOLFSSL_NO_TLS12
- TEST_VALID_METHOD_ALLOCATOR(wolfDTLSv1_2_method);
- #endif /* !WOLFSSL_NO_TLS12 */
- #endif /* WOLFSSL_DTLS */
-#endif /* OPENSSL_EXTRA || WOLFSSL_EITHER_SIDE */
-}
-
-
-/*----------------------------------------------------------------------------*
- | Context
- *----------------------------------------------------------------------------*/
-#ifndef NO_WOLFSSL_SERVER
-static void test_wolfSSL_CTX_new(WOLFSSL_METHOD *method)
-{
- WOLFSSL_CTX *ctx;
-
- AssertNull(ctx = wolfSSL_CTX_new(NULL));
-
- AssertNotNull(method);
- AssertNotNull(ctx = wolfSSL_CTX_new(method));
- wolfSSL_CTX_free(ctx);
-}
-#endif
-
-#if (!defined(NO_WOLFSSL_CLIENT) || !defined(NO_WOLFSSL_SERVER)) && \
-(!defined(NO_RSA) || defined(HAVE_ECC))
-static void test_for_double_Free(void)
-{
- WOLFSSL_CTX* ctx;
- WOLFSSL* ssl;
- int skipTest = 0;
- const char* testCertFile;
- const char* testKeyFile;
- char optionsCiphers[] = "RC4-SHA:RC4-MD5:DES-CBC3-SHA:AES128-SHA:AES256-SHA"
-":NULL-SHA:NULL-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-PSK-AES256-GCM"
-"-SHA384:DHE-PSK-AES128-GCM-SHA256:PSK-AES256-GCM-SHA384:PSK-AES128-GCM-SHA256:"
-"DHE-PSK-AES256-CBC-SHA384:DHE-PSK-AES128-CBC-SHA256:PSK-AES256-CBC-SHA384:PSK-"
-"AES128-CBC-SHA256:PSK-AES128-CBC-SHA:PSK-AES256-CBC-SHA:DHE-PSK-AES128-CCM:DHE"
-"-PSK-AES256-CCM:PSK-AES128-CCM:PSK-AES256-CCM:PSK-AES128-CCM-8:PSK-AES256-CCM-"
-"8:DHE-PSK-NULL-SHA384:DHE-PSK-NULL-SHA256:PSK-NULL-SHA384:PSK-NULL-SHA256:PSK-"
-"NULL-SHA:HC128-MD5:HC128-SHA:RABBIT-SHA:AES128-CCM-8:AES256-CCM-8:ECDHE-ECDSA-"
-"AES128-CCM:ECDHE-ECDSA-AES128-CCM-8:ECDHE-ECDSA-AES256-CCM-8:ECDHE-RSA-AES128-"
-"SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-R"
-"SA-RC4-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-RC4-SHA:ECDHE-ECDSA-DES-CBC3-SHA"
-":AES128-SHA256:AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDH-"
-"RSA-AES128-SHA:ECDH-RSA-AES256-SHA:ECDH-ECDSA-AES128-SHA:ECDH-ECDSA-AES256-SHA"
-":ECDH-RSA-RC4-SHA:ECDH-RSA-DES-CBC3-SHA:ECDH-ECDSA-RC4-SHA:ECDH-ECDSA-DES-CBC3"
-"-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES"
-"256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-E"
-"CDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDH-RSA-AES128-GCM-SHA25"
-"6:ECDH-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES128-GCM-SHA256:ECDH-ECDSA-AES256-GC"
-"M-SHA384:CAMELLIA128-SHA:DHE-RSA-CAMELLIA128-SHA:CAMELLIA256-SHA:DHE-RSA-CAMEL"
-"LIA256-SHA:CAMELLIA128-SHA256:DHE-RSA-CAMELLIA128-SHA256:CAMELLIA256-SHA256:DH"
-"E-RSA-CAMELLIA256-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECD"
-"H-RSA-AES128-SHA256:ECDH-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECD"
-"SA-AES256-SHA384:ECDH-RSA-AES256-SHA384:ECDH-ECDSA-AES256-SHA384:ECDHE-RSA-CHA"
-"CHA20-POLY1305:ECDHE-ECDSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-R"
-"SA-CHACHA20-POLY1305-OLD:ECDHE-ECDSA-CHACHA20-POLY1305-OLD:DHE-RSA-CHACHA20-PO"
-"LY1305-OLD:IDEA-CBC-SHA:ECDHE-ECDSA-NULL-SHA:ECDHE-PSK-NULL-SHA256:ECDHE-PSK-A"
-"ES128-CBC-SHA256:PSK-CHACHA20-POLY1305:ECDHE-PSK-CHACHA20-POLY1305:DHE-PSK-CHA"
-"CHA20-POLY1305:EDH-RSA-DES-CBC3-SHA:TLS13-AES128-GCM-SHA256:TLS13-AES256-GCM-S"
-"HA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES128-CCM-SHA256:TLS13-AES128-CCM-"
-"8-SHA256:TLS13-SHA256-SHA256:TLS13-SHA384-SHA384";
-#ifndef NO_RSA
- testCertFile = svrCertFile;
- testKeyFile = svrKeyFile;
-#elif defined(HAVE_ECC)
- testCertFile = eccCertFile;
- testKeyFile = eccKeyFile;
-#else
- skipTest = 1;
-#endif
-
- if (skipTest != 1) {
-#ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
-#else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-#endif
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, testCertFile, WOLFSSL_FILETYPE_PEM));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_file(ctx, testKeyFile, WOLFSSL_FILETYPE_PEM));
-
- AssertNotNull(ssl = wolfSSL_new(ctx));
-
- /* First test freeing SSL, then CTX */
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-
-#ifndef NO_WOLFSSL_CLIENT
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-#else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
-#endif
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, testCertFile, WOLFSSL_FILETYPE_PEM));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_file(ctx, testKeyFile, WOLFSSL_FILETYPE_PEM));
-
- AssertNotNull(ssl = wolfSSL_new(ctx));
-
- /* Next test freeing CTX then SSL */
- wolfSSL_CTX_free(ctx);
- wolfSSL_free(ssl);
-
-#ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
-#else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-#endif
- /* Test setting ciphers at ctx level */
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, testCertFile, WOLFSSL_FILETYPE_PEM));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_file(ctx, testKeyFile, WOLFSSL_FILETYPE_PEM));
- AssertTrue(wolfSSL_CTX_set_cipher_list(ctx, optionsCiphers));
- AssertNotNull(ssl = wolfSSL_new(ctx));
- wolfSSL_CTX_free(ctx);
- wolfSSL_free(ssl);
-
-#ifndef NO_WOLFSSL_CLIENT
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-#else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
-#endif
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, testCertFile, WOLFSSL_FILETYPE_PEM));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_file(ctx, testKeyFile, WOLFSSL_FILETYPE_PEM));
- AssertNotNull(ssl = wolfSSL_new(ctx));
- /* test setting ciphers at SSL level */
- AssertTrue(wolfSSL_set_cipher_list(ssl, optionsCiphers));
- wolfSSL_CTX_free(ctx);
- wolfSSL_free(ssl);
- }
-}
-#endif
-
-
-static void test_wolfSSL_CTX_use_certificate_file(void)
-{
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && !defined(NO_WOLFSSL_SERVER)
- WOLFSSL_CTX *ctx;
-
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
-
- /* invalid context */
- AssertFalse(wolfSSL_CTX_use_certificate_file(NULL, svrCertFile,
- WOLFSSL_FILETYPE_PEM));
- /* invalid cert file */
- AssertFalse(wolfSSL_CTX_use_certificate_file(ctx, bogusFile,
- WOLFSSL_FILETYPE_PEM));
- /* invalid cert type */
- AssertFalse(wolfSSL_CTX_use_certificate_file(ctx, svrCertFile, 9999));
-
-#ifdef NO_RSA
- /* rsa needed */
- AssertFalse(wolfSSL_CTX_use_certificate_file(ctx, svrCertFile,WOLFSSL_FILETYPE_PEM));
-#else
- /* success */
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, svrCertFile, WOLFSSL_FILETYPE_PEM));
-#endif
-
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-#if (defined(OPENSSL_ALL) || defined(WOLFSSL_ASIO)) && !defined(NO_RSA)
-static int test_wolfSSL_CTX_use_certificate_ASN1(void)
-{
-#if !defined(NO_CERTS) && !defined(NO_WOLFSSL_SERVER) && !defined(NO_ASN)
- WOLFSSL_CTX* ctx;
- int ret;
-
- printf(testingFmt, "wolfSSL_CTX_use_certificate_ASN1()");
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
-
- ret = SSL_CTX_use_certificate_ASN1(ctx, sizeof_server_cert_der_2048,
- server_cert_der_2048);
-
- printf(resultFmt, ret == WOLFSSL_SUCCESS ? passed : failed);
- wolfSSL_CTX_free(ctx);
-
- return ret;
-#else
- return WOLFSSL_SUCCESS;
-#endif
-}
-#endif /* (OPENSSL_ALL || WOLFSSL_ASIO) && !NO_RSA */
-
-/* Test function for wolfSSL_CTX_use_certificate_buffer. Load cert into
- * context using buffer.
- * PRE: NO_CERTS not defined; USE_CERT_BUFFERS_2048 defined; compile with
- * --enable-testcert flag.
- */
-static int test_wolfSSL_CTX_use_certificate_buffer(void)
-{
- #if !defined(NO_CERTS) && defined(USE_CERT_BUFFERS_2048) && \
- !defined(NO_RSA) && !defined(NO_WOLFSSL_SERVER)
- WOLFSSL_CTX* ctx;
- int ret;
-
- printf(testingFmt, "wolfSSL_CTX_use_certificate_buffer()");
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
-
- ret = wolfSSL_CTX_use_certificate_buffer(ctx, server_cert_der_2048,
- sizeof_server_cert_der_2048, WOLFSSL_FILETYPE_ASN1);
-
- printf(resultFmt, ret == WOLFSSL_SUCCESS ? passed : failed);
- wolfSSL_CTX_free(ctx);
-
- return ret;
- #else
- return WOLFSSL_SUCCESS;
- #endif
-
-} /*END test_wolfSSL_CTX_use_certificate_buffer*/
-
-static void test_wolfSSL_CTX_use_PrivateKey_file(void)
-{
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && !defined(NO_WOLFSSL_SERVER)
- WOLFSSL_CTX *ctx;
-
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
-
- /* invalid context */
- AssertFalse(wolfSSL_CTX_use_PrivateKey_file(NULL, svrKeyFile,
- WOLFSSL_FILETYPE_PEM));
- /* invalid key file */
- AssertFalse(wolfSSL_CTX_use_PrivateKey_file(ctx, bogusFile,
- WOLFSSL_FILETYPE_PEM));
- /* invalid key type */
- AssertFalse(wolfSSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, 9999));
-
- /* success */
-#ifdef NO_RSA
- /* rsa needed */
- AssertFalse(wolfSSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, WOLFSSL_FILETYPE_PEM));
-#else
- /* success */
- AssertTrue(wolfSSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, WOLFSSL_FILETYPE_PEM));
-#endif
-
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-
-/* test both file and buffer versions along with unloading trusted peer certs */
-static void test_wolfSSL_CTX_trust_peer_cert(void)
-{
-#if !defined(NO_CERTS) && defined(WOLFSSL_TRUST_PEER_CERT) && \
- !defined(NO_WOLFSSL_CLIENT)
- WOLFSSL_CTX *ctx;
-
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-
-#if !defined(NO_FILESYSTEM)
- /* invalid file */
- assert(wolfSSL_CTX_trust_peer_cert(ctx, NULL,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS);
- assert(wolfSSL_CTX_trust_peer_cert(ctx, bogusFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS);
- assert(wolfSSL_CTX_trust_peer_cert(ctx, cliCertFile,
- WOLFSSL_FILETYPE_ASN1) != WOLFSSL_SUCCESS);
-
- /* success */
- assert(wolfSSL_CTX_trust_peer_cert(ctx, cliCertFile, WOLFSSL_FILETYPE_PEM)
- == WOLFSSL_SUCCESS);
-
- /* unload cert */
- assert(wolfSSL_CTX_Unload_trust_peers(NULL) != WOLFSSL_SUCCESS);
- assert(wolfSSL_CTX_Unload_trust_peers(ctx) == WOLFSSL_SUCCESS);
-#endif
-
- /* Test of loading certs from buffers */
-
- /* invalid buffer */
- assert(wolfSSL_CTX_trust_peer_buffer(ctx, NULL, -1,
- WOLFSSL_FILETYPE_ASN1) != WOLFSSL_SUCCESS);
-
- /* success */
-#ifdef USE_CERT_BUFFERS_1024
- assert(wolfSSL_CTX_trust_peer_buffer(ctx, client_cert_der_1024,
- sizeof_client_cert_der_1024, WOLFSSL_FILETYPE_ASN1) == WOLFSSL_SUCCESS);
-#endif
-#ifdef USE_CERT_BUFFERS_2048
- assert(wolfSSL_CTX_trust_peer_buffer(ctx, client_cert_der_2048,
- sizeof_client_cert_der_2048, WOLFSSL_FILETYPE_ASN1) == WOLFSSL_SUCCESS);
-#endif
-
- /* unload cert */
- assert(wolfSSL_CTX_Unload_trust_peers(NULL) != WOLFSSL_SUCCESS);
- assert(wolfSSL_CTX_Unload_trust_peers(ctx) == WOLFSSL_SUCCESS);
-
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-
-static void test_wolfSSL_CTX_load_verify_locations(void)
-{
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && !defined(NO_WOLFSSL_CLIENT)
- WOLFSSL_CTX *ctx;
-#ifndef NO_RSA
- WOLFSSL_CERT_MANAGER* cm;
-#ifdef PERSIST_CERT_CACHE
- int cacheSz;
-#endif
-#endif
-#if !defined(NO_WOLFSSL_DIR) && !defined(WOLFSSL_TIRTOS)
- const char* load_certs_path = "./certs/external";
- const char* load_no_certs_path = "./examples";
- const char* load_expired_path = "./certs/test/expired";
-#endif
-
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-
- /* invalid arguments */
- AssertIntEQ(wolfSSL_CTX_load_verify_locations(NULL, caCertFile, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(wolfSSL_CTX_load_verify_locations(ctx, NULL, NULL), WOLFSSL_FAILURE);
-
- /* invalid ca file */
- AssertIntEQ(wolfSSL_CTX_load_verify_locations(ctx, bogusFile, NULL), WOLFSSL_BAD_FILE);
-
-
-#if !defined(NO_WOLFSSL_DIR) && !defined(WOLFSSL_TIRTOS)
- /* invalid path */
- AssertIntEQ(wolfSSL_CTX_load_verify_locations(ctx, NULL, bogusFile), BAD_PATH_ERROR);
-#endif
-
- /* load ca cert */
-#ifdef NO_RSA
- AssertIntEQ(wolfSSL_CTX_load_verify_locations(ctx, caCertFile, NULL), ASN_UNKNOWN_OID_E);
-#else /* Skip the following test without RSA certs. */
- AssertIntEQ(wolfSSL_CTX_load_verify_locations(ctx, caCertFile, NULL), WOLFSSL_SUCCESS);
-
-#ifdef PERSIST_CERT_CACHE
- /* Get cert cache size */
- cacheSz = wolfSSL_CTX_get_cert_cache_memsize(ctx);
-#endif
- /* Test unloading CA's */
- AssertIntEQ(wolfSSL_CTX_UnloadCAs(ctx), WOLFSSL_SUCCESS);
-
-#ifdef PERSIST_CERT_CACHE
- /* Verify no certs (result is less than cacheSz) */
- AssertIntGT(cacheSz, wolfSSL_CTX_get_cert_cache_memsize(ctx));
-#endif
-
- /* load ca cert again */
- AssertIntEQ(wolfSSL_CTX_load_verify_locations(ctx, caCertFile, NULL), WOLFSSL_SUCCESS);
-
- /* Test getting CERT_MANAGER */
- AssertNotNull(cm = wolfSSL_CTX_GetCertManager(ctx));
-
- /* Test unloading CA's using CM */
- AssertIntEQ(wolfSSL_CertManagerUnloadCAs(cm), WOLFSSL_SUCCESS);
-
-#ifdef PERSIST_CERT_CACHE
- /* Verify no certs (result is less than cacheSz) */
- AssertIntGT(cacheSz, wolfSSL_CTX_get_cert_cache_memsize(ctx));
-#endif
-#endif
-
-#if !defined(NO_WOLFSSL_DIR) && !defined(WOLFSSL_TIRTOS)
- /* Test loading CA certificates using a path */
- #ifdef NO_RSA
- /* failure here okay since certs in external directory are RSA */
- AssertIntNE(wolfSSL_CTX_load_verify_locations_ex(ctx, NULL, load_certs_path,
- WOLFSSL_LOAD_FLAG_PEM_CA_ONLY), WOLFSSL_SUCCESS);
- #else
- AssertIntEQ(wolfSSL_CTX_load_verify_locations_ex(ctx, NULL, load_certs_path,
- WOLFSSL_LOAD_FLAG_PEM_CA_ONLY), WOLFSSL_SUCCESS);
- #endif
-
- /* Test loading path with no files */
- AssertIntEQ(wolfSSL_CTX_load_verify_locations_ex(ctx, NULL, load_no_certs_path,
- WOLFSSL_LOAD_FLAG_PEM_CA_ONLY), WOLFSSL_FAILURE);
-
- /* Test loading expired CA certificates */
- #ifdef NO_RSA
- AssertIntNE(wolfSSL_CTX_load_verify_locations_ex(ctx, NULL, load_expired_path,
- WOLFSSL_LOAD_FLAG_DATE_ERR_OKAY | WOLFSSL_LOAD_FLAG_PEM_CA_ONLY),
- WOLFSSL_SUCCESS);
- #else
- AssertIntEQ(wolfSSL_CTX_load_verify_locations_ex(ctx, NULL, load_expired_path,
- WOLFSSL_LOAD_FLAG_DATE_ERR_OKAY | WOLFSSL_LOAD_FLAG_PEM_CA_ONLY),
- WOLFSSL_SUCCESS);
- #endif
-
- /* Test loading CA certificates and ignoring all errors */
- #ifdef NO_RSA
- AssertIntEQ(wolfSSL_CTX_load_verify_locations_ex(ctx, NULL, load_certs_path,
- WOLFSSL_LOAD_FLAG_IGNORE_ERR), WOLFSSL_FAILURE);
- #else
- AssertIntEQ(wolfSSL_CTX_load_verify_locations_ex(ctx, NULL, load_certs_path,
- WOLFSSL_LOAD_FLAG_IGNORE_ERR), WOLFSSL_SUCCESS);
- #endif
-#endif
-
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS)
-static int test_cm_load_ca_buffer(const byte* cert_buf, size_t cert_sz, int file_type)
-{
- int ret;
- WOLFSSL_CERT_MANAGER* cm;
-
- cm = wolfSSL_CertManagerNew();
- if (cm == NULL) {
- printf("test_cm_load_ca failed\n");
- return -1;
- }
-
- ret = wolfSSL_CertManagerLoadCABuffer(cm, cert_buf, cert_sz, file_type);
-
- wolfSSL_CertManagerFree(cm);
-
- return ret;
-}
-
-static int test_cm_load_ca_file(const char* ca_cert_file)
-{
- int ret = 0;
- byte* cert_buf = NULL;
- size_t cert_sz = 0;
-#if defined(WOLFSSL_PEM_TO_DER)
- DerBuffer* pDer = NULL;
-#endif
-
- ret = load_file(ca_cert_file, &cert_buf, &cert_sz);
- if (ret == 0) {
- /* normal test */
- ret = test_cm_load_ca_buffer(cert_buf, cert_sz, WOLFSSL_FILETYPE_PEM);
-
- if (ret == 0) {
- /* test including null terminator in length */
- ret = test_cm_load_ca_buffer(cert_buf, cert_sz+1, WOLFSSL_FILETYPE_PEM);
- }
-
- #if defined(WOLFSSL_PEM_TO_DER)
- if (ret == 0) {
- /* test loading DER */
- ret = wc_PemToDer(cert_buf, cert_sz, CA_TYPE, &pDer, NULL, NULL, NULL);
- if (ret == 0 && pDer != NULL) {
- ret = test_cm_load_ca_buffer(pDer->buffer, pDer->length,
- WOLFSSL_FILETYPE_ASN1);
-
- wc_FreeDer(&pDer);
- }
- }
- #endif
-
- free(cert_buf);
- }
- return ret;
-}
-#endif /* !NO_FILESYSTEM && !NO_CERTS */
-
-static int test_wolfSSL_CertManagerLoadCABuffer(void)
-{
- int ret = 0;
-
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS)
- const char* ca_cert = "./certs/ca-cert.pem";
- const char* ca_expired_cert = "./certs/test/expired/expired-ca.pem";
-
- ret = test_cm_load_ca_file(ca_cert);
- #ifdef NO_RSA
- AssertIntEQ(ret, ASN_UNKNOWN_OID_E);
- #else
- AssertIntEQ(ret, WOLFSSL_SUCCESS);
- #endif
-
- ret = test_cm_load_ca_file(ca_expired_cert);
- #ifdef NO_RSA
- AssertIntEQ(ret, ASN_UNKNOWN_OID_E);
- #else
- AssertIntEQ(ret, ASN_AFTER_DATE_E);
- #endif
-#endif
-
- return ret;
-}
-
-static void test_wolfSSL_CertManagerGetCerts(void)
-{
-#if defined(OPENSSL_ALL) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA) && \
- defined(WOLFSSL_SIGNER_DER_CERT)
-
- WOLFSSL_CERT_MANAGER* cm = NULL;
- WOLFSSL_STACK* sk = NULL;
- X509* x509 = NULL;
- X509* cert1 = NULL;
- FILE* file1 = NULL;
-#ifdef DEBUG_WOLFSSL_VERBOSE
- WOLFSSL_BIO* bio = NULL;
-#endif
- int i = 0;
-
- printf(testingFmt, "wolfSSL_CertManagerGetCerts()");
- AssertNotNull(file1=fopen("./certs/ca-cert.pem", "rb"));
-
- AssertNotNull(cert1 = wolfSSL_PEM_read_X509(file1, NULL, NULL, NULL));
- fclose(file1);
-
- AssertNotNull(cm = wolfSSL_CertManagerNew_ex(NULL));
- AssertNull(sk = wolfSSL_CertManagerGetCerts(cm));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CertManagerLoadCA(cm,
- "./certs/ca-cert.pem", NULL));
-
- AssertNotNull(sk = wolfSSL_CertManagerGetCerts(cm));
-
- for (i = 0; i < sk_X509_num(sk); i++) {
- x509 = sk_X509_value(sk, i);
- AssertIntEQ(0, wolfSSL_X509_cmp(x509, cert1));
-
-#ifdef DEBUG_WOLFSSL_VERBOSE
- bio = BIO_new(wolfSSL_BIO_s_file());
- if (bio != NULL) {
- BIO_set_fp(bio, stdout, BIO_NOCLOSE);
- X509_print(bio, x509);
- BIO_free(bio);
- }
-#endif /* DEBUG_WOLFSSL_VERBOSE */
- }
- wolfSSL_X509_free(cert1);
- sk_X509_free(sk);
- wolfSSL_CertManagerFree(cm);
- printf(resultFmt, passed);
-#endif /* defined(OPENSSL_ALL) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA) && \
- defined(WOLFSSL_SIGNER_DER_CERT) */
-}
-
-static int test_wolfSSL_CertManagerSetVerify(void)
-{
- int ret = 0;
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && \
- !defined(NO_WOLFSSL_CM_VERIFY) && !defined(NO_RSA)
- WOLFSSL_CERT_MANAGER* cm;
- int tmp = myVerifyFail;
- const char* ca_cert = "./certs/ca-cert.pem";
- const char* expiredCert = "./certs/test/expired/expired-cert.pem";
-
- cm = wolfSSL_CertManagerNew();
- AssertNotNull(cm);
-
- wolfSSL_CertManagerSetVerify(cm, myVerify);
-
- ret = wolfSSL_CertManagerLoadCA(cm, ca_cert, NULL);
- AssertIntEQ(ret, WOLFSSL_SUCCESS);
-
- /* Use the test CB that always accepts certs */
- myVerifyFail = 0;
-
- ret = wolfSSL_CertManagerVerify(cm, expiredCert, WOLFSSL_FILETYPE_PEM);
- AssertIntEQ(ret, WOLFSSL_SUCCESS);
-
-#ifdef WOLFSSL_ALWAYS_VERIFY_CB
- {
- const char* verifyCert = "./certs/server-cert.pem";
- /* Use the test CB that always fails certs */
- myVerifyFail = 1;
-
- ret = wolfSSL_CertManagerVerify(cm, verifyCert, WOLFSSL_FILETYPE_PEM);
- AssertIntEQ(ret, VERIFY_CERT_ERROR);
- }
-#endif
-
- wolfSSL_CertManagerFree(cm);
- myVerifyFail = tmp;
-#endif
-
- return ret;
-}
-
-static void test_wolfSSL_CertManagerCRL(void)
-{
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && defined(HAVE_CRL) && \
- !defined(NO_RSA)
-
- const char* ca_cert = "./certs/ca-cert.pem";
- const char* crl1 = "./certs/crl/crl.pem";
- const char* crl2 = "./certs/crl/crl2.pem";
-
- WOLFSSL_CERT_MANAGER* cm = NULL;
-
- AssertNotNull(cm = wolfSSL_CertManagerNew());
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CertManagerLoadCA(cm, ca_cert, NULL));
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CertManagerLoadCRL(cm, crl1, WOLFSSL_FILETYPE_PEM, 0));
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CertManagerLoadCRL(cm, crl2, WOLFSSL_FILETYPE_PEM, 0));
- wolfSSL_CertManagerFreeCRL(cm);
-
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CertManagerLoadCRL(cm, crl1, WOLFSSL_FILETYPE_PEM, 0));
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CertManagerLoadCA(cm, ca_cert, NULL));
- wolfSSL_CertManagerFree(cm);
-
-#endif
-}
-
-static void test_wolfSSL_CTX_load_verify_locations_ex(void)
-{
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && !defined(NO_RSA) && \
- !defined(NO_WOLFSSL_CLIENT)
- WOLFSSL_CTX* ctx;
- const char* ca_cert = "./certs/ca-cert.pem";
- const char* ca_expired_cert = "./certs/test/expired/expired-ca.pem";
-
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-
- /* test good CA */
- AssertTrue(WOLFSSL_SUCCESS ==
- wolfSSL_CTX_load_verify_locations_ex(ctx, ca_cert, NULL,
- WOLFSSL_LOAD_FLAG_NONE));
-
- /* test expired CA */
- AssertTrue(WOLFSSL_SUCCESS !=
- wolfSSL_CTX_load_verify_locations_ex(ctx, ca_expired_cert, NULL,
- WOLFSSL_LOAD_FLAG_NONE));
- AssertTrue(WOLFSSL_SUCCESS ==
- wolfSSL_CTX_load_verify_locations_ex(ctx, ca_expired_cert, NULL,
- WOLFSSL_LOAD_FLAG_DATE_ERR_OKAY));
-
- wolfSSL_CTX_free(ctx);
-
-#endif
-}
-
-static void test_wolfSSL_CTX_load_verify_buffer_ex(void)
-{
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && !defined(NO_RSA) && \
- defined(USE_CERT_BUFFERS_2048)
- WOLFSSL_CTX* ctx;
- const char* ca_expired_cert_file = "./certs/test/expired/expired-ca.der";
- byte ca_expired_cert[TWOK_BUF];
- word32 sizeof_ca_expired_cert;
- XFILE fp;
-
-#ifndef NO_WOLFSSL_CLIENT
- ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
-#else
- ctx = wolfSSL_CTX_new(wolfSSLv23_server_method());
-#endif
- AssertNotNull(ctx);
-
- /* test good CA */
- AssertTrue(WOLFSSL_SUCCESS ==
- wolfSSL_CTX_load_verify_buffer_ex(ctx, ca_cert_der_2048,
- sizeof_ca_cert_der_2048, WOLFSSL_FILETYPE_ASN1, 0,
- WOLFSSL_LOAD_FLAG_NONE));
-
- /* load expired CA */
- XMEMSET(ca_expired_cert, 0, sizeof(ca_expired_cert));
- fp = XFOPEN(ca_expired_cert_file, "rb");
- AssertTrue(fp != XBADFILE);
- sizeof_ca_expired_cert = (word32)XFREAD(ca_expired_cert, 1,
- sizeof(ca_expired_cert), fp);
- XFCLOSE(fp);
-
- /* test expired CA failure */
- AssertTrue(WOLFSSL_SUCCESS !=
- wolfSSL_CTX_load_verify_buffer_ex(ctx, ca_expired_cert,
- sizeof_ca_expired_cert, WOLFSSL_FILETYPE_ASN1, 0,
- WOLFSSL_LOAD_FLAG_NONE));
-
- /* test expired CA success */
- AssertTrue(WOLFSSL_SUCCESS ==
- wolfSSL_CTX_load_verify_buffer_ex(ctx, ca_expired_cert,
- sizeof_ca_expired_cert, WOLFSSL_FILETYPE_ASN1, 0,
- WOLFSSL_LOAD_FLAG_DATE_ERR_OKAY));
-
- wolfSSL_CTX_free(ctx);
-
-#endif
-}
-
-static void test_wolfSSL_CTX_load_verify_chain_buffer_format(void)
-{
-#if !defined(NO_CERTS) && !defined(NO_RSA) && defined(OPENSSL_EXTRA) && \
- defined(WOLFSSL_CERT_GEN) && defined(USE_CERT_BUFFERS_2048)
- WOLFSSL_CTX* ctx;
-
- #ifndef NO_WOLFSSL_CLIENT
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
- #else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
- #endif
-
- AssertTrue(WOLFSSL_SUCCESS ==
- wolfSSL_CTX_load_verify_chain_buffer_format(ctx, ca_cert_chain_der,
- sizeof_ca_cert_chain_der,
- WOLFSSL_FILETYPE_ASN1));
-
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-static int test_wolfSSL_CTX_use_certificate_chain_file_format(void)
-{
- int ret = 0;
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && !defined(NO_RSA)
- const char* server_chain_der = "./certs/server-cert-chain.der";
- WOLFSSL_CTX* ctx;
-
- #ifndef NO_WOLFSSL_CLIENT
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
- #else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
- #endif
-
- AssertIntEQ(wolfSSL_CTX_use_certificate_chain_file_format(ctx,
- server_chain_der, WOLFSSL_FILETYPE_ASN1), WOLFSSL_SUCCESS);
-
- wolfSSL_CTX_free(ctx);
-#endif
- return ret;
-}
-
-static void test_wolfSSL_CTX_SetTmpDH_file(void)
-{
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && !defined(NO_DH)
- WOLFSSL_CTX *ctx;
-
- #ifndef NO_WOLFSSL_CLIENT
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
- #else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
- #endif
-
- /* invalid context */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_SetTmpDH_file(NULL,
- dhParamFile, WOLFSSL_FILETYPE_PEM));
-
- /* invalid dhParamFile file */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_SetTmpDH_file(ctx,
- NULL, WOLFSSL_FILETYPE_PEM));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_SetTmpDH_file(ctx,
- bogusFile, WOLFSSL_FILETYPE_PEM));
-
- /* success */
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_SetTmpDH_file(ctx, dhParamFile,
- WOLFSSL_FILETYPE_PEM));
-
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-static void test_wolfSSL_CTX_SetTmpDH_buffer(void)
-{
-#if !defined(NO_CERTS) && !defined(NO_DH)
- WOLFSSL_CTX *ctx;
-
- #ifndef NO_WOLFSSL_CLIENT
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
- #else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
- #endif
-
- /* invalid context */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_SetTmpDH_buffer(NULL, dh_key_der_2048,
- sizeof_dh_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- /* invalid dhParamFile file */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_SetTmpDH_buffer(NULL, NULL,
- 0, WOLFSSL_FILETYPE_ASN1));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_SetTmpDH_buffer(ctx, dsa_key_der_2048,
- sizeof_dsa_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- /* success */
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_SetTmpDH_buffer(ctx, dh_key_der_2048,
- sizeof_dh_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-static void test_wolfSSL_CTX_SetMinMaxDhKey_Sz(void)
-{
-#if !defined(NO_CERTS) && !defined(NO_DH)
- WOLFSSL_CTX *ctx;
-
- #ifndef NO_WOLFSSL_CLIENT
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
- #else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
- #endif
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_SetMinDhKey_Sz(ctx, 3072));
-
- AssertIntEQ(DH_KEY_SIZE_E, wolfSSL_CTX_SetTmpDH_buffer(ctx, dh_key_der_2048,
- sizeof_dh_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_SetMinDhKey_Sz(ctx, 2048));
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_SetTmpDH_buffer(ctx, dh_key_der_2048,
- sizeof_dh_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_SetMaxDhKey_Sz(ctx, 1024));
-
- AssertIntEQ(DH_KEY_SIZE_E, wolfSSL_CTX_SetTmpDH_buffer(ctx, dh_key_der_2048,
- sizeof_dh_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_SetMaxDhKey_Sz(ctx, 2048));
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_SetTmpDH_buffer(ctx, dh_key_der_2048,
- sizeof_dh_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-static void test_wolfSSL_CTX_der_load_verify_locations(void)
-{
-#ifdef WOLFSSL_DER_LOAD
- WOLFSSL_CTX* ctx = NULL;
- const char* derCert = "./certs/server-cert.der";
- const char* nullPath = NULL;
- const char* invalidPath = "./certs/this-cert-does-not-exist.der";
- const char* emptyPath = "";
-
- /* der load Case 1 ctx NULL */
- AssertIntEQ(wolfSSL_CTX_der_load_verify_locations(ctx, derCert,
- WOLFSSL_FILETYPE_ASN1), WOLFSSL_FAILURE);
-
- #ifndef NO_WOLFSSL_CLIENT
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
- #else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
- #endif
-
- /* Case 2 filePath NULL */
- AssertIntEQ(wolfSSL_CTX_der_load_verify_locations(ctx, nullPath,
- WOLFSSL_FILETYPE_ASN1), WOLFSSL_FAILURE);
- /* Case 3 invalid format */
- AssertIntEQ(wolfSSL_CTX_der_load_verify_locations(ctx, derCert,
- WOLFSSL_FILETYPE_PEM), WOLFSSL_FAILURE);
- /* Case 4 filePath not valid */
- AssertIntEQ(wolfSSL_CTX_der_load_verify_locations(ctx, invalidPath,
- WOLFSSL_FILETYPE_ASN1), WOLFSSL_FAILURE);
- /* Case 5 filePath empty */
- AssertIntEQ(wolfSSL_CTX_der_load_verify_locations(ctx, emptyPath,
- WOLFSSL_FILETYPE_ASN1), WOLFSSL_FAILURE);
-#ifndef NO_RSA
- /* Case 6 success case */
- AssertIntEQ(wolfSSL_CTX_der_load_verify_locations(ctx, derCert,
- WOLFSSL_FILETYPE_ASN1), WOLFSSL_SUCCESS);
-#endif
-
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-static void test_wolfSSL_CTX_enable_disable(void)
-{
-#ifndef NO_CERTS
- WOLFSSL_CTX* ctx = NULL;
-
- #ifdef HAVE_CRL
- AssertIntEQ(wolfSSL_CTX_DisableCRL(ctx), BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_CTX_EnableCRL(ctx, 0), BAD_FUNC_ARG);
- #endif
-
- #ifdef HAVE_OCSP
- AssertIntEQ(wolfSSL_CTX_DisableOCSP(ctx), BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_CTX_EnableOCSP(ctx, 0), BAD_FUNC_ARG);
- #endif
-
- #if defined(HAVE_CERTIFICATE_STATUS_REQUEST) || \
- defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
- AssertIntEQ(wolfSSL_CTX_DisableOCSPStapling(ctx), BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_CTX_EnableOCSPStapling(ctx), BAD_FUNC_ARG);
- #endif
-
- #ifndef NO_WOLFSSL_CLIENT
-
- #ifdef HAVE_EXTENDED_MASTER
- AssertIntEQ(wolfSSL_CTX_DisableExtendedMasterSecret(ctx), BAD_FUNC_ARG);
- #endif
-
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-
- #ifdef HAVE_EXTENDED_MASTER
- AssertIntEQ(wolfSSL_CTX_DisableExtendedMasterSecret(ctx), WOLFSSL_SUCCESS);
- #endif
-
- #elif !defined(NO_WOLFSSL_SERVER)
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
- #else
- return;
- #endif
-
- #ifdef HAVE_CRL
- AssertIntEQ(wolfSSL_CTX_DisableCRL(ctx), WOLFSSL_SUCCESS);
- AssertIntEQ(wolfSSL_CTX_EnableCRL(ctx, 0), WOLFSSL_SUCCESS);
- #endif
-
- #ifdef HAVE_OCSP
- AssertIntEQ(wolfSSL_CTX_DisableOCSP(ctx), WOLFSSL_SUCCESS);
- AssertIntEQ(wolfSSL_CTX_EnableOCSP(ctx, WOLFSSL_OCSP_URL_OVERRIDE),
- WOLFSSL_SUCCESS);
- AssertIntEQ(wolfSSL_CTX_EnableOCSP(ctx, WOLFSSL_OCSP_NO_NONCE),
- WOLFSSL_SUCCESS);
- AssertIntEQ(wolfSSL_CTX_EnableOCSP(ctx, WOLFSSL_OCSP_CHECKALL),
- WOLFSSL_SUCCESS);
- #endif
-
- #if defined(HAVE_CERTIFICATE_STATUS_REQUEST) || \
- defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
- AssertIntEQ(wolfSSL_CTX_DisableOCSPStapling(ctx), WOLFSSL_SUCCESS);
- AssertIntEQ(wolfSSL_CTX_EnableOCSPStapling(ctx), WOLFSSL_SUCCESS);
- #endif
- wolfSSL_CTX_free(ctx);
-#endif /* NO_CERTS */
-}
-/*----------------------------------------------------------------------------*
- | SSL
- *----------------------------------------------------------------------------*/
-
-static void test_server_wolfSSL_new(void)
-{
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && !defined(NO_RSA) && \
- !defined(NO_WOLFSSL_SERVER)
- WOLFSSL_CTX *ctx;
- WOLFSSL_CTX *ctx_nocert;
- WOLFSSL *ssl;
-
- AssertNotNull(ctx_nocert = wolfSSL_CTX_new(wolfSSLv23_server_method()));
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
-
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, svrCertFile, WOLFSSL_FILETYPE_PEM));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, WOLFSSL_FILETYPE_PEM));
-
- /* invalid context */
- AssertNull(ssl = wolfSSL_new(NULL));
-#ifndef WOLFSSL_SESSION_EXPORT
- AssertNull(ssl = wolfSSL_new(ctx_nocert));
-#endif
-
- /* success */
- AssertNotNull(ssl = wolfSSL_new(ctx));
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
- wolfSSL_CTX_free(ctx_nocert);
-#endif
-}
-
-
-static void test_client_wolfSSL_new(void)
-{
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && !defined(NO_RSA) && \
- !defined(NO_WOLFSSL_CLIENT)
- WOLFSSL_CTX *ctx;
- WOLFSSL_CTX *ctx_nocert;
- WOLFSSL *ssl;
-
- AssertNotNull(ctx_nocert = wolfSSL_CTX_new(wolfSSLv23_client_method()));
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-
- AssertTrue(wolfSSL_CTX_load_verify_locations(ctx, caCertFile, 0));
-
- /* invalid context */
- AssertNull(ssl = wolfSSL_new(NULL));
-
- /* success */
- AssertNotNull(ssl = wolfSSL_new(ctx_nocert));
- wolfSSL_free(ssl);
-
- /* success */
- AssertNotNull(ssl = wolfSSL_new(ctx));
- wolfSSL_free(ssl);
-
- wolfSSL_CTX_free(ctx);
- wolfSSL_CTX_free(ctx_nocert);
-#endif
-}
-
-static void test_wolfSSL_SetTmpDH_file(void)
-{
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && !defined(NO_DH) && \
- !defined(NO_WOLFSSL_SERVER)
- WOLFSSL_CTX *ctx;
- WOLFSSL *ssl;
-
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
-#ifndef NO_RSA
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, svrCertFile,
- WOLFSSL_FILETYPE_PEM));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_file(ctx, svrKeyFile,
- WOLFSSL_FILETYPE_PEM));
-#elif defined(HAVE_ECC)
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, eccCertFile,
- WOLFSSL_FILETYPE_PEM));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_file(ctx, eccKeyFile,
- WOLFSSL_FILETYPE_PEM));
-#elif defined(HAVE_ED25519)
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, edCertFile,
- WOLFSSL_FILETYPE_PEM));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_file(ctx, edKeyFile,
- WOLFSSL_FILETYPE_PEM));
-#elif defined(HAVE_ED448)
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, ed448CertFile,
- WOLFSSL_FILETYPE_PEM));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_file(ctx, ed448KeyFile,
- WOLFSSL_FILETYPE_PEM));
-#endif
- AssertNotNull(ssl = wolfSSL_new(ctx));
-
- /* invalid ssl */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_SetTmpDH_file(NULL,
- dhParamFile, WOLFSSL_FILETYPE_PEM));
-
- /* invalid dhParamFile file */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_SetTmpDH_file(ssl,
- NULL, WOLFSSL_FILETYPE_PEM));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_SetTmpDH_file(ssl,
- bogusFile, WOLFSSL_FILETYPE_PEM));
-
- /* success */
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_SetTmpDH_file(ssl, dhParamFile,
- WOLFSSL_FILETYPE_PEM));
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-static void test_wolfSSL_SetTmpDH_buffer(void)
-{
-#if !defined(NO_CERTS) && !defined(NO_DH) && !defined(NO_WOLFSSL_SERVER)
- WOLFSSL_CTX *ctx;
- WOLFSSL *ssl;
-
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
- AssertTrue(wolfSSL_CTX_use_certificate_buffer(ctx, server_cert_der_2048,
- sizeof_server_cert_der_2048, WOLFSSL_FILETYPE_ASN1));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_buffer(ctx, server_key_der_2048,
- sizeof_server_key_der_2048, WOLFSSL_FILETYPE_ASN1));
- AssertNotNull(ssl = wolfSSL_new(ctx));
-
- /* invalid ssl */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_SetTmpDH_buffer(NULL, dh_key_der_2048,
- sizeof_dh_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- /* invalid dhParamFile file */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_SetTmpDH_buffer(NULL, NULL,
- 0, WOLFSSL_FILETYPE_ASN1));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_SetTmpDH_buffer(ssl, dsa_key_der_2048,
- sizeof_dsa_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- /* success */
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_SetTmpDH_buffer(ssl, dh_key_der_2048,
- sizeof_dh_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-static void test_wolfSSL_SetMinMaxDhKey_Sz(void)
-{
-#if !defined(NO_CERTS) && !defined(NO_DH) && !defined(NO_WOLFSSL_SERVER)
- WOLFSSL_CTX *ctx, *ctx2;
- WOLFSSL *ssl, *ssl2;
-
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
- AssertTrue(wolfSSL_CTX_use_certificate_buffer(ctx, server_cert_der_2048,
- sizeof_server_cert_der_2048, WOLFSSL_FILETYPE_ASN1));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_buffer(ctx, server_key_der_2048,
- sizeof_server_key_der_2048, WOLFSSL_FILETYPE_ASN1));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_SetMinDhKey_Sz(ctx, 3072));
- AssertNotNull(ssl = wolfSSL_new(ctx));
- AssertNotNull(ctx2 = wolfSSL_CTX_new(wolfSSLv23_server_method()));
- AssertTrue(wolfSSL_CTX_use_certificate_buffer(ctx2, server_cert_der_2048,
- sizeof_server_cert_der_2048, WOLFSSL_FILETYPE_ASN1));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_buffer(ctx2, server_key_der_2048,
- sizeof_server_key_der_2048, WOLFSSL_FILETYPE_ASN1));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_SetMaxDhKey_Sz(ctx, 1024));
- AssertNotNull(ssl2 = wolfSSL_new(ctx2));
-
- AssertIntEQ(DH_KEY_SIZE_E, wolfSSL_SetTmpDH_buffer(ssl, dh_key_der_2048,
- sizeof_dh_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_SetMinDhKey_Sz(ssl, 2048));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_SetTmpDH_buffer(ssl, dh_key_der_2048,
- sizeof_dh_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_SetMinDhKey_Sz(ssl, 3072));
- AssertIntEQ(DH_KEY_SIZE_E, wolfSSL_SetTmpDH_buffer(ssl, dh_key_der_2048,
- sizeof_dh_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_SetTmpDH_buffer(ssl2, dh_key_der_2048,
- sizeof_dh_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_SetMaxDhKey_Sz(ssl2, 2048));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_SetTmpDH_buffer(ssl2, dh_key_der_2048,
- sizeof_dh_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_SetMaxDhKey_Sz(ssl2, 1024));
- AssertIntEQ(DH_KEY_SIZE_E, wolfSSL_SetTmpDH_buffer(ssl, dh_key_der_2048,
- sizeof_dh_key_der_2048, WOLFSSL_FILETYPE_ASN1));
-
- wolfSSL_free(ssl2);
- wolfSSL_CTX_free(ctx2);
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-
-/* Test function for wolfSSL_SetMinVersion. Sets the minimum downgrade version
- * allowed.
- * POST: return 1 on success.
- */
-static int test_wolfSSL_SetMinVersion(void)
-{
- int failFlag = WOLFSSL_SUCCESS;
-#ifndef NO_WOLFSSL_CLIENT
- WOLFSSL_CTX* ctx;
- WOLFSSL* ssl;
- int itr;
-
- #ifndef NO_OLD_TLS
- const int versions[] = {
- #ifdef WOLFSSL_ALLOW_TLSV10
- WOLFSSL_TLSV1,
- #endif
- WOLFSSL_TLSV1_1,
- WOLFSSL_TLSV1_2};
- #elif !defined(WOLFSSL_NO_TLS12)
- const int versions[] = { WOLFSSL_TLSV1_2 };
- #else
- const int versions[] = { WOLFSSL_TLSV1_3 };
- #endif
-
- ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
- ssl = wolfSSL_new(ctx);
-
- printf(testingFmt, "wolfSSL_SetMinVersion()");
-
- for (itr = 0; itr < (int)(sizeof(versions)/sizeof(int)); itr++){
- if(wolfSSL_SetMinVersion(ssl, *(versions + itr)) != WOLFSSL_SUCCESS){
- failFlag = WOLFSSL_FAILURE;
- }
- }
-
- printf(resultFmt, failFlag == WOLFSSL_SUCCESS ? passed : failed);
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-#endif
- return failFlag;
-
-} /* END test_wolfSSL_SetMinVersion */
-
-
-/*----------------------------------------------------------------------------*
- | EC
- *----------------------------------------------------------------------------*/
-
-/* Test function for EC_POINT_new, EC_POINT_mul, EC_POINT_free,
- EC_GROUP_new_by_curve_name, EC_GROUP_order_bits
- */
-
-# if defined(OPENSSL_EXTRA)
-static void test_wolfSSL_EC(void)
-{
-#if defined(HAVE_ECC) && defined(ECC_SHAMIR)
- BN_CTX *ctx;
- EC_GROUP *group;
- EC_POINT *Gxy, *new_point, *set_point;
- BIGNUM *k = NULL, *Gx = NULL, *Gy = NULL, *Gz = NULL;
- BIGNUM *X, *Y;
- BIGNUM *set_point_bn;
- char* hexStr;
- int group_bits;
-
- const char* kTest = "F4F8338AFCC562C5C3F3E1E46A7EFECD17AF381913FF7A96314EA47055EA0FD0";
- /* NISTP256R1 Gx/Gy */
- const char* kGx = "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296";
- const char* kGy = "4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5";
-
-#ifndef HAVE_SELFTEST
- EC_POINT *tmp;
- size_t bin_len;
- unsigned char* buf = NULL;
-
- const char* uncompG = "046B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C2964FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5";
- const unsigned char binUncompG[] = {
- 0x04, 0x6b, 0x17, 0xd1, 0xf2, 0xe1, 0x2c, 0x42, 0x47, 0xf8, 0xbc,
- 0xe6, 0xe5, 0x63, 0xa4, 0x40, 0xf2, 0x77, 0x03, 0x7d, 0x81, 0x2d,
- 0xeb, 0x33, 0xa0, 0xf4, 0xa1, 0x39, 0x45, 0xd8, 0x98, 0xc2, 0x96,
- 0x4f, 0xe3, 0x42, 0xe2, 0xfe, 0x1a, 0x7f, 0x9b, 0x8e, 0xe7, 0xeb,
- 0x4a, 0x7c, 0x0f, 0x9e, 0x16, 0x2b, 0xce, 0x33, 0x57, 0x6b, 0x31,
- 0x5e, 0xce, 0xcb, 0xb6, 0x40, 0x68, 0x37, 0xbf, 0x51, 0xf5,
- };
-
-#ifdef HAVE_COMP_KEY
- const char* compG = "036B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296";
- const unsigned char binCompG[] = {
- 0x03, 0x6b, 0x17, 0xd1, 0xf2, 0xe1, 0x2c, 0x42, 0x47, 0xf8, 0xbc,
- 0xe6, 0xe5, 0x63, 0xa4, 0x40, 0xf2, 0x77, 0x03, 0x7d, 0x81, 0x2d,
- 0xeb, 0x33, 0xa0, 0xf4, 0xa1, 0x39, 0x45, 0xd8, 0x98, 0xc2, 0x96,
- };
-#endif
-#endif
-
- AssertNotNull(ctx = BN_CTX_new());
- AssertNotNull(group = EC_GROUP_new_by_curve_name(NID_X9_62_prime256v1));
- AssertIntEQ((group_bits = EC_GROUP_order_bits(group)), 256);
- AssertNotNull(Gxy = EC_POINT_new(group));
- AssertNotNull(new_point = EC_POINT_new(group));
- AssertNotNull(set_point = EC_POINT_new(group));
- AssertNotNull(X = BN_new());
- AssertNotNull(Y = BN_new());
- AssertNotNull(set_point_bn = BN_new());
-
- /* load test values */
- AssertIntEQ(BN_hex2bn(&k, kTest), WOLFSSL_SUCCESS);
- AssertIntEQ(BN_hex2bn(&Gx, kGx), WOLFSSL_SUCCESS);
- AssertIntEQ(BN_hex2bn(&Gy, kGy), WOLFSSL_SUCCESS);
- AssertIntEQ(BN_hex2bn(&Gz, "1"), WOLFSSL_SUCCESS);
-
- /* populate coordinates for input point */
- Gxy->X = Gx;
- Gxy->Y = Gy;
- Gxy->Z = Gz;
-
-#ifndef HAVE_SELFTEST
- /* perform point multiplication */
- AssertIntEQ(EC_POINT_mul(group, new_point, Gx, Gxy, k, ctx), WOLFSSL_SUCCESS);
- AssertIntEQ(EC_POINT_mul(group, new_point, NULL, Gxy, k, ctx), WOLFSSL_SUCCESS);
- AssertIntEQ(EC_POINT_mul(group, new_point, Gx, NULL, NULL, ctx), WOLFSSL_SUCCESS);
-#else
- AssertIntEQ(EC_POINT_set_affine_coordinates_GFp(group, new_point, Gx, Gy, ctx), WOLFSSL_SUCCESS);
-#endif
-
- /* check if point X coordinate is zero */
- AssertIntEQ(BN_is_zero(new_point->X), 0);
-
- /* Force non-affine coordinates */
- AssertIntEQ(BN_add(new_point->Z, (WOLFSSL_BIGNUM*)BN_value_one(),
- (WOLFSSL_BIGNUM*)BN_value_one()), 1);
- new_point->inSet = 0;
-
- /* extract the coordinates from point */
- AssertIntEQ(EC_POINT_get_affine_coordinates_GFp(group, new_point, X, Y, ctx), WOLFSSL_SUCCESS);
-
- /* check if point X coordinate is zero */
- AssertIntEQ(BN_is_zero(X), WOLFSSL_FAILURE);
-
- /* set the same X and Y points in another object */
- AssertIntEQ(EC_POINT_set_affine_coordinates_GFp(group, set_point, X, Y, ctx), WOLFSSL_SUCCESS);
-
- /* compare points as they should be the same */
- AssertIntEQ(EC_POINT_cmp(group, new_point, set_point, ctx), 0);
-
- /* Test copying */
- AssertIntEQ(EC_POINT_copy(new_point, set_point), 1);
-
- AssertPtrEq(EC_POINT_point2bn(group, set_point, POINT_CONVERSION_UNCOMPRESSED,
- set_point_bn, ctx), set_point_bn);
-
- /* check bn2hex */
- hexStr = BN_bn2hex(k);
- AssertStrEQ(hexStr, kTest);
-#ifndef NO_FILESYSTEM
- BN_print_fp(stdout, k);
- printf("\n");
-#endif
- XFREE(hexStr, NULL, DYNAMIC_TYPE_ECC);
-
- hexStr = BN_bn2hex(Gx);
- AssertStrEQ(hexStr, kGx);
-#ifndef NO_FILESYSTEM
- BN_print_fp(stdout, Gx);
- printf("\n");
-#endif
- XFREE(hexStr, NULL, DYNAMIC_TYPE_ECC);
-
- hexStr = BN_bn2hex(Gy);
- AssertStrEQ(hexStr, kGy);
-#ifndef NO_FILESYSTEM
- BN_print_fp(stdout, Gy);
- printf("\n");
-#endif
- XFREE(hexStr, NULL, DYNAMIC_TYPE_ECC);
-
-#ifndef HAVE_SELFTEST
- hexStr = EC_POINT_point2hex(group, Gxy, POINT_CONVERSION_UNCOMPRESSED, ctx);
- AssertStrEQ(hexStr, uncompG);
- XFREE(hexStr, NULL, DYNAMIC_TYPE_ECC);
-
-#ifdef HAVE_COMP_KEY
- hexStr = EC_POINT_point2hex(group, Gxy, POINT_CONVERSION_COMPRESSED, ctx);
- AssertStrEQ(hexStr, compG);
- XFREE(hexStr, NULL, DYNAMIC_TYPE_ECC);
-#endif
-
- bin_len = EC_POINT_point2oct(group, Gxy, POINT_CONVERSION_UNCOMPRESSED, NULL, 0, ctx);
- AssertIntEQ(bin_len, sizeof(binUncompG));
- AssertNotNull(buf = (unsigned char*)XMALLOC(bin_len, NULL, DYNAMIC_TYPE_ECC));
- AssertIntEQ(EC_POINT_point2oct(group, Gxy, POINT_CONVERSION_UNCOMPRESSED, buf,
- bin_len, ctx), bin_len);
- AssertIntEQ(XMEMCMP(buf, binUncompG, sizeof(binUncompG)), 0);
- XFREE(buf, NULL, DYNAMIC_TYPE_ECC);
-
-#ifdef HAVE_COMP_KEY
- bin_len = EC_POINT_point2oct(group, Gxy, POINT_CONVERSION_COMPRESSED, NULL, 0, ctx);
- AssertIntEQ(bin_len, sizeof(binCompG));
- AssertNotNull(buf = (unsigned char*)XMALLOC(bin_len, NULL, DYNAMIC_TYPE_ECC));
- AssertIntEQ(EC_POINT_point2oct(group, Gxy, POINT_CONVERSION_COMPRESSED, buf,
- bin_len, ctx), bin_len);
- AssertIntEQ(XMEMCMP(buf, binCompG, sizeof(binCompG)), 0);
- XFREE(buf, NULL, DYNAMIC_TYPE_ECC);
-#endif
-
- AssertNotNull(tmp = EC_POINT_new(group));
- AssertIntEQ(EC_POINT_oct2point(group, tmp, binUncompG, sizeof(binUncompG), ctx), 1);
- AssertIntEQ(EC_POINT_cmp(group, tmp, Gxy, ctx), 0);
- EC_POINT_free(tmp);
-
-#ifdef HAVE_COMP_KEY
- AssertNotNull(tmp = EC_POINT_new(group));
- AssertIntEQ(EC_POINT_oct2point(group, tmp, binCompG, sizeof(binCompG), ctx), 1);
- AssertIntEQ(EC_POINT_cmp(group, tmp, Gxy, ctx), 0);
- EC_POINT_free(tmp);
-#endif
-#endif
-
- /* test BN_mod_add */
- AssertIntEQ(BN_mod_add(new_point->Z, (WOLFSSL_BIGNUM*)BN_value_one(),
- (WOLFSSL_BIGNUM*)BN_value_one(),
- (WOLFSSL_BIGNUM*)BN_value_one(), NULL), 1);
- AssertIntEQ(BN_is_zero(new_point->Z), 1);
- /* cleanup */
- BN_free(X);
- BN_free(Y);
- BN_free(k);
- BN_free(set_point_bn);
- EC_POINT_free(new_point);
- EC_POINT_free(set_point);
- EC_POINT_free(Gxy);
- EC_GROUP_free(group);
- BN_CTX_free(ctx);
-#endif /* HAVE_ECC */
-}
-#endif
-
-static void test_wolfSSL_PEM_read_bio_ECPKParameters(void)
-{
-#if defined(HAVE_ECC) && !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA)
- EC_GROUP *group;
- BIO* bio;
-
- AssertNotNull(bio = BIO_new(BIO_s_file()));
- AssertIntEQ(BIO_read_filename(bio, eccKeyFile), WOLFSSL_SUCCESS);
- AssertNotNull(group = PEM_read_bio_ECPKParameters(bio, NULL, NULL, NULL));
- AssertIntEQ(EC_GROUP_get_curve_name(group), NID_X9_62_prime256v1);
- EC_GROUP_free(group);
- BIO_free(bio);
-#endif /* HAVE_ECC */
-}
-
-# if defined(OPENSSL_EXTRA)
-static void test_wolfSSL_ECDSA_SIG(void)
-{
-#ifdef HAVE_ECC
- WOLFSSL_ECDSA_SIG* sig = NULL;
- WOLFSSL_ECDSA_SIG* sig2 = NULL;
- const unsigned char* cp;
- unsigned char* p;
- unsigned char outSig[8];
- unsigned char sigData[8] =
- { 0x30, 0x06, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01 };
-
- AssertNull(wolfSSL_d2i_ECDSA_SIG(NULL, NULL, sizeof(sigData)));
- cp = sigData;
- AssertNotNull((sig = wolfSSL_d2i_ECDSA_SIG(NULL, &cp, sizeof(sigData))));
- AssertIntEQ((cp == sigData + 8), 1);
- cp = sigData;
- AssertNull(wolfSSL_d2i_ECDSA_SIG(&sig, NULL, sizeof(sigData)));
- AssertNotNull((sig2 = wolfSSL_d2i_ECDSA_SIG(&sig, &cp, sizeof(sigData))));
- AssertIntEQ((sig == sig2), 1);
- cp = outSig;
-
- p = outSig;
- AssertIntEQ(wolfSSL_i2d_ECDSA_SIG(NULL, &p), 0);
- AssertIntEQ(wolfSSL_i2d_ECDSA_SIG(NULL, NULL), 0);
- AssertIntEQ(wolfSSL_i2d_ECDSA_SIG(sig, NULL), 8);
- AssertIntEQ(wolfSSL_i2d_ECDSA_SIG(sig, &p), sizeof(sigData));
- AssertIntEQ((p == outSig + 8), 1);
- AssertIntEQ(XMEMCMP(sigData, outSig, 8), 0);
-
- wolfSSL_ECDSA_SIG_free(sig);
-#endif /* HAVE_ECC */
-}
-
-static void test_ECDSA_size_sign(void)
-{
-#if defined(HAVE_ECC) && !defined(NO_ECC256) && !defined(NO_ECC_SECP)
- EC_KEY *key;
- int id;
- byte hash[WC_MAX_DIGEST_SIZE];
- byte sig[ECC_BUFSIZE];
- unsigned int sigSz = sizeof(sig);
-
-
- XMEMSET(hash, 123, sizeof(hash));
-
- id = wc_ecc_get_curve_id_from_name("SECP256R1");
- AssertIntEQ(id, ECC_SECP256R1);
-
- AssertNotNull(key = wolfSSL_EC_KEY_new_by_curve_name(id));
- AssertIntEQ(EC_KEY_generate_key(key), 1);
- AssertIntEQ(ECDSA_sign(0, hash, sizeof(hash), sig, &sigSz, key), 1);
- AssertIntGE(ECDSA_size(key), sigSz);
- EC_KEY_free(key);
-
-#endif /* HAVE_ECC && !NO_ECC256 && !NO_ECC_SECP */
-}
-#endif /* OPENSSL_EXTRA */
-
-#include <wolfssl/openssl/pem.h>
-/*----------------------------------------------------------------------------*
- | EVP
- *----------------------------------------------------------------------------*/
-
-/* Test function for wolfSSL_EVP_get_cipherbynid.
- */
-
-#ifdef OPENSSL_EXTRA
-static void test_wolfSSL_EVP_get_cipherbynid(void)
-{
-#ifndef NO_AES
- const WOLFSSL_EVP_CIPHER* c;
-
- c = wolfSSL_EVP_get_cipherbynid(419);
- #if defined(HAVE_AES_CBC) && defined(WOLFSSL_AES_128)
- AssertNotNull(c);
- AssertNotNull(strcmp("EVP_AES_128_CBC", c));
- #else
- AssertNull(c);
- #endif
-
- c = wolfSSL_EVP_get_cipherbynid(423);
- #if defined(HAVE_AES_CBC) && defined(WOLFSSL_AES_192)
- AssertNotNull(c);
- AssertNotNull(strcmp("EVP_AES_192_CBC", c));
- #else
- AssertNull(c);
- #endif
-
- c = wolfSSL_EVP_get_cipherbynid(427);
- #if defined(HAVE_AES_CBC) && defined(WOLFSSL_AES_256)
- AssertNotNull(c);
- AssertNotNull(strcmp("EVP_AES_256_CBC", c));
- #else
- AssertNull(c);
- #endif
-
- c = wolfSSL_EVP_get_cipherbynid(904);
- #if defined(WOLFSSL_AES_COUNTER) && defined(WOLFSSL_AES_128)
- AssertNotNull(c);
- AssertNotNull(strcmp("EVP_AES_128_CTR", c));
- #else
- AssertNull(c);
- #endif
-
- c = wolfSSL_EVP_get_cipherbynid(905);
- #if defined(WOLFSSL_AES_COUNTER) && defined(WOLFSSL_AES_192)
- AssertNotNull(c);
- AssertNotNull(strcmp("EVP_AES_192_CTR", c));
- #else
- AssertNull(c);
- #endif
-
- c = wolfSSL_EVP_get_cipherbynid(906);
- #if defined(WOLFSSL_AES_COUNTER) && defined(WOLFSSL_AES_256)
- AssertNotNull(c);
- AssertNotNull(strcmp("EVP_AES_256_CTR", c));
- #else
- AssertNull(c);
- #endif
-
- c = wolfSSL_EVP_get_cipherbynid(418);
- #if defined(HAVE_AES_ECB) && defined(WOLFSSL_AES_128)
- AssertNotNull(c);
- AssertNotNull(strcmp("EVP_AES_128_ECB", c));
- #else
- AssertNull(c);
- #endif
-
- c = wolfSSL_EVP_get_cipherbynid(422);
- #if defined(HAVE_AES_ECB) && defined(WOLFSSL_AES_192)
- AssertNotNull(c);
- AssertNotNull(strcmp("EVP_AES_192_ECB", c));
- #else
- AssertNull(c);
- #endif
-
- c = wolfSSL_EVP_get_cipherbynid(426);
- #if defined(HAVE_AES_ECB) && defined(WOLFSSL_AES_256)
- AssertNotNull(c);
- AssertNotNull(strcmp("EVP_AES_256_ECB", c));
- #else
- AssertNull(c);
- #endif
-#endif /* !NO_AES */
-
-#ifndef NO_DES3
- AssertNotNull(strcmp("EVP_DES_CBC", wolfSSL_EVP_get_cipherbynid(31)));
-#ifdef WOLFSSL_DES_ECB
- AssertNotNull(strcmp("EVP_DES_ECB", wolfSSL_EVP_get_cipherbynid(29)));
-#endif
- AssertNotNull(strcmp("EVP_DES_EDE3_CBC", wolfSSL_EVP_get_cipherbynid(44)));
-#ifdef WOLFSSL_DES_ECB
- AssertNotNull(strcmp("EVP_DES_EDE3_ECB", wolfSSL_EVP_get_cipherbynid(33)));
-#endif
-#endif /* !NO_DES3 */
-
-#ifdef HAVE_IDEA
- AssertNotNull(strcmp("EVP_IDEA_CBC", wolfSSL_EVP_get_cipherbynid(34)));
-#endif
-
- /* test for nid is out of range */
- AssertNull(wolfSSL_EVP_get_cipherbynid(1));
-
-}
-
-static void test_wolfSSL_EVP_CIPHER_CTX()
-{
-#if !defined(NO_AES) && defined(HAVE_AES_CBC) && defined(WOLFSSL_AES_128)
- EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
- const EVP_CIPHER *init = EVP_aes_128_cbc();
- const EVP_CIPHER *test;
- byte key[AES_BLOCK_SIZE] = {0};
- byte iv[AES_BLOCK_SIZE] = {0};
-
- AssertNotNull(ctx);
- wolfSSL_EVP_CIPHER_CTX_init(ctx);
- AssertIntEQ(EVP_CipherInit(ctx, init, key, iv, 1), WOLFSSL_SUCCESS);
- test = EVP_CIPHER_CTX_cipher(ctx);
- AssertTrue(init == test);
- AssertIntEQ(EVP_CIPHER_nid(test), NID_aes_128_cbc);
-
- AssertIntEQ(EVP_CIPHER_CTX_reset(ctx), WOLFSSL_SUCCESS);
- AssertIntEQ(EVP_CIPHER_CTX_reset(NULL), WOLFSSL_FAILURE);
-
- EVP_CIPHER_CTX_free(ctx);
-#endif /* !NO_AES && HAVE_AES_CBC && WOLFSSL_AES_128 */
-}
-#endif /* OPENSSL_EXTRA */
-
-/*----------------------------------------------------------------------------*
- | IO
- *----------------------------------------------------------------------------*/
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && \
- !defined(NO_RSA) && !defined(SINGLE_THREADED) && \
- !defined(NO_WOLFSSL_SERVER) && !defined(NO_WOLFSSL_CLIENT)
-#define HAVE_IO_TESTS_DEPENDENCIES
-#endif
-
-/* helper functions */
-#ifdef HAVE_IO_TESTS_DEPENDENCIES
-
-#ifdef WOLFSSL_SESSION_EXPORT
-/* set up function for sending session information */
-static int test_export(WOLFSSL* inSsl, byte* buf, word32 sz, void* userCtx)
-{
- WOLFSSL_CTX* ctx;
- WOLFSSL* ssl;
-
- AssertNotNull(inSsl);
- AssertNotNull(buf);
- AssertIntNE(0, sz);
-
- /* Set ctx to DTLS 1.2 */
- ctx = wolfSSL_CTX_new(wolfDTLSv1_2_server_method());
- AssertNotNull(ctx);
-
- ssl = wolfSSL_new(ctx);
- AssertNotNull(ssl);
-
- AssertIntGE(wolfSSL_dtls_import(ssl, buf, sz), 0);
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
- (void)userCtx;
- return WOLFSSL_SUCCESS;
-}
-
-/* returns negative value on fail and positive (including 0) on success */
-static int nonblocking_accept_read(void* args, WOLFSSL* ssl, SOCKET_T* sockfd)
-{
- int ret, err, loop_count, count, timeout = 10;
- char msg[] = "I hear you fa shizzle!";
- char input[1024];
-
- loop_count = ((func_args*)args)->argc;
- do {
-#ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) { break; } else if (ret == 0) { continue; }
- }
-#endif
-
- err = 0; /* Reset error */
-
- ret = wolfSSL_accept(ssl);
- if (ret != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- if (err == WOLFSSL_ERROR_WANT_READ ||
- err == WOLFSSL_ERROR_WANT_WRITE) {
- int select_ret;
-
- err = WC_PENDING_E;
- select_ret = tcp_select(*sockfd, timeout);
- if (select_ret == TEST_TIMEOUT) {
- return WOLFSSL_FATAL_ERROR;
- }
- }
- }
- } while (ret != WOLFSSL_SUCCESS && err == WC_PENDING_E);
-
- if (ret != WOLFSSL_SUCCESS) {
- char buff[WOLFSSL_MAX_ERROR_SZ];
- printf("error = %d, %s\n", err, wolfSSL_ERR_error_string(err, buff));
- return ret;
- }
-
- for (count = 0; count < loop_count; count++) {
- int select_ret;
-
- select_ret = tcp_select(*sockfd, timeout);
- if (select_ret == TEST_TIMEOUT) {
- ret = WOLFSSL_FATAL_ERROR;
- break;
- }
-
- do {
- ret = wolfSSL_read(ssl, input, sizeof(input)-1);
- if (ret > 0) {
- input[ret] = '\0';
- printf("Client message: %s\n", input);
- }
- } while (err == WOLFSSL_ERROR_WANT_READ && ret != WOLFSSL_SUCCESS);
-
- do {
- if ((ret = wolfSSL_write(ssl, msg, sizeof(msg))) != sizeof(msg)) {
- return WOLFSSL_FATAL_ERROR;
- }
- err = wolfSSL_get_error(ssl, ret);
- } while (err == WOLFSSL_ERROR_WANT_READ && ret != WOLFSSL_SUCCESS);
- }
- return ret;
-}
-#endif /* WOLFSSL_SESSION_EXPORT */
-
-static THREAD_RETURN WOLFSSL_THREAD test_server_nofail(void* args)
-{
- SOCKET_T sockfd = 0;
- SOCKET_T clientfd = 0;
- word16 port;
-
- callback_functions* cbf;
- WOLFSSL_CTX* ctx = 0;
- WOLFSSL* ssl = 0;
-
- char msg[] = "I hear you fa shizzle!";
- char input[1024];
- int idx;
- int ret, err = 0;
- int sharedCtx = 0;
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- ((func_args*)args)->return_code = TEST_FAIL;
- cbf = ((func_args*)args)->callbacks;
-
-#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
- if (cbf != NULL && cbf->ctx) {
- ctx = cbf->ctx;
- sharedCtx = 1;
- }
- else
-#endif
- {
- WOLFSSL_METHOD* method = NULL;
- if (cbf != NULL && cbf->method != NULL) {
- method = cbf->method();
- }
- else {
- method = wolfSSLv23_server_method();
- }
- ctx = wolfSSL_CTX_new(method);
- }
-
-#if defined(HAVE_SESSION_TICKET) && defined(HAVE_CHACHA) && \
- defined(HAVE_POLY1305)
- TicketInit();
- wolfSSL_CTX_set_TicketEncCb(ctx, myTicketEncCb);
-#endif
-
-#if defined(USE_WINDOWS_API)
- port = ((func_args*)args)->signal->port;
-#elif defined(NO_MAIN_DRIVER) && !defined(WOLFSSL_SNIFFER) && \
- !defined(WOLFSSL_MDK_SHELL) && !defined(WOLFSSL_TIRTOS)
- /* Let tcp_listen assign port */
- port = 0;
-#else
- /* Use default port */
- port = wolfSSLPort;
-#endif
-
- /* do it here to detect failure */
- tcp_accept(&sockfd, &clientfd, (func_args*)args, port, 0, 0, 0, 0, 1);
- CloseSocket(sockfd);
-
- wolfSSL_CTX_set_verify(ctx,
- WOLFSSL_VERIFY_PEER | WOLFSSL_VERIFY_FAIL_IF_NO_PEER_CERT, 0);
-
-#ifdef WOLFSSL_ENCRYPTED_KEYS
- wolfSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
-#endif
-
- if (wolfSSL_CTX_load_verify_locations(ctx, cliCertFile, 0)
- != WOLFSSL_SUCCESS) {
- /*err_sys("can't load ca file, Please run from wolfSSL home dir");*/
- goto done;
- }
- if (!sharedCtx && wolfSSL_CTX_use_certificate_file(ctx, svrCertFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load server cert chain file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
- if (!sharedCtx && wolfSSL_CTX_use_PrivateKey_file(ctx, svrKeyFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load server key file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
-
- /* call ctx setup callback */
- if (cbf != NULL && cbf->ctx_ready != NULL) {
- cbf->ctx_ready(ctx);
- }
-
- ssl = wolfSSL_new(ctx);
- if (ssl == NULL) {
- goto done;
- }
-
-#ifdef WOLFSSL_SESSION_EXPORT
- /* only add in more complex nonblocking case with session export tests */
- if (args && ((func_args*)args)->argc > 0) {
- /* set as nonblock and time out for waiting on read/write */
- tcp_set_nonblocking(&clientfd);
- wolfSSL_dtls_set_using_nonblock(ssl, 1);
- }
-#endif
-
- if (sharedCtx && wolfSSL_use_certificate_file(ssl, svrCertFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load server cert chain file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
- if (sharedCtx && wolfSSL_use_PrivateKey_file(ssl, svrKeyFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load server key file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
-
- if (wolfSSL_set_fd(ssl, clientfd) != WOLFSSL_SUCCESS) {
- /*err_sys("SSL_set_fd failed");*/
- goto done;
- }
-
-#if !defined(NO_FILESYSTEM) && !defined(NO_DH)
- wolfSSL_SetTmpDH_file(ssl, dhParamFile, WOLFSSL_FILETYPE_PEM);
-#elif !defined(NO_DH)
- SetDH(ssl); /* will repick suites with DHE, higher priority than PSK */
-#endif
-
- /* call ssl setup callback */
- if (cbf != NULL && cbf->ssl_ready != NULL) {
- cbf->ssl_ready(ssl);
- }
-
-#ifdef WOLFSSL_SESSION_EXPORT
- /* only add in more complex nonblocking case with session export tests */
- if (((func_args*)args)->argc > 0) {
- ret = nonblocking_accept_read(args, ssl, &clientfd);
- if (ret >= 0) {
- ((func_args*)args)->return_code = TEST_SUCCESS;
- }
- #ifdef WOLFSSL_TIRTOS
- Task_yield();
- #endif
- goto done;
- }
-#endif
-
- do {
-#ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) { break; } else if (ret == 0) { continue; }
- }
-#endif
-
- err = 0; /* Reset error */
- ret = wolfSSL_accept(ssl);
- if (ret != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- }
- } while (ret != WOLFSSL_SUCCESS && err == WC_PENDING_E);
-
- if (ret != WOLFSSL_SUCCESS) {
- char buff[WOLFSSL_MAX_ERROR_SZ];
- printf("error = %d, %s\n", err, wolfSSL_ERR_error_string(err, buff));
- /*err_sys("SSL_accept failed");*/
- goto done;
- }
-
- idx = wolfSSL_read(ssl, input, sizeof(input)-1);
- if (idx > 0) {
- input[idx] = '\0';
- printf("Client message: %s\n", input);
- }
-
- if (wolfSSL_write(ssl, msg, sizeof(msg)) != sizeof(msg)) {
- /*err_sys("SSL_write failed");*/
-#ifdef WOLFSSL_TIRTOS
- return;
-#else
- return 0;
-#endif
- }
-
-#ifdef WOLFSSL_TIRTOS
- Task_yield();
-#endif
-
- ((func_args*)args)->return_code = TEST_SUCCESS;
-
-done:
- wolfSSL_shutdown(ssl);
- wolfSSL_free(ssl);
- if (!sharedCtx)
- wolfSSL_CTX_free(ctx);
-
- CloseSocket(clientfd);
-
-#ifdef WOLFSSL_TIRTOS
- fdCloseSession(Task_self());
-#endif
-
-#if defined(NO_MAIN_DRIVER) && defined(HAVE_ECC) && defined(FP_ECC) \
- && defined(HAVE_THREAD_LS)
- wc_ecc_fp_free(); /* free per thread cache */
-#endif
-
-#if defined(HAVE_SESSION_TICKET) && defined(HAVE_CHACHA) && \
- defined(HAVE_POLY1305)
- TicketCleanup();
-#endif
-
-#ifndef WOLFSSL_TIRTOS
- return 0;
-#endif
-}
-
-#if defined(OPENSSL_EXTRA) && !defined(NO_SESSION_CACHE) && !defined(WOLFSSL_TLS13)
-static THREAD_RETURN WOLFSSL_THREAD test_server_loop(void* args)
-{
- SOCKET_T sockfd = 0;
- SOCKET_T clientfd = 0;
- word16 port;
-
- callback_functions* cbf;
- WOLFSSL_CTX* ctx = 0;
- WOLFSSL* ssl = 0;
-
- char msg[] = "I hear you fa shizzle!";
- char input[1024];
- int idx;
- int ret, err = 0;
- int sharedCtx = 0;
- int loop_count = ((func_args*)args)->argc;
- int count = 0;
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- ((func_args*)args)->return_code = TEST_FAIL;
- cbf = ((func_args*)args)->callbacks;
-
-#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
- if (cbf != NULL && cbf->ctx) {
- ctx = cbf->ctx;
- sharedCtx = 1;
- }
- else
-#endif
- {
- WOLFSSL_METHOD* method = NULL;
- if (cbf != NULL && cbf->method != NULL) {
- method = cbf->method();
- }
- else {
- method = wolfSSLv23_server_method();
- }
- ctx = wolfSSL_CTX_new(method);
- }
-
-#if defined(USE_WINDOWS_API)
- port = ((func_args*)args)->signal->port;
-#elif defined(NO_MAIN_DRIVER) && !defined(WOLFSSL_SNIFFER) && \
- !defined(WOLFSSL_MDK_SHELL) && !defined(WOLFSSL_TIRTOS)
- /* Let tcp_listen assign port */
- port = 0;
-#else
- /* Use default port */
- port = wolfSSLPort;
-#endif
-
- wolfSSL_CTX_set_verify(ctx,
- WOLFSSL_VERIFY_PEER | WOLFSSL_VERIFY_FAIL_IF_NO_PEER_CERT, 0);
-
-#ifdef WOLFSSL_ENCRYPTED_KEYS
- wolfSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
-#endif
-
- if (wolfSSL_CTX_load_verify_locations(ctx, cliCertFile, 0)
- != WOLFSSL_SUCCESS) {
- /*err_sys("can't load ca file, Please run from wolfSSL home dir");*/
- goto done;
- }
- if (!sharedCtx && wolfSSL_CTX_use_certificate_file(ctx, svrCertFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load server cert chain file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
- if (!sharedCtx && wolfSSL_CTX_use_PrivateKey_file(ctx, svrKeyFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load server key file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
- /* call ctx setup callback */
- if (cbf != NULL && cbf->ctx_ready != NULL) {
- cbf->ctx_ready(ctx);
- }
-
- while(count != loop_count) {
- ssl = wolfSSL_new(ctx);
- if (ssl == NULL) {
- goto done;
- }
- if (sharedCtx && wolfSSL_use_certificate_file(ssl, svrCertFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load server cert chain file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
- if (sharedCtx && wolfSSL_use_PrivateKey_file(ssl, svrKeyFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load server key file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
-
-#if !defined(NO_FILESYSTEM) && !defined(NO_DH)
- wolfSSL_SetTmpDH_file(ssl, dhParamFile, WOLFSSL_FILETYPE_PEM);
-#elif !defined(NO_DH)
- SetDH(ssl); /* will repick suites with DHE, higher priority than PSK */
-#endif
- /* call ssl setup callback */
- if (cbf != NULL && cbf->ssl_ready != NULL) {
- cbf->ssl_ready(ssl);
- }
- /* do it here to detect failure */
- tcp_accept(&sockfd, &clientfd, (func_args*)args, port, 0, 0, 0, 0, 1);
- CloseSocket(sockfd);
- if (wolfSSL_set_fd(ssl, clientfd) != WOLFSSL_SUCCESS) {
- /*err_sys("SSL_set_fd failed");*/
- goto done;
- }
-
- do {
- #ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) { break; } else if (ret == 0) { continue; }
- }
- #endif
- err = 0; /* Reset error */
- ret = wolfSSL_accept(ssl);
- if (ret != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- }
- } while (ret != WOLFSSL_SUCCESS && err == WC_PENDING_E);
-
- if (ret != WOLFSSL_SUCCESS) {
- char buff[WOLFSSL_MAX_ERROR_SZ];
- printf("error = %d, %s\n", err, wolfSSL_ERR_error_string(err, buff));
- /*err_sys("SSL_accept failed");*/
- goto done;
- }
-
- idx = wolfSSL_read(ssl, input, sizeof(input)-1);
- if (idx > 0) {
- input[idx] = '\0';
- printf("Client message: %s\n", input);
- }
-
- if (wolfSSL_write(ssl, msg, sizeof(msg)) != sizeof(msg)) {
- /*err_sys("SSL_write failed");*/
- #ifdef WOLFSSL_TIRTOS
- return;
- #else
- return 0;
- #endif
- }
- /* free ssl for this connection */
- wolfSSL_shutdown(ssl);
- wolfSSL_free(ssl); ssl = NULL;
- CloseSocket(clientfd);
-
- count++;
- }
-#ifdef WOLFSSL_TIRTOS
- Task_yield();
-#endif
-
- ((func_args*)args)->return_code = TEST_SUCCESS;
-
-done:
- if(ssl != NULL) {
- wolfSSL_shutdown(ssl);
- wolfSSL_free(ssl);
- }
- if (!sharedCtx)
- wolfSSL_CTX_free(ctx);
-
- CloseSocket(clientfd);
-
-#ifdef WOLFSSL_TIRTOS
- fdCloseSession(Task_self());
-#endif
-
-#if defined(NO_MAIN_DRIVER) && defined(HAVE_ECC) && defined(FP_ECC) \
- && defined(HAVE_THREAD_LS)
- wc_ecc_fp_free(); /* free per thread cache */
-#endif
-
-#ifndef WOLFSSL_TIRTOS
- return 0;
-#endif
-}
-#endif /* defined(OPENSSL_EXTRA) && !defined(NO_SESSION_CACHE) && !defined(WOLFSSL_TLS13) */
-
-typedef int (*cbType)(WOLFSSL_CTX *ctx, WOLFSSL *ssl);
-
-static void test_client_nofail(void* args, void *cb)
-{
- SOCKET_T sockfd = 0;
- callback_functions* cbf;
-
- WOLFSSL_CTX* ctx = 0;
- WOLFSSL* ssl = 0;
- WOLFSSL_CIPHER* cipher;
-
- char msg[64] = "hello wolfssl!";
- char reply[1024];
- int input;
- int msgSz = (int)XSTRLEN(msg);
- int ret, err = 0;
- int cipherSuite;
- int sharedCtx = 0;
- const char* cipherName1, *cipherName2;
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- ((func_args*)args)->return_code = TEST_FAIL;
- cbf = ((func_args*)args)->callbacks;
-
-#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
- if (cbf != NULL && cbf->ctx) {
- ctx = cbf->ctx;
- sharedCtx = 1;
- }
- else
-#endif
- {
- WOLFSSL_METHOD* method = NULL;
- if (cbf != NULL && cbf->method != NULL) {
- method = cbf->method();
- }
- else {
- method = wolfSSLv23_client_method();
- }
- ctx = wolfSSL_CTX_new(method);
- }
-
-#ifdef WOLFSSL_ENCRYPTED_KEYS
- wolfSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
-#endif
-
- /* Do connect here so server detects failures */
- tcp_connect(&sockfd, wolfSSLIP, ((func_args*)args)->signal->port,
- 0, 0, NULL);
-
- if (wolfSSL_CTX_load_verify_locations(ctx, caCertFile, 0) != WOLFSSL_SUCCESS)
- {
- /* err_sys("can't load ca file, Please run from wolfSSL home dir");*/
- goto done;
- }
- if (!sharedCtx && wolfSSL_CTX_use_certificate_file(ctx, cliCertFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load client cert file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
- if (!sharedCtx && wolfSSL_CTX_use_PrivateKey_file(ctx, cliKeyFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load client key file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
-
- /* call ctx setup callback */
- if (cbf != NULL && cbf->ctx_ready != NULL) {
- cbf->ctx_ready(ctx);
- }
-
- ssl = wolfSSL_new(ctx);
- if (ssl == NULL) {
- goto done;
- }
-
- if (sharedCtx && wolfSSL_use_certificate_file(ssl, cliCertFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load client cert file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
- if (sharedCtx && wolfSSL_use_PrivateKey_file(ssl, cliKeyFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load client key file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
-
- if (wolfSSL_set_fd(ssl, sockfd) != WOLFSSL_SUCCESS) {
- /*err_sys("SSL_set_fd failed");*/
- goto done;
- }
-
- /* call ssl setup callback */
- if (cbf != NULL && cbf->ssl_ready != NULL) {
- cbf->ssl_ready(ssl);
- }
-
- do {
-#ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) { break; } else if (ret == 0) { continue; }
- }
-#endif
-
- err = 0; /* Reset error */
- ret = wolfSSL_connect(ssl);
- if (ret != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- }
- } while (ret != WOLFSSL_SUCCESS && err == WC_PENDING_E);
-
- if (ret != WOLFSSL_SUCCESS) {
- char buff[WOLFSSL_MAX_ERROR_SZ];
- printf("error = %d, %s\n", err, wolfSSL_ERR_error_string(err, buff));
- /*err_sys("SSL_connect failed");*/
- goto done;
- }
-
- /* test the various get cipher methods */
- /* Internal cipher suite names */
- cipherSuite = wolfSSL_get_current_cipher_suite(ssl);
- cipherName1 = wolfSSL_get_cipher_name(ssl);
- cipherName2 = wolfSSL_get_cipher_name_from_suite(
- (cipherSuite >> 8), cipherSuite & 0xFF);
- AssertStrEQ(cipherName1, cipherName2);
-
- /* IANA Cipher Suites Names */
- /* Unless WOLFSSL_CIPHER_INTERNALNAME or NO_ERROR_STRINGS,
- then it's the internal cipher suite name */
- cipher = wolfSSL_get_current_cipher(ssl);
- cipherName1 = wolfSSL_CIPHER_get_name(cipher);
- cipherName2 = wolfSSL_get_cipher(ssl);
- AssertStrEQ(cipherName1, cipherName2);
-#if !defined(WOLFSSL_CIPHER_INTERNALNAME) && !defined(NO_ERROR_STRINGS) && \
- !defined(WOLFSSL_QT)
- cipherName1 = wolfSSL_get_cipher_name_iana_from_suite(
- (cipherSuite >> 8), cipherSuite & 0xFF);
- AssertStrEQ(cipherName1, cipherName2);
-#endif
-
- if (cb != NULL)
- ((cbType)cb)(ctx, ssl);
-
- if (wolfSSL_write(ssl, msg, msgSz) != msgSz) {
- /*err_sys("SSL_write failed");*/
- goto done;
- }
-
- input = wolfSSL_read(ssl, reply, sizeof(reply)-1);
- if (input > 0) {
- reply[input] = '\0';
- printf("Server response: %s\n", reply);
- }
-
- ((func_args*)args)->return_code = TEST_SUCCESS;
-
-done:
- wolfSSL_free(ssl);
- if (!sharedCtx)
- wolfSSL_CTX_free(ctx);
-
- CloseSocket(sockfd);
-
-#ifdef WOLFSSL_TIRTOS
- fdCloseSession(Task_self());
-#endif
-
-#if defined(NO_MAIN_DRIVER) && defined(HAVE_ECC) && defined(FP_ECC) \
- && defined(HAVE_THREAD_LS)
- wc_ecc_fp_free(); /* free per thread cache */
-#endif
-
- return;
-}
-
-#if defined(OPENSSL_EXTRA) && !defined(NO_SESSION_CACHE) && !defined(WOLFSSL_TLS13)
-static void test_client_reuse_WOLFSSLobj(void* args, void *cb, void* server_args)
-{
- SOCKET_T sockfd = 0;
- callback_functions* cbf;
-
- WOLFSSL_CTX* ctx = 0;
- WOLFSSL* ssl = 0;
- WOLFSSL_SESSION* session = NULL;
-
- char msg[64] = "hello wolfssl!";
- char reply[1024];
- int input;
- int msgSz = (int)XSTRLEN(msg);
- int ret, err = 0;
- int sharedCtx = 0;
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- ((func_args*)args)->return_code = TEST_FAIL;
- cbf = ((func_args*)args)->callbacks;
-
-#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)
- if (cbf != NULL && cbf->ctx) {
- ctx = cbf->ctx;
- sharedCtx = 1;
- }
- else
-#endif
- {
- WOLFSSL_METHOD* method = NULL;
- if (cbf != NULL && cbf->method != NULL) {
- method = cbf->method();
- }
- else {
- method = wolfSSLv23_client_method();
- }
- ctx = wolfSSL_CTX_new(method);
- }
-
-#ifdef WOLFSSL_ENCRYPTED_KEYS
- wolfSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
-#endif
-
- /* Do connect here so server detects failures */
- tcp_connect(&sockfd, wolfSSLIP, ((func_args*)args)->signal->port,
- 0, 0, NULL);
-
- if (wolfSSL_CTX_load_verify_locations(ctx, caCertFile, 0) != WOLFSSL_SUCCESS)
- {
- /* err_sys("can't load ca file, Please run from wolfSSL home dir");*/
- goto done;
- }
- if (!sharedCtx && wolfSSL_CTX_use_certificate_file(ctx, cliCertFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load client cert file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
- if (!sharedCtx && wolfSSL_CTX_use_PrivateKey_file(ctx, cliKeyFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load client key file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
-
- /* call ctx setup callback */
- if (cbf != NULL && cbf->ctx_ready != NULL) {
- cbf->ctx_ready(ctx);
- }
-
- ssl = wolfSSL_new(ctx);
- if (ssl == NULL) {
- goto done;
- }
- /* keep handshakre resources for re-using WOLFSSL obj */
- wolfSSL_KeepArrays(ssl);
- if(wolfSSL_KeepHandshakeResources(ssl)) {
- /* err_sys("SSL_KeepHandshakeResources failed"); */
- goto done;
- }
- if (sharedCtx && wolfSSL_use_certificate_file(ssl, cliCertFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load client cert file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
- if (sharedCtx && wolfSSL_use_PrivateKey_file(ssl, cliKeyFile,
- WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
- /*err_sys("can't load client key file, "
- "Please run from wolfSSL home dir");*/
- goto done;
- }
-
- if (wolfSSL_set_fd(ssl, sockfd) != WOLFSSL_SUCCESS) {
- /*err_sys("SSL_set_fd failed");*/
- goto done;
- }
-
- /* call ssl setup callback */
- if (cbf != NULL && cbf->ssl_ready != NULL) {
- cbf->ssl_ready(ssl);
- }
-
- do {
-#ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) { break; } else if (ret == 0) { continue; }
- }
-#endif
-
- err = 0; /* Reset error */
- ret = wolfSSL_connect(ssl);
- if (ret != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- }
- } while (ret != WOLFSSL_SUCCESS && err == WC_PENDING_E);
-
- if (ret != WOLFSSL_SUCCESS) {
- char buff[WOLFSSL_MAX_ERROR_SZ];
- printf("error = %d, %s\n", err, wolfSSL_ERR_error_string(err, buff));
- /*err_sys("SSL_connect failed");*/
- goto done;
- }
- /* Build first session */
- if (cb != NULL)
- ((cbType)cb)(ctx, ssl);
-
- if (wolfSSL_write(ssl, msg, msgSz) != msgSz) {
- /*err_sys("SSL_write failed");*/
- goto done;
- }
-
- input = wolfSSL_read(ssl, reply, sizeof(reply)-1);
- if (input > 0) {
- reply[input] = '\0';
- printf("Server response: %s\n", reply);
- }
-
- /* Session Resumption by re-using WOLFSSL object */
- wolfSSL_set_quiet_shutdown(ssl, 1);
- if (wolfSSL_shutdown(ssl) != WOLFSSL_SUCCESS) {
- /* err_sys ("SSL shutdown failed"); */
- goto done;
- }
- session = wolfSSL_get_session(ssl);
- if (wolfSSL_clear(ssl) != WOLFSSL_SUCCESS) {
- /* err_sys ("SSL_clear failed"); */
- goto done;
- }
- wolfSSL_set_session(ssl, session);
- /* close socket once */
- CloseSocket(sockfd);
- sockfd = 0;
- /* wait until server ready */
- wait_tcp_ready((func_args*)server_args);
- printf("session resumption\n");
- /* Do re-connect */
- tcp_connect(&sockfd, wolfSSLIP, ((func_args*)args)->signal->port,
- 0, 0, NULL);
- if (wolfSSL_set_fd(ssl, sockfd) != WOLFSSL_SUCCESS) {
- /*err_sys("SSL_set_fd failed");*/
- goto done;
- }
-
-do {
-#ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) { break; } else if (ret == 0) { continue; }
- }
-#endif
-
- err = 0; /* Reset error */
- ret = wolfSSL_connect(ssl);
- if (ret != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- }
- } while (ret != WOLFSSL_SUCCESS && err == WC_PENDING_E);
-
- if (ret != WOLFSSL_SUCCESS) {
- char buff[WOLFSSL_MAX_ERROR_SZ];
- printf("error = %d, %s\n", err, wolfSSL_ERR_error_string(err, buff));
- /*err_sys("SSL_connect failed");*/
- goto done;
- }
- /* Build first session */
- if (cb != NULL)
- ((cbType)cb)(ctx, ssl);
-
- if (wolfSSL_write(ssl, msg, msgSz) != msgSz) {
- /*err_sys("SSL_write failed");*/
- goto done;
- }
-
- input = wolfSSL_read(ssl, reply, sizeof(reply)-1);
- if (input > 0) {
- reply[input] = '\0';
- printf("Server response: %s\n", reply);
- }
-
- ((func_args*)args)->return_code = TEST_SUCCESS;
-
-done:
- wolfSSL_free(ssl);
- if (!sharedCtx)
- wolfSSL_CTX_free(ctx);
-
- CloseSocket(sockfd);
-
-#ifdef WOLFSSL_TIRTOS
- fdCloseSession(Task_self());
-#endif
-
- return;
-}
-#endif /* defined(OPENSSL_EXTRA) && !defined(NO_SESSION_CACHE) && !defined(WOLFSSL_TLS13) */
-
-/* SNI / ALPN / session export helper functions */
-#if defined(HAVE_SNI) || defined(HAVE_ALPN) || defined(WOLFSSL_SESSION_EXPORT)
-
-static THREAD_RETURN WOLFSSL_THREAD run_wolfssl_server(void* args)
-{
- callback_functions* callbacks = ((func_args*)args)->callbacks;
-
- WOLFSSL_CTX* ctx = wolfSSL_CTX_new(callbacks->method());
- WOLFSSL* ssl = NULL;
- SOCKET_T sfd = 0;
- SOCKET_T cfd = 0;
- word16 port;
-
- char msg[] = "I hear you fa shizzle!";
- int len = (int) XSTRLEN(msg);
- char input[1024];
- int idx;
- int ret, err = 0;
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
- ((func_args*)args)->return_code = TEST_FAIL;
-
-#if defined(USE_WINDOWS_API)
- port = ((func_args*)args)->signal->port;
-#elif defined(NO_MAIN_DRIVER) && !defined(WOLFSSL_SNIFFER) && \
- !defined(WOLFSSL_MDK_SHELL) && !defined(WOLFSSL_TIRTOS)
- /* Let tcp_listen assign port */
- port = 0;
-#else
- /* Use default port */
- port = wolfSSLPort;
-#endif
-
- wolfSSL_CTX_set_verify(ctx,
- WOLFSSL_VERIFY_PEER | WOLFSSL_VERIFY_FAIL_IF_NO_PEER_CERT, 0);
-
-#ifdef WOLFSSL_ENCRYPTED_KEYS
- wolfSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
-#endif
-#ifdef WOLFSSL_SESSION_EXPORT
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_dtls_set_export(ctx, test_export));
-#endif
-
-
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CTX_load_verify_locations(ctx, cliCertFile, 0));
-
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CTX_use_certificate_file(ctx, svrCertFile,
- WOLFSSL_FILETYPE_PEM));
-
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, WOLFSSL_FILETYPE_PEM));
-
- if (callbacks->ctx_ready)
- callbacks->ctx_ready(ctx);
-
- ssl = wolfSSL_new(ctx);
- if (wolfSSL_dtls(ssl)) {
- SOCKADDR_IN_T cliAddr;
- socklen_t cliLen;
-
- cliLen = sizeof(cliAddr);
- tcp_accept(&sfd, &cfd, (func_args*)args, port, 0, 1, 0, 0, 0);
- idx = (int)recvfrom(sfd, input, sizeof(input), MSG_PEEK,
- (struct sockaddr*)&cliAddr, &cliLen);
- AssertIntGT(idx, 0);
- wolfSSL_dtls_set_peer(ssl, &cliAddr, cliLen);
- }
- else {
- tcp_accept(&sfd, &cfd, (func_args*)args, port, 0, 0, 0, 0, 1);
- CloseSocket(sfd);
- }
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_set_fd(ssl, cfd));
-
-#ifdef NO_PSK
- #if !defined(NO_FILESYSTEM) && !defined(NO_DH)
- wolfSSL_SetTmpDH_file(ssl, dhParamFile, WOLFSSL_FILETYPE_PEM);
- #elif !defined(NO_DH)
- SetDH(ssl); /* will repick suites with DHE, higher priority than PSK */
- #endif
-#endif
-
- if (callbacks->ssl_ready)
- callbacks->ssl_ready(ssl);
-
- do {
-#ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) { break; } else if (ret == 0) { continue; }
- }
-#endif
-
- err = 0; /* Reset error */
- ret = wolfSSL_accept(ssl);
- if (ret != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- }
- } while (ret != WOLFSSL_SUCCESS && err == WC_PENDING_E);
-
- if (ret != WOLFSSL_SUCCESS) {
- char buff[WOLFSSL_MAX_ERROR_SZ];
- printf("error = %d, %s\n", err, wolfSSL_ERR_error_string(err, buff));
- /*err_sys("SSL_accept failed");*/
- }
- else {
- if (0 < (idx = wolfSSL_read(ssl, input, sizeof(input)-1))) {
- input[idx] = 0;
- printf("Client message: %s\n", input);
- }
-
- AssertIntEQ(len, wolfSSL_write(ssl, msg, len));
-#if defined(WOLFSSL_SESSION_EXPORT) && !defined(HAVE_IO_POOL)
- if (wolfSSL_dtls(ssl)) {
- byte* import;
- word32 sz;
-
- wolfSSL_dtls_export(ssl, NULL, &sz);
- import = (byte*)XMALLOC(sz, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- AssertNotNull(import);
- idx = wolfSSL_dtls_export(ssl, import, &sz);
- AssertIntGE(idx, 0);
- AssertIntGE(wolfSSL_dtls_import(ssl, import, idx), 0);
- XFREE(import, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- }
-#endif
-#ifdef WOLFSSL_TIRTOS
- Task_yield();
-#endif
- ((func_args*)args)->return_code = TEST_SUCCESS;
- }
-
- if (callbacks->on_result)
- callbacks->on_result(ssl);
-
- wolfSSL_shutdown(ssl);
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
- CloseSocket(cfd);
-
-
-#ifdef WOLFSSL_TIRTOS
- fdCloseSession(Task_self());
-#endif
-
-#if defined(NO_MAIN_DRIVER) && defined(HAVE_ECC) && defined(FP_ECC) \
- && defined(HAVE_THREAD_LS)
- wc_ecc_fp_free(); /* free per thread cache */
-#endif
-
-#ifndef WOLFSSL_TIRTOS
- return 0;
-#endif
-}
-
-static void run_wolfssl_client(void* args)
-{
- callback_functions* callbacks = ((func_args*)args)->callbacks;
-
- WOLFSSL_CTX* ctx = wolfSSL_CTX_new(callbacks->method());
- WOLFSSL* ssl = NULL;
- SOCKET_T sfd = 0;
-
- char msg[] = "hello wolfssl server!";
- int len = (int) XSTRLEN(msg);
- char input[1024];
- int idx;
- int ret, err = 0;
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- ((func_args*)args)->return_code = TEST_FAIL;
-
-#ifdef WOLFSSL_ENCRYPTED_KEYS
- wolfSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
-#endif
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_load_verify_locations(ctx, caCertFile, 0));
-
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CTX_use_certificate_file(ctx, cliCertFile, WOLFSSL_FILETYPE_PEM));
-
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CTX_use_PrivateKey_file(ctx, cliKeyFile, WOLFSSL_FILETYPE_PEM));
-
- if (callbacks->ctx_ready)
- callbacks->ctx_ready(ctx);
-
- ssl = wolfSSL_new(ctx);
- if (wolfSSL_dtls(ssl)) {
- tcp_connect(&sfd, wolfSSLIP, ((func_args*)args)->signal->port,
- 1, 0, ssl);
- }
- else {
- tcp_connect(&sfd, wolfSSLIP, ((func_args*)args)->signal->port,
- 0, 0, ssl);
- }
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_set_fd(ssl, sfd));
-
- if (callbacks->ssl_ready)
- callbacks->ssl_ready(ssl);
-
- do {
-#ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) { break; } else if (ret == 0) { continue; }
- }
-#endif
-
- err = 0; /* Reset error */
- ret = wolfSSL_connect(ssl);
- if (ret != WOLFSSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- }
- } while (ret != WOLFSSL_SUCCESS && err == WC_PENDING_E);
-
- if (ret != WOLFSSL_SUCCESS) {
- char buff[WOLFSSL_MAX_ERROR_SZ];
- printf("error = %d, %s\n", err, wolfSSL_ERR_error_string(err, buff));
- /*err_sys("SSL_connect failed");*/
- }
- else {
- AssertIntEQ(len, wolfSSL_write(ssl, msg, len));
-
- if (0 < (idx = wolfSSL_read(ssl, input, sizeof(input)-1))) {
- input[idx] = 0;
- printf("Server response: %s\n", input);
- }
- ((func_args*)args)->return_code = TEST_SUCCESS;
- }
-
- if (callbacks->on_result)
- callbacks->on_result(ssl);
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
- CloseSocket(sfd);
-
-#ifdef WOLFSSL_TIRTOS
- fdCloseSession(Task_self());
-#endif
-}
-
-#endif /* defined(HAVE_SNI) || defined(HAVE_ALPN) ||
- defined(WOLFSSL_SESSION_EXPORT) */
-
-static void test_wolfSSL_read_write(void)
-{
- /* The unit testing for read and write shall happen simultaneously, since
- * one can't do anything with one without the other. (Except for a failure
- * test case.) This function will call all the others that will set up,
- * execute, and report their test findings.
- *
- * Set up the success case first. This function will become the template
- * for the other tests. This should eventually be renamed
- *
- * The success case isn't interesting, how can this fail?
- * - Do not give the client context a CA certificate. The connect should
- * fail. Do not need server for this?
- * - Using NULL for the ssl object on server. Do not need client for this.
- * - Using NULL for the ssl object on client. Do not need server for this.
- * - Good ssl objects for client and server. Client write() without server
- * read().
- * - Good ssl objects for client and server. Server write() without client
- * read().
- * - Forgetting the password callback?
- */
- tcp_ready ready;
- func_args client_args;
- func_args server_args;
- THREAD_TYPE serverThread;
-
- XMEMSET(&client_args, 0, sizeof(func_args));
- XMEMSET(&server_args, 0, sizeof(func_args));
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- StartTCP();
- InitTcpReady(&ready);
-
-#if defined(USE_WINDOWS_API)
- /* use RNG to get random port if using windows */
- ready.port = GetRandomPort();
-#endif
-
- server_args.signal = &ready;
- client_args.signal = &ready;
-
- start_thread(test_server_nofail, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
- test_client_nofail(&client_args, NULL);
- join_thread(serverThread);
-
- AssertTrue(client_args.return_code);
- AssertTrue(server_args.return_code);
-
- FreeTcpReady(&ready);
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-}
-
-#if defined(OPENSSL_EXTRA) && !defined(NO_SESSION_CACHE) && !defined(WOLFSSL_TLS13)
-static void test_wolfSSL_reuse_WOLFSSLobj(void)
-{
- /* The unit test for session resumption by re-using WOLFSSL object.
- * WOLFSSL object is not cleared after first session. It re-use the obeject
- * for second connection.
- */
- tcp_ready ready;
- func_args client_args;
- func_args server_args;
- THREAD_TYPE serverThread;
-
- XMEMSET(&client_args, 0, sizeof(func_args));
- XMEMSET(&server_args, 0, sizeof(func_args));
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- StartTCP();
- InitTcpReady(&ready);
-
-#if defined(USE_WINDOWS_API)
- /* use RNG to get random port if using windows */
- ready.port = GetRandomPort();
-#endif
-
- server_args.signal = &ready;
- client_args.signal = &ready;
- /* the var is used for loop number */
- server_args.argc = 2;
-
- start_thread(test_server_loop, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
- test_client_reuse_WOLFSSLobj(&client_args, NULL, &server_args);
- join_thread(serverThread);
-
- AssertTrue(client_args.return_code);
- AssertTrue(server_args.return_code);
-
- FreeTcpReady(&ready);
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-}
-#endif /* defined(OPENSSL_EXTRA) && !defined(NO_SESSION_CACHE) && !defined(WOLFSSL_TLS13) */
-
-#if defined(WOLFSSL_DTLS) && defined(WOLFSSL_SESSION_EXPORT)
-/* canned export of a session using older version 3 */
-static unsigned char version_3[] = {
- 0xA5, 0xA3, 0x01, 0x87, 0x00, 0x3b, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x80, 0x0C, 0x00, 0x00, 0x00,
- 0x00, 0x80, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x30, 0x05,
- 0x09, 0x0A, 0x01, 0x01, 0x00, 0x0D, 0x05, 0xFE,
- 0xFD, 0x01, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x06, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x06, 0x00, 0x01, 0x00, 0x07, 0x00, 0x00, 0x00,
- 0x30, 0x00, 0x00, 0x00, 0x10, 0x01, 0x01, 0x00,
- 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3F, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x05, 0x12,
- 0xCF, 0x22, 0xA1, 0x9F, 0x1C, 0x39, 0x1D, 0x31,
- 0x11, 0x12, 0x1D, 0x11, 0x18, 0x0D, 0x0B, 0xF3,
- 0xE1, 0x4D, 0xDC, 0xB1, 0xF1, 0x39, 0x98, 0x91,
- 0x6C, 0x48, 0xE5, 0xED, 0x11, 0x12, 0xA0, 0x00,
- 0xF2, 0x25, 0x4C, 0x09, 0x26, 0xD1, 0x74, 0xDF,
- 0x23, 0x40, 0x15, 0x6A, 0x42, 0x2A, 0x26, 0xA5,
- 0xAC, 0x56, 0xD5, 0x4A, 0x20, 0xB7, 0xE9, 0xEF,
- 0xEB, 0xAF, 0xA8, 0x1E, 0x23, 0x7C, 0x04, 0xAA,
- 0xA1, 0x6D, 0x92, 0x79, 0x7B, 0xFA, 0x80, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C,
- 0x79, 0x7B, 0xFA, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xAA, 0xA1, 0x6D, 0x92,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x00, 0x20, 0x00, 0x04, 0x00, 0x10,
- 0x00, 0x10, 0x08, 0x02, 0x05, 0x08, 0x01, 0x30,
- 0x28, 0x00, 0x00, 0x0F, 0x00, 0x02, 0x00, 0x09,
- 0x31, 0x32, 0x37, 0x2E, 0x30, 0x2E, 0x30, 0x2E,
- 0x31, 0xED, 0x4F
-};
-#endif /* defined(WOLFSSL_DTLS) && defined(WOLFSSL_SESSION_EXPORT) */
-
-static void test_wolfSSL_dtls_export(void)
-{
-#if defined(WOLFSSL_DTLS) && defined(WOLFSSL_SESSION_EXPORT)
- tcp_ready ready;
- func_args client_args;
- func_args server_args;
- THREAD_TYPE serverThread;
- callback_functions server_cbf;
- callback_functions client_cbf;
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- InitTcpReady(&ready);
-
-#if defined(USE_WINDOWS_API)
- /* use RNG to get random port if using windows */
- ready.port = GetRandomPort();
-#endif
-
- /* set using dtls */
- XMEMSET(&client_args, 0, sizeof(func_args));
- XMEMSET(&server_args, 0, sizeof(func_args));
- XMEMSET(&server_cbf, 0, sizeof(callback_functions));
- XMEMSET(&client_cbf, 0, sizeof(callback_functions));
- server_cbf.method = wolfDTLSv1_2_server_method;
- client_cbf.method = wolfDTLSv1_2_client_method;
- server_args.callbacks = &server_cbf;
- client_args.callbacks = &client_cbf;
-
- server_args.signal = &ready;
- client_args.signal = &ready;
-
- start_thread(run_wolfssl_server, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
- run_wolfssl_client(&client_args);
- join_thread(serverThread);
-
- AssertTrue(client_args.return_code);
- AssertTrue(server_args.return_code);
-
- FreeTcpReady(&ready);
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- {
- SOCKET_T sockfd = 0;
- WOLFSSL_CTX* ctx;
- WOLFSSL* ssl;
- char msg[64] = "hello wolfssl!";
- char reply[1024];
- int msgSz = (int)XSTRLEN(msg);
- byte *session, *window;
- unsigned int sessionSz, windowSz;
- struct sockaddr_in peerAddr;
- int i;
-
-
- /* Set ctx to DTLS 1.2 */
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfDTLSv1_2_server_method()));
- AssertNotNull(ssl = wolfSSL_new(ctx));
-
- /* test importing version 3 */
- AssertIntGE(wolfSSL_dtls_import(ssl, version_3, sizeof(version_3)), 0);
-
- /* test importing bad length and bad version */
- version_3[2] += 1;
- AssertIntLT(wolfSSL_dtls_import(ssl, version_3, sizeof(version_3)), 0);
- version_3[2] -= 1; version_3[1] = 0XA0;
- AssertIntLT(wolfSSL_dtls_import(ssl, version_3, sizeof(version_3)), 0);
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-
-
- /* check storing client state after connection and storing window only */
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- InitTcpReady(&ready);
-
-#if defined(USE_WINDOWS_API)
- /* use RNG to get random port if using windows */
- ready.port = GetRandomPort();
-#endif
-
- /* set using dtls */
- XMEMSET(&server_args, 0, sizeof(func_args));
- XMEMSET(&server_cbf, 0, sizeof(callback_functions));
- server_cbf.method = wolfDTLSv1_2_server_method;
- server_args.callbacks = &server_cbf;
- server_args.argc = 3; /* set loop_count to 3 */
-
-
- server_args.signal = &ready;
- start_thread(test_server_nofail, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
-
- /* create and connect with client */
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfDTLSv1_2_client_method()));
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CTX_load_verify_locations(ctx, caCertFile, 0));
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CTX_use_certificate_file(ctx, cliCertFile, SSL_FILETYPE_PEM));
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CTX_use_PrivateKey_file(ctx, cliKeyFile, SSL_FILETYPE_PEM));
- tcp_connect(&sockfd, wolfSSLIP, server_args.signal->port, 0, 0, NULL);
- AssertNotNull(ssl = wolfSSL_new(ctx));
- AssertIntEQ(wolfSSL_set_fd(ssl, sockfd), WOLFSSL_SUCCESS);
-
- /* store server information connected too */
- XMEMSET(&peerAddr, 0, sizeof(peerAddr));
- peerAddr.sin_family = AF_INET;
- peerAddr.sin_port = XHTONS(server_args.signal->port);
- wolfSSL_dtls_set_peer(ssl, &peerAddr, sizeof(peerAddr));
-
- AssertIntEQ(wolfSSL_connect(ssl), WOLFSSL_SUCCESS);
- AssertIntEQ(wolfSSL_dtls_export(ssl, NULL, &sessionSz), 0);
- session = (byte*)XMALLOC(sessionSz, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- AssertIntGT(wolfSSL_dtls_export(ssl, session, &sessionSz), 0);
- AssertIntEQ(wolfSSL_write(ssl, msg, msgSz), msgSz);
- AssertIntGT(wolfSSL_read(ssl, reply, sizeof(reply)), 0);
- AssertIntEQ(wolfSSL_dtls_export_state_only(ssl, NULL, &windowSz), 0);
- window = (byte*)XMALLOC(windowSz, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- AssertIntGT(wolfSSL_dtls_export_state_only(ssl, window, &windowSz), 0);
- wolfSSL_free(ssl);
-
- for (i = 1; i < server_args.argc; i++) {
- /* restore state */
- AssertNotNull(ssl = wolfSSL_new(ctx));
- AssertIntGT(wolfSSL_dtls_import(ssl, session, sessionSz), 0);
- AssertIntGT(wolfSSL_dtls_import(ssl, window, windowSz), 0);
- AssertIntEQ(wolfSSL_set_fd(ssl, sockfd), WOLFSSL_SUCCESS);
- AssertIntEQ(wolfSSL_write(ssl, msg, msgSz), msgSz);
- AssertIntGE(wolfSSL_read(ssl, reply, sizeof(reply)), 0);
- AssertIntGT(wolfSSL_dtls_export_state_only(ssl, window, &windowSz), 0);
- wolfSSL_free(ssl);
- }
- XFREE(session, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(window, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- wolfSSL_CTX_free(ctx);
-
- printf("done and waiting for server\n");
- join_thread(serverThread);
- AssertIntEQ(server_args.return_code, TEST_SUCCESS);
-
- FreeTcpReady(&ready);
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
- }
-
-
- printf(testingFmt, "wolfSSL_dtls_export()");
- printf(resultFmt, passed);
-#endif
-}
-
-/*----------------------------------------------------------------------------*
- | TLS extensions tests
- *----------------------------------------------------------------------------*/
-
-#if defined(HAVE_SNI) || defined(HAVE_ALPN)
-/* connection test runner */
-static void test_wolfSSL_client_server(callback_functions* client_callbacks,
- callback_functions* server_callbacks)
-{
- tcp_ready ready;
- func_args client_args;
- func_args server_args;
- THREAD_TYPE serverThread;
-
- XMEMSET(&client_args, 0, sizeof(func_args));
- XMEMSET(&server_args, 0, sizeof(func_args));
-
- StartTCP();
-
- client_args.callbacks = client_callbacks;
- server_args.callbacks = server_callbacks;
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- /* RUN Server side */
- InitTcpReady(&ready);
-
-#if defined(USE_WINDOWS_API)
- /* use RNG to get random port if using windows */
- ready.port = GetRandomPort();
-#endif
-
- server_args.signal = &ready;
- client_args.signal = &ready;
- start_thread(run_wolfssl_server, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
-
- /* RUN Client side */
- run_wolfssl_client(&client_args);
- join_thread(serverThread);
-
- FreeTcpReady(&ready);
-#ifdef WOLFSSL_TIRTOS
- fdCloseSession(Task_self());
-#endif
-}
-#endif /* defined(HAVE_SNI) || defined(HAVE_ALPN) */
-
-#ifdef HAVE_SNI
-static void test_wolfSSL_UseSNI_params(void)
-{
- WOLFSSL_CTX *ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
- WOLFSSL *ssl = wolfSSL_new(ctx);
-
- AssertNotNull(ctx);
- AssertNotNull(ssl);
-
- /* invalid [ctx|ssl] */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_UseSNI(NULL, 0, "ctx", 3));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseSNI( NULL, 0, "ssl", 3));
- /* invalid type */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_UseSNI(ctx, -1, "ctx", 3));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseSNI( ssl, -1, "ssl", 3));
- /* invalid data */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_UseSNI(ctx, 0, NULL, 3));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseSNI( ssl, 0, NULL, 3));
- /* success case */
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_UseSNI(ctx, 0, "ctx", 3));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseSNI( ssl, 0, "ssl", 3));
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-}
-
-/* BEGIN of connection tests callbacks */
-static void use_SNI_at_ctx(WOLFSSL_CTX* ctx)
-{
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CTX_UseSNI(ctx, WOLFSSL_SNI_HOST_NAME, "www.wolfssl.com", 15));
-}
-
-static void use_SNI_at_ssl(WOLFSSL* ssl)
-{
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_UseSNI(ssl, WOLFSSL_SNI_HOST_NAME, "www.wolfssl.com", 15));
-}
-
-static void different_SNI_at_ssl(WOLFSSL* ssl)
-{
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_UseSNI(ssl, WOLFSSL_SNI_HOST_NAME, "ww2.wolfssl.com", 15));
-}
-
-static void use_SNI_WITH_CONTINUE_at_ssl(WOLFSSL* ssl)
-{
- use_SNI_at_ssl(ssl);
- wolfSSL_SNI_SetOptions(ssl, WOLFSSL_SNI_HOST_NAME,
- WOLFSSL_SNI_CONTINUE_ON_MISMATCH);
-}
-
-static void use_SNI_WITH_FAKE_ANSWER_at_ssl(WOLFSSL* ssl)
-{
- use_SNI_at_ssl(ssl);
- wolfSSL_SNI_SetOptions(ssl, WOLFSSL_SNI_HOST_NAME,
- WOLFSSL_SNI_ANSWER_ON_MISMATCH);
-}
-
-static void use_MANDATORY_SNI_at_ctx(WOLFSSL_CTX* ctx)
-{
- use_SNI_at_ctx(ctx);
- wolfSSL_CTX_SNI_SetOptions(ctx, WOLFSSL_SNI_HOST_NAME,
- WOLFSSL_SNI_ABORT_ON_ABSENCE);
-}
-
-static void use_MANDATORY_SNI_at_ssl(WOLFSSL* ssl)
-{
- use_SNI_at_ssl(ssl);
- wolfSSL_SNI_SetOptions(ssl, WOLFSSL_SNI_HOST_NAME,
- WOLFSSL_SNI_ABORT_ON_ABSENCE);
-}
-
-static void use_PSEUDO_MANDATORY_SNI_at_ctx(WOLFSSL_CTX* ctx)
-{
- use_SNI_at_ctx(ctx);
- wolfSSL_CTX_SNI_SetOptions(ctx, WOLFSSL_SNI_HOST_NAME,
- WOLFSSL_SNI_ANSWER_ON_MISMATCH | WOLFSSL_SNI_ABORT_ON_ABSENCE);
-}
-
-static void verify_UNKNOWN_SNI_on_server(WOLFSSL* ssl)
-{
- AssertIntEQ(UNKNOWN_SNI_HOST_NAME_E, wolfSSL_get_error(ssl, 0));
-}
-
-static void verify_SNI_ABSENT_on_server(WOLFSSL* ssl)
-{
- AssertIntEQ(SNI_ABSENT_ERROR, wolfSSL_get_error(ssl, 0));
-}
-
-static void verify_SNI_no_matching(WOLFSSL* ssl)
-{
- byte type = WOLFSSL_SNI_HOST_NAME;
- char* request = (char*) &type; /* to be overwritten */
-
- AssertIntEQ(WOLFSSL_SNI_NO_MATCH, wolfSSL_SNI_Status(ssl, type));
- AssertNotNull(request);
- AssertIntEQ(0, wolfSSL_SNI_GetRequest(ssl, type, (void**) &request));
- AssertNull(request);
-}
-
-static void verify_SNI_real_matching(WOLFSSL* ssl)
-{
- byte type = WOLFSSL_SNI_HOST_NAME;
- char* request = NULL;
-
- AssertIntEQ(WOLFSSL_SNI_REAL_MATCH, wolfSSL_SNI_Status(ssl, type));
- AssertIntEQ(15, wolfSSL_SNI_GetRequest(ssl, type, (void**) &request));
- AssertNotNull(request);
- AssertStrEQ("www.wolfssl.com", request);
-}
-
-static void verify_SNI_fake_matching(WOLFSSL* ssl)
-{
- byte type = WOLFSSL_SNI_HOST_NAME;
- char* request = NULL;
-
- AssertIntEQ(WOLFSSL_SNI_FAKE_MATCH, wolfSSL_SNI_Status(ssl, type));
- AssertIntEQ(15, wolfSSL_SNI_GetRequest(ssl, type, (void**) &request));
- AssertNotNull(request);
- AssertStrEQ("ww2.wolfssl.com", request);
-}
-
-static void verify_FATAL_ERROR_on_client(WOLFSSL* ssl)
-{
- AssertIntEQ(FATAL_ERROR, wolfSSL_get_error(ssl, 0));
-}
-/* END of connection tests callbacks */
-
-static void test_wolfSSL_UseSNI_connection(void)
-{
- unsigned long i;
- callback_functions callbacks[] = {
- /* success case at ctx */
- {0, use_SNI_at_ctx, 0, 0, 0},
- {0, use_SNI_at_ctx, 0, verify_SNI_real_matching, 0},
-
- /* success case at ssl */
- {0, 0, use_SNI_at_ssl, verify_SNI_real_matching, 0},
- {0, 0, use_SNI_at_ssl, verify_SNI_real_matching, 0},
-
- /* default mismatch behavior */
- {0, 0, different_SNI_at_ssl, verify_FATAL_ERROR_on_client, 0},
- {0, 0, use_SNI_at_ssl, verify_UNKNOWN_SNI_on_server, 0},
-
- /* continue on mismatch */
- {0, 0, different_SNI_at_ssl, 0, 0},
- {0, 0, use_SNI_WITH_CONTINUE_at_ssl, verify_SNI_no_matching, 0},
-
- /* fake answer on mismatch */
- {0, 0, different_SNI_at_ssl, 0, 0},
- {0, 0, use_SNI_WITH_FAKE_ANSWER_at_ssl, verify_SNI_fake_matching, 0},
-
- /* sni abort - success */
- {0, use_SNI_at_ctx, 0, 0, 0},
- {0, use_MANDATORY_SNI_at_ctx, 0, verify_SNI_real_matching, 0},
-
- /* sni abort - abort when absent (ctx) */
- {0, 0, 0, verify_FATAL_ERROR_on_client, 0},
- {0, use_MANDATORY_SNI_at_ctx, 0, verify_SNI_ABSENT_on_server, 0},
-
- /* sni abort - abort when absent (ssl) */
- {0, 0, 0, verify_FATAL_ERROR_on_client, 0},
- {0, 0, use_MANDATORY_SNI_at_ssl, verify_SNI_ABSENT_on_server, 0},
-
- /* sni abort - success when overwritten */
- {0, 0, 0, 0, 0},
- {0, use_MANDATORY_SNI_at_ctx, use_SNI_at_ssl, verify_SNI_no_matching, 0},
-
- /* sni abort - success when allowing mismatches */
- {0, 0, different_SNI_at_ssl, 0, 0},
- {0, use_PSEUDO_MANDATORY_SNI_at_ctx, 0, verify_SNI_fake_matching, 0},
- };
-
- for (i = 0; i < sizeof(callbacks) / sizeof(callback_functions); i += 2) {
- callbacks[i ].method = wolfSSLv23_client_method;
- callbacks[i + 1].method = wolfSSLv23_server_method;
- test_wolfSSL_client_server(&callbacks[i], &callbacks[i + 1]);
- }
-}
-
-static void test_wolfSSL_SNI_GetFromBuffer(void)
-{
- byte buffer[] = { /* www.paypal.com */
- 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x60, 0x03, 0x03, 0x5c,
- 0xc4, 0xb3, 0x8c, 0x87, 0xef, 0xa4, 0x09, 0xe0, 0x02, 0xab, 0x86, 0xca,
- 0x76, 0xf0, 0x9e, 0x01, 0x65, 0xf6, 0xa6, 0x06, 0x13, 0x1d, 0x0f, 0xa5,
- 0x79, 0xb0, 0xd4, 0x77, 0x22, 0xeb, 0x1a, 0x00, 0x00, 0x16, 0x00, 0x6b,
- 0x00, 0x67, 0x00, 0x39, 0x00, 0x33, 0x00, 0x3d, 0x00, 0x3c, 0x00, 0x35,
- 0x00, 0x2f, 0x00, 0x05, 0x00, 0x04, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x21,
- 0x00, 0x00, 0x00, 0x13, 0x00, 0x11, 0x00, 0x00, 0x0e, 0x77, 0x77, 0x77,
- 0x2e, 0x70, 0x61, 0x79, 0x70, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x00,
- 0x0d, 0x00, 0x06, 0x00, 0x04, 0x04, 0x01, 0x02, 0x01
- };
-
- byte buffer2[] = { /* api.textmate.org */
- 0x16, 0x03, 0x01, 0x00, 0xc6, 0x01, 0x00, 0x00, 0xc2, 0x03, 0x03, 0x52,
- 0x8b, 0x7b, 0xca, 0x69, 0xec, 0x97, 0xd5, 0x08, 0x03, 0x50, 0xfe, 0x3b,
- 0x99, 0xc3, 0x20, 0xce, 0xa5, 0xf6, 0x99, 0xa5, 0x71, 0xf9, 0x57, 0x7f,
- 0x04, 0x38, 0xf6, 0x11, 0x0b, 0xb8, 0xd3, 0x00, 0x00, 0x5e, 0x00, 0xff,
- 0xc0, 0x24, 0xc0, 0x23, 0xc0, 0x0a, 0xc0, 0x09, 0xc0, 0x07, 0xc0, 0x08,
- 0xc0, 0x28, 0xc0, 0x27, 0xc0, 0x14, 0xc0, 0x13, 0xc0, 0x11, 0xc0, 0x12,
- 0xc0, 0x26, 0xc0, 0x25, 0xc0, 0x2a, 0xc0, 0x29, 0xc0, 0x05, 0xc0, 0x04,
- 0xc0, 0x02, 0xc0, 0x03, 0xc0, 0x0f, 0xc0, 0x0e, 0xc0, 0x0c, 0xc0, 0x0d,
- 0x00, 0x3d, 0x00, 0x3c, 0x00, 0x2f, 0x00, 0x05, 0x00, 0x04, 0x00, 0x35,
- 0x00, 0x0a, 0x00, 0x67, 0x00, 0x6b, 0x00, 0x33, 0x00, 0x39, 0x00, 0x16,
- 0x00, 0xaf, 0x00, 0xae, 0x00, 0x8d, 0x00, 0x8c, 0x00, 0x8a, 0x00, 0x8b,
- 0x00, 0xb1, 0x00, 0xb0, 0x00, 0x2c, 0x00, 0x3b, 0x01, 0x00, 0x00, 0x3b,
- 0x00, 0x00, 0x00, 0x15, 0x00, 0x13, 0x00, 0x00, 0x10, 0x61, 0x70, 0x69,
- 0x2e, 0x74, 0x65, 0x78, 0x74, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x6f, 0x72,
- 0x67, 0x00, 0x0a, 0x00, 0x08, 0x00, 0x06, 0x00, 0x17, 0x00, 0x18, 0x00,
- 0x19, 0x00, 0x0b, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0d, 0x00, 0x0c, 0x00,
- 0x0a, 0x05, 0x01, 0x04, 0x01, 0x02, 0x01, 0x04, 0x03, 0x02, 0x03
- };
-
- byte buffer3[] = { /* no sni extension */
- 0x16, 0x03, 0x03, 0x00, 0x4d, 0x01, 0x00, 0x00, 0x49, 0x03, 0x03, 0xea,
- 0xa1, 0x9f, 0x60, 0xdd, 0x52, 0x12, 0x13, 0xbd, 0x84, 0x34, 0xd5, 0x1c,
- 0x38, 0x25, 0xa8, 0x97, 0xd2, 0xd5, 0xc6, 0x45, 0xaf, 0x1b, 0x08, 0xe4,
- 0x1e, 0xbb, 0xdf, 0x9d, 0x39, 0xf0, 0x65, 0x00, 0x00, 0x16, 0x00, 0x6b,
- 0x00, 0x67, 0x00, 0x39, 0x00, 0x33, 0x00, 0x3d, 0x00, 0x3c, 0x00, 0x35,
- 0x00, 0x2f, 0x00, 0x05, 0x00, 0x04, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x0a,
- 0x00, 0x0d, 0x00, 0x06, 0x00, 0x04, 0x04, 0x01, 0x02, 0x01
- };
-
- byte buffer4[] = { /* last extension has zero size */
- 0x16, 0x03, 0x01, 0x00, 0xba, 0x01, 0x00, 0x00,
- 0xb6, 0x03, 0x03, 0x83, 0xa3, 0xe6, 0xdc, 0x16, 0xa1, 0x43, 0xe9, 0x45,
- 0x15, 0xbd, 0x64, 0xa9, 0xb6, 0x07, 0xb4, 0x50, 0xc6, 0xdd, 0xff, 0xc2,
- 0xd3, 0x0d, 0x4f, 0x36, 0xb4, 0x41, 0x51, 0x61, 0xc1, 0xa5, 0x9e, 0x00,
- 0x00, 0x28, 0xcc, 0x14, 0xcc, 0x13, 0xc0, 0x2b, 0xc0, 0x2f, 0x00, 0x9e,
- 0xc0, 0x0a, 0xc0, 0x09, 0xc0, 0x13, 0xc0, 0x14, 0xc0, 0x07, 0xc0, 0x11,
- 0x00, 0x33, 0x00, 0x32, 0x00, 0x39, 0x00, 0x9c, 0x00, 0x2f, 0x00, 0x35,
- 0x00, 0x0a, 0x00, 0x05, 0x00, 0x04, 0x01, 0x00, 0x00, 0x65, 0xff, 0x01,
- 0x00, 0x01, 0x00, 0x00, 0x0a, 0x00, 0x08, 0x00, 0x06, 0x00, 0x17, 0x00,
- 0x18, 0x00, 0x19, 0x00, 0x0b, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00,
- 0x00, 0x33, 0x74, 0x00, 0x00, 0x00, 0x10, 0x00, 0x1b, 0x00, 0x19, 0x06,
- 0x73, 0x70, 0x64, 0x79, 0x2f, 0x33, 0x08, 0x73, 0x70, 0x64, 0x79, 0x2f,
- 0x33, 0x2e, 0x31, 0x08, 0x68, 0x74, 0x74, 0x70, 0x2f, 0x31, 0x2e, 0x31,
- 0x75, 0x50, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x0d, 0x00, 0x12, 0x00, 0x10, 0x04, 0x01, 0x05, 0x01, 0x02,
- 0x01, 0x04, 0x03, 0x05, 0x03, 0x02, 0x03, 0x04, 0x02, 0x02, 0x02, 0x00,
- 0x12, 0x00, 0x00
- };
-
- byte buffer5[] = { /* SSL v2.0 client hello */
- 0x00, 0x2b, 0x01, 0x03, 0x01, 0x00, 0x09, 0x00, 0x00,
- /* dummy bytes bellow, just to pass size check */
- 0xb6, 0x03, 0x03, 0x83, 0xa3, 0xe6, 0xdc, 0x16, 0xa1, 0x43, 0xe9, 0x45,
- 0x15, 0xbd, 0x64, 0xa9, 0xb6, 0x07, 0xb4, 0x50, 0xc6, 0xdd, 0xff, 0xc2,
- 0xd3, 0x0d, 0x4f, 0x36, 0xb4, 0x41, 0x51, 0x61, 0xc1, 0xa5, 0x9e, 0x00,
- };
-
- byte result[32] = {0};
- word32 length = 32;
-
- AssertIntEQ(0, wolfSSL_SNI_GetFromBuffer(buffer4, sizeof(buffer4),
- 0, result, &length));
-
- AssertIntEQ(0, wolfSSL_SNI_GetFromBuffer(buffer3, sizeof(buffer3),
- 0, result, &length));
-
- AssertIntEQ(0, wolfSSL_SNI_GetFromBuffer(buffer2, sizeof(buffer2),
- 1, result, &length));
-
- AssertIntEQ(BUFFER_ERROR, wolfSSL_SNI_GetFromBuffer(buffer, sizeof(buffer),
- 0, result, &length));
- buffer[0] = 0x16;
-
- AssertIntEQ(BUFFER_ERROR, wolfSSL_SNI_GetFromBuffer(buffer, sizeof(buffer),
- 0, result, &length));
- buffer[1] = 0x03;
-
- AssertIntEQ(SNI_UNSUPPORTED, wolfSSL_SNI_GetFromBuffer(buffer,
- sizeof(buffer), 0, result, &length));
- buffer[2] = 0x03;
-
- AssertIntEQ(INCOMPLETE_DATA, wolfSSL_SNI_GetFromBuffer(buffer,
- sizeof(buffer), 0, result, &length));
- buffer[4] = 0x64;
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_SNI_GetFromBuffer(buffer, sizeof(buffer),
- 0, result, &length));
- result[length] = 0;
- AssertStrEQ("www.paypal.com", (const char*) result);
-
- length = 32;
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_SNI_GetFromBuffer(buffer2, sizeof(buffer2),
- 0, result, &length));
- result[length] = 0;
- AssertStrEQ("api.textmate.org", (const char*) result);
-
- /* SSL v2.0 tests */
- AssertIntEQ(SNI_UNSUPPORTED, wolfSSL_SNI_GetFromBuffer(buffer5,
- sizeof(buffer5), 0, result, &length));
-
- buffer5[2] = 0x02;
- AssertIntEQ(BUFFER_ERROR, wolfSSL_SNI_GetFromBuffer(buffer5,
- sizeof(buffer5), 0, result, &length));
-
- buffer5[2] = 0x01; buffer5[6] = 0x08;
- AssertIntEQ(BUFFER_ERROR, wolfSSL_SNI_GetFromBuffer(buffer5,
- sizeof(buffer5), 0, result, &length));
-
- buffer5[6] = 0x09; buffer5[8] = 0x01;
- AssertIntEQ(BUFFER_ERROR, wolfSSL_SNI_GetFromBuffer(buffer5,
- sizeof(buffer5), 0, result, &length));
-}
-
-#endif /* HAVE_SNI */
-
-static void test_wolfSSL_UseSNI(void)
-{
-#ifdef HAVE_SNI
- test_wolfSSL_UseSNI_params();
- test_wolfSSL_UseSNI_connection();
-
- test_wolfSSL_SNI_GetFromBuffer();
-#endif
-}
-
-#endif /* HAVE_IO_TESTS_DEPENDENCIES */
-
-static void test_wolfSSL_UseTrustedCA(void)
-{
-#if defined(HAVE_TRUSTED_CA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM)
- WOLFSSL_CTX *ctx;
- WOLFSSL *ssl;
- byte id[20];
-
-#ifndef NO_WOLFSSL_SERVER
- AssertNotNull((ctx = wolfSSL_CTX_new(wolfSSLv23_server_method())));
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, svrCertFile, SSL_FILETYPE_PEM));
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, SSL_FILETYPE_PEM));
-#else
- AssertNotNull((ctx = wolfSSL_CTX_new(wolfSSLv23_client_method())));
-#endif
- AssertNotNull((ssl = wolfSSL_new(ctx)));
- XMEMSET(id, 0, sizeof(id));
-
- /* error cases */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseTrustedCA(NULL, 0, NULL, 0));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseTrustedCA(ssl,
- WOLFSSL_TRUSTED_CA_CERT_SHA1+1, NULL, 0));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseTrustedCA(ssl,
- WOLFSSL_TRUSTED_CA_CERT_SHA1, NULL, 0));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseTrustedCA(ssl,
- WOLFSSL_TRUSTED_CA_CERT_SHA1, id, 5));
-#ifdef NO_SHA
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseTrustedCA(ssl,
- WOLFSSL_TRUSTED_CA_KEY_SHA1, id, sizeof(id)));
-#endif
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseTrustedCA(ssl,
- WOLFSSL_TRUSTED_CA_X509_NAME, id, 0));
-
- /* success cases */
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseTrustedCA(ssl,
- WOLFSSL_TRUSTED_CA_PRE_AGREED, NULL, 0));
-#ifndef NO_SHA
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseTrustedCA(ssl,
- WOLFSSL_TRUSTED_CA_KEY_SHA1, id, sizeof(id)));
-#endif
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseTrustedCA(ssl,
- WOLFSSL_TRUSTED_CA_X509_NAME, id, 5));
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-#endif /* HAVE_TRUSTED_CA */
-}
-
-static void test_wolfSSL_UseMaxFragment(void)
-{
-#if defined(HAVE_MAX_FRAGMENT) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM)
- #ifndef NO_WOLFSSL_SERVER
- WOLFSSL_CTX* ctx = wolfSSL_CTX_new(wolfSSLv23_server_method());
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, svrCertFile, SSL_FILETYPE_PEM));
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, SSL_FILETYPE_PEM));
- #else
- WOLFSSL_CTX* ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
- #endif
- WOLFSSL *ssl = wolfSSL_new(ctx);
-
- AssertNotNull(ctx);
- AssertNotNull(ssl);
-
- /* error cases */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_UseMaxFragment(NULL, WOLFSSL_MFL_2_9));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseMaxFragment( NULL, WOLFSSL_MFL_2_9));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_UseMaxFragment(ctx, WOLFSSL_MFL_MIN-1));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_UseMaxFragment(ctx, WOLFSSL_MFL_MAX+1));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseMaxFragment(ssl, WOLFSSL_MFL_MIN-1));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseMaxFragment(ssl, WOLFSSL_MFL_MAX+1));
-
- /* success case */
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_UseMaxFragment(ctx, WOLFSSL_MFL_2_8));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_UseMaxFragment(ctx, WOLFSSL_MFL_2_9));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_UseMaxFragment(ctx, WOLFSSL_MFL_2_10));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_UseMaxFragment(ctx, WOLFSSL_MFL_2_11));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_UseMaxFragment(ctx, WOLFSSL_MFL_2_12));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_UseMaxFragment(ctx, WOLFSSL_MFL_2_13));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseMaxFragment( ssl, WOLFSSL_MFL_2_8));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseMaxFragment( ssl, WOLFSSL_MFL_2_9));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseMaxFragment( ssl, WOLFSSL_MFL_2_10));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseMaxFragment( ssl, WOLFSSL_MFL_2_11));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseMaxFragment( ssl, WOLFSSL_MFL_2_12));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseMaxFragment( ssl, WOLFSSL_MFL_2_13));
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-static void test_wolfSSL_UseTruncatedHMAC(void)
-{
-#if defined(HAVE_TRUNCATED_HMAC) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM)
- #ifndef NO_WOLFSSL_SERVER
- WOLFSSL_CTX* ctx = wolfSSL_CTX_new(wolfSSLv23_server_method());
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, svrCertFile, SSL_FILETYPE_PEM));
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, SSL_FILETYPE_PEM));
- #else
- WOLFSSL_CTX* ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
- #endif
- WOLFSSL *ssl = wolfSSL_new(ctx);
-
- AssertNotNull(ctx);
- AssertNotNull(ssl);
-
- /* error cases */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_UseTruncatedHMAC(NULL));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseTruncatedHMAC(NULL));
-
- /* success case */
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_UseTruncatedHMAC(ctx));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseTruncatedHMAC(ssl));
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-static void test_wolfSSL_UseSupportedCurve(void)
-{
-#if defined(HAVE_SUPPORTED_CURVES) && !defined(NO_WOLFSSL_CLIENT) && !defined(NO_TLS)
- WOLFSSL_CTX* ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
- WOLFSSL *ssl = wolfSSL_new(ctx);
-
- AssertNotNull(ctx);
- AssertNotNull(ssl);
-
- /* error cases */
- AssertIntNE(WOLFSSL_SUCCESS,
- wolfSSL_CTX_UseSupportedCurve(NULL, WOLFSSL_ECC_SECP256R1));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_UseSupportedCurve(ctx, 0));
-
- AssertIntNE(WOLFSSL_SUCCESS,
- wolfSSL_UseSupportedCurve(NULL, WOLFSSL_ECC_SECP256R1));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseSupportedCurve(ssl, 0));
-
- /* success case */
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CTX_UseSupportedCurve(ctx, WOLFSSL_ECC_SECP256R1));
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_UseSupportedCurve(ssl, WOLFSSL_ECC_SECP256R1));
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-#if defined(HAVE_ALPN) && !defined(NO_WOLFSSL_SERVER) && \
- defined(HAVE_IO_TESTS_DEPENDENCIES)
-
-static void verify_ALPN_FATAL_ERROR_on_client(WOLFSSL* ssl)
-{
- AssertIntEQ(UNKNOWN_ALPN_PROTOCOL_NAME_E, wolfSSL_get_error(ssl, 0));
-}
-
-static void use_ALPN_all(WOLFSSL* ssl)
-{
- /* http/1.1,spdy/1,spdy/2,spdy/3 */
- char alpn_list[] = {0x68, 0x74, 0x74, 0x70, 0x2f, 0x31, 0x2e, 0x31, 0x2c,
- 0x73, 0x70, 0x64, 0x79, 0x2f, 0x31, 0x2c,
- 0x73, 0x70, 0x64, 0x79, 0x2f, 0x32, 0x2c,
- 0x73, 0x70, 0x64, 0x79, 0x2f, 0x33};
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseALPN(ssl, alpn_list, sizeof(alpn_list),
- WOLFSSL_ALPN_FAILED_ON_MISMATCH));
-}
-
-static void use_ALPN_all_continue(WOLFSSL* ssl)
-{
- /* http/1.1,spdy/1,spdy/2,spdy/3 */
- char alpn_list[] = {0x68, 0x74, 0x74, 0x70, 0x2f, 0x31, 0x2e, 0x31, 0x2c,
- 0x73, 0x70, 0x64, 0x79, 0x2f, 0x31, 0x2c,
- 0x73, 0x70, 0x64, 0x79, 0x2f, 0x32, 0x2c,
- 0x73, 0x70, 0x64, 0x79, 0x2f, 0x33};
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseALPN(ssl, alpn_list, sizeof(alpn_list),
- WOLFSSL_ALPN_CONTINUE_ON_MISMATCH));
-}
-
-static void use_ALPN_one(WOLFSSL* ssl)
-{
- /* spdy/2 */
- char proto[] = {0x73, 0x70, 0x64, 0x79, 0x2f, 0x32};
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseALPN(ssl, proto, sizeof(proto),
- WOLFSSL_ALPN_FAILED_ON_MISMATCH));
-}
-
-static void use_ALPN_unknown(WOLFSSL* ssl)
-{
- /* http/2.0 */
- char proto[] = {0x68, 0x74, 0x74, 0x70, 0x2f, 0x32, 0x2e, 0x30};
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseALPN(ssl, proto, sizeof(proto),
- WOLFSSL_ALPN_FAILED_ON_MISMATCH));
-}
-
-static void use_ALPN_unknown_continue(WOLFSSL* ssl)
-{
- /* http/2.0 */
- char proto[] = {0x68, 0x74, 0x74, 0x70, 0x2f, 0x32, 0x2e, 0x30};
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseALPN(ssl, proto, sizeof(proto),
- WOLFSSL_ALPN_CONTINUE_ON_MISMATCH));
-}
-
-static void verify_ALPN_not_matching_spdy3(WOLFSSL* ssl)
-{
- /* spdy/3 */
- char nego_proto[] = {0x73, 0x70, 0x64, 0x79, 0x2f, 0x33};
-
- char *proto = NULL;
- word16 protoSz = 0;
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_ALPN_GetProtocol(ssl, &proto, &protoSz));
-
- /* check value */
- AssertIntNE(1, sizeof(nego_proto) == protoSz);
- if (proto) {
- AssertIntNE(0, XMEMCMP(nego_proto, proto, sizeof(nego_proto)));
- }
-}
-
-static void verify_ALPN_not_matching_continue(WOLFSSL* ssl)
-{
- char *proto = NULL;
- word16 protoSz = 0;
-
- AssertIntEQ(WOLFSSL_ALPN_NOT_FOUND,
- wolfSSL_ALPN_GetProtocol(ssl, &proto, &protoSz));
-
- /* check value */
- AssertIntEQ(1, (0 == protoSz));
- AssertIntEQ(1, (NULL == proto));
-}
-
-static void verify_ALPN_matching_http1(WOLFSSL* ssl)
-{
- /* http/1.1 */
- char nego_proto[] = {0x68, 0x74, 0x74, 0x70, 0x2f, 0x31, 0x2e, 0x31};
- char *proto;
- word16 protoSz = 0;
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_ALPN_GetProtocol(ssl, &proto, &protoSz));
-
- /* check value */
- AssertIntEQ(1, sizeof(nego_proto) == protoSz);
- AssertIntEQ(0, XMEMCMP(nego_proto, proto, protoSz));
-}
-
-static void verify_ALPN_matching_spdy2(WOLFSSL* ssl)
-{
- /* spdy/2 */
- char nego_proto[] = {0x73, 0x70, 0x64, 0x79, 0x2f, 0x32};
- char *proto;
- word16 protoSz = 0;
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_ALPN_GetProtocol(ssl, &proto, &protoSz));
-
- /* check value */
- AssertIntEQ(1, sizeof(nego_proto) == protoSz);
- AssertIntEQ(0, XMEMCMP(nego_proto, proto, protoSz));
-}
-
-static void verify_ALPN_client_list(WOLFSSL* ssl)
-{
- /* http/1.1,spdy/1,spdy/2,spdy/3 */
- char alpn_list[] = {0x68, 0x74, 0x74, 0x70, 0x2f, 0x31, 0x2e, 0x31, 0x2c,
- 0x73, 0x70, 0x64, 0x79, 0x2f, 0x31, 0x2c,
- 0x73, 0x70, 0x64, 0x79, 0x2f, 0x32, 0x2c,
- 0x73, 0x70, 0x64, 0x79, 0x2f, 0x33};
- char *clist = NULL;
- word16 clistSz = 0;
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_ALPN_GetPeerProtocol(ssl, &clist,
- &clistSz));
-
- /* check value */
- AssertIntEQ(1, sizeof(alpn_list) == clistSz);
- AssertIntEQ(0, XMEMCMP(alpn_list, clist, clistSz));
-
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_ALPN_FreePeerProtocol(ssl, &clist));
-}
-
-static void test_wolfSSL_UseALPN_connection(void)
-{
- unsigned long i;
- callback_functions callbacks[] = {
- /* success case same list */
- {0, 0, use_ALPN_all, 0, 0},
- {0, 0, use_ALPN_all, verify_ALPN_matching_http1, 0},
-
- /* success case only one for server */
- {0, 0, use_ALPN_all, 0, 0},
- {0, 0, use_ALPN_one, verify_ALPN_matching_spdy2, 0},
-
- /* success case only one for client */
- {0, 0, use_ALPN_one, 0, 0},
- {0, 0, use_ALPN_all, verify_ALPN_matching_spdy2, 0},
-
- /* success case none for client */
- {0, 0, 0, 0, 0},
- {0, 0, use_ALPN_all, 0, 0},
-
- /* success case mismatch behavior but option 'continue' set */
- {0, 0, use_ALPN_all_continue, verify_ALPN_not_matching_continue, 0},
- {0, 0, use_ALPN_unknown_continue, 0, 0},
-
- /* success case read protocol send by client */
- {0, 0, use_ALPN_all, 0, 0},
- {0, 0, use_ALPN_one, verify_ALPN_client_list, 0},
-
- /* mismatch behavior with same list
- * the first and only this one must be taken */
- {0, 0, use_ALPN_all, 0, 0},
- {0, 0, use_ALPN_all, verify_ALPN_not_matching_spdy3, 0},
-
- /* default mismatch behavior */
- {0, 0, use_ALPN_all, 0, 0},
- {0, 0, use_ALPN_unknown, verify_ALPN_FATAL_ERROR_on_client, 0},
- };
-
- for (i = 0; i < sizeof(callbacks) / sizeof(callback_functions); i += 2) {
- callbacks[i ].method = wolfSSLv23_client_method;
- callbacks[i + 1].method = wolfSSLv23_server_method;
- test_wolfSSL_client_server(&callbacks[i], &callbacks[i + 1]);
- }
-}
-
-static void test_wolfSSL_UseALPN_params(void)
-{
-#ifndef NO_WOLFSSL_CLIENT
- /* "http/1.1" */
- char http1[] = {0x68, 0x74, 0x74, 0x70, 0x2f, 0x31, 0x2e, 0x31};
- /* "spdy/1" */
- char spdy1[] = {0x73, 0x70, 0x64, 0x79, 0x2f, 0x31};
- /* "spdy/2" */
- char spdy2[] = {0x73, 0x70, 0x64, 0x79, 0x2f, 0x32};
- /* "spdy/3" */
- char spdy3[] = {0x73, 0x70, 0x64, 0x79, 0x2f, 0x33};
- char buff[256];
- word32 idx;
-
- WOLFSSL_CTX *ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
- WOLFSSL *ssl = wolfSSL_new(ctx);
-
- AssertNotNull(ctx);
- AssertNotNull(ssl);
-
- /* error cases */
- AssertIntNE(WOLFSSL_SUCCESS,
- wolfSSL_UseALPN(NULL, http1, sizeof(http1),
- WOLFSSL_ALPN_FAILED_ON_MISMATCH));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseALPN(ssl, NULL, 0,
- WOLFSSL_ALPN_FAILED_ON_MISMATCH));
-
- /* success case */
- /* http1 only */
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_UseALPN(ssl, http1, sizeof(http1),
- WOLFSSL_ALPN_FAILED_ON_MISMATCH));
-
- /* http1, spdy1 */
- XMEMCPY(buff, http1, sizeof(http1));
- idx = sizeof(http1);
- buff[idx++] = ',';
- XMEMCPY(buff+idx, spdy1, sizeof(spdy1));
- idx += sizeof(spdy1);
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseALPN(ssl, buff, idx,
- WOLFSSL_ALPN_FAILED_ON_MISMATCH));
-
- /* http1, spdy2, spdy1 */
- XMEMCPY(buff, http1, sizeof(http1));
- idx = sizeof(http1);
- buff[idx++] = ',';
- XMEMCPY(buff+idx, spdy2, sizeof(spdy2));
- idx += sizeof(spdy2);
- buff[idx++] = ',';
- XMEMCPY(buff+idx, spdy1, sizeof(spdy1));
- idx += sizeof(spdy1);
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseALPN(ssl, buff, idx,
- WOLFSSL_ALPN_FAILED_ON_MISMATCH));
-
- /* spdy3, http1, spdy2, spdy1 */
- XMEMCPY(buff, spdy3, sizeof(spdy3));
- idx = sizeof(spdy3);
- buff[idx++] = ',';
- XMEMCPY(buff+idx, http1, sizeof(http1));
- idx += sizeof(http1);
- buff[idx++] = ',';
- XMEMCPY(buff+idx, spdy2, sizeof(spdy2));
- idx += sizeof(spdy2);
- buff[idx++] = ',';
- XMEMCPY(buff+idx, spdy1, sizeof(spdy1));
- idx += sizeof(spdy1);
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseALPN(ssl, buff, idx,
- WOLFSSL_ALPN_CONTINUE_ON_MISMATCH));
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-#endif
-}
-#endif /* HAVE_ALPN */
-
-static void test_wolfSSL_UseALPN(void)
-{
-#if defined(HAVE_ALPN) && !defined(NO_WOLFSSL_SERVER) &&\
- defined(HAVE_IO_TESTS_DEPENDENCIES)
- test_wolfSSL_UseALPN_connection();
- test_wolfSSL_UseALPN_params();
-#endif
-}
-
-static void test_wolfSSL_DisableExtendedMasterSecret(void)
-{
-#if defined(HAVE_EXTENDED_MASTER) && !defined(NO_WOLFSSL_CLIENT)
- WOLFSSL_CTX *ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
- WOLFSSL *ssl = wolfSSL_new(ctx);
-
- AssertNotNull(ctx);
- AssertNotNull(ssl);
-
- /* error cases */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_DisableExtendedMasterSecret(NULL));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_DisableExtendedMasterSecret(NULL));
-
- /* success cases */
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_DisableExtendedMasterSecret(ctx));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_DisableExtendedMasterSecret(ssl));
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-static void test_wolfSSL_wolfSSL_UseSecureRenegotiation(void)
-{
-#if defined(HAVE_SECURE_RENEGOTIATION) && !defined(NO_WOLFSSL_CLIENT)
- WOLFSSL_CTX *ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
- WOLFSSL *ssl = wolfSSL_new(ctx);
-
- AssertNotNull(ctx);
- AssertNotNull(ssl);
-
- /* error cases */
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_CTX_UseSecureRenegotiation(NULL));
- AssertIntNE(WOLFSSL_SUCCESS, wolfSSL_UseSecureRenegotiation(NULL));
-
- /* success cases */
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_UseSecureRenegotiation(ctx));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_UseSecureRenegotiation(ssl));
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-
-/*----------------------------------------------------------------------------*
- | X509 Tests
- *----------------------------------------------------------------------------*/
-static void test_wolfSSL_X509_NAME_get_entry(void)
-{
-#if !defined(NO_CERTS) && !defined(NO_RSA)
-#if defined(OPENSSL_ALL) || \
- (defined(OPENSSL_EXTRA) && \
- (defined(KEEP_PEER_CERT) || defined(SESSION_CERTS)))
- printf(testingFmt, "wolfSSL_X509_NAME_get_entry()");
-
- {
- /* use openssl like name to test mapping */
- X509_NAME_ENTRY* ne;
- X509_NAME* name;
- X509* x509;
- #ifndef NO_FILESYSTEM
- ASN1_STRING* asn;
- char* subCN = NULL;
- #endif
- int idx;
- ASN1_OBJECT *object = NULL;
-#if defined(WOLFSSL_APACHE_HTTPD) || defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX)
- BIO* bio;
-#endif
-
- #ifndef NO_FILESYSTEM
- x509 = wolfSSL_X509_load_certificate_file(cliCertFile, WOLFSSL_FILETYPE_PEM);
- AssertNotNull(x509);
- name = X509_get_subject_name(x509);
- idx = X509_NAME_get_index_by_NID(name, NID_commonName, -1);
- AssertIntGE(idx, 0);
- ne = X509_NAME_get_entry(name, idx);
- AssertNotNull(ne);
- asn = X509_NAME_ENTRY_get_data(ne);
- AssertNotNull(asn);
- subCN = (char*)ASN1_STRING_data(asn);
- AssertNotNull(subCN);
- wolfSSL_FreeX509(x509);
- #endif
-
- x509 = wolfSSL_X509_load_certificate_file(cliCertFile, WOLFSSL_FILETYPE_PEM);
- AssertNotNull(x509);
- name = X509_get_subject_name(x509);
- idx = X509_NAME_get_index_by_NID(name, NID_commonName, -1);
- AssertIntGE(idx, 0);
-
-#if defined(WOLFSSL_APACHE_HTTPD) || defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX)
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- AssertIntEQ(X509_NAME_print_ex(bio, name, 4,
- (XN_FLAG_RFC2253 & ~XN_FLAG_DN_REV)), WOLFSSL_SUCCESS);
- BIO_free(bio);
-#endif
-
- ne = X509_NAME_get_entry(name, idx);
- AssertNotNull(ne);
- AssertNotNull(object = X509_NAME_ENTRY_get_object(ne));
- wolfSSL_FreeX509(x509);
- }
-
- printf(resultFmt, passed);
-#endif /* OPENSSL_ALL || (OPENSSL_EXTRA && (KEEP_PEER_CERT || SESSION_CERTS) */
-#endif /* !NO_CERTS && !NO_RSA */
-}
-
-/* Testing functions dealing with PKCS12 parsing out X509 certs */
-static void test_wolfSSL_PKCS12(void)
-{
- /* .p12 file is encrypted with DES3 */
-#ifndef HAVE_FIPS /* Password used in cert "wolfSSL test" is only 12-bytes
- * (96-bit) FIPS mode requires Minimum of 14-byte (112-bit)
- * Password Key
- */
-#if defined(OPENSSL_EXTRA) && !defined(NO_DES3) && !defined(NO_FILESYSTEM) && \
- !defined(NO_ASN) && !defined(NO_PWDBASED) && !defined(NO_RSA) && \
- !defined(NO_SHA)
- byte buffer[5300];
- char file[] = "./certs/test-servercert.p12";
- char order[] = "./certs/ecc-rsa-server.p12";
- char pass[] = "a password";
-#ifdef HAVE_ECC
- WOLFSSL_X509_NAME* subject;
- WOLFSSL_X509 *x509;
-#endif
- XFILE f;
- int bytes, ret;
- WOLFSSL_BIO *bio;
- WOLFSSL_EVP_PKEY *pkey;
- WC_PKCS12 *pkcs12;
- WC_PKCS12 *pkcs12_2;
- WOLFSSL_X509 *cert;
- WOLFSSL_X509 *tmp;
- WOLF_STACK_OF(WOLFSSL_X509) *ca;
-#if defined(OPENSSL_ALL) || defined(WOLFSSL_ASIO) || defined(WOLFSSL_HAPROXY) \
- || defined(WOLFSSL_NGINX)
- WOLFSSL_CTX *ctx;
- WOLFSSL *ssl;
- WOLF_STACK_OF(WOLFSSL_X509) *tmp_ca = NULL;
-#endif
-
- printf(testingFmt, "wolfSSL_PKCS12()");
-
- f = XFOPEN(file, "rb");
- AssertTrue((f != XBADFILE));
- bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f);
- XFCLOSE(f);
-
- bio = BIO_new_mem_buf((void*)buffer, bytes);
- AssertNotNull(bio);
-
- pkcs12 = d2i_PKCS12_bio(bio, NULL);
- AssertNotNull(pkcs12);
- PKCS12_free(pkcs12);
-
- d2i_PKCS12_bio(bio, &pkcs12);
- AssertNotNull(pkcs12);
- BIO_free(bio);
-
- /* check verify MAC fail case */
- ret = PKCS12_parse(pkcs12, "bad", &pkey, &cert, NULL);
- AssertIntEQ(ret, 0);
- AssertNull(pkey);
- AssertNull(cert);
-
- /* check parse with no extra certs kept */
- ret = PKCS12_parse(pkcs12, "wolfSSL test", &pkey, &cert, NULL);
- AssertIntEQ(ret, 1);
- AssertNotNull(pkey);
- AssertNotNull(cert);
-
- wolfSSL_EVP_PKEY_free(pkey);
- wolfSSL_X509_free(cert);
-
- /* check parse with extra certs kept */
- ret = PKCS12_parse(pkcs12, "wolfSSL test", &pkey, &cert, &ca);
- AssertIntEQ(ret, 1);
- AssertNotNull(pkey);
- AssertNotNull(cert);
- AssertNotNull(ca);
-
-#if defined(OPENSSL_ALL) || defined(WOLFSSL_ASIO) || defined(WOLFSSL_HAPROXY) \
- || defined(WOLFSSL_NGINX)
-
- /* Check that SSL_CTX_set0_chain correctly sets the certChain buffer */
-#ifndef NO_WOLFSSL_CLIENT
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-#else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
-#endif
- /* Copy stack structure */
- AssertNotNull(tmp_ca = sk_X509_dup(ca));
- AssertIntEQ(SSL_CTX_set0_chain(ctx, tmp_ca), 1);
- /* CTX now owns the tmp_ca stack structure */
- tmp_ca = NULL;
- AssertIntEQ(wolfSSL_CTX_get_extra_chain_certs(ctx, &tmp_ca), 1);
- AssertNotNull(tmp_ca);
- AssertIntEQ(sk_X509_num(tmp_ca), sk_X509_num(ca));
- /* Check that the main cert is also set */
- AssertNotNull(ssl = SSL_new(ctx));
- AssertNotNull(SSL_get_certificate(ssl));
- SSL_free(ssl);
- SSL_CTX_free(ctx);
-#endif
-
- /* should be 2 other certs on stack */
- tmp = sk_X509_pop(ca);
- AssertNotNull(tmp);
- X509_free(tmp);
- tmp = sk_X509_pop(ca);
- AssertNotNull(tmp);
- X509_free(tmp);
- AssertNull(sk_X509_pop(ca));
-
- EVP_PKEY_free(pkey);
- X509_free(cert);
- sk_X509_pop_free(ca, X509_free);
-
- /* check PKCS12_create */
- AssertNull(PKCS12_create(pass, NULL, NULL, NULL, NULL, -1, -1, -1, -1,0));
- AssertIntEQ(PKCS12_parse(pkcs12, "wolfSSL test", &pkey, &cert, &ca),
- SSL_SUCCESS);
- AssertNotNull((pkcs12_2 = PKCS12_create(pass, NULL, pkey, cert, ca,
- -1, -1, 100, -1, 0)));
- EVP_PKEY_free(pkey);
- X509_free(cert);
- sk_X509_free(ca);
-
- AssertIntEQ(PKCS12_parse(pkcs12_2, "a password", &pkey, &cert, &ca),
- SSL_SUCCESS);
- PKCS12_free(pkcs12_2);
- AssertNotNull((pkcs12_2 = PKCS12_create(pass, NULL, pkey, cert, ca,
- NID_pbe_WithSHA1And3_Key_TripleDES_CBC,
- NID_pbe_WithSHA1And3_Key_TripleDES_CBC,
- 2000, 1, 0)));
- EVP_PKEY_free(pkey);
- X509_free(cert);
- sk_X509_free(ca);
-
- /* convert to DER then back and parse */
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- AssertIntEQ(i2d_PKCS12_bio(bio, pkcs12_2), SSL_SUCCESS);
- PKCS12_free(pkcs12_2);
-
- AssertNotNull(pkcs12_2 = d2i_PKCS12_bio(bio, NULL));
- BIO_free(bio);
- AssertIntEQ(PKCS12_parse(pkcs12_2, "a password", &pkey, &cert, &ca),
- SSL_SUCCESS);
-
- /* should be 2 other certs on stack */
- tmp = sk_X509_pop(ca);
- AssertNotNull(tmp);
- X509_free(tmp);
- tmp = sk_X509_pop(ca);
- AssertNotNull(tmp);
- X509_free(tmp);
- AssertNull(sk_X509_pop(ca));
-
-
-#ifndef NO_RC4
- PKCS12_free(pkcs12_2);
- AssertNotNull((pkcs12_2 = PKCS12_create(pass, NULL, pkey, cert, NULL,
- NID_pbe_WithSHA1And128BitRC4,
- NID_pbe_WithSHA1And128BitRC4,
- 2000, 1, 0)));
- EVP_PKEY_free(pkey);
- X509_free(cert);
- sk_X509_free(ca);
-
- AssertIntEQ(PKCS12_parse(pkcs12_2, "a password", &pkey, &cert, &ca),
- SSL_SUCCESS);
-
-#endif /* NO_RC4 */
-
- EVP_PKEY_free(pkey);
- X509_free(cert);
- PKCS12_free(pkcs12);
- PKCS12_free(pkcs12_2);
- sk_X509_free(ca);
-
-#ifdef HAVE_ECC
- /* test order of parsing */
- f = XFOPEN(order, "rb");
- AssertTrue(f != XBADFILE);
- bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f);
- XFCLOSE(f);
-
- AssertNotNull(bio = BIO_new_mem_buf((void*)buffer, bytes));
- AssertNotNull(pkcs12 = d2i_PKCS12_bio(bio, NULL));
- AssertIntEQ((ret = PKCS12_parse(pkcs12, "", &pkey, &cert, &ca)),
- WOLFSSL_SUCCESS);
- AssertNotNull(pkey);
- AssertNotNull(cert);
- AssertNotNull(ca);
-
- /* compare subject lines of certificates */
- AssertNotNull(subject = wolfSSL_X509_get_subject_name(cert));
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_file(eccRsaCertFile,
- SSL_FILETYPE_PEM));
- AssertIntEQ(wolfSSL_X509_NAME_cmp((const WOLFSSL_X509_NAME*)subject,
- (const WOLFSSL_X509_NAME*)wolfSSL_X509_get_subject_name(x509)), 0);
- X509_free(x509);
-
- /* test expected fail case */
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_file(eccCertFile,
- SSL_FILETYPE_PEM));
- AssertIntNE(wolfSSL_X509_NAME_cmp((const WOLFSSL_X509_NAME*)subject,
- (const WOLFSSL_X509_NAME*)wolfSSL_X509_get_subject_name(x509)), 0);
- X509_free(x509);
- X509_free(cert);
-
- /* get subject line from ca stack */
- AssertNotNull(cert = sk_X509_pop(ca));
- AssertNotNull(subject = wolfSSL_X509_get_subject_name(cert));
-
- /* compare subject from certificate in ca to expected */
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_file(eccCertFile,
- SSL_FILETYPE_PEM));
- AssertIntEQ(wolfSSL_X509_NAME_cmp((const WOLFSSL_X509_NAME*)subject,
- (const WOLFSSL_X509_NAME*)wolfSSL_X509_get_subject_name(x509)), 0);
-
- EVP_PKEY_free(pkey);
- X509_free(x509);
- X509_free(cert);
- BIO_free(bio);
- PKCS12_free(pkcs12);
- sk_X509_free(ca); /* TEST d2i_PKCS12_fp */
-
- /* test order of parsing */
- f = XFOPEN(file, "rb");
- AssertTrue(f != XBADFILE);
- AssertNotNull(pkcs12 = d2i_PKCS12_fp(f, NULL));
- XFCLOSE(f);
-
- /* check verify MAC fail case */
- ret = PKCS12_parse(pkcs12, "bad", &pkey, &cert, NULL);
- AssertIntEQ(ret, 0);
- AssertNull(pkey);
- AssertNull(cert);
-
- /* check parse with no extra certs kept */
- ret = PKCS12_parse(pkcs12, "wolfSSL test", &pkey, &cert, NULL);
- AssertIntEQ(ret, 1);
- AssertNotNull(pkey);
- AssertNotNull(cert);
-
- wolfSSL_EVP_PKEY_free(pkey);
- wolfSSL_X509_free(cert);
-
- /* check parse with extra certs kept */
- ret = PKCS12_parse(pkcs12, "wolfSSL test", &pkey, &cert, &ca);
- AssertIntEQ(ret, 1);
- AssertNotNull(pkey);
- AssertNotNull(cert);
- AssertNotNull(ca);
-
- wolfSSL_EVP_PKEY_free(pkey);
- wolfSSL_X509_free(cert);
- sk_X509_free(ca);
-
- PKCS12_free(pkcs12);
-#endif /* HAVE_ECC */
-
- /* Test i2d_PKCS12_bio */
- f = XFOPEN(file, "rb");
- AssertTrue((f != XBADFILE));
- AssertNotNull(pkcs12 = d2i_PKCS12_fp(f, NULL));
- XFCLOSE(f);
-
- bio = BIO_new(BIO_s_mem());
- AssertNotNull(bio);
-
- ret = i2d_PKCS12_bio(bio, pkcs12);
- AssertIntEQ(ret, 1);
-
- ret = i2d_PKCS12_bio(NULL, pkcs12);
- AssertIntEQ(ret, 0);
-
- ret = i2d_PKCS12_bio(bio, NULL);
- AssertIntEQ(ret, 0);
-
- PKCS12_free(pkcs12);
- BIO_free(bio);
-
- (void)order;
-
- printf(resultFmt, passed);
-#endif /* OPENSSL_EXTRA */
-#endif /* HAVE_FIPS */
-}
-
-
-#if !defined(NO_FILESYSTEM) && !defined(NO_ASN) && defined(HAVE_PKCS8) && \
- defined(WOLFSSL_ENCRYPTED_KEYS) && !defined(NO_DES3) && !defined(NO_PWDBASED) && \
- (!defined(NO_RSA) || defined(HAVE_ECC)) && !defined(NO_MD5)
- #define TEST_PKCS8_ENC
-#endif
-
-#if !defined(NO_FILESYSTEM) && !defined(NO_ASN) && defined(HAVE_PKCS8) \
- && defined(HAVE_ECC) && defined(WOLFSSL_ENCRYPTED_KEYS)
-static WC_INLINE int FailTestCallBack(char* passwd, int sz, int rw, void* userdata)
-{
- (void)passwd;
- (void)sz;
- (void)rw;
- (void)userdata;
- Fail(("Password callback should not be called by default"),
- ("Password callback was called without attempting "
- "to first decipher private key without password."));
- return 0;
-}
-#endif
-
-static void test_wolfSSL_no_password_cb(void)
-{
-#if !defined(NO_FILESYSTEM) && !defined(NO_ASN) && defined(HAVE_PKCS8) \
- && defined(HAVE_ECC) && defined(WOLFSSL_ENCRYPTED_KEYS)
- WOLFSSL_CTX* ctx;
- byte buffer[FOURK_BUF];
- const char eccPkcs8PrivKeyDerFile[] = "./certs/ecc-privkeyPkcs8.der";
- const char eccPkcs8PrivKeyPemFile[] = "./certs/ecc-privkeyPkcs8.pem";
- XFILE f;
- int bytes;
-
- printf(testingFmt, "test_wolfSSL_no_password_cb()");
-
-#ifndef NO_WOLFSSL_CLIENT
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfTLS_client_method()));
-#else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfTLS_server_method()));
-#endif
- wolfSSL_CTX_set_default_passwd_cb(ctx, FailTestCallBack);
-
- AssertTrue((f = XFOPEN(eccPkcs8PrivKeyDerFile, "rb")) != XBADFILE);
- bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f);
- XFCLOSE(f);
- AssertIntLE(bytes, sizeof(buffer));
- AssertIntEQ(wolfSSL_CTX_use_PrivateKey_buffer(ctx, buffer, bytes,
- WOLFSSL_FILETYPE_ASN1), WOLFSSL_SUCCESS);
-
- AssertTrue((f = XFOPEN(eccPkcs8PrivKeyPemFile, "rb")) != XBADFILE);
- bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f);
- XFCLOSE(f);
- AssertIntLE(bytes, sizeof(buffer));
- AssertIntEQ(wolfSSL_CTX_use_PrivateKey_buffer(ctx, buffer, bytes,
- WOLFSSL_FILETYPE_PEM), WOLFSSL_SUCCESS);
-
- wolfSSL_CTX_free(ctx);
-
- printf(resultFmt, passed);
-#endif
-}
-
-#ifdef TEST_PKCS8_ENC
-/* for PKCS8 test case */
-static int PKCS8TestCallBack(char* passwd, int sz, int rw, void* userdata)
-{
- int flag = 0;
-
- (void)rw;
- if (userdata != NULL) {
- flag = *((int*)userdata); /* user set data */
- }
-
- switch (flag) {
- case 1: /* flag set for specific WOLFSSL_CTX structure, note userdata
- * can be anything the user wishes to be passed to the callback
- * associated with the WOLFSSL_CTX */
- XSTRNCPY(passwd, "yassl123", sz);
- return 8;
-
- default:
- return BAD_FUNC_ARG;
- }
-}
-#endif /* TEST_PKCS8_ENC */
-
-/* Testing functions dealing with PKCS8 */
-static void test_wolfSSL_PKCS8(void)
-{
-#if !defined(NO_FILESYSTEM) && !defined(NO_ASN) && defined(HAVE_PKCS8)
- byte buffer[FOURK_BUF];
- byte der[FOURK_BUF];
- #ifndef NO_RSA
- const char serverKeyPkcs8PemFile[] = "./certs/server-keyPkcs8.pem";
- const char serverKeyPkcs8DerFile[] = "./certs/server-keyPkcs8.der";
- #endif
- const char eccPkcs8PrivKeyPemFile[] = "./certs/ecc-privkeyPkcs8.pem";
- #ifdef HAVE_ECC
- const char eccPkcs8PrivKeyDerFile[] = "./certs/ecc-privkeyPkcs8.der";
- #endif
- XFILE f;
- int bytes;
- WOLFSSL_CTX* ctx;
-#ifdef HAVE_ECC
- int ret;
- ecc_key key;
- word32 x = 0;
-#endif
-#ifdef TEST_PKCS8_ENC
- #if !defined(NO_RSA) && !defined(NO_SHA)
- const char serverKeyPkcs8EncPemFile[] = "./certs/server-keyPkcs8Enc.pem";
- const char serverKeyPkcs8EncDerFile[] = "./certs/server-keyPkcs8Enc.der";
- #endif
- #if defined(HAVE_ECC) && !defined(NO_SHA)
- const char eccPkcs8EncPrivKeyPemFile[] = "./certs/ecc-keyPkcs8Enc.pem";
- const char eccPkcs8EncPrivKeyDerFile[] = "./certs/ecc-keyPkcs8Enc.der";
- #endif
- int flag;
-#endif
-
- printf(testingFmt, "wolfSSL_PKCS8()");
-
-#ifndef NO_WOLFSSL_CLIENT
- #ifndef WOLFSSL_NO_TLS12
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfTLSv1_2_client_method()));
- #else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfTLSv1_3_client_method()));
- #endif
-#else
- #ifndef WOLFSSL_NO_TLS12
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfTLSv1_2_server_method()));
- #else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfTLSv1_3_server_method()));
- #endif
-#endif
-
-#ifdef TEST_PKCS8_ENC
- wolfSSL_CTX_set_default_passwd_cb(ctx, PKCS8TestCallBack);
- wolfSSL_CTX_set_default_passwd_cb_userdata(ctx, (void*)&flag);
- flag = 1; /* used by password callback as return code */
-
- #if !defined(NO_RSA) && !defined(NO_SHA)
- /* test loading PEM PKCS8 encrypted file */
- f = XFOPEN(serverKeyPkcs8EncPemFile, "rb");
- AssertTrue((f != XBADFILE));
- bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f);
- XFCLOSE(f);
- AssertIntEQ(wolfSSL_CTX_use_PrivateKey_buffer(ctx, buffer, bytes,
- WOLFSSL_FILETYPE_PEM), WOLFSSL_SUCCESS);
-
- /* this next case should fail because of password callback return code */
- flag = 0; /* used by password callback as return code */
- AssertIntNE(wolfSSL_CTX_use_PrivateKey_buffer(ctx, buffer, bytes,
- WOLFSSL_FILETYPE_PEM), WOLFSSL_SUCCESS);
-
- /* decrypt PKCS8 PEM to key in DER format with not using WOLFSSL_CTX */
- AssertIntGT(wc_KeyPemToDer(buffer, bytes, der, (word32)sizeof(der),
- "yassl123"), 0);
-
- /* test that error value is returned with a bad password */
- AssertIntLT(wc_KeyPemToDer(buffer, bytes, der, (word32)sizeof(der),
- "bad"), 0);
-
- /* test loading PEM PKCS8 encrypted file */
- f = XFOPEN(serverKeyPkcs8EncDerFile, "rb");
- AssertTrue((f != XBADFILE));
- bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f);
- XFCLOSE(f);
- flag = 1; /* used by password callback as return code */
- AssertIntEQ(wolfSSL_CTX_use_PrivateKey_buffer(ctx, buffer, bytes,
- WOLFSSL_FILETYPE_ASN1), WOLFSSL_SUCCESS);
-
- /* this next case should fail because of password callback return code */
- flag = 0; /* used by password callback as return code */
- AssertIntNE(wolfSSL_CTX_use_PrivateKey_buffer(ctx, buffer, bytes,
- WOLFSSL_FILETYPE_ASN1), WOLFSSL_SUCCESS);
- #endif /* !NO_RSA && !NO_SHA */
-
- #if defined(HAVE_ECC) && !defined(NO_SHA)
- /* test loading PEM PKCS8 encrypted ECC Key file */
- f = XFOPEN(eccPkcs8EncPrivKeyPemFile, "rb");
- AssertTrue((f != XBADFILE));
- bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f);
- XFCLOSE(f);
- flag = 1; /* used by password callback as return code */
- AssertIntEQ(wolfSSL_CTX_use_PrivateKey_buffer(ctx, buffer, bytes,
- WOLFSSL_FILETYPE_PEM), WOLFSSL_SUCCESS);
-
- /* this next case should fail because of password callback return code */
- flag = 0; /* used by password callback as return code */
- AssertIntNE(wolfSSL_CTX_use_PrivateKey_buffer(ctx, buffer, bytes,
- WOLFSSL_FILETYPE_PEM), WOLFSSL_SUCCESS);
-
- /* decrypt PKCS8 PEM to key in DER format with not using WOLFSSL_CTX */
- AssertIntGT(wc_KeyPemToDer(buffer, bytes, der, (word32)sizeof(der),
- "yassl123"), 0);
-
- /* test that error value is returned with a bad password */
- AssertIntLT(wc_KeyPemToDer(buffer, bytes, der, (word32)sizeof(der),
- "bad"), 0);
-
- /* test loading DER PKCS8 encrypted ECC Key file */
- f = XFOPEN(eccPkcs8EncPrivKeyDerFile, "rb");
- AssertTrue((f != XBADFILE));
- bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f);
- XFCLOSE(f);
- flag = 1; /* used by password callback as return code */
- AssertIntEQ(wolfSSL_CTX_use_PrivateKey_buffer(ctx, buffer, bytes,
- WOLFSSL_FILETYPE_ASN1), WOLFSSL_SUCCESS);
-
- /* this next case should fail because of password callback return code */
- flag = 0; /* used by password callback as return code */
- AssertIntNE(wolfSSL_CTX_use_PrivateKey_buffer(ctx, buffer, bytes,
- WOLFSSL_FILETYPE_ASN1), WOLFSSL_SUCCESS);
-
- /* leave flag as "okay" */
- flag = 1;
- #endif /* HAVE_ECC && !NO_SHA */
-#endif /* TEST_PKCS8_ENC */
-
-
-#ifndef NO_RSA
- /* test loading ASN.1 (DER) PKCS8 private key file (not encrypted) */
- f = XFOPEN(serverKeyPkcs8DerFile, "rb");
- AssertTrue((f != XBADFILE));
- bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f);
- XFCLOSE(f);
- AssertIntEQ(wolfSSL_CTX_use_PrivateKey_buffer(ctx, buffer, bytes,
- WOLFSSL_FILETYPE_ASN1), WOLFSSL_SUCCESS);
-
- /* test loading PEM PKCS8 private key file (not encrypted) */
- f = XFOPEN(serverKeyPkcs8PemFile, "rb");
- AssertTrue((f != XBADFILE));
- bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f);
- XFCLOSE(f);
- AssertIntEQ(wolfSSL_CTX_use_PrivateKey_buffer(ctx, buffer, bytes,
- WOLFSSL_FILETYPE_PEM), WOLFSSL_SUCCESS);
-#endif /* !NO_RSA */
-
- /* Test PKCS8 PEM ECC key no crypt */
- f = XFOPEN(eccPkcs8PrivKeyPemFile, "rb");
- AssertTrue((f != XBADFILE));
- bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f);
- XFCLOSE(f);
-#ifdef HAVE_ECC
- /* Test PKCS8 PEM ECC key no crypt */
- AssertIntEQ(wolfSSL_CTX_use_PrivateKey_buffer(ctx, buffer, bytes,
- WOLFSSL_FILETYPE_PEM), WOLFSSL_SUCCESS);
-
- /* decrypt PKCS8 PEM to key in DER format */
- AssertIntGT((bytes = wc_KeyPemToDer(buffer, bytes, der,
- (word32)sizeof(der), NULL)), 0);
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_EccPrivateKeyDecode(der, &x, &key, bytes);
- wc_ecc_free(&key);
- }
- AssertIntEQ(ret, 0);
-
- /* Test PKCS8 DER ECC key no crypt */
- f = XFOPEN(eccPkcs8PrivKeyDerFile, "rb");
- AssertTrue((f != XBADFILE));
- bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f);
- XFCLOSE(f);
-
- /* Test using a PKCS8 ECC PEM */
- AssertIntEQ(wolfSSL_CTX_use_PrivateKey_buffer(ctx, buffer, bytes,
- WOLFSSL_FILETYPE_ASN1), WOLFSSL_SUCCESS);
-#else
- /* if HAVE_ECC is not defined then BEGIN EC PRIVATE KEY is not found */
- AssertIntEQ((bytes = wc_KeyPemToDer(buffer, bytes, der,
- (word32)sizeof(der), NULL)), ASN_NO_PEM_HEADER);
-#endif /* HAVE_ECC */
-
- wolfSSL_CTX_free(ctx);
-
- printf(resultFmt, passed);
-#endif /* !NO_FILESYSTEM && !NO_ASN && HAVE_PKCS8 */
-}
-
-static void test_wolfSSL_PKCS8_ED25519(void)
-{
-#if !defined(NO_ASN) && defined(HAVE_PKCS8) && \
- defined(WOLFSSL_ENCRYPTED_KEYS) && defined(HAVE_ED25519)
- const byte encPrivKey[] = \
- "-----BEGIN ENCRYPTED PRIVATE KEY-----\n"
- "MIGbMFcGCSqGSIb3DQEFDTBKMCkGCSqGSIb3DQEFDDAcBAheCGLmWGh7+AICCAAw\n"
- "DAYIKoZIhvcNAgkFADAdBglghkgBZQMEASoEEC4L5P6GappsTyhOOoQfvh8EQJMX\n"
- "OAdlsYKCOcFo4djg6AI1lRdeBRwVFWkha7gBdoCJOzS8wDvTbYcJMPvANu5ft3nl\n"
- "2L9W4v7swXkV+X+a1ww=\n"
- "-----END ENCRYPTED PRIVATE KEY-----\n";
- const char password[] = "abcdefghijklmnopqrstuvwxyz";
- byte der[FOURK_BUF];
- WOLFSSL_CTX* ctx;
- int bytes;
-
- XMEMSET(der, 0, sizeof(der));
- AssertIntGT((bytes = wc_KeyPemToDer(encPrivKey, sizeof(encPrivKey), der,
- (word32)sizeof(der), password)), 0);
-#ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
-#else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-#endif
- AssertIntEQ(wolfSSL_CTX_use_PrivateKey_buffer(ctx, der, bytes,
- WOLFSSL_FILETYPE_ASN1), WOLFSSL_SUCCESS);
-
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-static void test_wolfSSL_PKCS8_ED448(void)
-{
-#if !defined(NO_ASN) && defined(HAVE_PKCS8) && \
- defined(WOLFSSL_ENCRYPTED_KEYS) && defined(HAVE_ED448)
- const byte encPrivKey[] = \
- "-----BEGIN ENCRYPTED PRIVATE KEY-----\n"
- "MIGrMFcGCSqGSIb3DQEFDTBKMCkGCSqGSIb3DQEFDDAcBAjSbZKnG4EPggICCAAw\n"
- "DAYIKoZIhvcNAgkFADAdBglghkgBZQMEASoEEFvCFWBBHBlJBsYleBJlJWcEUNC7\n"
- "Tf5pZviT5Btar4D/MNg6BsQHSDf5KW4ix871EsgDY2Zz+euaoWspiMntz7gU+PQu\n"
- "T/JJcbD2Ly8BbE3l5WHMifAQqNLxJBfXrHkfYtAo\n"
- "-----END ENCRYPTED PRIVATE KEY-----\n";
- const char password[] = "abcdefghijklmnopqrstuvwxyz";
- byte der[FOURK_BUF];
- WOLFSSL_CTX* ctx;
- int bytes;
-
- XMEMSET(der, 0, sizeof(der));
- AssertIntGT((bytes = wc_KeyPemToDer(encPrivKey, sizeof(encPrivKey), der,
- (word32)sizeof(der), password)), 0);
-#ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
-#else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-#endif
- AssertIntEQ(wolfSSL_CTX_use_PrivateKey_buffer(ctx, der, bytes,
- WOLFSSL_FILETYPE_ASN1), WOLFSSL_SUCCESS);
-
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-/* Testing functions dealing with PKCS5 */
-static void test_wolfSSL_PKCS5(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_SHA) && !defined(NO_PWDBASED)
-#ifdef HAVE_FIPS /* Password minimum length is 14 (112-bit) in FIPS MODE */
- const char* passwd = "myfipsPa$$W0rd";
-#else
- const char *passwd = "pass1234";
-#endif
- const unsigned char *salt = (unsigned char *)"salt1234";
- unsigned char *out = (unsigned char *)XMALLOC(WC_SHA_DIGEST_SIZE, NULL,
- DYNAMIC_TYPE_TMP_BUFFER);
- int ret = 0;
-
- AssertNotNull(out);
- ret = PKCS5_PBKDF2_HMAC_SHA1(passwd,(int)XSTRLEN(passwd), salt,
- (int)XSTRLEN((const char *) salt), 10,
- WC_SHA_DIGEST_SIZE,out);
- AssertIntEQ(ret, SSL_SUCCESS);
-
-#ifdef WOLFSSL_SHA512
- ret = PKCS5_PBKDF2_HMAC(passwd,(int)XSTRLEN(passwd), salt,
- (int)XSTRLEN((const char *) salt), 10,
- wolfSSL_EVP_sha512(), WC_SHA_DIGEST_SIZE, out);
- AssertIntEQ(ret, SSL_SUCCESS);
-#endif
-
- XFREE(out, NULL, DYNAMIC_TYPE_TMP_BUFFER);
-#endif /* defined(OPENSSL_EXTRA) && !defined(NO_SHA) */
-}
-
-/* test parsing URI from certificate */
-static void test_wolfSSL_URI(void)
-{
-#if !defined(NO_CERTS) && !defined(NO_RSA) && !defined(NO_FILESYSTEM) \
- && (defined(KEEP_PEER_CERT) || defined(SESSION_CERTS) || \
- defined(OPENSSL_EXTRA))
- WOLFSSL_X509* x509;
- const char uri[] = "./certs/client-uri-cert.pem";
- const char badUri[] = "./certs/client-relative-uri.pem";
-
- printf(testingFmt, "wolfSSL URI parse");
-
- x509 = wolfSSL_X509_load_certificate_file(uri, WOLFSSL_FILETYPE_PEM);
- AssertNotNull(x509);
-
- wolfSSL_FreeX509(x509);
-
- x509 = wolfSSL_X509_load_certificate_file(badUri, WOLFSSL_FILETYPE_PEM);
-#ifndef IGNORE_NAME_CONSTRAINTS
- AssertNull(x509);
-#else
- AssertNotNull(x509);
-#endif
-
- printf(resultFmt, passed);
-#endif
-}
-
-
-static void test_wolfSSL_TBS(void)
-{
-#if !defined(NO_CERTS) && !defined(NO_RSA) && !defined(NO_FILESYSTEM) \
- && defined(OPENSSL_EXTRA)
- WOLFSSL_X509* x509;
- const unsigned char* tbs;
- int tbsSz;
-
- printf(testingFmt, "wolfSSL TBS");
-
- AssertNotNull(x509 =
- wolfSSL_X509_load_certificate_file(caCertFile, WOLFSSL_FILETYPE_PEM));
-
- AssertNull(tbs = wolfSSL_X509_get_tbs(NULL, &tbsSz));
- AssertNull(tbs = wolfSSL_X509_get_tbs(x509, NULL));
- AssertNotNull(tbs = wolfSSL_X509_get_tbs(x509, &tbsSz));
- AssertIntEQ(tbsSz, 918);
-
- wolfSSL_FreeX509(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_X509_verify(void)
-{
-#if !defined(NO_CERTS) && !defined(NO_RSA) && !defined(NO_FILESYSTEM) \
- && defined(OPENSSL_EXTRA)
- WOLFSSL_X509* ca;
- WOLFSSL_X509* server;
- WOLFSSL_EVP_PKEY* pkey;
- unsigned char buf[2048];
- const unsigned char* pt;
- int bufSz;
-
- printf(testingFmt, "wolfSSL X509 verify");
-
- AssertNotNull(ca =
- wolfSSL_X509_load_certificate_file(caCertFile, WOLFSSL_FILETYPE_PEM));
-
- AssertIntNE(wolfSSL_X509_get_pubkey_buffer(NULL, buf, &bufSz),
- WOLFSSL_SUCCESS);
- AssertIntEQ(wolfSSL_X509_get_pubkey_buffer(ca, NULL, &bufSz),
- WOLFSSL_SUCCESS);
- AssertIntEQ(bufSz, 294);
-
- bufSz = 2048;
- AssertIntEQ(wolfSSL_X509_get_pubkey_buffer(ca, buf, &bufSz),
- WOLFSSL_SUCCESS);
- AssertIntEQ(wolfSSL_X509_get_pubkey_type(NULL), WOLFSSL_FAILURE);
- AssertIntEQ(wolfSSL_X509_get_pubkey_type(ca), RSAk);
-
-
- AssertNotNull(server =
- wolfSSL_X509_load_certificate_file(svrCertFile, WOLFSSL_FILETYPE_PEM));
-
- /* success case */
- pt = buf;
- AssertNotNull(pkey = wolfSSL_d2i_PUBKEY(NULL, &pt, bufSz));
- AssertIntEQ(wolfSSL_X509_verify(server, pkey), WOLFSSL_SUCCESS);
- wolfSSL_EVP_PKEY_free(pkey);
-
- /* fail case */
- bufSz = 2048;
- AssertIntEQ(wolfSSL_X509_get_pubkey_buffer(server, buf, &bufSz),
- WOLFSSL_SUCCESS);
- pt = buf;
- AssertNotNull(pkey = wolfSSL_d2i_PUBKEY(NULL, &pt, bufSz));
- AssertIntEQ(wolfSSL_X509_verify(server, pkey), WOLFSSL_FAILURE);
-
- AssertIntEQ(wolfSSL_X509_verify(NULL, pkey), WOLFSSL_FATAL_ERROR);
- AssertIntEQ(wolfSSL_X509_verify(server, NULL), WOLFSSL_FATAL_ERROR);
- wolfSSL_EVP_PKEY_free(pkey);
-
- wolfSSL_FreeX509(ca);
- wolfSSL_FreeX509(server);
-
- printf(resultFmt, passed);
-#endif
-}
-/* Testing function wolfSSL_CTX_SetMinVersion; sets the minimum downgrade
- * version allowed.
- * POST: 1 on success.
- */
-static int test_wolfSSL_CTX_SetMinVersion(void)
-{
- int failFlag = WOLFSSL_SUCCESS;
-#ifndef NO_WOLFSSL_CLIENT
- WOLFSSL_CTX* ctx;
- int itr;
-
- #ifndef NO_OLD_TLS
- const int versions[] = {
- #ifdef WOLFSSL_ALLOW_TLSV10
- WOLFSSL_TLSV1,
- #endif
- WOLFSSL_TLSV1_1,
- WOLFSSL_TLSV1_2 };
- #elif !defined(WOLFSSL_NO_TLS12)
- const int versions[] = { WOLFSSL_TLSV1_2 };
- #elif defined(WOLFSSL_TLS13)
- const int versions[] = { WOLFSSL_TLSV1_3 };
- #else
- const int versions[0];
- #endif
-
- ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
-
- printf(testingFmt, "wolfSSL_CTX_SetMinVersion()");
-
- for (itr = 0; itr < (int)(sizeof(versions)/sizeof(int)); itr++){
- if(wolfSSL_CTX_SetMinVersion(ctx, *(versions + itr)) != WOLFSSL_SUCCESS){
- failFlag = WOLFSSL_FAILURE;
- }
- }
-
- printf(resultFmt, failFlag == WOLFSSL_SUCCESS ? passed : failed);
-
- wolfSSL_CTX_free(ctx);
-#endif
- return failFlag;
-
-} /* END test_wolfSSL_CTX_SetMinVersion */
-
-
-/*----------------------------------------------------------------------------*
- | OCSP Stapling
- *----------------------------------------------------------------------------*/
-
-
-/* Testing wolfSSL_UseOCSPStapling function. OCSP stapling eliminates the need
- * need to contact the CA, lowering the cost of cert revocation checking.
- * PRE: HAVE_OCSP and HAVE_CERTIFICATE_STATUS_REQUEST
- * POST: 1 returned for success.
- */
-static int test_wolfSSL_UseOCSPStapling(void)
-{
- #if defined(HAVE_CERTIFICATE_STATUS_REQUEST) && defined(HAVE_OCSP) && \
- !defined(NO_WOLFSSL_CLIENT)
- int ret;
- WOLFSSL_CTX* ctx;
- WOLFSSL* ssl;
-
-#ifndef NO_WOLFSSL_CLIENT
- #ifndef WOLFSSL_NO_TLS12
- ctx = wolfSSL_CTX_new(wolfTLSv1_2_client_method());
- #else
- ctx = wolfSSL_CTX_new(wolfTLSv1_3_client_method());
- #endif
-#else
- #ifndef WOLFSSL_NO_TLS12
- ctx = wolfSSL_CTX_new(wolfTLSv1_2_server_method());
- #else
- ctx = wolfSSL_CTX_new(wolfTLSv1_3_server_method());
- #endif
-#endif
- ssl = wolfSSL_new(ctx);
- printf(testingFmt, "wolfSSL_UseOCSPStapling()");
-
- ret = wolfSSL_UseOCSPStapling(ssl, WOLFSSL_CSR2_OCSP,
- WOLFSSL_CSR2_OCSP_USE_NONCE);
-
- printf(resultFmt, ret == WOLFSSL_SUCCESS ? passed : failed);
-
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-
- return ret;
- #else
- return WOLFSSL_SUCCESS;
- #endif
-
-} /*END test_wolfSSL_UseOCSPStapling */
-
-
-/* Testing OCSP stapling version 2, wolfSSL_UseOCSPStaplingV2 function. OCSP
- * stapling eliminates the need to contact the CA and lowers cert revocation
- * check.
- * PRE: HAVE_CERTIFICATE_STATUS_REQUEST_V2 and HAVE_OCSP defined.
- */
-static int test_wolfSSL_UseOCSPStaplingV2 (void)
-{
- #if defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2) && defined(HAVE_OCSP) && \
- !defined(NO_WOLFSSL_CLIENT)
- int ret;
- WOLFSSL_CTX* ctx;
- WOLFSSL* ssl;
-
-#ifndef NO_WOLFSSL_CLIENT
- #ifndef WOLFSSL_NO_TLS12
- ctx = wolfSSL_CTX_new(wolfTLSv1_2_client_method());
- #else
- ctx = wolfSSL_CTX_new(wolfTLSv1_3_client_method());
- #endif
-#else
- #ifndef WOLFSSL_NO_TLS12
- ctx = wolfSSL_CTX_new(wolfTLSv1_2_server_method());
- #else
- ctx = wolfSSL_CTX_new(wolfTLSv1_3_server_method());
- #endif
-#endif
- ssl = wolfSSL_new(ctx);
- printf(testingFmt, "wolfSSL_UseOCSPStaplingV2()");
-
- ret = wolfSSL_UseOCSPStaplingV2(ssl, WOLFSSL_CSR2_OCSP,
- WOLFSSL_CSR2_OCSP_USE_NONCE );
-
- printf(resultFmt, ret == WOLFSSL_SUCCESS ? passed : failed);
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-
- return ret;
- #else
- return WOLFSSL_SUCCESS;
- #endif
-
-} /*END test_wolfSSL_UseOCSPStaplingV2*/
-
-/*----------------------------------------------------------------------------*
- | Multicast Tests
- *----------------------------------------------------------------------------*/
-static void test_wolfSSL_mcast(void)
-{
-#if defined(WOLFSSL_DTLS) && defined(WOLFSSL_MULTICAST)
- WOLFSSL_CTX* ctx;
- WOLFSSL* ssl;
- int result;
- byte preMasterSecret[512];
- byte clientRandom[32];
- byte serverRandom[32];
- byte suite[2] = {0, 0xfe}; /* WDM_WITH_NULL_SHA256 */
- byte buf[256];
- word16 newId;
-
- ctx = wolfSSL_CTX_new(wolfDTLSv1_2_client_method());
- AssertNotNull(ctx);
-
- result = wolfSSL_CTX_mcast_set_member_id(ctx, 0);
- AssertIntEQ(result, WOLFSSL_SUCCESS);
-
- ssl = wolfSSL_new(ctx);
- AssertNotNull(ssl);
-
- XMEMSET(preMasterSecret, 0x23, sizeof(preMasterSecret));
- XMEMSET(clientRandom, 0xA5, sizeof(clientRandom));
- XMEMSET(serverRandom, 0x5A, sizeof(serverRandom));
- result = wolfSSL_set_secret(ssl, 23,
- preMasterSecret, sizeof(preMasterSecret),
- clientRandom, serverRandom, suite);
- AssertIntEQ(result, WOLFSSL_SUCCESS);
-
- result = wolfSSL_mcast_read(ssl, &newId, buf, sizeof(buf));
- AssertIntLE(result, 0);
- AssertIntLE(newId, 100);
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-#endif /* WOLFSSL_DTLS && WOLFSSL_MULTICAST */
-}
-
-
-/*----------------------------------------------------------------------------*
- | Wolfcrypt
- *----------------------------------------------------------------------------*/
-
-/*
- * Unit test for the wc_InitBlake2b()
- */
-static int test_wc_InitBlake2b (void)
-{
- int ret = 0;
-#ifdef HAVE_BLAKE2
-
- Blake2b blake2;
-
- printf(testingFmt, "wc_InitBlake2B()");
-
- /* Test good arg. */
- ret = wc_InitBlake2b(&blake2, 64);
- if (ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- /* Test bad arg. */
- if (!ret) {
- ret = wc_InitBlake2b(NULL, 64);
- if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- }
-
- if (!ret) {
- ret = wc_InitBlake2b(NULL, 128);
- if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- }
-
- if (!ret) {
- ret = wc_InitBlake2b(&blake2, 128);
- if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- }
-
- if (!ret) {
- ret = wc_InitBlake2b(NULL, 0);
- if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- }
-
- if (!ret) {
- ret = wc_InitBlake2b(&blake2, 0);
- if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-} /*END test_wc_InitBlake2b*/
-
-
-/*
- * Unit test for the wc_InitMd5()
- */
-static int test_wc_InitMd5 (void)
-{
- int flag = 0;
-#ifndef NO_MD5
-
- wc_Md5 md5;
- int ret;
-
- printf(testingFmt, "wc_InitMd5()");
-
- /* Test good arg. */
- ret = wc_InitMd5(&md5);
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-
- /* Test bad arg. */
- if (!flag) {
- ret = wc_InitMd5(NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Md5Free(&md5);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_InitMd5 */
-
-
-/*
- * Testing wc_UpdateMd5()
- */
-static int test_wc_Md5Update (void)
-{
-
- int flag = 0;
-#ifndef NO_MD5
- wc_Md5 md5;
- byte hash[WC_MD5_DIGEST_SIZE];
- testVector a, b, c;
- int ret;
-
- ret = wc_InitMd5(&md5);
- if (ret != 0) {
- flag = ret;
- }
-
- printf(testingFmt, "wc_Md5Update()");
-
- /* Input */
- if (!flag) {
- a.input = "a";
- a.inLen = XSTRLEN(a.input);
-
- ret = wc_Md5Update(&md5, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_Md5Final(&md5, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Update input. */
- if (!flag) {
- a.input = "abc";
- a.output = "\x90\x01\x50\x98\x3c\xd2\x4f\xb0\xd6\x96\x3f\x7d\x28\xe1\x7f"
- "\x72";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- ret = wc_Md5Update(&md5, (byte*) a.input, (word32) a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_Md5Final(&md5, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- if (XMEMCMP(hash, a.output, WC_MD5_DIGEST_SIZE) != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /*Pass in bad values. */
- if (!flag) {
- b.input = NULL;
- b.inLen = 0;
-
- ret = wc_Md5Update(&md5, (byte*)b.input, (word32)b.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- c.input = NULL;
- c.inLen = WC_MD5_DIGEST_SIZE;
-
- ret = wc_Md5Update(&md5, (byte*)c.input, (word32)c.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_Md5Update(NULL, (byte*)a.input, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Md5Free(&md5);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Md5Update() */
-
-
-/*
- * Unit test on wc_Md5Final() in wolfcrypt/src/md5.c
- */
-static int test_wc_Md5Final (void)
-{
-
- int flag = 0;
-#ifndef NO_MD5
- /* Instantiate */
- wc_Md5 md5;
- byte* hash_test[3];
- byte hash1[WC_MD5_DIGEST_SIZE];
- byte hash2[2*WC_MD5_DIGEST_SIZE];
- byte hash3[5*WC_MD5_DIGEST_SIZE];
- int times, i, ret;
-
- /* Initialize */
- ret = wc_InitMd5(&md5);
- if (ret != 0) {
- flag = ret;
- }
-
- if (!flag) {
- hash_test[0] = hash1;
- hash_test[1] = hash2;
- hash_test[2] = hash3;
- }
-
- times = sizeof(hash_test)/sizeof(byte*);
-
- /* Test good args. */
- printf(testingFmt, "wc_Md5Final()");
-
- for (i = 0; i < times; i++) {
- if (!flag) {
- ret = wc_Md5Final(&md5, hash_test[i]);
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
- }
-
- /* Test bad args. */
- if (!flag) {
- ret = wc_Md5Final(NULL, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_Md5Final(NULL, hash1);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_Md5Final(&md5, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Md5Free(&md5);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-}
-
-
-/*
- * Unit test for the wc_InitSha()
- */
-static int test_wc_InitSha(void)
-{
- int flag = 0;
-#ifndef NO_SHA
- wc_Sha sha;
- int ret;
-
- printf(testingFmt, "wc_InitSha()");
-
- /* Test good arg. */
- ret = wc_InitSha(&sha);
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-
- /* Test bad arg. */
- if (!flag) {
- ret = wc_InitSha(NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_ShaFree(&sha);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-
-} /* END test_wc_InitSha */
-
-/*
- * Tesing wc_ShaUpdate()
- */
-static int test_wc_ShaUpdate (void)
-{
-
- int flag = 0;
-#ifndef NO_SHA
- wc_Sha sha;
- byte hash[WC_SHA_DIGEST_SIZE];
- testVector a, b, c;
- int ret;
-
- ret = wc_InitSha(&sha);
- if (ret != 0) {
- flag = ret;
- }
-
- printf(testingFmt, "wc_ShaUpdate()");
-
- /* Input. */
- if (!flag) {
- a.input = "a";
- a.inLen = XSTRLEN(a.input);
-
- ret = wc_ShaUpdate(&sha, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_ShaFinal(&sha, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Update input. */
- if (!flag) {
- a.input = "abc";
- a.output = "\xA9\x99\x3E\x36\x47\x06\x81\x6A\xBA\x3E\x25\x71\x78\x50\xC2"
- "\x6C\x9C\xD0\xD8\x9D";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- ret = wc_ShaUpdate(&sha, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_ShaFinal(&sha, hash);
- if (ret !=0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- if (XMEMCMP(hash, a.output, WC_SHA_DIGEST_SIZE) != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Try passing in bad values. */
- if (!flag) {
- b.input = NULL;
- b.inLen = 0;
-
- ret = wc_ShaUpdate(&sha, (byte*)b.input, (word32)b.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- c.input = NULL;
- c.inLen = WC_SHA_DIGEST_SIZE;
-
- ret = wc_ShaUpdate(&sha, (byte*)c.input, (word32)c.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_ShaUpdate(NULL, (byte*)a.input, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_ShaFree(&sha);
- /* If not returned then the unit test passed test vectors. */
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-
-} /* END test_wc_ShaUpdate() */
-
-
-/*
- * Unit test on wc_ShaFinal
- */
-static int test_wc_ShaFinal (void)
-{
- int flag = 0;
-#ifndef NO_SHA
- wc_Sha sha;
- byte* hash_test[3];
- byte hash1[WC_SHA_DIGEST_SIZE];
- byte hash2[2*WC_SHA_DIGEST_SIZE];
- byte hash3[5*WC_SHA_DIGEST_SIZE];
- int times, i, ret;
-
- /*Initialize*/
- ret = wc_InitSha(&sha);
- if (ret) {
- flag = ret;
- }
-
- if (!flag) {
- hash_test[0] = hash1;
- hash_test[1] = hash2;
- hash_test[2] = hash3;
- }
-
- times = sizeof(hash_test)/sizeof(byte*);
-
- /* Good test args. */
- printf(testingFmt, "wc_ShaFinal()");
-
- for (i = 0; i < times; i++) {
- if (!flag) {
- ret = wc_ShaFinal(&sha, hash_test[i]);
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
- }
-
- /* Test bad args. */
- if (!flag) {
- ret = wc_ShaFinal(NULL, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_ShaFinal(NULL, hash1);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_ShaFinal(&sha, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_ShaFree(&sha);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_ShaFinal */
-
-
-/*
- * Unit test for wc_InitSha256()
- */
-static int test_wc_InitSha256 (void)
-{
- int flag = 0;
-#ifndef NO_SHA256
- wc_Sha256 sha256;
- int ret;
-
- printf(testingFmt, "wc_InitSha256()");
-
- /* Test good arg. */
- ret = wc_InitSha256(&sha256);
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-
- /* Test bad arg. */
- if (!flag) {
- ret = wc_InitSha256(NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Sha256Free(&sha256);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_InitSha256 */
-
-
-/*
- * Unit test for wc_Sha256Update()
- */
-static int test_wc_Sha256Update (void)
-{
- int flag = 0;
-#ifndef NO_SHA256
- wc_Sha256 sha256;
- byte hash[WC_SHA256_DIGEST_SIZE];
- testVector a, b, c;
- int ret;
-
- ret = wc_InitSha256(&sha256);
- if (ret != 0) {
- flag = ret;
- }
-
- printf(testingFmt, "wc_Sha256Update()");
-
- /* Input. */
- if (!flag) {
- a.input = "a";
- a.inLen = XSTRLEN(a.input);
-
- ret = wc_Sha256Update(&sha256, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_Sha256Final(&sha256, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Update input. */
- if (!flag) {
- a.input = "abc";
- a.output = "\xBA\x78\x16\xBF\x8F\x01\xCF\xEA\x41\x41\x40\xDE\x5D\xAE\x22"
- "\x23\xB0\x03\x61\xA3\x96\x17\x7A\x9C\xB4\x10\xFF\x61\xF2\x00"
- "\x15\xAD";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- ret = wc_Sha256Update(&sha256, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_Sha256Final(&sha256, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- if (XMEMCMP(hash, a.output, WC_SHA256_DIGEST_SIZE) != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Try passing in bad values */
- if (!flag) {
- b.input = NULL;
- b.inLen = 0;
-
- ret = wc_Sha256Update(&sha256, (byte*)b.input, (word32)b.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- c.input = NULL;
- c.inLen = WC_SHA256_DIGEST_SIZE;
-
- ret = wc_Sha256Update(&sha256, (byte*)c.input, (word32)c.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_Sha256Update(NULL, (byte*)a.input, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Sha256Free(&sha256);
- /* If not returned then the unit test passed. */
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-
-} /* END test_wc_Sha256Update */
-
-
-/*
- * Unit test function for wc_Sha256Final()
- */
-static int test_wc_Sha256Final (void)
-{
- int flag = 0;
-#ifndef NO_SHA256
- wc_Sha256 sha256;
- byte* hash_test[3];
- byte hash1[WC_SHA256_DIGEST_SIZE];
- byte hash2[2*WC_SHA256_DIGEST_SIZE];
- byte hash3[5*WC_SHA256_DIGEST_SIZE];
- int times, i, ret;
-
- /* Initialize */
- ret = wc_InitSha256(&sha256);
- if (ret != 0) {
- flag = ret;
- }
-
- if (!flag) {
- hash_test[0] = hash1;
- hash_test[1] = hash2;
- hash_test[2] = hash3;
- }
-
- times = sizeof(hash_test) / sizeof(byte*);
-
- /* Good test args. */
- printf(testingFmt, "wc_Sha256Final()");
-
- for (i = 0; i < times; i++) {
- if (!flag) {
- ret = wc_Sha256Final(&sha256, hash_test[i]);
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
- }
-
- /* Test bad args. */
- if (!flag ) {
- ret = wc_Sha256Final(NULL, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_Sha256Final(NULL, hash1);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_Sha256Final(&sha256, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Sha256Free(&sha256);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-
-} /* END test_wc_Sha256Final */
-
-
-
-/*
- * Testing wc_InitSha512()
- */
-static int test_wc_InitSha512 (void)
-{
- int flag = 0;
-#ifdef WOLFSSL_SHA512
- wc_Sha512 sha512;
- int ret;
-
- printf(testingFmt, "wc_InitSha512()");
-
- /* Test good arg. */
- ret = wc_InitSha512(&sha512);
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-
- /* Test bad arg. */
- if (!flag) {
- ret = wc_InitSha512(NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Sha512Free(&sha512);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-
-} /* END test_wc_InitSha512 */
-
-
-/*
- * wc_Sha512Update() test.
- */
-static int test_wc_Sha512Update (void)
-{
-
- int flag = 0;
-#ifdef WOLFSSL_SHA512
- wc_Sha512 sha512;
- byte hash[WC_SHA512_DIGEST_SIZE];
- testVector a, b, c;
- int ret;
-
- ret = wc_InitSha512(&sha512);
- if (ret != 0) {
- flag = ret;
- }
-
- printf(testingFmt, "wc_Sha512Update()");
-
- /* Input. */
- if (!flag) {
- a.input = "a";
- a.inLen = XSTRLEN(a.input);
-
- ret = wc_Sha512Update(&sha512, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
-
- ret = wc_Sha512Final(&sha512, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Update input. */
- if (!flag) {
- a.input = "abc";
- a.output = "\xdd\xaf\x35\xa1\x93\x61\x7a\xba\xcc\x41\x73\x49\xae\x20\x41"
- "\x31\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2\x0a\x9e\xee\xe6\x4b"
- "\x55\xd3\x9a\x21\x92\x99\x2a\x27\x4f\xc1\xa8\x36\xba\x3c"
- "\x23\xa3\xfe\xeb\xbd\x45\x4d\x44\x23\x64\x3c\xe8\x0e\x2a"
- "\x9a\xc9\x4f\xa5\x4c\xa4\x9f";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- ret = wc_Sha512Update(&sha512, (byte*) a.input, (word32) a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_Sha512Final(&sha512, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- if (XMEMCMP(hash, a.output, WC_SHA512_DIGEST_SIZE) != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Try passing in bad values */
- if (!flag) {
- b.input = NULL;
- b.inLen = 0;
-
- ret = wc_Sha512Update(&sha512, (byte*)b.input, (word32)b.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- c.input = NULL;
- c.inLen = WC_SHA512_DIGEST_SIZE;
-
- ret = wc_Sha512Update(&sha512, (byte*)c.input, (word32)c.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_Sha512Update(NULL, (byte*)a.input, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Sha512Free(&sha512);
-
- /* If not returned then the unit test passed test vectors. */
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-
-} /* END test_wc_Sha512Update */
-
-
-/*
- * Unit test function for wc_Sha512Final()
- */
-static int test_wc_Sha512Final (void)
-{
- int flag = 0;
-#ifdef WOLFSSL_SHA512
- wc_Sha512 sha512;
- byte* hash_test[3];
- byte hash1[WC_SHA512_DIGEST_SIZE];
- byte hash2[2*WC_SHA512_DIGEST_SIZE];
- byte hash3[5*WC_SHA512_DIGEST_SIZE];
- int times, i, ret;
-
- /* Initialize */
- ret = wc_InitSha512(&sha512);
- if (ret != 0) {
- flag = ret;
- }
-
- if (!flag) {
- hash_test[0] = hash1;
- hash_test[1] = hash2;
- hash_test[2] = hash3;
- }
-
- times = sizeof(hash_test) / sizeof(byte *);
-
- /* Good test args. */
- printf(testingFmt, "wc_Sha512Final()");
-
- for (i = 0; i < times; i++) {
- if (!flag) {
- ret = wc_Sha512Final(&sha512, hash_test[i]);
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
- }
- /* Test bad args. */
- if (!flag) {
- ret = wc_Sha512Final(NULL, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-
- if (!flag) {}
- ret = wc_Sha512Final(NULL, hash1);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_Sha512Final(&sha512, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Sha512Free(&sha512);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Sha512Final */
-
-
-
-
-/*
- * Testing wc_InitSha384()
- */
-static int test_wc_InitSha384 (void)
-{
- int flag = 0;
-#ifdef WOLFSSL_SHA384
- wc_Sha384 sha384;
- int ret;
-
- printf(testingFmt, "wc_InitSha384()");
-
- /* Test good arg. */
- ret = wc_InitSha384(&sha384);
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-
- /* Test bad arg. */
- if (!flag) {
- ret = wc_InitSha384(NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Sha384Free(&sha384);
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_InitSha384 */
-
-
-/*
- * test wc_Sha384Update()
- */
-static int test_wc_Sha384Update (void)
-{
-
- int flag = 0;
-#ifdef WOLFSSL_SHA384
- wc_Sha384 sha384;
- byte hash[WC_SHA384_DIGEST_SIZE];
- testVector a, b, c;
- int ret;
-
- ret = wc_InitSha384(&sha384);
- if (ret != 0) {
- flag = ret;
- }
-
- printf(testingFmt, "wc_Sha384Update()");
-
- /* Input */
- if (!flag) {
- a.input = "a";
- a.inLen = XSTRLEN(a.input);
-
- ret = wc_Sha384Update(&sha384, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_Sha384Final(&sha384, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Update input. */
- if (!flag) {
- a.input = "abc";
- a.output = "\xcb\x00\x75\x3f\x45\xa3\x5e\x8b\xb5\xa0\x3d\x69\x9a\xc6\x50"
- "\x07\x27\x2c\x32\xab\x0e\xde\xd1\x63\x1a\x8b\x60\x5a\x43\xff"
- "\x5b\xed\x80\x86\x07\x2b\xa1\xe7\xcc\x23\x58\xba\xec\xa1\x34"
- "\xc8\x25\xa7";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- ret = wc_Sha384Update(&sha384, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_Sha384Final(&sha384, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- if (XMEMCMP(hash, a.output, WC_SHA384_DIGEST_SIZE) != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Pass in bad values. */
- if (!flag) {
- b.input = NULL;
- b.inLen = 0;
-
- ret = wc_Sha384Update(&sha384, (byte*)b.input, (word32)b.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- c.input = NULL;
- c.inLen = WC_SHA384_DIGEST_SIZE;
-
- ret = wc_Sha384Update(&sha384, (byte*)c.input, (word32)c.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_Sha384Update(NULL, (byte*)a.input, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Sha384Free(&sha384);
-
- /* If not returned then the unit test passed test vectors. */
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Sha384Update */
-
-/*
- * Unit test function for wc_Sha384Final();
- */
-static int test_wc_Sha384Final (void)
-{
- int flag = 0;
-#ifdef WOLFSSL_SHA384
- wc_Sha384 sha384;
- byte* hash_test[3];
- byte hash1[WC_SHA384_DIGEST_SIZE];
- byte hash2[2*WC_SHA384_DIGEST_SIZE];
- byte hash3[5*WC_SHA384_DIGEST_SIZE];
- int times, i, ret;
-
- /* Initialize */
- ret = wc_InitSha384(&sha384);
- if (ret) {
- flag = ret;
- }
-
- if (!flag) {
- hash_test[0] = hash1;
- hash_test[1] = hash2;
- hash_test[2] = hash3;
- }
-
- times = sizeof(hash_test) / sizeof(byte*);
-
- /* Good test args. */
- printf(testingFmt, "wc_Sha384Final()");
-
- for (i = 0; i < times; i++) {
- if (!flag) {
- ret = wc_Sha384Final(&sha384, hash_test[i]);
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
- }
-
- /* Test bad args. */
- if (!flag) {
- ret = wc_Sha384Final(NULL, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_Sha384Final(NULL, hash1);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_Sha384Final(&sha384, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Sha384Free(&sha384);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-
-} /* END test_wc_Sha384Final */
-
-
-
-/*
- * Testing wc_InitSha224();
- */
-static int test_wc_InitSha224 (void)
-{
- int flag = 0;
-#ifdef WOLFSSL_SHA224
- wc_Sha224 sha224;
- int ret;
-
- printf(testingFmt, "wc_InitSha224()");
-
- /* Test good arg. */
- ret = wc_InitSha224(&sha224);
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-
- /* Test bad arg. */
- if (!flag) {
- ret = wc_InitSha224(NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Sha224Free(&sha224);
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_InitSha224 */
-
-
-
-/*
- * Unit test on wc_Sha224Update
- */
-static int test_wc_Sha224Update (void)
-{
- int flag = 0;
-#ifdef WOLFSSL_SHA224
- wc_Sha224 sha224;
- byte hash[WC_SHA224_DIGEST_SIZE];
- testVector a, b, c;
- int ret;
-
- ret = wc_InitSha224(&sha224);
- if (ret != 0) {
- flag = ret;
- }
-
- printf(testingFmt, "wc_Sha224Update()");
-
- /* Input. */
- if (!flag) {
- a.input = "a";
- a.inLen = XSTRLEN(a.input);
-
- ret = wc_Sha224Update(&sha224, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_Sha224Final(&sha224, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Update input. */
- if (!flag) {
- a.input = "abc";
- a.output = "\x23\x09\x7d\x22\x34\x05\xd8\x22\x86\x42\xa4\x77\xbd\xa2"
- "\x55\xb3\x2a\xad\xbc\xe4\xbd\xa0\xb3\xf7\xe3\x6c\x9d\xa7";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- ret = wc_Sha224Update(&sha224, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_Sha224Final(&sha224, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- if (XMEMCMP(hash, a.output, WC_SHA224_DIGEST_SIZE) != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Pass in bad values. */
- if (!flag) {
- b.input = NULL;
- b.inLen = 0;
-
- ret = wc_Sha224Update(&sha224, (byte*)b.input, (word32)b.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- c.input = NULL;
- c.inLen = WC_SHA224_DIGEST_SIZE;
-
- ret = wc_Sha224Update(&sha224, (byte*)c.input, (word32)c.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_Sha224Update(NULL, (byte*)a.input, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Sha224Free(&sha224);
-
- /* If not returned then the unit test passed test vectors. */
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-
-} /* END test_wc_Sha224Update */
-
-
-
-/*
- * Unit test for wc_Sha224Final();
- */
-static int test_wc_Sha224Final (void)
-{
- int flag = 0;
-#ifdef WOLFSSL_SHA224
- wc_Sha224 sha224;
- byte* hash_test[3];
- byte hash1[WC_SHA224_DIGEST_SIZE];
- byte hash2[2*WC_SHA224_DIGEST_SIZE];
- byte hash3[5*WC_SHA224_DIGEST_SIZE];
- int times, i, ret;
-
- /* Initialize */
- ret = wc_InitSha224(&sha224);
- if (ret) {
- flag = ret;
- }
-
- if (!flag) {
- hash_test[0] = hash1;
- hash_test[1] = hash2;
- hash_test[2] = hash3;
- }
-
- times = sizeof(hash_test) / sizeof(byte*);
-
- /* Good test args. */
- printf(testingFmt, "wc_sha224Final()");
- /* Testing oversized buffers. */
- for (i = 0; i < times; i++) {
- if (!flag) {
- ret = wc_Sha224Final(&sha224, hash_test[i]);
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
- }
-
- /* Test bad args. */
- if (!flag) {
- ret = wc_Sha224Final(NULL, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_Sha224Final(NULL, hash1);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_Sha224Final(&sha224, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_Sha224Free(&sha224);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Sha224Final */
-
-
-
-
-/*
- * Testing wc_InitRipeMd()
- */
-static int test_wc_InitRipeMd (void)
-{
- int flag = 0;
-#ifdef WOLFSSL_RIPEMD
- RipeMd ripemd;
- int ret;
-
- printf(testingFmt, "wc_InitRipeMd()");
-
- /* Test good arg. */
- ret = wc_InitRipeMd(&ripemd);
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-
- /* Test bad arg. */
- if (!flag) {
- ret = wc_InitRipeMd(NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-
-} /* END test_wc_InitRipeMd */
-
-
-/*
- * Testing wc_RipeMdUpdate()
- */
-static int test_wc_RipeMdUpdate (void)
-{
-
- int flag = 0;
-#ifdef WOLFSSL_RIPEMD
- RipeMd ripemd;
- byte hash[RIPEMD_DIGEST_SIZE];
- testVector a, b, c;
- int ret;
-
- ret = wc_InitRipeMd(&ripemd);
- if (ret != 0) {
- flag = ret;
- }
-
- printf(testingFmt, "wc_RipeMdUpdate()");
-
- /* Input */
- if (!flag) {
- a.input = "a";
- a.inLen = XSTRLEN(a.input);
-
- ret = wc_RipeMdUpdate(&ripemd, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_RipeMdFinal(&ripemd, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Update input. */
- if (!flag) {
- a.input = "abc";
- a.output = "\x8e\xb2\x08\xf7\xe0\x5d\x98\x7a\x9b\x04\x4a\x8e\x98\xc6"
- "\xb0\x87\xf1\x5a\x0b\xfc";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- ret = wc_RipeMdUpdate(&ripemd, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_RipeMdFinal(&ripemd, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- if (XMEMCMP(hash, a.output, RIPEMD_DIGEST_SIZE) != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Pass in bad values. */
- if (!flag) {
- b.input = NULL;
- b.inLen = 0;
-
- ret = wc_RipeMdUpdate(&ripemd, (byte*)b.input, (word32)b.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- c.input = NULL;
- c.inLen = RIPEMD_DIGEST_SIZE;
-
- ret = wc_RipeMdUpdate(&ripemd, (byte*)c.input, (word32)c.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_RipeMdUpdate(NULL, (byte*)a.input, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-
-} /* END test_wc_RipeMdUdpate */
-
-
-
-/*
- * Unit test function for wc_RipeMdFinal()
- */
-static int test_wc_RipeMdFinal (void)
-{
- int flag = 0;
-#ifdef WOLFSSL_RIPEMD
- RipeMd ripemd;
- byte* hash_test[3];
- byte hash1[RIPEMD_DIGEST_SIZE];
- byte hash2[2*RIPEMD_DIGEST_SIZE];
- byte hash3[5*RIPEMD_DIGEST_SIZE];
- int times, i, ret;
-
- /* Initialize */
- ret = wc_InitRipeMd(&ripemd);
- if (ret != 0) {
- flag = ret;
- }
-
- if (!flag) {
- hash_test[0] = hash1;
- hash_test[1] = hash2;
- hash_test[2] = hash3;
- }
-
- times = sizeof(hash_test) / sizeof(byte*);
-
- /* Good test args. */
- printf(testingFmt, "wc_RipeMdFinal()");
- /* Testing oversized buffers. */
- for (i = 0; i < times; i++) {
- if (!flag) {
- ret = wc_RipeMdFinal(&ripemd, hash_test[i]);
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
- }
-
- /* Test bad args. */
- if (!flag) {
- ret = wc_RipeMdFinal(NULL, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_RipeMdFinal(NULL, hash1);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_RipeMdFinal(&ripemd, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_RipeMdFinal */
-
-
-
-
-
-/*
- * Testing wc_InitSha3_224, wc_InitSha3_256, wc_InitSha3_384, and
- * wc_InitSha3_512
- */
-static int test_wc_InitSha3 (void)
-{
- int ret = 0;
-#if defined(WOLFSSL_SHA3)
- wc_Sha3 sha3;
-
- (void)sha3;
-
- #if !defined(WOLFSSL_NOSHA3_224)
- printf(testingFmt, "wc_InitSha3_224()");
-
- ret = wc_InitSha3_224(&sha3, HEAP_HINT, devId);
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_InitSha3_224(NULL, HEAP_HINT, devId);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- wc_Sha3_224_Free(&sha3);
- printf(resultFmt, ret == 0 ? passed : failed);
- #endif /* NOSHA3_224 */
- #if !defined(WOLFSSL_NOSHA3_256)
- if (ret == 0) {
- printf(testingFmt, "wc_InitSha3_256()");
-
- ret = wc_InitSha3_256(&sha3, HEAP_HINT, devId);
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_InitSha3_256(NULL, HEAP_HINT, devId);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- wc_Sha3_256_Free(&sha3);
- printf(resultFmt, ret == 0 ? passed : failed);
- } /* END sha3_256 */
- #endif /* NOSHA3_256 */
- #if !defined(WOLFSSL_NOSHA3_384)
- if (ret == 0) {
- printf(testingFmt, "wc_InitSha3_384()");
-
- ret = wc_InitSha3_384(&sha3, HEAP_HINT, devId);
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_InitSha3_384(NULL, HEAP_HINT, devId);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- wc_Sha3_384_Free(&sha3);
- printf(resultFmt, ret == 0 ? passed : failed);
- } /* END sha3_384 */
- #endif /* NOSHA3_384 */
- #if !defined(WOLFSSL_NOSHA3_512)
- if (ret == 0) {
- printf(testingFmt, "wc_InitSha3_512()");
-
- ret = wc_InitSha3_512(&sha3, HEAP_HINT, devId);
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_InitSha3_512(NULL, HEAP_HINT, devId);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- wc_Sha3_512_Free(&sha3);
- printf(resultFmt, ret == 0 ? passed : failed);
- } /* END sha3_512 */
- #endif /* NOSHA3_512 */
-#endif
- return ret;
-
-} /* END test_wc_InitSha3 */
-
-
-/*
- * Testing wc_Sha3_Update()
- */
-static int testing_wc_Sha3_Update (void)
-{
- int ret = 0;
-
-#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_XILINX_CRYPT) && \
- !defined(WOLFSSL_AFALG_XILINX)
- wc_Sha3 sha3;
- byte msg[] = "Everybody's working for the weekend.";
- byte msg2[] = "Everybody gets Friday off.";
- byte msgCmp[] = "\x45\x76\x65\x72\x79\x62\x6f\x64\x79\x27\x73\x20"
- "\x77\x6f\x72\x6b\x69\x6e\x67\x20\x66\x6f\x72\x20\x74"
- "\x68\x65\x20\x77\x65\x65\x6b\x65\x6e\x64\x2e\x45\x76"
- "\x65\x72\x79\x62\x6f\x64\x79\x20\x67\x65\x74\x73\x20"
- "\x46\x72\x69\x64\x61\x79\x20\x6f\x66\x66\x2e";
- word32 msglen = sizeof(msg) - 1;
- word32 msg2len = sizeof(msg2);
- word32 msgCmplen = sizeof(msgCmp);
-
- #if !defined(WOLFSSL_NOSHA3_224)
- printf(testingFmt, "wc_Sha3_224_Update()");
-
- ret = wc_InitSha3_224(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
-
- ret = wc_Sha3_224_Update(&sha3, msg, msglen);
- if (XMEMCMP(msg, sha3.t, msglen) || sha3.i != msglen) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (ret == 0) {
- ret = wc_Sha3_224_Update(&sha3, msg2, msg2len);
- if (ret == 0 && XMEMCMP(sha3.t, msgCmp, msgCmplen) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Pass bad args. */
- if (ret == 0) {
- ret = wc_Sha3_224_Update(NULL, msg2, msg2len);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Sha3_224_Update(&sha3, NULL, 5);
- }
- if (ret == BAD_FUNC_ARG) {
- wc_Sha3_224_Free(&sha3);
- if (wc_InitSha3_224(&sha3, HEAP_HINT, devId)) {
- return ret;
- }
- ret = wc_Sha3_224_Update(&sha3, NULL, 0);
- if (ret == 0) {
- ret = wc_Sha3_224_Update(&sha3, msg2, msg2len);
- }
- if (ret == 0 && XMEMCMP(msg2, sha3.t, msg2len) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- }
- wc_Sha3_224_Free(&sha3);
-
- printf(resultFmt, ret == 0 ? passed : failed);
- #endif /* SHA3_224 */
-
- #if !defined(WOLFSSL_NOSHA3_256)
- if (ret == 0) {
- printf(testingFmt, "wc_Sha3_256_Update()");
-
- ret = wc_InitSha3_256(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
- ret = wc_Sha3_256_Update(&sha3, msg, msglen);
- if (XMEMCMP(msg, sha3.t, msglen) || sha3.i != msglen) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (ret == 0) {
- ret = wc_Sha3_256_Update(&sha3, msg2, msg2len);
- if (XMEMCMP(sha3.t, msgCmp, msgCmplen) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Pass bad args. */
- if (ret == 0) {
- ret = wc_Sha3_256_Update(NULL, msg2, msg2len);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Sha3_256_Update(&sha3, NULL, 5);
- }
- if (ret == BAD_FUNC_ARG) {
- wc_Sha3_256_Free(&sha3);
- if (wc_InitSha3_256(&sha3, HEAP_HINT, devId)) {
- return ret;
- }
- ret = wc_Sha3_256_Update(&sha3, NULL, 0);
- if (ret == 0) {
- ret = wc_Sha3_256_Update(&sha3, msg2, msg2len);
- }
- if (ret == 0 && XMEMCMP(msg2, sha3.t, msg2len) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- }
- wc_Sha3_256_Free(&sha3);
-
- printf(resultFmt, ret == 0 ? passed : failed);
- }
- #endif /* SHA3_256 */
-
- #if !defined(WOLFSSL_NOSHA3_384)
- if (ret == 0) {
- printf(testingFmt, "wc_Sha3_384_Update()");
-
- ret = wc_InitSha3_384(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
- ret = wc_Sha3_384_Update(&sha3, msg, msglen);
- if (XMEMCMP(msg, sha3.t, msglen) || sha3.i != msglen) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (ret == 0) {
- ret = wc_Sha3_384_Update(&sha3, msg2, msg2len);
- if (XMEMCMP(sha3.t, msgCmp, msgCmplen) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Pass bad args. */
- if (ret == 0) {
- ret = wc_Sha3_384_Update(NULL, msg2, msg2len);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Sha3_384_Update(&sha3, NULL, 5);
- }
- if (ret == BAD_FUNC_ARG) {
- wc_Sha3_384_Free(&sha3);
- if (wc_InitSha3_384(&sha3, HEAP_HINT, devId)) {
- return ret;
- }
- ret = wc_Sha3_384_Update(&sha3, NULL, 0);
- if (ret == 0) {
- ret = wc_Sha3_384_Update(&sha3, msg2, msg2len);
- }
- if (ret == 0 && XMEMCMP(msg2, sha3.t, msg2len) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- }
- wc_Sha3_384_Free(&sha3);
-
- printf(resultFmt, ret == 0 ? passed : failed);
- }
- #endif /* SHA3_384 */
-
- #if !defined(WOLFSSL_NOSHA3_512)
- if (ret == 0) {
- printf(testingFmt, "wc_Sha3_512_Update()");
-
- ret = wc_InitSha3_512(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
- ret = wc_Sha3_512_Update(&sha3, msg, msglen);
- if (XMEMCMP(msg, sha3.t, msglen) || sha3.i != msglen) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (ret == 0) {
- ret = wc_Sha3_512_Update(&sha3, msg2, msg2len);
- if (XMEMCMP(sha3.t, msgCmp, msgCmplen) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Pass bad args. */
- if (ret == 0) {
- ret = wc_Sha3_512_Update(NULL, msg2, msg2len);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Sha3_512_Update(&sha3, NULL, 5);
- }
- if (ret == BAD_FUNC_ARG) {
- wc_Sha3_512_Free(&sha3);
- if (wc_InitSha3_512(&sha3, HEAP_HINT, devId)) {
- return ret;
- }
- ret = wc_Sha3_512_Update(&sha3, NULL, 0);
- if (ret == 0) {
- ret = wc_Sha3_512_Update(&sha3, msg2, msg2len);
- }
- if (ret == 0 && XMEMCMP(msg2, sha3.t, msg2len) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- }
- wc_Sha3_512_Free(&sha3);
- printf(resultFmt, ret == 0 ? passed : failed);
- }
- #endif /* SHA3_512 */
-#endif /* WOLFSSL_SHA3 */
- return ret;
-
-} /* END testing_wc_Sha3_Update */
-
-/*
- * Testing wc_Sha3_224_Final()
- */
-static int test_wc_Sha3_224_Final (void)
-{
- int ret = 0;
-
-#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_224)
- wc_Sha3 sha3;
- const char* msg = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnom"
- "nopnopq";
- const char* expOut = "\x8a\x24\x10\x8b\x15\x4a\xda\x21\xc9\xfd\x55"
- "\x74\x49\x44\x79\xba\x5c\x7e\x7a\xb7\x6e\xf2"
- "\x64\xea\xd0\xfc\xce\x33";
- byte hash[WC_SHA3_224_DIGEST_SIZE];
- byte hashRet[WC_SHA3_224_DIGEST_SIZE];
-
- /* Init stack variables. */
- XMEMSET(hash, 0, sizeof(hash));
-
- printf(testingFmt, "wc_Sha3_224_Final()");
-
- ret = wc_InitSha3_224(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
-
- ret= wc_Sha3_224_Update(&sha3, (byte*)msg, (word32)XSTRLEN(msg));
- if (ret == 0) {
- ret = wc_Sha3_224_Final(&sha3, hash);
- if (ret == 0 && XMEMCMP(expOut, hash, WC_SHA3_224_DIGEST_SIZE) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_Sha3_224_Final(NULL, hash);
- if (ret == 0) {
- ret = wc_Sha3_224_Final(&sha3, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- wc_Sha3_224_Free(&sha3);
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (ret == 0) {
- printf(testingFmt, "wc_Sha3_224_GetHash()");
-
- ret = wc_InitSha3_224(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
-
- /* Init stack variables. */
- XMEMSET(hash, 0, sizeof(hash));
- XMEMSET(hashRet, 0, sizeof(hashRet));
-
- ret= wc_Sha3_224_Update(&sha3, (byte*)msg, (word32)XSTRLEN(msg));
- if (ret == 0) {
- ret = wc_Sha3_224_GetHash(&sha3, hashRet);
- }
-
- if (ret == 0) {
- ret = wc_Sha3_224_Final(&sha3, hash);
- if (ret == 0 && XMEMCMP(hash, hashRet, WC_SHA3_224_DIGEST_SIZE) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- if (ret == 0) {
- /* Test bad args. */
- ret = wc_Sha3_224_GetHash(NULL, hashRet);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Sha3_224_GetHash(&sha3, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- }
-
- wc_Sha3_224_Free(&sha3);
-#endif
- return ret;
-} /* END test_wc_Sha3_224_Final */
-
-
-/*
- * Testing wc_Sha3_256_Final()
- */
-static int test_wc_Sha3_256_Final (void)
-{
- int ret = 0;
-
-#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_256)
- wc_Sha3 sha3;
- const char* msg = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnom"
- "nopnopq";
- const char* expOut = "\x41\xc0\xdb\xa2\xa9\xd6\x24\x08\x49\x10\x03\x76\xa8"
- "\x23\x5e\x2c\x82\xe1\xb9\x99\x8a\x99\x9e\x21\xdb\x32"
- "\xdd\x97\x49\x6d\x33\x76";
- byte hash[WC_SHA3_256_DIGEST_SIZE];
- byte hashRet[WC_SHA3_256_DIGEST_SIZE];
-
- /* Init stack variables. */
- XMEMSET(hash, 0, sizeof(hash));
-
- printf(testingFmt, "wc_Sha3_256_Final()");
-
- ret = wc_InitSha3_256(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
-
- ret= wc_Sha3_256_Update(&sha3, (byte*)msg, (word32)XSTRLEN(msg));
- if (ret == 0) {
- ret = wc_Sha3_256_Final(&sha3, hash);
- if (ret == 0 && XMEMCMP(expOut, hash, WC_SHA3_256_DIGEST_SIZE) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_Sha3_256_Final(NULL, hash);
- if (ret == 0) {
- ret = wc_Sha3_256_Final(&sha3, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- wc_Sha3_256_Free(&sha3);
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (ret == 0) {
- printf(testingFmt, "wc_Sha3_256_GetHash()");
-
- ret = wc_InitSha3_256(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
- /* Init stack variables. */
- XMEMSET(hash, 0, sizeof(hash));
- XMEMSET(hashRet, 0, sizeof(hashRet));
-
- ret= wc_Sha3_256_Update(&sha3, (byte*)msg, (word32)XSTRLEN(msg));
- if (ret == 0) {
- ret = wc_Sha3_256_GetHash(&sha3, hashRet);
- }
- if (ret == 0) {
- ret = wc_Sha3_256_Final(&sha3, hash);
- if (ret == 0 && XMEMCMP(hash, hashRet, WC_SHA3_256_DIGEST_SIZE) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- if (ret == 0) {
- /* Test bad args. */
- ret = wc_Sha3_256_GetHash(NULL, hashRet);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Sha3_256_GetHash(&sha3, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- }
-
- wc_Sha3_256_Free(&sha3);
-#endif
- return ret;
-} /* END test_wc_Sha3_256_Final */
-
-
-/*
- * Testing wc_Sha3_384_Final()
- */
-static int test_wc_Sha3_384_Final (void)
-{
- int ret = 0;
-
-#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_384)
- wc_Sha3 sha3;
- const char* msg = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnom"
- "nopnopq";
- const char* expOut = "\x99\x1c\x66\x57\x55\xeb\x3a\x4b\x6b\xbd\xfb\x75\xc7"
- "\x8a\x49\x2e\x8c\x56\xa2\x2c\x5c\x4d\x7e\x42\x9b\xfd"
- "\xbc\x32\xb9\xd4\xad\x5a\xa0\x4a\x1f\x07\x6e\x62\xfe"
- "\xa1\x9e\xef\x51\xac\xd0\x65\x7c\x22";
- byte hash[WC_SHA3_384_DIGEST_SIZE];
- byte hashRet[WC_SHA3_384_DIGEST_SIZE];
-
- /* Init stack variables. */
- XMEMSET(hash, 0, sizeof(hash));
-
- printf(testingFmt, "wc_Sha3_384_Final()");
-
- ret = wc_InitSha3_384(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
-
- ret= wc_Sha3_384_Update(&sha3, (byte*)msg, (word32)XSTRLEN(msg));
- if (ret == 0) {
- ret = wc_Sha3_384_Final(&sha3, hash);
- if (ret == 0 && XMEMCMP(expOut, hash, WC_SHA3_384_DIGEST_SIZE) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_Sha3_384_Final(NULL, hash);
- if (ret == 0) {
- ret = wc_Sha3_384_Final(&sha3, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- wc_Sha3_384_Free(&sha3);
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (ret == 0) {
- printf(testingFmt, "wc_Sha3_384_GetHash()");
-
- ret = wc_InitSha3_384(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
- /* Init stack variables. */
- XMEMSET(hash, 0, sizeof(hash));
- XMEMSET(hashRet, 0, sizeof(hashRet));
-
- ret= wc_Sha3_384_Update(&sha3, (byte*)msg, (word32)XSTRLEN(msg));
- if (ret == 0) {
- ret = wc_Sha3_384_GetHash(&sha3, hashRet);
- }
- if (ret == 0) {
- ret = wc_Sha3_384_Final(&sha3, hash);
- if (ret == 0 && XMEMCMP(hash, hashRet, WC_SHA3_384_DIGEST_SIZE) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- if (ret == 0) {
- /* Test bad args. */
- ret = wc_Sha3_384_GetHash(NULL, hashRet);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Sha3_384_GetHash(&sha3, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- }
-
- wc_Sha3_384_Free(&sha3);
-#endif
- return ret;
-} /* END test_wc_Sha3_384_Final */
-
-
-
-/*
- * Testing wc_Sha3_512_Final()
- */
-static int test_wc_Sha3_512_Final (void)
-{
- int ret = 0;
-
-#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_512) && \
- !defined(WOLFSSL_NOSHA3_384)
- wc_Sha3 sha3;
- const char* msg = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnom"
- "nopnopq";
- const char* expOut = "\x04\xa3\x71\xe8\x4e\xcf\xb5\xb8\xb7\x7c\xb4\x86\x10"
- "\xfc\xa8\x18\x2d\xd4\x57\xce\x6f\x32\x6a\x0f\xd3\xd7"
- "\xec\x2f\x1e\x91\x63\x6d\xee\x69\x1f\xbe\x0c\x98\x53"
- "\x02\xba\x1b\x0d\x8d\xc7\x8c\x08\x63\x46\xb5\x33\xb4"
- "\x9c\x03\x0d\x99\xa2\x7d\xaf\x11\x39\xd6\xe7\x5e";
- byte hash[WC_SHA3_512_DIGEST_SIZE];
- byte hashRet[WC_SHA3_512_DIGEST_SIZE];
-
- /* Init stack variables. */
- XMEMSET(hash, 0, sizeof(hash));
-
- printf(testingFmt, "wc_Sha3_512_Final()");
-
- ret = wc_InitSha3_512(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
-
- ret= wc_Sha3_512_Update(&sha3, (byte*)msg, (word32)XSTRLEN(msg));
- if (ret == 0) {
- ret = wc_Sha3_512_Final(&sha3, hash);
- if (ret == 0 && XMEMCMP(expOut, hash, WC_SHA3_512_DIGEST_SIZE) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_Sha3_512_Final(NULL, hash);
- if (ret == 0) {
- ret = wc_Sha3_384_Final(&sha3, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- wc_Sha3_512_Free(&sha3);
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (ret == 0) {
- printf(testingFmt, "wc_Sha3_512_GetHash()");
-
- ret = wc_InitSha3_512(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
- /* Init stack variables. */
- XMEMSET(hash, 0, sizeof(hash));
- XMEMSET(hashRet, 0, sizeof(hashRet));
-
- ret= wc_Sha3_512_Update(&sha3, (byte*)msg, (word32)XSTRLEN(msg));
- if (ret == 0) {
- ret = wc_Sha3_512_GetHash(&sha3, hashRet);
- }
- if (ret == 0) {
- ret = wc_Sha3_512_Final(&sha3, hash);
- if (ret == 0 && XMEMCMP(hash, hashRet, WC_SHA3_512_DIGEST_SIZE) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- if (ret == 0) {
- /* Test bad args. */
- ret = wc_Sha3_512_GetHash(NULL, hashRet);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Sha3_512_GetHash(&sha3, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- }
-
- wc_Sha3_512_Free(&sha3);
-#endif
- return ret;
-} /* END test_wc_Sha3_512_Final */
-
-
-/*
- * Testing wc_Sha3_224_Copy()
- */
-static int test_wc_Sha3_224_Copy (void)
-{
- int ret = 0;
-#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_224)
- wc_Sha3 sha3, sha3Cpy;
- const char* msg = "Everyone gets Friday off.";
- word32 msglen = (word32)XSTRLEN(msg);
- byte hash[WC_SHA3_224_DIGEST_SIZE];
- byte hashCpy[WC_SHA3_224_DIGEST_SIZE];
-
- XMEMSET(hash, 0, sizeof(hash));
- XMEMSET(hashCpy, 0, sizeof(hashCpy));
-
- printf(testingFmt, "wc_Sha3_224_Copy()");
-
- ret = wc_InitSha3_224(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
-
- ret = wc_InitSha3_224(&sha3Cpy, HEAP_HINT, devId);
- if (ret != 0) {
- wc_Sha3_224_Free(&sha3);
- return ret;
- }
-
- ret = wc_Sha3_224_Update(&sha3, (byte*)msg, msglen);
-
- if (ret == 0) {
- ret = wc_Sha3_224_Copy(&sha3Cpy, &sha3);
- if (ret == 0) {
- ret = wc_Sha3_224_Final(&sha3, hash);
- if (ret == 0) {
- ret = wc_Sha3_224_Final(&sha3Cpy, hashCpy);
- }
- }
- if (ret == 0 && XMEMCMP(hash, hashCpy, sizeof(hash)) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_Sha3_224_Copy(NULL, &sha3);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Sha3_224_Copy(&sha3Cpy, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_Sha3_224_Copy */
-
-
-
-/*
- * Testing wc_Sha3_256_Copy()
- */
-static int test_wc_Sha3_256_Copy (void)
-{
- int ret = 0;
-#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_256)
- wc_Sha3 sha3, sha3Cpy;
- const char* msg = "Everyone gets Friday off.";
- word32 msglen = (word32)XSTRLEN(msg);
- byte hash[WC_SHA3_256_DIGEST_SIZE];
- byte hashCpy[WC_SHA3_256_DIGEST_SIZE];
-
- XMEMSET(hash, 0, sizeof(hash));
- XMEMSET(hashCpy, 0, sizeof(hashCpy));
-
- printf(testingFmt, "wc_Sha3_256_Copy()");
-
- ret = wc_InitSha3_256(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
-
- ret = wc_InitSha3_256(&sha3Cpy, HEAP_HINT, devId);
- if (ret != 0) {
- wc_Sha3_256_Free(&sha3);
- return ret;
- }
-
- ret = wc_Sha3_256_Update(&sha3, (byte*)msg, msglen);
-
- if (ret == 0) {
- ret = wc_Sha3_256_Copy(&sha3Cpy, &sha3);
- if (ret == 0) {
- ret = wc_Sha3_256_Final(&sha3, hash);
- if (ret == 0) {
- ret = wc_Sha3_256_Final(&sha3Cpy, hashCpy);
- }
- }
- if (ret == 0 && XMEMCMP(hash, hashCpy, sizeof(hash)) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_Sha3_256_Copy(NULL, &sha3);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Sha3_256_Copy(&sha3Cpy, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_Sha3_256_Copy */
-
-
-
-/*
- * Testing wc_Sha3_384_Copy()
- */
-static int test_wc_Sha3_384_Copy (void)
-{
- int ret = 0;
-#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_384)
- wc_Sha3 sha3, sha3Cpy;
- const char* msg = "Everyone gets Friday off.";
- word32 msglen = (word32)XSTRLEN(msg);
- byte hash[WC_SHA3_384_DIGEST_SIZE];
- byte hashCpy[WC_SHA3_384_DIGEST_SIZE];
-
- XMEMSET(hash, 0, sizeof(hash));
- XMEMSET(hashCpy, 0, sizeof(hashCpy));
-
- printf(testingFmt, "wc_Sha3_384_Copy()");
-
- ret = wc_InitSha3_384(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
-
- ret = wc_InitSha3_384(&sha3Cpy, HEAP_HINT, devId);
- if (ret != 0) {
- wc_Sha3_384_Free(&sha3);
- return ret;
- }
-
- ret = wc_Sha3_384_Update(&sha3, (byte*)msg, msglen);
-
- if (ret == 0) {
- ret = wc_Sha3_384_Copy(&sha3Cpy, &sha3);
- if (ret == 0) {
- ret = wc_Sha3_384_Final(&sha3, hash);
- if (ret == 0) {
- ret = wc_Sha3_384_Final(&sha3Cpy, hashCpy);
- }
- }
- if (ret == 0 && XMEMCMP(hash, hashCpy, sizeof(hash)) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_Sha3_384_Copy(NULL, &sha3);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Sha3_384_Copy(&sha3Cpy, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_Sha3_384_Copy */
-
-
-/*
- * Testing wc_Sha3_512_Copy()
- */
-static int test_wc_Sha3_512_Copy (void)
-{
- int ret = 0;
-
-#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_512)
- wc_Sha3 sha3, sha3Cpy;
- const char* msg = "Everyone gets Friday off.";
- word32 msglen = (word32)XSTRLEN(msg);
- byte hash[WC_SHA3_512_DIGEST_SIZE];
- byte hashCpy[WC_SHA3_512_DIGEST_SIZE];
-
- XMEMSET(hash, 0, sizeof(hash));
- XMEMSET(hashCpy, 0, sizeof(hashCpy));
-
-
- printf(testingFmt, "wc_Sha3_512_Copy()");
-
- ret = wc_InitSha3_512(&sha3, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
-
- ret = wc_InitSha3_512(&sha3Cpy, HEAP_HINT, devId);
- if (ret != 0) {
- wc_Sha3_512_Free(&sha3);
- return ret;
- }
-
- ret = wc_Sha3_512_Update(&sha3, (byte*)msg, msglen);
-
- if (ret == 0) {
- ret = wc_Sha3_512_Copy(&sha3Cpy, &sha3);
- if (ret == 0) {
- ret = wc_Sha3_512_Final(&sha3, hash);
- if (ret == 0) {
- ret = wc_Sha3_512_Final(&sha3Cpy, hashCpy);
- }
- }
- if (ret == 0 && XMEMCMP(hash, hashCpy, sizeof(hash)) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_Sha3_512_Copy(NULL, &sha3);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Sha3_512_Copy(&sha3Cpy, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_Sha3_512_Copy */
-
-
-
-
-static int test_wc_InitShake256 (void)
-{
- int ret = 0;
-#if defined(WOLFSSL_SHAKE256) && !defined(WOLFSSL_NO_SHAKE256)
- wc_Shake shake;
-
- printf(testingFmt, "wc_InitShake256()");
-
- ret = wc_InitShake256(&shake, HEAP_HINT, devId);
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_InitShake256(NULL, HEAP_HINT, devId);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- wc_Shake256_Free(&shake);
- printf(resultFmt, ret == 0 ? passed : failed);
-#endif
- return ret;
-
-} /* END test_wc_InitSha3 */
-
-
-static int testing_wc_Shake256_Update (void)
-{
- int ret = 0;
-
-#if defined(WOLFSSL_SHAKE256) && !defined(WOLFSSL_NO_SHAKE256)
- wc_Shake shake;
- byte msg[] = "Everybody's working for the weekend.";
- byte msg2[] = "Everybody gets Friday off.";
- byte msgCmp[] = "\x45\x76\x65\x72\x79\x62\x6f\x64\x79\x27\x73\x20"
- "\x77\x6f\x72\x6b\x69\x6e\x67\x20\x66\x6f\x72\x20\x74"
- "\x68\x65\x20\x77\x65\x65\x6b\x65\x6e\x64\x2e\x45\x76"
- "\x65\x72\x79\x62\x6f\x64\x79\x20\x67\x65\x74\x73\x20"
- "\x46\x72\x69\x64\x61\x79\x20\x6f\x66\x66\x2e";
- word32 msglen = sizeof(msg) - 1;
- word32 msg2len = sizeof(msg2);
- word32 msgCmplen = sizeof(msgCmp);
-
- printf(testingFmt, "wc_Shake256_Update()");
-
- ret = wc_InitShake256(&shake, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
- ret = wc_Shake256_Update(&shake, msg, msglen);
- if (XMEMCMP(msg, shake.t, msglen) || shake.i != msglen) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (ret == 0) {
- ret = wc_Shake256_Update(&shake, msg2, msg2len);
- if (XMEMCMP(shake.t, msgCmp, msgCmplen) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Pass bad args. */
- if (ret == 0) {
- ret = wc_Shake256_Update(NULL, msg2, msg2len);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Shake256_Update(&shake, NULL, 5);
- }
- if (ret == BAD_FUNC_ARG) {
- wc_Shake256_Free(&shake);
- if (wc_InitShake256(&shake, HEAP_HINT, devId)) {
- return ret;
- }
- ret = wc_Shake256_Update(&shake, NULL, 0);
- if (ret == 0) {
- ret = wc_Shake256_Update(&shake, msg2, msg2len);
- }
- if (ret == 0 && XMEMCMP(msg2, shake.t, msg2len) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- }
- wc_Shake256_Free(&shake);
-
- printf(resultFmt, ret == 0 ? passed : failed);
-#endif /* WOLFSSL_SHAKE256 && !WOLFSSL_NO_SHAKE256 */
-
- return ret;
-
-}
-
-static int test_wc_Shake256_Final (void)
-{
- int ret = 0;
-
-#if defined(WOLFSSL_SHAKE256) && !defined(WOLFSSL_NO_SHAKE256)
- wc_Shake shake;
- const char* msg = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnom"
- "nopnopq";
- const char* expOut = "\x4d\x8c\x2d\xd2\x43\x5a\x01\x28\xee\xfb\xb8\xc3\x6f"
- "\x6f\x87\x13\x3a\x79\x11\xe1\x8d\x97\x9e\xe1\xae\x6b"
- "\xe5\xd4\xfd\x2e\x33\x29\x40\xd8\x68\x8a\x4e\x6a\x59"
- "\xaa\x80\x60\xf1\xf9\xbc\x99\x6c\x05\xac\xa3\xc6\x96"
- "\xa8\xb6\x62\x79\xdc\x67\x2c\x74\x0b\xb2\x24\xec\x37"
- "\xa9\x2b\x65\xdb\x05\x39\xc0\x20\x34\x55\xf5\x1d\x97"
- "\xcc\xe4\xcf\xc4\x91\x27\xd7\x26\x0a\xfc\x67\x3a\xf2"
- "\x08\xba\xf1\x9b\xe2\x12\x33\xf3\xde\xbe\x78\xd0\x67"
- "\x60\xcf\xa5\x51\xee\x1e\x07\x91\x41\xd4";
- byte hash[114];
-
- /* Init stack variables. */
- XMEMSET(hash, 0, sizeof(hash));
-
- printf(testingFmt, "wc_Shake256_Final()");
-
- ret = wc_InitShake256(&shake, HEAP_HINT, devId);
- if (ret != 0) {
- return ret;
- }
-
- ret= wc_Shake256_Update(&shake, (byte*)msg, (word32)XSTRLEN(msg));
- if (ret == 0) {
- ret = wc_Shake256_Final(&shake, hash, (word32)sizeof(hash));
- if (ret == 0 && XMEMCMP(expOut, hash, (word32)sizeof(hash)) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_Shake256_Final(NULL, hash, (word32)sizeof(hash));
- if (ret == 0) {
- ret = wc_Shake256_Final(&shake, NULL, (word32)sizeof(hash));
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- wc_Shake256_Free(&shake);
- printf(resultFmt, ret == 0 ? passed : failed);
-#endif
- return ret;
-}
-
-
-
-/*
- * unit test for wc_IdeaSetKey()
- */
-static int test_wc_IdeaSetKey (void)
-{
- int ret = 0;
-#ifdef HAVE_IDEA
-
- Idea idea;
- const byte key[] =
- {
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37
- };
- int flag = 0;
-
- printf(testingFmt, "wc_IdeaSetKey()");
- /*IV can be NULL, default value is 0*/
- ret = wc_IdeaSetKey(&idea, key, IDEA_KEY_SIZE, NULL, IDEA_ENCRYPTION);
- if (ret == 0) {
- ret = wc_IdeaSetKey(&idea, key, IDEA_KEY_SIZE, NULL, IDEA_DECRYPTION);
- }
- /* Bad args. */
- if (ret == 0) {
- ret = wc_IdeaSetKey(NULL, key, IDEA_KEY_SIZE, NULL, IDEA_ENCRYPTION);
- if (ret != BAD_FUNC_ARG) {
- flag = 1;
- }
- ret = wc_IdeaSetKey(&idea, NULL, IDEA_KEY_SIZE, NULL, IDEA_ENCRYPTION);
- if (ret != BAD_FUNC_ARG) {
- flag = 1;
- }
- ret = wc_IdeaSetKey(&idea, key, IDEA_KEY_SIZE - 1,
- NULL, IDEA_ENCRYPTION);
- if (ret != BAD_FUNC_ARG) {
- flag = 1;
- }
- ret = wc_IdeaSetKey(&idea, key, IDEA_KEY_SIZE, NULL, -1);
- if (ret != BAD_FUNC_ARG) {
- flag = 1;
- }
- if (flag == 1) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- } /* END Test Bad Args. */
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_IdeaSetKey */
-
-/*
- * Unit test for wc_IdeaSetIV()
- */
-static int test_wc_IdeaSetIV (void)
-{
- int ret = 0;
-#ifdef HAVE_IDEA
- Idea idea;
-
- printf(testingFmt, "wc_IdeaSetIV()");
-
- ret = wc_IdeaSetIV(&idea, NULL);
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_IdeaSetIV(NULL, NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-#endif
- return ret;
-
-} /* END test_wc_IdeaSetIV */
-
-/*
- * Unit test for wc_IdeaCipher()
- */
-static int test_wc_IdeaCipher (void)
-{
- int ret = 0;
-#ifdef HAVE_IDEA
- Idea idea;
- const byte key[] =
- {
- 0x2B, 0xD6, 0x45, 0x9F, 0x82, 0xC5, 0xB3, 0x00,
- 0x95, 0x2C, 0x49, 0x10, 0x48, 0x81, 0xFF, 0x48
- };
- const byte plain[] =
- {
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37
- };
- byte enc[sizeof(plain)];
- byte dec[sizeof(enc)];
-
- printf(testingFmt, "wc_IdeaCipher()");
-
- ret = wc_IdeaSetKey(&idea, key, IDEA_KEY_SIZE, NULL, IDEA_ENCRYPTION);
- if (ret == 0) {
- ret = wc_IdeaCipher(&idea, enc, plain);
- if (ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- if (ret == 0) {
- ret = wc_IdeaSetKey(&idea, key, IDEA_KEY_SIZE, NULL, IDEA_DECRYPTION);
- if (ret == 0) {
- ret = wc_IdeaCipher(&idea, dec, enc);
- }
- if (ret == 0) {
- ret = XMEMCMP(plain, dec, IDEA_BLOCK_SIZE);
- }
- if (ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Pass Bad Args. */
- if (ret == 0) {
- ret = wc_IdeaCipher(NULL, enc, dec);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_IdeaCipher(&idea, NULL, dec);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_IdeaCipher(&idea, enc, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-} /* END test_wc_IdeaCipher */
-
-/*
- * Unit test for functions wc_IdeaCbcEncrypt and wc_IdeaCbcDecrypt
- */
-static int test_wc_IdeaCbcEncyptDecrypt (void)
-{
- int ret = 0;
-#ifdef HAVE_IDEA
- Idea idea;
- const byte key[] =
- {
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37,
- 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37
- };
- const char* message = "International Data Encryption Algorithm";
- byte msg_enc[40];
- byte msg_dec[40];
-
- printf(testingFmt, "wc_IdeaCbcEncrypt()");
-
- ret = wc_IdeaSetKey(&idea, key, sizeof(key), NULL, IDEA_ENCRYPTION);
- if (ret == 0) {
- ret = wc_IdeaCbcEncrypt(&idea, msg_enc, (byte *)message,
- (word32)XSTRLEN(message) + 1);
- }
- if (ret == 0) {
- ret = wc_IdeaSetKey(&idea, key, sizeof(key), NULL, IDEA_DECRYPTION);
- }
- if (ret == 0) {
- ret = wc_IdeaCbcDecrypt(&idea, msg_dec, msg_enc,
- (word32)XSTRLEN(message) + 1);
- if (XMEMCMP(message, msg_dec, (word32)XSTRLEN(message))) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Test bad args. Enc */
- if (ret == 0) {
- ret = wc_IdeaCbcEncrypt(NULL, msg_enc, (byte*)message,
- (word32)XSTRLEN(message) + 1);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_IdeaCbcEncrypt(&idea, NULL, (byte*)message,
- (word32)XSTRLEN(message) + 1);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_IdeaCbcEncrypt(&idea, msg_enc, NULL,
- (word32)XSTRLEN(message) + 1);
- }
- if (ret != BAD_FUNC_ARG) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- } /* END test bad args ENC */
-
- /* Test bad args DEC */
- if (ret == 0) {
- ret = wc_IdeaCbcDecrypt(NULL, msg_dec, msg_enc,
- (word32)XSTRLEN(message) + 1);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_IdeaCbcDecrypt(&idea, NULL, msg_enc,
- (word32)XSTRLEN(message) + 1);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_IdeaCbcDecrypt(&idea, msg_dec, NULL,
- (word32)XSTRLEN(message) + 1);
- }
- if (ret != BAD_FUNC_ARG) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_IdeaCbcEncryptDecrypt */
-
-
-/*
- * Test function for wc_HmacSetKey
- */
-static int test_wc_Md5HmacSetKey (void)
-{
- int flag = 0;
-#if !defined(NO_HMAC) && !defined(NO_MD5)
- Hmac hmac;
- int ret, times, itr;
-
- const char* keys[]=
- {
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
-#ifndef HAVE_FIPS
- "Jefe", /* smaller than minimum FIPS key size */
-#endif
- "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
- };
-
- times = sizeof(keys) / sizeof(char*);
- flag = 0;
-
- printf(testingFmt, "wc_HmacSetKey() with MD5");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- for (itr = 0; itr < times; itr++) {
- ret = wc_HmacSetKey(&hmac, WC_MD5, (byte*)keys[itr],
- (word32)XSTRLEN(keys[itr]));
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Bad args. */
- if (!flag) {
- ret = wc_HmacSetKey(NULL, WC_MD5, (byte*)keys[0],
- (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, WC_MD5, NULL, (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, 20, (byte*)keys[0],
- (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, WC_MD5, (byte*)keys[0], 0);
-#ifdef HAVE_FIPS
- if (ret != HMAC_MIN_KEYLEN_E) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-#else
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-#endif
- }
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Md5HmacSetKey */
-
-
-/*
- * testing wc_HmacSetKey() on wc_Sha hash.
- */
-static int test_wc_ShaHmacSetKey (void)
-{
-
- int flag = 0;
-#if !defined(NO_HMAC) && !defined(NO_SHA)
- Hmac hmac;
- int ret, times, itr;
-
- const char* keys[]=
- {
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
- "\x0b\x0b\x0b",
-#ifndef HAVE_FIPS
- "Jefe", /* smaller than minimum FIPS key size */
-#endif
- "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
- "\xAA\xAA\xAA"
- };
-
- times = sizeof(keys) / sizeof(char*);
- flag = 0;
-
- printf(testingFmt, "wc_HmacSetKey() with SHA");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- for (itr = 0; itr < times; itr++) {
- ret = wc_HmacSetKey(&hmac, WC_SHA, (byte*)keys[itr],
- (word32)XSTRLEN(keys[itr]));
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Bad args. */
- if (!flag) {
- ret = wc_HmacSetKey(NULL, WC_SHA, (byte*)keys[0],
- (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, WC_SHA, NULL, (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, 20, (byte*)keys[0],
- (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, WC_SHA, (byte*)keys[0], 0);
-#ifdef HAVE_FIPS
- if (ret != HMAC_MIN_KEYLEN_E) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-#else
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-#endif
- }
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_ShaHmacSetKey() */
-
-/*
- * testing wc_HmacSetKey() on Sha224 hash.
- */
-static int test_wc_Sha224HmacSetKey (void)
-{
-
- int flag = 0;
-#if !defined(NO_HMAC) && defined(WOLFSSL_SHA224)
- Hmac hmac;
- int ret, times, itr;
-
- const char* keys[]=
- {
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
- "\x0b\x0b\x0b",
-#ifndef HAVE_FIPS
- "Jefe", /* smaller than minimum FIPS key size */
-#endif
- "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
- "\xAA\xAA\xAA"
- };
-
- times = sizeof(keys) / sizeof(char*);
- flag = 0;
-
- printf(testingFmt, "wc_HmacSetKey() with SHA 224");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- for (itr = 0; itr < times; itr++) {
- ret = wc_HmacSetKey(&hmac, WC_SHA224, (byte*)keys[itr],
- (word32)XSTRLEN(keys[itr]));
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Bad args. */
- if (!flag) {
- ret = wc_HmacSetKey(NULL, WC_SHA224, (byte*)keys[0],
- (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, WC_SHA224, NULL, (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, 20, (byte*)keys[0],
- (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, WC_SHA224, (byte*)keys[0], 0);
-#ifdef HAVE_FIPS
- if (ret != HMAC_MIN_KEYLEN_E) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-#else
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-#endif
- }
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Sha224HmacSetKey() */
-
- /*
- * testing wc_HmacSetKey() on Sha256 hash
- */
-static int test_wc_Sha256HmacSetKey (void)
-{
-
- int flag = 0;
-#if !defined(NO_HMAC) && !defined(NO_SHA256)
- Hmac hmac;
- int ret, times, itr;
-
- const char* keys[]=
- {
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
- "\x0b\x0b\x0b",
-#ifndef HAVE_FIPS
- "Jefe", /* smaller than minimum FIPS key size */
-#endif
- "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
- "\xAA\xAA\xAA"
- };
-
- times = sizeof(keys) / sizeof(char*);
- flag = 0;
-
- printf(testingFmt, "wc_HmacSetKey() with SHA256");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- for (itr = 0; itr < times; itr++) {
- ret = wc_HmacSetKey(&hmac, WC_SHA256, (byte*)keys[itr],
- (word32)XSTRLEN(keys[itr]));
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Bad args. */
- if (!flag) {
- ret = wc_HmacSetKey(NULL, WC_SHA256, (byte*)keys[0],
- (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, WC_SHA256, NULL, (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, 20, (byte*)keys[0],
- (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, WC_SHA256, (byte*)keys[0], 0);
-#ifdef HAVE_FIPS
- if (ret != HMAC_MIN_KEYLEN_E) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-#else
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-#endif
- }
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Sha256HmacSetKey() */
-
-
-/*
- * testing wc_HmacSetKey on Sha384 hash.
- */
-static int test_wc_Sha384HmacSetKey (void)
-{
- int flag = 0;
-#if !defined(NO_HMAC) && defined(WOLFSSL_SHA384)
- Hmac hmac;
- int ret, times, itr;
-
- const char* keys[]=
- {
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
- "\x0b\x0b\x0b",
-#ifndef HAVE_FIPS
- "Jefe", /* smaller than minimum FIPS key size */
-#endif
- "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
- "\xAA\xAA\xAA"
- };
-
- times = sizeof(keys) / sizeof(char*);
- flag = 0;
-
- printf(testingFmt, "wc_HmacSetKey() with SHA384");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- for (itr = 0; itr < times; itr++) {
- ret = wc_HmacSetKey(&hmac, WC_SHA384, (byte*)keys[itr],
- (word32)XSTRLEN(keys[itr]));
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Bad args. */
- if (!flag) {
- ret = wc_HmacSetKey(NULL, WC_SHA384, (byte*)keys[0],
- (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, WC_SHA384, NULL, (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, 20, (byte*)keys[0],
- (word32)XSTRLEN(keys[0]));
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacSetKey(&hmac, WC_SHA384, (byte*)keys[0], 0);
-#ifdef HAVE_FIPS
- if (ret != HMAC_MIN_KEYLEN_E) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-#else
- if (ret != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
-#endif
- }
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Sha384HmacSetKey() */
-
-
-/*
- * testing wc_HmacUpdate on wc_Md5 hash.
- */
-static int test_wc_Md5HmacUpdate (void)
-{
- int flag = 0;
-#if !defined(NO_HMAC) && !defined(NO_MD5)
- Hmac hmac;
- testVector a, b;
- int ret;
-#ifdef HAVE_FIPS
- const char* keys =
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b";
-#else
- const char* keys = "Jefe";
-#endif
-
- a.input = "what do ya want for nothing?";
- a.inLen = XSTRLEN(a.input);
-
- b.input = "Hi There";
- b.inLen = XSTRLEN(b.input);
-
- flag = 0;
-
- printf(testingFmt, "wc_HmacUpdate() with MD5");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_HmacSetKey(&hmac, WC_MD5, (byte*)keys, (word32)XSTRLEN(keys));
- if (ret != 0) {
- flag = ret;
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)b.input, (word32)b.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
- /* Update Hmac. */
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Test bad args. */
- if (!flag) {
- ret = wc_HmacUpdate(NULL, (byte*)a.input, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, NULL, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, 0);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Md5HmacUpdate */
-
-/*
- * testing wc_HmacUpdate on SHA hash.
- */
-static int test_wc_ShaHmacUpdate (void)
-{
- int flag = 0;
-#if !defined(NO_HMAC) && !defined(NO_SHA)
- Hmac hmac;
- testVector a, b;
- int ret;
-#ifdef HAVE_FIPS
- const char* keys =
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b";
-#else
- const char* keys = "Jefe";
-#endif
-
- a.input = "what do ya want for nothing?";
- a.inLen = XSTRLEN(a.input);
-
- b.input = "Hi There";
- b.inLen = XSTRLEN(b.input);
-
- flag = 0;
-
- printf(testingFmt, "wc_HmacUpdate() with SHA");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_HmacSetKey(&hmac, WC_SHA, (byte*)keys, (word32)XSTRLEN(keys));
- if (ret != 0) {
- flag = ret;
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)b.input, (word32)b.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
- /* Update Hmac. */
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Test bad args. */
- if (!flag) {
- ret = wc_HmacUpdate(NULL, (byte*)a.input, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, NULL, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, 0);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_ShaHmacUpdate */
-
-/*
- * testing wc_HmacUpdate on SHA224 hash.
- */
-static int test_wc_Sha224HmacUpdate (void)
-{
- int flag = 0;
-#if !defined(NO_HMAC) && defined(WOLFSSL_SHA224)
- Hmac hmac;
- testVector a, b;
- int ret;
-#ifdef HAVE_FIPS
- const char* keys =
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b";
-#else
- const char* keys = "Jefe";
-#endif
-
- a.input = "what do ya want for nothing?";
- a.inLen = XSTRLEN(a.input);
-
- b.input = "Hi There";
- b.inLen = XSTRLEN(b.input);
-
- flag = 0;
-
- printf(testingFmt, "wc_HmacUpdate() with SHA224");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_HmacSetKey(&hmac, WC_SHA224, (byte*)keys, (word32)XSTRLEN(keys));
- if (ret != 0) {
- flag = ret;
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)b.input, (word32)b.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
- /* Update Hmac. */
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Test bad args. */
- if (!flag) {
- ret = wc_HmacUpdate(NULL, (byte*)a.input, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, NULL, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, 0);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Sha224HmacUpdate */
-
-/*
- * testing wc_HmacUpdate on SHA256 hash.
- */
-static int test_wc_Sha256HmacUpdate (void)
-{
- int flag = 0;
-#if !defined(NO_HMAC) && !defined(NO_SHA256)
- Hmac hmac;
- testVector a, b;
- int ret;
-#ifdef HAVE_FIPS
- const char* keys =
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b";
-#else
- const char* keys = "Jefe";
-#endif
-
- a.input = "what do ya want for nothing?";
- a.inLen = XSTRLEN(a.input);
-
- b.input = "Hi There";
- b.inLen = XSTRLEN(b.input);
-
- flag = 0;
-
- printf(testingFmt, "wc_HmacUpdate() with WC_SHA256");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_HmacSetKey(&hmac, WC_SHA256, (byte*)keys, (word32)XSTRLEN(keys));
- if (ret != 0) {
- flag = ret;
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)b.input, (word32)b.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
- /* Update Hmac. */
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Test bad args. */
- if (!flag) {
- ret = wc_HmacUpdate(NULL, (byte*)a.input, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, NULL, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, 0);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Sha256HmacUpdate */
-
-/*
- * testing wc_HmacUpdate on SHA384 hash.
- */
-static int test_wc_Sha384HmacUpdate (void)
-{
- int flag = 0;
-#if !defined(NO_HMAC) && defined(WOLFSSL_SHA384)
- Hmac hmac;
- testVector a, b;
- int ret;
-#ifdef HAVE_FIPS
- const char* keys =
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b";
-#else
- const char* keys = "Jefe";
-#endif
-
- a.input = "what do ya want for nothing?";
- a.inLen = XSTRLEN(a.input);
-
- b.input = "Hi There";
- b.inLen = XSTRLEN(b.input);
-
- flag = 0;
-
- printf(testingFmt, "wc_HmacUpdate() with SHA384");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_HmacSetKey(&hmac, WC_SHA384, (byte*)keys, (word32)XSTRLEN(keys));
- if (ret != 0) {
- flag = ret;
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)b.input, (word32)b.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
- /* Update Hmac. */
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- /* Test bad args. */
- if (!flag) {
- ret = wc_HmacUpdate(NULL, (byte*)a.input, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, NULL, (word32)a.inLen);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, 0);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Sha384HmacUpdate */
-
-/*
- * Testing wc_HmacFinal() with MD5
- */
-
-static int test_wc_Md5HmacFinal (void)
-{
- int flag = 0;
-#if !defined(NO_HMAC) && !defined(NO_MD5)
- Hmac hmac;
- byte hash[WC_MD5_DIGEST_SIZE];
- testVector a;
- int ret;
- const char* key;
-
- key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b";
- a.input = "Hi There";
- a.output = "\x92\x94\x72\x7a\x36\x38\xbb\x1c\x13\xf4\x8e\xf8\x15\x8b\xfc"
- "\x9d";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- flag = 0;
-
- printf(testingFmt, "wc_HmacFinal() with MD5");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_HmacSetKey(&hmac, WC_MD5, (byte*)key, (word32)XSTRLEN(key));
- if (ret != 0) {
- flag = ret;
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_HmacFinal(&hmac, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- if (XMEMCMP(hash, a.output, WC_MD5_DIGEST_SIZE) != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Try bad parameters. */
- if (!flag) {
- ret = wc_HmacFinal(NULL, hash);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
-#ifndef HAVE_FIPS
- if (!flag) {
- ret = wc_HmacFinal(&hmac, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-#endif
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-
-} /* END test_wc_Md5HmacFinal */
-
-/*
- * Testing wc_HmacFinal() with SHA
- */
-static int test_wc_ShaHmacFinal (void)
-{
- int flag = 0;
-#if !defined(NO_HMAC) && !defined(NO_SHA)
- Hmac hmac;
- byte hash[WC_SHA_DIGEST_SIZE];
- testVector a;
- int ret;
- const char* key;
-
- key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
- "\x0b\x0b\x0b";
- a.input = "Hi There";
- a.output = "\xb6\x17\x31\x86\x55\x05\x72\x64\xe2\x8b\xc0\xb6\xfb\x37\x8c"
- "\x8e\xf1\x46\xbe\x00";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- flag = 0;
-
- printf(testingFmt, "wc_HmacFinal() with SHA");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_HmacSetKey(&hmac, WC_SHA, (byte*)key, (word32)XSTRLEN(key));
- if (ret != 0) {
- flag = ret;
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_HmacFinal(&hmac, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- if (XMEMCMP(hash, a.output, WC_SHA_DIGEST_SIZE) != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Try bad parameters. */
- if (!flag) {
- ret = wc_HmacFinal(NULL, hash);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
-#ifndef HAVE_FIPS
- if (!flag) {
- ret = wc_HmacFinal(&hmac, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-#endif
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-
-} /* END test_wc_ShaHmacFinal */
-
-
-/*
- * Testing wc_HmacFinal() with SHA224
- */
-static int test_wc_Sha224HmacFinal (void)
-{
- int flag = 0;
-#if !defined(NO_HMAC) && defined(WOLFSSL_SHA224)
- Hmac hmac;
- byte hash[WC_SHA224_DIGEST_SIZE];
- testVector a;
- int ret;
- const char* key;
-
- key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
- "\x0b\x0b\x0b";
- a.input = "Hi There";
- a.output = "\x89\x6f\xb1\x12\x8a\xbb\xdf\x19\x68\x32\x10\x7c\xd4\x9d\xf3"
- "\x3f\x47\xb4\xb1\x16\x99\x12\xba\x4f\x53\x68\x4b\x22";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- flag = 0;
-
- printf(testingFmt, "wc_HmacFinal() with SHA224");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_HmacSetKey(&hmac, WC_SHA224, (byte*)key, (word32)XSTRLEN(key));
- if (ret != 0) {
- flag = ret;
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_HmacFinal(&hmac, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- if (XMEMCMP(hash, a.output, WC_SHA224_DIGEST_SIZE) != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Try bad parameters. */
- if (!flag) {
- ret = wc_HmacFinal(NULL, hash);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
-#ifndef HAVE_FIPS
- if (!flag) {
- ret = wc_HmacFinal(&hmac, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-#endif
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Sha224HmacFinal */
-
-/*
- * Testing wc_HmacFinal() with SHA256
- */
-static int test_wc_Sha256HmacFinal (void)
-{
- int flag = 0;
-#if !defined(NO_HMAC) && !defined(NO_SHA256)
- Hmac hmac;
- byte hash[WC_SHA256_DIGEST_SIZE];
- testVector a;
- int ret;
- const char* key;
-
- key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
- "\x0b\x0b\x0b";
- a.input = "Hi There";
- a.output = "\xb0\x34\x4c\x61\xd8\xdb\x38\x53\x5c\xa8\xaf\xce\xaf\x0b\xf1"
- "\x2b\x88\x1d\xc2\x00\xc9\x83\x3d\xa7\x26\xe9\x37\x6c\x2e\x32"
- "\xcf\xf7";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- flag = 0;
-
- printf(testingFmt, "wc_HmacFinal() with WC_SHA256");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_HmacSetKey(&hmac, WC_SHA256, (byte*)key, (word32)XSTRLEN(key));
- if (ret != 0) {
- flag = ret;
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_HmacFinal(&hmac, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- if (XMEMCMP(hash, a.output, WC_SHA256_DIGEST_SIZE) != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Try bad parameters. */
- if (!flag) {
- ret = wc_HmacFinal(NULL, hash);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
-#ifndef HAVE_FIPS
- if (!flag) {
- ret = wc_HmacFinal(&hmac, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-#endif
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Sha256HmacFinal */
-
-/*
- * Testing wc_HmacFinal() with SHA384
- */
-static int test_wc_Sha384HmacFinal (void)
-{
- int flag = 0;
-#if !defined(NO_HMAC) && defined(WOLFSSL_SHA384)
- Hmac hmac;
- byte hash[WC_SHA384_DIGEST_SIZE];
- testVector a;
- int ret;
- const char* key;
-
- key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
- "\x0b\x0b\x0b";
- a.input = "Hi There";
- a.output = "\xaf\xd0\x39\x44\xd8\x48\x95\x62\x6b\x08\x25\xf4\xab\x46\x90"
- "\x7f\x15\xf9\xda\xdb\xe4\x10\x1e\xc6\x82\xaa\x03\x4c\x7c\xeb"
- "\xc5\x9c\xfa\xea\x9e\xa9\x07\x6e\xde\x7f\x4a\xf1\x52\xe8\xb2"
- "\xfa\x9c\xb6";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- flag = 0;
-
- printf(testingFmt, "wc_HmacFinal() with SHA384");
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_HmacSetKey(&hmac, WC_SHA384, (byte*)key, (word32)XSTRLEN(key));
- if (ret != 0) {
- flag = ret;
- }
-
- if (!flag) {
- ret = wc_HmacUpdate(&hmac, (byte*)a.input, (word32)a.inLen);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- ret = wc_HmacFinal(&hmac, hash);
- if (ret != 0) {
- flag = ret;
- }
- }
-
- if (!flag) {
- if (XMEMCMP(hash, a.output, WC_SHA384_DIGEST_SIZE) != 0) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Try bad parameters. */
- if (!flag) {
- ret = wc_HmacFinal(NULL, hash);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-#ifndef HAVE_FIPS
- if (!flag) {
- ret = wc_HmacFinal(&hmac, NULL);
- if (ret != BAD_FUNC_ARG) {
- flag = WOLFSSL_FATAL_ERROR;
- }
- }
-#endif
-
- wc_HmacFree(&hmac);
-
- printf(resultFmt, flag == 0 ? passed : failed);
-
-#endif
- return flag;
-} /* END test_wc_Sha384HmacFinal */
-
-
-
-/*
- * Testing wc_InitCmac()
- */
-static int test_wc_InitCmac (void)
-{
- int ret = 0;
-
-#if defined(WOLFSSL_CMAC) && !defined(NO_AES)
- Cmac cmac1, cmac2, cmac3;
- /* AES 128 key. */
- byte key1[] = "\x01\x02\x03\x04\x05\x06\x07\x08"
- "\x09\x10\x11\x12\x13\x14\x15\x16";
- /* AES 192 key. */
- byte key2[] = "\x01\x02\x03\x04\x05\x06\x07\x08"
- "\x09\x01\x11\x12\x13\x14\x15\x16"
- "\x01\x02\x03\x04\x05\x06\x07\x08";
-
- /* AES 256 key. */
- byte key3[] = "\x01\x02\x03\x04\x05\x06\x07\x08"
- "\x09\x01\x11\x12\x13\x14\x15\x16"
- "\x01\x02\x03\x04\x05\x06\x07\x08"
- "\x09\x01\x11\x12\x13\x14\x15\x16";
-
- word32 key1Sz = (word32)sizeof(key1) - 1;
- word32 key2Sz = (word32)sizeof(key2) - 1;
- word32 key3Sz = (word32)sizeof(key3) - 1;
- int type = WC_CMAC_AES;
-
- printf(testingFmt, "wc_InitCmac()");
-
-#ifdef WOLFSSL_AES_128
- ret = wc_InitCmac(&cmac1, key1, key1Sz, type, NULL);
-#endif
-#ifdef WOLFSSL_AES_192
- if (ret == 0)
- ret = wc_InitCmac(&cmac2, key2, key2Sz, type, NULL);
-#endif
-#ifdef WOLFSSL_AES_256
- if (ret == 0)
- ret = wc_InitCmac(&cmac3, key3, key3Sz, type, NULL);
-#endif
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_InitCmac(NULL, key3, key3Sz, type, NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_InitCmac(&cmac3, NULL, key3Sz, type, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_InitCmac(&cmac3, key3, 0, type, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_InitCmac(&cmac3, key3, key3Sz, 0, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- (void)key1;
- (void)key1Sz;
- (void)key2;
- (void)key2Sz;
- (void)cmac1;
- (void)cmac2;
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_InitCmac */
-
-
-/*
- * Testing wc_CmacUpdate()
- */
-static int test_wc_CmacUpdate (void)
-{
- int ret = 0;
-
-#if defined(WOLFSSL_CMAC) && !defined(NO_AES) && defined(WOLFSSL_AES_128)
- Cmac cmac;
- byte key[] =
- {
- 0x64, 0x4c, 0xbf, 0x12, 0x85, 0x9d, 0xf0, 0x55,
- 0x7e, 0xa9, 0x1f, 0x08, 0xe0, 0x51, 0xff, 0x27
- };
- byte in[] = "\xe2\xb4\xb6\xf9\x48\x44\x02\x64"
- "\x5c\x47\x80\x9e\xd5\xa8\x3a\x17"
- "\xb3\x78\xcf\x85\x22\x41\x74\xd9"
- "\xa0\x97\x39\x71\x62\xf1\x8e\x8f"
- "\xf4";
-
- word32 inSz = (word32)sizeof(in) - 1;
- word32 keySz = (word32)sizeof(key);
- int type = WC_CMAC_AES;
-
- ret = wc_InitCmac(&cmac, key, keySz, type, NULL);
- if (ret != 0) {
- return ret;
- }
-
- printf(testingFmt, "wc_CmacUpdate()");
-
- ret = wc_CmacUpdate(&cmac, in, inSz);
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_CmacUpdate(NULL, in, inSz);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_CmacUpdate(&cmac, NULL, 30);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_CmacUpdate */
-
-
-/*
- * Testing wc_CmacFinal()
- */
-static int test_wc_CmacFinal (void)
-{
- int ret = 0;
-
-#if defined(WOLFSSL_CMAC) && !defined(NO_AES) && defined(WOLFSSL_AES_128)
- Cmac cmac;
- byte key[] =
- {
- 0x64, 0x4c, 0xbf, 0x12, 0x85, 0x9d, 0xf0, 0x55,
- 0x7e, 0xa9, 0x1f, 0x08, 0xe0, 0x51, 0xff, 0x27
- };
- byte msg[] =
- {
- 0xe2, 0xb4, 0xb6, 0xf9, 0x48, 0x44, 0x02, 0x64,
- 0x5c, 0x47, 0x80, 0x9e, 0xd5, 0xa8, 0x3a, 0x17,
- 0xb3, 0x78, 0xcf, 0x85, 0x22, 0x41, 0x74, 0xd9,
- 0xa0, 0x97, 0x39, 0x71, 0x62, 0xf1, 0x8e, 0x8f,
- 0xf4
- };
- /* Test vectors from CMACGenAES128.rsp from
- * http://csrc.nist.gov/groups/STM/cavp/block-cipher-modes.html#cmac
- * Per RFC4493 truncation of lsb is possible.
- */
- byte expMac[] =
- {
- 0x4e, 0x6e, 0xc5, 0x6f, 0xf9, 0x5d, 0x0e, 0xae,
- 0x1c, 0xf8, 0x3e, 0xfc, 0xf4, 0x4b, 0xeb
- };
- byte mac[AES_BLOCK_SIZE];
- word32 msgSz = (word32)sizeof(msg);
- word32 keySz = (word32)sizeof(key);
- word32 macSz = sizeof(mac);
- word32 badMacSz = 17;
- int expMacSz = sizeof(expMac);
- int type = WC_CMAC_AES;
-
- XMEMSET(mac, 0, macSz);
-
- ret = wc_InitCmac(&cmac, key, keySz, type, NULL);
- if (ret != 0) {
- return ret;
- }
- ret = wc_CmacUpdate(&cmac, msg, msgSz);
-
- printf(testingFmt, "wc_CmacFinal()");
- if (ret == 0) {
- ret = wc_CmacFinal(&cmac, mac, &macSz);
- if (ret == 0 && XMEMCMP(mac, expMac, expMacSz) != 0) {
- ret = SSL_FATAL_ERROR;
- }
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_CmacFinal(NULL, mac, &macSz);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_CmacFinal(&cmac, NULL, &macSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_CmacFinal(&cmac, mac, &badMacSz);
- if (ret == BUFFER_E) {
- ret = 0;
- }
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
- }
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_CmacFinal */
-
-
-/*
- * Testing wc_AesCmacGenerate() && wc_AesCmacVerify()
- */
-static int test_wc_AesCmacGenerate (void)
-{
- int ret = 0;
-#if defined(WOLFSSL_CMAC) && !defined(NO_AES) && defined(WOLFSSL_AES_128)
- Cmac cmac;
- byte key[] =
- {
- 0x26, 0xef, 0x8b, 0x40, 0x34, 0x11, 0x7d, 0x9e,
- 0xbe, 0xc0, 0xc7, 0xfc, 0x31, 0x08, 0x54, 0x69
- };
- byte msg[] = "\x18\x90\x49\xef\xfd\x7c\xf9\xc8"
- "\xf3\x59\x65\xbc\xb0\x97\x8f\xd4";
- byte expMac[] = "\x29\x5f\x2f\x71\xfc\x58\xe6\xf6"
- "\x3d\x32\x65\x4c\x66\x23\xc5";
- byte mac[AES_BLOCK_SIZE];
- word32 keySz = sizeof(key);
- word32 macSz = sizeof(mac);
- word32 msgSz = sizeof(msg) - 1;
- word32 expMacSz = sizeof(expMac) - 1;
- int type = WC_CMAC_AES;
-
- XMEMSET(mac, 0, macSz);
-
- ret = wc_InitCmac(&cmac, key, keySz, type, NULL);
- if (ret != 0) {
- return ret;
- }
-
- ret = wc_CmacUpdate(&cmac, msg, msgSz);
- if (ret != 0) {
- return ret;
- }
-
- printf(testingFmt, "wc_AesCmacGenerate()");
-
- ret = wc_AesCmacGenerate(mac, &macSz, msg, msgSz, key, keySz);
- if (ret == 0 && XMEMCMP(mac, expMac, expMacSz) != 0) {
- ret = SSL_FATAL_ERROR;
- }
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_AesCmacGenerate(NULL, &macSz, msg, msgSz, key, keySz);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_AesCmacGenerate(mac, &macSz, msg, msgSz, NULL, keySz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_AesCmacGenerate(mac, &macSz, msg, msgSz, key, 0);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_AesCmacGenerate(mac, &macSz, NULL, msgSz, key, keySz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (ret == 0) {
- printf(testingFmt, "wc_AesCmacVerify()");
-
- ret = wc_AesCmacVerify(mac, macSz, msg, msgSz, key, keySz);
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_AesCmacVerify(NULL, macSz, msg, msgSz, key, keySz);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_AesCmacVerify(mac, 0, msg, msgSz, key, keySz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_AesCmacVerify(mac, macSz, msg, msgSz, NULL, keySz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_AesCmacVerify(mac, macSz, msg, msgSz, key, 0);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_AesCmacVerify(mac, macSz, NULL, msgSz, key, keySz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- }
-
-#endif
- return ret;
-
-} /* END test_wc_AesCmacGenerate */
-
-
-
-
-/*
- * unit test for wc_Des3_SetIV()
- */
-static int test_wc_Des3_SetIV (void)
-{
- int ret = 0;
-#ifndef NO_DES3
- Des3 des;
- const byte key[] =
- {
- 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,
- 0xfe,0xde,0xba,0x98,0x76,0x54,0x32,0x10,
- 0x89,0xab,0xcd,0xef,0x01,0x23,0x45,0x67
- };
-
- const byte iv[] =
- {
- 0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef,
- 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
- 0x11,0x21,0x31,0x41,0x51,0x61,0x71,0x81
- };
-
- printf(testingFmt, "wc_Des3_SetIV()");
-
- ret = wc_Des3Init(&des, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- /* DES_ENCRYPTION or DES_DECRYPTION */
- ret = wc_Des3_SetKey(&des, key, iv, DES_ENCRYPTION);
-
- if (ret == 0) {
- if (XMEMCMP(iv, des.reg, DES_BLOCK_SIZE) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
-#ifndef HAVE_FIPS /* no sanity checks with FIPS wrapper */
- /* Test explicitly wc_Des3_SetIV() */
- if (ret == 0) {
- ret = wc_Des3_SetIV(NULL, iv);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Des3_SetIV(&des, NULL);
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-#endif
-
- wc_Des3Free(&des);
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_Des3_SetIV */
-
-/*
- * unit test for wc_Des3_SetKey()
- */
-static int test_wc_Des3_SetKey (void)
-{
- int ret = 0;
-#ifndef NO_DES3
- Des3 des;
- const byte key[] =
- {
- 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,
- 0xfe,0xde,0xba,0x98,0x76,0x54,0x32,0x10,
- 0x89,0xab,0xcd,0xef,0x01,0x23,0x45,0x67
- };
-
- const byte iv[] =
- {
- 0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef,
- 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
- 0x11,0x21,0x31,0x41,0x51,0x61,0x71,0x81
- };
-
- printf(testingFmt, "wc_Des3_SetKey()");
-
- ret = wc_Des3Init(&des, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- /* DES_ENCRYPTION or DES_DECRYPTION */
- ret = wc_Des3_SetKey(&des, key, iv, DES_ENCRYPTION);
- if (ret == 0) {
- if (XMEMCMP(iv, des.reg, DES_BLOCK_SIZE) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_Des3_SetKey(NULL, key, iv, DES_ENCRYPTION);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Des3_SetKey(&des, NULL, iv, DES_ENCRYPTION);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Des3_SetKey(&des, key, iv, -1);
- }
- if (ret == BAD_FUNC_ARG) {
- /* Default case. Should return 0. */
- ret = wc_Des3_SetKey(&des, key, NULL, DES_ENCRYPTION);
- }
- } /* END if ret != 0 */
-
- wc_Des3Free(&des);
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_Des3_SetKey */
-
-
-/*
- * Test function for wc_Des3_CbcEncrypt and wc_Des3_CbcDecrypt
- */
-static int test_wc_Des3_CbcEncryptDecrypt (void)
-{
- int ret = 0;
-#ifndef NO_DES3
- Des3 des;
- byte cipher[24];
- byte plain[24];
-
- const byte key[] =
- {
- 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,
- 0xfe,0xde,0xba,0x98,0x76,0x54,0x32,0x10,
- 0x89,0xab,0xcd,0xef,0x01,0x23,0x45,0x67
- };
-
- const byte iv[] =
- {
- 0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef,
- 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
- 0x11,0x21,0x31,0x41,0x51,0x61,0x71,0x81
- };
-
- const byte vector[] = { /* "Now is the time for all " w/o trailing 0 */
- 0x4e,0x6f,0x77,0x20,0x69,0x73,0x20,0x74,
- 0x68,0x65,0x20,0x74,0x69,0x6d,0x65,0x20,
- 0x66,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x20
- };
-
- printf(testingFmt, "wc_Des3_CbcEncrypt()");
-
- ret = wc_Des3Init(&des, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_Des3_SetKey(&des, key, iv, DES_ENCRYPTION);
-
- if (ret == 0) {
- ret = wc_Des3_CbcEncrypt(&des, cipher, vector, 24);
-
- if (ret == 0) {
- ret = wc_Des3_SetKey(&des, key, iv, DES_DECRYPTION);
- }
- if (ret == 0) {
- ret = wc_Des3_CbcDecrypt(&des, plain, cipher, 24);
- }
- }
-
- if (ret == 0) {
- if (XMEMCMP(plain, vector, 24) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_Des3_CbcEncrypt(NULL, cipher, vector, 24);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Des3_CbcEncrypt(&des, NULL, vector, 24);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Des3_CbcEncrypt(&des, cipher, NULL, sizeof(vector));
- }
- if (ret != BAD_FUNC_ARG) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- }
-
- if (ret == 0) {
- ret = wc_Des3_CbcDecrypt(NULL, plain, cipher, 24);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Des3_CbcDecrypt(&des, NULL, cipher, 24);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Des3_CbcDecrypt(&des, plain, NULL, 24);
- }
- if (ret != BAD_FUNC_ARG) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- }
-
- wc_Des3Free(&des);
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END wc_Des3_CbcEncrypt */
-
-/*
- * Unit test for wc_Des3_CbcEncryptWithKey and wc_Des3_CbcDecryptWithKey
- */
-static int test_wc_Des3_CbcEncryptDecryptWithKey (void)
-{
- int ret = 0;
-#ifndef NO_DES3
-
- word32 vectorSz, cipherSz;
- byte cipher[24];
- byte plain[24];
-
- byte vector[] = /* Now is the time for all w/o trailing 0 */
- {
- 0x4e,0x6f,0x77,0x20,0x69,0x73,0x20,0x74,
- 0x68,0x65,0x20,0x74,0x69,0x6d,0x65,0x20,
- 0x66,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x20
- };
-
- byte key[] =
- {
- 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,
- 0xfe,0xde,0xba,0x98,0x76,0x54,0x32,0x10,
- 0x89,0xab,0xcd,0xef,0x01,0x23,0x45,0x67
- };
-
- byte iv[] =
- {
- 0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef,
- 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
- 0x11,0x21,0x31,0x41,0x51,0x61,0x71,0x81
- };
-
-
- vectorSz = sizeof(byte) * 24;
- cipherSz = sizeof(byte) * 24;
-
- printf(testingFmt, "wc_Des3_CbcEncryptWithKey()");
-
- ret = wc_Des3_CbcEncryptWithKey(cipher, vector, vectorSz, key, iv);
- if (ret == 0) {
- ret = wc_Des3_CbcDecryptWithKey(plain, cipher, cipherSz, key, iv);
- if (ret == 0) {
- if (XMEMCMP(plain, vector, 24) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- }
-
- /* pass in bad args. */
- if (ret == 0) {
- ret = wc_Des3_CbcEncryptWithKey(NULL, vector, vectorSz, key, iv);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Des3_CbcEncryptWithKey(cipher, NULL, vectorSz, key, iv);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Des3_CbcEncryptWithKey(cipher, vector, vectorSz, NULL, iv);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Des3_CbcEncryptWithKey(cipher, vector, vectorSz,
- key, NULL);
- } else {
- /* Return code catch. */
- ret = WOLFSSL_FAILURE;
- }
- }
-
- if (ret == 0) {
- ret = wc_Des3_CbcDecryptWithKey(NULL, cipher, cipherSz, key, iv);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Des3_CbcDecryptWithKey(plain, NULL, cipherSz, key, iv);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Des3_CbcDecryptWithKey(plain, cipher, cipherSz, NULL, iv);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Des3_CbcDecryptWithKey(plain, cipher, cipherSz, key, NULL);
- } else {
- ret = WOLFSSL_FAILURE;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-} /* END test_wc_Des3_CbcEncryptDecryptWithKey */
-
-
-/*
- * Testing wc_Chacha_SetKey() and wc_Chacha_SetIV()
- */
-static int test_wc_Chacha_SetKey (void)
-{
- int ret = 0;
-#ifdef HAVE_CHACHA
- ChaCha ctx;
- const byte key[] =
- {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01
- };
- byte cipher[128];
-
- printf(testingFmt, "wc_Chacha_SetKey()");
-
- ret = wc_Chacha_SetKey(&ctx, key, (word32)(sizeof(key)/sizeof(byte)));
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_Chacha_SetKey(NULL, key, (word32)(sizeof(key)/sizeof(byte)));
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Chacha_SetKey(&ctx, key, 18);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- printf(resultFmt, ret == 0 ? passed : failed);
- if (ret != 0) {
- return ret;
- }
-
- printf(testingFmt, "wc_Chacha_SetIV");
- ret = wc_Chacha_SetIV(&ctx, cipher, 0);
- if (ret == 0) {
- /* Test bad args. */
- ret = wc_Chacha_SetIV(NULL, cipher, 0);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FAILURE;
- }
- }
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-} /* END test_wc_Chacha_SetKey */
-
-/*
- * unit test for wc_Poly1305SetKey()
- */
-static int test_wc_Poly1305SetKey(void)
-{
- int ret = 0;
-
-#ifdef HAVE_POLY1305
- Poly1305 ctx;
- const byte key[] =
- {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01
- };
-
- printf(testingFmt, "wc_Poly1305_SetKey()");
-
- ret = wc_Poly1305SetKey(&ctx, key, (word32)(sizeof(key)/sizeof(byte)));
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_Poly1305SetKey(NULL, key, (word32)(sizeof(key)/sizeof(byte)));
- if(ret == BAD_FUNC_ARG) {
- ret = wc_Poly1305SetKey(&ctx, NULL, (word32)(sizeof(key)/sizeof(byte)));
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Poly1305SetKey(&ctx, key, 18);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-} /* END test_wc_Poly1305_SetKey() */
-
-/*
- * Testing wc_Chacha_Process()
- */
-static int test_wc_Chacha_Process (void)
-{
- int ret = 0;
-#ifdef HAVE_CHACHA
- ChaCha enc, dec;
- byte cipher[128];
- byte plain[128];
- const byte key[] =
- {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01
- };
- const char* input = "Everybody gets Friday off.";
- word32 keySz = sizeof(key)/sizeof(byte);
- unsigned long int inlen = XSTRLEN(input);
-
- /*Initialize stack varialbes.*/
- XMEMSET(cipher, 0, 128);
- XMEMSET(plain, 0, 128);
-
- printf(testingFmt, "wc_Chacha_Process()");
-
- ret = wc_Chacha_SetKey(&enc, key, keySz);
- AssertIntEQ(ret, 0);
- ret = wc_Chacha_SetKey(&dec, key, keySz);
- AssertIntEQ(ret, 0);
- ret = wc_Chacha_SetIV(&enc, cipher, 0);
- AssertIntEQ(ret, 0);
- ret = wc_Chacha_SetIV(&dec, cipher, 0);
- AssertIntEQ(ret, 0);
-
- ret = wc_Chacha_Process(&enc, cipher, (byte*)input, (word32)inlen);
- AssertIntEQ(ret, 0);
- ret = wc_Chacha_Process(&dec, plain, cipher, (word32)inlen);
- AssertIntEQ(ret, 0);
- ret = XMEMCMP(input, plain, (int)inlen);
- AssertIntEQ(ret, 0);
-
-#if !defined(USE_INTEL_CHACHA_SPEEDUP) && !defined(WOLFSSL_ARMASM)
- /* test checking and using leftovers, currently just in C code */
- ret = wc_Chacha_SetIV(&enc, cipher, 0);
- AssertIntEQ(ret, 0);
- ret = wc_Chacha_SetIV(&dec, cipher, 0);
- AssertIntEQ(ret, 0);
-
- ret = wc_Chacha_Process(&enc, cipher, (byte*)input, (word32)inlen - 2);
- AssertIntEQ(ret, 0);
- ret = wc_Chacha_Process(&enc, cipher + (inlen - 2),
- (byte*)input + (inlen - 2), 2);
- AssertIntEQ(ret, 0);
- ret = wc_Chacha_Process(&dec, plain, (byte*)cipher, (word32)inlen - 2);
- AssertIntEQ(ret, 0);
- ret = wc_Chacha_Process(&dec, cipher + (inlen - 2),
- (byte*)input + (inlen - 2), 2);
- AssertIntEQ(ret, 0);
- ret = XMEMCMP(input, plain, (int)inlen);
- AssertIntEQ(ret, 0);
-
- /* check edge cases with counter increment */
- {
- /* expected results collected from wolfSSL 4.3.0 encrypted in one call*/
- const byte expected[] = {
- 0x54,0xB1,0xE2,0xD4,0xA2,0x4D,0x52,0x5F,
- 0x42,0x04,0x89,0x7C,0x6E,0x2D,0xFC,0x2D,
- 0x10,0x25,0xB6,0x92,0x71,0xD5,0xC3,0x20,
- 0xE3,0x0E,0xEC,0xF4,0xD8,0x10,0x70,0x29,
- 0x2D,0x4C,0x2A,0x56,0x21,0xE1,0xC7,0x37,
- 0x0B,0x86,0xF5,0x02,0x8C,0xB8,0xB8,0x38,
- 0x41,0xFD,0xDF,0xD9,0xC3,0xE6,0xC8,0x88,
- 0x06,0x82,0xD4,0x80,0x6A,0x50,0x69,0xD5,
- 0xB9,0xB0,0x2F,0x44,0x36,0x5D,0xDA,0x5E,
- 0xDE,0xF6,0xF5,0xFC,0x44,0xDC,0x07,0x51,
- 0xA7,0x32,0x42,0xDB,0xCC,0xBD,0xE2,0xE5,
- 0x0B,0xB1,0x14,0xFF,0x12,0x80,0x16,0x43,
- 0xE7,0x40,0xD5,0xEA,0xC7,0x3F,0x69,0x07,
- 0x64,0xD4,0x86,0x6C,0xE2,0x1F,0x8F,0x6E,
- 0x35,0x41,0xE7,0xD3,0xB5,0x5D,0xD6,0xD4,
- 0x9F,0x00,0xA9,0xAE,0x3D,0x28,0xA5,0x37,
- 0x80,0x3D,0x11,0x25,0xE2,0xB6,0x99,0xD9,
- 0x9B,0x98,0xE9,0x37,0xB9,0xF8,0xA0,0x04,
- 0xDF,0x13,0x49,0x3F,0x19,0x6A,0x45,0x06,
- 0x21,0xB4,0xC7,0x3B,0x49,0x45,0xB4,0xC8,
- 0x03,0x5B,0x43,0x89,0xBD,0xB3,0x96,0x4B,
- 0x17,0x6F,0x85,0xC6,0xCF,0xA6,0x05,0x35,
- 0x1E,0x25,0x03,0xBB,0x55,0x0A,0xD5,0x54,
- 0x41,0xEA,0xEB,0x50,0x40,0x1B,0x43,0x19,
- 0x59,0x1B,0x0E,0x12,0x3E,0xA2,0x71,0xC3,
- 0x1A,0xA7,0x11,0x50,0x43,0x9D,0x56,0x3B,
- 0x63,0x2F,0x63,0xF1,0x8D,0xAE,0xF3,0x23,
- 0xFA,0x1E,0xD8,0x6A,0xE1,0xB2,0x4B,0xF3,
- 0xB9,0x13,0x7A,0x72,0x2B,0x6D,0xCC,0x41,
- 0x1C,0x69,0x7C,0xCD,0x43,0x6F,0xE4,0xE2,
- 0x38,0x99,0xFB,0xC3,0x38,0x92,0x62,0x35,
- 0xC0,0x1D,0x60,0xE4,0x4B,0xDD,0x0C,0x14
- };
- const byte iv2[] = {
- 0x9D,0xED,0xE7,0x0F,0xEC,0x81,0x51,0xD9,
- 0x77,0x39,0x71,0xA6,0x21,0xDF,0xB8,0x93
- };
- byte input2[256];
- int i;
-
- for (i = 0; i < 256; i++)
- input2[i] = i;
-
- ret = wc_Chacha_SetIV(&enc, iv2, 0);
- AssertIntEQ(ret, 0);
-
- ret = wc_Chacha_Process(&enc, cipher, input2, 64);
- AssertIntEQ(ret, 0);
- AssertIntEQ(XMEMCMP(expected, cipher, 64), 0);
-
- ret = wc_Chacha_Process(&enc, cipher, input2 + 64, 128);
- AssertIntEQ(ret, 0);
- AssertIntEQ(XMEMCMP(expected + 64, cipher, 128), 0);
-
- /* partial */
- ret = wc_Chacha_Process(&enc, cipher, input2 + 192, 32);
- AssertIntEQ(ret, 0);
- AssertIntEQ(XMEMCMP(expected + 192, cipher, 32), 0);
-
- ret = wc_Chacha_Process(&enc, cipher, input2 + 224, 32);
- AssertIntEQ(ret, 0);
- AssertIntEQ(XMEMCMP(expected + 224, cipher, 32), 0);
- }
-#endif
-
- /* Test bad args. */
- ret = wc_Chacha_Process(NULL, cipher, (byte*)input, (word32)inlen);
- AssertIntEQ(ret, BAD_FUNC_ARG);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-} /* END test_wc_Chacha_Process */
-
-/*
- * Testing wc_ChaCha20Poly1305_Encrypt() and wc_ChaCha20Poly1305_Decrypt()
- */
-static int test_wc_ChaCha20Poly1305_aead (void)
-{
- int ret = 0;
-#if defined(HAVE_CHACHA) && defined(HAVE_POLY1305)
- const byte key[] = {
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
- 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
- 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f
- };
-
- const byte plaintext[] = {
- 0x4c, 0x61, 0x64, 0x69, 0x65, 0x73, 0x20, 0x61,
- 0x6e, 0x64, 0x20, 0x47, 0x65, 0x6e, 0x74, 0x6c,
- 0x65, 0x6d, 0x65, 0x6e, 0x20, 0x6f, 0x66, 0x20,
- 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x61, 0x73,
- 0x73, 0x20, 0x6f, 0x66, 0x20, 0x27, 0x39, 0x39,
- 0x3a, 0x20, 0x49, 0x66, 0x20, 0x49, 0x20, 0x63,
- 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6f, 0x66, 0x66,
- 0x65, 0x72, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6f,
- 0x6e, 0x6c, 0x79, 0x20, 0x6f, 0x6e, 0x65, 0x20,
- 0x74, 0x69, 0x70, 0x20, 0x66, 0x6f, 0x72, 0x20,
- 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x74, 0x75,
- 0x72, 0x65, 0x2c, 0x20, 0x73, 0x75, 0x6e, 0x73,
- 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x77, 0x6f,
- 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x69,
- 0x74, 0x2e
- };
-
- const byte iv[] = {
- 0x07, 0x00, 0x00, 0x00, 0x40, 0x41, 0x42, 0x43,
- 0x44, 0x45, 0x46, 0x47
- };
-
- const byte aad[] = { /* additional data */
- 0x50, 0x51, 0x52, 0x53, 0xc0, 0xc1, 0xc2, 0xc3,
- 0xc4, 0xc5, 0xc6, 0xc7
- };
- const byte cipher[] = { /* expected output from operation */
- 0xd3, 0x1a, 0x8d, 0x34, 0x64, 0x8e, 0x60, 0xdb,
- 0x7b, 0x86, 0xaf, 0xbc, 0x53, 0xef, 0x7e, 0xc2,
- 0xa4, 0xad, 0xed, 0x51, 0x29, 0x6e, 0x08, 0xfe,
- 0xa9, 0xe2, 0xb5, 0xa7, 0x36, 0xee, 0x62, 0xd6,
- 0x3d, 0xbe, 0xa4, 0x5e, 0x8c, 0xa9, 0x67, 0x12,
- 0x82, 0xfa, 0xfb, 0x69, 0xda, 0x92, 0x72, 0x8b,
- 0x1a, 0x71, 0xde, 0x0a, 0x9e, 0x06, 0x0b, 0x29,
- 0x05, 0xd6, 0xa5, 0xb6, 0x7e, 0xcd, 0x3b, 0x36,
- 0x92, 0xdd, 0xbd, 0x7f, 0x2d, 0x77, 0x8b, 0x8c,
- 0x98, 0x03, 0xae, 0xe3, 0x28, 0x09, 0x1b, 0x58,
- 0xfa, 0xb3, 0x24, 0xe4, 0xfa, 0xd6, 0x75, 0x94,
- 0x55, 0x85, 0x80, 0x8b, 0x48, 0x31, 0xd7, 0xbc,
- 0x3f, 0xf4, 0xde, 0xf0, 0x8e, 0x4b, 0x7a, 0x9d,
- 0xe5, 0x76, 0xd2, 0x65, 0x86, 0xce, 0xc6, 0x4b,
- 0x61, 0x16
- };
- const byte authTag[] = { /* expected output from operation */
- 0x1a, 0xe1, 0x0b, 0x59, 0x4f, 0x09, 0xe2, 0x6a,
- 0x7e, 0x90, 0x2e, 0xcb, 0xd0, 0x60, 0x06, 0x91
- };
- byte generatedCiphertext[272];
- byte generatedPlaintext[272];
- byte generatedAuthTag[CHACHA20_POLY1305_AEAD_AUTHTAG_SIZE];
-
- /* Initialize stack variables. */
- XMEMSET(generatedCiphertext, 0, 272);
- XMEMSET(generatedPlaintext, 0, 272);
-
- /* Test Encrypt */
- printf(testingFmt, "wc_ChaCha20Poly1305_Encrypt()");
-
- ret = wc_ChaCha20Poly1305_Encrypt(key, iv, aad, sizeof(aad), plaintext,
- sizeof(plaintext), generatedCiphertext, generatedAuthTag);
- AssertIntEQ(ret, 0);
- ret = XMEMCMP(generatedCiphertext, cipher, sizeof(cipher)/sizeof(byte));
- AssertIntEQ(ret, 0);
-
- /* Test bad args. */
- ret = wc_ChaCha20Poly1305_Encrypt(NULL, iv, aad, sizeof(aad), plaintext,
- sizeof(plaintext), generatedCiphertext, generatedAuthTag);
- AssertIntEQ(ret, BAD_FUNC_ARG);
- ret = wc_ChaCha20Poly1305_Encrypt(key, NULL, aad, sizeof(aad),
- plaintext, sizeof(plaintext),
- generatedCiphertext, generatedAuthTag);
- AssertIntEQ(ret, BAD_FUNC_ARG);
- ret = wc_ChaCha20Poly1305_Encrypt(key, iv, aad, sizeof(aad), NULL,
- sizeof(plaintext), generatedCiphertext, generatedAuthTag);
- AssertIntEQ(ret, BAD_FUNC_ARG);
- ret = wc_ChaCha20Poly1305_Encrypt(key, iv, aad, sizeof(aad),
- plaintext, 0, generatedCiphertext, generatedAuthTag);
- AssertIntEQ(ret, BAD_FUNC_ARG);
- ret = wc_ChaCha20Poly1305_Encrypt(key, iv, aad, sizeof(aad),
- plaintext, sizeof(plaintext), NULL, generatedAuthTag);
- AssertIntEQ(ret, BAD_FUNC_ARG);
- ret = wc_ChaCha20Poly1305_Encrypt(key, iv, aad, sizeof(aad),
- plaintext, sizeof(plaintext), generatedCiphertext, NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- }
- printf(resultFmt, ret == 0 ? passed : failed);
- if (ret != 0) {
- return ret;
- }
-
- printf(testingFmt, "wc_ChaCha20Poly1305_Decrypt()");
- ret = wc_ChaCha20Poly1305_Decrypt(key, iv, aad, sizeof(aad), cipher,
- sizeof(cipher), authTag, generatedPlaintext);
- AssertIntEQ(ret, 0);
- ret = XMEMCMP(generatedPlaintext, plaintext,
- sizeof(plaintext)/sizeof(byte));
- AssertIntEQ(ret, 0);
-
- /* Test bad args. */
- ret = wc_ChaCha20Poly1305_Decrypt(NULL, iv, aad, sizeof(aad), cipher,
- sizeof(cipher), authTag, generatedPlaintext);
- AssertIntEQ(ret, BAD_FUNC_ARG);
- ret = wc_ChaCha20Poly1305_Decrypt(key, NULL, aad, sizeof(aad),
- cipher, sizeof(cipher), authTag, generatedPlaintext);
- AssertIntEQ(ret, BAD_FUNC_ARG);
- ret = wc_ChaCha20Poly1305_Decrypt(key, iv, aad, sizeof(aad), NULL,
- sizeof(cipher), authTag, generatedPlaintext);
- AssertIntEQ(ret, BAD_FUNC_ARG);
- ret = wc_ChaCha20Poly1305_Decrypt(key, iv, aad, sizeof(aad), cipher,
- sizeof(cipher), NULL, generatedPlaintext);
- AssertIntEQ(ret, BAD_FUNC_ARG);
- ret = wc_ChaCha20Poly1305_Decrypt(key, iv, aad, sizeof(aad), cipher,
- sizeof(cipher), authTag, NULL);
- AssertIntEQ(ret, BAD_FUNC_ARG);
- ret = wc_ChaCha20Poly1305_Decrypt(key, iv, aad, sizeof(aad), cipher,
- 0, authTag, generatedPlaintext);
- AssertIntEQ(ret, BAD_FUNC_ARG);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test-wc_ChaCha20Poly1305_EncryptDecrypt */
-
-
-/*
- * Testing function for wc_AesSetIV
- */
-static int test_wc_AesSetIV (void)
-{
- int ret = 0;
-#if !defined(NO_AES) && defined(WOLFSSL_AES_128)
- Aes aes;
- byte key16[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66
- };
- byte iv1[] = "1234567890abcdef";
- byte iv2[] = "0987654321fedcba";
-
- printf(testingFmt, "wc_AesSetIV()");
-
- ret = wc_AesInit(&aes, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_AesSetKey(&aes, key16, (word32) sizeof(key16) / sizeof(byte),
- iv1, AES_ENCRYPTION);
- if(ret == 0) {
- ret = wc_AesSetIV(&aes, iv2);
- }
- /* Test bad args. */
- if(ret == 0) {
- ret = wc_AesSetIV(NULL, iv1);
- if(ret == BAD_FUNC_ARG) {
- /* NULL iv should return 0. */
- ret = wc_AesSetIV(&aes, NULL);
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_AesFree(&aes);
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-} /* test_wc_AesSetIV */
-
-
-/*
- * Testing function for wc_AesSetKey().
- */
-static int test_wc_AesSetKey (void)
-{
- int ret = 0;
-#ifndef NO_AES
- Aes aes;
- byte key16[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66
- };
-#ifdef WOLFSSL_AES_192
- byte key24[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37
- };
-#endif
-#ifdef WOLFSSL_AES_256
- byte key32[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66
- };
-#endif
- byte badKey16[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65
- };
- byte iv[] = "1234567890abcdef";
-
- printf(testingFmt, "wc_AesSetKey()");
-
- ret = wc_AesInit(&aes, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
-#ifdef WOLFSSL_AES_128
- ret = wc_AesSetKey(&aes, key16, (word32) sizeof(key16) / sizeof(byte),
- iv, AES_ENCRYPTION);
-#endif
-#ifdef WOLFSSL_AES_192
- if (ret == 0) {
- ret = wc_AesSetKey (&aes, key24, (word32) sizeof(key24) / sizeof(byte),
- iv, AES_ENCRYPTION);
- }
-#endif
-#ifdef WOLFSSL_AES_256
- if (ret == 0) {
- ret = wc_AesSetKey (&aes, key32, (word32) sizeof(key32) / sizeof(byte),
- iv, AES_ENCRYPTION);
- }
-#endif
-
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_AesSetKey (NULL, key16, (word32) sizeof(key16) / sizeof(byte),
- iv, AES_ENCRYPTION);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_AesSetKey(&aes, badKey16,
- (word32) sizeof(badKey16) / sizeof(byte),
- iv, AES_ENCRYPTION);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_AesFree(&aes);
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-} /* END test_wc_AesSetKey */
-
-
-
-/*
- * test function for wc_AesCbcEncrypt(), wc_AesCbcDecrypt(),
- * and wc_AesCbcDecryptWithKey()
- */
-static int test_wc_AesCbcEncryptDecrypt (void)
-{
- int ret = 0;
-#if !defined(NO_AES) && defined(HAVE_AES_CBC) && defined(HAVE_AES_DECRYPT)&& \
- defined(WOLFSSL_AES_256)
- Aes aes;
- byte key32[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66
- };
- byte vector[] = /* Now is the time for all w/o trailing 0 */
- {
- 0x4e,0x6f,0x77,0x20,0x69,0x73,0x20,0x74,
- 0x68,0x65,0x20,0x74,0x69,0x6d,0x65,0x20,
- 0x66,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x20
- };
- byte iv[] = "1234567890abcdef";
- byte enc[sizeof(vector)];
- byte dec[sizeof(vector)];
- int cbcE = WOLFSSL_FATAL_ERROR;
- int cbcD = WOLFSSL_FATAL_ERROR;
- int cbcDWK = WOLFSSL_FATAL_ERROR;
- byte dec2[sizeof(vector)];
-
- /* Init stack variables. */
- XMEMSET(enc, 0, sizeof(enc));
- XMEMSET(dec, 0, sizeof(vector));
- XMEMSET(dec2, 0, sizeof(vector));
-
- ret = wc_AesInit(&aes, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_AesSetKey(&aes, key32, AES_BLOCK_SIZE * 2, iv, AES_ENCRYPTION);
- if (ret == 0) {
- ret = wc_AesCbcEncrypt(&aes, enc, vector, sizeof(vector));
- if (ret == 0) {
- /* Re init for decrypt and set flag. */
- cbcE = 0;
- wc_AesFree(&aes);
- ret = wc_AesSetKey(&aes, key32, AES_BLOCK_SIZE * 2,
- iv, AES_DECRYPTION);
- }
- if (ret == 0) {
- ret = wc_AesCbcDecrypt(&aes, dec, enc, AES_BLOCK_SIZE);
- if (ret != 0 || XMEMCMP(vector, dec, AES_BLOCK_SIZE) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- /* Set flag. */
- cbcD = 0;
- }
- }
- }
- /* If encrypt succeeds but cbc decrypt fails, we can still test. */
- if (ret == 0 || cbcE == 0) {
- ret = wc_AesCbcDecryptWithKey(dec2, enc, AES_BLOCK_SIZE,
- key32, sizeof(key32)/sizeof(byte), iv);
- if (ret == 0 || XMEMCMP(vector, dec2, AES_BLOCK_SIZE) == 0) {
- cbcDWK = 0;
- }
- }
-
- printf(testingFmt, "wc_AesCbcEncrypt()");
- /* Pass in bad args */
- if (cbcE == 0) {
- cbcE = wc_AesCbcEncrypt(NULL, enc, vector, sizeof(vector));
- if (cbcE == BAD_FUNC_ARG) {
- cbcE = wc_AesCbcEncrypt(&aes, NULL, vector, sizeof(vector));
- }
- if (cbcE == BAD_FUNC_ARG) {
- cbcE = wc_AesCbcEncrypt(&aes, enc, NULL, sizeof(vector));
- }
- if (cbcE == BAD_FUNC_ARG) {
- cbcE = 0;
- } else {
- cbcE = WOLFSSL_FATAL_ERROR;
- }
- }
- printf(resultFmt, cbcE == 0 ? passed : failed);
- if (cbcE != 0) {
- wc_AesFree(&aes);
- return cbcE;
- }
-
- printf(testingFmt, "wc_AesCbcDecrypt()");
- if (cbcD == 0) {
- cbcD = wc_AesCbcDecrypt(NULL, dec, enc, AES_BLOCK_SIZE);
- if (cbcD == BAD_FUNC_ARG) {
- cbcD = wc_AesCbcDecrypt(&aes, NULL, enc, AES_BLOCK_SIZE);
- }
- if (cbcD == BAD_FUNC_ARG) {
- cbcD = wc_AesCbcDecrypt(&aes, dec, NULL, AES_BLOCK_SIZE);
- }
- if (cbcD == BAD_FUNC_ARG) {
- cbcD = wc_AesCbcDecrypt(&aes, dec, enc, AES_BLOCK_SIZE * 2 - 1);
- }
- if (cbcD == BAD_FUNC_ARG) {
- cbcD = 0;
- } else {
- cbcD = WOLFSSL_FATAL_ERROR;
- }
- }
- printf(resultFmt, cbcD == 0 ? passed : failed);
- if (cbcD != 0) {
- wc_AesFree(&aes);
- return cbcD;
- }
-
- printf(testingFmt, "wc_AesCbcDecryptWithKey()");
- if (cbcDWK == 0) {
- cbcDWK = wc_AesCbcDecryptWithKey(NULL, enc, AES_BLOCK_SIZE,
- key32, sizeof(key32)/sizeof(byte), iv);
- if (cbcDWK == BAD_FUNC_ARG) {
- cbcDWK = wc_AesCbcDecryptWithKey(dec2, NULL, AES_BLOCK_SIZE,
- key32, sizeof(key32)/sizeof(byte), iv);
- }
- if (cbcDWK == BAD_FUNC_ARG) {
- cbcDWK = wc_AesCbcDecryptWithKey(dec2, enc, AES_BLOCK_SIZE,
- NULL, sizeof(key32)/sizeof(byte), iv);
- }
- if (cbcDWK == BAD_FUNC_ARG) {
- cbcDWK = wc_AesCbcDecryptWithKey(dec2, enc, AES_BLOCK_SIZE,
- key32, sizeof(key32)/sizeof(byte), NULL);
- }
- if (cbcDWK == BAD_FUNC_ARG) {
- cbcDWK = 0;
- } else {
- cbcDWK = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_AesFree(&aes);
-
- printf(resultFmt, cbcDWK == 0 ? passed : failed);
-
- if (cbcDWK != 0) {
- return cbcDWK;
- }
-#endif
- return ret;
-} /* END test_wc_AesCbcEncryptDecrypt */
-
-/*
- * Testing wc_AesCtrEncrypt and wc_AesCtrDecrypt
- */
-static int test_wc_AesCtrEncryptDecrypt (void)
-{
- int ret = 0;
-#if !defined(NO_AES) && defined(WOLFSSL_AES_COUNTER) && defined(WOLFSSL_AES_256)
- Aes aesEnc, aesDec;
- byte key32[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66
- };
- byte vector[] = /* Now is the time for all w/o trailing 0 */
- {
- 0x4e,0x6f,0x77,0x20,0x69,0x73,0x20,0x74,
- 0x68,0x65,0x20,0x74,0x69,0x6d,0x65,0x20,
- 0x66,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x20
- };
- byte iv[] = "1234567890abcdef";
- byte enc[AES_BLOCK_SIZE * 2];
- byte dec[AES_BLOCK_SIZE * 2];
-
- /* Init stack variables. */
- XMEMSET(enc, 0, AES_BLOCK_SIZE * 2);
- XMEMSET(dec, 0, AES_BLOCK_SIZE * 2);
-
- printf(testingFmt, "wc_AesCtrEncrypt()");
-
- ret = wc_AesInit(&aesEnc, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
- ret = wc_AesInit(&aesDec, NULL, INVALID_DEVID);
- if (ret != 0) {
- wc_AesFree(&aesEnc);
- return ret;
- }
-
- ret = wc_AesSetKey(&aesEnc, key32, AES_BLOCK_SIZE * 2,
- iv, AES_ENCRYPTION);
- if (ret == 0) {
- ret = wc_AesCtrEncrypt(&aesEnc, enc, vector,
- sizeof(vector)/sizeof(byte));
- if (ret == 0) {
- /* Decrypt with wc_AesCtrEncrypt() */
- ret = wc_AesSetKey(&aesDec, key32, AES_BLOCK_SIZE * 2,
- iv, AES_ENCRYPTION);
- }
- if (ret == 0) {
- ret = wc_AesCtrEncrypt(&aesDec, dec, enc, sizeof(enc)/sizeof(byte));
- if (ret != 0 || XMEMCMP(vector, dec, sizeof(vector))) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_AesCtrEncrypt(NULL, dec, enc, sizeof(enc)/sizeof(byte));
- if (ret == BAD_FUNC_ARG) {
- ret = wc_AesCtrEncrypt(&aesDec, NULL, enc, sizeof(enc)/sizeof(byte));
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_AesCtrEncrypt(&aesDec, dec, NULL, sizeof(enc)/sizeof(byte));
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_AesFree(&aesEnc);
- wc_AesFree(&aesDec);
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_AesCtrEncryptDecrypt */
-
-/*
- * test function for wc_AesGcmSetKey()
- */
-static int test_wc_AesGcmSetKey (void)
-{
- int ret = 0;
-#if !defined(NO_AES) && defined(HAVE_AESGCM)
-
- Aes aes;
-#ifdef WOLFSSL_AES_128
- byte key16[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66
- };
-#endif
-#ifdef WOLFSSL_AES_192
- byte key24[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37
- };
-#endif
-#ifdef WOLFSSL_AES_256
- byte key32[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66
- };
-#endif
- byte badKey16[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65
- };
- byte badKey24[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36
- };
- byte badKey32[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x37, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65
- };
-
- printf(testingFmt, "wc_AesGcmSetKey()");
-
- ret = wc_AesInit(&aes, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
-#ifdef WOLFSSL_AES_128
- ret = wc_AesGcmSetKey(&aes, key16, sizeof(key16)/sizeof(byte));
-#endif
-#ifdef WOLFSSL_AES_192
- if (ret == 0) {
- ret = wc_AesGcmSetKey(&aes, key24, sizeof(key24)/sizeof(byte));
- }
-#endif
-#ifdef WOLFSSL_AES_256
- if (ret == 0) {
- ret = wc_AesGcmSetKey(&aes, key32, sizeof(key32)/sizeof(byte));
- }
-#endif
-
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_AesGcmSetKey(&aes, badKey16, sizeof(badKey16)/sizeof(byte));
- if (ret == BAD_FUNC_ARG) {
- ret = wc_AesGcmSetKey(&aes, badKey24, sizeof(badKey24)/sizeof(byte));
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_AesGcmSetKey(&aes, badKey32, sizeof(badKey32)/sizeof(byte));
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_AesFree(&aes);
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-} /* END test_wc_AesGcmSetKey */
-
-/*
- * test function for wc_AesGcmEncrypt and wc_AesGcmDecrypt
- */
-static int test_wc_AesGcmEncryptDecrypt (void)
-{
- int ret = 0;
- /* WOLFSSL_AFALG requires 12 byte IV */
-#if !defined(NO_AES) && defined(HAVE_AESGCM) && defined(WOLFSSL_AES_256) && \
- !defined(WOLFSSL_AFALG) && !defined(WOLFSSL_DEVCRYPTO_AES)
-
- Aes aes;
- byte key32[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66
- };
- byte vector[] = /* Now is the time for all w/o trailing 0 */
- {
- 0x4e,0x6f,0x77,0x20,0x69,0x73,0x20,0x74,
- 0x68,0x65,0x20,0x74,0x69,0x6d,0x65,0x20,
- 0x66,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x20
- };
- const byte a[] =
- {
- 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
- 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
- 0xab, 0xad, 0xda, 0xd2
- };
- byte iv[] = "1234567890a";
- byte longIV[] = "1234567890abcdefghij";
- byte enc[sizeof(vector)];
- byte resultT[AES_BLOCK_SIZE];
- byte dec[sizeof(vector)];
- int gcmD = WOLFSSL_FATAL_ERROR;
- int gcmE = WOLFSSL_FATAL_ERROR;
-
- /* Init stack variables. */
- XMEMSET(enc, 0, sizeof(vector));
- XMEMSET(dec, 0, sizeof(vector));
- XMEMSET(resultT, 0, AES_BLOCK_SIZE);
-
- ret = wc_AesInit(&aes, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_AesGcmSetKey(&aes, key32, sizeof(key32)/sizeof(byte));
- if (ret == 0) {
- gcmE = wc_AesGcmEncrypt(&aes, enc, vector, sizeof(vector),
- iv, sizeof(iv)/sizeof(byte), resultT,
- sizeof(resultT), a, sizeof(a));
- }
- if (gcmE == 0) { /* If encrypt fails, no decrypt. */
- gcmD = wc_AesGcmDecrypt(&aes, dec, enc, sizeof(vector),
- iv, sizeof(iv)/sizeof(byte), resultT,
- sizeof(resultT), a, sizeof(a));
- if(gcmD == 0 && (XMEMCMP(vector, dec, sizeof(vector)) != 0)) {
- gcmD = WOLFSSL_FATAL_ERROR;
- }
- }
- printf(testingFmt, "wc_AesGcmEncrypt()");
- /*Test bad args for wc_AesGcmEncrypt and wc_AesGcmDecrypt */
- if (gcmE == 0) {
- gcmE = wc_AesGcmEncrypt(NULL, enc, vector, sizeof(vector),
- iv, sizeof(iv)/sizeof(byte), resultT, sizeof(resultT),
- a, sizeof(a));
- if (gcmE == BAD_FUNC_ARG) {
- gcmE = wc_AesGcmEncrypt(&aes, enc, vector,
- sizeof(vector), iv, sizeof(iv)/sizeof(byte),
- resultT, sizeof(resultT) + 1, a, sizeof(a));
- }
- if (gcmE == BAD_FUNC_ARG) {
- gcmE = wc_AesGcmEncrypt(&aes, enc, vector,
- sizeof(vector), iv, sizeof(iv)/sizeof(byte),
- resultT, sizeof(resultT) - 5, a, sizeof(a));
- }
-
-#if (defined(HAVE_FIPS) && defined(HAVE_FIPS_VERSION) && \
- (HAVE_FIPS_VERSION == 2)) || defined(HAVE_SELFTEST)
- /* FIPS does not check the lower bound of ivSz */
-#else
- if (gcmE == BAD_FUNC_ARG) {
- gcmE = wc_AesGcmEncrypt(&aes, enc, vector,
- sizeof(vector), iv, 0,
- resultT, sizeof(resultT), a, sizeof(a));
- }
-#endif
- if (gcmE == BAD_FUNC_ARG) {
- gcmE = 0;
- } else {
- gcmE = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* This case is now considered good. Long IVs are now allowed.
- * Except for the original FIPS release, it still has an upper
- * bound on the IV length. */
-#if !defined(HAVE_FIPS) || \
- (defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2))
- if (gcmE == 0) {
- gcmE = wc_AesGcmEncrypt(&aes, enc, vector, sizeof(vector), longIV,
- sizeof(longIV)/sizeof(byte), resultT, sizeof(resultT),
- a, sizeof(a));
- }
-#else
- (void)longIV;
-#endif /* Old FIPS */
- /* END wc_AesGcmEncrypt */
-
- printf(resultFmt, gcmE == 0 ? passed : failed);
- if (gcmE != 0) {
- wc_AesFree(&aes);
- return gcmE;
- }
-
- #ifdef HAVE_AES_DECRYPT
- printf(testingFmt, "wc_AesGcmDecrypt()");
-
- if (gcmD == 0) {
- gcmD = wc_AesGcmDecrypt(NULL, dec, enc, sizeof(enc)/sizeof(byte),
- iv, sizeof(iv)/sizeof(byte), resultT,
- sizeof(resultT), a, sizeof(a));
- if (gcmD == BAD_FUNC_ARG) {
- gcmD = wc_AesGcmDecrypt(&aes, NULL, enc, sizeof(enc)/sizeof(byte),
- iv, sizeof(iv)/sizeof(byte), resultT,
- sizeof(resultT), a, sizeof(a));
- }
- if (gcmD == BAD_FUNC_ARG) {
- gcmD = wc_AesGcmDecrypt(&aes, dec, NULL, sizeof(enc)/sizeof(byte),
- iv, sizeof(iv)/sizeof(byte), resultT,
- sizeof(resultT), a, sizeof(a));
- }
- if (gcmD == BAD_FUNC_ARG) {
- gcmD = wc_AesGcmDecrypt(&aes, dec, enc, sizeof(enc)/sizeof(byte),
- NULL, sizeof(iv)/sizeof(byte), resultT,
- sizeof(resultT), a, sizeof(a));
- }
- if (gcmD == BAD_FUNC_ARG) {
- gcmD = wc_AesGcmDecrypt(&aes, dec, enc, sizeof(enc)/sizeof(byte),
- iv, sizeof(iv)/sizeof(byte), NULL,
- sizeof(resultT), a, sizeof(a));
- }
- if (gcmD == BAD_FUNC_ARG) {
- gcmD = wc_AesGcmDecrypt(&aes, dec, enc, sizeof(enc)/sizeof(byte),
- iv, sizeof(iv)/sizeof(byte), resultT,
- sizeof(resultT) + 1, a, sizeof(a));
- }
- #if (defined(HAVE_FIPS) && defined(HAVE_FIPS_VERSION) && \
- (HAVE_FIPS_VERSION == 2)) || defined(HAVE_SELFTEST)
- /* FIPS does not check the lower bound of ivSz */
- #else
- if (gcmD == BAD_FUNC_ARG) {
- gcmD = wc_AesGcmDecrypt(&aes, dec, enc, sizeof(enc)/sizeof(byte),
- iv, 0, resultT,
- sizeof(resultT), a, sizeof(a));
- }
- #endif
- if (gcmD == BAD_FUNC_ARG) {
- gcmD = 0;
- } else {
- gcmD = WOLFSSL_FATAL_ERROR;
- }
- } /* END wc_AesGcmDecrypt */
-
- printf(resultFmt, gcmD == 0 ? passed : failed);
- #endif /* HAVE_AES_DECRYPT */
-
- wc_AesFree(&aes);
-#endif
-
- return ret;
-
-} /* END test_wc_AesGcmEncryptDecrypt */
-
-/*
- * unit test for wc_GmacSetKey()
- */
-static int test_wc_GmacSetKey (void)
-{
- int ret = 0;
-#if !defined(NO_AES) && defined(HAVE_AESGCM)
- Gmac gmac;
- byte key16[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66
- };
-#ifdef WOLFSSL_AES_192
- byte key24[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37
- };
-#endif
-#ifdef WOLFSSL_AES_256
- byte key32[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66
- };
-#endif
- byte badKey16[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x66
- };
- byte badKey24[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37
- };
- byte badKey32[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66
- };
-
- printf(testingFmt, "wc_GmacSetKey()");
-
- ret = wc_AesInit(&gmac.aes, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
-#ifdef WOLFSSL_AES_128
- ret = wc_GmacSetKey(&gmac, key16, sizeof(key16)/sizeof(byte));
-#endif
-#ifdef WOLFSSL_AES_192
- if (ret == 0) {
- ret = wc_GmacSetKey(&gmac, key24, sizeof(key24)/sizeof(byte));
- }
-#endif
-#ifdef WOLFSSL_AES_256
- if (ret == 0) {
- ret = wc_GmacSetKey(&gmac, key32, sizeof(key32)/sizeof(byte));
- }
-#endif
-
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_GmacSetKey(NULL, key16, sizeof(key16)/sizeof(byte));
- if (ret == BAD_FUNC_ARG) {
- ret = wc_GmacSetKey(&gmac, NULL, sizeof(key16)/sizeof(byte));
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_GmacSetKey(&gmac, badKey16, sizeof(badKey16)/sizeof(byte));
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_GmacSetKey(&gmac, badKey24, sizeof(badKey24)/sizeof(byte));
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_GmacSetKey(&gmac, badKey32, sizeof(badKey32)/sizeof(byte));
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_AesFree(&gmac.aes);
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_GmacSetKey */
-
-/*
- * unit test for wc_GmacUpdate
- */
-static int test_wc_GmacUpdate (void)
-{
- int ret = 0;
-#if !defined(NO_AES) && defined(HAVE_AESGCM)
- Gmac gmac;
-#ifdef WOLFSSL_AES_128
- const byte key16[] =
- {
- 0x89, 0xc9, 0x49, 0xe9, 0xc8, 0x04, 0xaf, 0x01,
- 0x4d, 0x56, 0x04, 0xb3, 0x94, 0x59, 0xf2, 0xc8
- };
-#endif
-#ifdef WOLFSSL_AES_192
- byte key24[] =
- {
- 0x41, 0xc5, 0xda, 0x86, 0x67, 0xef, 0x72, 0x52,
- 0x20, 0xff, 0xe3, 0x9a, 0xe0, 0xac, 0x59, 0x0a,
- 0xc9, 0xfc, 0xa7, 0x29, 0xab, 0x60, 0xad, 0xa0
- };
-#endif
-#ifdef WOLFSSL_AES_256
- byte key32[] =
- {
- 0x78, 0xdc, 0x4e, 0x0a, 0xaf, 0x52, 0xd9, 0x35,
- 0xc3, 0xc0, 0x1e, 0xea, 0x57, 0x42, 0x8f, 0x00,
- 0xca, 0x1f, 0xd4, 0x75, 0xf5, 0xda, 0x86, 0xa4,
- 0x9c, 0x8d, 0xd7, 0x3d, 0x68, 0xc8, 0xe2, 0x23
- };
-#endif
-#ifdef WOLFSSL_AES_128
- const byte authIn[] =
- {
- 0x82, 0xad, 0xcd, 0x63, 0x8d, 0x3f, 0xa9, 0xd9,
- 0xf3, 0xe8, 0x41, 0x00, 0xd6, 0x1e, 0x07, 0x77
- };
-#endif
-#ifdef WOLFSSL_AES_192
- const byte authIn2[] =
- {
- 0x8b, 0x5c, 0x12, 0x4b, 0xef, 0x6e, 0x2f, 0x0f,
- 0xe4, 0xd8, 0xc9, 0x5c, 0xd5, 0xfa, 0x4c, 0xf1
- };
-#endif
- const byte authIn3[] =
- {
- 0xb9, 0x6b, 0xaa, 0x8c, 0x1c, 0x75, 0xa6, 0x71,
- 0xbf, 0xb2, 0xd0, 0x8d, 0x06, 0xbe, 0x5f, 0x36
- };
-#ifdef WOLFSSL_AES_128
- const byte tag1[] = /* Known. */
- {
- 0x88, 0xdb, 0x9d, 0x62, 0x17, 0x2e, 0xd0, 0x43,
- 0xaa, 0x10, 0xf1, 0x6d, 0x22, 0x7d, 0xc4, 0x1b
- };
-#endif
-#ifdef WOLFSSL_AES_192
- const byte tag2[] = /* Known */
- {
- 0x20, 0x4b, 0xdb, 0x1b, 0xd6, 0x21, 0x54, 0xbf,
- 0x08, 0x92, 0x2a, 0xaa, 0x54, 0xee, 0xd7, 0x05
- };
-#endif
- const byte tag3[] = /* Known */
- {
- 0x3e, 0x5d, 0x48, 0x6a, 0xa2, 0xe3, 0x0b, 0x22,
- 0xe0, 0x40, 0xb8, 0x57, 0x23, 0xa0, 0x6e, 0x76
- };
-#ifdef WOLFSSL_AES_128
- const byte iv[] =
- {
- 0xd1, 0xb1, 0x04, 0xc8, 0x15, 0xbf, 0x1e, 0x94,
- 0xe2, 0x8c, 0x8f, 0x16
- };
-#endif
-#ifdef WOLFSSL_AES_192
- const byte iv2[] =
- {
- 0x05, 0xad, 0x13, 0xa5, 0xe2, 0xc2, 0xab, 0x66,
- 0x7e, 0x1a, 0x6f, 0xbc
- };
-#endif
- const byte iv3[] =
- {
- 0xd7, 0x9c, 0xf2, 0x2d, 0x50, 0x4c, 0xc7, 0x93,
- 0xc3, 0xfb, 0x6c, 0x8a
- };
- byte tagOut[16];
- byte tagOut2[24];
- byte tagOut3[32];
-
- /* Init stack variables. */
- XMEMSET(tagOut, 0, sizeof(tagOut));
- XMEMSET(tagOut2, 0, sizeof(tagOut2));
- XMEMSET(tagOut3, 0, sizeof(tagOut3));
-
- printf(testingFmt, "wc_GmacUpdate()");
-
- ret = wc_AesInit(&gmac.aes, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
-#ifdef WOLFSSL_AES_128
- ret = wc_GmacSetKey(&gmac, key16, sizeof(key16));
- if (ret == 0) {
- ret = wc_GmacUpdate(&gmac, iv, sizeof(iv), authIn, sizeof(authIn),
- tagOut, sizeof(tag1));
- if (ret == 0) {
- ret = XMEMCMP(tag1, tagOut, sizeof(tag1));
- }
- }
-#endif
-
-#ifdef WOLFSSL_AES_192
- if (ret == 0) {
- XMEMSET(&gmac, 0, sizeof(Gmac));
- ret = wc_GmacSetKey(&gmac, key24, sizeof(key24)/sizeof(byte));
- }
- if (ret == 0) {
- ret = wc_GmacUpdate(&gmac, iv2, sizeof(iv2), authIn2,
- sizeof(authIn2), tagOut2, sizeof(tag2));
- }
- if (ret == 0) {
- ret = XMEMCMP(tagOut2, tag2, sizeof(tag2));
- }
-#endif
-
-#ifdef WOLFSSL_AES_256
- if (ret == 0) {
- XMEMSET(&gmac, 0, sizeof(Gmac));
- ret = wc_GmacSetKey(&gmac, key32, sizeof(key32)/sizeof(byte));
- }
- if (ret == 0) {
- ret = wc_GmacUpdate(&gmac, iv3, sizeof(iv3), authIn3,
- sizeof(authIn3), tagOut3, sizeof(tag3));
- }
- if (ret == 0) {
- ret = XMEMCMP(tag3, tagOut3, sizeof(tag3));
- }
-#endif
-
- /*Pass bad args. */
- if (ret == 0) {
- ret = wc_GmacUpdate(NULL, iv3, sizeof(iv3), authIn3,
- sizeof(authIn3), tagOut3, sizeof(tag3));
- if (ret == BAD_FUNC_ARG) {
- ret = wc_GmacUpdate(&gmac, iv3, sizeof(iv3), authIn3,
- sizeof(authIn3), tagOut3, sizeof(tag3) - 5);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_GmacUpdate(&gmac, iv3, sizeof(iv3), authIn3,
- sizeof(authIn3), tagOut3, sizeof(tag3) + 1);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_AesFree(&gmac.aes);
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_GmacUpdate */
-
-
-/*
- * testing wc_CamelliaSetKey
- */
-static int test_wc_CamelliaSetKey (void)
-{
- int ret = 0;
-#ifdef HAVE_CAMELLIA
- Camellia camellia;
- /*128-bit key*/
- static const byte key16[] =
- {
- 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
- 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10
- };
- /* 192-bit key */
- static const byte key24[] =
- {
- 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
- 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10,
- 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77
- };
- /* 256-bit key */
- static const byte key32[] =
- {
- 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
- 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10,
- 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
- 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff
- };
- static const byte iv[] =
- {
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
- 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
- };
-
- printf(testingFmt, "wc_CamelliaSetKey()");
-
- ret = wc_CamelliaSetKey(&camellia, key16, (word32)sizeof(key16), iv);
- if (ret == 0) {
- ret = wc_CamelliaSetKey(&camellia, key16,
- (word32)sizeof(key16), NULL);
- if (ret == 0) {
- ret = wc_CamelliaSetKey(&camellia, key24,
- (word32)sizeof(key24), iv);
- }
- if (ret == 0) {
- ret = wc_CamelliaSetKey(&camellia, key24,
- (word32)sizeof(key24), NULL);
- }
- if (ret == 0) {
- ret = wc_CamelliaSetKey(&camellia, key32,
- (word32)sizeof(key32), iv);
- }
- if (ret == 0) {
- ret = wc_CamelliaSetKey(&camellia, key32,
- (word32)sizeof(key32), NULL);
- }
- }
- /* Bad args. */
- if (ret == 0) {
- ret = wc_CamelliaSetKey(NULL, key32, (word32)sizeof(key32), iv);
- if (ret != BAD_FUNC_ARG) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- } /* END bad args. */
-
-
-#endif
- return ret;
-
-} /* END test_wc_CammeliaSetKey */
-
-/*
- * Testing wc_CamelliaSetIV()
- */
-static int test_wc_CamelliaSetIV (void)
-{
- int ret = 0;
-#ifdef HAVE_CAMELLIA
- Camellia camellia;
- static const byte iv[] =
- {
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
- 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
- };
-
- printf(testingFmt, "wc_CamelliaSetIV()");
-
- ret = wc_CamelliaSetIV(&camellia, iv);
- if (ret == 0) {
- ret = wc_CamelliaSetIV(&camellia, NULL);
- }
- /* Bad args. */
- if (ret == 0) {
- ret = wc_CamelliaSetIV(NULL, NULL);
- if (ret != BAD_FUNC_ARG) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-} /*END test_wc_CamelliaSetIV*/
-
-/*
- * Test wc_CamelliaEncryptDirect and wc_CamelliaDecryptDirect
- */
-static int test_wc_CamelliaEncryptDecryptDirect (void)
-{
- int ret = 0;
-#ifdef HAVE_CAMELLIA
- Camellia camellia;
- static const byte key24[] =
- {
- 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
- 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10,
- 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77
- };
- static const byte iv[] =
- {
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
- 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
- };
- static const byte plainT[] =
- {
- 0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96,
- 0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A
- };
- byte enc[sizeof(plainT)];
- byte dec[sizeof(enc)];
- int camE = WOLFSSL_FATAL_ERROR;
- int camD = WOLFSSL_FATAL_ERROR;
-
- /*Init stack variables.*/
- XMEMSET(enc, 0, 16);
- XMEMSET(enc, 0, 16);
-
- ret = wc_CamelliaSetKey(&camellia, key24, (word32)sizeof(key24), iv);
- if (ret == 0) {
- ret = wc_CamelliaEncryptDirect(&camellia, enc, plainT);
- if (ret == 0) {
- ret = wc_CamelliaDecryptDirect(&camellia, dec, enc);
- if (XMEMCMP(plainT, dec, CAMELLIA_BLOCK_SIZE)) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- }
- printf(testingFmt, "wc_CamelliaEncryptDirect()");
- /* Pass bad args. */
- if (ret == 0) {
- camE = wc_CamelliaEncryptDirect(NULL, enc, plainT);
- if (camE == BAD_FUNC_ARG) {
- camE = wc_CamelliaEncryptDirect(&camellia, NULL, plainT);
- }
- if (camE == BAD_FUNC_ARG) {
- camE = wc_CamelliaEncryptDirect(&camellia, enc, NULL);
- }
- if (camE == BAD_FUNC_ARG) {
- camE = 0;
- } else {
- camE = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, camE == 0 ? passed : failed);
- if (camE != 0) {
- return camE;
- }
-
- printf(testingFmt, "wc_CamelliaDecryptDirect()");
-
- if (ret == 0) {
- camD = wc_CamelliaDecryptDirect(NULL, dec, enc);
- if (camD == BAD_FUNC_ARG) {
- camD = wc_CamelliaDecryptDirect(&camellia, NULL, enc);
- }
- if (camD == BAD_FUNC_ARG) {
- camD = wc_CamelliaDecryptDirect(&camellia, dec, NULL);
- }
- if (camD == BAD_FUNC_ARG) {
- camD = 0;
- } else {
- camD = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, camD == 0 ? passed : failed);
- if (camD != 0) {
- return camD;
- }
-
-#endif
- return ret;
-
-} /* END test-wc_CamelliaEncryptDecryptDirect */
-
-/*
- * Testing wc_CamelliaCbcEncrypt and wc_CamelliaCbcDecrypt
- */
-static int test_wc_CamelliaCbcEncryptDecrypt (void)
-{
- int ret = 0;
-#ifdef HAVE_CAMELLIA
- Camellia camellia;
- static const byte key24[] =
- {
- 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
- 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10,
- 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77
- };
- static const byte plainT[] =
- {
- 0x6B, 0xC1, 0xBE, 0xE2, 0x2E, 0x40, 0x9F, 0x96,
- 0xE9, 0x3D, 0x7E, 0x11, 0x73, 0x93, 0x17, 0x2A
- };
- byte enc[CAMELLIA_BLOCK_SIZE];
- byte dec[CAMELLIA_BLOCK_SIZE];
- int camCbcE = WOLFSSL_FATAL_ERROR;
- int camCbcD = WOLFSSL_FATAL_ERROR;
-
- /* Init stack variables. */
- XMEMSET(enc, 0, CAMELLIA_BLOCK_SIZE);
- XMEMSET(enc, 0, CAMELLIA_BLOCK_SIZE);
-
- ret = wc_CamelliaSetKey(&camellia, key24, (word32)sizeof(key24), NULL);
- if (ret == 0) {
- ret = wc_CamelliaCbcEncrypt(&camellia, enc, plainT, CAMELLIA_BLOCK_SIZE);
- if (ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- if (ret == 0) {
- ret = wc_CamelliaSetKey(&camellia, key24, (word32)sizeof(key24), NULL);
- if (ret == 0) {
- ret = wc_CamelliaCbcDecrypt(&camellia, dec, enc, CAMELLIA_BLOCK_SIZE);
- if (XMEMCMP(plainT, dec, CAMELLIA_BLOCK_SIZE)) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- }
-
- printf(testingFmt, "wc_CamelliaCbcEncrypt");
- /* Pass in bad args. */
- if (ret == 0) {
- camCbcE = wc_CamelliaCbcEncrypt(NULL, enc, plainT, CAMELLIA_BLOCK_SIZE);
- if (camCbcE == BAD_FUNC_ARG) {
- camCbcE = wc_CamelliaCbcEncrypt(&camellia, NULL, plainT,
- CAMELLIA_BLOCK_SIZE);
- }
- if (camCbcE == BAD_FUNC_ARG) {
- camCbcE = wc_CamelliaCbcEncrypt(&camellia, enc, NULL,
- CAMELLIA_BLOCK_SIZE);
- }
- if (camCbcE == BAD_FUNC_ARG) {
- camCbcE = 0;
- } else {
- camCbcE = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, camCbcE == 0 ? passed : failed);
- if (camCbcE != 0) {
- return camCbcE;
- }
-
- printf(testingFmt, "wc_CamelliaCbcDecrypt()");
-
- if (ret == 0) {
- camCbcD = wc_CamelliaCbcDecrypt(NULL, dec, enc, CAMELLIA_BLOCK_SIZE);
- if (camCbcD == BAD_FUNC_ARG) {
- camCbcD = wc_CamelliaCbcDecrypt(&camellia, NULL, enc,
- CAMELLIA_BLOCK_SIZE);
- }
- if (camCbcD == BAD_FUNC_ARG) {
- camCbcD = wc_CamelliaCbcDecrypt(&camellia, dec, NULL,
- CAMELLIA_BLOCK_SIZE);
- }
- if (camCbcD == BAD_FUNC_ARG) {
- camCbcD = 0;
- } else {
- camCbcD = WOLFSSL_FATAL_ERROR;
- }
- } /* END bad args. */
-
- printf(resultFmt, camCbcD == 0 ? passed : failed);
- if (camCbcD != 0) {
- return camCbcD;
- }
-
-#endif
- return ret;
-
-} /* END test_wc_CamelliaCbcEncryptDecrypt */
-
-/*
- * Testing wc_RabbitSetKey()
- */
-static int test_wc_RabbitSetKey (void)
-{
- int ret = 0;
-#ifndef NO_RABBIT
- Rabbit rabbit;
- const char* key = "\xAC\xC3\x51\xDC\xF1\x62\xFC\x3B"
- "\xFE\x36\x3D\x2E\x29\x13\x28\x91";
- const char* iv = "\x59\x7E\x26\xC1\x75\xF5\x73\xC3";
-
- printf(testingFmt, "wc_RabbitSetKey()");
-
- ret = wc_RabbitSetKey(&rabbit, (byte*)key, (byte*)iv);
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_RabbitSetKey(NULL, (byte*)key, (byte*)iv);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RabbitSetKey(&rabbit, NULL, (byte*)iv);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RabbitSetKey(&rabbit, (byte*)key, NULL);
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_RabbitSetKey */
-
-/*
- * Test wc_RabbitProcess()
- */
-static int test_wc_RabbitProcess (void)
-{
- int ret = 0;
-#ifndef NO_RABBIT
- Rabbit enc, dec;
- byte cipher[25];
- byte plain[25];
- const char* key = "\xAC\xC3\x51\xDC\xF1\x62\xFC\x3B"
- "\xFE\x36\x3D\x2E\x29\x13\x28\x91";
- const char* iv = "\x59\x7E\x26\xC1\x75\xF5\x73\xC3";
- const char* input = "Everyone gets Friday off.";
- unsigned long int inlen = XSTRLEN(input);
-
- /* Initialize stack variables. */
- XMEMSET(cipher, 0, sizeof(cipher));
- XMEMSET(plain, 0, sizeof(plain));
-
- printf(testingFmt, "wc_RabbitProcess()");
-
- ret = wc_RabbitSetKey(&enc, (byte*)key, (byte*)iv);
- if (ret == 0) {
- ret = wc_RabbitSetKey(&dec, (byte*)key, (byte*)iv);
- }
- if (ret == 0) {
- ret = wc_RabbitProcess(&enc, cipher, (byte*)input, (word32)inlen);
- }
- if (ret == 0) {
- ret = wc_RabbitProcess(&dec, plain, cipher, (word32)inlen);
- if (ret != 0 || XMEMCMP(input, plain, inlen)) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_RabbitProcess(NULL, plain, cipher, (word32)inlen);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RabbitProcess(&dec, NULL, cipher, (word32)inlen);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RabbitProcess(&dec, plain, NULL, (word32)inlen);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_RabbitProcess */
-
-
-
-
-
-/*
- * Testing wc_Arc4SetKey()
- */
-static int test_wc_Arc4SetKey (void)
-{
- int ret = 0;
-#ifndef NO_RC4
- Arc4 arc;
- const char* key = "\x01\x23\x45\x67\x89\xab\xcd\xef";
- int keyLen = 8;
-
- printf(testingFmt, "wc_Arch4SetKey()");
-
- ret = wc_Arc4SetKey(&arc, (byte*)key, keyLen);
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_Arc4SetKey(NULL, (byte*)key, keyLen);
- if (ret == BAD_FUNC_ARG)
- ret = wc_Arc4SetKey(&arc, NULL, keyLen); /* NULL key */
- if (ret == BAD_FUNC_ARG)
- ret = wc_Arc4SetKey(&arc, (byte*)key, 0); /* length == 0 */
- if (ret == BAD_FUNC_ARG)
- ret = WOLFSSL_ERROR_NONE;
- else
- ret = WOLFSSL_FATAL_ERROR;
- } /* END test bad args. */
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_Arc4SetKey */
-
-/*
- * Testing wc_Arc4Process for ENC/DEC.
- */
-static int test_wc_Arc4Process (void)
-{
- int ret = 0;
-#ifndef NO_RC4
- Arc4 enc, dec;
- const char* key = "\x01\x23\x45\x67\x89\xab\xcd\xef";
- int keyLen = 8;
- const char* input = "\x01\x23\x45\x67\x89\xab\xcd\xef";
- byte cipher[8];
- byte plain[8];
-
- /* Init stack variables */
- XMEMSET(cipher, 0, sizeof(cipher));
- XMEMSET(plain, 0, sizeof(plain));
-
- /* Use for async. */
- ret = wc_Arc4Init(&enc, NULL, INVALID_DEVID);
- if (ret == 0) {
- ret = wc_Arc4Init(&dec, NULL, INVALID_DEVID);
- }
-
- printf(testingFmt, "wc_Arc4Process()");
-
- if (ret == 0) {
- ret = wc_Arc4SetKey(&enc, (byte*)key, keyLen);
- }
- if (ret == 0) {
- ret = wc_Arc4SetKey(&dec, (byte*)key, keyLen);
- }
- if (ret == 0) {
- ret = wc_Arc4Process(&enc, cipher, (byte*)input, keyLen);
- }
- if (ret == 0) {
- ret = wc_Arc4Process(&dec, plain, cipher, keyLen);
- if (ret != 0 || XMEMCMP(plain, input, keyLen)) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- }
-
- /* Bad args. */
- if (ret == 0) {
- ret = wc_Arc4Process(NULL, plain, cipher, keyLen);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Arc4Process(&dec, NULL, cipher, keyLen);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Arc4Process(&dec, plain, NULL, keyLen);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_Arc4Free(&enc);
- wc_Arc4Free(&dec);
-
-#endif
- return ret;
-
-}/* END test_wc_Arc4Process */
-
-
-/*
- * Testing wc_Init RsaKey()
- */
-static int test_wc_InitRsaKey (void)
-{
- int ret = 0;
-#ifndef NO_RSA
- RsaKey key;
-
- printf(testingFmt, "wc_InitRsaKey()");
-
- ret = wc_InitRsaKey(&key, NULL);
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_InitRsaKey(NULL, NULL);
- #ifndef HAVE_USER_RSA
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- #else
- if (ret == USER_CRYPTO_ERROR) {
- ret = 0;
- } else {
- #endif
- ret = WOLFSSL_FATAL_ERROR;
- }
- } /* end if */
-
- if (wc_FreeRsaKey(&key) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-} /* END test_wc_InitRsaKey */
-
-
-/*
- * Testing wc_RsaPrivateKeyDecode()
- */
-static int test_wc_RsaPrivateKeyDecode (void)
-{
- int ret = 0;
-#if !defined(NO_RSA) && (defined(USE_CERT_BUFFERS_1024)\
- || defined(USE_CERT_BUFFERS_2048)) && !defined(HAVE_FIPS)
- RsaKey key;
- byte* tmp;
- word32 idx = 0;
- int bytes = 0;
-
- printf(testingFmt, "wc_RsaPrivateKeyDecode()");
-
- tmp = (byte*)XMALLOC(FOURK_BUF, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- if (tmp == NULL) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (ret == 0) {
- ret = wc_InitRsaKey(&key, NULL);
- }
- if (ret == 0) {
- #ifdef USE_CERT_BUFFERS_1024
- XMEMCPY(tmp, client_key_der_1024, sizeof_client_key_der_1024);
- bytes = sizeof_client_key_der_1024;
- #else
- XMEMCPY(tmp, client_key_der_2048, sizeof_client_key_der_2048);
- bytes = sizeof_client_key_der_2048;
- #endif /* Use cert buffers. */
-
- ret = wc_RsaPrivateKeyDecode(tmp, &idx, &key, (word32)bytes);
- }
- #ifndef HAVE_USER_RSA
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_RsaPrivateKeyDecode(NULL, &idx, &key, (word32)bytes);
- if (ret == ASN_PARSE_E) {
- ret = wc_RsaPrivateKeyDecode(tmp, NULL, &key, (word32)bytes);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaPrivateKeyDecode(tmp, &idx, NULL, (word32)bytes);
- }
- if (ret == ASN_PARSE_E) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #else
- /* Test bad args. User RSA. */
- if (ret == 0) {
- ret = wc_RsaPrivateKeyDecode(NULL, &idx, &key, (word32)bytes);
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaPrivateKeyDecode(tmp, NULL, &key, (word32)bytes);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaPrivateKeyDecode(tmp, &idx, NULL, (word32)bytes);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #endif
-
- if (tmp != NULL) {
- XFREE(tmp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- }
- if (wc_FreeRsaKey(&key) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_RsaPrivateKeyDecode */
-
-/*
- * Testing wc_RsaPublicKeyDecode()
- */
-static int test_wc_RsaPublicKeyDecode (void)
-{
- int ret = 0;
-#if !defined(NO_RSA) && (defined(USE_CERT_BUFFERS_1024)\
- || defined(USE_CERT_BUFFERS_2048)) && !defined(HAVE_FIPS)
- RsaKey keyPub;
- byte* tmp;
- word32 idx = 0;
- int bytes = 0;
- word32 keySz = 0;
- word32 tstKeySz = 0;
-
- tmp = (byte*)XMALLOC(GEN_BUF, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- if (tmp == NULL) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (ret == 0) {
- ret = wc_InitRsaKey(&keyPub, NULL);
- }
- if (ret == 0) {
- #ifdef USE_CERT_BUFFERS_1024
- XMEMCPY(tmp, client_keypub_der_1024, sizeof_client_keypub_der_1024);
- bytes = sizeof_client_keypub_der_1024;
- keySz = 1024;
- #else
- XMEMCPY(tmp, client_keypub_der_2048, sizeof_client_keypub_der_2048);
- bytes = sizeof_client_keypub_der_2048;
- keySz = 2048;
- #endif
-
- printf(testingFmt, "wc_RsaPublicKeyDecode()");
-
- ret = wc_RsaPublicKeyDecode(tmp, &idx, &keyPub, (word32)bytes);
- }
- #ifndef HAVE_USER_RSA
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_RsaPublicKeyDecode(NULL, &idx, &keyPub, (word32)bytes);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaPublicKeyDecode(tmp, NULL, &keyPub, (word32)bytes);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaPublicKeyDecode(tmp, &idx, NULL, (word32)bytes);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #else
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_RsaPublicKeyDecode(NULL, &idx, &keyPub, (word32)bytes);
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaPublicKeyDecode(tmp, NULL, &keyPub, (word32)bytes);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaPublicKeyDecode(tmp, &idx, NULL, (word32)bytes);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #endif
-
- if (wc_FreeRsaKey(&keyPub) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- if (ret == 0) {
- /* Test for getting modulus key size */
- idx = 0;
- ret = wc_RsaPublicKeyDecode_ex(tmp, &idx, (word32)bytes, NULL,
- &tstKeySz, NULL, NULL);
- ret = (ret == 0 && tstKeySz == keySz/8) ? 0 : WOLFSSL_FATAL_ERROR;
- }
-
- if (tmp != NULL) {
- XFREE(tmp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-
-#endif
- return ret;
-
-} /* END test_wc_RsaPublicKeyDecode */
-
-/*
- * Testing wc_RsaPublicKeyDecodeRaw()
- */
-static int test_wc_RsaPublicKeyDecodeRaw (void)
-{
- int ret = 0;
-#if !defined(NO_RSA)
- RsaKey key;
- const byte n = 0x23;
- const byte e = 0x03;
- int nSz = sizeof(n);
- int eSz = sizeof(e);
-
- printf(testingFmt, "wc_RsaPublicKeyDecodeRaw()");
-
- ret = wc_InitRsaKey(&key, NULL);
- if (ret == 0) {
- ret = wc_RsaPublicKeyDecodeRaw(&n, nSz, &e, eSz, &key);
- }
-#ifndef HAVE_USER_RSA
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_RsaPublicKeyDecodeRaw(NULL, nSz, &e, eSz, &key);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaPublicKeyDecodeRaw(&n, nSz, NULL, eSz, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaPublicKeyDecodeRaw(&n, nSz, &e, eSz, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-#else
- /* Pass in bad args. User RSA. */
- if (ret == 0) {
- ret = wc_RsaPublicKeyDecodeRaw(NULL, nSz, &e, eSz, &key);
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaPublicKeyDecodeRaw(&n, nSz, NULL, eSz, &key);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaPublicKeyDecodeRaw(&n, nSz, &e, eSz, NULL);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-#endif
-
- if (wc_FreeRsaKey(&key) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_RsaPublicKeyDecodeRaw */
-
-
-#if (!defined(NO_RSA) || !defined(HAVE_FAST_RSA)) && defined(WOLFSSL_KEY_GEN)
- /* In FIPS builds, wc_MakeRsaKey() will return an error if it cannot find
- * a probable prime in 5*(modLen/2) attempts. In non-FIPS builds, it keeps
- * trying until it gets a probable prime. */
- #ifdef HAVE_FIPS
- static int MakeRsaKeyRetry(RsaKey* key, int size, long e, WC_RNG* rng)
- {
- int ret;
-
- for (;;) {
- ret = wc_MakeRsaKey(key, size, e, rng);
- if (ret != PRIME_GEN_E) break;
- printf("MakeRsaKey couldn't find prime; trying again.\n");
- }
-
- return ret;
- }
- #define MAKE_RSA_KEY(a, b, c, d) MakeRsaKeyRetry(a, b, c, d)
- #else
- #define MAKE_RSA_KEY(a, b, c, d) wc_MakeRsaKey(a, b, c, d)
- #endif
-#endif
-
-
-/*
- * Testing wc_MakeRsaKey()
- */
-static int test_wc_MakeRsaKey (void)
-{
- int ret = 0;
-#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
-
- RsaKey genKey;
- WC_RNG rng;
- #ifndef WOLFSSL_SP_MATH
- int bits = 1024;
- #else
- int bits = 2048;
- #endif
-
- printf(testingFmt, "wc_MakeRsaKey()");
-
- ret = wc_InitRsaKey(&genKey, NULL);
- if (ret == 0) {
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = MAKE_RSA_KEY(&genKey, bits, WC_RSA_EXPONENT, &rng);
- if (ret == 0 && wc_FreeRsaKey(&genKey) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- }
- #ifndef HAVE_USER_RSA
- /* Test bad args. */
- if (ret == 0) {
- ret = MAKE_RSA_KEY(NULL, bits, WC_RSA_EXPONENT, &rng);
- if (ret == BAD_FUNC_ARG) {
- ret = MAKE_RSA_KEY(&genKey, bits, WC_RSA_EXPONENT, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- /* e < 3 */
- ret = MAKE_RSA_KEY(&genKey, bits, 2, &rng);
- }
- if (ret == BAD_FUNC_ARG) {
- /* e & 1 == 0 */
- ret = MAKE_RSA_KEY(&genKey, bits, 6, &rng);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #else
- /* Test bad args. */
- if (ret == 0) {
- ret = MAKE_RSA_KEY(NULL, bits, WC_RSA_EXPONENT, &rng);
- if (ret == USER_CRYPTO_ERROR) {
- ret = MAKE_RSA_KEY(&genKey, bits, WC_RSA_EXPONENT, NULL);
- }
- if (ret == USER_CRYPTO_ERROR) {
- /* e < 3 */
- ret = MAKE_RSA_KEY(&genKey, bits, 2, &rng);
- }
- if (ret == USER_CRYPTO_ERROR) {
- /* e & 1 == 0 */
- ret = MAKE_RSA_KEY(&genKey, bits, 6, &rng);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #endif
-
- if (wc_FreeRng(&rng) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_MakeRsaKey */
-
-/*
- * Test the bounds checking on the cipher text versus the key modulus.
- * 1. Make a new RSA key.
- * 2. Set c to 1.
- * 3. Decrypt c into k. (error)
- * 4. Copy the key modulus to c and sub 1 from the copy.
- * 5. Decrypt c into k. (error)
- * Valid bounds test cases are covered by all the other RSA tests.
- */
-static int test_RsaDecryptBoundsCheck(void)
-{
- int ret = 0;
-#if !defined(NO_RSA) && defined(WC_RSA_NO_PADDING) && \
- (defined(USE_CERT_BUFFERS_1024) || defined(USE_CERT_BUFFERS_2048)) && \
- defined(WOLFSSL_PUBLIC_MP) && !defined(NO_RSA_BOUNDS_CHECK)
- RsaKey key;
- byte flatC[256];
- word32 flatCSz;
- byte out[256];
- word32 outSz = sizeof(out);
- WC_RNG rng;
-
- printf(testingFmt, "RSA decrypt bounds check");
-
- ret = wc_InitRng(&rng);
-
- if (ret == 0)
- ret = wc_InitRsaKey(&key, NULL);
-
- if (ret == 0) {
- const byte* derKey;
- word32 derKeySz;
- word32 idx = 0;
-
- #ifdef USE_CERT_BUFFERS_1024
- derKey = server_key_der_1024;
- derKeySz = (word32)sizeof_server_key_der_1024;
- flatCSz = 128;
- #else
- derKey = server_key_der_2048;
- derKeySz = (word32)sizeof_server_key_der_2048;
- flatCSz = 256;
- #endif
-
- ret = wc_RsaPrivateKeyDecode(derKey, &idx, &key, derKeySz);
- }
-
- if (ret == 0) {
- XMEMSET(flatC, 0, flatCSz);
- flatC[flatCSz-1] = 1;
-
- ret = wc_RsaDirect(flatC, flatCSz, out, &outSz, &key,
- RSA_PRIVATE_DECRYPT, &rng);
- }
- if (ret == RSA_OUT_OF_RANGE_E) {
- mp_int c;
- mp_init_copy(&c, &key.n);
- mp_sub_d(&c, 1, &c);
- mp_to_unsigned_bin(&c, flatC);
- ret = wc_RsaDirect(flatC, sizeof(flatC), out, &outSz, &key,
- RSA_PRIVATE_DECRYPT, NULL);
- mp_clear(&c);
- }
- if (ret == RSA_OUT_OF_RANGE_E)
- ret = 0;
-
- if (wc_FreeRsaKey(&key) || wc_FreeRng(&rng) || ret != 0)
- ret = WOLFSSL_FATAL_ERROR;
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-
-#endif
- return ret;
-
-} /* END test_wc_RsaDecryptBoundsCheck */
-
-/*
- * Testing wc_SetKeyUsage()
- */
-static int test_wc_SetKeyUsage (void)
-{
- int ret = 0;
-#if !defined(NO_RSA) && defined(WOLFSSL_CERT_EXT) && defined(WOLFSSL_CERT_GEN) && !defined(HAVE_FIPS)
- Cert myCert;
-
- ret = wc_InitCert(&myCert);
-
- printf(testingFmt, "wc_SetKeyUsage()");
- if (ret == 0) {
- ret = wc_SetKeyUsage(&myCert, "keyEncipherment,keyAgreement");
- if (ret == 0) {
- ret = wc_SetKeyUsage(&myCert, "digitalSignature,nonRepudiation");
- }
- if (ret == 0) {
- ret = wc_SetKeyUsage(&myCert, "contentCommitment,encipherOnly");
- }
- if (ret == 0) {
- ret = wc_SetKeyUsage(&myCert, "decipherOnly");
- }
- if (ret == 0) {
- ret = wc_SetKeyUsage(&myCert, "cRLSign,keyCertSign");
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_SetKeyUsage(NULL, "decipherOnly");
- if (ret == BAD_FUNC_ARG) {
- ret = wc_SetKeyUsage(&myCert, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_SetKeyUsage(&myCert, "");
- }
- if (ret == KEYUSAGE_E) {
- ret = wc_SetKeyUsage(&myCert, ",");
- }
- if (ret == KEYUSAGE_E) {
- ret = wc_SetKeyUsage(&myCert, "digitalSignature, cRLSign");
- }
- if (ret == KEYUSAGE_E) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_SetKeyUsage */
-
-/*
- * Testing wc_RsaKeyToDer()
- */
-static int test_wc_RsaKeyToDer (void)
-{
- int ret = 0;
-#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
- RsaKey genKey;
- WC_RNG rng;
- byte* der;
- #ifndef WOLFSSL_SP_MATH
- int bits = 1024;
- word32 derSz = 611;
- /* (2 x 128) + 2 (possible leading 00) + (5 x 64) + 5 (possible leading 00)
- + 3 (e) + 8 (ASN tag) + 10 (ASN length) + 4 seqSz + 3 version */
- #else
- int bits = 2048;
- word32 derSz = 1196;
- /* (2 x 256) + 2 (possible leading 00) + (5 x 128) + 5 (possible leading 00)
- + 3 (e) + 8 (ASN tag) + 17 (ASN length) + 4 seqSz + 3 version */
- #endif
-
- der = (byte*)XMALLOC(derSz, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- if (der == NULL) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- /* Init structures. */
- if (ret == 0) {
- ret = wc_InitRsaKey(&genKey, NULL);
- }
- if (ret == 0) {
- ret = wc_InitRng(&rng);
- }
- /* Make key. */
- if (ret == 0) {
- ret = MAKE_RSA_KEY(&genKey, bits, WC_RSA_EXPONENT, &rng);
- if (ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(testingFmt, "wc_RsaKeyToDer()");
-
- if (ret == 0) {
- ret = wc_RsaKeyToDer(&genKey, der, derSz);
- if (ret > 0) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #ifndef HAVE_USER_RSA
- /* Pass good/bad args. */
- if (ret == 0) {
- ret = wc_RsaKeyToDer(NULL, der, FOURK_BUF);
- if (ret == BAD_FUNC_ARG) {
- /* Get just the output length */
- ret = wc_RsaKeyToDer(&genKey, NULL, 0);
- }
- if (ret > 0) {
- /* Try Public Key. */
- genKey.type = 0;
- ret = wc_RsaKeyToDer(&genKey, der, FOURK_BUF);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #else
- /* Pass good/bad args. */
- if (ret == 0) {
- ret = wc_RsaKeyToDer(NULL, der, FOURK_BUF);
- if (ret == USER_CRYPTO_ERROR) {
- /* Get just the output length */
- ret = wc_RsaKeyToDer(&genKey, NULL, 0);
- }
- if (ret > 0) {
- /* Try Public Key. */
- genKey.type = 0;
- ret = wc_RsaKeyToDer(&genKey, der, FOURK_BUF);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #endif
-
- if (der != NULL) {
- XFREE(der, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- }
- if (wc_FreeRsaKey(&genKey) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (wc_FreeRng(&rng) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-} /* END test_wc_RsaKeyToDer */
-
-/*
- * Testing wc_RsaKeyToPublicDer()
- */
-static int test_wc_RsaKeyToPublicDer (void)
-{
- int ret = 0;
-#if !defined(NO_RSA) && !defined(HAVE_FAST_RSA) && defined(WOLFSSL_KEY_GEN) &&\
- (defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL))
- RsaKey key;
- WC_RNG rng;
- byte* der;
- #ifndef WOLFSSL_SP_MATH
- int bits = 1024;
- word32 derLen = 162;
- #else
- int bits = 2048;
- word32 derLen = 290;
- #endif
-
- der = (byte*)XMALLOC(derLen, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- if (der == NULL) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (ret == 0) {
- ret = wc_InitRsaKey(&key, NULL);
- }
- if (ret == 0) {
- ret = wc_InitRng(&rng);
- }
- if (ret == 0) {
- ret = MAKE_RSA_KEY(&key, bits, WC_RSA_EXPONENT, &rng);
- }
-
- printf(testingFmt, "wc_RsaKeyToPublicDer()");
-
- if (ret == 0) {
- ret = wc_RsaKeyToPublicDer(&key, der, derLen);
- if (ret >= 0) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- #ifndef HAVE_USER_RSA
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_RsaKeyToPublicDer(NULL, der, derLen);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaKeyToPublicDer(&key, NULL, derLen);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaKeyToPublicDer(&key, der, -1);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #else
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_RsaKeyToPublicDer(NULL, der, derLen);
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaKeyToPublicDer(&key, NULL, derLen);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaKeyToPublicDer(&key, der, -1);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #endif
-
- if (der != NULL) {
- XFREE(der, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- }
- if (wc_FreeRsaKey(&key) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (wc_FreeRng(&rng) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_RsaKeyToPublicDer */
-
-/*
- * Testing wc_RsaPublicEncrypt() and wc_RsaPrivateDecrypt()
- */
-static int test_wc_RsaPublicEncryptDecrypt (void)
-{
- int ret = 0;
-#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
- RsaKey key;
- WC_RNG rng;
- const char* inStr = "Everyone gets Friday off.";
- word32 plainLen = 25;
- word32 inLen = (word32)XSTRLEN(inStr);
- #ifndef WOLFSSL_SP_MATH
- int bits = 1024;
- word32 cipherLen = 128;
- #else
- int bits = 2048;
- word32 cipherLen = 256;
- #endif
-
- DECLARE_VAR_INIT(in, byte, inLen, inStr, NULL);
- DECLARE_VAR(plain, byte, plainLen, NULL);
- DECLARE_VAR(cipher, byte, cipherLen, NULL);
-
- ret = wc_InitRsaKey(&key, NULL);
- if (ret == 0) {
- ret = wc_InitRng(&rng);
- }
- if (ret == 0) {
- ret = MAKE_RSA_KEY(&key, bits, WC_RSA_EXPONENT, &rng);
- }
- /* Encrypt. */
- printf(testingFmt, "wc_RsaPublicEncrypt()");
-
- if (ret == 0) {
- ret = wc_RsaPublicEncrypt(in, inLen, cipher, cipherLen, &key, &rng);
- if (ret >= 0) {
- cipherLen = ret;
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Pass bad args. */
- /* Tests PsaPublicEncryptEx() which, is tested by another fn. No need dup.*/
- printf(resultFmt, ret == 0 ? passed : failed);
- if (ret != 0) {
- return ret;
- }
-
- /* Decrypt */
- printf(testingFmt, "wc_RsaPrivateDecrypt()");
- #if defined(WC_RSA_BLINDING) && !defined(HAVE_FIPS)
- /* Bind rng */
- if (ret == 0) {
- ret = wc_RsaSetRNG(&key, &rng);
- }
- #endif
- if (ret == 0) {
- ret = wc_RsaPrivateDecrypt(cipher, cipherLen, plain, plainLen, &key);
- }
- if (ret >= 0) {
- ret = XMEMCMP(plain, inStr, plainLen);
- }
-
- /* Pass in bad args. */
- /* Tests RsaPrivateDecryptEx() which, is tested by another fn. No need dup.*/
-
- FREE_VAR(in, NULL);
- FREE_VAR(plain, NULL);
- FREE_VAR(cipher, NULL);
- if (wc_FreeRsaKey(&key) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (wc_FreeRng(&rng) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_RsaPublicEncryptDecrypt */
-
-/*
- * Testing wc_RsaPrivateDecrypt_ex() and wc_RsaPrivateDecryptInline_ex()
- */
-static int test_wc_RsaPublicEncryptDecrypt_ex (void)
-{
- int ret = 0;
-#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) && !defined(HAVE_FIPS)\
- && !defined(WC_NO_RSA_OAEP) && !defined(HAVE_USER_RSA)\
- && !defined(NO_SHA)
- RsaKey key;
- WC_RNG rng;
- const char* inStr = "Everyone gets Friday off.";
- word32 inLen = (word32)XSTRLEN(inStr);
- const word32 plainSz = 25;
- byte* res = NULL;
- int idx = 0;
- #ifndef WOLFSSL_SP_MATH
- int bits = 1024;
- const word32 cipherSz = 128;
- #else
- int bits = 2048;
- const word32 cipherSz = 256;
- #endif
-
- DECLARE_VAR_INIT(in, byte, inLen, inStr, NULL);
- DECLARE_VAR(plain, byte, plainSz, NULL);
- DECLARE_VAR(cipher, byte, cipherSz, NULL);
-
- /* Initialize stack structures. */
- XMEMSET(&rng, 0, sizeof(rng));
- XMEMSET(&key, 0, sizeof(key));
-
- ret = wc_InitRsaKey_ex(&key, NULL, INVALID_DEVID);
- if (ret == 0) {
- ret = wc_InitRng(&rng);
- }
- if (ret == 0) {
- ret = MAKE_RSA_KEY(&key, bits, WC_RSA_EXPONENT, &rng);
- }
- /* Encrypt */
- printf(testingFmt, "wc_RsaPublicEncrypt_ex()");
- if (ret == 0) {
- ret = wc_RsaPublicEncrypt_ex(in, inLen, cipher, cipherSz, &key, &rng,
- WC_RSA_OAEP_PAD, WC_HASH_TYPE_SHA, WC_MGF1SHA1, NULL, 0);
- if (ret >= 0) {
- idx = ret;
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /*Pass bad args.*/
- /* Tests RsaPublicEncryptEx again. No need duplicate. */
- printf(resultFmt, ret == 0 ? passed : failed);
- if (ret != 0) {
- return ret;
- }
-
-#ifndef WOLFSSL_RSA_PUBLIC_ONLY
- /* Decrypt */
- printf(testingFmt, "wc_RsaPrivateDecrypt_ex()");
- #if defined(WC_RSA_BLINDING) && !defined(HAVE_FIPS)
- if (ret == 0) {
- ret = wc_RsaSetRNG(&key, &rng);
- }
- #endif
- if (ret == 0) {
- ret = wc_RsaPrivateDecrypt_ex(cipher, (word32)idx,
- plain, plainSz, &key, WC_RSA_OAEP_PAD, WC_HASH_TYPE_SHA,
- WC_MGF1SHA1, NULL, 0);
- }
- if (ret >= 0) {
- if (!XMEMCMP(plain, inStr, plainSz)) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /*Pass bad args.*/
- /* Tests RsaPrivateDecryptEx() again. No need duplicate. */
- printf(resultFmt, ret == 0 ? passed : failed);
- if (ret != 0) {
- return ret;
- }
-
- printf(testingFmt, "wc_RsaPrivateDecryptInline_ex()");
- if (ret == 0) {
- ret = wc_RsaPrivateDecryptInline_ex(cipher, (word32)idx,
- &res, &key, WC_RSA_OAEP_PAD, WC_HASH_TYPE_SHA,
- WC_MGF1SHA1, NULL, 0);
-
- if (ret >= 0) {
- if (!XMEMCMP(inStr, res, plainSz)) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- }
-#endif
-
- FREE_VAR(in, NULL);
- FREE_VAR(plain, NULL);
- FREE_VAR(cipher, NULL);
- if (wc_FreeRsaKey(&key) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (wc_FreeRng(&rng) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_RsaPublicEncryptDecrypt_ex */
-
-/*
- * Tesing wc_RsaSSL_Sign() and wc_RsaSSL_Verify()
- */
-static int test_wc_RsaSSL_SignVerify (void)
-{
- int ret = 0;
-#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
- RsaKey key;
- WC_RNG rng;
- const char* inStr = "Everyone gets Friday off.";
- const word32 plainSz = 25;
- word32 inLen = (word32)XSTRLEN(inStr);
- word32 idx = 0;
- #ifndef WOLFSSL_SP_MATH
- int bits = 1024;
- const word32 outSz = 128;
- #else
- int bits = 2048;
- const word32 outSz = 256;
- #endif
-
- DECLARE_VAR_INIT(in, byte, inLen, inStr, NULL);
- DECLARE_VAR(out, byte, outSz, NULL);
- DECLARE_VAR(plain, byte, plainSz, NULL);
-
- ret = wc_InitRsaKey(&key, NULL);
-
- if (ret == 0) {
- ret = wc_InitRng(&rng);
- }
-
- if (ret == 0) {
- ret = MAKE_RSA_KEY(&key, bits, WC_RSA_EXPONENT, &rng);
- }
- /* Sign. */
- printf(testingFmt, "wc_RsaSSL_Sign()");
-
- if (ret == 0) {
- ret = wc_RsaSSL_Sign(in, inLen, out, outSz, &key, &rng);
- if (ret == (int)outSz) {
- idx = ret;
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-#ifndef HAVE_USER_RSA
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_RsaSSL_Sign(NULL, inLen, out, outSz, &key, &rng);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaSSL_Sign(in, 0, out, outSz, &key, &rng);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaSSL_Sign(in, inLen, NULL, outSz, &key, &rng);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaSSL_Sign(in, inLen, out, outSz, NULL, &rng);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-#else
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_RsaSSL_Sign(NULL, inLen, out, outSz, &key, &rng);
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaSSL_Sign(in, 0, out, outSz, &key, &rng);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaSSL_Sign(in, inLen, NULL, outSz, &key, &rng);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaSSL_Sign(in, inLen, out, outSz, NULL, &rng);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-#endif
- printf(resultFmt, ret == 0 ? passed : failed);
- if (ret != 0) {
- return ret;
- }
-
- /* Verify. */
- printf(testingFmt, "wc_RsaSSL_Verify()");
-
- if (ret == 0) {
- ret = wc_RsaSSL_Verify(out, idx, plain, plainSz, &key);
- if (ret == (int)inLen) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #ifndef HAVE_USER_RSA
- /* Pass bad args. */
- if (ret == 0) {
- ret = wc_RsaSSL_Verify(NULL, idx, plain, plainSz, &key);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaSSL_Verify(out, 0, plain, plainSz, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaSSL_Verify(out, idx, NULL, plainSz, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaSSL_Verify(out, idx, plain, plainSz, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #else
- /* Pass bad args. */
- if (ret == 0) {
- ret = wc_RsaSSL_Verify(NULL, idx, plain, plainSz, &key);
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaSSL_Verify(out, 0, plain, plainSz, &key);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaSSL_Verify(out, idx, NULL, plainSz, &key);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaSSL_Verify(out, idx, plain, plainSz, NULL);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #endif
-
- FREE_VAR(in, NULL);
- FREE_VAR(out, NULL);
- FREE_VAR(plain, NULL);
- if (wc_FreeRsaKey(&key) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (wc_FreeRng(&rng) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_RsaSSL_SignVerify */
-
-/*
- * Testing wc_RsaEncryptSize()
- */
-static int test_wc_RsaEncryptSize (void)
-{
- int ret = 0;
-#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
- RsaKey key;
- WC_RNG rng;
-
- ret = wc_InitRsaKey(&key, NULL);
-
- if (ret == 0) {
- ret = wc_InitRng(&rng);
- }
-
- printf(testingFmt, "wc_RsaEncryptSize()");
-#ifndef WOLFSSL_SP_MATH
- if (ret == 0) {
- ret = MAKE_RSA_KEY(&key, 1024, WC_RSA_EXPONENT, &rng);
- if (ret == 0) {
- ret = wc_RsaEncryptSize(&key);
- }
- if (ret == 128) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- if (wc_FreeRsaKey(&key) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
-#endif
-
- if (ret == 0) {
- ret = MAKE_RSA_KEY(&key, 2048, WC_RSA_EXPONENT, &rng);
- if (ret == 0) {
- ret = wc_RsaEncryptSize(&key);
- }
- if (ret == 256) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Pass in bad arg. */
- if (ret == 0) {
- ret = wc_RsaEncryptSize(NULL);
- #ifndef HAVE_USER_RSA
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- #endif
- }
-
- if (wc_FreeRsaKey(&key) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (wc_FreeRng(&rng) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_RsaEncryptSize*/
-
-/*
- * Testing wc_RsaFlattenPublicKey()
- */
-static int test_wc_RsaFlattenPublicKey (void)
-{
- int ret = 0;
-#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
- RsaKey key;
- WC_RNG rng;
- byte e[256];
- byte n[256];
- word32 eSz = sizeof(e);
- word32 nSz = sizeof(n);
- #ifndef WOLFSSL_SP_MATH
- int bits = 1024;
- #else
- int bits = 2048;
- #endif
-
- ret = wc_InitRsaKey(&key, NULL);
- if (ret == 0) {
- ret = wc_InitRng(&rng);
- }
-
- if (ret == 0) {
- ret = MAKE_RSA_KEY(&key, bits, WC_RSA_EXPONENT, &rng);
- if (ret >= 0) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(testingFmt, "wc_RsaFlattenPublicKey()");
-
- if (ret == 0) {
- ret = wc_RsaFlattenPublicKey(&key, e, &eSz, n, &nSz);
- }
- #ifndef HAVE_USER_RSA
- /* Pass bad args. */
- if (ret == 0) {
- ret = wc_RsaFlattenPublicKey(NULL, e, &eSz, n, &nSz);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaFlattenPublicKey(&key, NULL, &eSz, n, &nSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaFlattenPublicKey(&key, e, NULL, n, &nSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaFlattenPublicKey(&key, e, &eSz, NULL, &nSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_RsaFlattenPublicKey(&key, e, &eSz, n, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #else
- /* Pass bad args. */
- if (ret == 0) {
- ret = wc_RsaFlattenPublicKey(NULL, e, &eSz, n, &nSz);
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaFlattenPublicKey(&key, NULL, &eSz, n, &nSz);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaFlattenPublicKey(&key, e, NULL, n, &nSz);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaFlattenPublicKey(&key, e, &eSz, NULL, &nSz);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = wc_RsaFlattenPublicKey(&key, e, &eSz, n, NULL);
- }
- if (ret == USER_CRYPTO_ERROR) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #endif
- if (wc_FreeRsaKey(&key) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (wc_FreeRng(&rng) || ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_RsaFlattenPublicKey */
-
-
-
-/*
- * unit test for wc_AesCcmSetKey
- */
-static int test_wc_AesCcmSetKey (void)
-{
- int ret = 0;
-#ifdef HAVE_AESCCM
- Aes aes;
- const byte key16[] =
- {
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf
- };
- const byte key24[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37
- };
- const byte key32[] =
- {
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66
- };
-
- printf(testingFmt, "wc_AesCcmSetKey()");
-
- ret = wc_AesInit(&aes, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
-#ifdef WOLFSSL_AES_128
- ret = wc_AesCcmSetKey(&aes, key16, sizeof(key16));
-#endif
-#ifdef WOLFSSL_AES_192
- if (ret == 0) {
- ret = wc_AesCcmSetKey(&aes, key24, sizeof(key24));
- }
-#endif
-#ifdef WOLFSSL_AES_256
- if (ret == 0) {
- ret = wc_AesCcmSetKey(&aes, key32, sizeof(key32));
- }
-#endif
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_AesCcmSetKey(&aes, key16, sizeof(key16) - 1);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_AesCcmSetKey(&aes, key24, sizeof(key24) - 1);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_AesCcmSetKey(&aes, key32, sizeof(key32) - 1);
- }
- if (ret != BAD_FUNC_ARG) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
- }
-
- wc_AesFree(&aes);
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_AesCcmSetKey */
-
-/*
- * Unit test function for wc_AesCcmEncrypt and wc_AesCcmDecrypt
- */
-static int test_wc_AesCcmEncryptDecrypt (void)
-{
- int ret = 0;
-#if defined(HAVE_AESCCM) && defined(WOLFSSL_AES_128)
- Aes aes;
- const byte key16[] =
- {
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf
- };
- /* plaintext */
- const byte plainT[] =
- {
- 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
- 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e
- };
- /* nonce */
- const byte iv[] =
- {
- 0x00, 0x00, 0x00, 0x03, 0x02, 0x01, 0x00, 0xa0,
- 0xa1, 0xa2, 0xa3, 0xa4, 0xa5
- };
- const byte c[] = /* cipher text. */
- {
- 0x58, 0x8c, 0x97, 0x9a, 0x61, 0xc6, 0x63, 0xd2,
- 0xf0, 0x66, 0xd0, 0xc2, 0xc0, 0xf9, 0x89, 0x80,
- 0x6d, 0x5f, 0x6b, 0x61, 0xda, 0xc3, 0x84
- };
- const byte t[] = /* Auth tag */
- {
- 0x17, 0xe8, 0xd1, 0x2c, 0xfd, 0xf9, 0x26, 0xe0
- };
- const byte authIn[] =
- {
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
- };
- byte cipherOut[sizeof(plainT)];
- byte authTag[sizeof(t)];
- int ccmE = WOLFSSL_FATAL_ERROR;
- #ifdef HAVE_AES_DECRYPT
- int ccmD = WOLFSSL_FATAL_ERROR;
- byte plainOut[sizeof(cipherOut)];
- #endif
-
- ret = wc_AesInit(&aes, NULL, INVALID_DEVID);
- if (ret != 0)
- return ret;
-
- ret = wc_AesCcmSetKey(&aes, key16, sizeof(key16));
- if (ret == 0) {
- ccmE = wc_AesCcmEncrypt(&aes, cipherOut, plainT, sizeof(cipherOut),
- iv, sizeof(iv), authTag, sizeof(authTag),
- authIn , sizeof(authIn));
- if ((XMEMCMP(cipherOut, c, sizeof(c)) && ccmE == 0) ||
- XMEMCMP(t, authTag, sizeof(t))) {
- ccmE = WOLFSSL_FATAL_ERROR;
- ret = WOLFSSL_FATAL_ERROR;
- }
- #ifdef HAVE_AES_DECRYPT
- if (ret == 0) {
- ccmD = wc_AesCcmDecrypt(&aes, plainOut, cipherOut,
- sizeof(plainOut), iv, sizeof(iv),
- authTag, sizeof(authTag),
- authIn, sizeof(authIn));
- if (XMEMCMP(plainOut, plainT, sizeof(plainT)) && ccmD == 0) {
- ccmD = WOLFSSL_FATAL_ERROR;
- }
- }
- #endif
- }
-
- printf(testingFmt, "wc_AesCcmEncrypt()");
-
- /* Pass in bad args. Encrypt*/
- if (ret == 0 && ccmE == 0) {
- ccmE = wc_AesCcmEncrypt(NULL, cipherOut, plainT, sizeof(cipherOut),
- iv, sizeof(iv), authTag, sizeof(authTag),
- authIn , sizeof(authIn));
- if (ccmE == BAD_FUNC_ARG) {
- ccmE = wc_AesCcmEncrypt(&aes, NULL, plainT, sizeof(cipherOut),
- iv, sizeof(iv), authTag, sizeof(authTag),
- authIn , sizeof(authIn));
- }
- if (ccmE == BAD_FUNC_ARG) {
- ccmE = wc_AesCcmEncrypt(&aes, cipherOut, NULL, sizeof(cipherOut),
- iv, sizeof(iv), authTag, sizeof(authTag),
- authIn , sizeof(authIn));
- }
- if (ccmE == BAD_FUNC_ARG) {
- ccmE = wc_AesCcmEncrypt(&aes, cipherOut, plainT, sizeof(cipherOut),
- NULL, sizeof(iv), authTag, sizeof(authTag),
- authIn , sizeof(authIn));
- }
- if (ccmE == BAD_FUNC_ARG) {
- ccmE = wc_AesCcmEncrypt(&aes, cipherOut, plainT, sizeof(cipherOut),
- iv, sizeof(iv), NULL, sizeof(authTag),
- authIn , sizeof(authIn));
- }
- if (ccmE == BAD_FUNC_ARG) {
- ccmE = wc_AesCcmEncrypt(&aes, cipherOut, plainT, sizeof(cipherOut),
- iv, sizeof(iv) + 1, authTag, sizeof(authTag),
- authIn , sizeof(authIn));
- }
- if (ccmE == BAD_FUNC_ARG) {
- ccmE = wc_AesCcmEncrypt(&aes, cipherOut, plainT, sizeof(cipherOut),
- iv, sizeof(iv) - 7, authTag, sizeof(authTag),
- authIn , sizeof(authIn));
- }
-
- if (ccmE != BAD_FUNC_ARG) {
- ccmE = WOLFSSL_FATAL_ERROR;
- } else {
- ccmE = 0;
- }
- } /* End Encrypt */
-
- printf(resultFmt, ccmE == 0 ? passed : failed);
- if (ccmE != 0) {
- wc_AesFree(&aes);
- return ccmE;
- }
- #ifdef HAVE_AES_DECRYPT
- printf(testingFmt, "wc_AesCcmDecrypt()");
-
- /* Pass in bad args. Decrypt*/
- if (ret == 0 && ccmD == 0) {
- ccmD = wc_AesCcmDecrypt(NULL, plainOut, cipherOut, sizeof(plainOut),
- iv, sizeof(iv), authTag, sizeof(authTag),
- authIn, sizeof(authIn));
- if (ccmD == BAD_FUNC_ARG) {
- ccmD = wc_AesCcmDecrypt(&aes, NULL, cipherOut, sizeof(plainOut),
- iv, sizeof(iv), authTag, sizeof(authTag),
- authIn, sizeof(authIn));
- }
- if (ccmD == BAD_FUNC_ARG) {
- ccmD = wc_AesCcmDecrypt(&aes, plainOut, NULL, sizeof(plainOut),
- iv, sizeof(iv), authTag, sizeof(authTag),
- authIn, sizeof(authIn));
- }
- if (ccmD == BAD_FUNC_ARG) {
- ccmD = wc_AesCcmDecrypt(&aes, plainOut, cipherOut,
- sizeof(plainOut), NULL, sizeof(iv),
- authTag, sizeof(authTag),
- authIn, sizeof(authIn));
- }
- if (ccmD == BAD_FUNC_ARG) {
- ccmD = wc_AesCcmDecrypt(&aes, plainOut, cipherOut,
- sizeof(plainOut), iv, sizeof(iv), NULL,
- sizeof(authTag), authIn, sizeof(authIn));
- }
- if (ccmD == BAD_FUNC_ARG) {
- ccmD = wc_AesCcmDecrypt(&aes, plainOut, cipherOut,
- sizeof(plainOut), iv, sizeof(iv) + 1,
- authTag, sizeof(authTag),
- authIn, sizeof(authIn));
- }
- if (ccmD == BAD_FUNC_ARG) {
- ccmD = wc_AesCcmDecrypt(&aes, plainOut, cipherOut,
- sizeof(plainOut), iv, sizeof(iv) - 7,
- authTag, sizeof(authTag),
- authIn, sizeof(authIn));
- }
- if (ccmD != BAD_FUNC_ARG) {
- ccmD = WOLFSSL_FATAL_ERROR;
- } else {
- ccmD = 0;
- }
- } /* END Decrypt */
-
- printf(resultFmt, ccmD == 0 ? passed : failed);
- if (ccmD != 0) {
- return ccmD;
- }
- #endif
-
- wc_AesFree(&aes);
-
-#endif /* HAVE_AESCCM */
-
- return ret;
-
-} /* END test_wc_AesCcmEncryptDecrypt */
-
-
-
-/*
- * Test wc_Hc128_SetKey()
- */
-static int test_wc_Hc128_SetKey (void)
-{
- int ret = 0;
-#ifdef HAVE_HC128
- HC128 ctx;
- const char* key = "\x80\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00";
- const char* iv = "\x0D\x74\xDB\x42\xA9\x10\x77\xDE"
- "\x45\xAC\x13\x7A\xE1\x48\xAF\x16";
-
- printf(testingFmt, "wc_Hc128_SetKey()");
- ret = wc_Hc128_SetKey(&ctx, (byte*)key, (byte*)iv);
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_Hc128_SetKey(NULL, (byte*)key, (byte*)iv);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Hc128_SetKey(&ctx, NULL, (byte*)iv);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Hc128_SetKey(&ctx, (byte*)key, NULL);
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-
-#endif
- return ret;
-
-} /* END test_wc_Hc128_SetKey */
-
-/*
- * Testing wc_Hc128_Process()
- */
-static int test_wc_Hc128_Process (void)
-{
- int ret = 0;
-#ifdef HAVE_HC128
- HC128 enc;
- HC128 dec;
- const char* key = "\x0F\x62\xB5\x08\x5B\xAE\x01\x54"
- "\xA7\xFA\x4D\xA0\xF3\x46\x99\xEC";
- const char* input = "Encrypt Hc128, and then Decrypt.";
- size_t inlen = XSTRLEN(input) + 1; /* Add null terminator */
- byte cipher[inlen];
- byte plain[inlen];
-
- printf(testingFmt, "wc_Hc128_Process()");
- ret = wc_Hc128_SetKey(&enc, (byte*)key, NULL);
- if (ret == 0) {
- ret = wc_Hc128_SetKey(&dec, (byte*)key, NULL);
- }
- if (ret == 0) {
- ret = wc_Hc128_Process(&enc, cipher, (byte*)input, (word32)inlen);
- if (ret == 0) {
- ret = wc_Hc128_Process(&dec, plain, cipher, (word32)inlen);
- }
- }
-
- /* Bad args. */
- if (ret == 0) {
- ret = wc_Hc128_Process(NULL, plain, cipher, (word32)inlen);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Hc128_Process(&dec, NULL, cipher, (word32)inlen);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_Hc128_Process(&dec, plain, NULL, (word32)inlen);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- #endif
- return ret;
-
-} /* END test_wc_Hc128_Process */
-
-
-/*
- * Testing wc_InitDsaKey()
- */
-static int test_wc_InitDsaKey (void)
-{
- int ret = 0;
-
-#ifndef NO_DSA
- DsaKey key;
-
- printf(testingFmt, "wc_InitDsaKey()");
-
- ret = wc_InitDsaKey(&key);
-
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_InitDsaKey(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_FreeDsaKey(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_InitDsaKey */
-
-/*
- * Testing wc_DsaSign() and wc_DsaVerify()
- */
-static int test_wc_DsaSignVerify (void)
-{
- int ret = 0;
-#if !defined(NO_DSA)
- DsaKey key;
- WC_RNG rng;
- wc_Sha sha;
- byte signature[DSA_SIG_SIZE];
- byte hash[WC_SHA_DIGEST_SIZE];
- word32 idx = 0;
- word32 bytes;
- int answer;
-#ifdef USE_CERT_BUFFERS_1024
- byte tmp[ONEK_BUF];
- XMEMSET(tmp, 0, sizeof(tmp));
- XMEMCPY(tmp, dsa_key_der_1024, sizeof_dsa_key_der_1024);
- bytes = sizeof_dsa_key_der_1024;
-#elif defined(USE_CERT_BUFFERS_2048)
- byte tmp[TWOK_BUF];
- XMEMSET(tmp, 0, sizeof(tmp));
- XMEMCPY(tmp, dsa_key_der_2048, sizeof_dsa_key_der_2048);
- bytes = sizeof_dsa_key_der_2048;
-#else
- byte tmp[TWOK_BUF];
- XMEMSET(tmp, 0, sizeof(tmp));
- XFILE fp = XFOPEN("./certs/dsa2048.der", "rb");
- if (fp == XBADFILE) {
- return WOLFSSL_BAD_FILE;
- }
- bytes = (word32) XFREAD(tmp, 1, sizeof(tmp), fp);
- XFCLOSE(fp);
-#endif /* END USE_CERT_BUFFERS_1024 */
-
- ret = wc_InitSha(&sha);
- if (ret == 0) {
- ret = wc_ShaUpdate(&sha, tmp, bytes);
- if (ret == 0) {
- ret = wc_ShaFinal(&sha, hash);
- }
- if (ret == 0) {
- ret = wc_InitDsaKey(&key);
- }
- if (ret == 0) {
- ret = wc_DsaPrivateKeyDecode(tmp, &idx, &key, bytes);
- }
- if (ret == 0) {
- ret = wc_InitRng(&rng);
- }
- }
-
- printf(testingFmt, "wc_DsaSign()");
- /* Sign. */
- if (ret == 0) {
- ret = wc_DsaSign(hash, signature, &key, &rng);
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_DsaSign(NULL, signature, &key, &rng);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_DsaSign(hash, NULL, &key, &rng);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_DsaSign(hash, signature, NULL, &rng);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_DsaSign(hash, signature, &key, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (ret != 0) {
- return ret;
- }
-
- /* Verify. */
- printf(testingFmt, "wc_DsaVerify()");
-
- ret = wc_DsaVerify(hash, signature, &key, &answer);
- if (ret != 0 || answer != 1) {
- ret = WOLFSSL_FATAL_ERROR;
- } else {
- ret = 0;
- }
-
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_DsaVerify(NULL, signature, &key, &answer);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_DsaVerify(hash, NULL, &key, &answer);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_DsaVerify(hash, signature, NULL, &answer);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_DsaVerify(hash, signature, &key, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_FreeDsaKey(&key);
- wc_ShaFree(&sha);
-
-#endif
- return ret;
-
-} /* END test_wc_DsaSign */
-
-/*
- * Testing wc_DsaPrivateKeyDecode() and wc_DsaPublicKeyDecode()
- */
-static int test_wc_DsaPublicPrivateKeyDecode (void)
-{
- int ret = 0;
-
-#if !defined(NO_DSA)
- DsaKey key;
- word32 bytes;
- word32 idx = 0;
- int priv = WOLFSSL_FATAL_ERROR;
- int pub = WOLFSSL_FATAL_ERROR;
-
-#ifdef USE_CERT_BUFFERS_1024
- byte tmp[ONEK_BUF];
- XMEMCPY(tmp, dsa_key_der_1024, sizeof_dsa_key_der_1024);
- bytes = sizeof_dsa_key_der_1024;
-#elif defined(USE_CERT_BUFFERS_2048)
- byte tmp[TWOK_BUF];
- XMEMCPY(tmp, dsa_key_der_2048, sizeof_dsa_key_der_2048);
- bytes = sizeof_dsa_key_der_2048;
-#else
- byte tmp[TWOK_BUF];
- XMEMSET(tmp, 0, sizeof(tmp));
- XFILE fp = XFOPEN("./certs/dsa2048.der", "rb");
- if (fp == XBADFILE)
- {
- return WOLFSSL_BAD_FILE;
- }
- bytes = (word32) XFREAD(tmp, 1, sizeof(tmp), fp);
- XFCLOSE(fp);
-#endif /* END USE_CERT_BUFFERS_1024 */
-
- ret = wc_InitDsaKey(&key);
-
- printf(testingFmt, "wc_DsaPrivateKeyDecode()");
- if (ret == 0) {
- priv = wc_DsaPrivateKeyDecode(tmp, &idx, &key, bytes);
-
- /* Test bad args. */
- if (priv == 0) {
- priv = wc_DsaPrivateKeyDecode(NULL, &idx, &key, bytes);
- if (priv == BAD_FUNC_ARG) {
- priv = wc_DsaPrivateKeyDecode(tmp, NULL, &key, bytes);
- }
- if (priv == BAD_FUNC_ARG) {
- priv = wc_DsaPrivateKeyDecode(tmp, &idx, NULL, bytes);
- }
- if (priv == BAD_FUNC_ARG) {
- priv = wc_DsaPrivateKeyDecode(tmp, &idx, &key, bytes);
- }
- if (priv == ASN_PARSE_E) {
- priv = 0;
- } else {
- priv = WOLFSSL_FATAL_ERROR;
- }
- }
-
- wc_FreeDsaKey(&key);
- ret = wc_InitDsaKey(&key);
- }
-
- printf(resultFmt, priv == 0 ? passed : failed);
-
- printf(testingFmt, "wc_DsaPublicKeyDecode()");
- if (ret == 0) {
- idx = 0; /* Reset */
- pub = wc_DsaPublicKeyDecode(tmp, &idx, &key, bytes);
- /* Test bad args. */
- if (pub == 0) {
- pub = wc_DsaPublicKeyDecode(NULL, &idx, &key, bytes);
- if (pub == BAD_FUNC_ARG) {
- pub = wc_DsaPublicKeyDecode(tmp, NULL, &key, bytes);
- }
- if (pub == BAD_FUNC_ARG) {
- pub = wc_DsaPublicKeyDecode(tmp, &idx, NULL, bytes);
- }
- if (pub == BAD_FUNC_ARG) {
- pub = wc_DsaPublicKeyDecode(tmp, &idx, &key, bytes);
- }
- if (pub == ASN_PARSE_E) {
- pub = 0;
- } else {
- pub = WOLFSSL_FATAL_ERROR;
- }
- }
-
- } /* END Public Key */
-
- printf(resultFmt, pub == 0 ? passed : failed);
-
- wc_FreeDsaKey(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_DsaPublicPrivateKeyDecode */
-
-
-/*
- * Testing wc_MakeDsaKey() and wc_MakeDsaParameters()
- */
-static int test_wc_MakeDsaKey (void)
-{
- int ret = 0;
-
-#if !defined(NO_DSA) && defined(WOLFSSL_KEY_GEN)
- DsaKey genKey;
- WC_RNG rng;
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_InitDsaKey(&genKey);
- }
-
- printf(testingFmt, "wc_MakeDsaParameters()");
- if (ret == 0) {
- ret = wc_MakeDsaParameters(&rng, ONEK_BUF, &genKey);
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_MakeDsaParameters(NULL, ONEK_BUF, &genKey);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_MakeDsaParameters(&rng, ONEK_BUF, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_MakeDsaParameters(&rng, ONEK_BUF + 1, &genKey);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- printf(testingFmt, "wc_MakeDsaKey()");
-
- if (ret == 0) {
- ret = wc_MakeDsaKey(&rng, &genKey);
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_MakeDsaKey(NULL, &genKey);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_MakeDsaKey(&rng, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FAILURE;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_FreeDsaKey(&genKey);
-#endif
- return ret;
-} /* END test_wc_MakeDsaKey */
-
-/*
- * Testing wc_DsaKeyToDer()
- */
-static int test_wc_DsaKeyToDer (void)
-{
- int ret = 0;
-
-#if !defined(NO_DSA) && defined(WOLFSSL_KEY_GEN)
- DsaKey genKey;
- WC_RNG rng;
- word32 bytes;
- word32 idx = 0;
-
-#ifdef USE_CERT_BUFFERS_1024
- byte tmp[ONEK_BUF];
- byte der[ONEK_BUF];
- XMEMSET(tmp, 0, sizeof(tmp));
- XMEMSET(der, 0, sizeof(der));
- XMEMCPY(tmp, dsa_key_der_1024, sizeof_dsa_key_der_1024);
- bytes = sizeof_dsa_key_der_1024;
-#elif defined(USE_CERT_BUFFERS_2048)
- byte tmp[TWOK_BUF];
- byte der[TWOK_BUF];
- XMEMSET(tmp, 0, sizeof(tmp));
- XMEMSET(der, 0, sizeof(der));
- XMEMCPY(tmp, dsa_key_der_2048, sizeof_dsa_key_der_2048);
- bytes = sizeof_dsa_key_der_2048;
-#else
- byte tmp[TWOK_BUF];
- byte der[TWOK_BUF];
- XMEMSET(tmp, 0, sizeof(tmp));
- XMEMSET(der, 0, sizeof(der));
- XFILE fp = XFOPEN("./certs/dsa2048.der", "rb");
- if (fp == XBADFILE) {
- return WOLFSSL_BAD_FILE;
- }
- bytes = (word32) XFREAD(tmp, 1, sizeof(tmp), fp);
- XFCLOSE(fp);
-#endif /* END USE_CERT_BUFFERS_1024 */
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_InitDsaKey(&genKey);
- }
- if (ret == 0) {
- ret = wc_MakeDsaParameters(&rng, sizeof(tmp), &genKey);
- if (ret == 0) {
- wc_FreeDsaKey(&genKey);
- ret = wc_InitDsaKey(&genKey);
- }
- }
- if (ret == 0) {
- ret = wc_DsaPrivateKeyDecode(tmp, &idx, &genKey, bytes);
- }
-
- printf(testingFmt, "wc_DsaKeyToDer()");
-
- if (ret == 0) {
- ret = wc_DsaKeyToDer(&genKey, der, bytes);
- if ( ret >= 0 && ( ret = XMEMCMP(der, tmp, bytes) ) == 0 ) {
- ret = 0;
- }
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_DsaKeyToDer(NULL, der, FOURK_BUF);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_DsaKeyToDer(&genKey, NULL, FOURK_BUF);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_FreeDsaKey(&genKey);
-
-#endif
-
- return ret;
-
-} /* END test_wc_DsaKeyToDer */
-
-/*
- * Testing wc_DsaKeyToPublicDer()
- * (indirectly testing setDsaPublicKey())
- */
-static int test_wc_DsaKeyToPublicDer(void)
-{
- int ret = 0;
-#ifndef HAVE_SELFTEST
-#if !defined(NO_DSA) && defined(WOLFSSL_KEY_GEN)
- DsaKey genKey;
- WC_RNG rng;
- byte* der;
-
- printf(testingFmt, "wc_DsaKeyToPublicDer()");
-
- der = (byte*)XMALLOC(ONEK_BUF, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- if (der == NULL) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- if (ret == 0) {
- ret = wc_InitDsaKey(&genKey);
- }
- if (ret == 0) {
- ret = wc_InitRng(&rng);
- }
- if (ret == 0) {
- ret = wc_MakeDsaParameters(&rng, ONEK_BUF, &genKey);
- }
- if (ret == 0) {
- ret = wc_MakeDsaKey(&rng, &genKey);
- }
-
- if (ret == 0) {
- ret = wc_DsaKeyToPublicDer(&genKey, der, ONEK_BUF);
- if (ret >= 0) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_DsaKeyToPublicDer(NULL, der, FOURK_BUF);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_DsaKeyToPublicDer(&genKey, NULL, FOURK_BUF);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- XFREE(der,NULL,DYNAMIC_TYPE_TMP_BUFFER);
- wc_FreeDsaKey(&genKey);
-#endif /* !defined(NO_DSA) && defined(WOLFSSL_KEY_GEN) */
-#endif /* HAVE_SELFTEST */
- return ret;
-
-} /* END test_wc_DsaKeyToPublicDer */
-
-/*
- * Testing wc_DsaImportParamsRaw()
- */
-static int test_wc_DsaImportParamsRaw (void)
-{
- int ret = 0;
-
-#if !defined(NO_DSA)
- DsaKey key;
-
- /* [mod = L=1024, N=160], from CAVP KeyPair */
- const char* p = "d38311e2cd388c3ed698e82fdf88eb92b5a9a483dc88005d"
- "4b725ef341eabb47cf8a7a8a41e792a156b7ce97206c4f9c"
- "5ce6fc5ae7912102b6b502e59050b5b21ce263dddb2044b6"
- "52236f4d42ab4b5d6aa73189cef1ace778d7845a5c1c1c71"
- "47123188f8dc551054ee162b634d60f097f719076640e209"
- "80a0093113a8bd73";
- const char* q = "96c5390a8b612c0e422bb2b0ea194a3ec935a281";
- const char* g = "06b7861abbd35cc89e79c52f68d20875389b127361ca66822"
- "138ce4991d2b862259d6b4548a6495b195aa0e0b6137ca37e"
- "b23b94074d3c3d300042bdf15762812b6333ef7b07ceba786"
- "07610fcc9ee68491dbc1e34cd12615474e52b18bc934fb00c"
- "61d39e7da8902291c4434a4e2224c3f4fd9f93cd6f4f17fc0"
- "76341a7e7d9";
-
- /* invalid p and q parameters */
- const char* invalidP = "d38311e2cd388c3ed698e82fdf88eb92b5a9a483dc88005d";
- const char* invalidQ = "96c5390a";
-
- printf(testingFmt, "wc_DsaImportParamsRaw()");
-
- ret = wc_InitDsaKey(&key);
- if (ret == 0) {
- ret = wc_DsaImportParamsRaw(&key, p, q, g);
- }
-
- /* test bad args */
- if (ret == 0) {
- /* null key struct */
- ret = wc_DsaImportParamsRaw(NULL, p, q, g);
- if (ret == BAD_FUNC_ARG) {
- /* null param pointers */
- ret = wc_DsaImportParamsRaw(&key, NULL, NULL, NULL);
- }
-
- if (ret == BAD_FUNC_ARG) {
- /* illegal p length */
- ret = wc_DsaImportParamsRaw(&key, invalidP, q, g);
- }
-
- if (ret == BAD_FUNC_ARG) {
- /* illegal q length */
- ret = wc_DsaImportParamsRaw(&key, p, invalidQ, g);
- if (ret == BAD_FUNC_ARG)
- ret = 0;
- }
-
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_FreeDsaKey(&key);
-
-#endif
-
- return ret;
-
-} /* END test_wc_DsaImportParamsRaw */
-
-/*
- * Testing wc_DsaImportParamsRawCheck()
- */
-static int test_wc_DsaImportParamsRawCheck (void)
-{
- int ret = 0;
-
-#if !defined(NO_DSA) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST)
- DsaKey key;
- int trusted = 0;
- /* [mod = L=1024, N=160], from CAVP KeyPair */
- const char* p = "d38311e2cd388c3ed698e82fdf88eb92b5a9a483dc88005d"
- "4b725ef341eabb47cf8a7a8a41e792a156b7ce97206c4f9c"
- "5ce6fc5ae7912102b6b502e59050b5b21ce263dddb2044b6"
- "52236f4d42ab4b5d6aa73189cef1ace778d7845a5c1c1c71"
- "47123188f8dc551054ee162b634d60f097f719076640e209"
- "80a0093113a8bd73";
- const char* q = "96c5390a8b612c0e422bb2b0ea194a3ec935a281";
- const char* g = "06b7861abbd35cc89e79c52f68d20875389b127361ca66822"
- "138ce4991d2b862259d6b4548a6495b195aa0e0b6137ca37e"
- "b23b94074d3c3d300042bdf15762812b6333ef7b07ceba786"
- "07610fcc9ee68491dbc1e34cd12615474e52b18bc934fb00c"
- "61d39e7da8902291c4434a4e2224c3f4fd9f93cd6f4f17fc0"
- "76341a7e7d9";
-
- /* invalid p and q parameters */
- const char* invalidP = "d38311e2cd388c3ed698e82fdf88eb92b5a9a483dc88005d";
- const char* invalidQ = "96c5390a";
-
- printf(testingFmt, "wc_DsaImportParamsRawCheck()");
-
- ret = wc_InitDsaKey(&key);
- if (ret == 0) {
- ret = wc_DsaImportParamsRawCheck(&key, p, q, g, trusted, NULL);
- }
-
- /* test bad args */
- if (ret == 0) {
- /* null key struct */
- ret = wc_DsaImportParamsRawCheck(NULL, p, q, g, trusted, NULL);
- if (ret == BAD_FUNC_ARG) {
- /* null param pointers */
- ret = wc_DsaImportParamsRawCheck(&key, NULL, NULL, NULL, trusted, NULL);
- }
-
- if (ret == BAD_FUNC_ARG) {
- /* illegal p length */
- ret = wc_DsaImportParamsRawCheck(&key, invalidP, q, g, trusted, NULL);
- }
-
- if (ret == BAD_FUNC_ARG) {
- /* illegal q length */
- ret = wc_DsaImportParamsRawCheck(&key, p, invalidQ, g, trusted, NULL);
- if (ret == BAD_FUNC_ARG)
- ret = 0;
- }
-
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_FreeDsaKey(&key);
-
-#endif
-
- return ret;
-
-} /* END test_wc_DsaImportParamsRawCheck */
-
-/*
- * Testing wc_DsaExportParamsRaw()
- */
-static int test_wc_DsaExportParamsRaw (void)
-{
- int ret = 0;
-
-#if !defined(NO_DSA)
- DsaKey key;
-
- /* [mod = L=1024, N=160], from CAVP KeyPair */
- const char* p = "d38311e2cd388c3ed698e82fdf88eb92b5a9a483dc88005d"
- "4b725ef341eabb47cf8a7a8a41e792a156b7ce97206c4f9c"
- "5ce6fc5ae7912102b6b502e59050b5b21ce263dddb2044b6"
- "52236f4d42ab4b5d6aa73189cef1ace778d7845a5c1c1c71"
- "47123188f8dc551054ee162b634d60f097f719076640e209"
- "80a0093113a8bd73";
- const char* q = "96c5390a8b612c0e422bb2b0ea194a3ec935a281";
- const char* g = "06b7861abbd35cc89e79c52f68d20875389b127361ca66822"
- "138ce4991d2b862259d6b4548a6495b195aa0e0b6137ca37e"
- "b23b94074d3c3d300042bdf15762812b6333ef7b07ceba786"
- "07610fcc9ee68491dbc1e34cd12615474e52b18bc934fb00c"
- "61d39e7da8902291c4434a4e2224c3f4fd9f93cd6f4f17fc0"
- "76341a7e7d9";
-
- const char* pCompare = "\xd3\x83\x11\xe2\xcd\x38\x8c\x3e\xd6\x98\xe8\x2f"
- "\xdf\x88\xeb\x92\xb5\xa9\xa4\x83\xdc\x88\x00\x5d"
- "\x4b\x72\x5e\xf3\x41\xea\xbb\x47\xcf\x8a\x7a\x8a"
- "\x41\xe7\x92\xa1\x56\xb7\xce\x97\x20\x6c\x4f\x9c"
- "\x5c\xe6\xfc\x5a\xe7\x91\x21\x02\xb6\xb5\x02\xe5"
- "\x90\x50\xb5\xb2\x1c\xe2\x63\xdd\xdb\x20\x44\xb6"
- "\x52\x23\x6f\x4d\x42\xab\x4b\x5d\x6a\xa7\x31\x89"
- "\xce\xf1\xac\xe7\x78\xd7\x84\x5a\x5c\x1c\x1c\x71"
- "\x47\x12\x31\x88\xf8\xdc\x55\x10\x54\xee\x16\x2b"
- "\x63\x4d\x60\xf0\x97\xf7\x19\x07\x66\x40\xe2\x09"
- "\x80\xa0\x09\x31\x13\xa8\xbd\x73";
- const char* qCompare = "\x96\xc5\x39\x0a\x8b\x61\x2c\x0e\x42\x2b\xb2\xb0"
- "\xea\x19\x4a\x3e\xc9\x35\xa2\x81";
- const char* gCompare = "\x06\xb7\x86\x1a\xbb\xd3\x5c\xc8\x9e\x79\xc5\x2f"
- "\x68\xd2\x08\x75\x38\x9b\x12\x73\x61\xca\x66\x82"
- "\x21\x38\xce\x49\x91\xd2\xb8\x62\x25\x9d\x6b\x45"
- "\x48\xa6\x49\x5b\x19\x5a\xa0\xe0\xb6\x13\x7c\xa3"
- "\x7e\xb2\x3b\x94\x07\x4d\x3c\x3d\x30\x00\x42\xbd"
- "\xf1\x57\x62\x81\x2b\x63\x33\xef\x7b\x07\xce\xba"
- "\x78\x60\x76\x10\xfc\xc9\xee\x68\x49\x1d\xbc\x1e"
- "\x34\xcd\x12\x61\x54\x74\xe5\x2b\x18\xbc\x93\x4f"
- "\xb0\x0c\x61\xd3\x9e\x7d\xa8\x90\x22\x91\xc4\x43"
- "\x4a\x4e\x22\x24\xc3\xf4\xfd\x9f\x93\xcd\x6f\x4f"
- "\x17\xfc\x07\x63\x41\xa7\xe7\xd9";
-
- byte pOut[MAX_DSA_PARAM_SIZE];
- byte qOut[MAX_DSA_PARAM_SIZE];
- byte gOut[MAX_DSA_PARAM_SIZE];
- word32 pOutSz, qOutSz, gOutSz;
-
- printf(testingFmt, "wc_DsaExportParamsRaw()");
-
- ret = wc_InitDsaKey(&key);
- if (ret == 0) {
- /* first test using imported raw parameters, for expected */
- ret = wc_DsaImportParamsRaw(&key, p, q, g);
- }
-
- if (ret == 0) {
- pOutSz = sizeof(pOut);
- qOutSz = sizeof(qOut);
- gOutSz = sizeof(gOut);
- ret = wc_DsaExportParamsRaw(&key, pOut, &pOutSz, qOut, &qOutSz,
- gOut, &gOutSz);
- }
-
- if (ret == 0) {
- /* validate exported parameters are correct */
- if ((XMEMCMP(pOut, pCompare, pOutSz) != 0) ||
- (XMEMCMP(qOut, qCompare, qOutSz) != 0) ||
- (XMEMCMP(gOut, gCompare, gOutSz) != 0) ) {
- ret = -1;
- }
- }
-
- /* test bad args */
- if (ret == 0) {
- /* null key struct */
- ret = wc_DsaExportParamsRaw(NULL, pOut, &pOutSz, qOut, &qOutSz,
- gOut, &gOutSz);
-
- if (ret == BAD_FUNC_ARG) {
- /* null output pointers */
- ret = wc_DsaExportParamsRaw(&key, NULL, &pOutSz, NULL, &qOutSz,
- NULL, &gOutSz);
- }
-
- if (ret == LENGTH_ONLY_E) {
- /* null output size pointers */
- ret = wc_DsaExportParamsRaw(&key, pOut, NULL, qOut, NULL,
- gOut, NULL);
- }
-
- if (ret == BAD_FUNC_ARG) {
- /* p output buffer size too small */
- pOutSz = 1;
- ret = wc_DsaExportParamsRaw(&key, pOut, &pOutSz, qOut, &qOutSz,
- gOut, &gOutSz);
- pOutSz = sizeof(pOut);
- }
-
- if (ret == BUFFER_E) {
- /* q output buffer size too small */
- qOutSz = 1;
- ret = wc_DsaExportParamsRaw(&key, pOut, &pOutSz, qOut, &qOutSz,
- gOut, &gOutSz);
- qOutSz = sizeof(qOut);
- }
-
- if (ret == BUFFER_E) {
- /* g output buffer size too small */
- gOutSz = 1;
- ret = wc_DsaExportParamsRaw(&key, pOut, &pOutSz, qOut, &qOutSz,
- gOut, &gOutSz);
- if (ret == BUFFER_E)
- ret = 0;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_FreeDsaKey(&key);
-
-#endif
-
- return ret;
-
-} /* END test_wc_DsaExportParamsRaw */
-
-/*
- * Testing wc_DsaExportKeyRaw()
- */
-static int test_wc_DsaExportKeyRaw (void)
-{
- int ret = 0;
-
-#if !defined(NO_DSA) && defined(WOLFSSL_KEY_GEN)
- DsaKey key;
- WC_RNG rng;
-
- byte xOut[MAX_DSA_PARAM_SIZE];
- byte yOut[MAX_DSA_PARAM_SIZE];
- word32 xOutSz, yOutSz;
-
- printf(testingFmt, "wc_DsaExportKeyRaw()");
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_InitDsaKey(&key);
- }
-
- if (ret == 0) {
- ret = wc_MakeDsaParameters(&rng, 1024, &key);
-
- if (ret == 0) {
- ret = wc_MakeDsaKey(&rng, &key);
- }
- }
-
- /* try successful export */
- if (ret == 0) {
- xOutSz = sizeof(xOut);
- yOutSz = sizeof(yOut);
- ret = wc_DsaExportKeyRaw(&key, xOut, &xOutSz, yOut, &yOutSz);
- }
-
- /* test bad args */
- if (ret == 0) {
- /* null key struct */
- ret = wc_DsaExportKeyRaw(NULL, xOut, &xOutSz, yOut, &yOutSz);
-
- if (ret == BAD_FUNC_ARG) {
- /* null output pointers */
- ret = wc_DsaExportKeyRaw(&key, NULL, &xOutSz, NULL, &yOutSz);
- }
-
- if (ret == LENGTH_ONLY_E) {
- /* null output size pointers */
- ret = wc_DsaExportKeyRaw(&key, xOut, NULL, yOut, NULL);
- }
-
- if (ret == BAD_FUNC_ARG) {
- /* x output buffer size too small */
- xOutSz = 1;
- ret = wc_DsaExportKeyRaw(&key, xOut, &xOutSz, yOut, &yOutSz);
- xOutSz = sizeof(xOut);
- }
-
- if (ret == BUFFER_E) {
- /* y output buffer size too small */
- yOutSz = 1;
- ret = wc_DsaExportKeyRaw(&key, xOut, &xOutSz, yOut, &yOutSz);
-
- if (ret == BUFFER_E)
- ret = 0;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_FreeDsaKey(&key);
- wc_FreeRng(&rng);
-
-#endif
-
- return ret;
-
-} /* END test_wc_DsaExportParamsRaw */
-
-
-/*
- * Testing wc_ed25519_make_key().
- */
-static int test_wc_ed25519_make_key (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ED25519)
- ed25519_key key;
- WC_RNG rng;
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ed25519_init(&key);
- }
- printf(testingFmt, "wc_ed25519_make_key()");
- if (ret == 0) {
- ret = wc_ed25519_make_key(&rng, ED25519_KEY_SIZE, &key);
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ed25519_make_key(NULL, ED25519_KEY_SIZE, &key);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_make_key(&rng, ED25519_KEY_SIZE, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_make_key(&rng, ED25519_KEY_SIZE - 1, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_make_key(&rng, ED25519_KEY_SIZE + 1, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed25519_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ed25519_make_key */
-
-
-/*
- * Testing wc_ed25519_init()
- */
-static int test_wc_ed25519_init (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ED25519)
-
- ed25519_key key;
-
- printf(testingFmt, "wc_ed25519_init()");
-
- ret = wc_ed25519_init(&key);
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ed25519_init(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_ed25519_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ed25519_init */
-
-/*
- * Test wc_ed25519_sign_msg() and wc_ed25519_verify_msg()
- */
-static int test_wc_ed25519_sign_msg (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ED25519) && defined(HAVE_ED25519_SIGN)
- WC_RNG rng;
- ed25519_key key;
- byte msg[] = "Everybody gets Friday off.\n";
- byte sig[ED25519_SIG_SIZE];
- word32 msglen = sizeof(msg);
- word32 siglen = sizeof(sig);
- word32 badSigLen = sizeof(sig) - 1;
- int verify_ok = 0; /*1 = Verify success.*/
-
- /* Initialize stack variables. */
- XMEMSET(sig, 0, siglen);
-
- /* Initialize key. */
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ed25519_init(&key);
- if (ret == 0) {
- ret = wc_ed25519_make_key(&rng, ED25519_KEY_SIZE, &key);
- }
- }
-
- printf(testingFmt, "wc_ed25519_sign_msg()");
-
- if (ret == 0) {
- ret = wc_ed25519_sign_msg(msg, msglen, sig, &siglen, &key);
- }
- /* Test bad args. */
- if (ret == 0 && siglen == ED25519_SIG_SIZE) {
- ret = wc_ed25519_sign_msg(NULL, msglen, sig, &siglen, &key);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_sign_msg(msg, msglen, NULL, &siglen, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_sign_msg(msg, msglen, sig, NULL, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_sign_msg(msg, msglen, sig, &siglen, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_sign_msg(msg, msglen, sig, &badSigLen, &key);
- }
- if (ret == BUFFER_E && badSigLen == ED25519_SIG_SIZE) {
- badSigLen -= 1;
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- } /* END sign */
-
- printf(resultFmt, ret == 0 ? passed : failed);
- #ifdef HAVE_ED25519_VERIFY
- printf(testingFmt, "wc_ed25519_verify_msg()");
-
- if (ret == 0) {
-
- ret = wc_ed25519_verify_msg(sig, siglen, msg, msglen, &verify_ok, &key);
- if (ret == 0 && verify_ok == 1) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ed25519_verify_msg(NULL, siglen, msg, msglen, &verify_ok,
- &key);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_verify_msg(sig, siglen, NULL, msglen,
- &verify_ok, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_verify_msg(sig, siglen, msg, msglen,
- NULL, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_verify_msg(sig, siglen, msg, msglen,
- &verify_ok, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_verify_msg(sig, badSigLen, msg, msglen,
- &verify_ok, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- } /* END verify. */
-
- printf(resultFmt, ret == 0 ? passed : failed);
- #endif /* Verify. */
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed25519_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ed25519_sign_msg */
-
-/*
- * Testing wc_ed25519_import_public()
- */
-static int test_wc_ed25519_import_public (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ED25519) && defined(HAVE_ED25519_KEY_IMPORT)
- WC_RNG rng;
- ed25519_key pubKey;
- const byte in[] = "Ed25519PublicKeyUnitTest......\n";
- word32 inlen = sizeof(in);
-
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ed25519_init(&pubKey);
- if (ret == 0) {
- ret = wc_ed25519_make_key(&rng, ED25519_KEY_SIZE, &pubKey);
- }
- }
- printf(testingFmt, "wc_ed25519_import_public()");
-
- if (ret == 0) {
- ret = wc_ed25519_import_public(in, inlen, &pubKey);
-
- if (ret == 0 && XMEMCMP(in, pubKey.p, inlen) == 0) {
- ret = 0;
- } else {
- ret = SSL_FATAL_ERROR;
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ed25519_import_public(NULL, inlen, &pubKey);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_import_public(in, inlen, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_import_public(in, inlen - 1, &pubKey);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed25519_free(&pubKey);
-
-#endif
- return ret;
-
-} /* END wc_ed25519_import_public */
-
-/*
- * Testing wc_ed25519_import_private_key()
- */
-static int test_wc_ed25519_import_private_key (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ED25519) && defined(HAVE_ED25519_KEY_IMPORT)
- WC_RNG rng;
- ed25519_key key;
- const byte privKey[] = "Ed25519PrivateKeyUnitTest.....\n";
- const byte pubKey[] = "Ed25519PublicKeyUnitTest......\n";
- word32 privKeySz = sizeof(privKey);
- word32 pubKeySz = sizeof(pubKey);
-
- ret = wc_InitRng(&rng);
- if (ret != 0) {
- return ret;
- }
- ret = wc_ed25519_init(&key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- return ret;
- }
- ret = wc_ed25519_make_key(&rng, ED25519_KEY_SIZE, &key);
-
- printf(testingFmt, "wc_ed25519_import_private_key()");
-
- if (ret == 0) {
- ret = wc_ed25519_import_private_key(privKey, privKeySz, pubKey,
- pubKeySz, &key);
- if (ret == 0 && (XMEMCMP(pubKey, key.p, privKeySz) != 0
- || XMEMCMP(privKey, key.k, pubKeySz) != 0)) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ed25519_import_private_key(NULL, privKeySz, pubKey, pubKeySz,
- &key);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_import_private_key(privKey, privKeySz, NULL,
- pubKeySz, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_import_private_key(privKey, privKeySz, pubKey,
- pubKeySz, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_import_private_key(privKey, privKeySz - 1, pubKey,
- pubKeySz, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_import_private_key(privKey, privKeySz, pubKey,
- pubKeySz - 1, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed25519_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ed25519_import_private_key */
-
-/*
- * Testing wc_ed25519_export_public() and wc_ed25519_export_private_only()
- */
-static int test_wc_ed25519_export (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ED25519) && defined(HAVE_ED25519_KEY_EXPORT)
- WC_RNG rng;
- ed25519_key key;
- byte priv[ED25519_PRV_KEY_SIZE];
- byte pub[ED25519_PUB_KEY_SIZE];
- word32 privSz = sizeof(priv);
- word32 pubSz = sizeof(pub);
-
- ret = wc_InitRng(&rng);
- if (ret != 0) {
- return ret;
- }
-
- ret = wc_ed25519_init(&key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- return ret;
- }
-
- if (ret == 0) {
- ret = wc_ed25519_make_key(&rng, ED25519_KEY_SIZE, &key);
- }
-
- printf(testingFmt, "wc_ed25519_export_public()");
-
- if (ret == 0) {
- ret = wc_ed25519_export_public(&key, pub, &pubSz);
- if (ret == 0 && (pubSz != ED25519_KEY_SIZE
- || XMEMCMP(key.p, pub, pubSz) != 0)) {
- ret = SSL_FATAL_ERROR;
- }
- if (ret == 0) {
- ret = wc_ed25519_export_public(NULL, pub, &pubSz);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_export_public(&key, NULL, &pubSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_export_public(&key, pub, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- printf(testingFmt, "wc_ed25519_export_private_only()");
-
- if (ret == 0) {
- ret = wc_ed25519_export_private_only(&key, priv, &privSz);
- if (ret == 0 && (privSz != ED25519_KEY_SIZE
- || XMEMCMP(key.k, priv, privSz) != 0)) {
- ret = SSL_FATAL_ERROR;
- }
- if (ret == 0) {
- ret = wc_ed25519_export_private_only(NULL, priv, &privSz);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_export_private_only(&key, NULL, &privSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_export_private_only(&key, priv, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed25519_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ed25519_export */
-
-/*
- * Testing wc_ed25519_size()
- */
-static int test_wc_ed25519_size (void)
-{
- int ret = 0;
-#if defined(HAVE_ED25519)
- WC_RNG rng;
- ed25519_key key;
-
- ret = wc_InitRng(&rng);
- if (ret != 0) {
- return ret;
- }
- ret = wc_ed25519_init(&key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- return ret;
- }
-
- ret = wc_ed25519_make_key(&rng, ED25519_KEY_SIZE, &key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- wc_ed25519_free(&key);
- return ret;
- }
-
- printf(testingFmt, "wc_ed25519_size()");
- ret = wc_ed25519_size(&key);
- /* Test bad args. */
- if (ret == ED25519_KEY_SIZE) {
- ret = wc_ed25519_size(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- }
- }
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (ret == 0) {
- printf(testingFmt, "wc_ed25519_sig_size()");
-
- ret = wc_ed25519_sig_size(&key);
- if (ret == ED25519_SIG_SIZE) {
- ret = 0;
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ed25519_sig_size(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- } /* END wc_ed25519_sig_size() */
-
- if (ret == 0) {
- printf(testingFmt, "wc_ed25519_pub_size");
- ret = wc_ed25519_pub_size(&key);
- if (ret == ED25519_PUB_KEY_SIZE) {
- ret = 0;
- }
- if (ret == 0) {
- ret = wc_ed25519_pub_size(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- }
- }
- printf(resultFmt, ret == 0 ? passed : failed);
- } /* END wc_ed25519_pub_size */
-
- if (ret == 0) {
- printf(testingFmt, "wc_ed25519_priv_size");
- ret = wc_ed25519_priv_size(&key);
- if (ret == ED25519_PRV_KEY_SIZE) {
- ret = 0;
- }
- if (ret == 0) {
- ret = wc_ed25519_priv_size(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- }
- }
- printf(resultFmt, ret == 0 ? passed : failed);
- } /* END wc_ed25519_pub_size */
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed25519_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ed25519_size */
-
-/*
- * Testing wc_ed25519_export_private() and wc_ed25519_export_key()
- */
-static int test_wc_ed25519_exportKey (void)
-{
- int ret = 0;
-#if defined(HAVE_ED25519) && defined(HAVE_ED25519_KEY_EXPORT)
- WC_RNG rng;
- ed25519_key key;
- byte priv[ED25519_PRV_KEY_SIZE];
- byte pub[ED25519_PUB_KEY_SIZE];
- byte privOnly[ED25519_PRV_KEY_SIZE];
- word32 privSz = sizeof(priv);
- word32 pubSz = sizeof(pub);
- word32 privOnlySz = sizeof(privOnly);
-
- ret = wc_InitRng(&rng);
- if (ret != 0) {
- return ret;
- }
- ret = wc_ed25519_init(&key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- return ret;
- }
-
- ret = wc_ed25519_make_key(&rng, ED25519_KEY_SIZE, &key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- wc_ed25519_free(&key);
- return ret;
- }
-
- printf(testingFmt, "wc_ed25519_export_private()");
-
- ret = wc_ed25519_export_private(&key, privOnly, &privOnlySz);
- if (ret == 0) {
- ret = wc_ed25519_export_private(NULL, privOnly, &privOnlySz);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_export_private(&key, NULL, &privOnlySz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_export_private(&key, privOnly, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (ret == 0) {
- printf(testingFmt, "wc_ed25519_export_key()");
-
- ret = wc_ed25519_export_key(&key, priv, &privSz, pub, &pubSz);
- if (ret == 0) {
- ret = wc_ed25519_export_key(NULL, priv, &privSz, pub, &pubSz);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_export_key(&key, NULL, &privSz, pub, &pubSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_export_key(&key, priv, NULL, pub, &pubSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_export_key(&key, priv, &privSz, NULL, &pubSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed25519_export_key(&key, priv, &privSz, pub, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
- printf(resultFmt, ret == 0 ? passed : failed);
- } /* END wc_ed25519_export_key() */
-
- /* Cross check output. */
- if (ret == 0 && XMEMCMP(priv, privOnly, privSz) != 0) {
- ret = SSL_FATAL_ERROR;
- }
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed25519_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ed25519_exportKey */
-
-/*
- * Testing wc_Ed25519PublicKeyToDer
- */
-static int test_wc_Ed25519PublicKeyToDer (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ED25519) && (defined(WOLFSSL_CERT_GEN) || \
- defined(WOLFSSL_KEY_GEN))
- int tmp;
- ed25519_key key;
- byte derBuf[1024];
-
- printf(testingFmt, "wc_Ed25519PublicKeyToDer()");
-
- /* Test bad args */
- tmp = wc_Ed25519PublicKeyToDer(NULL, NULL, 0, 0);
- if (tmp != BAD_FUNC_ARG) {
- ret = SSL_FATAL_ERROR;
- }
-
- if (ret == 0) {
- wc_ed25519_init(&key);
- tmp = wc_Ed25519PublicKeyToDer(&key, derBuf, 0, 0);
- if (tmp != BUFFER_E) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed25519_free(&key);
- }
-
- /* Test good args */
- if (ret == 0) {
- WC_RNG rng;
- ret = wc_InitRng(&rng);
- if (ret != 0) {
- return ret;
- }
- ret = wc_ed25519_init(&key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- return ret;
- }
-
- ret = wc_ed25519_make_key(&rng, ED25519_KEY_SIZE, &key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- wc_ed25519_free(&key);
- return ret;
- }
-
- tmp = wc_Ed25519PublicKeyToDer(&key, derBuf, 1024, 1);
- if (tmp <= 0) {
- ret = SSL_FATAL_ERROR;
- }
-
- wc_FreeRng(&rng);
- wc_ed25519_free(&key);
- }
- printf(resultFmt, ret == 0 ? passed : failed);
-#endif
- return ret;
-
-} /* END testing wc_Ed25519PublicKeyToDer */
-
-/*
- * Testing wc_curve25519_init and wc_curve25519_free.
- */
-static int test_wc_curve25519_init (void)
-{
- int ret = 0;
-
-#if defined(HAVE_CURVE25519)
-
- curve25519_key key;
-
- printf(testingFmt, "wc_curve25519_init()");
- ret = wc_curve25519_init(&key);
-
- /* Test bad args for wc_curve25519_init */
- if (ret == 0) {
- ret = wc_curve25519_init(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- /* Test good args for wc_curve_25519_free */
- wc_curve25519_free(&key);
-
- wc_curve25519_free(NULL);
-
-#endif
- return ret;
-
-} /* END test_wc_curve25519_init and wc_curve_25519_free*/
-/*
- * Testing test_wc_curve25519_size.
- */
-static int test_wc_curve25519_size (void)
-{
- int ret = 0;
-
-#if defined(HAVE_CURVE25519)
-
- curve25519_key key;
-
- printf(testingFmt, "wc_curve25519_size()");
-
- ret = wc_curve25519_init(&key);
-
- /* Test good args for wc_curve25519_size */
- if (ret == 0) {
- ret = wc_curve25519_size(&key);
- }
-
- /* Test bad args for wc_curve25519_size */
- if (ret != 0) {
- ret = wc_curve25519_size(NULL);
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- wc_curve25519_free(&key);
-#endif
- return ret;
-
-} /* END test_wc_curve25519_size*/
-
-/*
- * Testing wc_ed448_make_key().
- */
-static int test_wc_ed448_make_key (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ED448)
- ed448_key key;
- WC_RNG rng;
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ed448_init(&key);
- }
- printf(testingFmt, "wc_ed448_make_key()");
- if (ret == 0) {
- ret = wc_ed448_make_key(&rng, ED448_KEY_SIZE, &key);
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ed448_make_key(NULL, ED448_KEY_SIZE, &key);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_make_key(&rng, ED448_KEY_SIZE, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_make_key(&rng, ED448_KEY_SIZE - 1, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_make_key(&rng, ED448_KEY_SIZE + 1, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed448_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ed448_make_key */
-
-
-/*
- * Testing wc_ed448_init()
- */
-static int test_wc_ed448_init (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ED448)
-
- ed448_key key;
-
- printf(testingFmt, "wc_ed448_init()");
-
- ret = wc_ed448_init(&key);
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ed448_init(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_ed448_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ed448_init */
-
-/*
- * Test wc_ed448_sign_msg() and wc_ed448_verify_msg()
- */
-static int test_wc_ed448_sign_msg (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ED448) && defined(HAVE_ED448_SIGN)
- WC_RNG rng;
- ed448_key key;
- byte msg[] = "Everybody gets Friday off.\n";
- byte sig[ED448_SIG_SIZE];
- word32 msglen = sizeof(msg);
- word32 siglen = sizeof(sig);
- word32 badSigLen = sizeof(sig) - 1;
- int verify_ok = 0; /*1 = Verify success.*/
-
- /* Initialize stack variables. */
- XMEMSET(sig, 0, siglen);
-
- /* Initialize key. */
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ed448_init(&key);
- if (ret == 0) {
- ret = wc_ed448_make_key(&rng, ED448_KEY_SIZE, &key);
- }
- }
-
- printf(testingFmt, "wc_ed448_sign_msg()");
-
- if (ret == 0) {
- ret = wc_ed448_sign_msg(msg, msglen, sig, &siglen, &key, NULL, 0);
- }
- /* Test bad args. */
- if (ret == 0 && siglen == ED448_SIG_SIZE) {
- ret = wc_ed448_sign_msg(NULL, msglen, sig, &siglen, &key, NULL, 0);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_sign_msg(msg, msglen, NULL, &siglen, &key, NULL, 0);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_sign_msg(msg, msglen, sig, NULL, &key, NULL, 0);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_sign_msg(msg, msglen, sig, &siglen, NULL, NULL, 0);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_sign_msg(msg, msglen, sig, &badSigLen, &key,
- NULL, 0);
- }
- if (ret == BUFFER_E && badSigLen == ED448_SIG_SIZE) {
- badSigLen -= 1;
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- } /* END sign */
-
- printf(resultFmt, ret == 0 ? passed : failed);
- #ifdef HAVE_ED448_VERIFY
- printf(testingFmt, "wc_ed448_verify_msg()");
-
- if (ret == 0) {
-
- ret = wc_ed448_verify_msg(sig, siglen, msg, msglen, &verify_ok,
- &key, NULL, 0);
- if (ret == 0 && verify_ok == 1) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ed448_verify_msg(NULL, siglen, msg, msglen, &verify_ok,
- &key, NULL, 0);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_verify_msg(sig, siglen, NULL, msglen,
- &verify_ok, &key, NULL, 0);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_verify_msg(sig, siglen, msg, msglen,
- NULL, &key, NULL, 0);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_verify_msg(sig, siglen, msg, msglen,
- &verify_ok, NULL, NULL, 0);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_verify_msg(sig, badSigLen, msg, msglen,
- &verify_ok, &key, NULL, 0);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- } /* END verify. */
-
- printf(resultFmt, ret == 0 ? passed : failed);
- #endif /* Verify. */
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed448_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ed448_sign_msg */
-
-/*
- * Testing wc_ed448_import_public()
- */
-static int test_wc_ed448_import_public (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ED448) && defined(HAVE_ED448_KEY_IMPORT)
- WC_RNG rng;
- ed448_key pubKey;
- const byte in[] =
- "Ed448PublicKeyUnitTest.................................\n";
- word32 inlen = sizeof(in);
-
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ed448_init(&pubKey);
- if (ret == 0) {
- ret = wc_ed448_make_key(&rng, ED448_KEY_SIZE, &pubKey);
- }
- }
- printf(testingFmt, "wc_ed448_import_public()");
-
- if (ret == 0) {
- ret = wc_ed448_import_public(in, inlen, &pubKey);
-
- if (ret == 0 && XMEMCMP(in, pubKey.p, inlen) == 0) {
- ret = 0;
- } else {
- ret = SSL_FATAL_ERROR;
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ed448_import_public(NULL, inlen, &pubKey);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_import_public(in, inlen, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_import_public(in, inlen - 1, &pubKey);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed448_free(&pubKey);
-
-#endif
- return ret;
-
-} /* END wc_ed448_import_public */
-
-/*
- * Testing wc_ed448_import_private_key()
- */
-static int test_wc_ed448_import_private_key (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ED448) && defined(HAVE_ED448_KEY_IMPORT)
- WC_RNG rng;
- ed448_key key;
- const byte privKey[] =
- "Ed448PrivateKeyUnitTest................................\n";
- const byte pubKey[] =
- "Ed448PublicKeyUnitTest.................................\n";
- word32 privKeySz = sizeof(privKey);
- word32 pubKeySz = sizeof(pubKey);
-
- ret = wc_InitRng(&rng);
- if (ret != 0) {
- return ret;
- }
- ret = wc_ed448_init(&key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- return ret;
- }
- ret = wc_ed448_make_key(&rng, ED448_KEY_SIZE, &key);
-
- printf(testingFmt, "wc_ed448_import_private_key()");
-
- if (ret == 0) {
- ret = wc_ed448_import_private_key(privKey, privKeySz, pubKey, pubKeySz,
- &key);
- if (ret == 0 && (XMEMCMP(pubKey, key.p, privKeySz) != 0 ||
- XMEMCMP(privKey, key.k, pubKeySz) != 0)) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ed448_import_private_key(NULL, privKeySz, pubKey, pubKeySz,
- &key);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_import_private_key(privKey, privKeySz, NULL,
- pubKeySz, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_import_private_key(privKey, privKeySz, pubKey,
- pubKeySz, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_import_private_key(privKey, privKeySz - 1, pubKey,
- pubKeySz, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_import_private_key(privKey, privKeySz, pubKey,
- pubKeySz - 1, &key);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed448_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ed448_import_private_key */
-
-/*
- * Testing wc_ed448_export_public() and wc_ed448_export_private_only()
- */
-static int test_wc_ed448_export (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ED448) && defined(HAVE_ED448_KEY_EXPORT)
- WC_RNG rng;
- ed448_key key;
- byte priv[ED448_PRV_KEY_SIZE];
- byte pub[ED448_PUB_KEY_SIZE];
- word32 privSz = sizeof(priv);
- word32 pubSz = sizeof(pub);
-
- ret = wc_InitRng(&rng);
- if (ret != 0) {
- return ret;
- }
-
- ret = wc_ed448_init(&key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- return ret;
- }
-
- if (ret == 0) {
- ret = wc_ed448_make_key(&rng, ED448_KEY_SIZE, &key);
- }
-
- printf(testingFmt, "wc_ed448_export_public()");
-
- if (ret == 0) {
- ret = wc_ed448_export_public(&key, pub, &pubSz);
- if (ret == 0 && (pubSz != ED448_KEY_SIZE ||
- XMEMCMP(key.p, pub, pubSz) != 0)) {
- ret = SSL_FATAL_ERROR;
- }
- if (ret == 0) {
- ret = wc_ed448_export_public(NULL, pub, &pubSz);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_export_public(&key, NULL, &pubSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_export_public(&key, pub, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- printf(testingFmt, "wc_ed448_export_private_only()");
-
- if (ret == 0) {
- ret = wc_ed448_export_private_only(&key, priv, &privSz);
- if (ret == 0 && (privSz != ED448_KEY_SIZE ||
- XMEMCMP(key.k, priv, privSz) != 0)) {
- ret = SSL_FATAL_ERROR;
- }
- if (ret == 0) {
- ret = wc_ed448_export_private_only(NULL, priv, &privSz);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_export_private_only(&key, NULL, &privSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_export_private_only(&key, priv, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed448_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ed448_export */
-
-/*
- * Testing wc_ed448_size()
- */
-static int test_wc_ed448_size (void)
-{
- int ret = 0;
-#if defined(HAVE_ED448)
- WC_RNG rng;
- ed448_key key;
-
- ret = wc_InitRng(&rng);
- if (ret != 0) {
- return ret;
- }
- ret = wc_ed448_init(&key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- return ret;
- }
-
- ret = wc_ed448_make_key(&rng, ED448_KEY_SIZE, &key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- wc_ed448_free(&key);
- return ret;
- }
-
- printf(testingFmt, "wc_ed448_size()");
- ret = wc_ed448_size(&key);
- /* Test bad args. */
- if (ret == ED448_KEY_SIZE) {
- ret = wc_ed448_size(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- }
- }
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (ret == 0) {
- printf(testingFmt, "wc_ed448_sig_size()");
-
- ret = wc_ed448_sig_size(&key);
- if (ret == ED448_SIG_SIZE) {
- ret = 0;
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ed448_sig_size(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- } /* END wc_ed448_sig_size() */
-
- if (ret == 0) {
- printf(testingFmt, "wc_ed448_pub_size");
- ret = wc_ed448_pub_size(&key);
- if (ret == ED448_PUB_KEY_SIZE) {
- ret = 0;
- }
- if (ret == 0) {
- ret = wc_ed448_pub_size(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- }
- }
- printf(resultFmt, ret == 0 ? passed : failed);
- } /* END wc_ed448_pub_size */
-
- if (ret == 0) {
- printf(testingFmt, "wc_ed448_priv_size");
- ret = wc_ed448_priv_size(&key);
- if (ret == ED448_PRV_KEY_SIZE) {
- ret = 0;
- }
- if (ret == 0) {
- ret = wc_ed448_priv_size(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- }
- }
- printf(resultFmt, ret == 0 ? passed : failed);
- } /* END wc_ed448_pub_size */
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed448_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ed448_size */
-
-/*
- * Testing wc_ed448_export_private() and wc_ed448_export_key()
- */
-static int test_wc_ed448_exportKey (void)
-{
- int ret = 0;
-#if defined(HAVE_ED448) && defined(HAVE_ED448_KEY_EXPORT)
- WC_RNG rng;
- ed448_key key;
- byte priv[ED448_PRV_KEY_SIZE];
- byte pub[ED448_PUB_KEY_SIZE];
- byte privOnly[ED448_PRV_KEY_SIZE];
- word32 privSz = sizeof(priv);
- word32 pubSz = sizeof(pub);
- word32 privOnlySz = sizeof(privOnly);
-
- ret = wc_InitRng(&rng);
- if (ret != 0) {
- return ret;
- }
- ret = wc_ed448_init(&key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- return ret;
- }
-
- ret = wc_ed448_make_key(&rng, ED448_KEY_SIZE, &key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- wc_ed448_free(&key);
- return ret;
- }
-
- printf(testingFmt, "wc_ed448_export_private()");
-
- ret = wc_ed448_export_private(&key, privOnly, &privOnlySz);
- if (ret == 0) {
- ret = wc_ed448_export_private(NULL, privOnly, &privOnlySz);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_export_private(&key, NULL, &privOnlySz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_export_private(&key, privOnly, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (ret == 0) {
- printf(testingFmt, "wc_ed448_export_key()");
-
- ret = wc_ed448_export_key(&key, priv, &privSz, pub, &pubSz);
- if (ret == 0) {
- ret = wc_ed448_export_key(NULL, priv, &privSz, pub, &pubSz);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_export_key(&key, NULL, &privSz, pub, &pubSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_export_key(&key, priv, NULL, pub, &pubSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_export_key(&key, priv, &privSz, NULL, &pubSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ed448_export_key(&key, priv, &privSz, pub, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
- printf(resultFmt, ret == 0 ? passed : failed);
- } /* END wc_ed448_export_key() */
-
- /* Cross check output. */
- if (ret == 0 && XMEMCMP(priv, privOnly, privSz) != 0) {
- ret = SSL_FATAL_ERROR;
- }
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed448_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ed448_exportKey */
-
-/*
- * Testing wc_Ed448PublicKeyToDer
- */
-static int test_wc_Ed448PublicKeyToDer (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ED448) && (defined(WOLFSSL_CERT_GEN) || \
- defined(WOLFSSL_KEY_GEN))
- int tmp;
- ed448_key key;
- byte derBuf[1024];
-
- printf(testingFmt, "wc_Ed448PublicKeyToDer()");
-
- /* Test bad args */
- tmp = wc_Ed448PublicKeyToDer(NULL, NULL, 0, 0);
- if (tmp != BAD_FUNC_ARG) {
- ret = SSL_FATAL_ERROR;
- }
-
- if (ret == 0) {
- wc_ed448_init(&key);
- tmp = wc_Ed448PublicKeyToDer(&key, derBuf, 0, 0);
- if (tmp != BUFFER_E) {
- ret = SSL_FATAL_ERROR;
- }
- wc_ed448_free(&key);
- }
-
- /* Test good args */
- if (ret == 0) {
- WC_RNG rng;
- ret = wc_InitRng(&rng);
- if (ret != 0) {
- return ret;
- }
- ret = wc_ed448_init(&key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- return ret;
- }
-
- ret = wc_ed448_make_key(&rng, ED448_KEY_SIZE, &key);
- if (ret != 0) {
- wc_FreeRng(&rng);
- wc_ed448_free(&key);
- return ret;
- }
-
- tmp = wc_Ed448PublicKeyToDer(&key, derBuf, 1024, 1);
- if (tmp <= 0) {
- ret = SSL_FATAL_ERROR;
- }
-
- wc_FreeRng(&rng);
- wc_ed448_free(&key);
- }
- printf(resultFmt, ret == 0 ? passed : failed);
-#endif
- return ret;
-
-} /* END testing wc_Ed448PublicKeyToDer */
-
-/*
- * Testing wc_curve448_init and wc_curve448_free.
- */
-static int test_wc_curve448_init (void)
-{
- int ret = 0;
-
-#if defined(HAVE_CURVE448)
-
- curve448_key key;
-
- printf(testingFmt, "wc_curve448_init()");
- ret = wc_curve448_init(&key);
-
- /* Test bad args for wc_curve448_init */
- if (ret == 0) {
- ret = wc_curve448_init(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = SSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- /* Test good args for wc_curve_448_free */
- wc_curve448_free(&key);
-
- wc_curve448_free(NULL);
-
-#endif
- return ret;
-
-} /* END test_wc_curve448_init and wc_curve_448_free*/
-/*
- * Testing test_wc_curve448_size.
- */
-static int test_wc_curve448_size (void)
-{
- int ret = 0;
-
-#if defined(HAVE_CURVE448)
-
- curve448_key key;
-
- printf(testingFmt, "wc_curve448_size()");
-
- ret = wc_curve448_init(&key);
-
- /* Test good args for wc_curve448_size */
- if (ret == 0) {
- ret = wc_curve448_size(&key);
- }
-
- /* Test bad args for wc_curve448_size */
- if (ret != 0) {
- ret = wc_curve448_size(NULL);
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- wc_curve448_free(&key);
-#endif
- return ret;
-
-} /* END test_wc_curve448_size*/
-
-/*
- * Testing wc_ecc_make_key.
- */
-static int test_wc_ecc_make_key (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && !defined(WC_NO_RNG)
- WC_RNG rng;
- ecc_key key;
-
- printf(testingFmt, "wc_ecc_make_key()");
-
- ret = wc_InitRng(&rng);
- if (ret != 0)
- return ret;
-
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, KEY14, &key);
-
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_ecc_make_key(NULL, KEY14, &key);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_make_key(&rng, KEY14, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- wc_ecc_free(&key);
- }
-
- if (wc_FreeRng(&rng) != 0 && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
-#ifdef FP_ECC
- wc_ecc_fp_free();
-#endif
-
- printf(resultFmt, ret == 0 ? passed : failed);
-#endif
-
- return ret;
-
-} /* END test_wc_ecc_make_key */
-
-
-/*
- * Testing wc_ecc_init()
- */
-static int test_wc_ecc_init (void)
-{
- int ret = 0;
-
-#ifdef HAVE_ECC
- ecc_key key;
-
- printf(testingFmt, "wc_ecc_init()");
-
- ret = wc_ecc_init(&key);
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_ecc_init(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_ecc_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_init */
-
-/*
- * Testing wc_ecc_check_key()
- */
-static int test_wc_ecc_check_key (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && !defined(WC_NO_RNG)
- WC_RNG rng;
- ecc_key key;
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, KEY14, &key);
- }
- }
-
- printf(testingFmt, "wc_ecc_check_key()");
-
- if (ret == 0) {
- ret = wc_ecc_check_key(&key);
- }
-
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_ecc_check_key(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_free(&key);
-
-#ifdef FP_ECC
- wc_ecc_fp_free();
-#endif
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_check_key */
-
-/*
- * Testing wc_ecc_get_generator()
- */
-static int test_wc_ecc_get_generator(void)
-{
- int ret = 0;
-#if defined(HAVE_ECC) && !defined(WC_NO_RNG) && !defined(HAVE_SELFTEST) && \
- !defined(HAVE_FIPS) && defined(OPENSSL_EXTRA)
- ecc_point* pt;
-
- printf(testingFmt, "wc_ecc_new_point()");
-
- pt = wc_ecc_new_point();
- if (!pt) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(testingFmt, "wc_ecc_get_generator()");
-
- if (ret == 0) {
- ret = wc_ecc_get_generator(pt, wc_ecc_get_curve_idx(ECC_SECP256R1));
- }
-
- /* Test bad args. */
- if (ret == MP_OKAY) {
- /* Returns Zero for bad arg. */
- ret = wc_ecc_get_generator(pt, -1);
- if (ret != MP_OKAY)
- wc_ecc_get_generator(NULL, wc_ecc_get_curve_idx(ECC_SECP256R1));
- if (ret != MP_OKAY)
- wc_ecc_get_generator(pt, 1000); /* If we ever get to 1000 curves
- * increase this number */
- if (ret != MP_OKAY)
- wc_ecc_get_generator(NULL, -1);
- ret = ret == MP_OKAY ? WOLFSSL_FATAL_ERROR : 0;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_ecc_del_point(pt);
-#endif
- return ret;
-} /* END test_wc_ecc_get_generator */
-
-/*
- * Testing wc_ecc_size()
- */
-static int test_wc_ecc_size (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && !defined(WC_NO_RNG)
- WC_RNG rng;
- ecc_key key;
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, KEY14, &key);
- }
- }
-
- printf(testingFmt, "wc_ecc_size()");
-
- if (ret == 0) {
- ret = wc_ecc_size(&key);
- if (ret == KEY14) {
- ret = 0;
- } else if (ret == 0){
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- /* Returns Zero for bad arg. */
- ret = wc_ecc_size(NULL);
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_free(&key);
-
-#endif
- return ret;
-} /* END test_wc_ecc_size */
-
-static void test_wc_ecc_params(void)
-{
- /* FIPS/CAVP self-test modules do not have `wc_ecc_get_curve_params`.
- It was added after certifications */
-#if defined(HAVE_ECC) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST)
- const ecc_set_type* ecc_set;
-#if !defined(NO_ECC256) && !defined(NO_ECC_SECP)
- /* Test for SECP256R1 curve */
- int curve_id = ECC_SECP256R1;
- int curve_idx = wc_ecc_get_curve_idx(curve_id);
- AssertIntNE(curve_idx, ECC_CURVE_INVALID);
- ecc_set = wc_ecc_get_curve_params(curve_idx);
- AssertNotNull(ecc_set);
- AssertIntEQ(ecc_set->id, curve_id);
-#endif
- /* Test case when SECP256R1 is not enabled */
- /* Test that we get curve params for index 0 */
- ecc_set = wc_ecc_get_curve_params(0);
- AssertNotNull(ecc_set);
-#endif /* HAVE_ECC && !HAVE_FIPS && !HAVE_SELFTEST */
-}
-
-/*
- * Testing wc_ecc_sign_hash() and wc_ecc_verify_hash()
- */
-static int test_wc_ecc_signVerify_hash (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_SIGN) && !defined(NO_ASN) && !defined(WC_NO_RNG)
- WC_RNG rng;
- ecc_key key;
- int signH = WOLFSSL_FATAL_ERROR;
- #ifdef HAVE_ECC_VERIFY
- int verifyH = WOLFSSL_FATAL_ERROR;
- int verify = 0;
- #endif
- word32 siglen = ECC_BUFSIZE;
- byte sig[ECC_BUFSIZE];
- byte digest[] = "Everyone gets Friday off.";
- word32 digestlen = (word32)XSTRLEN((char*)digest);
-
- /* Init stack var */
- XMEMSET(sig, 0, siglen);
-
- /* Init structs. */
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, KEY14, &key);
- }
- }
-
- printf(testingFmt, "wc_ecc_sign_hash()");
-
- if (ret == 0) {
- ret = wc_ecc_sign_hash(digest, digestlen, sig, &siglen, &rng, &key);
- }
-
- /* Check bad args. */
- if (ret == 0) {
- signH = wc_ecc_sign_hash(NULL, digestlen, sig, &siglen, &rng, &key);
- if (signH == ECC_BAD_ARG_E) {
- signH = wc_ecc_sign_hash(digest, digestlen, NULL, &siglen,
- &rng, &key);
- }
- if (signH == ECC_BAD_ARG_E) {
- signH = wc_ecc_sign_hash(digest, digestlen, sig, NULL,
- &rng, &key);
- }
- if (signH == ECC_BAD_ARG_E) {
- signH = wc_ecc_sign_hash(digest, digestlen, sig, &siglen,
- NULL, &key);
- }
- if (signH == ECC_BAD_ARG_E) {
- signH = wc_ecc_sign_hash(digest, digestlen, sig, &siglen,
- &rng, NULL);
- }
- if (signH == ECC_BAD_ARG_E) {
- signH = 0;
- } else if (ret == 0) {
- signH = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, signH == 0 ? passed : failed);
-
- #ifdef HAVE_ECC_VERIFY
- printf(testingFmt, "wc_ecc_verify_hash()");
-
- ret = wc_ecc_verify_hash(sig, siglen, digest, digestlen, &verify, &key);
- if (verify != 1 && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- /* Test bad args. */
- if (ret == 0) {
- verifyH = wc_ecc_verify_hash(NULL, siglen, digest, digestlen,
- &verify, &key);
- if (verifyH == ECC_BAD_ARG_E) {
- verifyH = wc_ecc_verify_hash(sig, siglen, NULL, digestlen,
- &verify, &key);
- }
- if (verifyH == ECC_BAD_ARG_E) {
- verifyH = wc_ecc_verify_hash(sig, siglen, digest, digestlen,
- NULL, &key);
- }
- if (verifyH == ECC_BAD_ARG_E) {
- verifyH = wc_ecc_verify_hash(sig, siglen, digest, digestlen,
- &verify, NULL);
- }
- if (verifyH == ECC_BAD_ARG_E) {
- verifyH = 0;
- } else if (ret == 0) {
- verifyH = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, verifyH == 0 ? passed : failed);
-
- #endif /* HAVE_ECC_VERIFY */
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_free(&key);
-
- #ifdef FP_ECC
- wc_ecc_fp_free();
- #endif
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_sign_hash */
-
-
-/*
- * Testing wc_ecc_shared_secret()
- */
-static int test_wc_ecc_shared_secret (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_DHE) && !defined(WC_NO_RNG)
- ecc_key key, pubKey;
- WC_RNG rng;
- int keySz = KEY16;
- byte out[KEY16];
- word32 outlen = (word32)sizeof(out);
-
- /* Initialize variables. */
- XMEMSET(out, 0, keySz);
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_ecc_init(&pubKey);
- }
- }
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, keySz, &key);
- }
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, keySz, &pubKey);
- }
-
- printf(testingFmt, "wc_ecc_shared_secret()");
- if (ret == 0) {
- ret = wc_ecc_shared_secret(&key, &pubKey, out, &outlen);
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_shared_secret(NULL, &pubKey, out, &outlen);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_shared_secret(&key, NULL, out, &outlen);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_shared_secret(&key, &pubKey, NULL, &outlen);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_shared_secret(&key, &pubKey, out, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_free(&key);
- wc_ecc_free(&pubKey);
-
-#ifdef FP_ECC
- wc_ecc_fp_free();
-#endif
-
-#endif
- return ret;
-
-} /* END tests_wc_ecc_shared_secret */
-
-/*
- * testint wc_ecc_export_x963()
- */
-static int test_wc_ecc_export_x963 (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_KEY_EXPORT) && !defined(WC_NO_RNG)
- ecc_key key;
- WC_RNG rng;
- byte out[ECC_ASN963_MAX_BUF_SZ];
- word32 outlen = sizeof(out);
-
- /* Initialize variables. */
- XMEMSET(out, 0, outlen);
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, KEY20, &key);
- }
- }
- printf(testingFmt, "wc_ecc_export_x963()");
-
- if (ret == 0) {
- ret = wc_ecc_export_x963(&key, out, &outlen);
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_export_x963(NULL, out, &outlen);
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_export_x963(&key, NULL, &outlen);
- }
- if (ret == LENGTH_ONLY_E) {
- ret = wc_ecc_export_x963(&key, out, NULL);
- }
- if (ret == ECC_BAD_ARG_E) {
- key.idx = -4;
- ret = wc_ecc_export_x963(&key, out, &outlen);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_free(&key);
-
-#ifdef FP_ECC
- wc_ecc_fp_free();
-#endif
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_export_x963 */
-
-/*
- * Testing wc_ecc_export_x963_ex()
- * compile with --enable-compkey will use compression.
- */
-static int test_wc_ecc_export_x963_ex (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_KEY_EXPORT) && !defined(WC_NO_RNG)
- ecc_key key;
- WC_RNG rng;
- byte out[ECC_ASN963_MAX_BUF_SZ];
- word32 outlen = sizeof(out);
- #ifdef HAVE_COMP_KEY
- word32 badOutLen = 5;
- #endif
-
- /* Init stack variables. */
- XMEMSET(out, 0, outlen);
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, KEY64, &key);
- }
- }
-
- printf(testingFmt, "wc_ecc_export_x963_ex()");
-
- #ifdef HAVE_COMP_KEY
- if (ret == 0) {
- ret = wc_ecc_export_x963_ex(&key, out, &outlen, COMP);
- }
- #else
- if (ret == 0) {
- ret = wc_ecc_export_x963_ex(&key, out, &outlen, NOCOMP);
- }
- #endif
-
- /* Test bad args. */
- #ifdef HAVE_COMP_KEY
- if (ret == 0) {
- ret = wc_ecc_export_x963_ex(NULL, out, &outlen, COMP);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_export_x963_ex(&key, NULL, &outlen, COMP);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_export_x963_ex(&key, out, NULL, COMP);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_export_x963_ex(&key, out, &badOutLen, COMP);
- }
- if (ret == BUFFER_E) {
- key.idx = -4;
- ret = wc_ecc_export_x963_ex(&key, out, &outlen, COMP);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #else
- if (ret == 0) {
- ret = wc_ecc_export_x963_ex(NULL, out, &outlen, NOCOMP);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_export_x963_ex(&key, NULL, &outlen, NOCOMP);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_export_x963_ex(&key, out, &outlen, 1);
- }
- if (ret == NOT_COMPILED_IN) {
- ret = wc_ecc_export_x963_ex(&key, out, NULL, NOCOMP);
- }
- if (ret == BAD_FUNC_ARG) {
- key.idx = -4;
- ret = wc_ecc_export_x963_ex(&key, out, &outlen, NOCOMP);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- #endif
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_free(&key);
-
-#ifdef FP_ECC
- wc_ecc_fp_free();
-#endif
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_export_x963_ex */
-
-/*
- * testing wc_ecc_import_x963()
- */
-static int test_wc_ecc_import_x963 (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_KEY_IMPORT) && \
- defined(HAVE_ECC_KEY_EXPORT) && !defined(WC_NO_RNG)
- ecc_key pubKey, key;
- WC_RNG rng;
- byte x963[ECC_ASN963_MAX_BUF_SZ];
- word32 x963Len = (word32)sizeof(x963);
-
- /* Init stack variables. */
- XMEMSET(x963, 0, x963Len);
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&pubKey);
- if (ret == 0) {
- ret = wc_ecc_init(&key);
- }
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, KEY24, &key);
- }
- if (ret == 0) {
- ret = wc_ecc_export_x963(&key, x963, &x963Len);
- }
- }
-
- printf(testingFmt, "wc_ecc_import_x963()");
- if (ret == 0) {
- ret = wc_ecc_import_x963(x963, x963Len, &pubKey);
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_import_x963(NULL, x963Len, &pubKey);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_import_x963(x963, x963Len, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_import_x963(x963, x963Len + 1, &pubKey);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_free(&key);
- wc_ecc_free(&pubKey);
-
-#ifdef FP_ECC
- wc_ecc_fp_free();
-#endif
-
-#endif
- return ret;
-
-} /* END wc_ecc_import_x963 */
-
-/*
- * testing wc_ecc_import_private_key()
- */
-static int ecc_import_private_key (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_KEY_IMPORT) && \
- defined(HAVE_ECC_KEY_EXPORT) && !defined(WC_NO_RNG)
- ecc_key key, keyImp;
- WC_RNG rng;
- byte privKey[ECC_PRIV_KEY_BUF]; /* Raw private key.*/
- byte x963Key[ECC_ASN963_MAX_BUF_SZ];
- word32 privKeySz = (word32)sizeof(privKey);
- word32 x963KeySz = (word32)sizeof(x963Key);
-
- /* Init stack variables. */
- XMEMSET(privKey, 0, privKeySz);
- XMEMSET(x963Key, 0, x963KeySz);
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_ecc_init(&keyImp);
- }
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, KEY48, &key);
- }
- if (ret == 0) {
- ret = wc_ecc_export_x963(&key, x963Key, &x963KeySz);
- }
- if (ret == 0) {
- ret = wc_ecc_export_private_only(&key, privKey, &privKeySz);
- }
- }
-
- printf(testingFmt, "wc_ecc_import_private_key()");
-
- if (ret == 0) {
- ret = wc_ecc_import_private_key(privKey, privKeySz, x963Key,
- x963KeySz, &keyImp);
- }
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_ecc_import_private_key(privKey, privKeySz, x963Key,
- x963KeySz, NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_import_private_key(NULL, privKeySz, x963Key,
- x963KeySz, &keyImp);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_free(&key);
- wc_ecc_free(&keyImp);
-
-#ifdef FP_ECC
- wc_ecc_fp_free();
-#endif
-
-#endif
- return ret;
-
-} /* END wc_ecc_import_private_key */
-
-
-/*
- * Testing wc_ecc_export_private_only()
- */
-static int test_wc_ecc_export_private_only (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_KEY_EXPORT) && !defined(WC_NO_RNG)
- ecc_key key;
- WC_RNG rng;
- byte out[ECC_PRIV_KEY_BUF];
- word32 outlen = sizeof(out);
-
- /* Init stack variables. */
- XMEMSET(out, 0, outlen);
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, KEY32, &key);
- }
- }
- printf(testingFmt, "wc_ecc_export_private_only()");
-
- if (ret == 0) {
- ret = wc_ecc_export_private_only(&key, out, &outlen);
- }
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_ecc_export_private_only(NULL, out, &outlen);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_export_private_only(&key, NULL, &outlen);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_export_private_only(&key, out, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_free(&key);
-
-#ifdef FP_ECC
- wc_ecc_fp_free();
-#endif
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_export_private_only */
-
-
-/*
- * Testing wc_ecc_rs_to_sig()
- */
-static int test_wc_ecc_rs_to_sig (void)
-{
-
- int ret = 0;
-
-#if defined(HAVE_ECC) && !defined(NO_ASN)
- /* first [P-192,SHA-1] vector from FIPS 186-3 NIST vectors */
- const char* R = "6994d962bdd0d793ffddf855ec5bf2f91a9698b46258a63e";
- const char* S = "02ba6465a234903744ab02bc8521405b73cf5fc00e1a9f41";
- byte sig[ECC_MAX_SIG_SIZE];
- word32 siglen = (word32)sizeof(sig);
- /*R and S max size is the order of curve. 2^192.*/
- int keySz = KEY24;
- byte r[KEY24];
- byte s[KEY24];
- word32 rlen = (word32)sizeof(r);
- word32 slen = (word32)sizeof(s);
-
- /* Init stack variables. */
- XMEMSET(sig, 0, ECC_MAX_SIG_SIZE);
- XMEMSET(r, 0, keySz);
- XMEMSET(s, 0, keySz);
-
- printf(testingFmt, "wc_ecc_rs_to_sig()");
-
- ret = wc_ecc_rs_to_sig(R, S, sig, &siglen);
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_rs_to_sig(NULL, S, sig, &siglen);
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_rs_to_sig(R, NULL, sig, &siglen);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_rs_to_sig(R, S, sig, NULL);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_rs_to_sig(R, S, NULL, &siglen);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- printf(testingFmt, "wc_ecc_sig_to_rs()");
- if (ret == 0) {
- ret = wc_ecc_sig_to_rs(sig, siglen, r, &rlen, s, &slen);
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_sig_to_rs(NULL, siglen, r, &rlen, s, &slen);
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_sig_to_rs(sig, siglen, NULL, &rlen, s, &slen);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_sig_to_rs(sig, siglen, r, NULL, s, &slen);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_sig_to_rs(sig, siglen, r, &rlen, NULL, &slen);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_sig_to_rs(sig, siglen, r, &rlen, s, NULL);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_rs_to_sig */
-
-static int test_wc_ecc_import_raw (void)
-{
- int ret = 0;
-
-#ifdef HAVE_ECC
- ecc_key key;
-#ifdef HAVE_ALL_CURVES
- const char* qx = "07008ea40b08dbe76432096e80a2494c94982d2d5bcf98e6";
- const char* qy = "76fab681d00b414ea636ba215de26d98c41bd7f2e4d65477";
- const char* d = "e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3";
- const char* curveName = "SECP192R1";
-#else
- const char* qx =
- "6c450448386596485678dcf46ccf75e80ff292443cddab1ff216d0c72cd9341";
- const char* qy =
- "9cac72ff8a90e4939e37714bfa07ae4612588535c3fdeab63ceb29b1d80f0d1";
- const char* d =
- "1e1dd938e15bdd036b0b0e2a6dc62fe7b46dbe042ac42310c6d5db0cda63e807";
- const char* curveName = "SECP256R1";
-#endif
-
- ret = wc_ecc_init(&key);
-
- printf(testingFmt, "wc_ecc_import_raw()");
-
- if (ret == 0) {
- ret = wc_ecc_import_raw(&key, qx, qy, d, curveName);
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_import_raw(NULL, qx, qy, d, curveName);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_import_raw(&key, NULL, qy, d, curveName);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_import_raw(&key, qx, NULL, d, curveName);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_import_raw(&key, qx, qy, d, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_ecc_free(&key);
-
-#endif
-
- return ret;
-
-} /* END test_wc_ecc_import_raw */
-
-
-/*
- * Testing wc_ecc_sig_size()
- */
-static int test_wc_ecc_sig_size (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && !defined(WC_NO_RNG)
- ecc_key key;
- WC_RNG rng;
- int keySz = KEY16;
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, keySz, &key);
- }
- }
-
- printf(testingFmt, "wc_ecc_sig_size()");
-
- if (ret == 0) {
- ret = wc_ecc_sig_size(&key);
- if (ret <= (2 * keySz + SIG_HEADER_SZ + ECC_MAX_PAD_SZ)) {
- ret = 0;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_free(&key);
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_sig_size */
-
-/*
- * Testing wc_ecc_ctx_new()
- */
-static int test_wc_ecc_ctx_new (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_ENCRYPT) && !defined(WC_NO_RNG)
- WC_RNG rng;
- ecEncCtx* cli = NULL;
- ecEncCtx* srv = NULL;
-
- ret = wc_InitRng(&rng);
-
- printf(testingFmt, "wc_ecc_ctx_new()");
- if (ret == 0) {
- cli = wc_ecc_ctx_new(REQ_RESP_CLIENT, &rng);
- srv = wc_ecc_ctx_new(REQ_RESP_SERVER, &rng);
- }
- if (ret == 0 && (cli == NULL || srv == NULL)) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- wc_ecc_ctx_free(cli);
- wc_ecc_ctx_free(srv);
-
- /* Test bad args. */
- if (ret == 0) {
- /* wc_ecc_ctx_new_ex() will free if returned NULL. */
- cli = wc_ecc_ctx_new(0, &rng);
- if (cli != NULL) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- cli = wc_ecc_ctx_new(REQ_RESP_CLIENT, NULL);
- if (cli != NULL) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_ctx_free(cli);
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_ctx_new */
-
-/*
- * Tesing wc_ecc_reset()
- */
-static int test_wc_ecc_ctx_reset (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_ENCRYPT) && !defined(WC_NO_RNG)
- ecEncCtx* ctx = NULL;
- WC_RNG rng;
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- if ( (ctx = wc_ecc_ctx_new(REQ_RESP_CLIENT, &rng)) == NULL ) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(testingFmt, "wc_ecc_ctx_reset()");
-
- if (ret == 0) {
- ret = wc_ecc_ctx_reset(ctx, &rng);
- }
-
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_ecc_ctx_reset(NULL, &rng);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_ctx_reset(ctx, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_ctx_free(ctx);
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_ctx_reset */
-
-/*
- * Testing wc_ecc_ctx_set_peer_salt() and wc_ecc_ctx_get_own_salt()
- */
-static int test_wc_ecc_ctx_set_peer_salt (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_ENCRYPT) && !defined(WC_NO_RNG)
- WC_RNG rng;
- ecEncCtx* cliCtx = NULL;
- ecEncCtx* servCtx = NULL;
- const byte* cliSalt = NULL;
- const byte* servSalt = NULL;
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- if ( ( (cliCtx = wc_ecc_ctx_new(REQ_RESP_CLIENT, &rng)) == NULL ) ||
- ( (servCtx = wc_ecc_ctx_new(REQ_RESP_SERVER, &rng)) == NULL) ) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(testingFmt, "wc_ecc_ctx_get_own_salt()");
-
- /* Test bad args. */
- if (ret == 0) {
- cliSalt = wc_ecc_ctx_get_own_salt(NULL);
- if (cliSalt != NULL) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (ret == 0) {
- cliSalt = wc_ecc_ctx_get_own_salt(cliCtx);
- servSalt = wc_ecc_ctx_get_own_salt(servCtx);
- if (cliSalt == NULL || servSalt == NULL) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- printf(testingFmt, "wc_ecc_ctx_set_peer_salt()");
-
- if (ret == 0) {
- ret = wc_ecc_ctx_set_peer_salt(cliCtx, servSalt);
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_ctx_set_peer_salt(NULL, servSalt);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_ctx_set_peer_salt(cliCtx, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_ctx_free(cliCtx);
- wc_ecc_ctx_free(servCtx);
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_ctx_set_peer_salt */
-
-/*
- * Testing wc_ecc_ctx_set_info()
- */
-static int test_wc_ecc_ctx_set_info (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_ENCRYPT) && !defined(WC_NO_RNG)
- ecEncCtx* ctx = NULL;
- WC_RNG rng;
- const char* optInfo = "Optional Test Info.";
- int optInfoSz = (int)XSTRLEN(optInfo);
- const char* badOptInfo = NULL;
-
- ret = wc_InitRng(&rng);
- if ( (ctx = wc_ecc_ctx_new(REQ_RESP_CLIENT, &rng)) == NULL || ret != 0 ) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(testingFmt, "wc_ecc_ctx_set_info()");
-
- if (ret == 0) {
- ret = wc_ecc_ctx_set_info(ctx, (byte*)optInfo, optInfoSz);
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_ctx_set_info(NULL, (byte*)optInfo, optInfoSz);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_ctx_set_info(ctx, (byte*)badOptInfo, optInfoSz);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_ctx_set_info(ctx, (byte*)optInfo, -1);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_ctx_free(ctx);
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_ctx_set_info */
-
-/*
- * Testing wc_ecc_encrypt() and wc_ecc_decrypt()
- */
-static int test_wc_ecc_encryptDecrypt (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_ENCRYPT) && defined(WOLFSSL_AES_128) \
- && !defined(WC_NO_RNG)
- ecc_key srvKey, cliKey;
- WC_RNG rng;
- const char* msg = "EccBlock Size 16";
- word32 msgSz = (word32)XSTRLEN(msg);
- byte out[XSTRLEN(msg) + WC_SHA256_DIGEST_SIZE];
- word32 outSz = (word32)sizeof(out);
- byte plain[XSTRLEN(msg) + 1];
- word32 plainSz = (word32)sizeof(plain);
- int keySz = KEY20;
-
- /* Init stack variables. */
- XMEMSET(out, 0, outSz);
- XMEMSET(plain, 0, plainSz);
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&cliKey);
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, keySz, &cliKey);
- }
- if (ret == 0) {
- ret = wc_ecc_init(&srvKey);
- }
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, keySz, &srvKey);
- }
- }
-
- printf(testingFmt, "wc_ecc_encrypt()");
-
- if (ret == 0) {
- ret = wc_ecc_encrypt(&cliKey, &srvKey, (byte*)msg, msgSz, out,
- &outSz, NULL);
- }
- if (ret == 0) {
- ret = wc_ecc_encrypt(NULL, &srvKey, (byte*)msg, msgSz, out,
- &outSz, NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_encrypt(&cliKey, NULL, (byte*)msg, msgSz, out,
- &outSz, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_encrypt(&cliKey, &srvKey, NULL, msgSz, out,
- &outSz, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_encrypt(&cliKey, &srvKey, (byte*)msg, msgSz, NULL,
- &outSz, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_encrypt(&cliKey, &srvKey, (byte*)msg, msgSz, out,
- NULL, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- printf(testingFmt, "wc_ecc_decrypt()");
-
- if (ret == 0) {
- ret = wc_ecc_decrypt(&srvKey, &cliKey, out, outSz, plain,
- &plainSz, NULL);
- }
- if (ret == 0) {
- ret = wc_ecc_decrypt(NULL, &cliKey, out, outSz, plain,
- &plainSz, NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_decrypt(&srvKey, NULL, out, outSz, plain,
- &plainSz, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_decrypt(&srvKey, &cliKey, NULL, outSz, plain,
- &plainSz, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_decrypt(&srvKey, &cliKey, out, outSz, NULL,
- &plainSz, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_decrypt(&srvKey, &cliKey, out, outSz,
- plain, NULL, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (XMEMCMP(msg, plain, msgSz) != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_free(&cliKey);
- wc_ecc_free(&srvKey);
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_encryptDecrypt */
-
-/*
- * Testing wc_ecc_del_point() and wc_ecc_new_point()
- */
-static int test_wc_ecc_del_point (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC)
- ecc_point* pt;
-
- printf(testingFmt, "wc_ecc_new_point()");
-
- pt = wc_ecc_new_point();
- if (!pt) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_ecc_del_point(pt);
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_del_point */
-
-/*
- * Testing wc_ecc_point_is_at_infinity(), wc_ecc_export_point_der(),
- * wc_ecc_import_point_der(), wc_ecc_copy_point(), and wc_ecc_cmp_point()
- */
-static int test_wc_ecc_pointFns (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_KEY_EXPORT) && \
- !defined(WC_NO_RNG) && !defined(WOLFSSL_ATECC508A)
- ecc_key key;
- WC_RNG rng;
- ecc_point* point = NULL;
- ecc_point* cpypt = NULL;
- int idx = 0;
- int keySz = KEY32;
- byte der[DER_SZ];
- word32 derlenChk = 0;
- word32 derSz = (int)sizeof(der);
-
- /* Init stack variables. */
- XMEMSET(der, 0, derSz);
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, keySz, &key);
- }
- }
-
- if (ret == 0) {
- point = wc_ecc_new_point();
- if (!point) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- if (ret == 0) {
- cpypt = wc_ecc_new_point();
- if (!cpypt) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- /* Export */
- printf(testingFmt, "wc_ecc_export_point_der()");
- if (ret == 0) {
- ret = wc_ecc_export_point_der((idx = key.idx), &key.pubkey,
- NULL, &derlenChk);
- /* Check length value. */
- if (derSz == derlenChk && ret == LENGTH_ONLY_E) {
- ret = wc_ecc_export_point_der((idx = key.idx), &key.pubkey,
- der, &derSz);
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_export_point_der(-2, &key.pubkey, der, &derSz);
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_export_point_der((idx = key.idx), NULL, der, &derSz);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_export_point_der((idx = key.idx), &key.pubkey,
- der, NULL);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- /* Import */
- printf(testingFmt, "wc_ecc_import_point_der()");
-
- if (ret == 0) {
- ret = wc_ecc_import_point_der(der, derSz, idx, point);
- /* Condition double checks wc_ecc_cmp_point(). */
- if (ret == 0 && XMEMCMP(&key.pubkey, point, sizeof(key.pubkey))) {
- ret = wc_ecc_cmp_point(&key.pubkey, point);
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_import_point_der(NULL, derSz, idx, point);
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_import_point_der(der, derSz, idx, NULL);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_import_point_der(der, derSz, -1, point);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_import_point_der(der, derSz + 1, idx, point);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- printf(resultFmt, ret == 0 ? passed : failed);
-
- /* Copy */
- printf(testingFmt, "wc_ecc_copy_point()");
-
- if (ret == 0) {
- ret = wc_ecc_copy_point(point, cpypt);
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_copy_point(NULL, cpypt);
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_copy_point(point, NULL);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- printf(testingFmt, "wc_ecc_cmp_point()");
- /* Compare point */
- if (ret == 0) {
- ret = wc_ecc_cmp_point(point, cpypt);
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_cmp_point(NULL, cpypt);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_cmp_point(point, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- printf(resultFmt, ret == 0 ? passed : failed);
-
- printf(testingFmt, "wc_ecc_point_is_at_infinity()");
- /* At infinity if return == 1, otherwise return == 0. */
- if (ret == 0) {
- ret = wc_ecc_point_is_at_infinity(point);
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_point_is_at_infinity(NULL);
- if (ret == BAD_FUNC_ARG) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- /* Free */
- wc_ecc_del_point(point);
- wc_ecc_del_point(cpypt);
- wc_ecc_free(&key);
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_pointFns */
-
-
-/*
- * Testing wc_ecc_sahred_secret_ssh()
- */
-static int test_wc_ecc_shared_secret_ssh (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_DHE) && \
- !defined(WC_NO_RNG) && !defined(WOLFSSL_ATECC508A)
- ecc_key key, key2;
- WC_RNG rng;
- int keySz = KEY32;
- int key2Sz = KEY24;
- byte secret[KEY32];
- word32 secretLen = keySz;
-
- /* Init stack variables. */
- XMEMSET(secret, 0, secretLen);
-
- /* Make keys */
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, keySz, &key);
- }
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- if (ret == 0) {
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key2);
- }
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, key2Sz, &key2);
- }
- }
-
- printf(testingFmt, "ecc_shared_secret_ssh()");
-
- if (ret == 0) {
- ret = wc_ecc_shared_secret_ssh(&key, &key2.pubkey, secret, &secretLen);
- }
- /* Pass in bad args. */
- if (ret == 0) {
- ret = wc_ecc_shared_secret_ssh(NULL, &key2.pubkey, secret, &secretLen);
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_shared_secret_ssh(&key, NULL, secret, &secretLen);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_shared_secret_ssh(&key, &key2.pubkey, NULL, &secretLen);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = wc_ecc_shared_secret_ssh(&key, &key2.pubkey, secret, NULL);
- }
- if (ret == BAD_FUNC_ARG) {
- key.type = ECC_PUBLICKEY;
- ret = wc_ecc_shared_secret_ssh(&key, &key2.pubkey, secret, &secretLen);
- if (ret == ECC_BAD_ARG_E) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_free(&key);
- wc_ecc_free(&key2);
-
-#ifdef FP_ECC
- wc_ecc_fp_free();
-#endif
-
-#endif
- return ret;
-
-} /* END test_wc_ecc_shared_secret_ssh */
-
-/*
- * Testing wc_ecc_verify_hash_ex() and wc_ecc_verify_hash_ex()
- */
-static int test_wc_ecc_verify_hash_ex (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && defined(HAVE_ECC_SIGN) && defined(WOLFSSL_PUBLIC_MP) \
- && !defined(WC_NO_RNG) && !defined(WOLFSSL_ATECC508A)
- ecc_key key;
- WC_RNG rng;
- mp_int r;
- mp_int s;
- unsigned char hash[] = "Everyone gets Friday off.EccSig";
- unsigned char iHash[] = "Everyone gets Friday off.......";
- unsigned char shortHash[] = "Everyone gets Friday off.";
- word32 hashlen = sizeof(hash);
- word32 iHashLen = sizeof(iHash);
- word32 shortHashLen = sizeof(shortHash);
- int keySz = KEY32;
- int sig = WOLFSSL_FATAL_ERROR;
- int ver = WOLFSSL_FATAL_ERROR;
- int verify_ok = 0;
-
- /* Initialize r and s. */
- ret = mp_init_multi(&r, &s, NULL, NULL, NULL, NULL);
- if (ret != MP_OKAY) {
- return MP_INIT_E;
- }
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, keySz, &key);
- }
- }
- if (ret == 0) {
- ret = wc_ecc_sign_hash_ex(hash, hashlen, &rng, &key, &r, &s);
- if (ret == 0) {
- /* verify_ok should be 1. */
- ret = wc_ecc_verify_hash_ex(&r, &s, hash, hashlen, &verify_ok, &key);
- if (verify_ok != 1 && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- if (ret == 0) {
- /* verify_ok should be 0 */
- ret = wc_ecc_verify_hash_ex(&r, &s, iHash, iHashLen,
- &verify_ok, &key);
- if (verify_ok != 0 && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- if (ret == 0) {
- /* verify_ok should be 0. */
- ret = wc_ecc_verify_hash_ex(&r, &s, shortHash, shortHashLen,
- &verify_ok, &key);
- if (verify_ok != 0 && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- }
-
- printf(testingFmt, "wc_ecc_sign_hash_ex()");
- /* Test bad args. */
- if (ret == 0) {
- if (wc_ecc_sign_hash_ex(NULL, hashlen, &rng, &key, &r, &s)
- == ECC_BAD_ARG_E) {
- sig = 0;
- }
- if (sig == 0 && wc_ecc_sign_hash_ex(hash, hashlen, NULL, &key, &r, &s)
- != ECC_BAD_ARG_E) {
- sig = WOLFSSL_FATAL_ERROR;
- }
- if (sig == 0 && wc_ecc_sign_hash_ex(hash, hashlen, &rng, NULL, &r, &s)
- != ECC_BAD_ARG_E) {
- sig = WOLFSSL_FATAL_ERROR;
- }
- if (sig == 0 && wc_ecc_sign_hash_ex(hash, hashlen, &rng, &key, NULL, &s)
- != ECC_BAD_ARG_E) {
- sig = WOLFSSL_FATAL_ERROR;
- }
- if (sig == 0 && wc_ecc_sign_hash_ex(hash, hashlen, &rng, &key, &r, NULL)
- != ECC_BAD_ARG_E) {
- sig = WOLFSSL_FATAL_ERROR;
- }
- }
- printf(resultFmt, sig == 0 ? passed : failed);
- printf(testingFmt, "wc_ecc_verify_hash_ex()");
- /* Test bad args. */
- if (ret == 0) {
- if (wc_ecc_verify_hash_ex(NULL, &s, shortHash, shortHashLen, &verify_ok, &key)
- == ECC_BAD_ARG_E) {
- ver = 0;
- }
- if (ver == 0 && wc_ecc_verify_hash_ex(&r, NULL, shortHash, shortHashLen,
- &verify_ok, &key) != ECC_BAD_ARG_E) {
- ver = WOLFSSL_FATAL_ERROR;
- }
- if (ver == 0 && wc_ecc_verify_hash_ex(&r, &s, NULL, shortHashLen, &verify_ok,
- &key) != ECC_BAD_ARG_E) {
- ver = WOLFSSL_FATAL_ERROR;
- }
- if (ver == 0 && wc_ecc_verify_hash_ex(&r, &s, shortHash, shortHashLen,
- NULL, &key) != ECC_BAD_ARG_E) {
- ver = WOLFSSL_FATAL_ERROR;
- }
- if (ver == 0 && wc_ecc_verify_hash_ex(&r, &s, shortHash, shortHashLen,
- &verify_ok, NULL) != ECC_BAD_ARG_E) {
- ver = WOLFSSL_FATAL_ERROR;
- }
- }
- printf(resultFmt, ver == 0 ? passed : failed);
-
- wc_ecc_free(&key);
- mp_free(&r);
- mp_free(&s);
- if (wc_FreeRng(&rng)) {
- return WOLFSSL_FATAL_ERROR;
- }
- if (ret == 0 && (sig != 0 || ver != 0)) {
- ret = WOLFSSL_FATAL_ERROR;
- }
-#endif
- return ret;
-
-} /* END test_wc_ecc_verify_hash_ex */
-
-/*
- * Testing wc_ecc_mulmod()
- */
-
-static int test_wc_ecc_mulmod (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && !defined(WC_NO_RNG) && \
- !(defined(WOLFSSL_ATECC508A) || defined(WOLFSSL_VALIDATE_ECC_IMPORT))
- ecc_key key1, key2, key3;
- WC_RNG rng;
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key1);
- if (ret == 0) {
- ret = wc_ecc_init(&key2);
- }
- if (ret == 0) {
- ret = wc_ecc_init(&key3);
- }
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, KEY32, &key1);
- }
- wc_FreeRng(&rng);
- }
- if (ret == 0) {
- ret = wc_ecc_import_raw_ex(&key2, key1.dp->Gx, key1.dp->Gy, key1.dp->Af,
- ECC_SECP256R1);
- if (ret == 0) {
- ret = wc_ecc_import_raw_ex(&key3, key1.dp->Gx, key1.dp->Gy,
- key1.dp->prime, ECC_SECP256R1);
- }
- }
-
- printf(testingFmt, "wc_ecc_mulmod()");
- if (ret == 0) {
- ret = wc_ecc_mulmod(&key1.k, &key2.pubkey, &key3.pubkey, &key2.k,
- &key3.k, 1);
- }
-
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_mulmod(NULL, &key2.pubkey, &key3.pubkey, &key2.k,
- &key3.k, 1);
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_mulmod(&key1.k, NULL, &key3.pubkey, &key2.k,
- &key3.k, 1);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_mulmod(&key1.k, &key2.pubkey, NULL, &key2.k,
- &key3.k, 1);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = wc_ecc_mulmod(&key1.k, &key2.pubkey, &key3.pubkey,
- &key2.k, NULL, 1);
- }
- if (ret == ECC_BAD_ARG_E) {
- ret = 0;
- } else if (ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- wc_ecc_free(&key1);
- wc_ecc_free(&key2);
- wc_ecc_free(&key3);
-
-#ifdef FP_ECC
- wc_ecc_fp_free();
-#endif
-
-#endif /* HAVE_ECC && !WOLFSSL_ATECC508A */
- return ret;
-
-
-} /* END test_wc_ecc_mulmod */
-
-/*
- * Testing wc_ecc_is_valid_idx()
- */
-static int test_wc_ecc_is_valid_idx (void)
-{
- int ret = 0;
-
-#if defined(HAVE_ECC) && !defined(WC_NO_RNG)
- ecc_key key;
- WC_RNG rng;
- int iVal = -2;
- int iVal2 = 3000;
-
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_init(&key);
- if (ret == 0) {
- ret = wc_ecc_make_key(&rng, 32, &key);
- }
- }
-
- printf(testingFmt, "wc_ecc_is_valid_idx()");
- if (ret == 0) {
- ret = wc_ecc_is_valid_idx(key.idx);
- if (ret == 1) {
- ret = 0;
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
- /* Test bad args. */
- if (ret == 0) {
- ret = wc_ecc_is_valid_idx(iVal); /* should return 0 */
- if (ret == 0) {
- ret = wc_ecc_is_valid_idx(iVal2);
- }
- if (ret != 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
-
- if (wc_FreeRng(&rng) && ret == 0) {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_free(&key);
-#ifdef FP_ECC
- wc_ecc_fp_free();
-#endif
-
-#endif
- return ret;
-
-
-} /* END test_wc_ecc_is_valid_idx */
-
-
-/*
- * Testing wc_PKCS7_New()
- */
-static void test_wc_PKCS7_New (void)
-{
-#if defined(HAVE_PKCS7)
- PKCS7* pkcs7;
- void* heap = NULL;
-
- printf(testingFmt, "wc_PKCS7_New()");
-
- pkcs7 = wc_PKCS7_New(heap, devId);
- AssertNotNull(pkcs7);
-
- printf(resultFmt, passed);
- wc_PKCS7_Free(pkcs7);
-#endif
-} /* END test-wc_PKCS7_New */
-
-/*
- * Testing wc_PKCS7_Init()
- */
-static void test_wc_PKCS7_Init (void)
-{
-#if defined(HAVE_PKCS7)
- PKCS7* pkcs7;
- void* heap = NULL;
-
- printf(testingFmt, "wc_PKCS7_Init()");
-
- pkcs7 = wc_PKCS7_New(heap, devId);
- AssertNotNull(pkcs7);
-
- AssertIntEQ(wc_PKCS7_Init(pkcs7, heap, devId), 0);
-
- /* Pass in bad args. */
- AssertIntEQ(wc_PKCS7_Init(NULL, heap, devId), BAD_FUNC_ARG);
-
- printf(resultFmt, passed);
- wc_PKCS7_Free(pkcs7);
-#endif
-} /* END test-wc_PKCS7_Init */
-
-
-/*
- * Testing wc_PKCS7_InitWithCert()
- */
-static void test_wc_PKCS7_InitWithCert (void)
-{
-#if defined(HAVE_PKCS7)
- PKCS7* pkcs7;
-
-#ifndef NO_RSA
- #if defined(USE_CERT_BUFFERS_2048)
- unsigned char cert[sizeof_client_cert_der_2048];
- int certSz = (int)sizeof(cert);
- XMEMSET(cert, 0, certSz);
- XMEMCPY(cert, client_cert_der_2048, sizeof_client_cert_der_2048);
- #elif defined(USE_CERT_BUFFERS_1024)
- unsigned char cert[sizeof_client_cert_der_1024];
- int certSz = (int)sizeof(cert);
- XMEMSET(cert, 0, certSz);
- XMEMCPY(cert, client_cert_der_1024, sizeof_client_cert_der_1024);
- #else
- unsigned char cert[ONEK_BUF];
- XFILE fp;
- int certSz;
- fp = XFOPEN("./certs/1024/client-cert.der", "rb");
- AssertTrue(fp != XBADFILE);
-
- certSz = (int)XFREAD(cert, 1, sizeof_client_cert_der_1024, fp);
- XFCLOSE(fp);
- #endif
-#elif defined(HAVE_ECC)
- #if defined(USE_CERT_BUFFERS_256)
- unsigned char cert[sizeof_cliecc_cert_der_256];
- int certSz = (int)sizeof(cert);
- XMEMSET(cert, 0, certSz);
- XMEMCPY(cert, cliecc_cert_der_256, sizeof_cliecc_cert_der_256);
- #else
- unsigned char cert[ONEK_BUF];
- XFILE fp;
- int certSz;
- fp = XFOPEN("./certs/client-ecc-cert.der", "rb");
-
- AssertTrue(fp != XBADFILE);
-
- certSz = (int)XFREAD(cert, 1, sizeof_cliecc_cert_der_256, fp);
- XFCLOSE(fp);
- #endif
-#else
- #error PKCS7 requires ECC or RSA
-#endif
- printf(testingFmt, "wc_PKCS7_InitWithCert()");
-
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- /* If initialization is not successful, it's free'd in init func. */
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, (byte*)cert, (word32)certSz), 0);
-
- wc_PKCS7_Free(pkcs7);
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
-
- /* Valid initialization usage. */
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
-
- /* Pass in bad args. No need free for null checks, free at end.*/
- AssertIntEQ(wc_PKCS7_InitWithCert(NULL, (byte*)cert, (word32)certSz),
- BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, (word32)certSz),
- BAD_FUNC_ARG);
-
- printf(resultFmt, passed);
-
- wc_PKCS7_Free(pkcs7);
-#endif
-} /* END test_wc_PKCS7_InitWithCert */
-
-
-/*
- * Testing wc_PKCS7_EncodeData()
- */
-static void test_wc_PKCS7_EncodeData (void)
-{
-#if defined(HAVE_PKCS7)
- PKCS7* pkcs7;
- byte output[FOURK_BUF];
- byte data[] = "My encoded DER cert.";
-
-#ifndef NO_RSA
- #if defined(USE_CERT_BUFFERS_2048)
- unsigned char cert[sizeof_client_cert_der_2048];
- unsigned char key[sizeof_client_key_der_2048];
- int certSz = (int)sizeof(cert);
- int keySz = (int)sizeof(key);
- XMEMSET(cert, 0, certSz);
- XMEMSET(key, 0, keySz);
- XMEMCPY(cert, client_cert_der_2048, certSz);
- XMEMCPY(key, client_key_der_2048, keySz);
-
- #elif defined(USE_CERT_BUFFERS_1024)
- unsigned char cert[sizeof_client_cert_der_1024];
- unsigned char key[sizeof_client_key_der_1024];
- int certSz = (int)sizeof(cert);
- int keySz = (int)sizeof(key);
- XMEMSET(cert, 0, certSz);
- XMEMSET(key, 0, keySz);
- XMEMCPY(cert, client_cert_der_1024, certSz);
- XMEMCPY(key, client_key_der_1024, keySz);
- #else
- unsigned char cert[ONEK_BUF];
- unsigned char key[ONEK_BUF];
- XFILE fp;
- int certSz;
- int keySz;
-
- fp = XFOPEN("./certs/1024/client-cert.der", "rb");
- AssertTrue(fp != XBADFILE);
- certSz = (int)XFREAD(cert, 1, sizeof_client_cert_der_1024, fp);
- XFCLOSE(fp);
-
- fp = XFOPEN("./certs/1024/client-key.der", "rb");
- AssertTrue(fp != XBADFILE);
- keySz = (int)XFREAD(key, 1, sizeof_client_key_der_1024, fp);
- XFCLOSE(fp);
- #endif
-#elif defined(HAVE_ECC)
- #if defined(USE_CERT_BUFFERS_256)
- unsigned char cert[sizeof_cliecc_cert_der_256];
- unsigned char key[sizeof_ecc_clikey_der_256];
- int certSz = (int)sizeof(cert);
- int keySz = (int)sizeof(key);
- XMEMSET(cert, 0, certSz);
- XMEMSET(key, 0, keySz);
- XMEMCPY(cert, cliecc_cert_der_256, sizeof_cliecc_cert_der_256);
- XMEMCPY(key, ecc_clikey_der_256, sizeof_ecc_clikey_der_256);
- #else
- unsigned char cert[ONEK_BUF];
- unsigned char key[ONEK_BUF];
- XFILE fp;
- int certSz, keySz;
-
- fp = XFOPEN("./certs/client-ecc-cert.der", "rb");
- AssertTrue(fp != XBADFILE);
- certSz = (int)XFREAD(cert, 1, sizeof_cliecc_cert_der_256, fp);
- XFCLOSE(fp);
-
- fp = XFOPEN("./certs/client-ecc-key.der", "rb");
- AssertTrue(fp != XBADFILE);
- keySz = (int)XFREAD(key, 1, sizeof_ecc_clikey_der_256, fp);
- XFCLOSE(fp);
- #endif
-#endif
-
- XMEMSET(output, 0, sizeof(output));
-
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_Init(pkcs7, HEAP_HINT, INVALID_DEVID), 0);
-
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, (byte*)cert, certSz), 0);
-
- printf(testingFmt, "wc_PKCS7_EncodeData()");
-
- pkcs7->content = data;
- pkcs7->contentSz = sizeof(data);
- pkcs7->privateKey = key;
- pkcs7->privateKeySz = keySz;
- AssertIntGT(wc_PKCS7_EncodeData(pkcs7, output, (word32)sizeof(output)), 0);
-
- /* Test bad args. */
- AssertIntEQ(wc_PKCS7_EncodeData(NULL, output, (word32)sizeof(output)),
- BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_EncodeData(pkcs7, NULL, (word32)sizeof(output)),
- BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_EncodeData(pkcs7, output, 5), BUFFER_E);
-
- printf(resultFmt, passed);
-
- wc_PKCS7_Free(pkcs7);
-#endif
-} /* END test_wc_PKCS7_EncodeData */
-
-
-#if defined(HAVE_PKCS7) && defined(HAVE_PKCS7_RSA_RAW_SIGN_CALLBACK) && \
- !defined(NO_RSA) && !defined(NO_SHA256)
-/* RSA sign raw digest callback */
-static int rsaSignRawDigestCb(PKCS7* pkcs7, byte* digest, word32 digestSz,
- byte* out, word32 outSz, byte* privateKey,
- word32 privateKeySz, int devid, int hashOID)
-{
- /* specific DigestInfo ASN.1 encoding prefix for a SHA2565 digest */
- byte digInfoEncoding[] = {
- 0x30, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86,
- 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05,
- 0x00, 0x04, 0x20
- };
-
- int ret;
- byte digestInfo[ONEK_BUF];
- byte sig[FOURK_BUF];
- word32 digestInfoSz = 0;
- word32 idx = 0;
- RsaKey rsa;
-
- /* SHA-256 required only for this example callback due to above
- * digInfoEncoding[] */
- if (pkcs7 == NULL || digest == NULL || out == NULL ||
- (sizeof(digestInfo) < sizeof(digInfoEncoding) + digestSz) ||
- (hashOID != SHA256h)) {
- return -1;
- }
-
- /* build DigestInfo */
- XMEMCPY(digestInfo, digInfoEncoding, sizeof(digInfoEncoding));
- digestInfoSz += sizeof(digInfoEncoding);
- XMEMCPY(digestInfo + digestInfoSz, digest, digestSz);
- digestInfoSz += digestSz;
-
- /* set up RSA key */
- ret = wc_InitRsaKey_ex(&rsa, pkcs7->heap, devid);
- if (ret != 0) {
- return ret;
- }
-
- ret = wc_RsaPrivateKeyDecode(privateKey, &idx, &rsa, privateKeySz);
-
- /* sign DigestInfo */
- if (ret == 0) {
- ret = wc_RsaSSL_Sign(digestInfo, digestInfoSz, sig, sizeof(sig),
- &rsa, pkcs7->rng);
- if (ret > 0) {
- if (ret > (int)outSz) {
- /* output buffer too small */
- ret = -1;
- } else {
- /* success, ret holds sig size */
- XMEMCPY(out, sig, ret);
- }
- }
- }
-
- wc_FreeRsaKey(&rsa);
-
- return ret;
-}
-#endif
-
-
-/*
- * Testing wc_PKCS7_EncodeSignedData()
- */
-static void test_wc_PKCS7_EncodeSignedData(void)
-{
-#if defined(HAVE_PKCS7)
- PKCS7* pkcs7;
- WC_RNG rng;
- byte output[FOURK_BUF];
- byte badOut[0];
- word32 outputSz = (word32)sizeof(output);
- word32 badOutSz = (word32)sizeof(badOut);
- byte data[] = "Test data to encode.";
-
-#ifndef NO_RSA
- #if defined(USE_CERT_BUFFERS_2048)
- byte key[sizeof_client_key_der_2048];
- byte cert[sizeof_client_cert_der_2048];
- word32 keySz = (word32)sizeof(key);
- word32 certSz = (word32)sizeof(cert);
- XMEMSET(key, 0, keySz);
- XMEMSET(cert, 0, certSz);
- XMEMCPY(key, client_key_der_2048, keySz);
- XMEMCPY(cert, client_cert_der_2048, certSz);
- #elif defined(USE_CERT_BUFFERS_1024)
- byte key[sizeof_client_key_der_1024];
- byte cert[sizeof_client_cert_der_1024];
- word32 keySz = (word32)sizeof(key);
- word32 certSz = (word32)sizeof(cert);
- XMEMSET(key, 0, keySz);
- XMEMSET(cert, 0, certSz);
- XMEMCPY(key, client_key_der_1024, keySz);
- XMEMCPY(cert, client_cert_der_1024, certSz);
- #else
- unsigned char cert[ONEK_BUF];
- unsigned char key[ONEK_BUF];
- XFILE fp;
- int certSz;
- int keySz;
-
- fp = XFOPEN("./certs/1024/client-cert.der", "rb");
- AssertTrue(fp != XBADFILE);
- certSz = (int)XFREAD(cert, 1, sizeof_client_cert_der_1024, fp);
- XFCLOSE(fp);
-
- fp = XFOPEN("./certs/1024/client-key.der", "rb");
- AssertTrue(fp != XBADFILE);
- keySz = (int)XFREAD(key, 1, sizeof_client_key_der_1024, fp);
- XFCLOSE(fp);
- #endif
-#elif defined(HAVE_ECC)
- #if defined(USE_CERT_BUFFERS_256)
- unsigned char cert[sizeof_cliecc_cert_der_256];
- unsigned char key[sizeof_ecc_clikey_der_256];
- int certSz = (int)sizeof(cert);
- int keySz = (int)sizeof(key);
- XMEMSET(cert, 0, certSz);
- XMEMSET(key, 0, keySz);
- XMEMCPY(cert, cliecc_cert_der_256, sizeof_cliecc_cert_der_256);
- XMEMCPY(key, ecc_clikey_der_256, sizeof_ecc_clikey_der_256);
- #else
- unsigned char cert[ONEK_BUF];
- unsigned char key[ONEK_BUF];
- XFILE fp;
- int certSz, keySz;
-
- fp = XOPEN("./certs/client-ecc-cert.der", "rb");
- AssertTrue(fp != XBADFILE);
- certSz = (int)XFREAD(cert, 1, sizeof_cliecc_cert_der_256, fp);
- XFCLOSE(fp);
-
- fp = XFOPEN("./certs/client-ecc-key.der", "rb");
- AssertTrue(fp != XBADFILE);
- keySz = (int)XFREAD(key, 1, sizeof_ecc_clikey_der_256, fp);
- XFCLOSE(fp);
- #endif
-#endif
-
- XMEMSET(output, 0, outputSz);
- AssertIntEQ(wc_InitRng(&rng), 0);
-
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_Init(pkcs7, HEAP_HINT, INVALID_DEVID), 0);
-
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, cert, certSz), 0);
-
- printf(testingFmt, "wc_PKCS7_EncodeSignedData()");
-
- pkcs7->content = data;
- pkcs7->contentSz = (word32)sizeof(data);
- pkcs7->privateKey = key;
- pkcs7->privateKeySz = (word32)sizeof(key);
- pkcs7->encryptOID = RSAk;
- pkcs7->hashOID = SHAh;
- pkcs7->rng = &rng;
-
- AssertIntGT(wc_PKCS7_EncodeSignedData(pkcs7, output, outputSz), 0);
-
- wc_PKCS7_Free(pkcs7);
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, output, outputSz), 0);
-
- /* Pass in bad args. */
- AssertIntEQ(wc_PKCS7_EncodeSignedData(NULL, output, outputSz), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_EncodeSignedData(pkcs7, NULL, outputSz), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_EncodeSignedData(pkcs7, badOut,
- badOutSz), BAD_FUNC_ARG);
- pkcs7->hashOID = 0; /* bad hashOID */
- AssertIntEQ(wc_PKCS7_EncodeSignedData(pkcs7, output, outputSz), BAD_FUNC_ARG);
-
-#if defined(HAVE_PKCS7) && defined(HAVE_PKCS7_RSA_RAW_SIGN_CALLBACK) && \
- !defined(NO_RSA) && !defined(NO_SHA256)
- /* test RSA sign raw digest callback, if using RSA and compiled in.
- * Example callback assumes SHA-256, so only run test if compiled in. */
- wc_PKCS7_Free(pkcs7);
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, cert, certSz), 0);
-
- pkcs7->content = data;
- pkcs7->contentSz = (word32)sizeof(data);
- pkcs7->privateKey = key;
- pkcs7->privateKeySz = (word32)sizeof(key);
- pkcs7->encryptOID = RSAk;
- pkcs7->hashOID = SHA256h;
- pkcs7->rng = &rng;
-
- AssertIntEQ(wc_PKCS7_SetRsaSignRawDigestCb(pkcs7, rsaSignRawDigestCb), 0);
-
- AssertIntGT(wc_PKCS7_EncodeSignedData(pkcs7, output, outputSz), 0);
-#endif
-
- printf(resultFmt, passed);
-
- wc_PKCS7_Free(pkcs7);
- wc_FreeRng(&rng);
-
-#endif
-} /* END test_wc_PKCS7_EncodeSignedData */
-
-
-/*
- * Testing wc_PKCS7_EncodeSignedData_ex() and wc_PKCS7_VerifySignedData_ex()
- */
-static void test_wc_PKCS7_EncodeSignedData_ex(void)
-{
-#if defined(HAVE_PKCS7)
- int ret, i;
- PKCS7* pkcs7;
- WC_RNG rng;
- byte outputHead[FOURK_BUF/2];
- byte outputFoot[FOURK_BUF/2];
- word32 outputHeadSz = (word32)sizeof(outputHead);
- word32 outputFootSz = (word32)sizeof(outputFoot);
- byte data[FOURK_BUF];
- wc_HashAlg hash;
- enum wc_HashType hashType = WC_HASH_TYPE_SHA;
- byte hashBuf[WC_MAX_DIGEST_SIZE];
- word32 hashSz = wc_HashGetDigestSize(hashType);
-
-#ifndef NO_RSA
- #if defined(USE_CERT_BUFFERS_2048)
- byte key[sizeof_client_key_der_2048];
- byte cert[sizeof_client_cert_der_2048];
- word32 keySz = (word32)sizeof(key);
- word32 certSz = (word32)sizeof(cert);
- XMEMSET(key, 0, keySz);
- XMEMSET(cert, 0, certSz);
- XMEMCPY(key, client_key_der_2048, keySz);
- XMEMCPY(cert, client_cert_der_2048, certSz);
- #elif defined(USE_CERT_BUFFERS_1024)
- byte key[sizeof_client_key_der_1024];
- byte cert[sizeof_client_cert_der_1024];
- word32 keySz = (word32)sizeof(key);
- word32 certSz = (word32)sizeof(cert);
- XMEMSET(key, 0, keySz);
- XMEMSET(cert, 0, certSz);
- XMEMCPY(key, client_key_der_1024, keySz);
- XMEMCPY(cert, client_cert_der_1024, certSz);
- #else
- unsigned char cert[ONEK_BUF];
- unsigned char key[ONEK_BUF];
- XFILE fp;
- int certSz;
- int keySz;
-
- fp = XFOPEN("./certs/1024/client-cert.der", "rb");
- AssertTrue((fp != XBADFILE));
- certSz = (int)XFREAD(cert, 1, sizeof_client_cert_der_1024, fp);
- XFCLOSE(fp);
-
- fp = XFOPEN("./certs/1024/client-key.der", "rb");
- AssertTrue(fp != XBADFILE);
- keySz = (int)XFREAD(key, 1, sizeof_client_key_der_1024, fp);
- XFCLOSE(fp);
- #endif
-#elif defined(HAVE_ECC)
- #if defined(USE_CERT_BUFFERS_256)
- unsigned char cert[sizeof_cliecc_cert_der_256];
- unsigned char key[sizeof_ecc_clikey_der_256];
- int certSz = (int)sizeof(cert);
- int keySz = (int)sizeof(key);
- XMEMSET(cert, 0, certSz);
- XMEMSET(key, 0, keySz);
- XMEMCPY(cert, cliecc_cert_der_256, sizeof_cliecc_cert_der_256);
- XMEMCPY(key, ecc_clikey_der_256, sizeof_ecc_clikey_der_256);
- #else
- unsigned char cert[ONEK_BUF];
- unsigned char key[ONEK_BUF];
- XFILE fp;
- int certSz, keySz;
-
- fp = XFOPEN("./certs/client-ecc-cert.der", "rb");
- AssertTrue(fp != XBADFILE);
- certSz = (int)XFREAD(cert, 1, sizeof_cliecc_cert_der_256, fp);
- XFCLOSE(fp);
-
- fp = XFOPEN("./certs/client-ecc-key.der", "rb");
- AssertTrue(fp != XBADFILE);
- keySz = (int)XFREAD(key, 1, sizeof_ecc_clikey_der_256, fp);
- XFCLOSE(fp);
- #endif
-#endif
-
- /* initialize large data with sequence */
- for (i=0; i<(int)sizeof(data); i++)
- data[i] = i & 0xff;
-
- XMEMSET(outputHead, 0, outputHeadSz);
- XMEMSET(outputFoot, 0, outputFootSz);
- AssertIntEQ(wc_InitRng(&rng), 0);
-
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_Init(pkcs7, HEAP_HINT, INVALID_DEVID), 0);
-
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, cert, certSz), 0);
-
- printf(testingFmt, "wc_PKCS7_EncodeSignedData()");
-
- pkcs7->content = NULL; /* not used for ex */
- pkcs7->contentSz = (word32)sizeof(data);
- pkcs7->privateKey = key;
- pkcs7->privateKeySz = (word32)sizeof(key);
- pkcs7->encryptOID = RSAk;
- pkcs7->hashOID = SHAh;
- pkcs7->rng = &rng;
-
- /* calculate hash for content */
- ret = wc_HashInit(&hash, hashType);
- if (ret == 0) {
- ret = wc_HashUpdate(&hash, hashType, data, sizeof(data));
- if (ret == 0) {
- ret = wc_HashFinal(&hash, hashType, hashBuf);
- }
- wc_HashFree(&hash, hashType);
- }
- AssertIntEQ(ret, 0);
-
- /* Perform PKCS7 sign using hash directly */
- AssertIntEQ(wc_PKCS7_EncodeSignedData_ex(pkcs7, hashBuf, hashSz,
- outputHead, &outputHeadSz, outputFoot, &outputFootSz), 0);
- AssertIntGT(outputHeadSz, 0);
- AssertIntGT(outputFootSz, 0);
-
- wc_PKCS7_Free(pkcs7);
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
-
- /* required parameter even on verify when using _ex */
- pkcs7->contentSz = (word32)sizeof(data);
- AssertIntEQ(wc_PKCS7_VerifySignedData_ex(pkcs7, hashBuf, hashSz,
- outputHead, outputHeadSz, outputFoot, outputFootSz), 0);
-
- wc_PKCS7_Free(pkcs7);
-
- /* assembly complete PKCS7 sign and use normal verify */
- {
- byte* output = (byte*)XMALLOC(outputHeadSz + sizeof(data) + outputFootSz, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- word32 outputSz = 0;
- AssertNotNull(output);
- XMEMCPY(&output[outputSz], outputHead, outputHeadSz);
- outputSz += outputHeadSz;
- XMEMCPY(&output[outputSz], data, sizeof(data));
- outputSz += sizeof(data);
- XMEMCPY(&output[outputSz], outputFoot, outputFootSz);
- outputSz += outputFootSz;
-
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, output, outputSz), 0);
- XFREE(output, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- }
-
- /* Pass in bad args. */
- AssertIntEQ(wc_PKCS7_EncodeSignedData_ex(NULL, hashBuf, hashSz, outputHead,
- &outputHeadSz, outputFoot, &outputFootSz), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_EncodeSignedData_ex(pkcs7, NULL, hashSz, outputHead,
- &outputHeadSz, outputFoot, &outputFootSz), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_EncodeSignedData_ex(pkcs7, hashBuf, 0, outputHead,
- &outputHeadSz, outputFoot, &outputFootSz), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_EncodeSignedData_ex(pkcs7, hashBuf, hashSz, NULL,
- &outputHeadSz, outputFoot, &outputFootSz), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_EncodeSignedData_ex(pkcs7, hashBuf, hashSz,
- outputHead, NULL, outputFoot, &outputFootSz), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_EncodeSignedData_ex(pkcs7, hashBuf, hashSz,
- outputHead, &outputHeadSz, NULL, &outputFootSz), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_EncodeSignedData_ex(pkcs7, hashBuf, hashSz,
- outputHead, &outputHeadSz, outputFoot, NULL), BAD_FUNC_ARG);
- pkcs7->hashOID = 0; /* bad hashOID */
- AssertIntEQ(wc_PKCS7_EncodeSignedData_ex(pkcs7, hashBuf, hashSz,
- outputHead, &outputHeadSz, outputFoot, &outputFootSz), BAD_FUNC_ARG);
-
- AssertIntEQ(wc_PKCS7_VerifySignedData_ex(NULL, hashBuf, hashSz, outputHead,
- outputHeadSz, outputFoot, outputFootSz), BAD_FUNC_ARG);
-
- AssertIntEQ(wc_PKCS7_VerifySignedData_ex(pkcs7, NULL, hashSz, outputHead,
- outputHeadSz, outputFoot, outputFootSz), BAD_FUNC_ARG);
-#ifndef NO_PKCS7_STREAM
- AssertIntEQ(wc_PKCS7_VerifySignedData_ex(pkcs7, hashBuf, 0, outputHead,
- outputHeadSz, outputFoot, outputFootSz), WC_PKCS7_WANT_READ_E);
-#else
- AssertIntEQ(wc_PKCS7_VerifySignedData_ex(pkcs7, hashBuf, 0, outputHead,
- outputHeadSz, outputFoot, outputFootSz), BUFFER_E);
-#endif
- AssertIntEQ(wc_PKCS7_VerifySignedData_ex(pkcs7, hashBuf, hashSz, NULL,
- outputHeadSz, outputFoot, outputFootSz), BAD_FUNC_ARG);
-#ifndef NO_PKCS7_STREAM
- /* can pass in 0 buffer length with streaming API */
- AssertIntEQ(wc_PKCS7_VerifySignedData_ex(pkcs7, hashBuf, hashSz,
- outputHead, 0, outputFoot, outputFootSz), WC_PKCS7_WANT_READ_E);
-#else
- AssertIntEQ(wc_PKCS7_VerifySignedData_ex(pkcs7, hashBuf, hashSz,
- outputHead, 0, outputFoot, outputFootSz), BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wc_PKCS7_VerifySignedData_ex(pkcs7, hashBuf, hashSz,
- outputHead, outputHeadSz, NULL, outputFootSz), BAD_FUNC_ARG);
-#ifndef NO_PKCS7_STREAM
- AssertIntEQ(wc_PKCS7_VerifySignedData_ex(pkcs7, hashBuf, hashSz,
- outputHead, outputHeadSz, outputFoot, 0), WC_PKCS7_WANT_READ_E);
-#else
- AssertIntEQ(wc_PKCS7_VerifySignedData_ex(pkcs7, hashBuf, hashSz,
- outputHead, outputHeadSz, outputFoot, 0), ASN_PARSE_E);
-#endif
-
- printf(resultFmt, passed);
-
- wc_PKCS7_Free(pkcs7);
- wc_FreeRng(&rng);
-
-#endif
-} /* END test_wc_PKCS7_EncodeSignedData_ex */
-
-
-#if defined(HAVE_PKCS7)
-static int CreatePKCS7SignedData(unsigned char* output, int outputSz,
- byte* data, word32 dataSz,
- int withAttribs, int detachedSig)
-{
- PKCS7* pkcs7;
- WC_RNG rng;
-
- static byte messageTypeOid[] =
- { 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xF8, 0x45, 0x01,
- 0x09, 0x02 };
- static byte messageType[] = { 0x13, 2, '1', '9' };
-
- PKCS7Attrib attribs[] =
- {
- { messageTypeOid, sizeof(messageTypeOid), messageType,
- sizeof(messageType) }
- };
-
-#ifndef NO_RSA
- #if defined(USE_CERT_BUFFERS_2048)
- byte key[sizeof_client_key_der_2048];
- byte cert[sizeof_client_cert_der_2048];
- word32 keySz = (word32)sizeof(key);
- word32 certSz = (word32)sizeof(cert);
- XMEMSET(key, 0, keySz);
- XMEMSET(cert, 0, certSz);
- XMEMCPY(key, client_key_der_2048, keySz);
- XMEMCPY(cert, client_cert_der_2048, certSz);
- #elif defined(USE_CERT_BUFFERS_1024)
- byte key[sizeof_client_key_der_1024];
- byte cert[sizeof_client_cert_der_1024];
- word32 keySz = (word32)sizeof(key);
- word32 certSz = (word32)sizeof(cert);
- XMEMSET(key, 0, keySz);
- XMEMSET(cert, 0, certSz);
- XMEMCPY(key, client_key_der_1024, keySz);
- XMEMCPY(cert, client_cert_der_1024, certSz);
- #else
- unsigned char cert[ONEK_BUF];
- unsigned char key[ONEK_BUF];
- FILE* fp;
- int certSz;
- int keySz;
-
- fp = fopen("./certs/1024/client-cert.der", "rb");
- AssertNotNull(fp);
- certSz = fread(cert, 1, sizeof_client_cert_der_1024, fp);
- fclose(fp);
-
- fp = fopen("./certs/1024/client-key.der", "rb");
- AssertNotNull(fp);
- keySz = fread(key, 1, sizeof_client_key_der_1024, fp);
- fclose(fp);
- #endif
-#elif defined(HAVE_ECC)
- #if defined(USE_CERT_BUFFERS_256)
- unsigned char cert[sizeof_cliecc_cert_der_256];
- unsigned char key[sizeof_ecc_clikey_der_256];
- int certSz = (int)sizeof(cert);
- int keySz = (int)sizeof(key);
- XMEMSET(cert, 0, certSz);
- XMEMSET(key, 0, keySz);
- XMEMCPY(cert, cliecc_cert_der_256, sizeof_cliecc_cert_der_256);
- XMEMCPY(key, ecc_clikey_der_256, sizeof_ecc_clikey_der_256);
- #else
- unsigned char cert[ONEK_BUF];
- unsigned char key[ONEK_BUF];
- FILE* fp;
- int certSz, keySz;
-
- fp = fopen("./certs/client-ecc-cert.der", "rb");
- AssertNotNull(fp);
- certSz = fread(cert, 1, sizeof_cliecc_cert_der_256, fp);
- fclose(fp);
-
- fp = fopen("./certs/client-ecc-key.der", "rb");
- AssertNotNull(fp);
- keySz = fread(key, 1, sizeof_ecc_clikey_der_256, fp);
- fclose(fp);
- #endif
-#endif
-
- XMEMSET(output, 0, outputSz);
- AssertIntEQ(wc_InitRng(&rng), 0);
-
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_Init(pkcs7, HEAP_HINT, INVALID_DEVID), 0);
-
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, cert, certSz), 0);
-
- printf(testingFmt, "wc_PKCS7_VerifySignedData()");
-
- pkcs7->content = data;
- pkcs7->contentSz = dataSz;
- pkcs7->privateKey = key;
- pkcs7->privateKeySz = (word32)sizeof(key);
- pkcs7->encryptOID = RSAk;
- pkcs7->hashOID = SHAh;
- pkcs7->rng = &rng;
- if (withAttribs) {
- /* include a signed attribute */
- pkcs7->signedAttribs = attribs;
- pkcs7->signedAttribsSz = (sizeof(attribs)/sizeof(PKCS7Attrib));
- }
-
- if (detachedSig) {
- AssertIntEQ(wc_PKCS7_SetDetached(pkcs7, 1), 0);
- }
-
- AssertIntGT(wc_PKCS7_EncodeSignedData(pkcs7, output, outputSz), 0);
- wc_PKCS7_Free(pkcs7);
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
- if (detachedSig) {
- pkcs7->content = data;
- pkcs7->contentSz = dataSz;
- }
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, output, outputSz), 0);
-
- wc_PKCS7_Free(pkcs7);
- wc_FreeRng(&rng);
-
- return outputSz;
-}
-#endif
-
-/*
- * Testing wc_PKCS_VerifySignedData()
- */
-static void test_wc_PKCS7_VerifySignedData(void)
-{
-#if defined(HAVE_PKCS7)
- PKCS7* pkcs7;
- byte output[FOURK_BUF];
- word32 outputSz = sizeof(output);
- byte data[] = "Test data to encode.";
- byte badOut[0];
- word32 badOutSz = (word32)sizeof(badOut);
- byte badContent[] = "This is different content than was signed";
-
- AssertIntGT((outputSz = CreatePKCS7SignedData(output, outputSz, data,
- (word32)sizeof(data),
- 0, 0)), 0);
-
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_Init(pkcs7, HEAP_HINT, INVALID_DEVID), 0);
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, output, outputSz), 0);
-
- /* Test bad args. */
- AssertIntEQ(wc_PKCS7_VerifySignedData(NULL, output, outputSz), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, NULL, outputSz), BAD_FUNC_ARG);
-#ifndef NO_PKCS7_STREAM
- /* can pass in 0 buffer length with streaming API */
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, badOut,
- badOutSz), WC_PKCS7_WANT_READ_E);
-#else
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, badOut,
- badOutSz), BAD_FUNC_ARG);
-#endif
-
- wc_PKCS7_Free(pkcs7);
-
- /* Invalid content should error, use detached signature so we can
- * easily change content */
- AssertIntGT((outputSz = CreatePKCS7SignedData(output, outputSz, data,
- (word32)sizeof(data),
- 1, 1)), 0);
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
- pkcs7->content = badContent;
- pkcs7->contentSz = sizeof(badContent);
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, output, outputSz), SIG_VERIFY_E);
- wc_PKCS7_Free(pkcs7);
-
- /* Test success case with detached signature and valid content */
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
- pkcs7->content = data;
- pkcs7->contentSz = sizeof(data);
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, output, outputSz), 0);
- wc_PKCS7_Free(pkcs7);
-
- printf(resultFmt, passed);
-#endif
-} /* END test_wc_PKCS7_VerifySignedData() */
-
-
-#if defined(HAVE_PKCS7) && !defined(NO_AES) && !defined(NO_AES_256)
-static const byte defKey[] = {
- 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
- 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
- 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
- 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08
-};
-static byte aesHandle[32]; /* simulated hardware key handle */
-
-/* return 0 on success */
-static int myDecryptionFunc(PKCS7* pkcs7, int encryptOID, byte* iv, int ivSz,
- byte* aad, word32 aadSz, byte* authTag, word32 authTagSz,
- byte* in, int inSz, byte* out, void* usrCtx)
-{
- int ret;
- Aes aes;
-
- if (usrCtx == NULL) {
- /* no simulated handle passed in */
- return -1;
- }
-
- switch (encryptOID) {
- case AES256CBCb:
- if (ivSz != AES_BLOCK_SIZE)
- return BAD_FUNC_ARG;
- break;
-
- default:
- WOLFSSL_MSG("Unsupported content cipher type for test");
- return ALGO_ID_E;
- };
-
- /* simulate using handle to get key */
- ret = wc_AesInit(&aes, HEAP_HINT, INVALID_DEVID);
- if (ret == 0) {
- ret = wc_AesSetKey(&aes, (byte*)usrCtx, 32, iv, AES_DECRYPTION);
- if (ret == 0)
- ret = wc_AesCbcDecrypt(&aes, out, in, inSz);
- wc_AesFree(&aes);
- }
-
- (void)aad;
- (void)aadSz;
- (void)authTag;
- (void)authTagSz;
- (void)pkcs7;
- return ret;
-}
-
-
-/* returns key size on success */
-static int myCEKwrapFunc(PKCS7* pkcs7, byte* cek, word32 cekSz, byte* keyId,
- word32 keyIdSz, byte* orginKey, word32 orginKeySz,
- byte* out, word32 outSz, int keyWrapAlgo, int type, int direction)
-{
- int ret = -1;
-
- if (out == NULL)
- return BAD_FUNC_ARG;
-
- if (keyId[0] != 0x00) {
- return -1;
- }
-
- if (type != (int)PKCS7_KEKRI) {
- return -1;
- }
-
- switch (keyWrapAlgo) {
- case AES256_WRAP:
- /* simulate setting a handle for later decryption but use key
- * as handle in the test case here */
- ret = wc_AesKeyUnWrap(defKey, sizeof(defKey), cek, cekSz,
- aesHandle, sizeof(aesHandle), NULL);
- if (ret < 0)
- return ret;
-
- ret = wc_PKCS7_SetDecodeEncryptedCtx(pkcs7, (void*)aesHandle);
- if (ret < 0)
- return ret;
-
- /* return key size on success */
- return sizeof(defKey);
-
- default:
- WOLFSSL_MSG("Unsupported key wrap algorithm in example");
- return BAD_KEYWRAP_ALG_E;
- };
-
- (void)cekSz;
- (void)cek;
- (void)outSz;
- (void)keyIdSz;
- (void)direction;
- (void)orginKey; /* used with KAKRI */
- (void)orginKeySz;
- return ret;
-}
-#endif /* HAVE_PKCS7 && !NO_AES && !NO_AES_256 */
-
-
-/*
- * Testing wc_PKCS7_EncodeEnvelopedData()
- */
-static void test_wc_PKCS7_EncodeDecodeEnvelopedData (void)
-{
-#if defined(HAVE_PKCS7)
- PKCS7* pkcs7;
- word32 tempWrd32 = 0;
- byte* tmpBytePtr = NULL;
- const char input[] = "Test data to encode.";
- int i;
- int testSz = 0;
- #if !defined(NO_RSA) && (!defined(NO_AES) || (!defined(NO_SHA) || \
- !defined(NO_SHA256) || defined(WOLFSSL_SHA512)))
-
- byte* rsaCert = NULL;
- byte* rsaPrivKey = NULL;
- word32 rsaCertSz;
- word32 rsaPrivKeySz;
- #if !defined(NO_FILESYSTEM) && (!defined(USE_CERT_BUFFERS_1024) && \
- !defined(USE_CERT_BUFFERS_2048) )
- static const char* rsaClientCert = "./certs/client-cert.der";
- static const char* rsaClientKey = "./certs/client-key.der";
- rsaCertSz = (word32)sizeof(rsaClientCert);
- rsaPrivKeySz = (word32)sizeof(rsaClientKey);
- #endif
- #endif
- #if defined(HAVE_ECC) && (!defined(NO_AES) || (!defined(NO_SHA) ||\
- !defined(NO_SHA256) || defined(WOLFSSL_SHA512)))
-
- byte* eccCert = NULL;
- byte* eccPrivKey = NULL;
- word32 eccCertSz;
- word32 eccPrivKeySz;
- #if !defined(NO_FILESYSTEM) && !defined(USE_CERT_BUFFERS_256)
- static const char* eccClientCert = "./certs/client-ecc-cert.der";
- static const char* eccClientKey = "./certs/ecc-client-key.der";
- #endif
- #endif
- /* Generic buffer size. */
- byte output[ONEK_BUF];
- byte decoded[sizeof(input)/sizeof(char)];
- int decodedSz = 0;
-#ifndef NO_FILESYSTEM
- XFILE certFile;
- XFILE keyFile;
-#endif
-
-#if !defined(NO_RSA) && (!defined(NO_AES) || (!defined(NO_SHA) ||\
- !defined(NO_SHA256) || defined(WOLFSSL_SHA512)))
- /* RSA certs and keys. */
- #if defined(USE_CERT_BUFFERS_1024)
- /* Allocate buffer space. */
- AssertNotNull(rsaCert =
- (byte*)XMALLOC(ONEK_BUF, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
- /* Init buffer. */
- rsaCertSz = (word32)sizeof_client_cert_der_1024;
- XMEMCPY(rsaCert, client_cert_der_1024, rsaCertSz);
- AssertNotNull(rsaPrivKey = (byte*)XMALLOC(ONEK_BUF, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER));
- rsaPrivKeySz = (word32)sizeof_client_key_der_1024;
- XMEMCPY(rsaPrivKey, client_key_der_1024, rsaPrivKeySz);
-
- #elif defined(USE_CERT_BUFFERS_2048)
- /* Allocate buffer */
- AssertNotNull(rsaCert =
- (byte*)XMALLOC(TWOK_BUF, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
- /* Init buffer. */
- rsaCertSz = (word32)sizeof_client_cert_der_2048;
- XMEMCPY(rsaCert, client_cert_der_2048, rsaCertSz);
- AssertNotNull(rsaPrivKey = (byte*)XMALLOC(TWOK_BUF, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER));
- rsaPrivKeySz = (word32)sizeof_client_key_der_2048;
- XMEMCPY(rsaPrivKey, client_key_der_2048, rsaPrivKeySz);
-
- #else
- /* File system. */
- certFile = XFOPEN(rsaClientCert, "rb");
- AssertTrue(certFile != XBADFILE);
- rsaCertSz = (word32)FOURK_BUF;
- AssertNotNull(rsaCert =
- (byte*)XMALLOC(FOURK_BUF, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
- rsaCertSz = (word32)XFREAD(rsaCert, 1, rsaCertSz, certFile);
- XFCLOSE(certFile);
- keyFile = XFOPEN(rsaClientKey, "rb");
- AssertTrue(keyFile != XBADFILE);
- AssertNotNull(rsaPrivKey = (byte*)XMALLOC(FOURK_BUF, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER));
- rsaPrivKeySz = (word32)FOURK_BUF;
- rsaPrivKeySz = (word32)XFREAD(rsaPrivKey, 1, rsaPrivKeySz, keyFile);
- XFCLOSE(keyFile);
- #endif /* USE_CERT_BUFFERS */
-#endif /* NO_RSA */
-
-/* ECC */
-#if defined(HAVE_ECC) && (!defined(NO_AES) || (!defined(NO_SHA) ||\
- !defined(NO_SHA256) || defined(WOLFSSL_SHA512)))
-
- #ifdef USE_CERT_BUFFERS_256
- AssertNotNull(eccCert =
- (byte*)XMALLOC(TWOK_BUF, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
- /* Init buffer. */
- eccCertSz = (word32)sizeof_cliecc_cert_der_256;
- XMEMCPY(eccCert, cliecc_cert_der_256, eccCertSz);
- AssertNotNull(eccPrivKey = (byte*)XMALLOC(TWOK_BUF, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER));
- eccPrivKeySz = (word32)sizeof_ecc_clikey_der_256;
- XMEMCPY(eccPrivKey, ecc_clikey_der_256, eccPrivKeySz);
- #else /* File system. */
- certFile = XFOPEN(eccClientCert, "rb");
- AssertTrue(certFile != XBADFILE);
- eccCertSz = (word32)FOURK_BUF;
- AssertNotNull(eccCert =
- (byte*)XMALLOC(FOURK_BUF, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
- eccCertSz = (word32)XFREAD(eccCert, 1, eccCertSz, certFile);
- XFCLOSE(certFile);
- keyFile = XFOPEN(eccClientKey, "rb");
- AssertTrue(keyFile != XBADFILE);
- eccPrivKeySz = (word32)FOURK_BUF;
- AssertNotNull(eccPrivKey = (byte*)XMALLOC(FOURK_BUF, HEAP_HINT,
- DYNAMIC_TYPE_TMP_BUFFER));
- eccPrivKeySz = (word32)XFREAD(eccPrivKey, 1, eccPrivKeySz, keyFile);
- XFCLOSE(keyFile);
- #endif /* USE_CERT_BUFFERS_256 */
-#endif /* END HAVE_ECC */
-
- /* Silence. */
- (void)keyFile;
- (void)certFile;
-
- const pkcs7EnvelopedVector testVectors[] = {
- /* DATA is a global variable defined in the makefile. */
-#if !defined(NO_RSA)
- #ifndef NO_DES3
- {(byte*)input, (word32)(sizeof(input)/sizeof(char)), DATA, DES3b, 0, 0,
- rsaCert, rsaCertSz, rsaPrivKey, rsaPrivKeySz},
- #endif /* NO_DES3 */
- #ifndef NO_AES
- #ifndef NO_AES_128
- {(byte*)input, (word32)(sizeof(input)/sizeof(char)), DATA, AES128CBCb,
- 0, 0, rsaCert, rsaCertSz, rsaPrivKey, rsaPrivKeySz},
- #endif
- #ifndef NO_AES_192
- {(byte*)input, (word32)(sizeof(input)/sizeof(char)), DATA, AES192CBCb,
- 0, 0, rsaCert, rsaCertSz, rsaPrivKey, rsaPrivKeySz},
- #endif
- #ifndef NO_AES_256
- {(byte*)input, (word32)(sizeof(input)/sizeof(char)), DATA, AES256CBCb,
- 0, 0, rsaCert, rsaCertSz, rsaPrivKey, rsaPrivKeySz},
- #endif
- #endif /* NO_AES */
-
-#endif /* NO_RSA */
-#if defined(HAVE_ECC)
- #ifndef NO_AES
- #if !defined(NO_SHA) && !defined(NO_AES_128)
- {(byte*)input, (word32)(sizeof(input)/sizeof(char)), DATA, AES128CBCb,
- AES128_WRAP, dhSinglePass_stdDH_sha1kdf_scheme, eccCert,
- eccCertSz, eccPrivKey, eccPrivKeySz},
- #endif
- #if !defined(NO_SHA256) && !defined(NO_AES_256)
- {(byte*)input, (word32)(sizeof(input)/sizeof(char)), DATA, AES256CBCb,
- AES256_WRAP, dhSinglePass_stdDH_sha256kdf_scheme, eccCert,
- eccCertSz, eccPrivKey, eccPrivKeySz},
- #endif
- #if defined(WOLFSSL_SHA512) && !defined(NO_AES_256)
- {(byte*)input, (word32)(sizeof(input)/sizeof(char)), DATA, AES256CBCb,
- AES256_WRAP, dhSinglePass_stdDH_sha512kdf_scheme, eccCert,
- eccCertSz, eccPrivKey, eccPrivKeySz},
- #endif
- #endif /* NO_AES */
-#endif /* END HAVE_ECC */
- }; /* END pkcs7EnvelopedVector */
-
- printf(testingFmt, "wc_PKCS7_EncodeEnvelopedData()");
-
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_Init(pkcs7, HEAP_HINT, devId), 0);
-
- testSz = (int)sizeof(testVectors)/(int)sizeof(pkcs7EnvelopedVector);
- for (i = 0; i < testSz; i++) {
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, (testVectors + i)->cert,
- (word32)(testVectors + i)->certSz), 0);
-
- pkcs7->content = (byte*)(testVectors + i)->content;
- pkcs7->contentSz = (testVectors + i)->contentSz;
- pkcs7->contentOID = (testVectors + i)->contentOID;
- pkcs7->encryptOID = (testVectors + i)->encryptOID;
- pkcs7->keyWrapOID = (testVectors + i)->keyWrapOID;
- pkcs7->keyAgreeOID = (testVectors + i)->keyAgreeOID;
- pkcs7->privateKey = (testVectors + i)->privateKey;
- pkcs7->privateKeySz = (testVectors + i)->privateKeySz;
-
- AssertIntGE(wc_PKCS7_EncodeEnvelopedData(pkcs7, output,
- (word32)sizeof(output)), 0);
-
- decodedSz = wc_PKCS7_DecodeEnvelopedData(pkcs7, output,
- (word32)sizeof(output), decoded, (word32)sizeof(decoded));
- AssertIntGE(decodedSz, 0);
- /* Verify the size of each buffer. */
- AssertIntEQ((word32)sizeof(input)/sizeof(char), decodedSz);
- /* Don't free the last time through the loop. */
- if (i < testSz - 1 ){
- wc_PKCS7_Free(pkcs7);
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- }
- } /* END test loop. */
-
- /* Test bad args. */
- AssertIntEQ(wc_PKCS7_EncodeEnvelopedData(NULL, output,
- (word32)sizeof(output)), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_EncodeEnvelopedData(pkcs7, NULL,
- (word32)sizeof(output)), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_EncodeEnvelopedData(pkcs7, output, 0), BAD_FUNC_ARG);
- printf(resultFmt, passed);
-
- /* Decode. */
- printf(testingFmt, "wc_PKCS7_DecodeEnvelopedData()");
-
- AssertIntEQ(wc_PKCS7_DecodeEnvelopedData(NULL, output,
- (word32)sizeof(output), decoded, (word32)sizeof(decoded)), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_DecodeEnvelopedData(pkcs7, output,
- (word32)sizeof(output), NULL, (word32)sizeof(decoded)), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_DecodeEnvelopedData(pkcs7, output,
- (word32)sizeof(output), decoded, 0), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_DecodeEnvelopedData(pkcs7, NULL,
- (word32)sizeof(output), decoded, (word32)sizeof(decoded)), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_DecodeEnvelopedData(pkcs7, output, 0, decoded,
- (word32)sizeof(decoded)), BAD_FUNC_ARG);
- /* Should get a return of BAD_FUNC_ARG with structure data. Order matters.*/
-#if defined(HAVE_ECC) && !defined(NO_AES)
- /* only a failure for KARI test cases */
- tempWrd32 = pkcs7->singleCertSz;
- pkcs7->singleCertSz = 0;
- AssertIntEQ(wc_PKCS7_DecodeEnvelopedData(pkcs7, output,
- (word32)sizeof(output), decoded, (word32)sizeof(decoded)), BAD_FUNC_ARG);
- pkcs7->singleCertSz = tempWrd32;
-
- tmpBytePtr = pkcs7->singleCert;
- pkcs7->singleCert = NULL;
- AssertIntEQ(wc_PKCS7_DecodeEnvelopedData(pkcs7, output,
- (word32)sizeof(output), decoded, (word32)sizeof(decoded)), BAD_FUNC_ARG);
- pkcs7->singleCert = tmpBytePtr;
-#endif
- tempWrd32 = pkcs7->privateKeySz;
- pkcs7->privateKeySz = 0;
- AssertIntEQ(wc_PKCS7_DecodeEnvelopedData(pkcs7, output,
- (word32)sizeof(output), decoded, (word32)sizeof(decoded)), BAD_FUNC_ARG);
- pkcs7->privateKeySz = tempWrd32;
-
- tmpBytePtr = pkcs7->privateKey;
- pkcs7->privateKey = NULL;
- AssertIntEQ(wc_PKCS7_DecodeEnvelopedData(pkcs7, output,
- (word32)sizeof(output), decoded, (word32)sizeof(decoded)), BAD_FUNC_ARG);
- pkcs7->privateKey = tmpBytePtr;
- wc_PKCS7_Free(pkcs7);
-
-#if !defined(NO_AES) && !defined(NO_AES_256)
- /* test of decrypt callback with KEKRI enveloped data */
- {
- int envelopedSz;
- const byte keyId[] = { 0x00 };
-
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- pkcs7->content = (byte*)input;
- pkcs7->contentSz = (word32)(sizeof(input)/sizeof(char));
- pkcs7->contentOID = DATA;
- pkcs7->encryptOID = AES256CBCb;
- AssertIntGT(wc_PKCS7_AddRecipient_KEKRI(pkcs7, AES256_WRAP,
- (byte*)defKey, sizeof(defKey), (byte*)keyId,
- sizeof(keyId), NULL, NULL, 0, NULL, 0, 0), 0);
- AssertIntEQ(wc_PKCS7_SetSignerIdentifierType(pkcs7, CMS_SKID), 0);
- AssertIntGT((envelopedSz = wc_PKCS7_EncodeEnvelopedData(pkcs7, output,
- (word32)sizeof(output))), 0);
- wc_PKCS7_Free(pkcs7);
-
- /* decode envelopedData */
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_SetWrapCEKCb(pkcs7, myCEKwrapFunc), 0);
- AssertIntEQ(wc_PKCS7_SetDecodeEncryptedCb(pkcs7, myDecryptionFunc), 0);
- AssertIntGT((decodedSz = wc_PKCS7_DecodeEnvelopedData(pkcs7, output,
- envelopedSz, decoded, sizeof(decoded))), 0);
- wc_PKCS7_Free(pkcs7);
- }
-#endif /* !NO_AES && !NO_AES_256 */
-
-
- printf(resultFmt, passed);
-#ifndef NO_RSA
- if (rsaCert) {
- XFREE(rsaCert, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- }
- if (rsaPrivKey) {
- XFREE(rsaPrivKey, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- }
-#endif /*NO_RSA */
-#ifdef HAVE_ECC
- if (eccCert) {
- XFREE(eccCert, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- }
- if (eccPrivKey) {
- XFREE(eccPrivKey, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- }
-#endif /* HAVE_ECC */
-
-#endif /* HAVE_PKCS7 */
-} /* END test_wc_PKCS7_EncodeEnvelopedData() */
-
-
-/*
- * Testing wc_PKCS7_EncodeEncryptedData()
- */
-static void test_wc_PKCS7_EncodeEncryptedData (void)
-{
-#if defined(HAVE_PKCS7) && !defined(NO_PKCS7_ENCRYPTED_DATA)
- PKCS7* pkcs7;
- byte* tmpBytePtr = NULL;
- byte encrypted[TWOK_BUF];
- byte decoded[TWOK_BUF];
- word32 tmpWrd32 = 0;
- int tmpInt = 0;
- int decodedSz;
- int encryptedSz;
- int testSz;
- int i;
-
- const byte data[] = { /* Hello World */
- 0x48,0x65,0x6c,0x6c,0x6f,0x20,0x57,0x6f,
- 0x72,0x6c,0x64
- };
-
- #ifndef NO_DES3
- byte desKey[] = {
- 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef
- };
- byte des3Key[] = {
- 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,
- 0xfe,0xde,0xba,0x98,0x76,0x54,0x32,0x10,
- 0x89,0xab,0xcd,0xef,0x01,0x23,0x45,0x67
- };
- #endif
-
- #ifndef NO_AES
- #ifndef NO_AES_128
- byte aes128Key[] = {
- 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
- 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08
- };
- #endif
- #ifndef NO_AES_192
- byte aes192Key[] = {
- 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
- 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
- 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08
- };
- #endif
- #ifndef NO_AES_256
- byte aes256Key[] = {
- 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
- 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
- 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
- 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08
- };
- #endif
- #endif
- const pkcs7EncryptedVector testVectors[] =
- {
- #ifndef NO_DES3
- {data, (word32)sizeof(data), DATA, DES3b, des3Key, sizeof(des3Key)},
-
- {data, (word32)sizeof(data), DATA, DESb, desKey, sizeof(desKey)},
- #endif /* NO_DES3 */
- #ifndef NO_AES
- #ifndef NO_AES_128
- {data, (word32)sizeof(data), DATA, AES128CBCb, aes128Key,
- sizeof(aes128Key)},
- #endif
-
- #ifndef NO_AES_192
- {data, (word32)sizeof(data), DATA, AES192CBCb, aes192Key,
- sizeof(aes192Key)},
- #endif
-
- #ifndef NO_AES_256
- {data, (word32)sizeof(data), DATA, AES256CBCb, aes256Key,
- sizeof(aes256Key)},
- #endif
-
- #endif /* NO_AES */
- };
-
- testSz = sizeof(testVectors) / sizeof(pkcs7EncryptedVector);
-
- for (i = 0; i < testSz; i++) {
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_Init(pkcs7, HEAP_HINT, devId), 0);
- pkcs7->content = (byte*)testVectors[i].content;
- pkcs7->contentSz = testVectors[i].contentSz;
- pkcs7->contentOID = testVectors[i].contentOID;
- pkcs7->encryptOID = testVectors[i].encryptOID;
- pkcs7->encryptionKey = testVectors[i].encryptionKey;
- pkcs7->encryptionKeySz = testVectors[i].encryptionKeySz;
- pkcs7->heap = HEAP_HINT;
-
- /* encode encryptedData */
- encryptedSz = wc_PKCS7_EncodeEncryptedData(pkcs7, encrypted,
- sizeof(encrypted));
- AssertIntGT(encryptedSz, 0);
-
- /* Decode encryptedData */
- decodedSz = wc_PKCS7_DecodeEncryptedData(pkcs7, encrypted, encryptedSz,
- decoded, sizeof(decoded));
-
- AssertIntEQ(XMEMCMP(decoded, data, decodedSz), 0);
- /* Keep values for last itr. */
- if (i < testSz - 1) {
- wc_PKCS7_Free(pkcs7);
- }
- }
-
- printf(testingFmt, "wc_PKCS7_EncodeEncryptedData()");
- AssertIntEQ(wc_PKCS7_EncodeEncryptedData(NULL, encrypted,
- sizeof(encrypted)),BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_EncodeEncryptedData(pkcs7, NULL,
- sizeof(encrypted)), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_EncodeEncryptedData(pkcs7, encrypted,
- 0), BAD_FUNC_ARG);
- /* Testing the struct. */
- tmpBytePtr = pkcs7->content;
- pkcs7->content = NULL;
- AssertIntEQ(wc_PKCS7_EncodeEncryptedData(pkcs7, encrypted,
- sizeof(encrypted)), BAD_FUNC_ARG);
- pkcs7->content = tmpBytePtr;
- tmpWrd32 = pkcs7->contentSz;
- pkcs7->contentSz = 0;
- AssertIntEQ(wc_PKCS7_EncodeEncryptedData(pkcs7, encrypted,
- sizeof(encrypted)), BAD_FUNC_ARG);
- pkcs7->contentSz = tmpWrd32;
- tmpInt = pkcs7->encryptOID;
- pkcs7->encryptOID = 0;
- AssertIntEQ(wc_PKCS7_EncodeEncryptedData(pkcs7, encrypted,
- sizeof(encrypted)), BAD_FUNC_ARG);
- pkcs7->encryptOID = tmpInt;
- tmpBytePtr = pkcs7->encryptionKey;
- pkcs7->encryptionKey = NULL;
- AssertIntEQ(wc_PKCS7_EncodeEncryptedData(pkcs7, encrypted,
- sizeof(encrypted)), BAD_FUNC_ARG);
- pkcs7->encryptionKey = tmpBytePtr;
- tmpWrd32 = pkcs7->encryptionKeySz;
- pkcs7->encryptionKeySz = 0;
- AssertIntEQ(wc_PKCS7_EncodeEncryptedData(pkcs7, encrypted,
- sizeof(encrypted)), BAD_FUNC_ARG);
- pkcs7->encryptionKeySz = tmpWrd32;
-
- printf(resultFmt, passed);
-
- printf(testingFmt, "wc_PKCS7_EncodeEncryptedData()");
-
- AssertIntEQ(wc_PKCS7_DecodeEncryptedData(NULL, encrypted, encryptedSz,
- decoded, sizeof(decoded)), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_DecodeEncryptedData(pkcs7, NULL, encryptedSz,
- decoded, sizeof(decoded)), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_DecodeEncryptedData(pkcs7, encrypted, 0,
- decoded, sizeof(decoded)), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_DecodeEncryptedData(pkcs7, encrypted, encryptedSz,
- NULL, sizeof(decoded)), BAD_FUNC_ARG);
- AssertIntEQ(wc_PKCS7_DecodeEncryptedData(pkcs7, encrypted, encryptedSz,
- decoded, 0), BAD_FUNC_ARG);
- /* Test struct fields */
-
- tmpBytePtr = pkcs7->encryptionKey;
- pkcs7->encryptionKey = NULL;
- AssertIntEQ(wc_PKCS7_DecodeEncryptedData(pkcs7, encrypted, encryptedSz,
- decoded, sizeof(decoded)), BAD_FUNC_ARG);
- pkcs7->encryptionKey = tmpBytePtr;
- pkcs7->encryptionKeySz = 0;
- AssertIntEQ(wc_PKCS7_DecodeEncryptedData(pkcs7, encrypted, encryptedSz,
- decoded, sizeof(decoded)), BAD_FUNC_ARG);
-
- printf(resultFmt, passed);
- wc_PKCS7_Free(pkcs7);
-#endif
-} /* END test_wc_PKCS7_EncodeEncryptedData() */
-
-/*
- * Testing wc_PKCS7_Degenerate()
- */
-static void test_wc_PKCS7_Degenerate(void)
-{
-#if defined(HAVE_PKCS7) && !defined(NO_FILESYSTEM)
- PKCS7* pkcs7;
- char fName[] = "./certs/test-degenerate.p7b";
- XFILE f;
- byte der[4096];
- word32 derSz;
- int ret;
-
- printf(testingFmt, "wc_PKCS7_Degenerate()");
-
- AssertNotNull(f = XFOPEN(fName, "rb"));
- AssertIntGT((ret = (int)fread(der, 1, sizeof(der), f)), 0);
- derSz = (word32)ret;
- XFCLOSE(f);
-
- /* test degenerate success */
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_Init(pkcs7, HEAP_HINT, INVALID_DEVID), 0);
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
-#ifndef NO_RSA
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, der, derSz), 0);
-#else
- AssertIntNE(wc_PKCS7_VerifySignedData(pkcs7, der, derSz), 0);
-#endif
- wc_PKCS7_Free(pkcs7);
-
- /* test with turning off degenerate cases */
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_Init(pkcs7, HEAP_HINT, INVALID_DEVID), 0);
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
- wc_PKCS7_AllowDegenerate(pkcs7, 0); /* override allowing degenerate case */
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, der, derSz), PKCS7_NO_SIGNER_E);
- wc_PKCS7_Free(pkcs7);
-
- printf(resultFmt, passed);
-#endif
-} /* END test_wc_PKCS7_Degenerate() */
-
-#if defined(HAVE_PKCS7) && !defined(NO_FILESYSTEM) && \
- defined(ASN_BER_TO_DER) && !defined(NO_DES3)
-static byte berContent[] = {
- 0x30, 0x80, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86,
- 0xF7, 0x0D, 0x01, 0x07, 0x03, 0xA0, 0x80, 0x30,
- 0x80, 0x02, 0x01, 0x00, 0x31, 0x82, 0x01, 0x48,
- 0x30, 0x82, 0x01, 0x44, 0x02, 0x01, 0x00, 0x30,
- 0x81, 0xAC, 0x30, 0x81, 0x9E, 0x31, 0x0B, 0x30,
- 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
- 0x55, 0x53, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03,
- 0x55, 0x04, 0x08, 0x0C, 0x07, 0x4D, 0x6F, 0x6E,
- 0x74, 0x61, 0x6E, 0x61, 0x31, 0x10, 0x30, 0x0E,
- 0x06, 0x03, 0x55, 0x04, 0x07, 0x0C, 0x07, 0x42,
- 0x6F, 0x7A, 0x65, 0x6D, 0x61, 0x6E, 0x31, 0x15,
- 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x0C,
- 0x0C, 0x77, 0x6F, 0x6C, 0x66, 0x53, 0x53, 0x4C,
- 0x5F, 0x31, 0x30, 0x32, 0x34, 0x31, 0x19, 0x30,
- 0x17, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x0C, 0x10,
- 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D,
- 0x69, 0x6E, 0x67, 0x2D, 0x31, 0x30, 0x32, 0x34,
- 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04,
- 0x03, 0x0C, 0x0F, 0x77, 0x77, 0x77, 0x2E, 0x77,
- 0x6F, 0x6C, 0x66, 0x73, 0x73, 0x6C, 0x2E, 0x63,
- 0x6F, 0x6D, 0x31, 0x1F, 0x30, 0x1D, 0x06, 0x09,
- 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09,
- 0x01, 0x16, 0x10, 0x69, 0x6E, 0x66, 0x6F, 0x40,
- 0x77, 0x6F, 0x6C, 0x66, 0x73, 0x73, 0x6C, 0x2E,
- 0x63, 0x6F, 0x6D, 0x02, 0x09, 0x00, 0xBB, 0xD3,
- 0x10, 0x03, 0xE6, 0x9D, 0x28, 0x03, 0x30, 0x0D,
- 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D,
- 0x01, 0x01, 0x01, 0x05, 0x00, 0x04, 0x81, 0x80,
- 0x2F, 0xF9, 0x77, 0x4F, 0x04, 0x5C, 0x16, 0x62,
- 0xF0, 0x77, 0x8D, 0x95, 0x4C, 0xB1, 0x44, 0x9A,
- 0x8C, 0x3C, 0x8C, 0xE4, 0xD1, 0xC1, 0x14, 0x72,
- 0xD0, 0x4A, 0x1A, 0x94, 0x27, 0x0F, 0xAA, 0xE8,
- 0xD0, 0xA2, 0xE7, 0xED, 0x4C, 0x7F, 0x0F, 0xC7,
- 0x1B, 0xFB, 0x81, 0x0E, 0x76, 0x8F, 0xDD, 0x32,
- 0x11, 0x68, 0xA0, 0x13, 0xD2, 0x8D, 0x95, 0xEF,
- 0x80, 0x53, 0x81, 0x0E, 0x1F, 0xC8, 0xD6, 0x76,
- 0x5C, 0x31, 0xD3, 0x77, 0x33, 0x29, 0xA6, 0x1A,
- 0xD3, 0xC6, 0x14, 0x36, 0xCA, 0x8E, 0x7D, 0x72,
- 0xA0, 0x29, 0x4C, 0xC7, 0x3A, 0xAF, 0xFE, 0xF7,
- 0xFC, 0xD7, 0xE2, 0x8F, 0x6A, 0x20, 0x46, 0x09,
- 0x40, 0x22, 0x2D, 0x79, 0x38, 0x11, 0xB1, 0x4A,
- 0xE3, 0x48, 0xE8, 0x10, 0x37, 0xA0, 0x22, 0xF7,
- 0xB4, 0x79, 0xD1, 0xA9, 0x3D, 0xC2, 0xAB, 0x37,
- 0xAE, 0x82, 0x68, 0x1A, 0x16, 0xEF, 0x33, 0x0C,
- 0x30, 0x80, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86,
- 0xF7, 0x0D, 0x01, 0x07, 0x01, 0x30, 0x14, 0x06,
- 0x08, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x03,
- 0x07, 0x04, 0x08, 0xAD, 0xD0, 0x38, 0x9B, 0x16,
- 0x4B, 0x7F, 0x99, 0xA0, 0x80, 0x04, 0x82, 0x03,
- 0xE8, 0x6D, 0x48, 0xFB, 0x8A, 0xBD, 0xED, 0x6C,
- 0xCD, 0xC6, 0x48, 0xFD, 0xB7, 0xB0, 0x7C, 0x86,
- 0x2C, 0x8D, 0xF0, 0x23, 0x12, 0xD8, 0xA3, 0x2A,
- 0x21, 0x6F, 0x8B, 0x75, 0xBB, 0x47, 0x7F, 0xC9,
- 0xBA, 0xBA, 0xFF, 0x91, 0x09, 0x01, 0x7A, 0x5C,
- 0x96, 0x02, 0xB8, 0x8E, 0xF8, 0x67, 0x7E, 0x8F,
- 0xF9, 0x51, 0x0E, 0xFF, 0x8E, 0xE2, 0x61, 0xC0,
- 0xDF, 0xFA, 0xE2, 0x4C, 0x50, 0x90, 0xAE, 0xA1,
- 0x15, 0x38, 0x3D, 0xBE, 0x88, 0xD7, 0x57, 0xC0,
- 0x11, 0x44, 0xA2, 0x61, 0x05, 0x49, 0x6A, 0x94,
- 0x04, 0x10, 0xD9, 0xC2, 0x2D, 0x15, 0x20, 0x0D,
- 0xBD, 0xA2, 0xEF, 0xE4, 0x68, 0xFA, 0x39, 0x75,
- 0x7E, 0xD8, 0x64, 0x44, 0xCB, 0xE0, 0x00, 0x6D,
- 0x57, 0x4E, 0x8A, 0x17, 0xA9, 0x83, 0x6C, 0x7F,
- 0xFE, 0x01, 0xEE, 0xDE, 0x99, 0x3A, 0xB2, 0xFF,
- 0xD3, 0x72, 0x78, 0xBA, 0xF1, 0x23, 0x54, 0x48,
- 0x02, 0xD8, 0x38, 0xA9, 0x54, 0xE5, 0x4A, 0x81,
- 0xB9, 0xC0, 0x67, 0xB2, 0x7D, 0x3C, 0x6F, 0xCE,
- 0xA4, 0xDD, 0x34, 0x5F, 0x60, 0xB1, 0xA3, 0x7A,
- 0xE4, 0x43, 0xF2, 0x89, 0x64, 0x35, 0x09, 0x32,
- 0x51, 0xFB, 0x5C, 0x67, 0x0C, 0x3B, 0xFC, 0x36,
- 0x6B, 0x37, 0x43, 0x6C, 0x03, 0xCD, 0x44, 0xC7,
- 0x2B, 0x62, 0xD6, 0xD1, 0xF4, 0x07, 0x7B, 0x19,
- 0x91, 0xF0, 0xD7, 0xF5, 0x54, 0xBC, 0x0F, 0x42,
- 0x6B, 0x69, 0xF7, 0xA3, 0xC8, 0xEE, 0xB9, 0x7A,
- 0x9E, 0x3D, 0xDF, 0x53, 0x47, 0xF7, 0x50, 0x67,
- 0x00, 0xCF, 0x2B, 0x3B, 0xE9, 0x85, 0xEE, 0xBD,
- 0x4C, 0x64, 0x66, 0x0B, 0x77, 0x80, 0x9D, 0xEF,
- 0x11, 0x32, 0x77, 0xA8, 0xA4, 0x5F, 0xEE, 0x2D,
- 0xE0, 0x43, 0x87, 0x76, 0x87, 0x53, 0x4E, 0xD7,
- 0x1A, 0x04, 0x7B, 0xE1, 0xD1, 0xE1, 0xF5, 0x87,
- 0x51, 0x13, 0xE0, 0xC2, 0xAA, 0xA3, 0x4B, 0xAA,
- 0x9E, 0xB4, 0xA6, 0x1D, 0x4E, 0x28, 0x57, 0x0B,
- 0x80, 0x90, 0x81, 0x4E, 0x04, 0xF5, 0x30, 0x8D,
- 0x51, 0xCE, 0x57, 0x2F, 0x88, 0xC5, 0x70, 0xC4,
- 0x06, 0x8F, 0xDD, 0x37, 0xC1, 0x34, 0x1E, 0x0E,
- 0x15, 0x32, 0x23, 0x92, 0xAB, 0x40, 0xEA, 0xF7,
- 0x43, 0xE2, 0x1D, 0xE2, 0x4B, 0xC9, 0x91, 0xF4,
- 0x63, 0x21, 0x34, 0xDB, 0xE9, 0x86, 0x83, 0x1A,
- 0xD2, 0x52, 0xEF, 0x7A, 0xA2, 0xEE, 0xA4, 0x11,
- 0x56, 0xD3, 0x6C, 0xF5, 0x6D, 0xE4, 0xA5, 0x2D,
- 0x99, 0x02, 0x10, 0xDF, 0x29, 0xC5, 0xE3, 0x0B,
- 0xC4, 0xA1, 0xEE, 0x5F, 0x4A, 0x10, 0xEE, 0x85,
- 0x73, 0x2A, 0x92, 0x15, 0x2C, 0xC8, 0xF4, 0x8C,
- 0xD7, 0x3D, 0xBC, 0xAD, 0x18, 0xE0, 0x59, 0xD3,
- 0xEE, 0x75, 0x90, 0x1C, 0xCC, 0x76, 0xC6, 0x64,
- 0x17, 0xD2, 0xD0, 0x91, 0xA6, 0xD0, 0xC1, 0x4A,
- 0xAA, 0x58, 0x22, 0xEC, 0x45, 0x98, 0xF2, 0xCC,
- 0x4C, 0xE4, 0xBF, 0xED, 0xF6, 0x44, 0x72, 0x36,
- 0x65, 0x3F, 0xE3, 0xB5, 0x8B, 0x3E, 0x54, 0x9C,
- 0x82, 0x86, 0x5E, 0xB0, 0xF2, 0x12, 0xE5, 0x69,
- 0xFA, 0x46, 0xA2, 0x54, 0xFC, 0xF5, 0x4B, 0xE0,
- 0x24, 0x3B, 0x99, 0x04, 0x1A, 0x7A, 0xF7, 0xD1,
- 0xFF, 0x68, 0x97, 0xB2, 0x85, 0x82, 0x95, 0x27,
- 0x2B, 0xF4, 0xE7, 0x1A, 0x74, 0x19, 0xEC, 0x8C,
- 0x4E, 0xA7, 0x0F, 0xAD, 0x4F, 0x5A, 0x02, 0x80,
- 0xC1, 0x6A, 0x9E, 0x54, 0xE4, 0x8E, 0xA3, 0x41,
- 0x3F, 0x6F, 0x9C, 0x82, 0x9F, 0x83, 0xB0, 0x44,
- 0x01, 0x5F, 0x10, 0x9D, 0xD3, 0xB6, 0x33, 0x5B,
- 0xAF, 0xAC, 0x6B, 0x57, 0x2A, 0x01, 0xED, 0x0E,
- 0x17, 0xB9, 0x80, 0x76, 0x12, 0x1C, 0x51, 0x56,
- 0xDD, 0x6D, 0x94, 0xAB, 0xD2, 0xE5, 0x15, 0x2D,
- 0x3C, 0xC5, 0xE8, 0x62, 0x05, 0x8B, 0x40, 0xB1,
- 0xC2, 0x83, 0xCA, 0xAC, 0x4B, 0x8B, 0x39, 0xF7,
- 0xA0, 0x08, 0x43, 0x5C, 0xF7, 0xE8, 0xED, 0x40,
- 0x72, 0x73, 0xE3, 0x6B, 0x18, 0x67, 0xA0, 0xB6,
- 0x0F, 0xED, 0x8F, 0x9A, 0xE4, 0x27, 0x62, 0x23,
- 0xAA, 0x6D, 0x6C, 0x31, 0xC9, 0x9D, 0x6B, 0xE0,
- 0xBF, 0x9D, 0x7D, 0x2E, 0x76, 0x71, 0x06, 0x39,
- 0xAC, 0x96, 0x1C, 0xAF, 0x30, 0xF2, 0x62, 0x9C,
- 0x84, 0x3F, 0x43, 0x5E, 0x19, 0xA8, 0xE5, 0x3C,
- 0x9D, 0x43, 0x3C, 0x43, 0x41, 0xE8, 0x82, 0xE7,
- 0x5B, 0xF3, 0xE2, 0x15, 0xE3, 0x52, 0x20, 0xFD,
- 0x0D, 0xB2, 0x4D, 0x48, 0xAD, 0x53, 0x7E, 0x0C,
- 0xF0, 0xB9, 0xBE, 0xC9, 0x58, 0x4B, 0xC8, 0xA8,
- 0xA3, 0x36, 0xF1, 0x2C, 0xD2, 0xE1, 0xC8, 0xC4,
- 0x3C, 0x48, 0x70, 0xC2, 0x6D, 0x6C, 0x3D, 0x99,
- 0xAC, 0x43, 0x19, 0x69, 0xCA, 0x67, 0x1A, 0xC9,
- 0xE1, 0x47, 0xFA, 0x0A, 0xE6, 0x5B, 0x6F, 0x61,
- 0xD0, 0x03, 0xE4, 0x03, 0x4B, 0xFD, 0xE2, 0xA5,
- 0x8D, 0x83, 0x01, 0x7E, 0xC0, 0x7B, 0x2E, 0x0B,
- 0x29, 0xDD, 0xD6, 0xDC, 0x71, 0x46, 0xBD, 0x9A,
- 0x40, 0x46, 0x1E, 0x0A, 0xB1, 0x00, 0xE7, 0x71,
- 0x29, 0x77, 0xFC, 0x9A, 0x76, 0x8A, 0x5F, 0x66,
- 0x9B, 0x63, 0x91, 0x12, 0x78, 0xBF, 0x67, 0xAD,
- 0xA1, 0x72, 0x9E, 0xC5, 0x3E, 0xE5, 0xCB, 0xAF,
- 0xD6, 0x5A, 0x0D, 0xB6, 0x9B, 0xA3, 0x78, 0xE8,
- 0xB0, 0x8F, 0x69, 0xED, 0xC1, 0x73, 0xD5, 0xE5,
- 0x1C, 0x18, 0xA0, 0x58, 0x4C, 0x49, 0xBD, 0x91,
- 0xCE, 0x15, 0x0D, 0xAA, 0x5A, 0x07, 0xEA, 0x1C,
- 0xA7, 0x4B, 0x11, 0x31, 0x80, 0xAF, 0xA1, 0x0A,
- 0xED, 0x6C, 0x70, 0xE4, 0xDB, 0x75, 0x86, 0xAE,
- 0xBF, 0x4A, 0x05, 0x72, 0xDE, 0x84, 0x8C, 0x7B,
- 0x59, 0x81, 0x58, 0xE0, 0xC0, 0x15, 0xB5, 0xF3,
- 0xD5, 0x73, 0x78, 0x83, 0x53, 0xDA, 0x92, 0xC1,
- 0xE6, 0x71, 0x74, 0xC7, 0x7E, 0xAA, 0x36, 0x06,
- 0xF0, 0xDF, 0xBA, 0xFB, 0xEF, 0x54, 0xE8, 0x11,
- 0xB2, 0x33, 0xA3, 0x0B, 0x9E, 0x0C, 0x59, 0x75,
- 0x13, 0xFA, 0x7F, 0x88, 0xB9, 0x86, 0xBD, 0x1A,
- 0xDB, 0x52, 0x12, 0xFB, 0x6D, 0x1A, 0xCB, 0x49,
- 0x94, 0x94, 0xC4, 0xA9, 0x99, 0xC0, 0xA4, 0xB6,
- 0x60, 0x36, 0x09, 0x94, 0x2A, 0xD5, 0xC4, 0x26,
- 0xF4, 0xA3, 0x6A, 0x0E, 0x57, 0x8B, 0x7C, 0xA4,
- 0x1D, 0x75, 0xE8, 0x2A, 0xF3, 0xC4, 0x3C, 0x7D,
- 0x45, 0x6D, 0xD8, 0x24, 0xD1, 0x3B, 0xF7, 0xCF,
- 0xE4, 0x45, 0x2A, 0x55, 0xE5, 0xA9, 0x1F, 0x1C,
- 0x8F, 0x55, 0x8D, 0xC1, 0xF7, 0x74, 0xCC, 0x26,
- 0xC7, 0xBA, 0x2E, 0x5C, 0xC1, 0x71, 0x0A, 0xAA,
- 0xD9, 0x6D, 0x76, 0xA7, 0xF9, 0xD1, 0x18, 0xCB,
- 0x5A, 0x52, 0x98, 0xA8, 0x0D, 0x3F, 0x06, 0xFC,
- 0x49, 0x11, 0x21, 0x5F, 0x86, 0x19, 0x33, 0x81,
- 0xB5, 0x7A, 0xDA, 0xA1, 0x47, 0xBF, 0x7C, 0xD7,
- 0x05, 0x96, 0xC7, 0xF5, 0xC1, 0x61, 0xE5, 0x18,
- 0xA5, 0x38, 0x68, 0xED, 0xB4, 0x17, 0x62, 0x0D,
- 0x01, 0x5E, 0xC3, 0x04, 0xA6, 0xBA, 0xB1, 0x01,
- 0x60, 0x5C, 0xC1, 0x3A, 0x34, 0x97, 0xD6, 0xDB,
- 0x67, 0x73, 0x4D, 0x33, 0x96, 0x01, 0x67, 0x44,
- 0xEA, 0x47, 0x5E, 0x44, 0xB5, 0xE5, 0xD1, 0x6C,
- 0x20, 0xA9, 0x6D, 0x4D, 0xBC, 0x02, 0xF0, 0x70,
- 0xE4, 0xDD, 0xE9, 0xD5, 0x5C, 0x28, 0x29, 0x0B,
- 0xB4, 0x60, 0x2A, 0xF1, 0xF7, 0x1A, 0xF0, 0x36,
- 0xAE, 0x51, 0x3A, 0xAE, 0x6E, 0x48, 0x7D, 0xC7,
- 0x5C, 0xF3, 0xDC, 0xF6, 0xED, 0x27, 0x4E, 0x8E,
- 0x48, 0x18, 0x3E, 0x08, 0xF1, 0xD8, 0x3D, 0x0D,
- 0xE7, 0x2F, 0x65, 0x8A, 0x6F, 0xE2, 0x1E, 0x06,
- 0xC1, 0x04, 0x58, 0x7B, 0x4A, 0x75, 0x60, 0x92,
- 0x13, 0xC6, 0x40, 0x2D, 0x3A, 0x8A, 0xD1, 0x03,
- 0x05, 0x1F, 0x28, 0x66, 0xC2, 0x57, 0x2A, 0x4C,
- 0xE1, 0xA3, 0xCB, 0xA1, 0x95, 0x30, 0x10, 0xED,
- 0xDF, 0xAE, 0x70, 0x49, 0x4E, 0xF6, 0xB4, 0x5A,
- 0xB6, 0x22, 0x56, 0x37, 0x05, 0xE7, 0x3E, 0xB2,
- 0xE3, 0x96, 0x62, 0xEC, 0x09, 0x53, 0xC0, 0x50,
- 0x3D, 0xA7, 0xBC, 0x9B, 0x39, 0x02, 0x26, 0x16,
- 0xB5, 0x34, 0x17, 0xD4, 0xCA, 0xFE, 0x1D, 0xE4,
- 0x5A, 0xDA, 0x4C, 0xC2, 0xCA, 0x8E, 0x79, 0xBF,
- 0xD8, 0x4C, 0xBB, 0xFA, 0x30, 0x7B, 0xA9, 0x3E,
- 0x52, 0x19, 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00
-};
-#endif /* HAVE_PKCS7 && !NO_FILESYSTEM && ASN_BER_TO_DER && !NO_DES3 */
-
-/*
- * Testing wc_PKCS7_BER()
- */
-static void test_wc_PKCS7_BER(void)
-{
-#if defined(HAVE_PKCS7) && !defined(NO_FILESYSTEM) && \
- defined(ASN_BER_TO_DER)
- PKCS7* pkcs7;
- char fName[] = "./certs/test-ber-exp02-05-2022.p7b";
- XFILE f;
- byte der[4096];
-#ifndef NO_DES3
- byte decoded[2048];
-#endif
- word32 derSz;
- int ret;
-
- printf(testingFmt, "wc_PKCS7_BER()");
-
- AssertNotNull(f = XFOPEN(fName, "rb"));
- AssertIntGT((ret = (int)fread(der, 1, sizeof(der), f)), 0);
- derSz = (word32)ret;
- XFCLOSE(f);
-
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- AssertIntEQ(wc_PKCS7_Init(pkcs7, HEAP_HINT, INVALID_DEVID), 0);
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
-#ifndef NO_RSA
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, der, derSz), 0);
-#else
- AssertIntNE(wc_PKCS7_VerifySignedData(pkcs7, der, derSz), 0);
-#endif
- wc_PKCS7_Free(pkcs7);
-
-#ifndef NO_DES3
- /* decode BER content */
- AssertNotNull(f = XFOPEN("./certs/1024/client-cert.der", "rb"));
- AssertIntGT((ret = (int)fread(der, 1, sizeof(der), f)), 0);
- derSz = (word32)ret;
- XFCLOSE(f);
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
-#ifndef NO_RSA
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, der, derSz), 0);
-#else
- AssertIntNE(wc_PKCS7_InitWithCert(pkcs7, der, derSz), 0);
-#endif
-
- AssertNotNull(f = XFOPEN("./certs/1024/client-key.der", "rb"));
- AssertIntGT((ret = (int)fread(der, 1, sizeof(der), f)), 0);
- derSz = (word32)ret;
- XFCLOSE(f);
- pkcs7->privateKey = der;
- pkcs7->privateKeySz = derSz;
-#ifndef NO_RSA
- AssertIntGT(wc_PKCS7_DecodeEnvelopedData(pkcs7, berContent,
- sizeof(berContent), decoded, sizeof(decoded)), 0);
-#else
- AssertIntEQ(wc_PKCS7_DecodeEnvelopedData(pkcs7, berContent,
- sizeof(berContent), decoded, sizeof(decoded)), NOT_COMPILED_IN);
-#endif
- wc_PKCS7_Free(pkcs7);
-#endif /* !NO_DES3 */
-
- printf(resultFmt, passed);
-#endif
-} /* END test_wc_PKCS7_BER() */
-
-static void test_PKCS7_signed_enveloped(void)
-{
-#if defined(HAVE_PKCS7) && !defined(NO_FILESYSTEM) && !defined(NO_RSA) \
- && !defined(NO_AES)
- XFILE f;
- PKCS7* pkcs7;
- PKCS7* inner;
- void* pt;
- WC_RNG rng;
- unsigned char key[FOURK_BUF/2];
- unsigned char cert[FOURK_BUF/2];
- unsigned char env[FOURK_BUF];
- int envSz = FOURK_BUF;
- int keySz;
- int certSz;
-
- unsigned char sig[FOURK_BUF * 2];
- int sigSz = FOURK_BUF * 2;
- unsigned char decoded[FOURK_BUF];
- int decodedSz = FOURK_BUF;
-
- printf(testingFmt, "PKCS7_signed_enveloped");
-
- /* load cert */
- AssertNotNull(f = XFOPEN(cliCertDerFile, "rb"));
- AssertIntGT((certSz = (int)XFREAD(cert, 1, sizeof(cert), f)), 0);
- XFCLOSE(f);
-
- /* load key */
- AssertNotNull(f = XFOPEN(cliKeyFile, "rb"));
- AssertIntGT((keySz = (int)XFREAD(key, 1, sizeof(key), f)), 0);
- XFCLOSE(f);
- keySz = wolfSSL_KeyPemToDer(key, keySz, key, keySz, NULL);
-
- /* sign cert for envelope */
- AssertNotNull(pkcs7 = wc_PKCS7_New(NULL, 0));
- AssertIntEQ(wc_InitRng(&rng), 0);
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, cert, certSz), 0);
- pkcs7->content = cert;
- pkcs7->contentSz = certSz;
- pkcs7->contentOID = DATA;
- pkcs7->privateKey = key;
- pkcs7->privateKeySz = keySz;
- pkcs7->encryptOID = RSAk;
- pkcs7->hashOID = SHA256h;
- pkcs7->rng = &rng;
- AssertIntGT((sigSz = wc_PKCS7_EncodeSignedData(pkcs7, sig, sigSz)), 0);
- wc_PKCS7_Free(pkcs7);
- wc_FreeRng(&rng);
-
- /* create envelope */
- AssertNotNull(pkcs7 = wc_PKCS7_New(NULL, 0));
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, cert, certSz), 0);
- pkcs7->content = sig;
- pkcs7->contentSz = sigSz;
- pkcs7->contentOID = DATA;
- pkcs7->encryptOID = AES256CBCb;
- pkcs7->privateKey = key;
- pkcs7->privateKeySz = keySz;
- AssertIntGT((envSz = wc_PKCS7_EncodeEnvelopedData(pkcs7, env, envSz)), 0);
- wc_PKCS7_Free(pkcs7);
-
- /* create bad signed enveloped data */
- sigSz = FOURK_BUF * 2;
- AssertNotNull(pkcs7 = wc_PKCS7_New(NULL, 0));
- AssertIntEQ(wc_InitRng(&rng), 0);
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, cert, certSz), 0);
- pkcs7->content = env;
- pkcs7->contentSz = envSz;
- pkcs7->contentOID = DATA;
- pkcs7->privateKey = key;
- pkcs7->privateKeySz = keySz;
- pkcs7->encryptOID = RSAk;
- pkcs7->hashOID = SHA256h;
- pkcs7->rng = &rng;
-
- /* Set no certs in bundle for this test. Hang on to the pointer though to
- * free it later. */
- pt = (void*)pkcs7->certList;
- pkcs7->certList = NULL; /* no certs in bundle */
- AssertIntGT((sigSz = wc_PKCS7_EncodeSignedData(pkcs7, sig, sigSz)), 0);
- pkcs7->certList = (Pkcs7Cert*)pt; /* restore pointer for PKCS7 free call */
- wc_PKCS7_Free(pkcs7);
-
- /* check verify fails */
- AssertNotNull(pkcs7 = wc_PKCS7_New(NULL, 0));
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, sig, sigSz),
- PKCS7_SIGNEEDS_CHECK);
-
- /* try verifying the signature manually */
- {
- RsaKey rKey;
- word32 idx = 0;
- byte digest[MAX_SEQ_SZ + MAX_ALGO_SZ + MAX_OCTET_STR_SZ +
- WC_MAX_DIGEST_SIZE];
- int digestSz;
-
- AssertIntEQ(wc_InitRsaKey(&rKey, HEAP_HINT), 0);
- AssertIntEQ(wc_RsaPrivateKeyDecode(key, &idx, &rKey, keySz), 0);
- digestSz = wc_RsaSSL_Verify(pkcs7->signature, pkcs7->signatureSz,
- digest, sizeof(digest), &rKey);
- AssertIntGT(digestSz, 0);
- AssertIntEQ(digestSz, pkcs7->pkcs7DigestSz);
- AssertIntEQ(XMEMCMP(digest, pkcs7->pkcs7Digest, digestSz), 0);
- AssertIntEQ(wc_FreeRsaKey(&rKey), 0);
- /* verify was success */
- }
-
- wc_PKCS7_Free(pkcs7);
-
- /* initializing the PKCS7 struct with the signing certificate should pass */
- AssertNotNull(pkcs7 = wc_PKCS7_New(NULL, 0));
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, cert, certSz), 0);
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, sig, sigSz), 0);
- wc_PKCS7_Free(pkcs7);
-
- /* create valid degenerate bundle */
- sigSz = FOURK_BUF * 2;
- AssertNotNull(pkcs7 = wc_PKCS7_New(NULL, 0));
- pkcs7->content = env;
- pkcs7->contentSz = envSz;
- pkcs7->contentOID = DATA;
- pkcs7->privateKey = key;
- pkcs7->privateKeySz = keySz;
- pkcs7->encryptOID = RSAk;
- pkcs7->hashOID = SHA256h;
- pkcs7->rng = &rng;
- AssertIntEQ(wc_PKCS7_SetSignerIdentifierType(pkcs7, DEGENERATE_SID), 0);
- AssertIntGT((sigSz = wc_PKCS7_EncodeSignedData(pkcs7, sig, sigSz)), 0);
- wc_PKCS7_Free(pkcs7);
- wc_FreeRng(&rng);
-
- /* check verify */
- AssertNotNull(pkcs7 = wc_PKCS7_New(NULL, 0));
- AssertIntEQ(wc_PKCS7_Init(pkcs7, HEAP_HINT, devId), 0);
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, sig, sigSz), 0);
- AssertNotNull(pkcs7->content);
-
- /* check decode */
- AssertNotNull(inner = wc_PKCS7_New(NULL, 0));
- AssertIntEQ(wc_PKCS7_InitWithCert(inner, cert, certSz), 0);
- inner->privateKey = key;
- inner->privateKeySz = keySz;
- AssertIntGT((decodedSz = wc_PKCS7_DecodeEnvelopedData(inner, pkcs7->content,
- pkcs7->contentSz, decoded, decodedSz)), 0);
- wc_PKCS7_Free(inner);
- wc_PKCS7_Free(pkcs7);
-
- /* check cert set */
- AssertNotNull(pkcs7 = wc_PKCS7_New(NULL, 0));
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
- AssertIntEQ(wc_PKCS7_VerifySignedData(pkcs7, decoded, decodedSz), 0);
- AssertNotNull(pkcs7->singleCert);
- AssertIntNE(pkcs7->singleCertSz, 0);
- wc_PKCS7_Free(pkcs7);
-
- printf(resultFmt, passed);
-
-#endif
-}
-
-static void test_wc_i2d_PKCS12(void)
-{
-#if !defined(NO_ASN) && !defined(NO_PWDBASED) && defined(HAVE_PKCS12) \
- && !defined(NO_FILESYSTEM) && !defined(NO_RSA) \
- && !defined(NO_AES) && !defined(NO_DES3) && !defined(NO_SHA)
- WC_PKCS12* pkcs12 = NULL;
- unsigned char der[FOURK_BUF * 2];
- unsigned char* pt;
- int derSz;
- unsigned char out[FOURK_BUF * 2];
- int outSz = FOURK_BUF * 2;
-
- const char p12_f[] = "./certs/test-servercert.p12";
- XFILE f;
-
- printf(testingFmt, "wc_i2d_PKCS12");
-
- f = XFOPEN(p12_f, "rb");
- AssertNotNull(f);
- derSz = (int)XFREAD(der, 1, sizeof(der), f);
- AssertIntGT(derSz, 0);
- XFCLOSE(f);
-
- AssertNotNull(pkcs12 = wc_PKCS12_new());
- AssertIntEQ(wc_d2i_PKCS12(der, derSz, pkcs12), 0);
- AssertIntEQ(wc_i2d_PKCS12(pkcs12, NULL, &outSz), LENGTH_ONLY_E);
- AssertIntEQ(outSz, derSz);
-
- outSz = derSz - 1;
- pt = out;
- AssertIntLE(wc_i2d_PKCS12(pkcs12, &pt, &outSz), 0);
-
- outSz = derSz;
- AssertIntEQ(wc_i2d_PKCS12(pkcs12, &pt, &outSz), derSz);
- AssertIntEQ((pt == out), 0);
-
- pt = NULL;
- AssertIntEQ(wc_i2d_PKCS12(pkcs12, &pt, NULL), derSz);
- XFREE(pt, NULL, DYNAMIC_TYPE_PKCS);
- wc_PKCS12_free(pkcs12);
-
- printf(resultFmt, passed);
-
-#endif
-}
-
-
-/* Testing wc_SignatureGetSize() for signature type ECC */
-static int test_wc_SignatureGetSize_ecc(void)
-{
- int ret = 0;
- #ifndef NO_SIG_WRAPPER
- #if defined(HAVE_ECC) && !defined(NO_ECC256)
- enum wc_SignatureType sig_type;
- word32 key_len;
-
- /* Initialize ECC Key */
- ecc_key ecc;
- const char* qx =
- "fa2737fb93488d19caef11ae7faf6b7f4bcd67b286e3fc54e8a65c2b74aeccb0";
- const char* qy =
- "d4ccd6dae698208aa8c3a6f39e45510d03be09b2f124bfc067856c324f9b4d09";
- const char* d =
- "be34baa8d040a3b991f9075b56ba292f755b90e4b6dc10dad36715c33cfdac25";
-
- ret = wc_ecc_init(&ecc);
- if (ret == 0) {
- ret = wc_ecc_import_raw(&ecc, qx, qy, d, "SECP256R1");
- }
- printf(testingFmt, "wc_SigntureGetSize_ecc()");
- if (ret == 0) {
- /* Input for signature type ECC */
- sig_type = WC_SIGNATURE_TYPE_ECC;
- key_len = sizeof(ecc_key);
- ret = wc_SignatureGetSize(sig_type, &ecc, key_len);
-
- /* Test bad args */
- if (ret > 0) {
- sig_type = (enum wc_SignatureType) 100;
- ret = wc_SignatureGetSize(sig_type, &ecc, key_len);
- if (ret == BAD_FUNC_ARG) {
- sig_type = WC_SIGNATURE_TYPE_ECC;
- ret = wc_SignatureGetSize(sig_type, NULL, key_len);
- }
- if (ret >= 0) {
- key_len = (word32) 0;
- ret = wc_SignatureGetSize(sig_type, &ecc, key_len);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = SIG_TYPE_E;
- }
- }
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_ecc_free(&ecc);
- #else
- ret = SIG_TYPE_E;
- #endif
-
- if (ret == SIG_TYPE_E) {
- ret = 0;
- }
- else {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- #endif /* NO_SIG_WRAPPER */
- return ret;
-}/* END test_wc_SignatureGetSize_ecc() */
-
-/* Testing wc_SignatureGetSize() for signature type rsa */
-static int test_wc_SignatureGetSize_rsa(void)
-{
- int ret = 0;
- #ifndef NO_SIG_WRAPPER
- #ifndef NO_RSA
- enum wc_SignatureType sig_type;
- word32 key_len;
- word32 idx = 0;
-
- /* Initialize RSA Key */
- RsaKey rsa_key;
- byte* tmp = NULL;
- size_t bytes;
-
- #ifdef USE_CERT_BUFFERS_1024
- bytes = (size_t)sizeof_client_key_der_1024;
- if (bytes < (size_t)sizeof_client_key_der_1024)
- bytes = (size_t)sizeof_client_cert_der_1024;
- #elif defined(USE_CERT_BUFFERS_2048)
- bytes = (size_t)sizeof_client_key_der_2048;
- if (bytes < (size_t)sizeof_client_cert_der_2048)
- bytes = (size_t)sizeof_client_cert_der_2048;
- #else
- bytes = FOURK_BUF;
- #endif
-
- tmp = (byte*)XMALLOC(bytes, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- if (tmp != NULL) {
- #ifdef USE_CERT_BUFFERS_1024
- XMEMCPY(tmp, client_key_der_1024,
- (size_t)sizeof_client_key_der_1024);
- #elif defined(USE_CERT_BUFFERS_2048)
- XMEMCPY(tmp, client_key_der_2048,
- (size_t)sizeof_client_key_der_2048);
- #elif !defined(NO_FILESYSTEM)
- file = XFOPEN(clientKey, "rb");
- if (file != XBADFILE) {
- bytes = (size_t)XFREAD(tmp, 1, FOURK_BUF, file);
- XFCLOSE(file);
- }
- else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- #else
- ret = WOLFSSL_FATAL_ERROR;
- #endif
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- if (ret == 0) {
- ret = wc_InitRsaKey_ex(&rsa_key, HEAP_HINT, devId);
- }
- if (ret == 0) {
- ret = wc_RsaPrivateKeyDecode(tmp, &idx, &rsa_key, (word32)bytes);
- }
-
- printf(testingFmt, "wc_SigntureGetSize_rsa()");
- if (ret == 0) {
- /* Input for signature type RSA */
- sig_type = WC_SIGNATURE_TYPE_RSA;
- key_len = sizeof(RsaKey);
- ret = wc_SignatureGetSize(sig_type, &rsa_key, key_len);
-
- /* Test bad args */
- if (ret > 0) {
- sig_type = (enum wc_SignatureType) 100;
- ret = wc_SignatureGetSize(sig_type, &rsa_key, key_len);
- if (ret == BAD_FUNC_ARG) {
- sig_type = WC_SIGNATURE_TYPE_RSA;
- ret = wc_SignatureGetSize(sig_type, NULL, key_len);
- }
- #ifndef HAVE_USER_RSA
- if (ret == BAD_FUNC_ARG) {
- #else
- if (ret == 0) {
- #endif
- key_len = (word32)0;
- ret = wc_SignatureGetSize(sig_type, &rsa_key, key_len);
- }
- if (ret == BAD_FUNC_ARG) {
- ret = SIG_TYPE_E;
- }
- }
- } else {
- ret = WOLFSSL_FATAL_ERROR;
- }
- wc_FreeRsaKey(&rsa_key);
- XFREE(tmp, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- #else
- ret = SIG_TYPE_E;
- #endif
-
- if (ret == SIG_TYPE_E) {
- ret = 0;
- }else {
- ret = WOLFSSL_FATAL_ERROR;
- }
-
- printf(resultFmt, ret == 0 ? passed : failed);
- #endif /* NO_SIG_WRAPPER */
- return ret;
-}/* END test_wc_SignatureGetSize_rsa(void) */
-
-/*----------------------------------------------------------------------------*
- | hash.h Tests
- *----------------------------------------------------------------------------*/
-
-static int test_wc_HashInit(void)
-{
- int ret = 0, i; /* 0 indicates tests passed, 1 indicates failure */
-
- wc_HashAlg hash;
-
- /* enum for holding supported algorithms, #ifndef's restrict if disabled */
- enum wc_HashType enumArray[] = {
- #ifndef NO_MD5
- WC_HASH_TYPE_MD5,
- #endif
- #ifndef NO_SHA
- WC_HASH_TYPE_SHA,
- #endif
- #ifndef WOLFSSL_SHA224
- WC_HASH_TYPE_SHA224,
- #endif
- #ifndef NO_SHA256
- WC_HASH_TYPE_SHA256,
- #endif
- #ifndef WOLFSSL_SHA384
- WC_HASH_TYPE_SHA384,
- #endif
- #ifndef WOLFSSL_SHA512
- WC_HASH_TYPE_SHA512,
- #endif
- };
- /* dynamically finds the length */
- int enumlen = (sizeof(enumArray)/sizeof(enum wc_HashType));
-
- /* For loop to test various arguments... */
- for (i = 0; i < enumlen; i++) {
- /* check for bad args */
- if (wc_HashInit(&hash, enumArray[i]) == BAD_FUNC_ARG) {
- ret = 1;
- break;
- }
- wc_HashFree(&hash, enumArray[i]);
-
- /* check for null ptr */
- if (wc_HashInit(NULL, enumArray[i]) != BAD_FUNC_ARG) {
- ret = 1;
- break;
- }
-
- } /* end of for loop */
-
- printf(testingFmt, "wc_HashInit()");
- if (ret==0) { /* all tests have passed */
- printf(resultFmt, passed);
- }
- else { /* a test has failed */
- printf(resultFmt, failed);
- }
- return ret;
-} /* end of test_wc_HashInit */
-
-/*----------------------------------------------------------------------------*
- | Compatibility Tests
- *----------------------------------------------------------------------------*/
-
-static void test_wolfSSL_X509_NAME(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) \
- && !defined(NO_RSA) && defined(WOLFSSL_CERT_GEN)
- X509* x509;
- const unsigned char* c;
- unsigned char buf[4096];
- int bytes;
- XFILE f;
- const X509_NAME* a;
- const X509_NAME* b;
- int sz;
- unsigned char* tmp;
- char file[] = "./certs/ca-cert.der";
-
- printf(testingFmt, "wolfSSL_X509_NAME()");
-
- /* test compile of deprecated function, returns 0 */
- AssertIntEQ(CRYPTO_thread_id(), 0);
-
- AssertNotNull(a = X509_NAME_new());
- X509_NAME_free((X509_NAME*)a);
-
- f = XFOPEN(file, "rb");
- AssertTrue(f != XBADFILE);
- bytes = (int)XFREAD(buf, 1, sizeof(buf), f);
- XFCLOSE(f);
-
- c = buf;
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_buffer(c, bytes,
- SSL_FILETYPE_ASN1));
-
- /* test cmp function */
- AssertNotNull(a = X509_get_issuer_name(x509));
- AssertNotNull(b = X509_get_subject_name(x509));
-
- AssertIntEQ(X509_NAME_cmp(a, b), 0); /* self signed should be 0 */
-
- tmp = buf;
- AssertIntGT((sz = i2d_X509_NAME((X509_NAME*)a, &tmp)), 0);
- if (sz > 0 && tmp == buf) {
- printf("\nERROR - %s line %d failed with:", __FILE__, __LINE__); \
- printf(" Expected pointer to be incremented\n");
- abort();
- }
-
- /* retry but with the function creating a buffer */
- tmp = NULL;
- AssertIntGT((sz = i2d_X509_NAME((X509_NAME*)b, &tmp)), 0);
- XFREE(tmp, NULL, DYNAMIC_TYPE_OPENSSL);
-
-
- AssertNotNull(b = X509_NAME_dup((X509_NAME*)a));
- AssertIntEQ(X509_NAME_cmp(a, b), 0);
- X509_NAME_free((X509_NAME*)b);
-
- X509_free(x509);
-
- printf(resultFmt, passed);
- #endif /* defined(OPENSSL_EXTRA) && !defined(NO_DES3) */
-}
-
-static void test_wolfSSL_X509_INFO(void)
-{
-#if defined(OPENSSL_ALL)
- STACK_OF(X509_INFO) *info_stack;
- X509_INFO *info;
- BIO *cert;
- int i;
-
- printf(testingFmt, "wolfSSL_X509_INFO");
-
- AssertNotNull(cert = BIO_new_file(cliCertFileExt, "r"));
- AssertNotNull(info_stack = PEM_X509_INFO_read_bio(cert, NULL, NULL, NULL));
- for (i = 0; i < sk_X509_INFO_num(info_stack); i++) {
- AssertNotNull(info = sk_X509_INFO_value(info_stack, i));
- AssertNotNull(info->x509);
- AssertNull(info->crl);
- }
- sk_X509_INFO_pop_free(info_stack, X509_INFO_free);
- BIO_free(cert);
-
- AssertNotNull(cert = BIO_new_file(cliCertFileExt, "r"));
- AssertNotNull(info_stack = PEM_X509_INFO_read_bio(cert, NULL, NULL, NULL));
- sk_X509_INFO_free(info_stack);
- BIO_free(cert);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_X509_subject_name_hash(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) \
- && !defined(NO_SHA) && !defined(NO_RSA)
-
- X509* x509;
- X509_NAME* subjectName = NULL;
- unsigned long ret = 0;
-
- printf(testingFmt, "wolfSSL_X509_subject_name_hash()");
-
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_file(cliCertFile,
- SSL_FILETYPE_PEM));
-
- AssertNotNull(subjectName = wolfSSL_X509_get_subject_name(x509));
-
- ret = X509_subject_name_hash(x509);
-
- AssertIntNE(ret, WOLFSSL_FAILURE);
-
- X509_free(x509);
- printf(resultFmt, passed);
-
-#endif
-}
-
-static void test_wolfSSL_DES(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_DES3)
- const_DES_cblock myDes;
- DES_cblock iv;
- DES_key_schedule key;
- word32 i;
- DES_LONG dl;
- unsigned char msg[] = "hello wolfssl";
-
- printf(testingFmt, "wolfSSL_DES()");
-
- DES_check_key(1);
- DES_set_key(&myDes, &key);
-
- /* check, check of odd parity */
- XMEMSET(myDes, 4, sizeof(const_DES_cblock)); myDes[0] = 6; /*set even parity*/
- XMEMSET(key, 5, sizeof(DES_key_schedule));
- AssertIntEQ(DES_set_key_checked(&myDes, &key), -1);
- AssertIntNE(key[0], myDes[0]); /* should not have copied over key */
-
- /* set odd parity for success case */
- DES_set_odd_parity(&myDes);
- AssertIntEQ(DES_check_key_parity(&myDes), 1);
- printf("%02x %02x %02x %02x", myDes[0], myDes[1], myDes[2], myDes[3]);
- AssertIntEQ(DES_set_key_checked(&myDes, &key), 0);
- for (i = 0; i < sizeof(DES_key_schedule); i++) {
- AssertIntEQ(key[i], myDes[i]);
- }
- AssertIntEQ(DES_is_weak_key(&myDes), 0);
-
- /* check weak key */
- XMEMSET(myDes, 1, sizeof(const_DES_cblock));
- XMEMSET(key, 5, sizeof(DES_key_schedule));
- AssertIntEQ(DES_set_key_checked(&myDes, &key), -2);
- AssertIntNE(key[0], myDes[0]); /* should not have copied over key */
-
- /* now do unchecked copy of a weak key over */
- DES_set_key_unchecked(&myDes, &key);
- /* compare arrays, should be the same */
- for (i = 0; i < sizeof(DES_key_schedule); i++) {
- AssertIntEQ(key[i], myDes[i]);
- }
- AssertIntEQ(DES_is_weak_key(&myDes), 1);
-
- /* check DES_key_sched API */
- XMEMSET(key, 1, sizeof(DES_key_schedule));
- AssertIntEQ(DES_key_sched(&myDes, NULL), 0);
- AssertIntEQ(DES_key_sched(NULL, &key), 0);
- AssertIntEQ(DES_key_sched(&myDes, &key), 0);
- /* compare arrays, should be the same */
- for (i = 0; i < sizeof(DES_key_schedule); i++) {
- AssertIntEQ(key[i], myDes[i]);
- }
-
- /* DES_cbc_cksum should return the last 4 of the last 8 bytes after
- * DES_cbc_encrypt on the input */
- XMEMSET(iv, 0, sizeof(DES_cblock));
- XMEMSET(myDes, 5, sizeof(DES_key_schedule));
- AssertIntGT((dl = DES_cbc_cksum(msg, &key, sizeof(msg), &myDes, &iv)), 0);
- AssertIntEQ(dl, 480052723);
-
- printf(resultFmt, passed);
- #endif /* defined(OPENSSL_EXTRA) && !defined(NO_DES3) */
-}
-
-static void test_wc_PemToDer(void)
-{
-#if !defined(NO_CERTS) && defined(WOLFSSL_PEM_TO_DER)
- int ret;
- DerBuffer* pDer = NULL;
- const char* ca_cert = "./certs/server-cert.pem";
- byte* cert_buf = NULL;
- size_t cert_sz = 0;
- int eccKey = 0;
- EncryptedInfo info;
-
- printf(testingFmt, "wc_PemToDer()");
-
- XMEMSET(&info, 0, sizeof(info));
-
- ret = load_file(ca_cert, &cert_buf, &cert_sz);
- if (ret == 0) {
- ret = wc_PemToDer(cert_buf, cert_sz, CERT_TYPE,
- &pDer, NULL, &info, &eccKey);
- AssertIntEQ(ret, 0);
-
- wc_FreeDer(&pDer);
- }
-
- if (cert_buf)
- free(cert_buf);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wc_AllocDer(void)
-{
-#if !defined(NO_CERTS)
- int ret;
- DerBuffer* pDer = NULL;
- word32 testSize = 1024;
-
- printf(testingFmt, "wc_AllocDer()");
-
- ret = wc_AllocDer(&pDer, testSize, CERT_TYPE, HEAP_HINT);
- AssertIntEQ(ret, 0);
- AssertNotNull(pDer);
- wc_FreeDer(&pDer);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wc_CertPemToDer(void)
-{
-#if !defined(NO_CERTS) && defined(WOLFSSL_PEM_TO_DER)
- int ret;
- const char* ca_cert = "./certs/ca-cert.pem";
- byte* cert_buf = NULL;
- size_t cert_sz = 0, cert_dersz = 0;
- byte* cert_der = NULL;
-
- printf(testingFmt, "wc_CertPemToDer()");
-
- ret = load_file(ca_cert, &cert_buf, &cert_sz);
- if (ret == 0) {
- cert_dersz = cert_sz; /* DER will be smaller than PEM */
- cert_der = (byte*)malloc(cert_dersz);
- if (cert_der) {
- ret = wc_CertPemToDer(cert_buf, (int)cert_sz,
- cert_der, (int)cert_dersz, CERT_TYPE);
- AssertIntGE(ret, 0);
- }
- }
-
- if (cert_der)
- free(cert_der);
- if (cert_buf)
- free(cert_buf);
-#endif
-}
-
-static void test_wc_PubKeyPemToDer(void)
-{
-#ifdef WOLFSSL_PEM_TO_DER
-#if defined(WOLFSSL_CERT_EXT) || defined(WOLFSSL_PUB_PEM_TO_DER)
- int ret;
- const char* key = "./certs/ecc-client-keyPub.pem";
- byte* cert_buf = NULL;
- size_t cert_sz = 0, cert_dersz = 0;
- byte* cert_der = NULL;
-
- printf(testingFmt, "wc_PubKeyPemToDer()");
-
-
- ret = wc_PubKeyPemToDer(cert_buf, (int)cert_sz,
- cert_der, (int)cert_dersz);
- AssertIntGE(ret, BAD_FUNC_ARG);
-
- ret = load_file(key, &cert_buf, &cert_sz);
- if (ret == 0) {
- cert_dersz = cert_sz; /* DER will be smaller than PEM */
- cert_der = (byte*)malloc(cert_dersz);
- if (cert_der) {
- ret = wc_PubKeyPemToDer(cert_buf, (int)cert_sz,
- cert_der, (int)cert_dersz);
- AssertIntGE(ret, 0);
- }
- }
-
- if (cert_der)
- free(cert_der);
- if (cert_buf)
- free(cert_buf);
-#endif
-#endif
-}
-
-static void test_wc_PemPubKeyToDer(void)
-{
-#if defined(WOLFSSL_CERT_EXT) || defined(WOLFSSL_PUB_PEM_TO_DER)
- int ret;
- const char* key = "./certs/ecc-client-keyPub.pem";
- size_t cert_dersz = 1024;
- byte* cert_der = (byte*)malloc(cert_dersz);
-
- printf(testingFmt, "wc_PemPubKeyToDer()");
-
- ret = wc_PemPubKeyToDer(NULL, cert_der, (int)cert_dersz);
- AssertIntGE(ret, BAD_FUNC_ARG);
-
- if (cert_der) {
- ret = wc_PemPubKeyToDer(key, cert_der, (int)cert_dersz);
- AssertIntGE(ret, 0);
-
- free(cert_der);
- }
-#endif
-}
-
-
-static void test_wolfSSL_certs(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) && \
- !defined(NO_RSA)
- X509* x509;
- WOLFSSL* ssl;
- WOLFSSL_CTX* ctx;
- STACK_OF(ASN1_OBJECT)* sk;
- ASN1_BIT_STRING* bit_str;
- int crit;
-
- printf(testingFmt, "wolfSSL_certs()");
-
-#ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(SSLv23_server_method()));
-#else
- AssertNotNull(ctx = SSL_CTX_new(SSLv23_client_method()));
-#endif
- AssertTrue(SSL_CTX_use_certificate_file(ctx, svrCertFile, SSL_FILETYPE_PEM));
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, SSL_FILETYPE_PEM));
- #ifndef HAVE_USER_RSA
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, cliKeyFile, SSL_FILETYPE_PEM));
- AssertIntEQ(SSL_CTX_check_private_key(ctx), SSL_FAILURE);
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, SSL_FILETYPE_PEM));
- AssertIntEQ(SSL_CTX_check_private_key(ctx), SSL_SUCCESS);
- #endif
- AssertNotNull(ssl = SSL_new(ctx));
-
- AssertIntEQ(wolfSSL_check_private_key(ssl), WOLFSSL_SUCCESS);
-
- #ifdef HAVE_PK_CALLBACKS
- AssertIntEQ((int)SSL_set_tlsext_debug_arg(ssl, NULL), WOLFSSL_SUCCESS);
- #endif /* HAVE_PK_CALLBACKS */
-
- /* create and use x509 */
- x509 = wolfSSL_X509_load_certificate_file(cliCertFileExt, WOLFSSL_FILETYPE_PEM);
- AssertNotNull(x509);
- AssertIntEQ(SSL_use_certificate(ssl, x509), WOLFSSL_SUCCESS);
-
- #ifndef HAVE_USER_RSA
- /* with loading in a new cert the check on private key should now fail */
- AssertIntNE(wolfSSL_check_private_key(ssl), WOLFSSL_SUCCESS);
- #endif
-
-
- #if defined(USE_CERT_BUFFERS_2048)
- AssertIntEQ(SSL_use_certificate_ASN1(ssl,
- (unsigned char*)server_cert_der_2048,
- sizeof_server_cert_der_2048), WOLFSSL_SUCCESS);
- #endif
-
- #if !defined(NO_SHA) && !defined(NO_SHA256)
- /************* Get Digest of Certificate ******************/
- {
- byte digest[64]; /* max digest size */
- word32 digestSz;
-
- XMEMSET(digest, 0, sizeof(digest));
- AssertIntEQ(X509_digest(x509, wolfSSL_EVP_sha1(), digest, &digestSz),
- WOLFSSL_SUCCESS);
- AssertIntEQ(X509_digest(x509, wolfSSL_EVP_sha256(), digest, &digestSz),
- WOLFSSL_SUCCESS);
-
- AssertIntEQ(X509_digest(NULL, wolfSSL_EVP_sha1(), digest, &digestSz),
- WOLFSSL_FAILURE);
- }
- #endif /* !NO_SHA && !NO_SHA256*/
-
- /* test and checkout X509 extensions */
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509, NID_basic_constraints,
- &crit, NULL);
- AssertNotNull(sk);
- AssertIntEQ(crit, 0);
- sk_ASN1_OBJECT_free(sk);
-
- bit_str = (ASN1_BIT_STRING*)X509_get_ext_d2i(x509, NID_key_usage, &crit, NULL);
- AssertNotNull(bit_str);
- AssertIntEQ(crit, 1);
- AssertIntEQ(bit_str->type, NID_key_usage);
- ASN1_BIT_STRING_free(bit_str);
-
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509, NID_ext_key_usage,
- &crit, NULL);
- /* AssertNotNull(sk); no extension set */
- sk_ASN1_OBJECT_free(sk);
-
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509,
- NID_authority_key_identifier, &crit, NULL);
- AssertNotNull(sk);
- sk_ASN1_OBJECT_free(sk);
-
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509,
- NID_private_key_usage_period, &crit, NULL);
- /* AssertNotNull(sk); NID not yet supported */
- AssertIntEQ(crit, -1);
- sk_ASN1_OBJECT_free(sk);
-
- sk = (STACK_OF(GENERAL_NAME)*)X509_get_ext_d2i(x509, NID_subject_alt_name,
- &crit, NULL);
- /* AssertNotNull(sk); no alt names set */
- sk_GENERAL_NAME_free(sk);
-
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509, NID_issuer_alt_name,
- &crit, NULL);
- /* AssertNotNull(sk); NID not yet supported */
- AssertIntEQ(crit, -1);
- sk_ASN1_OBJECT_free(sk);
-
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509, NID_info_access, &crit,
- NULL);
- /* AssertNotNull(sk); no auth info set */
- sk_ASN1_OBJECT_free(sk);
-
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509, NID_sinfo_access,
- &crit, NULL);
- /* AssertNotNull(sk); NID not yet supported */
- AssertIntEQ(crit, -1);
- sk_ASN1_OBJECT_free(sk);
-
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509, NID_name_constraints,
- &crit, NULL);
- /* AssertNotNull(sk); NID not yet supported */
- AssertIntEQ(crit, -1);
- sk_ASN1_OBJECT_free(sk);
-
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509,
- NID_certificate_policies, &crit, NULL);
- #if !defined(WOLFSSL_SEP) && !defined(WOLFSSL_CERT_EXT)
- AssertNull(sk);
- #else
- /* AssertNotNull(sk); no cert policy set */
- #endif
- sk_ASN1_OBJECT_free(sk);
-
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509, NID_policy_mappings,
- &crit, NULL);
- /* AssertNotNull(sk); NID not yet supported */
- AssertIntEQ(crit, -1);
- sk_ASN1_OBJECT_free(sk);
-
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509, NID_policy_constraints,
- &crit, NULL);
- /* AssertNotNull(sk); NID not yet supported */
- AssertIntEQ(crit, -1);
- sk_ASN1_OBJECT_free(sk);
-
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509, NID_inhibit_any_policy,
- &crit, NULL);
- /* AssertNotNull(sk); NID not yet supported */
- AssertIntEQ(crit, -1);
- sk_ASN1_OBJECT_free(sk);
-
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509, NID_tlsfeature, &crit,
- NULL);
- /* AssertNotNull(sk); NID not yet supported */
- AssertIntEQ(crit, -1);
- sk_ASN1_OBJECT_free(sk);
-
- /* test invalid cases */
- crit = 0;
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509, -1, &crit, NULL);
- AssertNull(sk);
- AssertIntEQ(crit, -1);
- sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(NULL, NID_tlsfeature,
- NULL, NULL);
- AssertNull(sk);
-
- AssertIntEQ(SSL_get_hit(ssl), 0);
- X509_free(x509);
- SSL_free(ssl);
- SSL_CTX_free(ctx);
-
- printf(resultFmt, passed);
-#endif /* OPENSSL_EXTRA && !NO_CERTS */
-}
-
-
-static void test_wolfSSL_ASN1_TIME_print(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_RSA) \
- && (defined(WOLFSSL_MYSQL_COMPATIBLE) || defined(WOLFSSL_NGINX) || \
- defined(WOLFSSL_HAPROXY)) && defined(USE_CERT_BUFFERS_2048)
- BIO* bio;
- X509* x509;
- const unsigned char* der = client_cert_der_2048;
- ASN1_TIME* t;
- unsigned char buf[25];
-
- printf(testingFmt, "wolfSSL_ASN1_TIME_print()");
-
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_buffer(der,
- sizeof_client_cert_der_2048, WOLFSSL_FILETYPE_ASN1));
- AssertIntEQ(ASN1_TIME_print(bio, X509_get_notBefore(x509)), 1);
- AssertIntEQ(BIO_read(bio, buf, sizeof(buf)), 24);
- AssertIntEQ(XMEMCMP(buf, "Apr 13 15:23:09 2018 GMT", sizeof(buf) - 1), 0);
-
- /* create a bad time and test results */
- AssertNotNull(t = X509_get_notAfter(x509));
- AssertIntEQ(ASN1_TIME_check(t), WOLFSSL_SUCCESS);
- t->data[8] = 0;
- t->data[3] = 0;
- AssertIntNE(ASN1_TIME_print(bio, t), 1);
- AssertIntEQ(BIO_read(bio, buf, sizeof(buf)), 14);
- AssertIntEQ(XMEMCMP(buf, "Bad time value", 14), 0);
- AssertIntEQ(ASN1_TIME_check(t), WOLFSSL_FAILURE);
-
- BIO_free(bio);
- X509_free(x509);
-
- printf(resultFmt, passed);
- #endif
-}
-
-static void test_wolfSSL_ASN1_UTCTIME_print(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_ASN_TIME)
- BIO* bio;
- ASN1_UTCTIME* utc = NULL;
- unsigned char buf[25];
- const char* validDate = "190424111501Z"; /* UTC = YYMMDDHHMMSSZ */
- const char* invalidDate = "190424111501X"; /* UTC = YYMMDDHHMMSSZ */
-
- printf(testingFmt, "ASN1_UTCTIME_print()");
-
- /* NULL parameter check */
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- AssertIntEQ(ASN1_UTCTIME_print(bio, utc), 0);
- BIO_free(bio);
-
- /* Valid date */
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- AssertNotNull(utc = (ASN1_UTCTIME*)XMALLOC(sizeof(ASN1_UTCTIME), NULL,
- DYNAMIC_TYPE_ASN1));
- utc->type = ASN_UTC_TIME;
- utc->length = ASN_UTC_TIME_SIZE;
- XMEMCPY(utc->data, (byte*)validDate, ASN_UTC_TIME_SIZE);
- AssertIntEQ(ASN1_UTCTIME_print(bio, utc), 1);
- AssertIntEQ(BIO_read(bio, buf, sizeof(buf)), 24);
- AssertIntEQ(XMEMCMP(buf, "Apr 24 11:15:01 2019 GMT", sizeof(buf)-1), 0);
-
- XMEMSET(buf, 0, sizeof(buf));
- BIO_free(bio);
-
- /* Invalid format */
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- utc->type = ASN_UTC_TIME;
- utc->length = ASN_UTC_TIME_SIZE;
- XMEMCPY(utc->data, (byte*)invalidDate, ASN_UTC_TIME_SIZE);
- AssertIntEQ(ASN1_UTCTIME_print(bio, utc), 0);
- AssertIntEQ(BIO_read(bio, buf, sizeof(buf)), 14);
- AssertIntEQ(XMEMCMP(buf, "Bad time value", 14), 0);
-
- XFREE(utc, NULL, DYNAMIC_TYPE_ASN1);
- BIO_free(bio);
-
- printf(resultFmt, passed);
-#endif /* OPENSSL_EXTRA && !NO_ASN_TIME */
-}
-
-
-static void test_wolfSSL_ASN1_GENERALIZEDTIME_free(void)
-{
- #if defined(OPENSSL_EXTRA)
- WOLFSSL_ASN1_GENERALIZEDTIME* asn1_gtime;
- unsigned char nullstr[32];
-
- XMEMSET(nullstr, 0, 32);
- asn1_gtime = (WOLFSSL_ASN1_GENERALIZEDTIME*)XMALLOC(
- sizeof(WOLFSSL_ASN1_GENERALIZEDTIME), NULL,
- DYNAMIC_TYPE_TMP_BUFFER);
- if (asn1_gtime) {
- XMEMCPY(asn1_gtime->data,"20180504123500Z",ASN_GENERALIZED_TIME_SIZE);
-
- wolfSSL_ASN1_GENERALIZEDTIME_free(asn1_gtime);
- AssertIntEQ(0, XMEMCMP(asn1_gtime->data, nullstr, 32));
-
- XFREE(asn1_gtime, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- }
- #endif /* OPENSSL_EXTRA */
-}
-
-
-static void test_wolfSSL_private_keys(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM)
- WOLFSSL* ssl;
- WOLFSSL_CTX* ctx;
- EVP_PKEY* pkey = NULL;
-
- printf(testingFmt, "wolfSSL_private_keys()");
-
- OpenSSL_add_all_digests();
- OpenSSL_add_all_algorithms();
-
-#ifndef NO_RSA
- #ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
- #else
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_client_method()));
- #endif
- AssertTrue(SSL_CTX_use_certificate_file(ctx, svrCertFile, WOLFSSL_FILETYPE_PEM));
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, WOLFSSL_FILETYPE_PEM));
- AssertNotNull(ssl = SSL_new(ctx));
-
- AssertIntEQ(wolfSSL_check_private_key(ssl), WOLFSSL_SUCCESS);
-
-#ifdef USE_CERT_BUFFERS_2048
- {
- const unsigned char* server_key = (const unsigned char*)server_key_der_2048;
- unsigned char buf[FOURK_BUF];
- word32 bufSz;
-
- AssertIntEQ(SSL_use_RSAPrivateKey_ASN1(ssl,
- (unsigned char*)client_key_der_2048,
- sizeof_client_key_der_2048), WOLFSSL_SUCCESS);
-#ifndef HAVE_USER_RSA
- /* Should mismatch now that a different private key loaded */
- AssertIntNE(wolfSSL_check_private_key(ssl), WOLFSSL_SUCCESS);
-#endif
-
- AssertIntEQ(SSL_use_PrivateKey_ASN1(0, ssl,
- (unsigned char*)server_key,
- sizeof_server_key_der_2048), WOLFSSL_SUCCESS);
- /* After loading back in DER format of original key, should match */
- AssertIntEQ(wolfSSL_check_private_key(ssl), WOLFSSL_SUCCESS);
-
- /* test loading private key to the WOLFSSL_CTX */
- AssertIntEQ(SSL_CTX_use_PrivateKey_ASN1(0, ctx,
- (unsigned char*)client_key_der_2048,
- sizeof_client_key_der_2048), WOLFSSL_SUCCESS);
-#ifndef NO_CHECK_PRIVATE_KEY
-#ifndef HAVE_USER_RSA
- /* Should mismatch now that a different private key loaded */
- AssertIntNE(wolfSSL_CTX_check_private_key(ctx), WOLFSSL_SUCCESS);
-#endif
-
- AssertIntEQ(SSL_CTX_use_PrivateKey_ASN1(0, ctx,
- (unsigned char*)server_key,
- sizeof_server_key_der_2048), WOLFSSL_SUCCESS);
- /* After loading back in DER format of original key, should match */
- AssertIntEQ(wolfSSL_CTX_check_private_key(ctx), WOLFSSL_SUCCESS);
-#endif /* !NO_CHECK_PRIVATE_KEY */
-
- /* pkey not set yet, expecting to fail */
- AssertIntEQ(SSL_use_PrivateKey(ssl, pkey), WOLFSSL_FAILURE);
-
- /* set PKEY and test again */
- AssertNotNull(wolfSSL_d2i_PrivateKey(EVP_PKEY_RSA, &pkey,
- &server_key, (long)sizeof_server_key_der_2048));
- AssertIntEQ(SSL_use_PrivateKey(ssl, pkey), WOLFSSL_SUCCESS);
-
- /* reuse PKEY structure and test
- * this should be checked with a memory management sanity checker */
- AssertFalse(server_key == (const unsigned char*)server_key_der_2048);
- server_key = (const unsigned char*)server_key_der_2048;
- AssertNotNull(wolfSSL_d2i_PrivateKey(EVP_PKEY_RSA, &pkey,
- &server_key, (long)sizeof_server_key_der_2048));
- AssertIntEQ(SSL_use_PrivateKey(ssl, pkey), WOLFSSL_SUCCESS);
-
- /* check striping PKCS8 header with wolfSSL_d2i_PrivateKey */
- bufSz = FOURK_BUF;
- AssertIntGT((bufSz = wc_CreatePKCS8Key(buf, &bufSz,
- (byte*)server_key_der_2048, sizeof_server_key_der_2048,
- RSAk, NULL, 0)), 0);
- server_key = (const unsigned char*)buf;
- AssertNotNull(wolfSSL_d2i_PrivateKey(EVP_PKEY_RSA, &pkey, &server_key,
- (long)bufSz));
- }
-#endif
-
-
- EVP_PKEY_free(pkey);
- SSL_free(ssl); /* frees x509 also since loaded into ssl */
- SSL_CTX_free(ctx);
-#endif /* end of RSA private key match tests */
-
-
-#ifdef HAVE_ECC
- #ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
- #else
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_client_method()));
- #endif
- AssertTrue(SSL_CTX_use_certificate_file(ctx, eccCertFile,
- WOLFSSL_FILETYPE_PEM));
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, eccKeyFile,
- WOLFSSL_FILETYPE_PEM));
- AssertNotNull(ssl = SSL_new(ctx));
-
- AssertIntEQ(wolfSSL_check_private_key(ssl), WOLFSSL_SUCCESS);
- SSL_free(ssl);
-
-
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, cliEccKeyFile,
- WOLFSSL_FILETYPE_PEM));
- AssertNotNull(ssl = SSL_new(ctx));
-
- AssertIntNE(wolfSSL_check_private_key(ssl), WOLFSSL_SUCCESS);
-
- SSL_free(ssl);
- SSL_CTX_free(ctx);
-#endif /* end of ECC private key match tests */
-
-#ifdef HAVE_ED25519
- #ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
- #else
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_client_method()));
- #endif
- AssertTrue(SSL_CTX_use_certificate_file(ctx, edCertFile,
- WOLFSSL_FILETYPE_PEM));
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, edKeyFile,
- WOLFSSL_FILETYPE_PEM));
- AssertNotNull(ssl = SSL_new(ctx));
-
- AssertIntEQ(wolfSSL_check_private_key(ssl), WOLFSSL_SUCCESS);
- SSL_free(ssl);
-
-
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, cliEdKeyFile,
- WOLFSSL_FILETYPE_PEM));
- AssertNotNull(ssl = SSL_new(ctx));
-
- AssertIntNE(wolfSSL_check_private_key(ssl), WOLFSSL_SUCCESS);
-
- SSL_free(ssl);
- SSL_CTX_free(ctx);
-#endif /* end of Ed25519 private key match tests */
-
-#ifdef HAVE_ED448
- #ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
- #else
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_client_method()));
- #endif
- AssertTrue(SSL_CTX_use_certificate_file(ctx, ed448CertFile,
- WOLFSSL_FILETYPE_PEM));
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, ed448KeyFile,
- WOLFSSL_FILETYPE_PEM));
- AssertNotNull(ssl = SSL_new(ctx));
-
- AssertIntEQ(wolfSSL_check_private_key(ssl), WOLFSSL_SUCCESS);
- SSL_free(ssl);
-
-
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, cliEd448KeyFile,
- WOLFSSL_FILETYPE_PEM));
- AssertNotNull(ssl = SSL_new(ctx));
-
- AssertIntNE(wolfSSL_check_private_key(ssl), WOLFSSL_SUCCESS);
-
- SSL_free(ssl);
- SSL_CTX_free(ctx);
-#endif /* end of Ed448 private key match tests */
-
- EVP_cleanup();
-
- /* test existence of no-op macros in wolfssl/openssl/ssl.h */
- CONF_modules_free();
- ENGINE_cleanup();
- CONF_modules_unload();
-
- (void)ssl;
- (void)ctx;
- (void)pkey;
-
- printf(resultFmt, passed);
- #endif /* defined(OPENSSL_EXTRA) && !defined(NO_CERTS) */
-}
-
-
-static void test_wolfSSL_PEM_PrivateKey(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- (!defined(NO_RSA) || defined(HAVE_ECC)) && defined(USE_CERT_BUFFERS_2048)
-
- BIO* bio = NULL;
- EVP_PKEY* pkey = NULL;
- const unsigned char* server_key = (const unsigned char*)server_key_der_2048;
-
- /* test creating new EVP_PKEY with bad arg */
- AssertNull((pkey = PEM_read_bio_PrivateKey(NULL, NULL, NULL, NULL)));
-
- /* test loading RSA key using BIO */
-#if !defined(NO_RSA) && !defined(NO_FILESYSTEM)
- {
- XFILE file;
- const char* fname = "./certs/server-key.pem";
- size_t sz;
- byte* buf;
-
- file = XFOPEN(fname, "rb");
- AssertTrue((file != XBADFILE));
- AssertTrue(XFSEEK(file, 0, XSEEK_END) == 0);
- sz = XFTELL(file);
- XREWIND(file);
- AssertNotNull(buf = (byte*)XMALLOC(sz, NULL, DYNAMIC_TYPE_FILE));
- if (buf) {
- AssertIntEQ(XFREAD(buf, 1, sz, file), sz);
- }
- XFCLOSE(file);
-
- /* Test using BIO new mem and loading PEM private key */
- AssertNotNull(bio = BIO_new_mem_buf(buf, (int)sz));
- AssertNotNull((pkey = PEM_read_bio_PrivateKey(bio, NULL, NULL, NULL)));
- XFREE(buf, NULL, DYNAMIC_TYPE_FILE);
- BIO_free(bio);
- bio = NULL;
- EVP_PKEY_free(pkey);
- pkey = NULL;
- }
-#endif
-
- /* test loading ECC key using BIO */
-#if defined(HAVE_ECC) && !defined(NO_FILESYSTEM)
- {
- XFILE file;
- const char* fname = "./certs/ecc-key.pem";
- size_t sz;
- byte* buf;
-
- file = XFOPEN(fname, "rb");
- AssertTrue((file != XBADFILE));
- AssertTrue(XFSEEK(file, 0, XSEEK_END) == 0);
- sz = XFTELL(file);
- XREWIND(file);
- AssertNotNull(buf = (byte*)XMALLOC(sz, NULL, DYNAMIC_TYPE_FILE));
- if (buf)
- AssertIntEQ(XFREAD(buf, 1, sz, file), sz);
- XFCLOSE(file);
-
- /* Test using BIO new mem and loading PEM private key */
- AssertNotNull(bio = BIO_new_mem_buf(buf, (int)sz));
- AssertNotNull((pkey = PEM_read_bio_PrivateKey(bio, NULL, NULL, NULL)));
- XFREE(buf, NULL, DYNAMIC_TYPE_FILE);
- BIO_free(bio);
- bio = NULL;
- EVP_PKEY_free(pkey);
- pkey = NULL;
- }
-#endif
-
-#if !defined(NO_RSA) && (defined(WOLFSSL_KEY_GEN) || defined(WOLFSSL_CERT_GEN))
- {
- #define BIO_PEM_TEST_CHAR 'a'
- EVP_PKEY* pkey2 = NULL;
- unsigned char extra[10];
- int i;
-
- printf(testingFmt, "wolfSSL_PEM_PrivateKey()");
-
- XMEMSET(extra, BIO_PEM_TEST_CHAR, sizeof(extra));
-
- AssertNotNull(bio = wolfSSL_BIO_new(wolfSSL_BIO_s_mem()));
- AssertIntEQ(BIO_set_write_buf_size(bio, 4096), SSL_FAILURE);
-
- AssertNull(d2i_PrivateKey(EVP_PKEY_EC, &pkey,
- &server_key, (long)sizeof_server_key_der_2048));
- AssertNull(pkey);
-
- AssertNotNull(wolfSSL_d2i_PrivateKey(EVP_PKEY_RSA, &pkey,
- &server_key, (long)sizeof_server_key_der_2048));
- AssertIntEQ(PEM_write_bio_PrivateKey(bio, pkey, NULL, NULL, 0, NULL, NULL),
- WOLFSSL_SUCCESS);
-
- /* test creating new EVP_PKEY with good args */
- AssertNotNull((pkey2 = PEM_read_bio_PrivateKey(bio, NULL, NULL, NULL)));
- if (pkey && pkey->pkey.ptr && pkey2 && pkey2->pkey.ptr)
- AssertIntEQ((int)XMEMCMP(pkey->pkey.ptr, pkey2->pkey.ptr, pkey->pkey_sz), 0);
-
- /* test of reuse of EVP_PKEY */
- AssertNull(PEM_read_bio_PrivateKey(bio, &pkey, NULL, NULL));
- AssertIntEQ(BIO_pending(bio), 0);
- AssertIntEQ(PEM_write_bio_PrivateKey(bio, pkey, NULL, NULL, 0, NULL, NULL),
- SSL_SUCCESS);
- AssertIntEQ(BIO_write(bio, extra, 10), 10); /* add 10 extra bytes after PEM */
- AssertNotNull(PEM_read_bio_PrivateKey(bio, &pkey, NULL, NULL));
- AssertNotNull(pkey);
- if (pkey && pkey->pkey.ptr && pkey2 && pkey2->pkey.ptr) {
- AssertIntEQ((int)XMEMCMP(pkey->pkey.ptr, pkey2->pkey.ptr, pkey->pkey_sz),0);
- }
- AssertIntEQ(BIO_pending(bio), 10); /* check 10 extra bytes still there */
- AssertIntEQ(BIO_read(bio, extra, 10), 10);
- for (i = 0; i < 10; i++) {
- AssertIntEQ(extra[i], BIO_PEM_TEST_CHAR);
- }
-
- BIO_free(bio);
- bio = NULL;
- EVP_PKEY_free(pkey);
- pkey = NULL;
- EVP_PKEY_free(pkey2);
- }
- #endif
-
- /* key is DES encrypted */
- #if !defined(NO_DES3) && defined(WOLFSSL_ENCRYPTED_KEYS) && \
- !defined(NO_RSA) && !defined(NO_FILESYSTEM) && !defined(NO_MD5)
- {
- XFILE f;
- pem_password_cb* passwd_cb;
- void* passwd_cb_userdata;
- SSL_CTX* ctx;
- char passwd[] = "bad password";
-
- #ifndef WOLFSSL_NO_TLS12
- #ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(TLSv1_2_server_method()));
- #else
- AssertNotNull(ctx = SSL_CTX_new(TLSv1_2_client_method()));
- #endif
- #else
- #ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(wolfTLSv1_3_server_method()));
- #else
- AssertNotNull(ctx = SSL_CTX_new(wolfTLSv1_3_client_method()));
- #endif
- #endif
-
- AssertNotNull(bio = BIO_new_file("./certs/server-keyEnc.pem", "rb"));
- SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
- AssertNotNull(passwd_cb = SSL_CTX_get_default_passwd_cb(ctx));
- AssertNull(passwd_cb_userdata =
- SSL_CTX_get_default_passwd_cb_userdata(ctx));
-
- /* fail case with password call back */
- AssertNull(pkey = PEM_read_bio_PrivateKey(bio, NULL, NULL,
- (void*)passwd));
- BIO_free(bio);
- AssertNotNull(bio = BIO_new_file("./certs/server-keyEnc.pem", "rb"));
- AssertNull(pkey = PEM_read_bio_PrivateKey(bio, NULL, passwd_cb,
- (void*)passwd));
- BIO_free(bio);
-
- f = XFOPEN("./certs/server-keyEnc.pem", "rb");
- AssertNotNull(bio = BIO_new_fp(f, BIO_CLOSE));
-
- /* use callback that works */
- AssertNotNull(pkey = PEM_read_bio_PrivateKey(bio, NULL, passwd_cb,
- (void*)"yassl123"));
-
- AssertIntEQ(SSL_CTX_use_PrivateKey(ctx, pkey), SSL_SUCCESS);
-
- EVP_PKEY_free(pkey);
- pkey = NULL;
- BIO_free(bio);
- bio = NULL;
- SSL_CTX_free(ctx);
- }
- #endif /* !defined(NO_DES3) */
-
- #if defined(HAVE_ECC) && !defined(NO_FILESYSTEM)
- {
- unsigned char buf[2048];
- size_t bytes;
- XFILE f;
- SSL_CTX* ctx;
-
- #ifndef WOLFSSL_NO_TLS12
- #ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(TLSv1_2_server_method()));
- #else
- AssertNotNull(ctx = SSL_CTX_new(TLSv1_2_client_method()));
- #endif
- #else
- #ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(wolfTLSv1_3_server_method()));
- #else
- AssertNotNull(ctx = SSL_CTX_new(wolfTLSv1_3_client_method()));
- #endif
- #endif
-
- f = XFOPEN("./certs/ecc-key.der", "rb");
- AssertTrue((f != XBADFILE));
- bytes = (size_t)XFREAD(buf, 1, sizeof(buf), f);
- XFCLOSE(f);
-
- server_key = buf;
- pkey = NULL;
- AssertNull(d2i_PrivateKey(EVP_PKEY_RSA, &pkey, &server_key, bytes));
- AssertNull(pkey);
- AssertNotNull(d2i_PrivateKey(EVP_PKEY_EC, &pkey, &server_key, bytes));
- AssertIntEQ(SSL_CTX_use_PrivateKey(ctx, pkey), SSL_SUCCESS);
-
- EVP_PKEY_free(pkey);
- pkey = NULL;
- SSL_CTX_free(ctx);
- }
- #endif
-
- printf(resultFmt, passed);
-
- (void)bio;
- (void)pkey;
- (void)server_key;
-
-#endif /* OPENSSL_EXTRA && !NO_CERTS && !NO_RSA && USE_CERT_BUFFERS_2048 */
-}
-
-static void test_wolfSSL_PEM_bio_RSAKey(void)
-{
-#if (defined(OPENSSL_EXTRA) || defined(OPENSSL_ALL)) && \
- defined(WOLFSSL_KEY_GEN) && !defined(NO_RSA) && \
- !defined(HAVE_USER_RSA) && !defined(NO_FILESYSTEM) && !defined(NO_CERTS)
- RSA* rsa = NULL;
- BIO* bio = NULL;
-
- printf(testingFmt, "wolfSSL_PEM_bio_RSAKey");
-
- /* PrivateKey */
- AssertNotNull(bio = BIO_new_file(svrKeyFile, "rb"));
- AssertNull((rsa = PEM_read_bio_RSAPrivateKey(NULL, NULL, NULL, NULL)));
- AssertNotNull((rsa = PEM_read_bio_RSAPrivateKey(bio, NULL, NULL, NULL)));
- AssertIntEQ(RSA_size(rsa), 256);
- AssertIntEQ(PEM_write_bio_RSAPrivateKey(NULL, NULL, NULL, NULL, 0, NULL, \
- NULL), WOLFSSL_FAILURE);
- BIO_free(bio);
- AssertNotNull(bio = wolfSSL_BIO_new(wolfSSL_BIO_s_mem()));
- AssertIntEQ(PEM_write_bio_RSAPrivateKey(bio, rsa, NULL, NULL, 0, NULL, \
- NULL), WOLFSSL_SUCCESS);
- BIO_free(bio);
- RSA_free(rsa);
-
- /* PUBKEY */
- AssertNotNull(bio = BIO_new_file("./certs/rsa-pub-2048.pem", "rb"));
- AssertNull((rsa = PEM_read_bio_RSA_PUBKEY(NULL, NULL, NULL, NULL)));
- AssertNotNull((rsa = PEM_read_bio_RSA_PUBKEY(bio, NULL, NULL, NULL)));
- AssertIntEQ(RSA_size(rsa), 256);
- AssertIntEQ(PEM_write_bio_RSA_PUBKEY(NULL, NULL), WOLFSSL_FAILURE);
- BIO_free(bio);
- AssertNotNull(bio = wolfSSL_BIO_new(wolfSSL_BIO_s_mem()));
- AssertIntEQ(PEM_write_bio_RSA_PUBKEY(bio, rsa), WOLFSSL_SUCCESS);
- BIO_free(bio);
- RSA_free(rsa);
-
- #ifdef HAVE_ECC
- /* ensure that non-rsa keys do not work */
- AssertNotNull(bio = BIO_new_file(eccKeyFile, "rb")); /* ecc key */
- AssertNull((rsa = PEM_read_bio_RSAPrivateKey(bio, NULL, NULL, NULL)));
- AssertNull((rsa = PEM_read_bio_RSA_PUBKEY(bio, NULL, NULL, NULL)));
- BIO_free(bio);
- RSA_free(rsa);
- #endif /* HAVE_ECC */
-
- printf(resultFmt, passed);
-#endif /* defined(OPENSSL_EXTRA) || defined(OPENSSL_ALL)) && \
- (defined(WOLFSSL_KEY_GEN) || WOLFSSL_CERT_GEN) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA) && !defined(NO_CERTS) */
-}
-
-static void test_wolfSSL_PEM_RSAPrivateKey(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA)
- RSA* rsa = NULL;
- RSA* rsa_dup = NULL;
- BIO* bio = NULL;
-
- printf(testingFmt, "wolfSSL_PEM_RSAPrivateKey()");
-
- AssertNotNull(bio = BIO_new_file(svrKeyFile, "rb"));
- AssertNotNull((rsa = PEM_read_bio_RSAPrivateKey(bio, NULL, NULL, NULL)));
- AssertIntEQ(RSA_size(rsa), 256);
-
-#if defined(WOLFSSL_KEY_GEN) && !defined(NO_RSA) && !defined(HAVE_USER_RSA)
- AssertNotNull(rsa_dup = RSAPublicKey_dup(rsa));
- AssertPtrNE(rsa_dup, rsa);
-#endif
-
- /* test if valgrind complains about unreleased memory */
- RSA_up_ref(rsa);
- RSA_free(rsa);
-
- BIO_free(bio);
- RSA_free(rsa);
- RSA_free(rsa_dup);
-
-#ifdef HAVE_ECC
- AssertNotNull(bio = BIO_new_file(eccKeyFile, "rb"));
- AssertNull((rsa = PEM_read_bio_RSAPrivateKey(bio, NULL, NULL, NULL)));
-
- BIO_free(bio);
-#endif /* HAVE_ECC */
-
- printf(resultFmt, passed);
- #endif /* defined(OPENSSL_EXTRA) && !defined(NO_CERTS) */
-}
-
-static void test_wolfSSL_PEM_bio_DSAKey(void)
-{
-#ifndef HAVE_SELFTEST
-#if (defined(WOLFSSL_QT) || defined(OPENSSL_ALL)) && !defined(NO_CERTS) && \
- defined(WOLFSSL_KEY_GEN) && !defined(NO_FILESYSTEM) && !defined(NO_DSA)
- DSA* dsa = NULL;
- BIO* bio = NULL;
-
- printf(testingFmt, "wolfSSL_PEM_bio_DSAKey");
-
- /* PrivateKey */
- AssertNotNull(bio = BIO_new_file("./certs/1024/dsa1024.pem", "rb"));
- AssertNull((dsa = PEM_read_bio_DSAPrivateKey(NULL, NULL, NULL, NULL)));
- AssertNotNull((dsa = PEM_read_bio_DSAPrivateKey(bio, NULL, NULL, NULL)));
- AssertIntEQ(BN_num_bytes(dsa->g), 128);
- AssertIntEQ(PEM_write_bio_DSAPrivateKey(NULL, NULL, NULL, NULL, 0, NULL, NULL),
- WOLFSSL_FAILURE);
- BIO_free(bio);
- AssertNotNull(bio = wolfSSL_BIO_new(wolfSSL_BIO_s_mem()));
- AssertIntEQ(PEM_write_bio_DSAPrivateKey(bio, dsa, NULL, NULL, 0, NULL, NULL),
- WOLFSSL_SUCCESS);
- BIO_free(bio);
- DSA_free(dsa);
-
- /* PUBKEY */
- AssertNotNull(bio = BIO_new_file("./certs/1024/dsa-pub-1024.pem", "rb"));
- AssertNull((dsa = PEM_read_bio_DSA_PUBKEY(NULL, NULL, NULL, NULL)));
- AssertNotNull((dsa = PEM_read_bio_DSA_PUBKEY(bio, NULL, NULL, NULL)));
- AssertIntEQ(BN_num_bytes(dsa->g), 128);
- AssertIntEQ(PEM_write_bio_DSA_PUBKEY(NULL, NULL), WOLFSSL_FAILURE);
- BIO_free(bio);
- AssertNotNull(bio = wolfSSL_BIO_new(wolfSSL_BIO_s_mem()));
- AssertIntEQ(PEM_write_bio_DSA_PUBKEY(bio, dsa), WOLFSSL_SUCCESS);
- BIO_free(bio);
- DSA_free(dsa);
-
- #ifdef HAVE_ECC
- /* ensure that non-dsa keys do not work */
- AssertNotNull(bio = BIO_new_file(eccKeyFile, "rb")); /* ecc key */
- AssertNull((dsa = PEM_read_bio_DSAPrivateKey(bio, NULL, NULL, NULL)));
- AssertNull((dsa = PEM_read_bio_DSA_PUBKEY(bio, NULL, NULL, NULL)));
- BIO_free(bio);
- DSA_free(dsa);
- #endif /* HAVE_ECC */
-
- printf(resultFmt, passed);
-#endif /* defined(WOLFSSL_QT) || defined(OPENSSL_ALL)) && \
- !defined(NO_CERTS) && defined(WOLFSSL_KEY_GEN) && \
- !defined(NO_FILESYSTEM) && !defined(NO_DSA) */
-#endif /* HAVE_SELFTEST */
-}
-
-static void test_wolfSSL_PEM_bio_ECKey(void)
-{
-#if (defined(OPENSSL_EXTRA) || defined(OPENSSL_ALL)) && \
- defined(WOLFSSL_KEY_GEN) && !defined(NO_FILESYSTEM) && defined(HAVE_ECC)
- EC_KEY* ec = NULL;
- BIO* bio = NULL;
-
- printf(testingFmt, "wolfSSL_PEM_bio_ECKey");
-
- /* PrivateKey */
- AssertNotNull(bio = BIO_new_file("./certs/ecc-key.pem", "rb"));
- AssertNull((ec = PEM_read_bio_ECPrivateKey(NULL, NULL, NULL, NULL)));
- AssertNotNull((ec = PEM_read_bio_ECPrivateKey(bio, NULL, NULL, NULL)));
- AssertIntEQ(wc_ecc_size((ecc_key*)ec->internal), 32);
- AssertIntEQ(PEM_write_bio_ECPrivateKey(NULL, NULL, NULL, NULL, 0, NULL, \
- NULL),WOLFSSL_FAILURE);
- BIO_free(bio);
- AssertNotNull(bio = wolfSSL_BIO_new(wolfSSL_BIO_s_mem()));
- AssertIntEQ(PEM_write_bio_ECPrivateKey(bio, ec, NULL, NULL, 0, NULL, \
- NULL), WOLFSSL_SUCCESS);
- BIO_free(bio);
- EC_KEY_free(ec);
-
- /* PUBKEY */
- AssertNotNull(bio = BIO_new_file("./certs/ecc-client-keyPub.pem", "rb"));
- AssertNull((ec = PEM_read_bio_EC_PUBKEY(NULL, NULL, NULL, NULL)));
- AssertNotNull((ec = PEM_read_bio_EC_PUBKEY(bio, NULL, NULL, NULL)));
- AssertIntEQ(wc_ecc_size((ecc_key*)ec->internal), 32);
- AssertIntEQ(PEM_write_bio_EC_PUBKEY(NULL, NULL), WOLFSSL_FAILURE);
- BIO_free(bio);
- AssertNotNull(bio = wolfSSL_BIO_new(wolfSSL_BIO_s_mem()));
- AssertIntEQ(PEM_write_bio_EC_PUBKEY(bio, ec), WOLFSSL_SUCCESS);
- BIO_free(bio);
- EC_KEY_free(ec);
-
- #ifndef NO_RSA
- /* ensure that non-ec keys do not work */
- AssertNotNull(bio = BIO_new_file(svrKeyFile, "rb")); /* rsa key */
- AssertNull((ec = PEM_read_bio_ECPrivateKey(bio, NULL, NULL, NULL)));
- AssertNull((ec = PEM_read_bio_EC_PUBKEY(bio, NULL, NULL, NULL)));
- BIO_free(bio);
- EC_KEY_free(ec);
- #endif /* HAVE_ECC */
-
- printf(resultFmt, passed);
-#endif /* defined(OPENSSL_EXTRA) && !defined(NO_CERTS) */
-}
-
-static void test_wolfSSL_PEM_PUBKEY(void)
-{
-#if defined(OPENSSL_EXTRA) && defined(HAVE_ECC)
- BIO* bio = NULL;
- EVP_PKEY* pkey = NULL;
-
- /* test creating new EVP_PKEY with bad arg */
- AssertNull((pkey = PEM_read_bio_PUBKEY(NULL, NULL, NULL, NULL)));
-
- /* test loading ECC key using BIO */
-#if defined(HAVE_ECC) && !defined(NO_FILESYSTEM)
- {
- XFILE file;
- const char* fname = "./certs/ecc-client-keyPub.pem";
- size_t sz;
- byte* buf;
-
- file = XFOPEN(fname, "rb");
- AssertTrue((file != XBADFILE));
- XFSEEK(file, 0, XSEEK_END);
- sz = XFTELL(file);
- XREWIND(file);
- AssertNotNull(buf = (byte*)XMALLOC(sz, NULL, DYNAMIC_TYPE_FILE));
- if (buf)
- AssertIntEQ(XFREAD(buf, 1, sz, file), sz);
- XFCLOSE(file);
-
- /* Test using BIO new mem and loading PEM private key */
- AssertNotNull(bio = BIO_new_mem_buf(buf, (int)sz));
- AssertNotNull((pkey = PEM_read_bio_PUBKEY(bio, NULL, NULL, NULL)));
- XFREE(buf, NULL, DYNAMIC_TYPE_FILE);
- BIO_free(bio);
- bio = NULL;
- EVP_PKEY_free(pkey);
- pkey = NULL;
- }
-#endif
-
- (void)bio;
- (void)pkey;
-#endif
-}
-
-static void test_DSA_do_sign_verify(void)
-{
-#if !defined(HAVE_SELFTEST) && !defined(HAVE_FIPS)
-#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && \
- !defined(NO_DSA)
- unsigned char digest[WC_SHA_DIGEST_SIZE];
- DSA_SIG* sig;
- DSA* dsa;
- word32 bytes;
- byte sigBin[DSA_SIG_SIZE];
- int dsacheck;
-
-#ifdef USE_CERT_BUFFERS_1024
- byte tmp[ONEK_BUF];
- XMEMSET(tmp, 0, sizeof(tmp));
- XMEMCPY(tmp, dsa_key_der_1024, sizeof_dsa_key_der_1024);
- bytes = sizeof_dsa_key_der_1024;
-#elif defined(USE_CERT_BUFFERS_2048)
- byte tmp[TWOK_BUF];
- XMEMSET(tmp, 0, sizeof(tmp));
- XMEMCPY(tmp, dsa_key_der_2048, sizeof_dsa_key_der_2048);
- bytes = sizeof_dsa_key_der_2048;
-#else
- byte tmp[TWOK_BUF];
- XMEMSET(tmp, 0, sizeof(tmp));
- XFILE fp = XFOPEN("./certs/dsa2048.der", "rb");
- if (fp == XBADFILE) {
- return WOLFSSL_BAD_FILE;
- }
- bytes = (word32) XFREAD(tmp, 1, sizeof(tmp), fp);
- XFCLOSE(fp);
-#endif /* END USE_CERT_BUFFERS_1024 */
-
- printf(testingFmt, "DSA_do_sign_verify()");
- XMEMSET(digest, 202, sizeof(digest));
-
- AssertNotNull(dsa = DSA_new());
- AssertIntEQ(DSA_LoadDer(dsa, tmp, bytes), 1);
-
- AssertIntEQ(wolfSSL_DSA_do_sign(digest, sigBin, dsa), 1);
- AssertIntEQ(wolfSSL_DSA_do_verify(digest, sigBin, dsa, &dsacheck), 1);
-
- AssertNotNull(sig = DSA_do_sign(digest, WC_SHA_DIGEST_SIZE, dsa));
- AssertIntEQ(DSA_do_verify(digest, WC_SHA_DIGEST_SIZE, sig, dsa), 1);
-
- DSA_SIG_free(sig);
- DSA_free(dsa);
-#endif
-#endif /* !HAVE_SELFTEST && !HAVE_FIPS */
-}
-
-static void test_wolfSSL_tmp_dh(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) && \
- !defined(NO_DSA) && !defined(NO_RSA) && !defined(NO_DH)
- byte buffer[5300];
- char file[] = "./certs/dsaparams.pem";
- XFILE f;
- int bytes;
- DSA* dsa;
- DH* dh;
- BIO* bio;
- SSL* ssl;
- SSL_CTX* ctx;
-
- printf(testingFmt, "wolfSSL_tmp_dh()");
-
- #ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
- #else
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_client_method()));
- #endif
- AssertTrue(SSL_CTX_use_certificate_file(ctx, svrCertFile, WOLFSSL_FILETYPE_PEM));
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, WOLFSSL_FILETYPE_PEM));
- AssertNotNull(ssl = SSL_new(ctx));
-
- f = XFOPEN(file, "rb");
- AssertTrue((f != XBADFILE));
- bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f);
- XFCLOSE(f);
-
- bio = BIO_new_mem_buf((void*)buffer, bytes);
- AssertNotNull(bio);
-
- dsa = wolfSSL_PEM_read_bio_DSAparams(bio, NULL, NULL, NULL);
- AssertNotNull(dsa);
-
- dh = wolfSSL_DSA_dup_DH(dsa);
- AssertNotNull(dh);
-
- AssertIntEQ((int)SSL_CTX_set_tmp_dh(ctx, dh), WOLFSSL_SUCCESS);
- #ifndef NO_WOLFSSL_SERVER
- AssertIntEQ((int)SSL_set_tmp_dh(ssl, dh), WOLFSSL_SUCCESS);
- #else
- AssertIntEQ((int)SSL_set_tmp_dh(ssl, dh), SIDE_ERROR);
- #endif
-
- BIO_free(bio);
- DSA_free(dsa);
- DH_free(dh);
- SSL_free(ssl);
- SSL_CTX_free(ctx);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_ctrl(void)
-{
-#if defined (OPENSSL_EXTRA)
- byte buff[5300];
- BIO* bio;
- int bytes;
- BUF_MEM* ptr = NULL;
-
- printf(testingFmt, "wolfSSL_crtl()");
-
- bytes = sizeof(buff);
- bio = BIO_new_mem_buf((void*)buff, bytes);
- AssertNotNull(bio);
- AssertNotNull(BIO_s_socket());
-
- AssertIntEQ((int)wolfSSL_BIO_get_mem_ptr(bio, &ptr), WOLFSSL_SUCCESS);
-
- /* needs tested after stubs filled out @TODO
- SSL_ctrl
- SSL_CTX_ctrl
- */
-
- BIO_free(bio);
- printf(resultFmt, passed);
-#endif /* defined(OPENSSL_EXTRA) */
-}
-
-
-static void test_wolfSSL_EVP_PKEY_new_mac_key(void)
-{
-#ifdef OPENSSL_EXTRA
- static const unsigned char pw[] = "password";
- static const int pwSz = sizeof(pw) - 1;
- size_t checkPwSz = 0;
- const unsigned char* checkPw = NULL;
- WOLFSSL_EVP_PKEY* key = NULL;
-
- printf(testingFmt, "wolfSSL_EVP_PKEY_new_mac_key()");
-
- AssertNull(key = wolfSSL_EVP_PKEY_new_mac_key(0, NULL, pw, pwSz));
- AssertNull(key = wolfSSL_EVP_PKEY_new_mac_key(0, NULL, NULL, pwSz));
-
- AssertNotNull(key = wolfSSL_EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL, pw, pwSz));
- if (key) {
- AssertIntEQ(key->type, EVP_PKEY_HMAC);
- AssertIntEQ(key->save_type, EVP_PKEY_HMAC);
- AssertIntEQ(key->pkey_sz, pwSz);
- AssertIntEQ(XMEMCMP(key->pkey.ptr, pw, pwSz), 0);
- }
- AssertNotNull(checkPw = wolfSSL_EVP_PKEY_get0_hmac(key, &checkPwSz));
- AssertIntEQ((int)checkPwSz, pwSz);
- if (checkPw) {
- AssertIntEQ(XMEMCMP(checkPw, pw, pwSz), 0);
- }
- wolfSSL_EVP_PKEY_free(key);
-
- AssertNotNull(key = wolfSSL_EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL, pw, 0));
- if (key) {
- AssertIntEQ(key->pkey_sz, 0);
- }
- checkPw = wolfSSL_EVP_PKEY_get0_hmac(key, &checkPwSz);
- (void)checkPw;
- AssertIntEQ((int)checkPwSz, 0);
- wolfSSL_EVP_PKEY_free(key);
-
- AssertNotNull(key = wolfSSL_EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL, NULL, 0));
- if (key) {
- AssertIntEQ(key->pkey_sz, 0);
- }
- checkPw = wolfSSL_EVP_PKEY_get0_hmac(key, &checkPwSz);
- (void)checkPw;
- AssertIntEQ((int)checkPwSz, 0);
- wolfSSL_EVP_PKEY_free(key);
-
- printf(resultFmt, passed);
-#endif /* OPENSSL_EXTRA */
-}
-static void test_wolfSSL_EVP_Digest(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_SHA256)
-
-
- const char* in = "abc";
- int inLen = (int)XSTRLEN(in);
- byte out[WC_SHA256_DIGEST_SIZE];
- unsigned int outLen;
- const char* expOut = "\xBA\x78\x16\xBF\x8F\x01\xCF\xEA\x41\x41\x40\xDE\x5D\xAE\x22"
- "\x23\xB0\x03\x61\xA3\x96\x17\x7A\x9C\xB4\x10\xFF\x61\xF2\x00"
- "\x15\xAD";
- printf(testingFmt, "wolfSSL_EVP_Digest()");
-
- AssertIntEQ(wolfSSL_EVP_Digest((unsigned char*)in, inLen, out, &outLen, "SHA256", NULL), 1);
- AssertIntEQ(outLen, WC_SHA256_DIGEST_SIZE);
- AssertIntEQ(XMEMCMP(out, expOut, WC_SHA256_DIGEST_SIZE), 0);
-
- printf(resultFmt, passed);
-
-#endif /* OPEN_EXTRA && ! NO_SHA256 */
-}
-
-static void test_wolfSSL_EVP_MD_size(void)
-{
-#ifdef OPENSSL_EXTRA
-
- WOLFSSL_EVP_MD_CTX mdCtx;
-
- printf(testingFmt, "wolfSSL_EVP_MD_size()");
-
-#ifndef NO_SHA256
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
-
- AssertIntEQ(wolfSSL_EVP_DigestInit(&mdCtx, "SHA256"), 1);
- AssertIntEQ(wolfSSL_EVP_MD_size(wolfSSL_EVP_MD_CTX_md(&mdCtx)), WC_SHA256_DIGEST_SIZE);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_block_size(&mdCtx), WC_SHA256_BLOCK_SIZE);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
-#endif
-
-#ifndef NO_MD5
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
-
- AssertIntEQ(wolfSSL_EVP_DigestInit(&mdCtx, "MD5"), 1);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_size(&mdCtx), WC_MD5_DIGEST_SIZE);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_block_size(&mdCtx), WC_MD5_BLOCK_SIZE);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
-#endif
-
-#ifdef WOLFSSL_SHA224
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
-
- AssertIntEQ(wolfSSL_EVP_DigestInit(&mdCtx, "SHA224"), 1);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_size(&mdCtx), WC_SHA224_DIGEST_SIZE);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_block_size(&mdCtx), WC_SHA224_BLOCK_SIZE);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
-#endif
-
-#ifdef WOLFSSL_SHA384
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
-
- AssertIntEQ(wolfSSL_EVP_DigestInit(&mdCtx, "SHA384"), 1);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_size(&mdCtx), WC_SHA384_DIGEST_SIZE);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_block_size(&mdCtx), WC_SHA384_BLOCK_SIZE);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
-#endif
-
-#ifdef WOLFSSL_SHA512
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
-
- AssertIntEQ(wolfSSL_EVP_DigestInit(&mdCtx, "SHA512"), 1);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_size(&mdCtx), WC_SHA512_DIGEST_SIZE);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_block_size(&mdCtx), WC_SHA512_BLOCK_SIZE);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
-#endif
-
-#ifndef NO_SHA
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
-
- AssertIntEQ(wolfSSL_EVP_DigestInit(&mdCtx, "SHA"), 1);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_size(&mdCtx), WC_SHA_DIGEST_SIZE);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_block_size(&mdCtx), WC_SHA_BLOCK_SIZE);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
-#endif
- /* error case */
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
-
- AssertIntEQ(wolfSSL_EVP_DigestInit(&mdCtx, ""), BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_EVP_MD_size(wolfSSL_EVP_MD_CTX_md(&mdCtx)), BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_block_size(&mdCtx), BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 0);
-
- printf(resultFmt, passed);
-
-#endif /* OPENSSL_EXTRA */
-}
-
-static void test_wolfSSL_EVP_MD_hmac_signing(void)
-{
-#ifdef OPENSSL_EXTRA
- const unsigned char testKey[] =
- {
- 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
- 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
- 0x0b, 0x0b, 0x0b, 0x0b
- };
- const char testData[] = "Hi There";
- const unsigned char testResult[] =
- {
- 0xb0, 0x34, 0x4c, 0x61, 0xd8, 0xdb, 0x38, 0x53,
- 0x5c, 0xa8, 0xaf, 0xce, 0xaf, 0x0b, 0xf1, 0x2b,
- 0x88, 0x1d, 0xc2, 0x00, 0xc9, 0x83, 0x3d, 0xa7,
- 0x26, 0xe9, 0x37, 0x6c, 0x2e, 0x32, 0xcf, 0xf7
- };
- unsigned char check[sizeof(testResult)];
- size_t checkSz = -1;
- WOLFSSL_EVP_PKEY* key;
- WOLFSSL_EVP_MD_CTX mdCtx;
-
- printf(testingFmt, "wolfSSL_EVP_MD_hmac_signing()");
- AssertNotNull(key = wolfSSL_EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL,
- testKey, (int)sizeof(testKey)));
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
- AssertIntEQ(wolfSSL_EVP_DigestSignInit(&mdCtx, NULL, wolfSSL_EVP_sha256(),
- NULL, key), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignUpdate(&mdCtx, testData,
- (unsigned int)XSTRLEN(testData)), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, NULL, &checkSz), 1);
- AssertIntEQ((int)checkSz, sizeof(testResult));
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, check, &checkSz), 1);
- AssertIntEQ((int)checkSz,(int)sizeof(testResult));
- AssertIntEQ(XMEMCMP(testResult, check, sizeof(testResult)), 0);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
- AssertIntEQ(wolfSSL_EVP_DigestVerifyInit(&mdCtx, NULL, wolfSSL_EVP_sha256(),
- NULL, key), 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyUpdate(&mdCtx, testData,
- (unsigned int)XSTRLEN(testData)),
- 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyFinal(&mdCtx, testResult, checkSz), 1);
-
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
- AssertIntEQ(wolfSSL_EVP_DigestSignInit(&mdCtx, NULL, wolfSSL_EVP_sha256(),
- NULL, key), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignUpdate(&mdCtx, testData, 4), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, NULL, &checkSz), 1);
- AssertIntEQ((int)checkSz, sizeof(testResult));
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, check, &checkSz), 1);
- AssertIntEQ((int)checkSz,(int)sizeof(testResult));
- AssertIntEQ(wolfSSL_EVP_DigestSignUpdate(&mdCtx, testData + 4,
- (unsigned int)XSTRLEN(testData) - 4), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, check, &checkSz), 1);
- AssertIntEQ((int)checkSz,(int)sizeof(testResult));
- AssertIntEQ(XMEMCMP(testResult, check, sizeof(testResult)), 0);
-
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyInit(&mdCtx, NULL, wolfSSL_EVP_sha256(),
- NULL, key), 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyUpdate(&mdCtx, testData, 4), 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyUpdate(&mdCtx, testData + 4,
- (unsigned int)XSTRLEN(testData) - 4),
- 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyFinal(&mdCtx, testResult, checkSz), 1);
-
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
- wolfSSL_EVP_PKEY_free(key);
- printf(resultFmt, passed);
-#endif /* OPENSSL_EXTRA */
-}
-
-
-static void test_wolfSSL_EVP_MD_rsa_signing(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(HAVE_USER_RSA) && \
- defined(USE_CERT_BUFFERS_2048)
- WOLFSSL_EVP_PKEY* privKey;
- WOLFSSL_EVP_PKEY* pubKey;
- const char testData[] = "Hi There";
- WOLFSSL_EVP_MD_CTX mdCtx;
- size_t checkSz = -1;
- int sz = 2048 / 8;
- const unsigned char* cp;
- const unsigned char* p;
- unsigned char check[2048/8];
-
- printf(testingFmt, "wolfSSL_EVP_MD_rsa_signing()");
-
- cp = client_key_der_2048;
- AssertNotNull((privKey = wolfSSL_d2i_PrivateKey(EVP_PKEY_RSA, NULL, &cp,
- sizeof_client_key_der_2048)));
- p = client_keypub_der_2048;
- AssertNotNull((pubKey = wolfSSL_d2i_PUBKEY(NULL, &p,
- sizeof_client_keypub_der_2048)));
-
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
- AssertIntEQ(wolfSSL_EVP_DigestSignInit(&mdCtx, NULL, wolfSSL_EVP_sha256(),
- NULL, privKey), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignUpdate(&mdCtx, testData,
- (unsigned int)XSTRLEN(testData)), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, NULL, &checkSz), 1);
- AssertIntEQ((int)checkSz, sz);
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, check, &checkSz), 1);
- AssertIntEQ((int)checkSz,sz);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyInit(&mdCtx, NULL, wolfSSL_EVP_sha256(),
- NULL, pubKey), 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyUpdate(&mdCtx, testData,
- (unsigned int)XSTRLEN(testData)),
- 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyFinal(&mdCtx, check, checkSz), 1);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
- AssertIntEQ(wolfSSL_EVP_DigestSignInit(&mdCtx, NULL, wolfSSL_EVP_sha256(),
- NULL, privKey), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignUpdate(&mdCtx, testData, 4), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, NULL, &checkSz), 1);
- AssertIntEQ((int)checkSz, sz);
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, check, &checkSz), 1);
- AssertIntEQ((int)checkSz, sz);
- AssertIntEQ(wolfSSL_EVP_DigestSignUpdate(&mdCtx, testData + 4,
- (unsigned int)XSTRLEN(testData) - 4), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, check, &checkSz), 1);
- AssertIntEQ((int)checkSz, sz);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyInit(&mdCtx, NULL, wolfSSL_EVP_sha256(),
- NULL, pubKey), 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyUpdate(&mdCtx, testData, 4), 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyUpdate(&mdCtx, testData + 4,
- (unsigned int)XSTRLEN(testData) - 4),
- 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyFinal(&mdCtx, check, checkSz), 1);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
- wolfSSL_EVP_PKEY_free(pubKey);
- wolfSSL_EVP_PKEY_free(privKey);
-
- printf(resultFmt, passed);
-#endif
-}
-
-
-static void test_wolfSSL_EVP_MD_ecc_signing(void)
-{
-#if defined(OPENSSL_EXTRA) && defined(HAVE_ECC) && defined(USE_CERT_BUFFERS_256)
- WOLFSSL_EVP_PKEY* privKey;
- WOLFSSL_EVP_PKEY* pubKey;
- const char testData[] = "Hi There";
- WOLFSSL_EVP_MD_CTX mdCtx;
- size_t checkSz = -1;
- const unsigned char* cp;
- const unsigned char* p;
- unsigned char check[2048/8];
-
- printf(testingFmt, "wolfSSL_EVP_MD_ecc_signing()");
-
- cp = ecc_clikey_der_256;
- AssertNotNull((privKey = wolfSSL_d2i_PrivateKey(EVP_PKEY_EC, NULL, &cp,
- sizeof_ecc_clikey_der_256)));
- p = ecc_clikeypub_der_256;
- AssertNotNull((pubKey = wolfSSL_d2i_PUBKEY(NULL, &p,
- sizeof_ecc_clikeypub_der_256)));
-
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
- AssertIntEQ(wolfSSL_EVP_DigestSignInit(&mdCtx, NULL, wolfSSL_EVP_sha256(),
- NULL, privKey), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignUpdate(&mdCtx, testData,
- (unsigned int)XSTRLEN(testData)), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, NULL, &checkSz), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, check, &checkSz), 1);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyInit(&mdCtx, NULL, wolfSSL_EVP_sha256(),
- NULL, pubKey), 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyUpdate(&mdCtx, testData,
- (unsigned int)XSTRLEN(testData)),
- 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyFinal(&mdCtx, check, checkSz), 1);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
- AssertIntEQ(wolfSSL_EVP_DigestSignInit(&mdCtx, NULL, wolfSSL_EVP_sha256(),
- NULL, privKey), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignUpdate(&mdCtx, testData, 4), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, NULL, &checkSz), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, check, &checkSz), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignUpdate(&mdCtx, testData + 4,
- (unsigned int)XSTRLEN(testData) - 4), 1);
- AssertIntEQ(wolfSSL_EVP_DigestSignFinal(&mdCtx, check, &checkSz), 1);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
- wolfSSL_EVP_MD_CTX_init(&mdCtx);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyInit(&mdCtx, NULL, wolfSSL_EVP_sha256(),
- NULL, pubKey), 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyUpdate(&mdCtx, testData, 4), 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyUpdate(&mdCtx, testData + 4,
- (unsigned int)XSTRLEN(testData) - 4),
- 1);
- AssertIntEQ(wolfSSL_EVP_DigestVerifyFinal(&mdCtx, check, checkSz), 1);
- AssertIntEQ(wolfSSL_EVP_MD_CTX_cleanup(&mdCtx), 1);
-
- wolfSSL_EVP_PKEY_free(pubKey);
- wolfSSL_EVP_PKEY_free(privKey);
-
- printf(resultFmt, passed);
-#endif
-}
-
-
-static void test_wolfSSL_CTX_add_extra_chain_cert(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA)
- char caFile[] = "./certs/client-ca.pem";
- char clientFile[] = "./certs/client-cert.pem";
- SSL_CTX* ctx;
- X509* x509;
-
- printf(testingFmt, "wolfSSL_CTX_add_extra_chain_cert()");
-
- #ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
- #else
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_client_method()));
- #endif
-
- x509 = wolfSSL_X509_load_certificate_file(caFile, WOLFSSL_FILETYPE_PEM);
- AssertNotNull(x509);
- AssertIntEQ((int)SSL_CTX_add_extra_chain_cert(ctx, x509), WOLFSSL_SUCCESS);
-
- x509 = wolfSSL_X509_load_certificate_file(clientFile, WOLFSSL_FILETYPE_PEM);
- AssertNotNull(x509);
-
- #if !defined(HAVE_USER_RSA) && !defined(HAVE_FAST_RSA)
- /* additional test of getting EVP_PKEY key size from X509
- * Do not run with user RSA because wolfSSL_RSA_size is not currently
- * allowed with user RSA */
- {
- EVP_PKEY* pkey;
- #if defined(HAVE_ECC)
- X509* ecX509;
- #endif /* HAVE_ECC */
-
- AssertNotNull(pkey = X509_get_pubkey(x509));
- /* current RSA key is 2048 bit (256 bytes) */
- AssertIntEQ(EVP_PKEY_size(pkey), 256);
-
- EVP_PKEY_free(pkey);
-
- #if defined(HAVE_ECC)
- #if defined(USE_CERT_BUFFERS_256)
- AssertNotNull(ecX509 = wolfSSL_X509_load_certificate_buffer(
- cliecc_cert_der_256, sizeof_cliecc_cert_der_256,
- SSL_FILETYPE_ASN1));
- #else
- AssertNotNull(ecX509 = wolfSSL_X509_load_certificate_file(cliEccCertFile,
- SSL_FILETYPE_PEM));
- #endif
- AssertNotNull(pkey = X509_get_pubkey(ecX509));
- /* current ECC key is 256 bit (32 bytes) */
- AssertIntEQ(EVP_PKEY_size(pkey), 32);
-
- X509_free(ecX509);
- EVP_PKEY_free(pkey);
- #endif /* HAVE_ECC */
- }
-#endif /* !defined(HAVE_USER_RSA) && !defined(HAVE_FAST_RSA) */
-
- AssertIntEQ((int)SSL_CTX_add_extra_chain_cert(ctx, x509), SSL_SUCCESS);
-
-#ifdef WOLFSSL_ENCRYPTED_KEYS
- AssertNull(SSL_CTX_get_default_passwd_cb(ctx));
- AssertNull(SSL_CTX_get_default_passwd_cb_userdata(ctx));
-#endif
-
- SSL_CTX_free(ctx);
- printf(resultFmt, passed);
- #endif /* defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA) */
-}
-
-
-#if !defined(NO_WOLFSSL_CLIENT) && !defined(NO_WOLFSSL_SERVER)
-static void test_wolfSSL_ERR_peek_last_error_line(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && defined(DEBUG_WOLFSSL) && \
- !defined(NO_OLD_TLS) && !defined(WOLFSSL_NO_TLS12) && \
- defined(HAVE_IO_TESTS_DEPENDENCIES) && !defined(NO_ERROR_QUEUE)
- tcp_ready ready;
- func_args client_args;
- func_args server_args;
-#ifndef SINGLE_THREADED
- THREAD_TYPE serverThread;
-#endif
- callback_functions client_cb;
- callback_functions server_cb;
- int line = 0;
- int flag = ERR_TXT_STRING;
- const char* file = NULL;
- const char* data = NULL;
-
- printf(testingFmt, "wolfSSL_ERR_peek_last_error_line()");
-
- /* create a failed connection and inspect the error */
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
- XMEMSET(&client_args, 0, sizeof(func_args));
- XMEMSET(&server_args, 0, sizeof(func_args));
-
- StartTCP();
- InitTcpReady(&ready);
-
- XMEMSET(&client_cb, 0, sizeof(callback_functions));
- XMEMSET(&server_cb, 0, sizeof(callback_functions));
- client_cb.method = wolfTLSv1_1_client_method;
- server_cb.method = wolfTLSv1_2_server_method;
-
- server_args.signal = &ready;
- server_args.callbacks = &server_cb;
- client_args.signal = &ready;
- client_args.callbacks = &client_cb;
-
-#ifndef SINGLE_THREADED
- start_thread(test_server_nofail, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
- test_client_nofail(&client_args, NULL);
- join_thread(serverThread);
-#endif
-
- FreeTcpReady(&ready);
-
- AssertIntGT(ERR_get_error_line_data(NULL, NULL, &data, &flag), 0);
- AssertNotNull(data);
-
- /* check clearing error state */
- ERR_remove_state(0);
- AssertIntEQ((int)ERR_peek_last_error_line(NULL, NULL), 0);
- ERR_peek_last_error_line(NULL, &line);
- AssertIntEQ(line, 0);
- ERR_peek_last_error_line(&file, NULL);
- AssertNull(file);
-
- /* retry connection to fill error queue */
- XMEMSET(&client_args, 0, sizeof(func_args));
- XMEMSET(&server_args, 0, sizeof(func_args));
-
- StartTCP();
- InitTcpReady(&ready);
-
- client_cb.method = wolfTLSv1_1_client_method;
- server_cb.method = wolfTLSv1_2_server_method;
-
- server_args.signal = &ready;
- server_args.callbacks = &server_cb;
- client_args.signal = &ready;
- client_args.callbacks = &client_cb;
-
- start_thread(test_server_nofail, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
- test_client_nofail(&client_args, NULL);
- join_thread(serverThread);
-
- FreeTcpReady(&ready);
-
- /* check that error code was stored */
- AssertIntNE((int)ERR_peek_last_error_line(NULL, NULL), 0);
- ERR_peek_last_error_line(NULL, &line);
- AssertIntNE(line, 0);
- ERR_peek_last_error_line(&file, NULL);
- AssertNotNull(file);
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- printf(resultFmt, passed);
-
- printf("\nTesting error print out\n");
- ERR_print_errors_fp(stdout);
- printf("Done testing print out\n\n");
- fflush(stdout);
- #endif /* defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(DEBUG_WOLFSSL) */
-}
-#endif
-
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA)
-static int verify_cb(int ok, X509_STORE_CTX *ctx)
-{
- (void) ok;
- (void) ctx;
- printf("ENTER verify_cb\n");
- return SSL_SUCCESS;
-}
-#endif
-
-
-static void test_wolfSSL_X509_STORE_CTX_get0_current_issuer(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA)
- #ifdef WOLFSSL_SIGNER_DER_CERT
- int cmp;
- #endif
- X509_STORE_CTX* ctx;
- X509_STORE* str;
- X509* x509Ca;
- X509* x509Svr;
- X509* issuer;
- X509_NAME* caName;
- X509_NAME* issuerName;
-
- printf(testingFmt, "wolfSSL_X509_STORE_CTX_get0_current_issuer()");
-
- AssertNotNull(ctx = X509_STORE_CTX_new());
- AssertNotNull((str = wolfSSL_X509_STORE_new()));
- AssertNotNull((x509Ca =
- wolfSSL_X509_load_certificate_file(caCertFile, SSL_FILETYPE_PEM)));
- AssertIntEQ(X509_STORE_add_cert(str, x509Ca), SSL_SUCCESS);
- AssertNotNull((x509Svr =
- wolfSSL_X509_load_certificate_file(svrCertFile, SSL_FILETYPE_PEM)));
-
- AssertIntEQ(X509_STORE_CTX_init(ctx, str, x509Svr, NULL), SSL_SUCCESS);
-
- AssertNull(X509_STORE_CTX_get0_current_issuer(NULL));
- issuer = X509_STORE_CTX_get0_current_issuer(ctx);
- AssertNotNull(issuer);
-
- caName = X509_get_subject_name(x509Ca);
- AssertNotNull(caName);
- issuerName = X509_get_subject_name(issuer);
- #ifdef WOLFSSL_SIGNER_DER_CERT
- AssertNotNull(issuerName);
- cmp = X509_NAME_cmp(caName, issuerName);
- AssertIntEQ(cmp, 0);
- #else
- /* X509_STORE_CTX_get0_current_issuer() returns empty issuer */
- AssertNull(issuerName);
- #endif
-
- X509_free(issuer);
- X509_STORE_CTX_free(ctx);
- #if defined(WOLFSSL_KEEP_STORE_CERTS) || defined(OPENSSL_ALL) || defined(WOLFSSL_QT)
- X509_free(x509Svr);
- X509_STORE_free(str);
- #endif
- X509_free(x509Ca);
-
- printf(resultFmt, passed);
-#endif
-}
-
-
-static void test_wolfSSL_X509_STORE_CTX(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA)
-
- X509_STORE_CTX* ctx;
- X509_STORE* str;
- X509* x509;
-#ifdef OPENSSL_ALL
- X509* x5092;
- STACK_OF(X509) *sk, *sk2, *sk3;
-#endif
-
- printf(testingFmt, "wolfSSL_X509_STORE_CTX()");
- AssertNotNull(ctx = X509_STORE_CTX_new());
- AssertNotNull((str = wolfSSL_X509_STORE_new()));
- AssertNotNull((x509 =
- wolfSSL_X509_load_certificate_file(svrCertFile, SSL_FILETYPE_PEM)));
- AssertIntEQ(X509_STORE_add_cert(str, x509), SSL_SUCCESS);
-#ifdef OPENSSL_ALL
- /* sk_X509_new only in OPENSSL_ALL */
- AssertNotNull(sk = sk_X509_new());
- AssertIntEQ(X509_STORE_CTX_init(ctx, str, x509, sk), SSL_SUCCESS);
-#else
- AssertIntEQ(X509_STORE_CTX_init(ctx, str, x509, NULL), SSL_SUCCESS);
-#endif
- AssertIntEQ(SSL_get_ex_data_X509_STORE_CTX_idx(), 0);
- X509_STORE_CTX_set_error(ctx, -5);
- X509_STORE_CTX_set_error(NULL, -5);
-
- X509_STORE_CTX_free(ctx);
-#ifdef OPENSSL_ALL
- sk_X509_free(sk);
-#endif
- #if defined(WOLFSSL_KEEP_STORE_CERTS) || defined(OPENSSL_ALL) || defined(WOLFSSL_QT)
- X509_STORE_free(str);
- X509_free(x509);
- #endif
-
- AssertNotNull(ctx = X509_STORE_CTX_new());
- X509_STORE_CTX_set_verify_cb(ctx, verify_cb);
- X509_STORE_CTX_free(ctx);
-
-#ifdef OPENSSL_ALL
- /* test X509_STORE_CTX_get(1)_chain */
- AssertNotNull((x509 = X509_load_certificate_file(svrCertFile,
- SSL_FILETYPE_PEM)));
- AssertNotNull((x5092 = X509_load_certificate_file(cliCertFile,
- SSL_FILETYPE_PEM)));
- AssertNotNull((sk = sk_X509_new()));
- AssertIntEQ(sk_X509_push(sk, x509), 1);
- AssertNotNull((str = X509_STORE_new()));
- AssertNotNull((ctx = X509_STORE_CTX_new()));
- AssertIntEQ(X509_STORE_CTX_init(ctx, str, x5092, sk), 1);
- AssertNull((sk2 = X509_STORE_CTX_get_chain(NULL)));
- AssertNotNull((sk2 = X509_STORE_CTX_get_chain(ctx)));
- AssertIntEQ(sk_num(sk2), 1); /* sanity, make sure chain has 1 cert */
- AssertNull((sk3 = X509_STORE_CTX_get1_chain(NULL)));
- AssertNotNull((sk3 = X509_STORE_CTX_get1_chain(ctx)));
- AssertIntEQ(sk_num(sk3), 1); /* sanity, make sure chain has 1 cert */
- X509_STORE_CTX_free(ctx);
- sk_X509_free(sk);
- #if defined(WOLFSSL_KEEP_STORE_CERTS) || defined(WOLFSSL_QT)
- X509_STORE_free(str);
- /* CTX certs not freed yet */
- X509_free(x5092);
- #endif
- /* sk2 freed as part of X509_STORE_CTX_free(), sk3 is dup so free here */
- sk_X509_free(sk3);
-#endif
-
- /* test X509_STORE_CTX_get/set_ex_data */
- {
- int i = 0, tmpData = 5;
- void* tmpDataRet;
- AssertNotNull(ctx = X509_STORE_CTX_new());
- #if defined(HAVE_EX_DATA) || defined(FORTRESS)
- for (i = 0; i < MAX_EX_DATA; i++) {
- AssertIntEQ(X509_STORE_CTX_set_ex_data(ctx, i, &tmpData),
- WOLFSSL_SUCCESS);
- tmpDataRet = (int*)X509_STORE_CTX_get_ex_data(ctx, i);
- AssertNotNull(tmpDataRet);
- AssertIntEQ(tmpData, *(int*)tmpDataRet);
- }
- #else
- AssertIntEQ(X509_STORE_CTX_set_ex_data(ctx, i, &tmpData),
- WOLFSSL_FAILURE);
- tmpDataRet = (int*)X509_STORE_CTX_get_ex_data(ctx, i);
- AssertNull(tmpDataRet);
- #endif
- X509_STORE_CTX_free(ctx);
- }
-
- printf(resultFmt, passed);
- #endif /* defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA) */
-}
-
-static void test_wolfSSL_X509_STORE_set_flags(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA)
-
- X509_STORE* store;
- X509* x509;
-
- printf(testingFmt, "wolfSSL_X509_STORE_set_flags()");
- AssertNotNull((store = wolfSSL_X509_STORE_new()));
- AssertNotNull((x509 =
- wolfSSL_X509_load_certificate_file(svrCertFile, WOLFSSL_FILETYPE_PEM)));
- AssertIntEQ(X509_STORE_add_cert(store, x509), WOLFSSL_SUCCESS);
-
-#ifdef HAVE_CRL
- AssertIntEQ(X509_STORE_set_flags(store, WOLFSSL_CRL_CHECKALL), WOLFSSL_SUCCESS);
-#else
- AssertIntEQ(X509_STORE_set_flags(store, WOLFSSL_CRL_CHECKALL),
- NOT_COMPILED_IN);
-#endif
-
- wolfSSL_X509_free(x509);
- wolfSSL_X509_STORE_free(store);
-
- printf(resultFmt, passed);
- #endif /* defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA) */
-}
-
-static void test_wolfSSL_X509_LOOKUP_load_file(void)
-{
- #if defined(OPENSSL_EXTRA) && defined(HAVE_CRL) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA)
- WOLFSSL_X509_STORE* store;
- WOLFSSL_X509_LOOKUP* lookup;
-
- printf(testingFmt, "wolfSSL_X509_LOOKUP_load_file()");
-
- AssertNotNull(store = wolfSSL_X509_STORE_new());
- AssertNotNull(lookup = X509_STORE_add_lookup(store, X509_LOOKUP_file()));
- AssertIntEQ(wolfSSL_X509_LOOKUP_load_file(lookup, "certs/client-ca.pem",
- X509_FILETYPE_PEM), 1);
- AssertIntEQ(wolfSSL_X509_LOOKUP_load_file(lookup, "certs/crl/crl2.pem",
- X509_FILETYPE_PEM), 1);
-
- if (store) {
- AssertIntEQ(wolfSSL_CertManagerVerify(store->cm, cliCertFile,
- WOLFSSL_FILETYPE_PEM), 1);
- AssertIntEQ(wolfSSL_CertManagerVerify(store->cm, svrCertFile,
- WOLFSSL_FILETYPE_PEM), ASN_NO_SIGNER_E);
- }
- AssertIntEQ(wolfSSL_X509_LOOKUP_load_file(lookup, "certs/ca-cert.pem",
- X509_FILETYPE_PEM), 1);
- if (store) {
- AssertIntEQ(wolfSSL_CertManagerVerify(store->cm, svrCertFile,
- WOLFSSL_FILETYPE_PEM), 1);
- }
-
- wolfSSL_X509_STORE_free(store);
-
- printf(resultFmt, passed);
- #endif /* defined(OPENSSL_EXTRA) && defined(HAVE_CRL) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA) */
-}
-
-static void test_wolfSSL_X509_STORE_CTX_set_time(void)
-{
- #if defined(OPENSSL_EXTRA)
- WOLFSSL_X509_STORE_CTX* ctx;
- time_t c_time;
-
- printf(testingFmt, "wolfSSL_X509_set_time()");
- AssertNotNull(ctx = wolfSSL_X509_STORE_CTX_new());
- c_time = 365*24*60*60;
- wolfSSL_X509_STORE_CTX_set_time(ctx, 0, c_time);
- AssertTrue(
- (ctx->param->flags & WOLFSSL_USE_CHECK_TIME) == WOLFSSL_USE_CHECK_TIME);
- AssertTrue(ctx->param->check_time == c_time);
- wolfSSL_X509_STORE_CTX_free(ctx);
-
- printf(resultFmt, passed);
- #endif /* OPENSSL_EXTRA */
-}
-
-static void test_wolfSSL_get0_param(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA)
- SSL_CTX* ctx;
- SSL* ssl;
- WOLFSSL_X509_VERIFY_PARAM* pParam;
-
- printf(testingFmt, "wolfSSL_get0_param()");
-
- #ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
- #else
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_client_method()));
- #endif
- AssertTrue(SSL_CTX_use_certificate_file(ctx, svrCertFile, SSL_FILETYPE_PEM));
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, SSL_FILETYPE_PEM));
- AssertNotNull(ssl = SSL_new(ctx));
-
- pParam = SSL_get0_param(ssl);
-
- (void)pParam;
-
- SSL_free(ssl);
- SSL_CTX_free(ctx);
- printf(resultFmt, passed);
-#endif /* OPENSSL_EXTRA && !defined(NO_RSA)*/
-}
-
-static void test_wolfSSL_X509_VERIFY_PARAM_set1_host(void)
-{
-#if defined(OPENSSL_EXTRA)
- const char host[] = "www.example.com";
- WOLFSSL_X509_VERIFY_PARAM* pParam;
-
- printf(testingFmt, "wolfSSL_X509_VERIFY_PARAM_set1_host()");
-
- AssertNotNull(pParam = (WOLFSSL_X509_VERIFY_PARAM*)XMALLOC(
- sizeof(WOLFSSL_X509_VERIFY_PARAM),
- HEAP_HINT, DYNAMIC_TYPE_OPENSSL));
-
- XMEMSET(pParam, 0, sizeof(WOLFSSL_X509_VERIFY_PARAM));
-
- X509_VERIFY_PARAM_set1_host(pParam, host, sizeof(host));
-
- AssertIntEQ(XMEMCMP(pParam->hostName, host, sizeof(host)), 0);
-
- XMEMSET(pParam, 0, sizeof(WOLFSSL_X509_VERIFY_PARAM));
-
- AssertIntNE(XMEMCMP(pParam->hostName, host, sizeof(host)), 0);
-
- XFREE(pParam, HEAP_HINT, DYNAMIC_TYPE_OPENSSL);
-
- printf(resultFmt, passed);
-#endif /* OPENSSL_EXTRA */
-}
-
-static void test_wolfSSL_X509_STORE_CTX_get0_store(void)
-{
- #if defined(OPENSSL_EXTRA)
- X509_STORE* store;
- X509_STORE_CTX* ctx;
- X509_STORE_CTX* ctx_no_init;
-
- printf(testingFmt, "wolfSSL_X509_STORE_CTX_get0_store()");
- AssertNotNull((store = X509_STORE_new()));
- AssertNotNull(ctx = X509_STORE_CTX_new());
- AssertNotNull(ctx_no_init = X509_STORE_CTX_new());
- AssertIntEQ(X509_STORE_CTX_init(ctx, store, NULL, NULL), SSL_SUCCESS);
-
- AssertNull(X509_STORE_CTX_get0_store(NULL));
- /* should return NULL if ctx has not bee initialized */
- AssertNull(X509_STORE_CTX_get0_store(ctx_no_init));
- AssertNotNull(X509_STORE_CTX_get0_store(ctx));
-
- wolfSSL_X509_STORE_CTX_free(ctx);
- wolfSSL_X509_STORE_CTX_free(ctx_no_init);
-#if defined(OPENSSL_ALL) || defined(WOLFSSL_QT)
- X509_STORE_free(store);
-#endif
-
- printf(resultFmt, passed);
- #endif /* OPENSSL_EXTRA */
-}
-
-static void test_wolfSSL_CTX_set_client_CA_list(void)
-{
-#if defined(OPENSSL_ALL) && !defined(NO_RSA) && !defined(NO_CERTS) && \
- !defined(NO_WOLFSSL_CLIENT)
- WOLFSSL_CTX* ctx;
- X509_NAME* name = NULL;
- STACK_OF(X509_NAME)* names = NULL;
- STACK_OF(X509_NAME)* ca_list = NULL;
- int i, names_len;
-
- printf(testingFmt, "wolfSSL_CTX_set_client_CA_list()");
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
- names = SSL_load_client_CA_file(cliCertFile);
- AssertNotNull(names);
- SSL_CTX_set_client_CA_list(ctx,names);
- AssertNotNull(ca_list = SSL_CTX_get_client_CA_list(ctx));
-
- AssertIntGT((names_len = sk_X509_NAME_num(names)), 0);
- for (i=0; i<names_len; i++) {
- AssertNotNull(name = sk_X509_NAME_value(names, i));
- AssertIntEQ(sk_X509_NAME_find(names, name), i);
- }
-
- wolfSSL_CTX_free(ctx);
- printf(resultFmt, passed);
-#endif /* OPENSSL_EXTRA && !NO_RSA && !NO_CERTS && !NO_WOLFSSL_CLIENT */
-}
-
-static void test_wolfSSL_CTX_add_client_CA(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(NO_CERTS) && \
- !defined(NO_WOLFSSL_CLIENT)
- WOLFSSL_CTX* ctx;
- WOLFSSL_X509* x509;
- WOLFSSL_X509* x509_a;
- STACK_OF(X509_NAME)* ca_list;
- int ret = 0;
-
- printf(testingFmt, "wolfSSL_CTX_add_client_CA()");
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_client_method()));
- /* Add client cert */
- AssertNotNull(x509 = X509_load_certificate_file(cliCertFile,
- SSL_FILETYPE_PEM));
- ret = SSL_CTX_add_client_CA(ctx, x509);
- AssertIntEQ(ret, SSL_SUCCESS);
- AssertNotNull(ca_list = SSL_CTX_get_client_CA_list(ctx));
- /* Add another client cert */
- AssertNotNull(x509_a = X509_load_certificate_file(cliCertFile,
- SSL_FILETYPE_PEM));
- AssertIntEQ(SSL_CTX_add_client_CA(ctx, x509_a), SSL_SUCCESS);
-
- X509_free(x509);
- X509_free(x509_a);
- SSL_CTX_free(ctx);
-
- printf(resultFmt, passed);
-#endif /* OPENSSL_EXTRA && !NO_RSA && !NO_CERTS && !NO_WOLFSSL_CLIENT */
-}
-
-static void test_wolfSSL_X509_NID(void)
-{
- #if (defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)) && \
- !defined(NO_RSA) && defined(USE_CERT_BUFFERS_2048) && !defined(NO_ASN)
- int sigType;
- int nameSz;
-
- X509* cert;
- EVP_PKEY* pubKeyTmp;
- X509_NAME* name;
-
- char commonName[80];
- char countryName[80];
- char localityName[80];
- char stateName[80];
- char orgName[80];
- char orgUnit[80];
-
- printf(testingFmt, "wolfSSL_X509_NID()");
- /* ------ PARSE ORIGINAL SELF-SIGNED CERTIFICATE ------ */
-
- /* convert cert from DER to internal WOLFSSL_X509 struct */
- AssertNotNull(cert = wolfSSL_X509_d2i(&cert, client_cert_der_2048,
- sizeof_client_cert_der_2048));
-
- /* ------ EXTRACT CERTIFICATE ELEMENTS ------ */
-
- /* extract PUBLIC KEY from cert */
- AssertNotNull(pubKeyTmp = X509_get_pubkey(cert));
-
- /* extract signatureType */
- AssertIntNE((sigType = wolfSSL_X509_get_signature_type(cert)), 0);
-
- /* extract subjectName info */
- AssertNotNull(name = X509_get_subject_name(cert));
- AssertIntEQ(X509_NAME_get_text_by_NID(name, -1, NULL, 0), -1);
- AssertIntGT((nameSz = X509_NAME_get_text_by_NID(name, ASN_COMMON_NAME,
- NULL, 0)), 0);
- AssertIntEQ(nameSz, 15);
- AssertIntGT((nameSz = X509_NAME_get_text_by_NID(name, ASN_COMMON_NAME,
- commonName, sizeof(commonName))), 0);
- AssertIntEQ(nameSz, 15);
- AssertIntEQ(XMEMCMP(commonName, "www.wolfssl.com", nameSz), 0);
- AssertIntGT((nameSz = X509_NAME_get_text_by_NID(name, ASN_COMMON_NAME,
- commonName, 9)), 0);
- AssertIntEQ(nameSz, 8);
- AssertIntEQ(XMEMCMP(commonName, "www.wolf", nameSz), 0);
-
- AssertIntGT((nameSz = X509_NAME_get_text_by_NID(name, ASN_COUNTRY_NAME,
- countryName, sizeof(countryName))), 0);
- AssertIntEQ(XMEMCMP(countryName, "US", nameSz), 0);
-
- AssertIntGT((nameSz = X509_NAME_get_text_by_NID(name, ASN_LOCALITY_NAME,
- localityName, sizeof(localityName))), 0);
- AssertIntEQ(XMEMCMP(localityName, "Bozeman", nameSz), 0);
-
- AssertIntGT((nameSz = X509_NAME_get_text_by_NID(name, ASN_STATE_NAME,
- stateName, sizeof(stateName))), 0);
- AssertIntEQ(XMEMCMP(stateName, "Montana", nameSz), 0);
-
- AssertIntGT((nameSz = X509_NAME_get_text_by_NID(name, ASN_ORG_NAME,
- orgName, sizeof(orgName))), 0);
- AssertIntEQ(XMEMCMP(orgName, "wolfSSL_2048", nameSz), 0);
-
- AssertIntGT((nameSz = X509_NAME_get_text_by_NID(name, ASN_ORGUNIT_NAME,
- orgUnit, sizeof(orgUnit))), 0);
- AssertIntEQ(XMEMCMP(orgUnit, "Programming-2048", nameSz), 0);
-
- EVP_PKEY_free(pubKeyTmp);
- X509_free(cert);
-
- printf(resultFmt, passed);
- #endif
-}
-
-static void test_wolfSSL_CTX_set_srp_username(void)
-{
-#if defined(OPENSSL_EXTRA) && defined(WOLFCRYPT_HAVE_SRP) \
- && !defined(NO_SHA256) && !defined(WC_NO_RNG)
- WOLFSSL_CTX* ctx;
- const char *username = "TESTUSER";
- const char *password = "TESTPASSWORD";
- int r;
-
- printf(testingFmt, "wolfSSL_CTX_set_srp_username()");
-
- ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
- AssertNotNull(ctx);
- r = wolfSSL_CTX_set_srp_username(ctx, (char *)username);
- AssertIntEQ(r,SSL_SUCCESS);
- wolfSSL_CTX_free(ctx);
-
- ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
- AssertNotNull(ctx);
- r = wolfSSL_CTX_set_srp_password(ctx, (char *)password);
- AssertIntEQ(r,SSL_SUCCESS);
- r = wolfSSL_CTX_set_srp_username(ctx, (char *)username);
- AssertIntEQ(r,SSL_SUCCESS);
- wolfSSL_CTX_free(ctx);
-
- printf(resultFmt, passed);
-#endif /* OPENSSL_EXTRA && WOLFCRYPT_HAVE_SRP */
- /* && !NO_SHA256 && !WC_NO_RNG */
-}
-
-static void test_wolfSSL_CTX_set_srp_password(void)
-{
-#if defined(OPENSSL_EXTRA) && defined(WOLFCRYPT_HAVE_SRP) \
- && !defined(NO_SHA256) && !defined(WC_NO_RNG)
- WOLFSSL_CTX* ctx;
- const char *username = "TESTUSER";
- const char *password = "TESTPASSWORD";
- int r;
-
- printf(testingFmt, "wolfSSL_CTX_set_srp_password()");
- ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
- AssertNotNull(ctx);
- r = wolfSSL_CTX_set_srp_password(ctx, (char *)password);
- AssertIntEQ(r,SSL_SUCCESS);
- wolfSSL_CTX_free(ctx);
-
- ctx = wolfSSL_CTX_new(wolfSSLv23_client_method());
- AssertNotNull(ctx);
- r = wolfSSL_CTX_set_srp_username(ctx, (char *)username);
- AssertIntEQ(r,SSL_SUCCESS);
- r = wolfSSL_CTX_set_srp_password(ctx, (char *)password);
- AssertIntEQ(r,SSL_SUCCESS);
- wolfSSL_CTX_free(ctx);
-
- printf(resultFmt, passed);
-#endif /* OPENSSL_EXTRA && WOLFCRYPT_HAVE_SRP */
- /* && !NO_SHA256 && !WC_NO_RNG */
-}
-
-static void test_wolfSSL_X509_STORE(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA)
- X509_STORE *store;
-
- #ifdef HAVE_CRL
- X509_CRL *crl;
- X509 *x509;
- const char crl_pem[] = "./certs/crl/crl.pem";
- const char svrCert[] = "./certs/server-cert.pem";
- XFILE fp;
-
- printf(testingFmt, "test_wolfSSL_X509_STORE");
- AssertNotNull(store = (X509_STORE *)X509_STORE_new());
- AssertNotNull((x509 =
- wolfSSL_X509_load_certificate_file(svrCert, SSL_FILETYPE_PEM)));
- AssertIntEQ(X509_STORE_add_cert(store, x509), SSL_SUCCESS);
- X509_free(x509);
-
- fp = XFOPEN(crl_pem, "rb");
- AssertTrue((fp != XBADFILE));
- AssertNotNull(crl = (X509_CRL *)PEM_read_X509_CRL(fp, (X509_CRL **)NULL, NULL, NULL));
- XFCLOSE(fp);
- AssertIntEQ(X509_STORE_add_crl(store, crl), SSL_SUCCESS);
- X509_CRL_free(crl);
- X509_STORE_free(store);
- #endif /* HAVE_CRL */
-
-
-
- #ifndef WOLFCRYPT_ONLY
- {
- SSL_CTX* ctx;
- #ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
- #else
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_client_method()));
- #endif
- AssertNotNull(store = (X509_STORE *)X509_STORE_new());
- SSL_CTX_set_cert_store(ctx, store);
- AssertNotNull(store = (X509_STORE *)X509_STORE_new());
- SSL_CTX_set_cert_store(ctx, store);
- SSL_CTX_free(ctx);
- }
- #endif
- printf(resultFmt, passed);
-#endif
- return;
-}
-
-static void test_wolfSSL_X509_STORE_load_locations(void)
-{
-#if (defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD)) && !defined(NO_FILESYSTEM)
- SSL_CTX *ctx;
- X509_STORE *store;
-
- const char ca_file[] = "./certs/ca-cert.pem";
- const char client_pem_file[] = "./certs/client-cert.pem";
- const char client_der_file[] = "./certs/client-cert.der";
- const char ecc_file[] = "./certs/ecc-key.pem";
- const char certs_path[] = "./certs/";
- const char bad_path[] = "./bad-path/";
-#ifdef HAVE_CRL
- const char crl_path[] = "./certs/crl/";
- const char crl_file[] = "./certs/crl/crl.pem";
-#endif
-
- printf(testingFmt, "wolfSSL_X509_STORE_load_locations");
-
-#ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(SSLv23_server_method()));
-#else
- AssertNotNull(ctx = SSL_CTX_new(SSLv23_client_method()));
-#endif
- AssertNotNull(store = SSL_CTX_get_cert_store(ctx));
- AssertIntEQ(wolfSSL_CertManagerLoadCA(store->cm, ca_file, NULL), WOLFSSL_SUCCESS);
-
- /* Test bad arguments */
- AssertIntEQ(X509_STORE_load_locations(NULL, ca_file, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(X509_STORE_load_locations(store, NULL, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(X509_STORE_load_locations(store, client_der_file, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(X509_STORE_load_locations(store, ecc_file, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(X509_STORE_load_locations(store, NULL, bad_path), WOLFSSL_FAILURE);
-
-#ifdef HAVE_CRL
- /* Test with CRL */
- AssertIntEQ(X509_STORE_load_locations(store, crl_file, NULL), WOLFSSL_SUCCESS);
- AssertIntEQ(X509_STORE_load_locations(store, NULL, crl_path), WOLFSSL_SUCCESS);
-#endif
-
- /* Test with CA */
- AssertIntEQ(X509_STORE_load_locations(store, ca_file, NULL), WOLFSSL_SUCCESS);
-
- /* Test with client_cert and certs path */
- AssertIntEQ(X509_STORE_load_locations(store, client_pem_file, NULL), WOLFSSL_SUCCESS);
- AssertIntEQ(X509_STORE_load_locations(store, NULL, certs_path), WOLFSSL_SUCCESS);
-
- SSL_CTX_free(ctx);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_BN(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_ASN)
- BIGNUM* a;
- BIGNUM* b;
- BIGNUM* c;
- BIGNUM* d;
- ASN1_INTEGER* ai;
- unsigned char value[1];
-
- printf(testingFmt, "wolfSSL_BN()");
-
- AssertNotNull(b = BN_new());
- AssertNotNull(c = BN_new());
- AssertNotNull(d = BN_new());
-
- value[0] = 0x03;
-
- AssertNotNull(ai = ASN1_INTEGER_new());
- /* at the moment hard setting since no set function */
- ai->data[0] = 0x02; /* tag for ASN_INTEGER */
- ai->data[1] = 0x01; /* length of integer */
- ai->data[2] = value[0];
-
- AssertNotNull(a = ASN1_INTEGER_to_BN(ai, NULL));
- ASN1_INTEGER_free(ai);
-
- value[0] = 0x02;
- AssertNotNull(BN_bin2bn(value, sizeof(value), b));
-
- value[0] = 0x05;
- AssertNotNull(BN_bin2bn(value, sizeof(value), c));
-
- /* a^b mod c = */
- AssertIntEQ(BN_mod_exp(d, NULL, b, c, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(BN_mod_exp(d, a, b, c, NULL), WOLFSSL_SUCCESS);
-
- /* check result 3^2 mod 5 */
- value[0] = 0;
- AssertIntEQ(BN_bn2bin(d, value), sizeof(value));
- AssertIntEQ((int)(value[0]), 4);
-
- /* a*b mod c = */
- AssertIntEQ(BN_mod_mul(d, NULL, b, c, NULL), SSL_FAILURE);
- AssertIntEQ(BN_mod_mul(d, a, b, c, NULL), SSL_SUCCESS);
-
- /* check result 3*2 mod 5 */
- value[0] = 0;
- AssertIntEQ(BN_bn2bin(d, value), sizeof(value));
- AssertIntEQ((int)(value[0]), 1);
-
- /* BN_mod_inverse test */
- value[0] = 0;
- BIGNUM *r = BN_new();
- BIGNUM *val = BN_mod_inverse(r,b,c,NULL);
- AssertIntEQ(BN_bn2bin(r, value), 1);
- AssertIntEQ((int)(value[0] & 0x03), 3);
- BN_free(val);
-
- AssertIntEQ(BN_set_word(a, 1), SSL_SUCCESS);
- AssertIntEQ(BN_set_word(b, 5), SSL_SUCCESS);
- AssertIntEQ(BN_is_word(a, (WOLFSSL_BN_ULONG)BN_get_word(a)), SSL_SUCCESS);
- AssertIntEQ(BN_is_word(a, 3), SSL_FAILURE);
- AssertIntEQ(BN_sub(c, a, b), SSL_SUCCESS);
-#if defined(WOLFSSL_KEY_GEN) || defined(HAVE_COMP_KEY)
- {
- char* ret;
- AssertNotNull(ret = BN_bn2dec(c));
- AssertIntEQ(XMEMCMP(ret, "-4", sizeof("-4")), 0);
- XFREE(ret, NULL, DYNAMIC_TYPE_OPENSSL);
- }
-#endif
- AssertIntEQ(BN_get_word(c), 4);
-
- BN_free(a);
- BN_free(b);
- BN_free(c);
- BN_clear_free(d);
-
- /* check that converting NULL and the null string returns an error */
- a = NULL;
- AssertIntLE(BN_hex2bn(&a, NULL), 0);
- AssertIntLE(BN_hex2bn(&a, ""), 0);
- AssertNull(a);
-
- /* check that getting a string and a bin of the same number are equal,
- * and that the comparison works EQ, LT and GT */
- AssertIntGT(BN_hex2bn(&a, "03"), 0);
- value[0] = 0x03;
- AssertNotNull(b = BN_new());
- AssertNotNull(BN_bin2bn(value, sizeof(value), b));
- value[0] = 0x04;
- AssertNotNull(c = BN_new());
- AssertNotNull(BN_bin2bn(value, sizeof(value), c));
- AssertIntEQ(BN_cmp(a, b), 0);
- AssertIntLT(BN_cmp(a, c), 0);
- AssertIntGT(BN_cmp(c, b), 0);
-
- AssertIntEQ(BN_set_word(a, 0), 1);
- AssertIntEQ(BN_is_zero(a), 1);
- AssertIntEQ(BN_set_bit(a, 0x45), 1);
- AssertIntEQ(BN_is_zero(a), 0);
- AssertIntEQ(BN_is_bit_set(a, 0x45), 1);
- AssertIntEQ(BN_clear_bit(a, 0x45), 1);
- AssertIntEQ(BN_is_bit_set(a, 0x45), 0);
- AssertIntEQ(BN_is_zero(a), 1);
-
- BN_free(a);
- BN_free(b);
- BN_free(c);
-
- #if defined(USE_FAST_MATH) && !defined(HAVE_WOLF_BIGINT)
- {
- BIGNUM *ap;
- BIGNUM bv;
- BIGNUM cv;
- BIGNUM dv;
-
- AssertNotNull(ap = BN_new());
- BN_init(&bv);
- BN_init(&cv);
- BN_init(&dv);
-
- value[0] = 0x3;
- AssertNotNull(BN_bin2bn(value, sizeof(value), ap));
-
- value[0] = 0x02;
- AssertNotNull(BN_bin2bn(value, sizeof(value), &bv));
-
- value[0] = 0x05;
- AssertNotNull(BN_bin2bn(value, sizeof(value), &cv));
-
- /* a^b mod c = */
- AssertIntEQ(BN_mod_exp(&dv, NULL, &bv, &cv, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(BN_mod_exp(&dv, ap, &bv, &cv, NULL), WOLFSSL_SUCCESS);
-
- /* check result 3^2 mod 5 */
- value[0] = 0;
- AssertIntEQ(BN_bn2bin(&dv, value), sizeof(value));
- AssertIntEQ((int)(value[0]), 4);
-
- /* a*b mod c = */
- AssertIntEQ(BN_mod_mul(&dv, NULL, &bv, &cv, NULL), SSL_FAILURE);
- AssertIntEQ(BN_mod_mul(&dv, ap, &bv, &cv, NULL), SSL_SUCCESS);
-
- /* check result 3*2 mod 5 */
- value[0] = 0;
- AssertIntEQ(BN_bn2bin(&dv, value), sizeof(value));
- AssertIntEQ((int)(value[0]), 1);
-
- BN_free(ap);
- }
- #endif
-
- printf(resultFmt, passed);
- #endif /* defined(OPENSSL_EXTRA) && !defined(NO_ASN) */
-}
-
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA)
-#define TEST_ARG 0x1234
-static void msg_cb(int write_p, int version, int content_type,
- const void *buf, size_t len, SSL *ssl, void *arg)
-{
- (void)write_p;
- (void)version;
- (void)content_type;
- (void)buf;
- (void)len;
- (void)ssl;
-
- AssertTrue(arg == (void*)TEST_ARG);
-}
-#endif
-
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && defined(DEBUG_WOLFSSL) && \
- defined(HAVE_IO_TESTS_DEPENDENCIES) && !defined(NO_WOLFSSL_CLIENT) && \
- !defined(NO_WOLFSSL_SERVER)
-#ifndef SINGLE_THREADED
-#if defined(SESSION_CERTS)
-#include "wolfssl/internal.h"
-#endif
-static int msgCb(SSL_CTX *ctx, SSL *ssl)
-{
- (void) ctx;
- (void) ssl;
- #ifdef WOLFSSL_QT
- STACK_OF(X509)* sk;
- X509* x509;
- int i, num;
- BIO* bio;
- #endif
- printf("\n===== msgcb called ====\n");
- #if defined(SESSION_CERTS) && defined(TEST_PEER_CERT_CHAIN)
- AssertTrue(SSL_get_peer_cert_chain(ssl) != NULL);
- AssertIntEQ(((WOLFSSL_X509_CHAIN *)SSL_get_peer_cert_chain(ssl))->count, 1);
- #endif
-
- #ifdef WOLFSSL_QT
- bio = BIO_new(BIO_s_file());
- BIO_set_fp(bio, stdout, BIO_NOCLOSE);
- sk = SSL_get_peer_cert_chain(ssl);
- AssertNotNull(sk);
- if (!sk) {
- BIO_free(bio);
- return SSL_FAILURE;
- }
- num = sk_X509_num(sk);
- AssertTrue(num > 0);
- for (i = 0; i < num; i++) {
- x509 = sk_X509_value(sk,i);
- AssertNotNull(x509);
- if (!x509)
- break;
- printf("Certificate at index [%d] = :\n",i);
- X509_print(bio,x509);
- printf("\n\n");
- }
- BIO_free(bio);
- #endif
- return SSL_SUCCESS;
-}
-#endif
-#endif
-
-static void test_wolfSSL_msgCb(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && defined(DEBUG_WOLFSSL) && \
- defined(HAVE_IO_TESTS_DEPENDENCIES) && !defined(NO_WOLFSSL_CLIENT) && \
- !defined(NO_WOLFSSL_SERVER)
-
- tcp_ready ready;
- func_args client_args;
- func_args server_args;
- #ifndef SINGLE_THREADED
- THREAD_TYPE serverThread;
- #endif
- callback_functions client_cb;
- callback_functions server_cb;
-
- printf(testingFmt, "test_wolfSSL_msgCb");
-
-/* create a failed connection and inspect the error */
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
- XMEMSET(&client_args, 0, sizeof(func_args));
- XMEMSET(&server_args, 0, sizeof(func_args));
-
- StartTCP();
- InitTcpReady(&ready);
-
- XMEMSET(&client_cb, 0, sizeof(callback_functions));
- XMEMSET(&server_cb, 0, sizeof(callback_functions));
-#ifndef WOLFSSL_NO_TLS12
- client_cb.method = wolfTLSv1_2_client_method;
- server_cb.method = wolfTLSv1_2_server_method;
-#else
- client_cb.method = wolfTLSv1_3_client_method;
- server_cb.method = wolfTLSv1_3_server_method;
-#endif
-
- server_args.signal = &ready;
- server_args.callbacks = &server_cb;
- client_args.signal = &ready;
- client_args.callbacks = &client_cb;
- client_args.return_code = TEST_FAIL;
-
- #ifndef SINGLE_THREADED
- start_thread(test_server_nofail, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
- test_client_nofail(&client_args, (void *)msgCb);
- join_thread(serverThread);
- AssertTrue(client_args.return_code);
- AssertTrue(server_args.return_code);
- #endif
-
- FreeTcpReady(&ready);
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- printf(resultFmt, passed);
-
-#endif
-}
-
-static void test_wolfSSL_either_side(void)
-{
-#if (defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)) && \
- !defined(NO_FILESYSTEM) && defined(HAVE_IO_TESTS_DEPENDENCIES) && \
- !defined(NO_WOLFSSL_CLIENT) && !defined(NO_WOLFSSL_SERVER)
-
- tcp_ready ready;
- func_args client_args;
- func_args server_args;
- #ifndef SINGLE_THREADED
- THREAD_TYPE serverThread;
- #endif
- callback_functions client_cb;
- callback_functions server_cb;
-
- printf(testingFmt, "test_wolfSSL_either_side");
-
-/* create a failed connection and inspect the error */
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
- XMEMSET(&client_args, 0, sizeof(func_args));
- XMEMSET(&server_args, 0, sizeof(func_args));
-
- StartTCP();
- InitTcpReady(&ready);
-
- XMEMSET(&client_cb, 0, sizeof(callback_functions));
- XMEMSET(&server_cb, 0, sizeof(callback_functions));
-
- /* Use same CTX for both client and server */
- client_cb.ctx = wolfSSL_CTX_new(wolfSSLv23_method());
- AssertNotNull(client_cb.ctx);
- server_cb.ctx = client_cb.ctx;
-
- server_args.signal = &ready;
- server_args.callbacks = &server_cb;
- client_args.signal = &ready;
- client_args.callbacks = &client_cb;
- client_args.return_code = TEST_FAIL;
-
- #ifndef SINGLE_THREADED
- start_thread(test_server_nofail, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
- test_client_nofail(&client_args, NULL);
- join_thread(serverThread);
- AssertTrue(client_args.return_code);
- AssertTrue(server_args.return_code);
- #endif
-
- wolfSSL_CTX_free(client_cb.ctx);
-
- FreeTcpReady(&ready);
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- printf(resultFmt, passed);
-
-#endif
-}
-
-static void test_wolfSSL_DTLS_either_side(void)
-{
-#if (defined(OPENSSL_EXTRA) || defined(WOLFSSL_EITHER_SIDE)) && \
- !defined(NO_FILESYSTEM) && defined(HAVE_IO_TESTS_DEPENDENCIES) && \
- !defined(NO_WOLFSSL_CLIENT) && !defined(NO_WOLFSSL_SERVER) && \
- defined(WOLFSSL_DTLS)
-
- tcp_ready ready;
- func_args client_args;
- func_args server_args;
- #ifndef SINGLE_THREADED
- THREAD_TYPE serverThread;
- #endif
- callback_functions client_cb;
- callback_functions server_cb;
-
- printf(testingFmt, "test_wolfSSL_DTLS_either_side");
-
-/* create a failed connection and inspect the error */
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
- XMEMSET(&client_args, 0, sizeof(func_args));
- XMEMSET(&server_args, 0, sizeof(func_args));
-
- StartTCP();
- InitTcpReady(&ready);
-
- XMEMSET(&client_cb, 0, sizeof(callback_functions));
- XMEMSET(&server_cb, 0, sizeof(callback_functions));
-
- /* Use same CTX for both client and server */
- client_cb.ctx = wolfSSL_CTX_new(wolfDTLS_method());
- AssertNotNull(client_cb.ctx);
- server_cb.ctx = client_cb.ctx;
-
- server_args.signal = &ready;
- server_args.callbacks = &server_cb;
- client_args.signal = &ready;
- client_args.callbacks = &client_cb;
- client_args.return_code = TEST_FAIL;
-
- #ifndef SINGLE_THREADED
- start_thread(test_server_nofail, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
- test_client_nofail(&client_args, NULL);
- join_thread(serverThread);
- AssertTrue(client_args.return_code);
- AssertTrue(server_args.return_code);
- #endif
-
- wolfSSL_CTX_free(client_cb.ctx);
-
- FreeTcpReady(&ready);
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- printf(resultFmt, passed);
-
-#endif
-}
-
-static void test_generate_cookie(void)
-{
-#if defined(WOLFSSL_DTLS) && defined(OPENSSL_EXTRA)
- SSL_CTX* ctx;
- SSL* ssl;
- byte buf[FOURK_BUF] = {0};
-
- printf(testingFmt, "test_generate_cookie");
-
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfDTLS_method()));
- AssertNotNull(ssl = SSL_new(ctx));
-
- /* Test unconnected */
- AssertIntEQ(EmbedGenerateCookie(ssl, buf, FOURK_BUF, NULL), GEN_COOKIE_E);
-
- wolfSSL_CTX_SetGenCookie(ctx, EmbedGenerateCookie);
-
- wolfSSL_SetCookieCtx(ssl, ctx);
-
- AssertNotNull(wolfSSL_GetCookieCtx(ssl));
-
- AssertNull(wolfSSL_GetCookieCtx(NULL));
-
- SSL_free(ssl);
- SSL_CTX_free(ctx);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_set_options(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA)
- SSL* ssl;
- SSL_CTX* ctx;
- char appData[] = "extra msg";
-
- unsigned char protos[] = {
- 7, 't', 'l', 's', '/', '1', '.', '2',
- 8, 'h', 't', 't', 'p', '/', '1', '.', '1'
- };
- unsigned int len = sizeof(protos);
-
- void *arg = (void *)TEST_ARG;
-
- printf(testingFmt, "wolfSSL_set_options()");
-
-#ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
-#else
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_client_method()));
-#endif
- AssertTrue(SSL_CTX_use_certificate_file(ctx, svrCertFile, SSL_FILETYPE_PEM));
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, SSL_FILETYPE_PEM));
-
- AssertTrue(SSL_CTX_set_options(ctx, SSL_OP_NO_TLSv1) == SSL_OP_NO_TLSv1);
- AssertTrue(SSL_CTX_get_options(ctx) == SSL_OP_NO_TLSv1);
-
- AssertIntGT((int)SSL_CTX_set_options(ctx, (SSL_OP_COOKIE_EXCHANGE |
- SSL_OP_NO_SSLv2)), 0);
- AssertTrue((SSL_CTX_set_options(ctx, SSL_OP_COOKIE_EXCHANGE) &
- SSL_OP_COOKIE_EXCHANGE) == SSL_OP_COOKIE_EXCHANGE);
- AssertTrue((SSL_CTX_set_options(ctx, SSL_OP_NO_TLSv1_2) &
- SSL_OP_NO_TLSv1_2) == SSL_OP_NO_TLSv1_2);
- AssertTrue((SSL_CTX_set_options(ctx, SSL_OP_NO_COMPRESSION) &
- SSL_OP_NO_COMPRESSION) == SSL_OP_NO_COMPRESSION);
- AssertNull((SSL_CTX_clear_options(ctx, SSL_OP_NO_COMPRESSION) &
- SSL_OP_NO_COMPRESSION));
-
- SSL_CTX_free(ctx);
-
-#ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
-#else
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_client_method()));
-#endif
- AssertTrue(SSL_CTX_use_certificate_file(ctx, svrCertFile, SSL_FILETYPE_PEM));
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, SSL_FILETYPE_PEM));
-
- AssertNotNull(ssl = SSL_new(ctx));
-#if defined(HAVE_EX_DATA) || defined(FORTRESS)
- AssertIntEQ(SSL_set_app_data(ssl, (void*)appData), SSL_SUCCESS);
- AssertNotNull(SSL_get_app_data((const WOLFSSL*)ssl));
- if (ssl) {
- AssertIntEQ(XMEMCMP(SSL_get_app_data((const WOLFSSL*)ssl),
- appData, sizeof(appData)), 0);
- }
-#else
- AssertIntEQ(SSL_set_app_data(ssl, (void*)appData), SSL_FAILURE);
- AssertNull(SSL_get_app_data((const WOLFSSL*)ssl));
-#endif
-
- AssertTrue(SSL_set_options(ssl, SSL_OP_NO_TLSv1) == SSL_OP_NO_TLSv1);
- AssertTrue(SSL_get_options(ssl) == SSL_OP_NO_TLSv1);
-
- AssertIntGT((int)SSL_set_options(ssl, (SSL_OP_COOKIE_EXCHANGE |
- WOLFSSL_OP_NO_SSLv2)), 0);
- AssertTrue((SSL_set_options(ssl, SSL_OP_COOKIE_EXCHANGE) &
- SSL_OP_COOKIE_EXCHANGE) == SSL_OP_COOKIE_EXCHANGE);
- AssertTrue((SSL_set_options(ssl, SSL_OP_NO_TLSv1_2) &
- SSL_OP_NO_TLSv1_2) == SSL_OP_NO_TLSv1_2);
- AssertTrue((SSL_set_options(ssl, SSL_OP_NO_COMPRESSION) &
- SSL_OP_NO_COMPRESSION) == SSL_OP_NO_COMPRESSION);
- AssertNull((SSL_clear_options(ssl, SSL_OP_NO_COMPRESSION) &
- SSL_OP_NO_COMPRESSION));
-
- AssertTrue(SSL_set_msg_callback(ssl, msg_cb) == SSL_SUCCESS);
- SSL_set_msg_callback_arg(ssl, arg);
-
- AssertTrue(SSL_CTX_set_alpn_protos(ctx, protos, len) == SSL_SUCCESS);
-
- SSL_free(ssl);
- SSL_CTX_free(ctx);
-
- printf(resultFmt, passed);
-#endif /* defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA) */
-}
-
-static void test_wolfSSL_sk_SSL_CIPHER(void)
-{
- #if defined(OPENSSL_ALL) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA)
- SSL* ssl;
- SSL_CTX* ctx;
- STACK_OF(SSL_CIPHER) *sk, *dup;
-
- printf(testingFmt, "wolfSSL_sk_SSL_CIPHER_*()");
-
-#ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
-#else
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_client_method()));
-#endif
- AssertTrue(SSL_CTX_use_certificate_file(ctx, svrCertFile, SSL_FILETYPE_PEM));
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, SSL_FILETYPE_PEM));
- AssertNotNull(ssl = SSL_new(ctx));
- AssertNotNull(sk = SSL_get_ciphers(ssl));
- AssertNotNull(dup = sk_SSL_CIPHER_dup(sk));
- AssertIntGT(sk_SSL_CIPHER_num(sk), 0);
- AssertIntEQ(sk_SSL_CIPHER_num(sk), sk_SSL_CIPHER_num(dup));
-
- /* error case because connection has not been established yet */
- AssertIntEQ(sk_SSL_CIPHER_find(sk, SSL_get_current_cipher(ssl)), -1);
- sk_SSL_CIPHER_free(dup);
-
- /* sk is pointer to internal struct that should be free'd in SSL_free */
- SSL_free(ssl);
- SSL_CTX_free(ctx);
-
- printf(resultFmt, passed);
- #endif /* defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA) */
-}
-
-/* Testing wolfSSL_set_tlsext_status_type function.
- * PRE: OPENSSL and HAVE_CERTIFICATE_STATUS_REQUEST defined.
- */
-static void test_wolfSSL_set_tlsext_status_type(void){
- #if defined(OPENSSL_EXTRA) && defined(HAVE_CERTIFICATE_STATUS_REQUEST) && \
- !defined(NO_RSA) && !defined(NO_WOLFSSL_SERVER)
- SSL* ssl;
- SSL_CTX* ctx;
-
- printf(testingFmt, "wolfSSL_set_tlsext_status_type()");
-
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
- AssertTrue(SSL_CTX_use_certificate_file(ctx, svrCertFile, SSL_FILETYPE_PEM));
- AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, SSL_FILETYPE_PEM));
- AssertNotNull(ssl = SSL_new(ctx));
- AssertTrue(SSL_set_tlsext_status_type(ssl,TLSEXT_STATUSTYPE_ocsp)
- == SSL_SUCCESS);
- SSL_free(ssl);
- SSL_CTX_free(ctx);
- #endif /* OPENSSL_EXTRA && HAVE_CERTIFICATE_STATUS_REQUEST && !NO_RSA */
-}
-
-static void test_wolfSSL_PEM_read_bio(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA)
- byte buff[5300];
- XFILE f;
- int bytes;
- X509* x509;
- BIO* bio = NULL;
- BUF_MEM* buf;
-
- printf(testingFmt, "wolfSSL_PEM_read_bio()");
-
- f = XFOPEN(cliCertFile, "rb");
- AssertTrue((f != XBADFILE));
- bytes = (int)XFREAD(buff, 1, sizeof(buff), f);
- XFCLOSE(f);
-
- AssertNull(x509 = PEM_read_bio_X509_AUX(bio, NULL, NULL, NULL));
- AssertNotNull(bio = BIO_new_mem_buf((void*)buff, bytes));
- AssertNotNull(x509 = PEM_read_bio_X509_AUX(bio, NULL, NULL, NULL));
- AssertIntEQ((int)BIO_set_fd(bio, 0, BIO_CLOSE), 1);
- AssertIntEQ(BIO_set_close(bio, BIO_NOCLOSE), 1);
- AssertIntEQ(BIO_set_close(NULL, BIO_NOCLOSE), 1);
- AssertIntEQ(SSL_SUCCESS, BIO_get_mem_ptr(bio, &buf));
-
- BIO_free(bio);
- BUF_MEM_free(buf);
- X509_free(x509);
-
- printf(resultFmt, passed);
- #endif /* defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA) */
-}
-
-
-#if defined(OPENSSL_EXTRA)
-static long bioCallback(BIO *bio, int cmd, const char* argp, int argi,
- long argl, long ret)
-{
- (void)bio;
- (void)cmd;
- (void)argp;
- (void)argi;
- (void)argl;
- return ret;
-}
-#endif
-
-
-static void test_wolfSSL_BIO(void)
-{
- #if defined(OPENSSL_EXTRA)
- const unsigned char* p;
- byte buff[20];
- BIO* bio1;
- BIO* bio2;
- BIO* bio3;
- char* bufPt;
- int i;
-
- printf(testingFmt, "wolfSSL_BIO()");
-
- for (i = 0; i < 20; i++) {
- buff[i] = i;
- }
-
- /* Creating and testing type BIO_s_bio */
- AssertNotNull(bio1 = BIO_new(BIO_s_bio()));
- AssertNotNull(bio2 = BIO_new(BIO_s_bio()));
- AssertNotNull(bio3 = BIO_new(BIO_s_bio()));
-
- /* read/write before set up */
- AssertIntEQ(BIO_read(bio1, buff, 2), WOLFSSL_BIO_UNSET);
- AssertIntEQ(BIO_write(bio1, buff, 2), WOLFSSL_BIO_UNSET);
-
- AssertIntEQ(BIO_set_nbio(bio1, 1), 1);
- AssertIntEQ(BIO_set_write_buf_size(bio1, 20), WOLFSSL_SUCCESS);
- AssertIntEQ(BIO_set_write_buf_size(bio2, 8), WOLFSSL_SUCCESS);
- AssertIntEQ(BIO_make_bio_pair(bio1, bio2), WOLFSSL_SUCCESS);
-
- AssertIntEQ(BIO_nwrite(bio1, &bufPt, 10), 10);
- XMEMCPY(bufPt, buff, 10);
- AssertIntEQ(BIO_write(bio1, buff + 10, 10), 10);
- /* write buffer full */
- AssertIntEQ(BIO_write(bio1, buff, 10), WOLFSSL_BIO_ERROR);
- AssertIntEQ(BIO_flush(bio1), WOLFSSL_SUCCESS);
- AssertIntEQ((int)BIO_ctrl_pending(bio1), 0);
-
- /* write the other direction with pair */
- AssertIntEQ((int)BIO_nwrite(bio2, &bufPt, 10), 8);
- XMEMCPY(bufPt, buff, 8);
- AssertIntEQ(BIO_write(bio2, buff, 10), WOLFSSL_BIO_ERROR);
-
- /* try read */
- AssertIntEQ((int)BIO_ctrl_pending(bio1), 8);
- AssertIntEQ((int)BIO_ctrl_pending(bio2), 20);
-
- /* try read using ctrl function */
- AssertIntEQ((int)BIO_ctrl(bio1, BIO_CTRL_WPENDING, 0, NULL), 8);
- AssertIntEQ((int)BIO_ctrl(bio1, BIO_CTRL_PENDING, 0, NULL), 8);
- AssertIntEQ((int)BIO_ctrl(bio2, BIO_CTRL_WPENDING, 0, NULL), 20);
- AssertIntEQ((int)BIO_ctrl(bio2, BIO_CTRL_PENDING, 0, NULL), 20);
-
- AssertIntEQ(BIO_nread(bio2, &bufPt, (int)BIO_ctrl_pending(bio2)), 20);
- for (i = 0; i < 20; i++) {
- AssertIntEQ((int)bufPt[i], i);
- }
- AssertIntEQ(BIO_nread(bio2, &bufPt, 1), WOLFSSL_BIO_ERROR);
- AssertIntEQ(BIO_nread(bio1, &bufPt, (int)BIO_ctrl_pending(bio1)), 8);
- for (i = 0; i < 8; i++) {
- AssertIntEQ((int)bufPt[i], i);
- }
- AssertIntEQ(BIO_nread(bio1, &bufPt, 1), WOLFSSL_BIO_ERROR);
- AssertIntEQ(BIO_ctrl_reset_read_request(bio1), 1);
-
- /* new pair */
- AssertIntEQ(BIO_make_bio_pair(bio1, bio3), WOLFSSL_FAILURE);
- BIO_free(bio2); /* free bio2 and automatically remove from pair */
- AssertIntEQ(BIO_make_bio_pair(bio1, bio3), WOLFSSL_SUCCESS);
- AssertIntEQ((int)BIO_ctrl_pending(bio3), 0);
- AssertIntEQ(BIO_nread(bio3, &bufPt, 10), WOLFSSL_BIO_ERROR);
-
- /* test wrap around... */
- AssertIntEQ(BIO_reset(bio1), 0);
- AssertIntEQ(BIO_reset(bio3), 0);
-
- /* fill write buffer, read only small amount then write again */
- AssertIntEQ(BIO_nwrite(bio1, &bufPt, 20), 20);
- XMEMCPY(bufPt, buff, 20);
- AssertIntEQ(BIO_nread(bio3, &bufPt, 4), 4);
- for (i = 0; i < 4; i++) {
- AssertIntEQ(bufPt[i], i);
- }
-
- /* try writing over read index */
- AssertIntEQ(BIO_nwrite(bio1, &bufPt, 5), 4);
- XMEMSET(bufPt, 0, 4);
- AssertIntEQ((int)BIO_ctrl_pending(bio3), 20);
-
- /* read and write 0 bytes */
- AssertIntEQ(BIO_nread(bio3, &bufPt, 0), 0);
- AssertIntEQ(BIO_nwrite(bio1, &bufPt, 0), 0);
-
- /* should read only to end of write buffer then need to read again */
- AssertIntEQ(BIO_nread(bio3, &bufPt, 20), 16);
- for (i = 0; i < 16; i++) {
- AssertIntEQ(bufPt[i], buff[4 + i]);
- }
-
- AssertIntEQ(BIO_nread(bio3, NULL, 0), WOLFSSL_FAILURE);
- AssertIntEQ(BIO_nread0(bio3, &bufPt), 4);
- for (i = 0; i < 4; i++) {
- AssertIntEQ(bufPt[i], 0);
- }
-
- /* read index should not have advanced with nread0 */
- AssertIntEQ(BIO_nread(bio3, &bufPt, 5), 4);
- for (i = 0; i < 4; i++) {
- AssertIntEQ(bufPt[i], 0);
- }
-
- /* write and fill up buffer checking reset of index state */
- AssertIntEQ(BIO_nwrite(bio1, &bufPt, 20), 20);
- XMEMCPY(bufPt, buff, 20);
-
- /* test reset on data in bio1 write buffer */
- AssertIntEQ(BIO_reset(bio1), 0);
- AssertIntEQ((int)BIO_ctrl_pending(bio3), 0);
- AssertIntEQ(BIO_nread(bio3, &bufPt, 3), WOLFSSL_BIO_ERROR);
- AssertIntEQ(BIO_nwrite(bio1, &bufPt, 20), 20);
- AssertIntEQ((int)BIO_ctrl(bio1, BIO_CTRL_INFO, 0, &p), 20);
- AssertNotNull(p);
- XMEMCPY(bufPt, buff, 20);
- AssertIntEQ(BIO_nread(bio3, &bufPt, 6), 6);
- for (i = 0; i < 6; i++) {
- AssertIntEQ(bufPt[i], i);
- }
-
- /* test case of writing twice with offset read index */
- AssertIntEQ(BIO_nwrite(bio1, &bufPt, 3), 3);
- AssertIntEQ(BIO_nwrite(bio1, &bufPt, 4), 3); /* try overwriting */
- AssertIntEQ(BIO_nwrite(bio1, &bufPt, 4), WOLFSSL_BIO_ERROR);
- AssertIntEQ(BIO_nread(bio3, &bufPt, 0), 0);
- AssertIntEQ(BIO_nwrite(bio1, &bufPt, 4), WOLFSSL_BIO_ERROR);
- AssertIntEQ(BIO_nread(bio3, &bufPt, 1), 1);
- AssertIntEQ(BIO_nwrite(bio1, &bufPt, 4), 1);
- AssertIntEQ(BIO_nwrite(bio1, &bufPt, 4), WOLFSSL_BIO_ERROR);
-
- BIO_free(bio1);
- BIO_free(bio3);
-
- #if defined(OPENSSL_ALL) || defined(WOLFSSL_ASIO)
- {
- BIO* bioA = NULL;
- BIO* bioB = NULL;
- AssertIntEQ(BIO_new_bio_pair(NULL, 256, NULL, 256), BAD_FUNC_ARG);
- AssertIntEQ(BIO_new_bio_pair(&bioA, 256, &bioB, 256), WOLFSSL_SUCCESS);
- BIO_free(bioA);
- bioA = NULL;
- BIO_free(bioB);
- bioB = NULL;
- }
- #endif /* OPENSSL_ALL || WOLFSSL_ASIO */
-
- /* BIOs with file pointers */
- #if !defined(NO_FILESYSTEM)
- {
- XFILE f1;
- XFILE f2;
- BIO* f_bio1;
- BIO* f_bio2;
- unsigned char cert[300];
- char testFile[] = "tests/bio_write_test.txt";
- char msg[] = "bio_write_test.txt contains the first 300 bytes of certs/server-cert.pem\ncreated by tests/unit.test\n\n";
-
- AssertNotNull(f_bio1 = BIO_new(BIO_s_file()));
- AssertNotNull(f_bio2 = BIO_new(BIO_s_file()));
-
- AssertIntEQ((int)BIO_set_mem_eof_return(f_bio1, -1), 0);
- AssertIntEQ((int)BIO_set_mem_eof_return(NULL, -1), 0);
-
- f1 = XFOPEN(svrCertFile, "rwb");
- AssertTrue((f1 != XBADFILE));
- AssertIntEQ((int)BIO_set_fp(f_bio1, f1, BIO_CLOSE), WOLFSSL_SUCCESS);
- AssertIntEQ(BIO_write_filename(f_bio2, testFile),
- WOLFSSL_SUCCESS);
-
- AssertIntEQ(BIO_read(f_bio1, cert, sizeof(cert)), sizeof(cert));
- AssertIntEQ(BIO_write(f_bio2, msg, sizeof(msg)), sizeof(msg));
- AssertIntEQ(BIO_write(f_bio2, cert, sizeof(cert)), sizeof(cert));
-
- AssertIntEQ((int)BIO_get_fp(f_bio2, &f2), WOLFSSL_SUCCESS);
- AssertIntEQ(BIO_reset(f_bio2), 0);
- AssertIntEQ(BIO_seek(f_bio2, 4), 0);
-
- BIO_free(f_bio1);
- BIO_free(f_bio2);
-
- AssertNotNull(f_bio1 = BIO_new_file(svrCertFile, "rwb"));
- AssertIntEQ((int)BIO_set_mem_eof_return(f_bio1, -1), 0);
- AssertIntEQ(BIO_read(f_bio1, cert, sizeof(cert)), sizeof(cert));
- BIO_free(f_bio1);
-
- }
- #endif /* !defined(NO_FILESYSTEM) */
-
- /* BIO info callback */
- {
- const char* testArg = "test";
- BIO* cb_bio;
- AssertNotNull(cb_bio = BIO_new(BIO_s_mem()));
-
- BIO_set_callback(cb_bio, bioCallback);
- AssertNotNull(BIO_get_callback(cb_bio));
- BIO_set_callback(cb_bio, NULL);
- AssertNull(BIO_get_callback(cb_bio));
-
- BIO_set_callback_arg(cb_bio, (char*)testArg);
- AssertStrEQ(BIO_get_callback_arg(cb_bio), testArg);
- AssertNull(BIO_get_callback_arg(NULL));
-
- BIO_free(cb_bio);
- }
-
- /* BIO_vfree */
- AssertNotNull(bio1 = BIO_new(BIO_s_bio()));
- BIO_vfree(NULL);
- BIO_vfree(bio1);
-
- printf(resultFmt, passed);
- #endif
-}
-
-
-static void test_wolfSSL_ASN1_STRING(void)
-{
- #if defined(OPENSSL_EXTRA)
- ASN1_STRING* str = NULL;
- const char data[] = "hello wolfSSL";
-
- printf(testingFmt, "wolfSSL_ASN1_STRING()");
-
- AssertNotNull(str = ASN1_STRING_type_new(V_ASN1_OCTET_STRING));
- AssertIntEQ(ASN1_STRING_type(str), V_ASN1_OCTET_STRING);
- AssertIntEQ(ASN1_STRING_set(str, (const void*)data, sizeof(data)), 1);
- AssertIntEQ(ASN1_STRING_set(str, (const void*)data, -1), 1);
- AssertIntEQ(ASN1_STRING_set(str, NULL, -1), 0);
-
- ASN1_STRING_free(str);
-
- printf(resultFmt, passed);
- #endif
-}
-
-static void test_wolfSSL_ASN1_BIT_STRING(void)
-{
-#ifdef OPENSSL_ALL
- ASN1_BIT_STRING* str;
-
- printf(testingFmt, "test_wolfSSL_ASN1_BIT_STRING()");
- AssertNotNull(str = ASN1_BIT_STRING_new());
-
- AssertIntEQ(ASN1_BIT_STRING_set_bit(str, 42, 1), 1);
- AssertIntEQ(ASN1_BIT_STRING_get_bit(str, 42), 1);
- AssertIntEQ(ASN1_BIT_STRING_get_bit(str, 41), 0);
- AssertIntEQ(ASN1_BIT_STRING_set_bit(str, 84, 1), 1);
- AssertIntEQ(ASN1_BIT_STRING_get_bit(str, 84), 1);
- AssertIntEQ(ASN1_BIT_STRING_get_bit(str, 83), 0);
-
- ASN1_BIT_STRING_free(str);
- printf(resultFmt, passed);
-#endif
-}
-
-
-static void test_wolfSSL_DES_ecb_encrypt(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_DES3) && defined(WOLFSSL_DES_ECB)
- WOLFSSL_DES_cblock input1,input2,output1,output2,back1,back2;
- WOLFSSL_DES_key_schedule key;
-
- printf(testingFmt, "wolfSSL_DES_ecb_encrypt()");
-
- XMEMCPY(key,"12345678",sizeof(WOLFSSL_DES_key_schedule));
- XMEMCPY(input1, "Iamhuman",sizeof(WOLFSSL_DES_cblock));
- XMEMCPY(input2, "Whoisit?",sizeof(WOLFSSL_DES_cblock));
- XMEMSET(output1, 0, sizeof(WOLFSSL_DES_cblock));
- XMEMSET(output2, 0, sizeof(WOLFSSL_DES_cblock));
- XMEMSET(back1, 0, sizeof(WOLFSSL_DES_cblock));
- XMEMSET(back2, 0, sizeof(WOLFSSL_DES_cblock));
-
- /* Encrypt messages */
- wolfSSL_DES_ecb_encrypt(&input1,&output1,&key,DES_ENCRYPT);
- wolfSSL_DES_ecb_encrypt(&input2,&output2,&key,DES_ENCRYPT);
-
- /* Decrypt messages */
- int ret1 = 0;
- int ret2 = 0;
- wolfSSL_DES_ecb_encrypt(&output1,&back1,&key,DES_DECRYPT);
- ret1 = XMEMCMP((unsigned char *) back1,(unsigned char *) input1,sizeof(WOLFSSL_DES_cblock));
- AssertIntEQ(ret1,0);
- wolfSSL_DES_ecb_encrypt(&output2,&back2,&key,DES_DECRYPT);
- ret2 = XMEMCMP((unsigned char *) back2,(unsigned char *) input2,sizeof(WOLFSSL_DES_cblock));
- AssertIntEQ(ret2,0);
-
- printf(resultFmt, passed);
- #endif
-}
-
-static void test_wolfSSL_ASN1_TIME_adj(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_ASN_TIME) \
-&& !defined(USER_TIME) && !defined(TIME_OVERRIDES)
-
- const int year = 365*24*60*60;
- const int day = 24*60*60;
- const int hour = 60*60;
- const int mini = 60;
- const byte asn_utc_time = ASN_UTC_TIME;
-#if !defined(TIME_T_NOT_64BIT) && !defined(NO_64BIT)
- const byte asn_gen_time = ASN_GENERALIZED_TIME;
-#endif
- WOLFSSL_ASN1_TIME *asn_time, *s;
- int offset_day;
- long offset_sec;
- char date_str[CTC_DATE_SIZE + 1];
- time_t t;
-
- printf(testingFmt, "wolfSSL_ASN1_TIME_adj()");
-
- s = wolfSSL_ASN1_TIME_new();
- /* UTC notation test */
- /* 2000/2/15 20:30:00 */
- t = (time_t)30 * year + 45 * day + 20 * hour + 30 * mini + 7 * day;
- offset_day = 7;
- offset_sec = 45 * mini;
- /* offset_sec = -45 * min;*/
- asn_time = wolfSSL_ASN1_TIME_adj(s, t, offset_day, offset_sec);
- AssertTrue(asn_time->type == asn_utc_time);
- XSTRNCPY(date_str, (const char*)&asn_time->data, CTC_DATE_SIZE);
- date_str[CTC_DATE_SIZE] = '\0';
- AssertIntEQ(0, XMEMCMP(date_str, "000222211500Z", 13));
-
- /* negative offset */
- offset_sec = -45 * mini;
- asn_time = wolfSSL_ASN1_TIME_adj(s, t, offset_day, offset_sec);
- AssertTrue(asn_time->type == asn_utc_time);
- XSTRNCPY(date_str, (const char*)&asn_time->data, CTC_DATE_SIZE);
- date_str[CTC_DATE_SIZE] = '\0';
- AssertIntEQ(0, XMEMCMP(date_str, "000222194500Z", 13));
-
- XFREE(s, NULL, DYNAMIC_TYPE_OPENSSL);
- XMEMSET(date_str, 0, sizeof(date_str));
-
- /* Generalized time will overflow time_t if not long */
-#if !defined(TIME_T_NOT_64BIT) && !defined(NO_64BIT)
- s = (WOLFSSL_ASN1_TIME*)XMALLOC(sizeof(WOLFSSL_ASN1_TIME), NULL,
- DYNAMIC_TYPE_OPENSSL);
- /* GeneralizedTime notation test */
- /* 2055/03/01 09:00:00 */
- t = (time_t)85 * year + 59 * day + 9 * hour + 21 * day;
- offset_day = 12;
- offset_sec = 10 * mini;
- asn_time = wolfSSL_ASN1_TIME_adj(s, t, offset_day, offset_sec);
- AssertTrue(asn_time->type == asn_gen_time);
- XSTRNCPY(date_str, (const char*)&asn_time->data, CTC_DATE_SIZE);
- date_str[CTC_DATE_SIZE] = '\0';
- AssertIntEQ(0, XMEMCMP(date_str, "20550313091000Z", 15));
-
- XFREE(s, NULL, DYNAMIC_TYPE_OPENSSL);
- XMEMSET(date_str, 0, sizeof(date_str));
-#endif /* !TIME_T_NOT_64BIT && !NO_64BIT */
-
- /* if WOLFSSL_ASN1_TIME struct is not allocated */
- s = NULL;
-
- t = (time_t)30 * year + 45 * day + 20 * hour + 30 * mini + 15 + 7 * day;
- offset_day = 7;
- offset_sec = 45 * mini;
- asn_time = wolfSSL_ASN1_TIME_adj(s, t, offset_day, offset_sec);
- AssertTrue(asn_time->type == asn_utc_time);
- XSTRNCPY(date_str, (const char*)&asn_time->data, CTC_DATE_SIZE);
- date_str[CTC_DATE_SIZE] = '\0';
- AssertIntEQ(0, XMEMCMP(date_str, "000222211515Z", 13));
- XFREE(asn_time, NULL, DYNAMIC_TYPE_OPENSSL);
-
- asn_time = wolfSSL_ASN1_TIME_adj(NULL, t, offset_day, offset_sec);
- AssertTrue(asn_time->type == asn_utc_time);
- XSTRNCPY(date_str, (const char*)&asn_time->data, CTC_DATE_SIZE);
- date_str[CTC_DATE_SIZE] = '\0';
- AssertIntEQ(0, XMEMCMP(date_str, "000222211515Z", 13));
- XFREE(asn_time, NULL, DYNAMIC_TYPE_OPENSSL);
-
- printf(resultFmt, passed);
-#endif
-}
-
-
-static void test_wolfSSL_X509_cmp_time(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_ASN_TIME) \
-&& !defined(USER_TIME) && !defined(TIME_OVERRIDES)
- WOLFSSL_ASN1_TIME asn_time;
- time_t t;
-
- printf(testingFmt, "wolfSSL_X509_cmp_time()");
-
- AssertIntEQ(0, wolfSSL_X509_cmp_time(NULL, &t));
- XMEMSET(&asn_time, 0, sizeof(WOLFSSL_ASN1_TIME));
- AssertIntEQ(0, wolfSSL_X509_cmp_time(&asn_time, &t));
-
- asn_time.type = ASN_UTC_TIME;
- asn_time.length = ASN_UTC_TIME_SIZE;
- XMEMCPY(&asn_time.data, "000222211515Z", 13);
- AssertIntEQ(-1, wolfSSL_X509_cmp_time(&asn_time, NULL));
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_X509_time_adj(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_ASN_TIME) && \
- !defined(USER_TIME) && !defined(TIME_OVERRIDES) && \
- defined(USE_CERT_BUFFERS_2048) && !defined(NO_RSA) && \
- !defined(NO_ASN_TIME)
- X509* x509;
- time_t t, not_before, not_after;
-
- printf(testingFmt, "wolfSSL_X509_time_adj()");
-
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_buffer(
- client_cert_der_2048, sizeof_client_cert_der_2048,
- WOLFSSL_FILETYPE_ASN1));
-
- t = 0;
- not_before = XTIME(0);
- not_after = XTIME(0) + (60 * 24 * 30); /* 30 days after */
- AssertNotNull(X509_time_adj(X509_get_notBefore(x509), not_before, &t));
- AssertNotNull(X509_time_adj(X509_get_notAfter(x509), not_after, &t));
-
- X509_free(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-
-static void test_wolfSSL_X509(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM)\
- && !defined(NO_RSA)
- X509* x509;
- BIO* bio;
- X509_STORE_CTX* ctx;
- X509_STORE* store;
-
- char der[] = "certs/ca-cert.der";
- XFILE fp;
-
- printf(testingFmt, "wolfSSL_X509()");
-
- AssertNotNull(x509 = X509_new());
- X509_free(x509);
-
- x509 = wolfSSL_X509_load_certificate_file(cliCertFile, SSL_FILETYPE_PEM);
-
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
-
- AssertIntEQ(i2d_X509_bio(bio, x509), SSL_SUCCESS);
-
- AssertNotNull(ctx = X509_STORE_CTX_new());
-
- AssertIntEQ(X509_verify_cert(ctx), SSL_FATAL_ERROR);
-
- AssertNotNull(store = X509_STORE_new());
- AssertIntEQ(X509_STORE_add_cert(store, x509), SSL_SUCCESS);
- AssertIntEQ(X509_STORE_CTX_init(ctx, store, x509, NULL), SSL_SUCCESS);
- AssertIntEQ(X509_verify_cert(ctx), SSL_SUCCESS);
-
-
- X509_STORE_CTX_free(ctx);
- #if defined(WOLFSSL_KEEP_STORE_CERTS) || defined(WOLFSSL_QT)
- X509_STORE_free(store);
- X509_free(x509);
- #endif
- BIO_free(bio);
-
- /** d2i_X509_fp test **/
- fp = XFOPEN(der, "rb");
- AssertTrue((fp != XBADFILE));
- AssertNotNull(x509 = (X509 *)d2i_X509_fp(fp, (X509 **)NULL));
- AssertNotNull(x509);
- X509_free(x509);
- XFCLOSE(fp);
- fp = XFOPEN(der, "rb");
- AssertTrue((fp != XBADFILE));
- AssertNotNull((X509 *)d2i_X509_fp(fp, (X509 **)&x509));
- AssertNotNull(x509);
- X509_free(x509);
- XFCLOSE(fp);
-
- /* X509_up_ref test */
- AssertIntEQ(X509_up_ref(NULL), 0);
- AssertNotNull(x509 = X509_new()); /* refCount = 1 */
- AssertIntEQ(X509_up_ref(x509), 1); /* refCount = 2 */
- AssertIntEQ(X509_up_ref(x509), 1); /* refCount = 3 */
- X509_free(x509); /* refCount = 2 */
- X509_free(x509); /* refCount = 1 */
- X509_free(x509); /* refCount = 0, free */
-
- printf(resultFmt, passed);
- #endif
-}
-
-static void test_wolfSSL_X509_get_ext_count(void)
-{
-#if defined(OPENSSL_ALL) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM)
- int ret = 0;
- WOLFSSL_X509* x509;
- const char ocspRootCaFile[] = "./certs/ocsp/root-ca-cert.pem";
- FILE* f;
-
- printf(testingFmt, "wolfSSL_X509_get_ext_count()");
-
- /* NULL parameter check */
- AssertIntEQ(X509_get_ext_count(NULL), WOLFSSL_FAILURE);
-
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_file(svrCertFile,
- SSL_FILETYPE_PEM));
- AssertIntEQ(X509_get_ext_count(x509), 3);
- wolfSSL_X509_free(x509);
-
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_file(ocspRootCaFile,
- SSL_FILETYPE_PEM));
- AssertIntEQ(X509_get_ext_count(x509), 5);
- wolfSSL_X509_free(x509);
-
- AssertNotNull(f = fopen("./certs/server-cert.pem", "rb"));
- AssertNotNull(x509 = wolfSSL_PEM_read_X509(f, NULL, NULL, NULL));
- fclose(f);
-
- printf(testingFmt, "wolfSSL_X509_get_ext_count() valid input");
- AssertIntEQ((ret = wolfSSL_X509_get_ext_count(x509)), 3);
- printf(resultFmt, ret == 3 ? passed : failed);
-
- printf(testingFmt, "wolfSSL_X509_get_ext_count() NULL argument");
- AssertIntEQ((ret = wolfSSL_X509_get_ext_count(NULL)), WOLFSSL_FAILURE);
- printf(resultFmt, ret == WOLFSSL_FAILURE ? passed : failed);
-
- wolfSSL_X509_free(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_X509_sign(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_REQ)
- int ret;
- X509_NAME *name;
- X509 *x509;
- EVP_PKEY *pub;
- EVP_PKEY *priv;
-#if defined(USE_CERT_BUFFERS_1024)
- const unsigned char* rsaPriv = client_key_der_1024;
- const unsigned char* rsaPub = client_keypub_der_1024;
- long clientKeySz = (long)sizeof_client_key_der_1024;
- long clientPubKeySz = (long)sizeof_client_keypub_der_1024;
-#elif defined(USE_CERT_BUFFERS_2048)
- const unsigned char* rsaPriv = client_key_der_2048;
- const unsigned char* rsaPub = client_keypub_der_2048;
- long clientKeySz = (long)sizeof_client_key_der_2048;
- long clientPubKeySz = (long)sizeof_client_keypub_der_2048;
-#endif
-
- printf(testingFmt, "wolfSSL_X509_sign\n");
-
- /* Set X509_NAME fields */
- AssertNotNull(name = X509_NAME_new());
- AssertIntEQ(X509_NAME_add_entry_by_txt(name, "country", MBSTRING_UTF8,
- (byte*)"US", 2, -1, 0), SSL_SUCCESS);
- AssertIntEQ(X509_NAME_add_entry_by_txt(name, "commonName", MBSTRING_UTF8,
- (byte*)"wolfssl.com", 11, -1, 0), SSL_SUCCESS);
- AssertIntEQ(X509_NAME_add_entry_by_txt(name, "emailAddress", MBSTRING_UTF8,
- (byte*)"support@wolfssl.com", 19, -1, 0), SSL_SUCCESS);
-
- /* Get private and public keys */
- AssertNotNull(priv = wolfSSL_d2i_PrivateKey(EVP_PKEY_RSA, NULL, &rsaPriv,
- clientKeySz));
- AssertNotNull(pub = wolfSSL_d2i_PUBKEY(NULL, &rsaPub, clientPubKeySz));
- AssertNotNull(x509 = X509_new());
- /* Set version 3 */
- AssertIntNE(X509_set_version(x509, 2L), 0);
- /* Set subject name, add pubkey, and sign certificate */
- AssertIntEQ(X509_set_subject_name(x509, name), SSL_SUCCESS);
- AssertIntEQ(X509_set_pubkey(x509, pub), SSL_SUCCESS);
-#ifdef WOLFSSL_ALT_NAMES
- /* Add some subject alt names */
- AssertIntNE(wolfSSL_X509_add_altname(NULL,
- NULL, ASN_DNS_TYPE), SSL_SUCCESS);
- AssertIntEQ(wolfSSL_X509_add_altname(x509,
- NULL, ASN_DNS_TYPE), SSL_SUCCESS);
- AssertIntEQ(wolfSSL_X509_add_altname(x509,
- "sphygmomanometer",
- ASN_DNS_TYPE), SSL_SUCCESS);
- AssertIntEQ(wolfSSL_X509_add_altname(x509,
- "supercalifragilisticexpialidocious",
- ASN_DNS_TYPE), SSL_SUCCESS);
- AssertIntEQ(wolfSSL_X509_add_altname(x509,
- "Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch",
- ASN_DNS_TYPE), SSL_SUCCESS);
-#endif /* WOLFSSL_ALT_NAMES */
- /* Test invalid parameters */
- AssertIntEQ(X509_sign(NULL, priv, EVP_sha256()), 0);
- AssertIntEQ(X509_sign(x509, NULL, EVP_sha256()), 0);
- AssertIntEQ(X509_sign(x509, priv, NULL), 0);
-
- ret = X509_sign(x509, priv, EVP_sha256());
-
-#if 0
- /* example for writing to file */
- XFILE tmpFile = XFOPEN("./signed.der", "wb");
- if (tmpFile) {
- int derSz = 0;
- const byte* der = wolfSSL_X509_get_der(x509, &derSz);
- XFWRITE(der, 1, derSz, tmpFile);
- }
- XFCLOSE(tmpFile);
-#endif
-
-#ifndef WOLFSSL_ALT_NAMES
- /* Valid case - size should be 798 */
- AssertIntEQ(ret, 798);
-#else /* WOLFSSL_ALT_NAMES */
- /* Valid case - size should be 927 */
- AssertIntEQ(ret, 927);
-#endif /* WOLFSSL_ALT_NAMES */
-
- X509_NAME_free(name);
- EVP_PKEY_free(priv);
- EVP_PKEY_free(pub);
- X509_free(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_X509_get0_tbs_sigalg(void)
-{
-#if (defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD))
- X509* x509 = NULL;
- const X509_ALGOR* alg;
- printf(testingFmt, "wolfSSL_X509_get0_tbs_sigalg");
-
- AssertNotNull(x509 = X509_new());
-
- AssertNull(alg = X509_get0_tbs_sigalg(NULL));
- AssertNotNull(alg = X509_get0_tbs_sigalg(x509));
-
- X509_free(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_X509_ALGOR_get0(void)
-{
-#if (defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD)) && !defined(NO_SHA256)
- X509* x509 = NULL;
- const ASN1_OBJECT* obj = NULL;
- const X509_ALGOR* alg;
- int pptype = 0;
- const void *ppval = NULL;
- printf(testingFmt, "wolfSSL_X509_ALGOR_get0");
-
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_file(cliCertFile,
- SSL_FILETYPE_PEM));
- AssertNotNull(alg = X509_get0_tbs_sigalg(x509));
-
- /* Invalid case */
- X509_ALGOR_get0(&obj, NULL, NULL, NULL);
- AssertNull(obj);
-
- /* Valid case */
- X509_ALGOR_get0(&obj, &pptype, &ppval, alg);
- AssertNotNull(obj);
- AssertNotNull(ppval);
- AssertIntNE(pptype, 0);
- /* Make sure NID of X509_ALGOR is Sha256 with RSA */
- AssertIntEQ(OBJ_obj2nid(obj), CTC_SHA256wRSA);
-
- X509_free(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-
-static void test_wolfSSL_X509_VERIFY_PARAM(void)
-{
-#if defined(OPENSSL_EXTRA)
- WOLFSSL_X509_VERIFY_PARAM *param;
- int ret;
- char testIPv4[] = "127.0.0.1";
- char testIPv6[] = "0001:0000:0000:0000:0000:0000:0000:0000/32";
-
- printf(testingFmt, "wolfSSL_X509()");
-
- /* Initializer function is not ported */
- /* param = wolfSSL_X509_VERIFY_PARAM_new(); */
-
- param = (WOLFSSL_X509_VERIFY_PARAM *)XMALLOC(
- sizeof(WOLFSSL_X509_VERIFY_PARAM), NULL, DYNAMIC_TYPE_OPENSSL);
- AssertNotNull(param);
-
- XMEMSET(param, 0, sizeof(WOLFSSL_X509_VERIFY_PARAM ));
-
- wolfSSL_X509_VERIFY_PARAM_set_hostflags(NULL, 0x00);
-
- wolfSSL_X509_VERIFY_PARAM_set_hostflags(param, 0x01);
- AssertIntEQ(0x01, param->hostFlags);
-
- ret = wolfSSL_X509_VERIFY_PARAM_set1_ip_asc(NULL, testIPv4);
- AssertIntEQ(0, ret);
-
- ret = wolfSSL_X509_VERIFY_PARAM_set1_ip_asc(param, testIPv4);
- AssertIntEQ(1, ret);
- AssertIntEQ(0, XSTRNCMP(param->ipasc, testIPv4, WOLFSSL_MAX_IPSTR));
-
- ret = wolfSSL_X509_VERIFY_PARAM_set1_ip_asc(param, NULL);
- AssertIntEQ(1, ret);
-
- ret = wolfSSL_X509_VERIFY_PARAM_set1_ip_asc(param, testIPv6);
- AssertIntEQ(1, ret);
- AssertIntEQ(0, XSTRNCMP(param->ipasc, testIPv6, WOLFSSL_MAX_IPSTR));
-
- XFREE(param, NULL, DYNAMIC_TYPE_OPENSSL);
-
- printf(resultFmt, passed);
-
-#endif
-}
-
-static void test_wolfSSL_X509_get_X509_PUBKEY(void)
-{
-#if (defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD))
- X509* x509 = NULL;
- X509_PUBKEY* pubKey;
- printf(testingFmt, "wolfSSL_X509_get_X509_PUBKEY");
-
- AssertNotNull(x509 = X509_new());
-
- AssertNull(pubKey = wolfSSL_X509_get_X509_PUBKEY(NULL));
- AssertNotNull(pubKey = wolfSSL_X509_get_X509_PUBKEY(x509));
-
- X509_free(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_X509_PUBKEY(void)
-{
-#if (defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD)) && !defined(NO_SHA256)
- X509* x509 = NULL;
- ASN1_OBJECT* obj = NULL;
- X509_PUBKEY* pubKey;
- X509_PUBKEY* pubKey2;
- EVP_PKEY* evpKey;
-
- const unsigned char *pk;
- int ppklen;
- WOLFSSL_X509_ALGOR *pa;
-
- printf(testingFmt, "wolfSSL_X509_get_X509_PUBKEY");
-
- AssertNotNull(x509 = X509_load_certificate_file(cliCertFile,
- SSL_FILETYPE_PEM));
-
- AssertNotNull(pubKey = X509_get_X509_PUBKEY(x509));
- AssertIntEQ(X509_PUBKEY_get0_param(&obj, &pk, &ppklen, &pa, pubKey), 1);
- AssertNotNull(pk);
- AssertNotNull(pa);
- AssertNotNull(pubKey);
- AssertIntGT(ppklen, 0);
-
- AssertIntEQ(OBJ_obj2nid(obj), RSAk);
-
- AssertNotNull(evpKey = X509_PUBKEY_get(pubKey));
- AssertNotNull(pubKey2 = X509_PUBKEY_new());
- AssertIntEQ(X509_PUBKEY_set(&pubKey2, evpKey), 1);
-
- X509_PUBKEY_free(pubKey2);
- X509_free(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_RAND(void)
-{
- #if defined(OPENSSL_EXTRA)
- byte seed[16];
-
- printf(testingFmt, "wolfSSL_RAND()");
-
- RAND_seed(seed, sizeof(seed));
- AssertIntEQ(RAND_poll(), 1);
- RAND_cleanup();
-
- AssertIntEQ(RAND_egd(NULL), -1);
-#ifndef NO_FILESYSTEM
- {
- char fname[100];
-
- AssertNotNull(RAND_file_name(fname, (sizeof(fname) - 1)));
- AssertIntEQ(RAND_write_file(NULL), 0);
- }
-#endif
-
- printf(resultFmt, passed);
- #endif
-}
-
-
-static void test_wolfSSL_BUF(void)
-{
- #if defined(OPENSSL_EXTRA)
- BUF_MEM* buf;
- AssertNotNull(buf = BUF_MEM_new());
- AssertIntEQ(BUF_MEM_grow(buf, 10), 10);
- AssertIntEQ(BUF_MEM_grow(buf, -1), 0);
- BUF_MEM_free(buf);
- #endif /* OPENSSL_EXTRA */
-}
-
-
-static void test_wolfSSL_pseudo_rand(void)
-{
- #if defined(OPENSSL_EXTRA)
- BIGNUM* bn;
- unsigned char bin[8];
- int i;
-
- printf(testingFmt, "wolfSSL_pseudo_rand()");
-
- /* BN_pseudo_rand returns 1 on success 0 on failure
- * int BN_pseudo_rand(BIGNUM* bn, int bits, int top, int bottom) */
- for (i = 0; i < 10; i++) {
- AssertNotNull(bn = BN_new());
- AssertIntEQ(BN_pseudo_rand(bn, 8, 0, 0), SSL_SUCCESS);
- AssertIntGT(BN_bn2bin(bn, bin),0);
- AssertIntEQ((bin[0] & 0x80), 0x80); /* top bit should be set */
- BN_free(bn);
- }
-
- for (i = 0; i < 10; i++) {
- AssertNotNull(bn = BN_new());
- AssertIntEQ(BN_pseudo_rand(bn, 8, 1, 1), SSL_SUCCESS);
- AssertIntGT(BN_bn2bin(bn, bin),0);
- AssertIntEQ((bin[0] & 0xc1), 0xc1); /* top bit should be set */
- BN_free(bn);
- }
-
- printf(resultFmt, passed);
- #endif
-}
-
-static void test_wolfSSL_PKCS8_Compat(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && defined(HAVE_ECC)
- PKCS8_PRIV_KEY_INFO* pt;
- BIO* bio;
- XFILE f;
- int bytes;
- char pkcs8_buffer[512];
-
- printf(testingFmt, "wolfSSL_pkcs8()");
-
- /* file from wolfssl/certs/ directory */
- f = XFOPEN("./certs/ecc-keyPkcs8.pem", "rb");
- AssertTrue(f != XBADFILE);
- AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer), f)), 0);
- XFCLOSE(f);
- AssertNotNull(bio = BIO_new_mem_buf((void*)pkcs8_buffer, bytes));
- AssertNotNull(pt = d2i_PKCS8_PRIV_KEY_INFO_bio(bio, NULL));
- BIO_free(bio);
- PKCS8_PRIV_KEY_INFO_free(pt);
-
- printf(resultFmt, passed);
- #endif
-}
-
-static void test_wolfSSL_PKCS8_d2i(void)
-{
-#ifndef HAVE_FIPS
- /* This test ends up using HMAC as a part of PBKDF2, and HMAC
- * requires a 12 byte password in FIPS mode. This test ends up
- * trying to use an 8 byte password. */
-#ifdef OPENSSL_ALL
- WOLFSSL_EVP_PKEY* pkey = NULL;
-#ifndef NO_FILESYSTEM
- unsigned char pkcs8_buffer[2048];
- const unsigned char* p;
- int bytes;
- XFILE file;
- BIO* bio;
- WOLFSSL_EVP_PKEY* evpPkey = NULL;
-#endif
- #ifndef NO_RSA
- #ifndef NO_FILESYSTEM
- const char rsaDerPkcs8File[] = "./certs/server-keyPkcs8.der";
- const char rsaPemPkcs8File[] = "./certs/server-keyPkcs8.pem";
-#ifndef NO_DES3
- const char rsaDerPkcs8EncFile[] = "./certs/server-keyPkcs8Enc.der";
-#endif
- #endif
- #ifdef USE_CERT_BUFFERS_1024
- const unsigned char* rsa = (unsigned char*)server_key_der_1024;
- int rsaSz = sizeof_server_key_der_1024;
- #else
- const unsigned char* rsa = (unsigned char*)server_key_der_2048;
- int rsaSz = sizeof_server_key_der_2048;
- #endif
- #endif
- #ifdef HAVE_ECC
- const unsigned char* ec = (unsigned char*)ecc_key_der_256;
- int ecSz = sizeof_ecc_key_der_256;
- #ifndef NO_FILESYSTEM
- const char ecDerPkcs8File[] = "certs/ecc-keyPkcs8.der";
- const char ecPemPkcs8File[] = "certs/ecc-keyPkcs8.pem";
-#ifndef NO_DES3
- const char ecDerPkcs8EncFile[] = "certs/ecc-keyPkcs8Enc.der";
-#endif
- #endif
- #endif
-
-#ifndef NO_FILESYSTEM
- (void)pkcs8_buffer;
- (void)p;
- (void)bytes;
- (void)file;
- (void)bio;
-#endif
-
- #ifndef NO_RSA
- /* Try to auto-detect normal RSA private key */
- AssertNotNull(pkey = d2i_AutoPrivateKey(NULL, &rsa, rsaSz));
- wolfSSL_EVP_PKEY_free(pkey);
- #endif
- #ifdef HAVE_ECC
- /* Try to auto-detect normal EC private key */
- AssertNotNull(pkey = d2i_AutoPrivateKey(NULL, &ec, ecSz));
- wolfSSL_EVP_PKEY_free(pkey);
- #endif
- #ifndef NO_FILESYSTEM
- #ifndef NO_RSA
- /* Get DER encoded RSA PKCS#8 data. */
- file = XFOPEN(rsaDerPkcs8File, "rb");
- AssertTrue(file != XBADFILE);
- AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer),
- file)), 0);
- XFCLOSE(file);
- p = pkcs8_buffer;
- /* Try to decode - auto-detect key type. */
- AssertNotNull(pkey = d2i_AutoPrivateKey(NULL, &p, bytes));
- /* Get PEM encoded RSA PKCS#8 data. */
- file = XFOPEN(rsaPemPkcs8File, "rb");
- AssertTrue(file != XBADFILE);
- AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer),
- file)), 0);
- XFCLOSE(file);
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- /* Write PKCS#8 PEM to BIO. */
- AssertIntEQ(PEM_write_bio_PKCS8PrivateKey(bio, pkey, NULL, NULL, 0, NULL,
- NULL), bytes);
- /* Compare file and written data */
- AssertIntEQ(wolfSSL_BIO_get_mem_data(bio, &p), bytes);
- AssertIntEQ(XMEMCMP(p, pkcs8_buffer, bytes), 0);
- BIO_free(bio);
-#ifndef NO_DES3
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- /* Write Encrypted PKCS#8 PEM to BIO. */
- bytes = 1834;
- AssertIntEQ(PEM_write_bio_PKCS8PrivateKey(bio, pkey, EVP_des_ede3_cbc(),
- NULL, 0, PasswordCallBack, (void*)"yassl123"), bytes);
- AssertNotNull(evpPkey = PEM_read_bio_PrivateKey(bio, NULL, PasswordCallBack,
- (void*)"yassl123"));
- wolfSSL_EVP_PKEY_free(evpPkey);
- BIO_free(bio);
-#endif
- wolfSSL_EVP_PKEY_free(pkey);
-
- /* PKCS#8 encrypted RSA key */
-#ifndef NO_DES3
- file = XFOPEN(rsaDerPkcs8EncFile, "rb");
- AssertTrue(file != XBADFILE);
- AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer),
- file)), 0);
- XFCLOSE(file);
- AssertNotNull(bio = BIO_new_mem_buf((void*)pkcs8_buffer, bytes));
- AssertNotNull(pkey = d2i_PKCS8PrivateKey_bio(bio, NULL, PasswordCallBack,
- (void*)"yassl123"));
- wolfSSL_EVP_PKEY_free(pkey);
- BIO_free(bio);
-#endif
- #endif
- #ifdef HAVE_ECC
- /* PKCS#8 encode EC key */
- file = XFOPEN(ecDerPkcs8File, "rb");
- AssertTrue(file != XBADFILE);
- AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer),
- file)), 0);
- XFCLOSE(file);
- p = pkcs8_buffer;
- /* Try to decode - auto-detect key type. */
- AssertNotNull(pkey = d2i_AutoPrivateKey(NULL, &p, bytes));
- /* Get PEM encoded RSA PKCS#8 data. */
- file = XFOPEN(ecPemPkcs8File, "rb");
- AssertTrue(file != XBADFILE);
- AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer),
- file)), 0);
- XFCLOSE(file);
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- /* Write PKCS#8 PEM to BIO. */
- AssertIntEQ(PEM_write_bio_PKCS8PrivateKey(bio, pkey, NULL, NULL, 0, NULL,
- NULL), bytes);
- /* Compare file and written data */
- AssertIntEQ(wolfSSL_BIO_get_mem_data(bio, &p), bytes);
- AssertIntEQ(XMEMCMP(p, pkcs8_buffer, bytes), 0);
- BIO_free(bio);
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- /* Write Encrypted PKCS#8 PEM to BIO. */
- bytes = 379;
- AssertIntEQ(PEM_write_bio_PKCS8PrivateKey(bio, pkey, EVP_aes_256_cbc(),
- NULL, 0, PasswordCallBack, (void*)"yassl123"), bytes);
- AssertNotNull(evpPkey = PEM_read_bio_PrivateKey(bio, NULL, PasswordCallBack,
- (void*)"yassl123"));
- wolfSSL_EVP_PKEY_free(evpPkey);
- BIO_free(bio);
- wolfSSL_EVP_PKEY_free(pkey);
-
- /* PKCS#8 encrypted EC key */
-#ifndef NO_DES3
- file = XFOPEN(ecDerPkcs8EncFile, "rb");
- AssertTrue(file != XBADFILE);
- AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer),
- file)), 0);
- XFCLOSE(file);
- AssertNotNull(bio = BIO_new_mem_buf((void*)pkcs8_buffer, bytes));
- AssertNotNull(pkey = d2i_PKCS8PrivateKey_bio(bio, NULL, PasswordCallBack,
- (void*)"yassl123"));
- wolfSSL_EVP_PKEY_free(pkey);
- BIO_free(bio);
-#endif
- #endif
- #endif
-
- printf(resultFmt, passed);
-#endif
-#endif /* HAVE_FIPS */
-}
-
-static void test_wolfSSL_ERR_put_error(void)
-{
- #if !defined(NO_ERROR_QUEUE) && defined(OPENSSL_EXTRA) && \
- defined(DEBUG_WOLFSSL)
- const char* file;
- int line;
-
- printf(testingFmt, "wolfSSL_ERR_put_error()");
-
-
- ERR_clear_error(); /* clear out any error nodes */
- ERR_put_error(0,SYS_F_ACCEPT, 0, "this file", 0);
- AssertIntEQ(ERR_get_error_line(&file, &line), 0);
- ERR_put_error(0,SYS_F_BIND, 1, "this file", 1);
- AssertIntEQ(ERR_get_error_line(&file, &line), 1);
- ERR_put_error(0,SYS_F_CONNECT, 2, "this file", 2);
- AssertIntEQ(ERR_get_error_line(&file, &line), 2);
- ERR_put_error(0,SYS_F_FOPEN, 3, "this file", 3);
- AssertIntEQ(ERR_get_error_line(&file, &line), 3);
- ERR_put_error(0,SYS_F_FREAD, 4, "this file", 4);
- AssertIntEQ(ERR_get_error_line(&file, &line), 4);
- ERR_put_error(0,SYS_F_GETADDRINFO, 5, "this file", 5);
- AssertIntEQ(ERR_get_error_line(&file, &line), 5);
- ERR_put_error(0,SYS_F_GETSOCKOPT, 6, "this file", 6);
- AssertIntEQ(ERR_get_error_line(&file, &line), 6);
- ERR_put_error(0,SYS_F_GETSOCKNAME, 7, "this file", 7);
- AssertIntEQ(ERR_get_error_line(&file, &line), 7);
- ERR_put_error(0,SYS_F_GETHOSTBYNAME, 8, "this file", 8);
- AssertIntEQ(ERR_get_error_line(&file, &line), 8);
- ERR_put_error(0,SYS_F_GETNAMEINFO, 9, "this file", 9);
- AssertIntEQ(ERR_get_error_line(&file, &line), 9);
- ERR_put_error(0,SYS_F_GETSERVBYNAME, 10, "this file", 10);
- AssertIntEQ(ERR_get_error_line(&file, &line), 10);
- ERR_put_error(0,SYS_F_IOCTLSOCKET, 11, "this file", 11);
- AssertIntEQ(ERR_get_error_line(&file, &line), 11);
- ERR_put_error(0,SYS_F_LISTEN, 12, "this file", 12);
- AssertIntEQ(ERR_get_error_line(&file, &line), 12);
- ERR_put_error(0,SYS_F_OPENDIR, 13, "this file", 13);
- AssertIntEQ(ERR_get_error_line(&file, &line), 13);
- ERR_put_error(0,SYS_F_SETSOCKOPT, 14, "this file", 14);
- AssertIntEQ(ERR_get_error_line(&file, &line), 14);
- ERR_put_error(0,SYS_F_SOCKET, 15, "this file", 15);
- AssertIntEQ(ERR_get_error_line(&file, &line), 15);
-
- /* try reading past end of error queue */
- file = NULL;
- AssertIntEQ(ERR_get_error_line(&file, &line), 0);
- AssertNull(file);
- AssertIntEQ(ERR_get_error_line_data(&file, &line, NULL, NULL), 0);
-
- PEMerr(4,4);
- AssertIntEQ(ERR_get_error(), 4);
- /* Empty and free up all error nodes */
- ERR_clear_error();
-
- /* Verify all nodes are cleared */
- ERR_put_error(0,SYS_F_ACCEPT, 0, "this file", 0);
- ERR_clear_error();
- AssertIntEQ(ERR_get_error_line(&file, &line), 0);
-
- printf(resultFmt, passed);
- #endif
-}
-
-
-static void test_wolfSSL_ERR_print_errors(void)
-{
- #if !defined(NO_ERROR_QUEUE) && defined(OPENSSL_EXTRA) && \
- defined(DEBUG_WOLFSSL)
- BIO* bio;
- char buf[1024];
-
- printf(testingFmt, "wolfSSL_ERR_print_errors()");
-
-
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- ERR_clear_error(); /* clear out any error nodes */
- ERR_put_error(0,SYS_F_ACCEPT, -173, "ssl.c", 0);
- ERR_put_error(0,SYS_F_BIND, -275, "asn.c", 100);
-
- ERR_print_errors(bio);
- AssertIntEQ(BIO_gets(bio, buf, sizeof(buf)), 56);
- AssertIntEQ(XSTRNCMP("error:173:wolfSSL library:Bad function argument:ssl.c:0",
- buf, 55), 0);
- AssertIntEQ(BIO_gets(bio, buf, sizeof(buf)), 57);
- AssertIntEQ(XSTRNCMP("error:275:wolfSSL library:unknown error number:asn.c:100",
- buf, 56), 0);
- AssertIntEQ(BIO_gets(bio, buf, sizeof(buf)), 0);
- AssertIntEQ(ERR_get_error_line(NULL, NULL), 0);
-
- BIO_free(bio);
- printf(resultFmt, passed);
- #endif
-}
-
-#if !defined(NO_ERROR_QUEUE) && defined(OPENSSL_EXTRA) && \
- defined(DEBUG_WOLFSSL)
-static int test_wolfSSL_error_cb(const char *str, size_t len, void *u)
-{
- wolfSSL_BIO_write((BIO*)u, str, (int)len);
- return 0;
-}
-#endif
-
-static void test_wolfSSL_ERR_print_errors_cb(void)
-{
- #if !defined(NO_ERROR_QUEUE) && defined(OPENSSL_EXTRA) && \
- defined(DEBUG_WOLFSSL)
- BIO* bio;
- char buf[1024];
-
- printf(testingFmt, "wolfSSL_ERR_print_errors_cb()");
-
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- ERR_clear_error(); /* clear out any error nodes */
- ERR_put_error(0,SYS_F_ACCEPT, -173, "ssl.c", 0);
- ERR_put_error(0,SYS_F_BIND, -275, "asn.c", 100);
-
- ERR_print_errors_cb(test_wolfSSL_error_cb, bio);
- AssertIntEQ(BIO_gets(bio, buf, sizeof(buf)), 108);
- AssertIntEQ(XSTRNCMP("wolfSSL error occurred, error = 173 line:0 file:ssl.c",
- buf, 53), 0);
- AssertIntEQ(XSTRNCMP("wolfSSL error occurred, error = 275 line:100 file:asn.c",
- buf + 53, 55), 0);
- AssertIntEQ(BIO_gets(bio, buf, sizeof(buf)), 0);
-
- BIO_free(bio);
- printf(resultFmt, passed);
- #endif
-}
-
-static void test_wolfSSL_HMAC(void)
-{
- #if defined(OPENSSL_EXTRA) && !defined(NO_SHA256)
- HMAC_CTX* hmac;
- ENGINE* e = NULL;
- const unsigned char key[] = "simple test key";
- unsigned char hash[WC_MAX_DIGEST_SIZE];
- unsigned int len;
-
-
- printf(testingFmt, "wolfSSL_HMAC()");
-
- AssertNotNull(hmac = HMAC_CTX_new());
- HMAC_CTX_init(hmac);
- AssertIntEQ(HMAC_Init_ex(hmac, (void*)key, (int)sizeof(key),
- EVP_sha256(), e), SSL_SUCCESS);
-
- /* re-using test key as data to hash */
- AssertIntEQ(HMAC_Update(hmac, key, (int)sizeof(key)), SSL_SUCCESS);
- AssertIntEQ(HMAC_Update(hmac, NULL, 0), SSL_SUCCESS);
- AssertIntEQ(HMAC_Final(hmac, hash, &len), SSL_SUCCESS);
- AssertIntEQ(len, (int)WC_SHA256_DIGEST_SIZE);
- AssertIntEQ(HMAC_size(hmac), WC_SHA256_DIGEST_SIZE);
-
- HMAC_cleanup(hmac);
- HMAC_CTX_free(hmac);
-#endif
-
-#if defined(OPENSSL_EXTRA) && !defined(NO_SHA256)
- len = 0;
- AssertNotNull(HMAC(EVP_sha256(), key, (int)sizeof(key), NULL, 0, hash, &len));
- AssertIntEQ(len, (int)WC_SHA256_DIGEST_SIZE);
-#endif
-#if defined(OPENSSL_EXTRA) && defined(WOLFSSL_SHA224)
- len = 0;
- AssertNotNull(HMAC(EVP_sha224(), key, (int)sizeof(key), NULL, 0, hash, &len));
- AssertIntEQ(len, (int)WC_SHA224_DIGEST_SIZE);
-#endif
-#if defined(OPENSSL_EXTRA) && defined(WOLFSSL_SHA384)
- len = 0;
- AssertNotNull(HMAC(EVP_sha384(), key, (int)sizeof(key), NULL, 0, hash, &len));
- AssertIntEQ(len, (int)WC_SHA384_DIGEST_SIZE);
-#endif
-#if defined(OPENSSL_EXTRA) && defined(WOLFSSL_SHA512)
- len = 0;
- AssertNotNull(HMAC(EVP_sha512(), key, (int)sizeof(key), NULL, 0, hash, &len));
- AssertIntEQ(len, (int)WC_SHA512_DIGEST_SIZE);
-#endif
-
- printf(resultFmt, passed);
-
-}
-
-
-static void test_wolfSSL_OBJ(void)
-{
-/* Password "wolfSSL test" is only 12 (96-bit) too short for testing in FIPS
- * mode
- */
-#if defined(OPENSSL_EXTRA) && !defined(NO_SHA256) && !defined(NO_ASN) && \
- !defined(HAVE_FIPS) && !defined(NO_SHA) && defined(WOLFSSL_CERT_EXT) && \
- defined(WOLFSSL_CERT_GEN)
- ASN1_OBJECT *obj = NULL;
- char buf[50];
-
- XFILE fp;
- X509 *x509 = NULL;
- X509_NAME *x509Name;
- X509_NAME_ENTRY *x509NameEntry;
- ASN1_OBJECT *asn1Name = NULL;
- int numNames;
- BIO *bio = NULL;
- int nid;
- int i, j;
- const char *f[] = {
- #ifndef NO_RSA
- "./certs/ca-cert.der",
- #endif
- #ifdef HAVE_ECC
- "./certs/ca-ecc-cert.der",
- "./certs/ca-ecc384-cert.der",
- #endif
- NULL};
- ASN1_OBJECT *field_name_obj = NULL;
- int lastpos = -1;
- int tmp = -1;
- ASN1_STRING *asn1 = NULL;
- unsigned char *buf_dyn = NULL;
-
- PKCS12 *p12;
- int boolRet;
- EVP_PKEY *pkey = NULL;
- const char *p12_f[] = {
- #if !defined(NO_DES3) && !defined(NO_RSA)
- "./certs/test-servercert.p12",
- #endif
- NULL};
-
- printf(testingFmt, "wolfSSL_OBJ()");
-
- AssertIntEQ(OBJ_obj2txt(buf, (int)sizeof(buf), obj, 1), SSL_FAILURE);
- AssertNotNull(obj = OBJ_nid2obj(NID_any_policy));
- AssertIntEQ(OBJ_obj2nid(obj), NID_any_policy);
- AssertIntEQ(OBJ_obj2txt(buf, (int)sizeof(buf), obj, 1), 11);
- AssertIntGT(OBJ_obj2txt(buf, (int)sizeof(buf), obj, 0), 0);
- ASN1_OBJECT_free(obj);
-
- AssertNotNull(obj = OBJ_nid2obj(NID_sha256));
- AssertIntEQ(OBJ_obj2nid(obj), NID_sha256);
- AssertIntEQ(OBJ_obj2txt(buf, (int)sizeof(buf), obj, 1), 22);
-#ifdef WOLFSSL_CERT_EXT
- AssertIntEQ(OBJ_txt2nid(buf), NID_sha256);
-#endif
- AssertIntGT(OBJ_obj2txt(buf, (int)sizeof(buf), obj, 0), 0);
- ASN1_OBJECT_free(obj);
-
- for (i = 0; f[i] != NULL; i++)
- {
- AssertTrue((fp = XFOPEN(f[i], "r")) != XBADFILE);
- AssertNotNull(x509 = d2i_X509_fp(fp, NULL));
- XFCLOSE(fp);
- AssertNotNull(x509Name = X509_get_issuer_name(x509));
- AssertIntNE((numNames = X509_NAME_entry_count(x509Name)), 0);
-
- /* Get the Common Name by using OBJ_txt2obj */
- AssertNotNull(field_name_obj = OBJ_txt2obj("CN", 0));
- do
- {
- lastpos = tmp;
- tmp = X509_NAME_get_index_by_OBJ(x509Name, field_name_obj, lastpos);
- } while (tmp > -1);
- AssertIntNE(lastpos, -1);
- ASN1_OBJECT_free(field_name_obj);
- AssertNotNull(x509NameEntry = X509_NAME_get_entry(x509Name, lastpos));
- AssertNotNull(asn1 = X509_NAME_ENTRY_get_data(x509NameEntry));
- AssertIntGE(ASN1_STRING_to_UTF8(&buf_dyn, asn1), 0);
- /*
- * All Common Names should be www.wolfssl.com
- * This makes testing easier as we can test for the expected value.
- */
- AssertStrEQ((char*)buf_dyn, "www.wolfssl.com");
- OPENSSL_free(buf_dyn);
-
- AssertTrue((bio = BIO_new(BIO_s_mem())) != NULL);
- for (j = 0; j < numNames; j++)
- {
- AssertNotNull(x509NameEntry = X509_NAME_get_entry(x509Name, j));
- AssertNotNull(asn1Name = X509_NAME_ENTRY_get_object(x509NameEntry));
- AssertTrue((nid = OBJ_obj2nid(asn1Name)) > 0);
- }
- BIO_free(bio);
- ASN1_OBJECT_free(asn1Name);
- X509_free(x509);
-
- }
-
- for (i = 0; p12_f[i] != NULL; i++)
- {
- AssertTrue((fp = XFOPEN(p12_f[i], "r")) != XBADFILE);
- AssertNotNull(p12 = d2i_PKCS12_fp(fp, NULL));
- XFCLOSE(fp);
- AssertTrue((boolRet = PKCS12_parse(p12, "wolfSSL test", &pkey, &x509, NULL)) > 0);
- wc_PKCS12_free(p12);
- EVP_PKEY_free(pkey);
- AssertNotNull((x509Name = X509_get_issuer_name(x509)) != NULL);
- AssertIntNE((numNames = X509_NAME_entry_count(x509Name)), 0);
- AssertTrue((bio = BIO_new(BIO_s_mem())) != NULL);
- for (j = 0; j < numNames; j++)
- {
- AssertNotNull(x509NameEntry = X509_NAME_get_entry(x509Name, j));
- AssertNotNull(asn1Name = X509_NAME_ENTRY_get_object(x509NameEntry));
- AssertTrue((nid = OBJ_obj2nid(asn1Name)) > 0);
- }
- BIO_free(bio);
- ASN1_OBJECT_free(asn1Name);
- X509_free(x509);
- }
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_i2a_ASN1_OBJECT(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_ASN)
- ASN1_OBJECT *obj = NULL;
- BIO *bio = NULL;
-
- AssertNotNull(obj = OBJ_nid2obj(NID_sha256));
- AssertTrue((bio = BIO_new(BIO_s_mem())) != NULL);
-
- AssertIntGT(wolfSSL_i2a_ASN1_OBJECT(bio, obj), 0);
- AssertIntGT(wolfSSL_i2a_ASN1_OBJECT(bio, NULL), 0);
-
- AssertIntEQ(wolfSSL_i2a_ASN1_OBJECT(NULL, obj), 0);
-
- BIO_free(bio);
- ASN1_OBJECT_free(obj);
-#endif
-}
-
-static void test_wolfSSL_OBJ_cmp(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_SHA256)
- ASN1_OBJECT *obj = NULL;
- ASN1_OBJECT *obj2 = NULL;
-
- printf(testingFmt, "wolfSSL_OBJ_cmp()");
-
- AssertNotNull(obj = OBJ_nid2obj(NID_any_policy));
- AssertNotNull(obj2 = OBJ_nid2obj(NID_sha256));
-
- AssertIntEQ(OBJ_cmp(NULL, NULL), WOLFSSL_FATAL_ERROR);
- AssertIntEQ(OBJ_cmp(obj, NULL), WOLFSSL_FATAL_ERROR);
- AssertIntEQ(OBJ_cmp(NULL, obj2), WOLFSSL_FATAL_ERROR);
- AssertIntEQ(OBJ_cmp(obj, obj2), WOLFSSL_FATAL_ERROR);
- AssertIntEQ(OBJ_cmp(obj, obj), 0);
- AssertIntEQ(OBJ_cmp(obj2, obj2), 0);
-
- ASN1_OBJECT_free(obj);
- ASN1_OBJECT_free(obj2);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_OBJ_txt2nid(void)
-{
-#if !defined(NO_WOLFSSL_STUB) && defined(WOLFSSL_APACHE_HTTPD)
- int i;
- static const struct {
- const char* sn;
- const char* ln;
- const char* oid;
- int nid;
- } testVals[] = {
- { "tlsfeature", "TLS Feature", "1.3.6.1.5.5.7.1.24", NID_tlsfeature },
- { "id-on-dnsSRV", "SRVName", "1.3.6.1.5.5.7.8.7",
- NID_id_on_dnsSRV },
- { "msUPN", "Microsoft User Principal Name",
- "1.3.6.1.4.1.311.20.2.3", NID_ms_upn },
- { NULL, NULL, NULL, NID_undef }
- };
-
- printf(testingFmt, "wolfSSL_OBJ_txt2nid()");
-
- /* Invalid cases */
- AssertIntEQ(OBJ_txt2nid(NULL), NID_undef);
- AssertIntEQ(OBJ_txt2nid("Bad name"), NID_undef);
-
- /* Valid cases */
- for (i = 0; testVals[i].sn != NULL; i++) {
- AssertIntEQ(OBJ_txt2nid(testVals[i].sn), testVals[i].nid);
- AssertIntEQ(OBJ_txt2nid(testVals[i].ln), testVals[i].nid);
- AssertIntEQ(OBJ_txt2nid(testVals[i].oid), testVals[i].nid);
- }
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_OBJ_txt2obj(void)
-{
-#if defined(WOLFSSL_APACHE_HTTPD) || (defined(OPENSSL_EXTRA) && \
- defined(WOLFSSL_CERT_EXT) && defined(WOLFSSL_CERT_GEN))
- int i;
- char buf[50];
- ASN1_OBJECT* obj;
- static const struct {
- const char* oidStr;
- const char* sn;
- const char* ln;
- } objs_list[] = {
- #if defined(WOLFSSL_APACHE_HTTPD)
- { "1.3.6.1.5.5.7.1.24", "tlsfeature", "TLS Feature" },
- { "1.3.6.1.5.5.7.8.7", "id-on-dnsSRV", "SRVName" },
- #endif
- { "2.5.29.19", "basicConstraints", "X509v3 Basic Constraints"},
- { NULL, NULL, NULL }
- };
-
- printf(testingFmt, "wolfSSL_OBJ_txt2obj()");
-
- AssertNull(obj = OBJ_txt2obj("Bad name", 0));
- AssertNull(obj = OBJ_txt2obj(NULL, 0));
-
- for (i = 0; objs_list[i].oidStr != NULL; i++) {
- /* Test numerical value of oid (oidStr) */
- AssertNotNull(obj = OBJ_txt2obj(objs_list[i].oidStr, 1));
- /* Convert object back to text to confirm oid is correct */
- wolfSSL_OBJ_obj2txt(buf, (int)sizeof(buf), obj, 1);
- AssertIntEQ(XSTRNCMP(buf, objs_list[i].oidStr, (int)XSTRLEN(buf)), 0);
- ASN1_OBJECT_free(obj);
- XMEMSET(buf, 0, sizeof(buf));
-
- /* Test short name (sn) */
- AssertNull(obj = OBJ_txt2obj(objs_list[i].sn, 1));
- AssertNotNull(obj = OBJ_txt2obj(objs_list[i].sn, 0));
- /* Convert object back to text to confirm oid is correct */
- wolfSSL_OBJ_obj2txt(buf, (int)sizeof(buf), obj, 1);
- AssertIntEQ(XSTRNCMP(buf, objs_list[i].oidStr, (int)XSTRLEN(buf)), 0);
- ASN1_OBJECT_free(obj);
- XMEMSET(buf, 0, sizeof(buf));
-
- /* Test long name (ln) - should fail when no_name = 1 */
- AssertNull(obj = OBJ_txt2obj(objs_list[i].ln, 1));
- AssertNotNull(obj = OBJ_txt2obj(objs_list[i].ln, 0));
- /* Convert object back to text to confirm oid is correct */
- wolfSSL_OBJ_obj2txt(buf, (int)sizeof(buf), obj, 1);
- AssertIntEQ(XSTRNCMP(buf, objs_list[i].oidStr, (int)XSTRLEN(buf)), 0);
- ASN1_OBJECT_free(obj);
- XMEMSET(buf, 0, sizeof(buf));
- }
-
- printf(resultFmt, passed);
-
-#endif
-}
-
-static void test_wolfSSL_X509_NAME_ENTRY(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) && \
- !defined(NO_RSA) && defined(WOLFSSL_CERT_GEN)
- X509* x509;
- BIO* bio;
- X509_NAME* nm;
- X509_NAME_ENTRY* entry;
- unsigned char cn[] = "another name to add";
-
-
- printf(testingFmt, "wolfSSL_X509_NAME_ENTRY()");
-
- AssertNotNull(x509 =
- wolfSSL_X509_load_certificate_file(cliCertFile, SSL_FILETYPE_PEM));
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- AssertIntEQ(PEM_write_bio_X509_AUX(bio, x509), SSL_SUCCESS);
-
-#ifdef WOLFSSL_CERT_REQ
- {
- X509_REQ* req;
- BIO* bReq;
-
- AssertNotNull(req =
- wolfSSL_X509_load_certificate_file(cliCertFile, SSL_FILETYPE_PEM));
- AssertNotNull(bReq = BIO_new(BIO_s_mem()));
- AssertIntEQ(PEM_write_bio_X509_REQ(bReq, req), SSL_SUCCESS);
-
- BIO_free(bReq);
- X509_free(req);
- }
-#endif
-
- AssertNotNull(nm = X509_get_subject_name(x509));
-
- /* Test add entry */
- AssertNotNull(entry = X509_NAME_ENTRY_create_by_NID(NULL, NID_commonName,
- 0x0c, cn, (int)sizeof(cn)));
- AssertIntEQ(X509_NAME_add_entry(nm, entry, -1, 0), SSL_SUCCESS);
-
-#ifdef WOLFSSL_CERT_EXT
- AssertIntEQ(X509_NAME_add_entry_by_txt(nm, "emailAddress", MBSTRING_UTF8,
- (byte*)"support@wolfssl.com", 19, -1,
- 1), WOLFSSL_SUCCESS);
-#endif
- X509_NAME_ENTRY_free(entry);
-
- /* Test add entry by text */
- AssertNotNull(entry = X509_NAME_ENTRY_create_by_txt(NULL, "commonName",
- 0x0c, cn, (int)sizeof(cn)));
- #if defined(OPENSSL_ALL) || defined(WOLFSSL_ASIO) \
- || defined(WOLFSSL_HAPROXY) || defined(WOLFSSL_NGINX)
- AssertNull(X509_NAME_ENTRY_create_by_txt(&entry, "unknown",
- V_ASN1_UTF8STRING, cn, (int)sizeof(cn)));
- #endif
- AssertIntEQ(X509_NAME_add_entry(nm, entry, -1, 0), SSL_SUCCESS);
- X509_NAME_ENTRY_free(entry);
-
- /* Test add entry by NID */
- AssertIntEQ(X509_NAME_add_entry_by_NID(nm, NID_commonName, MBSTRING_UTF8,
- cn, -1, -1, 0), WOLFSSL_SUCCESS);
-
- BIO_free(bio);
- X509_free(x509); /* free's nm */
-
- printf(resultFmt, passed);
-#endif
-}
-
-
-static void test_wolfSSL_X509_set_name(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_REQ)
- X509* x509;
- X509_NAME* name;
-
- printf(testingFmt, "wolfSSL_X509_set_name()");
-
- AssertNotNull(name = X509_NAME_new());
- AssertIntEQ(X509_NAME_add_entry_by_txt(name, "commonName", MBSTRING_UTF8,
- (byte*)"wolfssl.com", 11, 0, 1),
- WOLFSSL_SUCCESS);
- AssertIntEQ(X509_NAME_add_entry_by_txt(name, "emailAddress", MBSTRING_UTF8,
- (byte*)"support@wolfssl.com", 19, -1,
- 1), WOLFSSL_SUCCESS);
- AssertNotNull(x509 = X509_new());
-
- AssertIntEQ(X509_set_subject_name(NULL, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(X509_set_subject_name(x509, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(X509_set_subject_name(NULL, name), WOLFSSL_FAILURE);
- AssertIntEQ(X509_set_subject_name(x509, name), WOLFSSL_SUCCESS);
-
- AssertIntEQ(X509_set_issuer_name(NULL, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(X509_set_issuer_name(x509, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(X509_set_issuer_name(NULL, name), WOLFSSL_FAILURE);
- AssertIntEQ(X509_set_issuer_name(x509, name), WOLFSSL_SUCCESS);
-
- X509_free(x509);
- X509_NAME_free(name);
-
- printf(resultFmt, passed);
-#endif /* OPENSSL_ALL && !NO_CERTS */
-}
-
-static void test_wolfSSL_X509_set_notAfter(void)
-{
-#if (defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD)) \
- && !defined(NO_ASN_TIME) && !defined(USER_TIME) && \
- !defined(TIME_OVERRIDES) && !defined(NO_CERTS) && \
- defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_REQ) &&\
- !defined(TIME_T_NOT_64BIT) && !defined(NO_64BIT)
- /* Generalized time will overflow time_t if not long */
-
- X509* x;
- BIO* bio;
- ASN1_TIME *asn_time, *time_check;
- const int year = 365*24*60*60;
- const int day = 24*60*60;
- const int hour = 60*60;
- const int mini = 60;
- int offset_day;
- unsigned char buf[25];
- time_t t;
-
- printf(testingFmt, "wolfSSL_X509_set_notAfter()");
- /*
- * Setup asn_time. APACHE HTTPD uses time(NULL)
- */
- t = (time_t)107 * year + 31 * day + 34 * hour + 30 * mini + 7 * day;
- offset_day = 7;
- /*
- * Free these.
- */
- asn_time = wolfSSL_ASN1_TIME_adj(NULL, t, offset_day, 0);
- AssertNotNull(asn_time);
- AssertNotNull(x = X509_new());
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- /*
- * Tests
- */
- AssertTrue(wolfSSL_X509_set_notAfter(x, asn_time));
- /* time_check is simply (ANS1_TIME*)x->notAfter */
- AssertNotNull(time_check = X509_get_notAfter(x));
- /* ANS1_TIME_check validates by checking if argument can be parsed */
- AssertIntEQ(ASN1_TIME_check(time_check), WOLFSSL_SUCCESS);
- /* Convert to human readable format and compare to intended date */
- AssertIntEQ(ASN1_TIME_print(bio, time_check), 1);
- AssertIntEQ(BIO_read(bio, buf, sizeof(buf)), 24);
- AssertIntEQ(XMEMCMP(buf, "Jan 20 10:30:00 2077 GMT", sizeof(buf) - 1), 0);
- /*
- * Cleanup
- */
- XFREE(asn_time,NULL,DYNAMIC_TYPE_OPENSSL);
- X509_free(x);
- BIO_free(bio);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_X509_set_notBefore(void)
-{
-#if (defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD)) \
- && !defined(NO_ASN_TIME) && !defined(USER_TIME) && \
- !defined(TIME_OVERRIDES) && !defined(NO_CERTS) && \
- defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_REQ)
-
- X509* x;
- BIO* bio;
- ASN1_TIME *asn_time, *time_check;
- const int year = 365*24*60*60;
- const int day = 24*60*60;
- const int hour = 60*60;
- const int mini = 60;
- int offset_day;
- unsigned char buf[25];
- time_t t;
-
- printf(testingFmt, "wolfSSL_X509_set_notBefore()");
- /*
- * Setup asn_time. APACHE HTTPD uses time(NULL)
- */
- t = (time_t)49 * year + 125 * day + 20 * hour + 30 * mini + 7 * day;
- offset_day = 7;
-
- /*
- * Free these.
- */
- asn_time = wolfSSL_ASN1_TIME_adj(NULL, t, offset_day, 0);
- AssertNotNull(asn_time);
- AssertNotNull(x = X509_new());
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- AssertIntEQ(ASN1_TIME_check(asn_time), WOLFSSL_SUCCESS);
-
- /*
- * Main Tests
- */
- AssertTrue(wolfSSL_X509_set_notBefore(x, asn_time));
- /* time_check == (ANS1_TIME*)x->notBefore */
- AssertNotNull(time_check = X509_get_notBefore(x));
- /* ANS1_TIME_check validates by checking if argument can be parsed */
- AssertIntEQ(ASN1_TIME_check(time_check), WOLFSSL_SUCCESS);
- /* Convert to human readable format and compare to intended date */
- AssertIntEQ(ASN1_TIME_print(bio, time_check), 1);
- AssertIntEQ(BIO_read(bio, buf, sizeof(buf)), 24);
- AssertIntEQ(XMEMCMP(buf, "May 8 20:30:00 2019 GMT", sizeof(buf) - 1), 0);
- /*
- * Cleanup
- */
- XFREE(asn_time,NULL,DYNAMIC_TYPE_OPENSSL);
- X509_free(x);
- BIO_free(bio);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_X509_set_version(void)
-{
-#if (defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD)) && \
- !defined(NO_CERTS) && defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_REQ)
- X509* x509;
- long v = 2L;
- long max = INT_MAX;
-
- AssertNotNull(x509 = X509_new());
- /* These should pass. */
- AssertTrue(wolfSSL_X509_set_version(x509, v));
- AssertIntEQ(v, wolfSSL_X509_get_version(x509));
- /* Fail Case: When v(long) is greater than x509->version(int). */
- v = max+1;
- AssertFalse(wolfSSL_X509_set_version(x509, v));
- /* Cleanup */
- X509_free(x509);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_BIO_gets(void)
-{
- #if defined(OPENSSL_EXTRA)
- BIO* bio;
- BIO* bio2;
- char msg[] = "\nhello wolfSSL\n security plus\t---...**adf\na...b.c";
- char emp[] = "";
- char bio_buffer[20];
- int bufferSz = 20;
-
- printf(testingFmt, "wolfSSL_BIO_gets()");
-
- /* try with bad args */
- AssertNull(bio = BIO_new_mem_buf(NULL, sizeof(msg)));
- AssertNull(bio = BIO_new_mem_buf((void*)msg, -1));
-
- /* try with real msg */
- AssertNotNull(bio = BIO_new_mem_buf((void*)msg, sizeof(msg)));
- XMEMSET(bio_buffer, 0, bufferSz);
- AssertNotNull(BIO_push(bio, BIO_new(BIO_s_bio())));
- AssertNull(bio2 = BIO_find_type(bio, BIO_TYPE_FILE));
- AssertNotNull(bio2 = BIO_find_type(bio, BIO_TYPE_BIO));
- AssertFalse(bio2 != BIO_next(bio));
-
- /* make buffer filled with no terminating characters */
- XMEMSET(bio_buffer, 1, bufferSz);
-
- /* BIO_gets reads a line of data */
- AssertIntEQ(BIO_gets(bio, bio_buffer, -3), 0);
- AssertIntEQ(BIO_gets(bio, bio_buffer, bufferSz), 1);
- AssertIntEQ(BIO_gets(bio, bio_buffer, bufferSz), 14);
- AssertStrEQ(bio_buffer, "hello wolfSSL\n");
- AssertIntEQ(BIO_gets(bio, bio_buffer, bufferSz), 19);
- AssertIntEQ(BIO_gets(bio, bio_buffer, bufferSz), 8);
- AssertIntEQ(BIO_gets(bio, bio_buffer, -1), 0);
-
- /* check not null terminated string */
- BIO_free(bio);
- msg[0] = 0x33;
- msg[1] = 0x33;
- msg[2] = 0x33;
- AssertNotNull(bio = BIO_new_mem_buf((void*)msg, 3));
- AssertIntEQ(BIO_gets(bio, bio_buffer, 3), 2);
- AssertIntEQ(bio_buffer[0], msg[0]);
- AssertIntEQ(bio_buffer[1], msg[1]);
- AssertIntNE(bio_buffer[2], msg[2]);
-
- BIO_free(bio);
- msg[3] = 0x33;
- bio_buffer[3] = 0x33;
- AssertNotNull(bio = BIO_new_mem_buf((void*)msg, 3));
- AssertIntEQ(BIO_gets(bio, bio_buffer, bufferSz), 3);
- AssertIntEQ(bio_buffer[0], msg[0]);
- AssertIntEQ(bio_buffer[1], msg[1]);
- AssertIntEQ(bio_buffer[2], msg[2]);
- AssertIntNE(bio_buffer[3], 0x33); /* make sure null terminator was set */
-
- /* check reading an empty string */
- BIO_free(bio);
- AssertNotNull(bio = BIO_new_mem_buf((void*)emp, sizeof(emp)));
- AssertIntEQ(BIO_gets(bio, bio_buffer, bufferSz), 1); /* just terminator */
- AssertStrEQ(emp, bio_buffer);
- AssertIntEQ(BIO_gets(bio, bio_buffer, bufferSz), 0); /* Nothing to read */
-
- /* check error cases */
- BIO_free(bio);
- AssertIntEQ(BIO_gets(NULL, NULL, 0), SSL_FAILURE);
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- AssertIntEQ(BIO_gets(bio, bio_buffer, 2), 0); /* nothing to read */
-
-#if !defined(NO_FILESYSTEM)
- {
- BIO* f_bio;
- XFILE f;
- AssertNotNull(f_bio = BIO_new(BIO_s_file()));
- AssertIntLE(BIO_gets(f_bio, bio_buffer, bufferSz), 0);
-
- f = XFOPEN(svrCertFile, "rb");
- AssertTrue((f != XBADFILE));
- AssertIntEQ((int)BIO_set_fp(f_bio, f, BIO_CLOSE), SSL_SUCCESS);
- AssertIntGT(BIO_gets(f_bio, bio_buffer, bufferSz), 0);
-
- BIO_free(f_bio);
- }
-#endif /* NO_FILESYSTEM */
-
- BIO_free(bio);
- BIO_free(bio2);
-
- /* try with type BIO */
- XMEMCPY(msg, "\nhello wolfSSL\n security plus\t---...**adf\na...b.c",
- sizeof(msg));
- AssertNotNull(bio = BIO_new(BIO_s_bio()));
- AssertIntEQ(BIO_gets(bio, bio_buffer, 2), 0); /* nothing to read */
- AssertNotNull(bio2 = BIO_new(BIO_s_bio()));
-
- AssertIntEQ(BIO_set_write_buf_size(bio, 10), SSL_SUCCESS);
- AssertIntEQ(BIO_set_write_buf_size(bio2, sizeof(msg)), SSL_SUCCESS);
- AssertIntEQ(BIO_make_bio_pair(bio, bio2), SSL_SUCCESS);
-
- AssertIntEQ(BIO_write(bio2, msg, sizeof(msg)), sizeof(msg));
- AssertIntEQ(BIO_gets(bio, bio_buffer, -3), 0);
- AssertIntEQ(BIO_gets(bio, bio_buffer, bufferSz), 1);
- AssertIntEQ(BIO_gets(bio, bio_buffer, bufferSz), 14);
- AssertStrEQ(bio_buffer, "hello wolfSSL\n");
- AssertIntEQ(BIO_gets(bio, bio_buffer, bufferSz), 19);
- AssertIntEQ(BIO_gets(bio, bio_buffer, bufferSz), 8);
- AssertIntEQ(BIO_gets(bio, bio_buffer, -1), 0);
-
- BIO_free(bio);
- BIO_free(bio2);
-
- /* check reading an empty string */
- AssertNotNull(bio = BIO_new(BIO_s_bio()));
- AssertIntEQ(BIO_set_write_buf_size(bio, sizeof(emp)), SSL_SUCCESS);
- AssertIntEQ(BIO_gets(bio, bio_buffer, bufferSz), 0); /* Nothing to read */
- AssertStrEQ(emp, bio_buffer);
-
- BIO_free(bio);
-
- printf(resultFmt, passed);
- #endif
-}
-
-
-static void test_wolfSSL_BIO_puts(void)
-{
- #if defined(OPENSSL_EXTRA)
- BIO* bio;
- char input[] = "hello\0world\n.....ok\n\0";
- char output[128];
-
- printf(testingFmt, "wolfSSL_BIO_puts()");
-
- XMEMSET(output, 0, sizeof(output));
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- AssertIntEQ(BIO_puts(bio, input), 5);
- AssertIntEQ(BIO_pending(bio), 5);
- AssertIntEQ(BIO_puts(bio, input + 6), 14);
- AssertIntEQ(BIO_pending(bio), 19);
- AssertIntEQ(BIO_gets(bio, output, sizeof(output)), 11);
- AssertStrEQ(output, "helloworld\n");
- AssertIntEQ(BIO_pending(bio), 8);
- AssertIntEQ(BIO_gets(bio, output, sizeof(output)), 8);
- AssertStrEQ(output, ".....ok\n");
- AssertIntEQ(BIO_pending(bio), 0);
- AssertIntEQ(BIO_puts(bio, ""), -1);
-
- BIO_free(bio);
- printf(resultFmt, passed);
- #endif
-}
-
-#if defined(OPENSSL_ALL) && !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && \
- !defined(NO_RSA) && defined(HAVE_EXT_CACHE) && \
- defined(HAVE_IO_TESTS_DEPENDENCIES)
-static int forceWantRead(WOLFSSL *ssl, char *buf, int sz, void *ctx)
-{
- (void)ssl;
- (void)buf;
- (void)sz;
- (void)ctx;
- return WOLFSSL_CBIO_ERR_WANT_READ;
-}
-#endif
-
-static void test_wolfSSL_BIO_should_retry(void)
-{
-#if defined(OPENSSL_ALL) && !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && \
- !defined(NO_RSA) && defined(HAVE_EXT_CACHE) && \
- defined(HAVE_IO_TESTS_DEPENDENCIES)
- tcp_ready ready;
- func_args server_args;
- THREAD_TYPE serverThread;
- SOCKET_T sockfd = 0;
- WOLFSSL_CTX* ctx;
- WOLFSSL* ssl;
- char msg[64] = "hello wolfssl!";
- char reply[1024];
- int msgSz = (int)XSTRLEN(msg);
- int ret;
- BIO* bio;
-
- printf(testingFmt, "wolfSSL_BIO_should_retry()");
-
- XMEMSET(&server_args, 0, sizeof(func_args));
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- StartTCP();
- InitTcpReady(&ready);
-
-#if defined(USE_WINDOWS_API)
- /* use RNG to get random port if using windows */
- ready.port = GetRandomPort();
-#endif
-
- server_args.signal = &ready;
- start_thread(test_server_nofail, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
-
-
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CTX_load_verify_locations(ctx, caCertFile, 0));
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CTX_use_certificate_file(ctx, cliCertFile, SSL_FILETYPE_PEM));
- AssertIntEQ(WOLFSSL_SUCCESS,
- wolfSSL_CTX_use_PrivateKey_file(ctx, cliKeyFile, SSL_FILETYPE_PEM));
- tcp_connect(&sockfd, wolfSSLIP, server_args.signal->port, 0, 0, NULL);
-
- /* force retry */
- AssertNotNull(ssl = wolfSSL_new(ctx));
- AssertIntEQ(wolfSSL_set_fd(ssl, sockfd), WOLFSSL_SUCCESS);
- wolfSSL_SSLSetIORecv(ssl, forceWantRead);
-
- AssertNotNull(bio = BIO_new(BIO_f_ssl()));
- BIO_set_ssl(bio, ssl, BIO_CLOSE);
-
- AssertIntLE(BIO_write(bio, msg, msgSz), 0);
- AssertIntNE(BIO_should_retry(bio), 0);
-
-
- /* now perform successful connection */
- wolfSSL_SSLSetIORecv(ssl, EmbedReceive);
- AssertIntEQ(BIO_write(bio, msg, msgSz), msgSz);
- BIO_read(bio, reply, sizeof(reply));
- ret = wolfSSL_get_error(ssl, -1);
- if (ret == WOLFSSL_ERROR_WANT_READ || ret == WOLFSSL_ERROR_WANT_WRITE) {
- AssertIntNE(BIO_should_retry(bio), 0);
- }
- else {
- AssertIntEQ(BIO_should_retry(bio), 0);
- }
- AssertIntEQ(XMEMCMP(reply, "I hear you fa shizzle!",
- XSTRLEN("I hear you fa shizzle!")), 0);
- BIO_free(bio);
- wolfSSL_CTX_free(ctx);
-
- join_thread(serverThread);
- FreeTcpReady(&ready);
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_BIO_write(void)
-{
- #if defined(OPENSSL_EXTRA) && defined(WOLFSSL_BASE64_ENCODE)
- BIO* bio;
- BIO* bio64;
- BIO* ptr;
- int sz;
- char msg[] = "conversion test";
- char out[40];
- char expected[] = "Y29udmVyc2lvbiB0ZXN0AA==\n";
- BUF_MEM* buf = NULL;
-
- printf(testingFmt, "wolfSSL_BIO_write()");
-
- AssertNotNull(bio64 = BIO_new(BIO_f_base64()));
- AssertNotNull(bio = BIO_push(bio64, BIO_new(BIO_s_mem())));
-
- /* now should convert to base64 then write to memory */
- AssertIntEQ(BIO_write(bio, msg, sizeof(msg)), sizeof(msg));
- BIO_flush(bio);
-
- /* test BIO chain */
- AssertIntEQ(SSL_SUCCESS, (int)BIO_get_mem_ptr(bio, &buf));
- AssertNotNull(buf);
- AssertIntEQ(buf->length, 25);
-
- AssertNotNull(ptr = BIO_find_type(bio, BIO_TYPE_MEM));
- sz = sizeof(out);
- XMEMSET(out, 0, sz);
- AssertIntEQ((sz = BIO_read(ptr, out, sz)), 25);
- AssertIntEQ(XMEMCMP(out, expected, sz), 0);
-
- /* write then read should return the same message */
- AssertIntEQ(BIO_write(bio, msg, sizeof(msg)), sizeof(msg));
- sz = sizeof(out);
- XMEMSET(out, 0, sz);
- AssertIntEQ(BIO_read(bio, out, sz), 16);
- AssertIntEQ(XMEMCMP(out, msg, sizeof(msg)), 0);
-
- /* now try encoding with no line ending */
- BIO_set_flags(bio64, BIO_FLAG_BASE64_NO_NL);
- #ifdef HAVE_EX_DATA
- BIO_set_ex_data(bio64, 0, (void*) "data");
- AssertIntEQ(strcmp((const char*)BIO_get_ex_data(bio64, 0), "data"), 0);
- #endif
- AssertIntEQ(BIO_write(bio, msg, sizeof(msg)), sizeof(msg));
- BIO_flush(bio);
- sz = sizeof(out);
- XMEMSET(out, 0, sz);
- AssertIntEQ((sz = BIO_read(ptr, out, sz)), 24);
- AssertIntEQ(XMEMCMP(out, expected, sz), 0);
-
- BIO_free_all(bio); /* frees bio64 also */
-
- /* test with more than one bio64 in list */
- AssertNotNull(bio64 = BIO_new(BIO_f_base64()));
- AssertNotNull(bio = BIO_push(BIO_new(BIO_f_base64()), bio64));
- AssertNotNull(BIO_push(bio64, BIO_new(BIO_s_mem())));
-
- /* now should convert to base64 when stored and then decode with read */
- AssertIntEQ(BIO_write(bio, msg, sizeof(msg)), 25);
- BIO_flush(bio);
- sz = sizeof(out);
- XMEMSET(out, 0, sz);
- AssertIntEQ((sz = BIO_read(bio, out, sz)), 16);
- AssertIntEQ(XMEMCMP(out, msg, sz), 0);
- BIO_clear_flags(bio64, ~0);
- BIO_set_retry_read(bio);
- BIO_free_all(bio); /* frees bio64s also */
-
- printf(resultFmt, passed);
- #endif
-}
-
-
-static void test_wolfSSL_BIO_printf(void)
-{
- #if defined(OPENSSL_ALL)
- BIO* bio;
- int sz = 7;
- char msg[] = "TLS 1.3 for the world";
- char out[60];
- char expected[] = "TLS 1.3 for the world : sz = 7";
-
- printf(testingFmt, "wolfSSL_BIO_printf()");
-
- XMEMSET(out, 0, sizeof(out));
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- AssertIntEQ(BIO_printf(bio, "%s : sz = %d", msg, sz), 30);
- AssertIntEQ(BIO_printf(NULL, ""), WOLFSSL_FATAL_ERROR);
- AssertIntEQ(BIO_read(bio, out, sizeof(out)), 30);
- AssertIntEQ(XSTRNCMP(out, expected, sizeof(expected)), 0);
- BIO_free(bio);
-
- printf(resultFmt, passed);
- #endif
-}
-
-static void test_wolfSSL_BIO_f_md(void)
-{
- #if defined(OPENSSL_ALL) && !defined(NO_SHA256)
- BIO *bio, *mem;
- char msg[] = "message to hash";
- char out[60];
- EVP_MD_CTX* ctx;
- const unsigned char testKey[] =
- {
- 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
- 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
- 0x0b, 0x0b, 0x0b, 0x0b
- };
- const char testData[] = "Hi There";
- const unsigned char testResult[] =
- {
- 0xb0, 0x34, 0x4c, 0x61, 0xd8, 0xdb, 0x38, 0x53,
- 0x5c, 0xa8, 0xaf, 0xce, 0xaf, 0x0b, 0xf1, 0x2b,
- 0x88, 0x1d, 0xc2, 0x00, 0xc9, 0x83, 0x3d, 0xa7,
- 0x26, 0xe9, 0x37, 0x6c, 0x2e, 0x32, 0xcf, 0xf7
- };
- const unsigned char expectedHash[] =
- {
- 0x66, 0x49, 0x3C, 0xE8, 0x8A, 0x57, 0xB0, 0x60,
- 0xDC, 0x55, 0x7D, 0xFC, 0x1F, 0xA5, 0xE5, 0x07,
- 0x70, 0x5A, 0xF6, 0xD7, 0xC4, 0x1F, 0x1A, 0xE4,
- 0x2D, 0xA6, 0xFD, 0xD1, 0x29, 0x7D, 0x60, 0x0D
- };
- const unsigned char emptyHash[] =
- {
- 0xE3, 0xB0, 0xC4, 0x42, 0x98, 0xFC, 0x1C, 0x14,
- 0x9A, 0xFB, 0xF4, 0xC8, 0x99, 0x6F, 0xB9, 0x24,
- 0x27, 0xAE, 0x41, 0xE4, 0x64, 0x9B, 0x93, 0x4C,
- 0xA4, 0x95, 0x99, 0x1B, 0x78, 0x52, 0xB8, 0x55
- };
- unsigned char check[sizeof(testResult) + 1];
- size_t checkSz = -1;
- EVP_PKEY* key;
-
- printf(testingFmt, "wolfSSL_BIO_f_md()");
-
- XMEMSET(out, 0, sizeof(out));
- AssertNotNull(bio = BIO_new(BIO_f_md()));
- AssertNotNull(mem = BIO_new(BIO_s_mem()));
-
- AssertIntEQ(BIO_get_md_ctx(bio, &ctx), 1);
- AssertIntEQ(EVP_DigestInit(ctx, EVP_sha256()), 1);
-
- /* should not be able to write/read yet since just digest wrapper and no
- * data is passing through the bio */
- AssertIntEQ(BIO_write(bio, msg, 0), 0);
- AssertIntEQ(BIO_pending(bio), 0);
- AssertIntEQ(BIO_read(bio, out, sizeof(out)), 0);
- AssertIntEQ(BIO_gets(bio, out, 3), 0);
- AssertIntEQ(BIO_gets(bio, out, sizeof(out)), 32);
- AssertIntEQ(XMEMCMP(emptyHash, out, 32), 0);
- BIO_reset(bio);
-
- /* append BIO mem to bio in order to read/write */
- AssertNotNull(bio = BIO_push(bio, mem));
-
- XMEMSET(out, 0, sizeof(out));
- AssertIntEQ(BIO_write(mem, msg, sizeof(msg)), 16);
- AssertIntEQ(BIO_pending(bio), 16);
-
- /* this just reads the message and does not hash it (gets calls final) */
- AssertIntEQ(BIO_read(bio, out, sizeof(out)), 16);
- AssertIntEQ(XMEMCMP(out, msg, sizeof(msg)), 0);
-
- /* create a message digest using BIO */
- XMEMSET(out, 0, sizeof(out));
- AssertIntEQ(BIO_write(bio, msg, sizeof(msg)), 16);
- AssertIntEQ(BIO_pending(mem), 16);
- AssertIntEQ(BIO_pending(bio), 16);
- AssertIntEQ(BIO_gets(bio, out, sizeof(out)), 32);
- AssertIntEQ(XMEMCMP(expectedHash, out, 32), 0);
- BIO_free(bio);
- BIO_free(mem);
-
- /* test with HMAC */
- XMEMSET(out, 0, sizeof(out));
- AssertNotNull(bio = BIO_new(BIO_f_md()));
- AssertNotNull(mem = BIO_new(BIO_s_mem()));
- BIO_get_md_ctx(bio, &ctx);
- AssertNotNull(key = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL,
- testKey, (int)sizeof(testKey)));
- EVP_DigestSignInit(ctx, NULL, EVP_sha256(), NULL, key);
- AssertNotNull(bio = BIO_push(bio, mem));
- BIO_write(bio, testData, (int)strlen(testData));
- EVP_DigestSignFinal(ctx, NULL, &checkSz);
- EVP_DigestSignFinal(ctx, check, &checkSz);
-
- AssertIntEQ(XMEMCMP(check, testResult, sizeof(testResult)), 0);
-
- EVP_PKEY_free(key);
- BIO_free(bio);
- BIO_free(mem);
-
- printf(resultFmt, passed);
- #endif
-}
-
-
-static void test_wolfSSL_SESSION(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && \
- !defined(NO_RSA) && defined(HAVE_EXT_CACHE) && \
- defined(HAVE_IO_TESTS_DEPENDENCIES)
-
- WOLFSSL* ssl;
- WOLFSSL_CTX* ctx;
- WOLFSSL_SESSION* sess;
- WOLFSSL_SESSION* sess_copy;
- const unsigned char context[] = "user app context";
- unsigned char* sessDer = NULL;
- unsigned char* ptr = NULL;
- unsigned int contextSz = (unsigned int)sizeof(context);
- int ret, err, sockfd, sz;
- tcp_ready ready;
- func_args server_args;
- THREAD_TYPE serverThread;
- char msg[80];
-
- printf(testingFmt, "wolfSSL_SESSION()");
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, cliCertFile, SSL_FILETYPE_PEM));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_file(ctx, cliKeyFile, SSL_FILETYPE_PEM));
- AssertIntEQ(wolfSSL_CTX_load_verify_locations(ctx, caCertFile, 0), SSL_SUCCESS);
-#ifdef WOLFSSL_ENCRYPTED_KEYS
- wolfSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
-#endif
-
- XMEMSET(&server_args, 0, sizeof(func_args));
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- StartTCP();
- InitTcpReady(&ready);
-
-#if defined(USE_WINDOWS_API)
- /* use RNG to get random port if using windows */
- ready.port = GetRandomPort();
-#endif
-
- server_args.signal = &ready;
- start_thread(test_server_nofail, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
-
- /* client connection */
- ssl = wolfSSL_new(ctx);
- tcp_connect(&sockfd, wolfSSLIP, ready.port, 0, 0, ssl);
- AssertIntEQ(wolfSSL_set_fd(ssl, sockfd), SSL_SUCCESS);
-
- err = 0; /* Reset error */
- do {
-#ifdef WOLFSSL_ASYNC_CRYPT
- if (err == WC_PENDING_E) {
- ret = wolfSSL_AsyncPoll(ssl, WOLF_POLL_FLAG_CHECK_HW);
- if (ret < 0) { break; } else if (ret == 0) { continue; }
- }
-#endif
-
- ret = wolfSSL_connect(ssl);
- if (ret != SSL_SUCCESS) {
- err = wolfSSL_get_error(ssl, 0);
- }
- } while (ret != SSL_SUCCESS && err == WC_PENDING_E);
- AssertIntEQ(ret, SSL_SUCCESS);
-
- AssertIntEQ(wolfSSL_write(ssl, "GET", 3), 3);
- AssertIntEQ(wolfSSL_read(ssl, msg, sizeof(msg)), 23);
-
- sess = wolfSSL_get_session(ssl);
- wolfSSL_shutdown(ssl);
- wolfSSL_free(ssl);
-
- join_thread(serverThread);
-
- FreeTcpReady(&ready);
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
-#if defined(SESSION_CERTS)
- {
- X509 *x509;
- char buf[30];
- int bufSz;
-
- AssertNotNull(x509 = SSL_SESSION_get0_peer(sess));
- AssertIntGT((bufSz = X509_NAME_get_text_by_NID(
- X509_get_subject_name(x509), NID_organizationalUnitName,
- buf, sizeof(buf))), 0);
- AssertIntNE((bufSz == 7 || bufSz == 16), 0); /* should be one of these*/
- if (bufSz == 7) {
- AssertIntEQ(XMEMCMP(buf, "Support", bufSz), 0);
- }
- if (bufSz == 16) {
- AssertIntEQ(XMEMCMP(buf, "Programming-2048", bufSz), 0);
- }
- }
-#endif
-
- AssertNotNull(sess_copy = wolfSSL_SESSION_dup(sess));
- wolfSSL_SESSION_free(sess_copy);
-
- /* get session from DER and update the timeout */
- AssertIntEQ(wolfSSL_i2d_SSL_SESSION(NULL, &sessDer), BAD_FUNC_ARG);
- AssertIntGT((sz = wolfSSL_i2d_SSL_SESSION(sess, &sessDer)), 0);
- wolfSSL_SESSION_free(sess);
- ptr = sessDer;
- AssertNull(sess = wolfSSL_d2i_SSL_SESSION(NULL, NULL, sz));
- AssertNotNull(sess = wolfSSL_d2i_SSL_SESSION(NULL,
- (const unsigned char**)&ptr, sz));
- XFREE(sessDer, NULL, DYNAMIC_TYPE_OPENSSL);
- AssertIntGT(wolfSSL_SESSION_get_time(sess), 0);
- AssertIntEQ(wolfSSL_SSL_SESSION_set_timeout(sess, 500), SSL_SUCCESS);
-
- /* successful set session test */
- AssertNotNull(ssl = wolfSSL_new(ctx));
- AssertIntEQ(wolfSSL_set_session(ssl, sess), SSL_SUCCESS);
-
-#ifdef HAVE_SESSION_TICKET
- /* Test set/get session ticket */
- {
- const char* ticket = "This is a session ticket";
- char buf[64] = {0};
- word32 bufSz = (word32)sizeof(buf);
-
- AssertIntEQ(SSL_SUCCESS,
- wolfSSL_set_SessionTicket(ssl, (byte *)ticket, (word32)XSTRLEN(ticket)));
- AssertIntEQ(SSL_SUCCESS,
- wolfSSL_get_SessionTicket(ssl, (byte *)buf, &bufSz));
- AssertStrEQ(ticket, buf);
- }
-#endif
-
- /* fail case with miss match session context IDs (use compatibility API) */
- AssertIntEQ(SSL_set_session_id_context(ssl, context, contextSz),
- SSL_SUCCESS);
- AssertIntEQ(wolfSSL_set_session(ssl, sess), SSL_FAILURE);
- wolfSSL_free(ssl);
- AssertIntEQ(SSL_CTX_set_session_id_context(NULL, context, contextSz),
- SSL_FAILURE);
- AssertIntEQ(SSL_CTX_set_session_id_context(ctx, context, contextSz),
- SSL_SUCCESS);
- AssertNotNull(ssl = wolfSSL_new(ctx));
- AssertIntEQ(wolfSSL_set_session(ssl, sess), SSL_FAILURE);
- wolfSSL_free(ssl);
-
- SSL_SESSION_free(sess);
- wolfSSL_CTX_free(ctx);
- printf(resultFmt, passed);
-#endif
-}
-
-
-static void test_wolfSSL_d2i_PUBKEY(void)
-{
- #if defined(OPENSSL_EXTRA)
- BIO* bio;
- EVP_PKEY* pkey;
-
- printf(testingFmt, "wolfSSL_d2i_PUBKEY()");
-
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- AssertNull(d2i_PUBKEY_bio(NULL, NULL));
-
-#if defined(USE_CERT_BUFFERS_2048) && !defined(NO_RSA)
- /* RSA PUBKEY test */
- AssertIntGT(BIO_write(bio, client_keypub_der_2048,
- sizeof_client_keypub_der_2048), 0);
- AssertNotNull(pkey = d2i_PUBKEY_bio(bio, NULL));
- EVP_PKEY_free(pkey);
-#endif
-
-#if defined(USE_CERT_BUFFERS_256) && defined(HAVE_ECC)
- /* ECC PUBKEY test */
- AssertIntGT(BIO_write(bio, ecc_clikeypub_der_256,
- sizeof_ecc_clikeypub_der_256), 0);
- AssertNotNull(pkey = d2i_PUBKEY_bio(bio, NULL));
- EVP_PKEY_free(pkey);
-#endif
-
- BIO_free(bio);
-
- (void)pkey;
- printf(resultFmt, passed);
- #endif
-}
-
-#if (defined(OPENSSL_ALL) || defined(WOLFSSL_ASIO)) && !defined(NO_RSA)
-static void test_wolfSSL_d2i_PrivateKeys_bio(void)
-{
- BIO* bio = NULL;
- EVP_PKEY* pkey = NULL;
-#ifndef NO_RSA
-#endif
- WOLFSSL_CTX* ctx;
-
-#if defined(WOLFSSL_KEY_GEN)
- unsigned char buff[4096];
- unsigned char* bufPtr = buff;
-#endif
-
- printf(testingFmt, "wolfSSL_d2i_PrivateKeys_bio()");
-
- /* test creating new EVP_PKEY with bad arg */
- AssertNull((pkey = d2i_PrivateKey_bio(NULL, NULL)));
-
- /* test loading RSA key using BIO */
-#if !defined(NO_RSA) && !defined(NO_FILESYSTEM)
- {
- XFILE file;
- const char* fname = "./certs/server-key.der";
- size_t sz;
- byte* buf;
-
- file = XFOPEN(fname, "rb");
- AssertTrue((file != XBADFILE));
- AssertTrue(XFSEEK(file, 0, XSEEK_END) == 0);
- sz = XFTELL(file);
- XREWIND(file);
- AssertNotNull(buf = (byte*)XMALLOC(sz, HEAP_HINT, DYNAMIC_TYPE_FILE));
- AssertIntEQ(XFREAD(buf, 1, sz, file), sz);
- XFCLOSE(file);
-
- /* Test using BIO new mem and loading DER private key */
- AssertNotNull(bio = BIO_new_mem_buf(buf, (int)sz));
- AssertNotNull((pkey = d2i_PrivateKey_bio(bio, NULL)));
- XFREE(buf, HEAP_HINT, DYNAMIC_TYPE_FILE);
- BIO_free(bio);
- bio = NULL;
- EVP_PKEY_free(pkey);
- pkey = NULL;
- }
-#endif
-
- /* test loading ECC key using BIO */
-#if defined(HAVE_ECC) && !defined(NO_FILESYSTEM)
- {
- XFILE file;
- const char* fname = "./certs/ecc-key.der";
- size_t sz;
- byte* buf;
-
- file = XFOPEN(fname, "rb");
- AssertTrue((file != XBADFILE));
- AssertTrue(XFSEEK(file, 0, XSEEK_END) == 0);
- sz = XFTELL(file);
- XREWIND(file);
- AssertNotNull(buf = (byte*)XMALLOC(sz, HEAP_HINT, DYNAMIC_TYPE_FILE));
- AssertIntEQ(XFREAD(buf, 1, sz, file), sz);
- XFCLOSE(file);
-
- /* Test using BIO new mem and loading DER private key */
- AssertNotNull(bio = BIO_new_mem_buf(buf, (int)sz));
- AssertNotNull((pkey = d2i_PrivateKey_bio(bio, NULL)));
- XFREE(buf, HEAP_HINT, DYNAMIC_TYPE_FILE);
- BIO_free(bio);
- bio = NULL;
- EVP_PKEY_free(pkey);
- pkey = NULL;
- }
-#endif
-
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
-#ifndef NO_WOLFSSL_SERVER
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
-#else
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_client_method()));
-#endif
-
-#if !defined(HAVE_FAST_RSA) && defined(WOLFSSL_KEY_GEN) && \
- !defined(NO_RSA) && !defined(HAVE_USER_RSA)
- {
- RSA* rsa = NULL;
- /* Tests bad parameters */
- AssertNull(d2i_RSAPrivateKey_bio(NULL, NULL));
-
- /* RSA not set yet, expecting to fail*/
- AssertIntEQ(SSL_CTX_use_RSAPrivateKey(ctx, rsa), BAD_FUNC_ARG);
-
-#if defined(USE_CERT_BUFFERS_2048) && defined(WOLFSSL_KEY_GEN)
- /* set RSA using bio*/
- AssertIntGT(BIO_write(bio, client_key_der_2048,
- sizeof_client_key_der_2048), 0);
- AssertNotNull(rsa = d2i_RSAPrivateKey_bio(bio, NULL));
-
- AssertIntEQ(SSL_CTX_use_RSAPrivateKey(ctx, rsa), WOLFSSL_SUCCESS);
-
- /*i2d RSAprivate key tests */
- AssertIntEQ(wolfSSL_i2d_RSAPrivateKey(NULL, NULL), BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_i2d_RSAPrivateKey(rsa, NULL), 1192);
- AssertIntEQ(wolfSSL_i2d_RSAPrivateKey(rsa, &bufPtr),
- sizeof_client_key_der_2048);
- bufPtr = NULL;
- AssertIntEQ(wolfSSL_i2d_RSAPrivateKey(rsa, &bufPtr),
- sizeof_client_key_der_2048);
- AssertNotNull(bufPtr);
- XFREE(bufPtr, NULL, DYNAMIC_TYPE_OPENSSL);
-#endif /* USE_CERT_BUFFERS_2048 WOLFSSL_KEY_GEN */
- RSA_free(rsa);
- }
-#endif /* !HAVE_FAST_RSA && WOLFSSL_KEY_GEN && !NO_RSA && !HAVE_USER_RSA*/
- SSL_CTX_free(ctx);
- ctx = NULL;
- BIO_free(bio);
- bio = NULL;
- printf(resultFmt, passed);
-}
-#endif /* OPENSSL_ALL || WOLFSSL_ASIO */
-
-
-static void test_wolfSSL_sk_GENERAL_NAME(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && \
- !defined(NO_RSA)
- X509* x509;
- GENERAL_NAME* gn;
- unsigned char buf[4096];
- const unsigned char* bufPt;
- int bytes, i;
- XFILE f;
- STACK_OF(GENERAL_NAME)* sk;
-
- printf(testingFmt, "wolfSSL_sk_GENERAL_NAME()");
-
- f = XFOPEN(cliCertDerFileExt, "rb");
- AssertTrue((f != XBADFILE));
- AssertIntGT((bytes = (int)XFREAD(buf, 1, sizeof(buf), f)), 0);
- XFCLOSE(f);
-
- bufPt = buf;
- AssertNotNull(x509 = d2i_X509(NULL, &bufPt, bytes));
-
- AssertNotNull(sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509,
- NID_subject_alt_name, NULL, NULL));
-
- AssertIntEQ(sk_GENERAL_NAME_num(sk), 1);
- for (i = 0; i < sk_GENERAL_NAME_num(sk); i++) {
- AssertNotNull(gn = sk_GENERAL_NAME_value(sk, i));
-
- switch (gn->type) {
- case GEN_DNS:
- printf("found type GEN_DNS\n");
- break;
- case GEN_EMAIL:
- printf("found type GEN_EMAIL\n");
- break;
- case GEN_URI:
- printf("found type GEN_URI\n");
- break;
- }
- }
- X509_free(x509);
- sk_GENERAL_NAME_pop_free(sk, GENERAL_NAME_free);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_MD4(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_MD4)
- MD4_CTX md4;
- unsigned char out[16]; /* MD4_DIGEST_SIZE */
- const char* msg = "12345678901234567890123456789012345678901234567890123456"
- "789012345678901234567890";
- const char* test = "\xe3\x3b\x4d\xdc\x9c\x38\xf2\x19\x9c\x3e\x7b\x16\x4f"
- "\xcc\x05\x36";
- int msgSz = (int)XSTRLEN(msg);
-
- printf(testingFmt, "wolfSSL_MD4()");
-
- XMEMSET(out, 0, sizeof(out));
- MD4_Init(&md4);
- MD4_Update(&md4, (const void*)msg, (unsigned long)msgSz);
- MD4_Final(out, &md4);
- AssertIntEQ(XMEMCMP(out, test, sizeof(out)), 0);
-
- printf(resultFmt, passed);
-#endif
-}
-
-
-static void test_wolfSSL_RSA(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(HAVE_USER_RSA) && \
- defined(WOLFSSL_KEY_GEN)
- RSA* rsa;
- const BIGNUM *n;
- const BIGNUM *e;
- const BIGNUM *d;
-
- printf(testingFmt, "wolfSSL_RSA()");
-
- AssertNotNull(rsa = RSA_generate_key(2048, 3, NULL, NULL));
- AssertIntEQ(RSA_size(rsa), 256);
- RSA_get0_key(rsa, &n, &e, &d);
- AssertPtrEq(rsa->n, n);
- AssertPtrEq(rsa->e, e);
- AssertPtrEq(rsa->d, d);
- AssertNotNull(n = BN_new());
- AssertNotNull(e = BN_new());
- AssertNotNull(d = BN_new());
- AssertIntEQ(RSA_set0_key(rsa, (BIGNUM*)n, (BIGNUM*)e, (BIGNUM*)d), 1);
- AssertPtrEq(rsa->n, n);
- AssertPtrEq(rsa->e, e);
- AssertPtrEq(rsa->d, d);
- RSA_free(rsa);
-
-#if !defined(USE_FAST_MATH) || (FP_MAX_BITS >= (3072*2))
- AssertNotNull(rsa = RSA_generate_key(3072, 17, NULL, NULL));
- AssertIntEQ(RSA_size(rsa), 384);
- RSA_free(rsa);
-#endif
-
- /* remove for now with odd key size until adjusting rsa key size check with
- wc_MakeRsaKey()
- AssertNotNull(rsa = RSA_generate_key(2999, 65537, NULL, NULL));
- RSA_free(rsa);
- */
-
- AssertNull(RSA_generate_key(-1, 3, NULL, NULL));
- AssertNull(RSA_generate_key(511, 3, NULL, NULL)); /* RSA_MIN_SIZE - 1 */
- AssertNull(RSA_generate_key(4097, 3, NULL, NULL)); /* RSA_MAX_SIZE + 1 */
- AssertNull(RSA_generate_key(2048, 0, NULL, NULL));
-
-
-#if !defined(NO_FILESYSTEM) && !defined(NO_ASN)
- {
- byte buff[FOURK_BUF];
- byte der[FOURK_BUF];
- const char PrivKeyPemFile[] = "certs/client-keyEnc.pem";
-
- XFILE f;
- int bytes;
-
- /* test loading encrypted RSA private pem w/o password */
- f = XFOPEN(PrivKeyPemFile, "rb");
- AssertTrue((f != XBADFILE));
- bytes = (int)XFREAD(buff, 1, sizeof(buff), f);
- XFCLOSE(f);
- XMEMSET(der, 0, sizeof(der));
- /* test that error value is returned with no password */
- AssertIntLT(wc_KeyPemToDer(buff, bytes, der, (word32)sizeof(der), ""), 0);
- }
-#endif
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_RSA_DER(void)
-{
-#if !defined(HAVE_FAST_RSA) && defined(WOLFSSL_KEY_GEN) && \
- !defined(NO_RSA) && !defined(HAVE_USER_RSA) && defined(OPENSSL_EXTRA)
-
- RSA *rsa;
- int i;
- const unsigned char *buff = NULL;
-
- struct tbl_s
- {
- const unsigned char *der;
- int sz;
- } tbl[] = {
-
-#ifdef USE_CERT_BUFFERS_1024
- {client_key_der_1024, sizeof_client_key_der_1024},
- {server_key_der_1024, sizeof_server_key_der_1024},
-#endif
-#ifdef USE_CERT_BUFFERS_2048
- {client_key_der_2048, sizeof_client_key_der_2048},
- {server_key_der_2048, sizeof_server_key_der_2048},
-#endif
- {NULL, 0}
- };
-
- /* Public Key DER */
- struct tbl_s pub[] = {
-#ifdef USE_CERT_BUFFERS_1024
- {client_keypub_der_1024, sizeof_client_keypub_der_1024},
-#endif
-#ifdef USE_CERT_BUFFERS_2048
- {client_keypub_der_2048, sizeof_client_keypub_der_2048},
-#endif
- {NULL, 0}
- };
-
- printf(testingFmt, "test_wolfSSL_RSA_DER()");
-
- for (i = 0; tbl[i].der != NULL; i++)
- {
- AssertNotNull(d2i_RSAPublicKey(&rsa, &tbl[i].der, tbl[i].sz));
- AssertNotNull(rsa);
- RSA_free(rsa);
- }
- for (i = 0; tbl[i].der != NULL; i++)
- {
- AssertNotNull(d2i_RSAPrivateKey(&rsa, &tbl[i].der, tbl[i].sz));
- AssertNotNull(rsa);
- RSA_free(rsa);
- }
-
- for (i = 0; pub[i].der != NULL; i++)
- {
- AssertNotNull(d2i_RSAPublicKey(&rsa, &pub[i].der, pub[i].sz));
- AssertNotNull(rsa);
- AssertIntEQ(i2d_RSAPublicKey(rsa, NULL), pub[i].sz);
- buff = NULL;
- AssertIntEQ(i2d_RSAPublicKey(rsa, &buff), pub[i].sz);
- AssertNotNull(buff);
- AssertIntEQ(0, memcmp((void *)buff, (void *)pub[i].der, pub[i].sz));
- XFREE((void *)buff, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- RSA_free(rsa);
- }
-
- printf(resultFmt, passed);
-
-#endif
-}
-
-static void test_wolfSSL_RSA_get0_key(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(HAVE_USER_RSA)
- RSA *rsa = NULL;
- const BIGNUM* n = NULL;
- const BIGNUM* e = NULL;
- const BIGNUM* d = NULL;
-
- const unsigned char* der;
- int derSz;
-
-#ifdef USE_CERT_BUFFERS_1024
- der = client_key_der_1024;
- derSz = sizeof_client_key_der_1024;
-#elif defined(USE_CERT_BUFFERS_2048)
- der = client_key_der_2048;
- derSz = sizeof_client_key_der_2048;
-#else
- der = NULL;
- derSz = 0;
-#endif
-
- printf(testingFmt, "test_wolfSSL_RSA_get0_key()");
-
- if (der != NULL) {
- RSA_get0_key(NULL, NULL, NULL, NULL);
- RSA_get0_key(rsa, NULL, NULL, NULL);
- RSA_get0_key(NULL, &n, &e, &d);
- AssertNull(n);
- AssertNull(e);
- AssertNull(d);
-
- AssertNotNull(d2i_RSAPrivateKey(&rsa, &der, derSz));
- AssertNotNull(rsa);
-
- RSA_get0_key(rsa, NULL, NULL, NULL);
- RSA_get0_key(rsa, &n, NULL, NULL);
- AssertNotNull(n);
- RSA_get0_key(rsa, NULL, &e, NULL);
- AssertNotNull(e);
- RSA_get0_key(rsa, NULL, NULL, &d);
- AssertNotNull(d);
- RSA_get0_key(rsa, &n, &e, &d);
- AssertNotNull(n);
- AssertNotNull(e);
- AssertNotNull(d);
-
- RSA_free(rsa);
- }
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_RSA_meth(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(HAVE_FAST_RSA)
- RSA *rsa;
- RSA_METHOD *rsa_meth;
-
- printf(testingFmt, "test_wolfSSL_RSA_meth");
-
-#ifdef WOLFSSL_KEY_GEN
- AssertNotNull(rsa = RSA_generate_key(2048, 3, NULL, NULL));
- RSA_free(rsa);
-#else
- AssertNull(rsa = RSA_generate_key(2048, 3, NULL, NULL));
-#endif
-
- AssertNotNull(rsa_meth =
- RSA_meth_new("placeholder RSA method", RSA_METHOD_FLAG_NO_CHECK));
-
-#ifndef NO_WOLFSSL_STUB
- AssertIntEQ(RSA_meth_set_pub_enc(rsa_meth, NULL), 1);
- AssertIntEQ(RSA_meth_set_pub_dec(rsa_meth, NULL), 1);
- AssertIntEQ(RSA_meth_set_priv_enc(rsa_meth, NULL), 1);
- AssertIntEQ(RSA_meth_set_priv_dec(rsa_meth, NULL), 1);
- AssertIntEQ(RSA_meth_set_init(rsa_meth, NULL), 1);
- AssertIntEQ(RSA_meth_set_finish(rsa_meth, NULL), 1);
- AssertIntEQ(RSA_meth_set0_app_data(rsa_meth, NULL), 1);
-#endif
-
- AssertNotNull(rsa = RSA_new());
- AssertIntEQ(RSA_set_method(rsa, rsa_meth), 1);
- AssertPtrEq(RSA_get_method(rsa), rsa_meth);
- AssertIntEQ(RSA_flags(rsa), RSA_METHOD_FLAG_NO_CHECK);
- RSA_set_flags(rsa, RSA_FLAG_CACHE_PUBLIC);
- AssertIntEQ(RSA_flags(rsa), RSA_FLAG_CACHE_PUBLIC);
-
- /* rsa_meth is freed here */
- RSA_free(rsa);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_verify_depth(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(NO_WOLFSSL_CLIENT)
- WOLFSSL* ssl;
- WOLFSSL_CTX* ctx;
- long depth;
-
- printf(testingFmt, "test_wolfSSL_verify_depth()");
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, cliCertFile, SSL_FILETYPE_PEM));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_file(ctx, cliKeyFile, SSL_FILETYPE_PEM));
- AssertIntEQ(wolfSSL_CTX_load_verify_locations(ctx, caCertFile, 0), SSL_SUCCESS);
-
- AssertIntGT((depth = SSL_CTX_get_verify_depth(ctx)), 0);
- AssertNotNull(ssl = SSL_new(ctx));
- AssertIntEQ(SSL_get_verify_depth(ssl), SSL_CTX_get_verify_depth(ctx));
- SSL_free(ssl);
-
- SSL_CTX_set_verify_depth(ctx, -1);
- AssertIntEQ(depth, SSL_CTX_get_verify_depth(ctx));
-
- SSL_CTX_set_verify_depth(ctx, 2);
- AssertIntEQ(2, SSL_CTX_get_verify_depth(ctx));
- AssertNotNull(ssl = SSL_new(ctx));
- AssertIntEQ(2, SSL_get_verify_depth(ssl));
-
- SSL_free(ssl);
- SSL_CTX_free(ctx);
- printf(resultFmt, passed);
-#endif
-}
-
-#if defined(OPENSSL_EXTRA) && !defined(NO_HMAC)
-/* helper function for test_wolfSSL_HMAC_CTX, digest size is expected to be a
- * buffer of 64 bytes.
- *
- * returns the size of the digest buffer on success and a negative value on
- * failure.
- */
-static int test_HMAC_CTX_helper(const EVP_MD* type, unsigned char* digest)
-{
- HMAC_CTX ctx1;
- HMAC_CTX ctx2;
-
- unsigned char key[] = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b";
- unsigned char long_key[] =
- "0123456789012345678901234567890123456789"
- "0123456789012345678901234567890123456789"
- "0123456789012345678901234567890123456789"
- "0123456789012345678901234567890123456789";
-
- unsigned char msg[] = "message to hash";
- unsigned int digestSz = 64;
- int keySz = sizeof(key);
- int long_keySz = sizeof(long_key);
- int msgSz = sizeof(msg);
-
- unsigned char digest2[64];
- unsigned int digestSz2 = 64;
-
- HMAC_CTX_init(&ctx1);
-
- AssertIntEQ(HMAC_Init(&ctx1, (const void*)key, keySz, type), SSL_SUCCESS);
- AssertIntEQ(HMAC_Update(&ctx1, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_CTX_copy(&ctx2, &ctx1), SSL_SUCCESS);
-
- AssertIntEQ(HMAC_Update(&ctx1, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Final(&ctx1, digest, &digestSz), SSL_SUCCESS);
- HMAC_CTX_cleanup(&ctx1);
-
- AssertIntEQ(HMAC_Update(&ctx2, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Final(&ctx2, digest2, &digestSz2), SSL_SUCCESS);
- HMAC_CTX_cleanup(&ctx2);
-
- AssertIntEQ(digestSz, digestSz2);
- AssertIntEQ(XMEMCMP(digest, digest2, digestSz), 0);
-
- /* test HMAC_Init with NULL key */
-
- /* init after copy */
- printf("test HMAC_Init with NULL key (0)\n");
- HMAC_CTX_init(&ctx1);
- AssertIntEQ(HMAC_Init(&ctx1, (const void*)key, keySz, type), SSL_SUCCESS);
- AssertIntEQ(HMAC_Update(&ctx1, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_CTX_copy(&ctx2, &ctx1), SSL_SUCCESS);
-
- AssertIntEQ(HMAC_Init(&ctx1, NULL, 0, NULL), SSL_SUCCESS);
-
- AssertIntEQ(HMAC_Update(&ctx1, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Update(&ctx1, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Final(&ctx1, digest, &digestSz), SSL_SUCCESS);
-
- AssertIntEQ(HMAC_Init(&ctx2, NULL, 0, NULL), SSL_SUCCESS);
-
- AssertIntEQ(HMAC_Update(&ctx2, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Update(&ctx2, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Final(&ctx2, digest2, &digestSz), SSL_SUCCESS);
-
- HMAC_CTX_cleanup(&ctx2);
- AssertIntEQ(digestSz, digestSz2);
- AssertIntEQ(XMEMCMP(digest, digest2, digestSz), 0);
-
- /* long key */
- printf("test HMAC_Init with NULL key (1)\n");
- HMAC_CTX_init(&ctx1);
- AssertIntEQ(HMAC_Init(&ctx1, (const void*)long_key, long_keySz, type), SSL_SUCCESS);
- AssertIntEQ(HMAC_Update(&ctx1, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_CTX_copy(&ctx2, &ctx1), SSL_SUCCESS);
-
- AssertIntEQ(HMAC_Init(&ctx1, NULL, 0, NULL), SSL_SUCCESS);
-
- AssertIntEQ(HMAC_Update(&ctx1, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Update(&ctx1, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Final(&ctx1, digest, &digestSz), SSL_SUCCESS);
-
- AssertIntEQ(HMAC_Init(&ctx2, NULL, 0, NULL), SSL_SUCCESS);
-
- AssertIntEQ(HMAC_Update(&ctx2, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Update(&ctx2, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Final(&ctx2, digest2, &digestSz), SSL_SUCCESS);
-
- HMAC_CTX_cleanup(&ctx2);
- AssertIntEQ(digestSz, digestSz2);
- AssertIntEQ(XMEMCMP(digest, digest2, digestSz), 0);
-
- /* init before copy */
- printf("test HMAC_Init with NULL key (2)\n");
- HMAC_CTX_init(&ctx1);
- AssertIntEQ(HMAC_Init(&ctx1, (const void*)key, keySz, type), SSL_SUCCESS);
- AssertIntEQ(HMAC_Update(&ctx1, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Init(&ctx1, NULL, 0, NULL), SSL_SUCCESS);
- AssertIntEQ(HMAC_CTX_copy(&ctx2, &ctx1), SSL_SUCCESS);
-
- AssertIntEQ(HMAC_Update(&ctx1, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Update(&ctx1, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Final(&ctx1, digest, &digestSz), SSL_SUCCESS);
-
- AssertIntEQ(HMAC_Update(&ctx2, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Update(&ctx2, msg, msgSz), SSL_SUCCESS);
- AssertIntEQ(HMAC_Final(&ctx2, digest2, &digestSz), SSL_SUCCESS);
-
- HMAC_CTX_cleanup(&ctx1);
- HMAC_CTX_cleanup(&ctx2);
- AssertIntEQ(digestSz, digestSz2);
- AssertIntEQ(XMEMCMP(digest, digest2, digestSz), 0);
-
- return digestSz;
-}
-#endif /* defined(OPENSSL_EXTRA) && !defined(NO_HMAC) */
-
-static void test_wolfSSL_HMAC_CTX(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_HMAC)
- unsigned char digest[64];
- int digestSz;
-
- printf(testingFmt, "wolfSSL_HMAC_CTX()");
-
- #ifndef NO_SHA
- AssertIntEQ((digestSz = test_HMAC_CTX_helper(EVP_sha1(), digest)), 20);
- AssertIntEQ(XMEMCMP("\xD9\x68\x77\x23\x70\xFB\x53\x70\x53\xBA\x0E\xDC\xDA"
- "\xBF\x03\x98\x31\x19\xB2\xCC", digest, digestSz), 0);
- #endif /* !NO_SHA */
- #ifdef WOLFSSL_SHA224
- AssertIntEQ((digestSz = test_HMAC_CTX_helper(EVP_sha224(), digest)), 28);
- AssertIntEQ(XMEMCMP("\x57\xFD\xF4\xE1\x2D\xB0\x79\xD7\x4B\x25\x7E\xB1\x95"
- "\x9C\x11\xAC\x2D\x1E\x78\x94\x4F\x3A\x0F\xED\xF8\xAD"
- "\x02\x0E", digest, digestSz), 0);
-
- #endif /* WOLFSSL_SHA224 */
- #ifndef NO_SHA256
- AssertIntEQ((digestSz = test_HMAC_CTX_helper(EVP_sha256(), digest)), 32);
- AssertIntEQ(XMEMCMP("\x13\xAB\x76\x91\x0C\x37\x86\x8D\xB3\x7E\x30\x0C\xFC"
- "\xB0\x2E\x8E\x4A\xD7\xD4\x25\xCC\x3A\xA9\x0F\xA2\xF2"
- "\x47\x1E\x62\x6F\x5D\xF2", digest, digestSz), 0);
-
- #endif /* !NO_SHA256 */
-
- #ifdef WOLFSSL_SHA384
- AssertIntEQ((digestSz = test_HMAC_CTX_helper(EVP_sha384(), digest)), 48);
- AssertIntEQ(XMEMCMP("\x9E\xCB\x07\x0C\x11\x76\x3F\x23\xC3\x25\x0E\xC4\xB7"
- "\x28\x77\x95\x99\xD5\x9D\x7A\xBB\x1A\x9F\xB7\xFD\x25"
- "\xC9\x72\x47\x9F\x8F\x86\x76\xD6\x20\x57\x87\xB7\xE7"
- "\xCD\xFB\xC2\xCC\x9F\x2B\xC5\x41\xAB",
- digest, digestSz), 0);
- #endif /* WOLFSSL_SHA384 */
- #ifdef WOLFSSL_SHA512
- AssertIntEQ((digestSz = test_HMAC_CTX_helper(EVP_sha512(), digest)), 64);
- AssertIntEQ(XMEMCMP("\xD4\x21\x0C\x8B\x60\x6F\xF4\xBF\x07\x2F\x26\xCC\xAD"
- "\xBC\x06\x0B\x34\x78\x8B\x4F\xD6\xC0\x42\xF1\x33\x10"
- "\x6C\x4F\x1E\x55\x59\xDD\x2A\x9F\x15\x88\x62\xF8\x60"
- "\xA3\x99\x91\xE2\x08\x7B\xF7\x95\x3A\xB0\x92\x48\x60"
- "\x88\x8B\x5B\xB8\x5F\xE9\xB6\xB1\x96\xE3\xB5\xF0",
- digest, digestSz), 0);
- #endif /* WOLFSSL_SHA512 */
-
- #ifndef NO_MD5
- AssertIntEQ((digestSz = test_HMAC_CTX_helper(EVP_md5(), digest)), 16);
- AssertIntEQ(XMEMCMP("\xB7\x27\xC4\x41\xE5\x2E\x62\xBA\x54\xED\x72\x70\x9F"
- "\xE4\x98\xDD", digest, digestSz), 0);
- #endif /* !NO_MD5 */
-
- printf(resultFmt, passed);
-#endif
-}
-
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(NO_WOLFSSL_CLIENT)
-static void sslMsgCb(int w, int version, int type, const void* buf,
- size_t sz, SSL* ssl, void* arg)
-{
- int i;
- unsigned char* pt = (unsigned char*)buf;
-
- printf("%s %d bytes of version %d , type %d : ", (w)?"Writing":"Reading",
- (int)sz, version, type);
- for (i = 0; i < (int)sz; i++) printf("%02X", pt[i]);
- printf("\n");
- (void)ssl;
- (void)arg;
-}
-#endif /* OPENSSL_EXTRA */
-
-static void test_wolfSSL_msg_callback(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(NO_WOLFSSL_CLIENT)
- WOLFSSL* ssl;
- WOLFSSL_CTX* ctx;
-
- printf(testingFmt, "wolfSSL_msg_callback()");
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, cliCertFile,
- SSL_FILETYPE_PEM));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_file(ctx, cliKeyFile,
- SSL_FILETYPE_PEM));
- AssertIntEQ(wolfSSL_CTX_load_verify_locations(ctx, caCertFile, 0),
- SSL_SUCCESS);
-
- AssertNotNull(ssl = SSL_new(ctx));
- AssertIntEQ(SSL_set_msg_callback(ssl, NULL), SSL_SUCCESS);
- AssertIntEQ(SSL_set_msg_callback(ssl, &sslMsgCb), SSL_SUCCESS);
- AssertIntEQ(SSL_set_msg_callback(NULL, &sslMsgCb), SSL_FAILURE);
-
- SSL_free(ssl);
- SSL_CTX_free(ctx);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_SHA(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(HAVE_SELFTEST)
- printf(testingFmt, "wolfSSL_SHA()");
-
- #if !defined(NO_SHA)
- {
- const unsigned char in[] = "abc";
- unsigned char expected[] = "\xA9\x99\x3E\x36\x47\x06\x81\x6A\xBA\x3E"
- "\x25\x71\x78\x50\xC2\x6C\x9C\xD0\xD8\x9D";
- unsigned char out[WC_SHA_DIGEST_SIZE];
-
- XMEMSET(out, 0, WC_SHA_DIGEST_SIZE);
- AssertNotNull(SHA1(in, XSTRLEN((char*)in), out));
- AssertIntEQ(XMEMCMP(out, expected, WC_SHA_DIGEST_SIZE), 0);
- }
- #endif
-
- #if !defined(NO_SHA256)
- {
- const unsigned char in[] = "abc";
- unsigned char expected[] = "\xBA\x78\x16\xBF\x8F\x01\xCF\xEA\x41\x41\x40\xDE\x5D\xAE\x22"
- "\x23\xB0\x03\x61\xA3\x96\x17\x7A\x9C\xB4\x10\xFF\x61\xF2\x00"
- "\x15\xAD";
- unsigned char out[WC_SHA256_DIGEST_SIZE];
-
- XMEMSET(out, 0, WC_SHA256_DIGEST_SIZE);
-#if !defined(NO_OLD_NAMES) && !defined(HAVE_FIPS)
- AssertNotNull(SHA256(in, XSTRLEN((char*)in), out));
-#else
- AssertNotNull(wolfSSL_SHA256(in, XSTRLEN((char*)in), out));
-#endif
- AssertIntEQ(XMEMCMP(out, expected, WC_SHA256_DIGEST_SIZE), 0);
- }
- #endif
-
- #if defined(WOLFSSL_SHA384)
- {
- const unsigned char in[] = "abc";
- unsigned char expected[] = "\xcb\x00\x75\x3f\x45\xa3\x5e\x8b\xb5\xa0\x3d\x69\x9a\xc6\x50"
- "\x07\x27\x2c\x32\xab\x0e\xde\xd1\x63\x1a\x8b\x60\x5a\x43\xff"
- "\x5b\xed\x80\x86\x07\x2b\xa1\xe7\xcc\x23\x58\xba\xec\xa1\x34"
- "\xc8\x25\xa7";
- unsigned char out[WC_SHA384_DIGEST_SIZE];
-
- XMEMSET(out, 0, WC_SHA384_DIGEST_SIZE);
-#if !defined(NO_OLD_NAMES) && !defined(HAVE_FIPS)
- AssertNotNull(SHA384(in, XSTRLEN((char*)in), out));
-#else
- AssertNotNull(wolfSSL_SHA384(in, XSTRLEN((char*)in), out));
-#endif
- AssertIntEQ(XMEMCMP(out, expected, WC_SHA384_DIGEST_SIZE), 0);
- }
- #endif
-
- #if defined(WOLFSSL_SHA512)
- {
- const unsigned char in[] = "abc";
- unsigned char expected[] = "\xdd\xaf\x35\xa1\x93\x61\x7a\xba\xcc\x41\x73\x49\xae\x20\x41"
- "\x31\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2\x0a\x9e\xee\xe6\x4b\x55"
- "\xd3\x9a\x21\x92\x99\x2a\x27\x4f\xc1\xa8\x36\xba\x3c\x23\xa3"
- "\xfe\xeb\xbd\x45\x4d\x44\x23\x64\x3c\xe8\x0e\x2a\x9a\xc9\x4f"
- "\xa5\x4c\xa4\x9f";
- unsigned char out[WC_SHA512_DIGEST_SIZE];
-
- XMEMSET(out, 0, WC_SHA512_DIGEST_SIZE);
-#if !defined(NO_OLD_NAMES) && !defined(HAVE_FIPS)
- AssertNotNull(SHA512(in, XSTRLEN((char*)in), out));
-#else
- AssertNotNull(wolfSSL_SHA512(in, XSTRLEN((char*)in), out));
-#endif
- AssertIntEQ(XMEMCMP(out, expected, WC_SHA512_DIGEST_SIZE), 0);
- }
- #endif
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_DH_1536_prime(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_DH)
- BIGNUM* bn;
- unsigned char bits[200];
- int sz = 192; /* known binary size */
- const byte expected[] = {
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0xC9,0x0F,0xDA,0xA2,0x21,0x68,0xC2,0x34,
- 0xC4,0xC6,0x62,0x8B,0x80,0xDC,0x1C,0xD1,
- 0x29,0x02,0x4E,0x08,0x8A,0x67,0xCC,0x74,
- 0x02,0x0B,0xBE,0xA6,0x3B,0x13,0x9B,0x22,
- 0x51,0x4A,0x08,0x79,0x8E,0x34,0x04,0xDD,
- 0xEF,0x95,0x19,0xB3,0xCD,0x3A,0x43,0x1B,
- 0x30,0x2B,0x0A,0x6D,0xF2,0x5F,0x14,0x37,
- 0x4F,0xE1,0x35,0x6D,0x6D,0x51,0xC2,0x45,
- 0xE4,0x85,0xB5,0x76,0x62,0x5E,0x7E,0xC6,
- 0xF4,0x4C,0x42,0xE9,0xA6,0x37,0xED,0x6B,
- 0x0B,0xFF,0x5C,0xB6,0xF4,0x06,0xB7,0xED,
- 0xEE,0x38,0x6B,0xFB,0x5A,0x89,0x9F,0xA5,
- 0xAE,0x9F,0x24,0x11,0x7C,0x4B,0x1F,0xE6,
- 0x49,0x28,0x66,0x51,0xEC,0xE4,0x5B,0x3D,
- 0xC2,0x00,0x7C,0xB8,0xA1,0x63,0xBF,0x05,
- 0x98,0xDA,0x48,0x36,0x1C,0x55,0xD3,0x9A,
- 0x69,0x16,0x3F,0xA8,0xFD,0x24,0xCF,0x5F,
- 0x83,0x65,0x5D,0x23,0xDC,0xA3,0xAD,0x96,
- 0x1C,0x62,0xF3,0x56,0x20,0x85,0x52,0xBB,
- 0x9E,0xD5,0x29,0x07,0x70,0x96,0x96,0x6D,
- 0x67,0x0C,0x35,0x4E,0x4A,0xBC,0x98,0x04,
- 0xF1,0x74,0x6C,0x08,0xCA,0x23,0x73,0x27,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- };
-
- printf(testingFmt, "wolfSSL_DH_1536_prime()");
-
- AssertNotNull(bn = get_rfc3526_prime_1536(NULL));
- AssertIntEQ(sz, BN_bn2bin((const BIGNUM*)bn, bits));
- AssertIntEQ(0, XMEMCMP(expected, bits, sz));
-
- BN_free(bn);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_PEM_write_DHparams(void)
-{
-#if defined(OPENSSL_ALL) || defined(WOLFSSL_QT)
-#if defined(OPENSSL_EXTRA) && !defined(NO_DH) && !defined(NO_FILESYSTEM)
- DH* dh;
- BIO* bio;
- XFILE fp;
- byte pem[2048];
- int pemSz;
- const char expected[] =
-"-----BEGIN DH PARAMETERS-----\n\
-MIIBCAKCAQEAsKEIBpwIE7pZBjy8MNX1AMFPRKfW70rGJScc6NKWUwpckd2iwpSE\n\
-v32yRJ+b0sGKxb5yXKfnkebUn3MHhVtmSMdw+rTuAsk9mkraPcFGPhlp0RdGB6NN\n\
-nyuWFzltMI0q85TTdc+gdebykh8acAWqBINXMPvadpM4UOgn/WPuPOW3yAmub1A1\n\
-joTOSgDpEn5aMdcz/CETdswWMNsM/MVipzW477ewrMA29tnJRkj5QJAAKxuqbOMa\n\
-wwsDnhvCRuRITiJzb8Nf1JrWMAdI1oyQq9T28eNI01hLprnNKb9oHwhLY4YvXGvW\n\
-tgZl96bcAGdru8OpQYP7x/rI4h5+rwA/kwIBAg==\n\
------END DH PARAMETERS-----\n";
- printf(testingFmt, "wolfSSL_PEM_write_DHparams()");
-
- AssertNotNull(fp = XFOPEN(dhParamFile, "rb"));
- AssertIntGT((pemSz = (int)XFREAD(pem, 1, sizeof(pem), fp)), 0);
- XFCLOSE(fp);
-
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- AssertIntEQ(BIO_write(bio, pem, pemSz), pemSz);
- AssertNotNull(dh = PEM_read_bio_DHparams(bio, NULL, NULL, NULL));
- BIO_free(bio);
-
- AssertNotNull(fp = XFOPEN("./test-write-dhparams.pem", "wb"));
- AssertIntEQ(PEM_write_DHparams(fp, dh), WOLFSSL_SUCCESS);
- AssertIntEQ(PEM_write_DHparams(fp, NULL), WOLFSSL_FAILURE);
- XFCLOSE(fp);
- DH_free(dh);
-
- /* check results */
- XMEMSET(pem, 0, sizeof(pem));
- AssertNotNull(fp = XFOPEN("./test-write-dhparams.pem", "rb"));
- AssertIntGT((pemSz = (int)XFREAD(pem, 1, sizeof(pem), fp)), 0);
- AssertIntEQ(XMEMCMP(pem, expected, pemSz), 0);
- XFCLOSE(fp);
-
- printf(resultFmt, passed);
-#endif /* OPENSSL_ALL || OPENSSL_QT */
-#endif
-}
-
-static void test_wolfSSL_AES_ecb_encrypt(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_AES) && defined(HAVE_AES_ECB)
- AES_KEY aes;
- const byte msg[] =
- {
- 0x6b,0xc1,0xbe,0xe2,0x2e,0x40,0x9f,0x96,
- 0xe9,0x3d,0x7e,0x11,0x73,0x93,0x17,0x2a
- };
-
- const byte verify[] =
- {
- 0xf3,0xee,0xd1,0xbd,0xb5,0xd2,0xa0,0x3c,
- 0x06,0x4b,0x5a,0x7e,0x3d,0xb1,0x81,0xf8
- };
-
- const byte key[] =
- {
- 0x60,0x3d,0xeb,0x10,0x15,0xca,0x71,0xbe,
- 0x2b,0x73,0xae,0xf0,0x85,0x7d,0x77,0x81,
- 0x1f,0x35,0x2c,0x07,0x3b,0x61,0x08,0xd7,
- 0x2d,0x98,0x10,0xa3,0x09,0x14,0xdf,0xf4
- };
-
-
- byte out[AES_BLOCK_SIZE];
-
- printf(testingFmt, "wolfSSL_AES_ecb_encrypt()");
-
- AssertIntEQ(AES_set_encrypt_key(key, sizeof(key)*8, &aes), 0);
- XMEMSET(out, 0, AES_BLOCK_SIZE);
- AES_ecb_encrypt(msg, out, &aes, AES_ENCRYPT);
- AssertIntEQ(XMEMCMP(out, verify, AES_BLOCK_SIZE), 0);
-
-#ifdef HAVE_AES_DECRYPT
- AssertIntEQ(AES_set_decrypt_key(key, sizeof(key)*8, &aes), 0);
- XMEMSET(out, 0, AES_BLOCK_SIZE);
- AES_ecb_encrypt(verify, out, &aes, AES_DECRYPT);
- AssertIntEQ(XMEMCMP(out, msg, AES_BLOCK_SIZE), 0);
-#endif
-
- /* test bad arguments */
- AES_ecb_encrypt(NULL, out, &aes, AES_DECRYPT);
- AES_ecb_encrypt(verify, NULL, &aes, AES_DECRYPT);
- AES_ecb_encrypt(verify, out, NULL, AES_DECRYPT);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_SHA256(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_SHA256) && \
- defined(NO_OLD_SHA_NAMES) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST)
- unsigned char input[] =
- "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
- unsigned char output[] =
- "\x24\x8D\x6A\x61\xD2\x06\x38\xB8\xE5\xC0\x26\x93\x0C\x3E\x60"
- "\x39\xA3\x3C\xE4\x59\x64\xFF\x21\x67\xF6\xEC\xED\xD4\x19\xDB"
- "\x06\xC1";
- size_t inLen;
- byte hash[WC_SHA256_DIGEST_SIZE];
-
- printf(testingFmt, "wolfSSL_SHA256()");
- inLen = XSTRLEN((char*)input);
-
- XMEMSET(hash, 0, WC_SHA256_DIGEST_SIZE);
- AssertNotNull(SHA256(input, inLen, hash));
- AssertIntEQ(XMEMCMP(hash, output, WC_SHA256_DIGEST_SIZE), 0);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_X509_get_serialNumber(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_RSA)
- ASN1_INTEGER* a;
- BIGNUM* bn;
- X509* x509;
- char *serialHex;
-
- printf(testingFmt, "wolfSSL_X509_get_serialNumber()");
-
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_file(svrCertFile,
- SSL_FILETYPE_PEM));
- AssertNotNull(a = X509_get_serialNumber(x509));
-
- /* check on value of ASN1 Integer */
- AssertNotNull(bn = ASN1_INTEGER_to_BN(a, NULL));
-
- X509_free(x509); /* free's a */
-
- AssertNotNull(serialHex = BN_bn2hex(bn));
-#ifndef WC_DISABLE_RADIX_ZERO_PAD
- AssertStrEQ(serialHex, "01");
-#else
- AssertStrEQ(serialHex, "1");
-#endif
- OPENSSL_free(serialHex);
-
- AssertIntEQ(BN_get_word(bn), 1);
-
- BN_free(bn);
-
- /* hard test free'ing with dynamic buffer to make sure there is no leaks */
- a = ASN1_INTEGER_new();
- if (a) {
- AssertNotNull(a->data = (unsigned char*)XMALLOC(100, NULL,
- DYNAMIC_TYPE_OPENSSL));
- a->isDynamic = 1;
- ASN1_INTEGER_free(a);
- }
-
- printf(resultFmt, passed);
-#endif
-}
-
-
-static void test_wolfSSL_OpenSSL_add_all_algorithms(void){
-#if defined(OPENSSL_EXTRA)
- printf(testingFmt, "wolfSSL_OpenSSL_add_all_algorithms()");
-
- AssertIntEQ(wolfSSL_add_all_algorithms(),WOLFSSL_SUCCESS);
- wolfSSL_Cleanup();
-
- AssertIntEQ(wolfSSL_OpenSSL_add_all_algorithms_noconf(),WOLFSSL_SUCCESS);
- wolfSSL_Cleanup();
-
- AssertIntEQ(wolfSSL_OpenSSL_add_all_algorithms_conf(),WOLFSSL_SUCCESS);
- wolfSSL_Cleanup();
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_ASN1_STRING_print_ex(void){
-#if defined(OPENSSL_EXTRA) && !defined(NO_ASN)
- ASN1_STRING* asn_str;
- const char data[] = "Hello wolfSSL!";
- ASN1_STRING* esc_str;
- const char esc_data[] = "a+;<>";
- BIO *bio;
- unsigned long flags;
- int p_len;
- unsigned char rbuf[255];
-
- printf(testingFmt, "wolfSSL_ASN1_STRING_print_ex()");
-
- /* setup */
- XMEMSET(rbuf, 0, 255);
- bio = BIO_new(BIO_s_mem());
- BIO_set_write_buf_size(bio,255);
-
- asn_str = ASN1_STRING_type_new(V_ASN1_OCTET_STRING);
- ASN1_STRING_set(asn_str, (const void*)data, sizeof(data));
- esc_str = ASN1_STRING_type_new(V_ASN1_OCTET_STRING);
- ASN1_STRING_set(esc_str, (const void*)esc_data, sizeof(esc_data));
-
- /* no flags */
- XMEMSET(rbuf, 0, 255);
- flags = 0;
- p_len = wolfSSL_ASN1_STRING_print_ex(bio, asn_str, flags);
- AssertIntEQ(p_len, 15);
- BIO_read(bio, (void*)rbuf, 15);
- AssertStrEQ((char*)rbuf, "Hello wolfSSL!");
-
- /* RFC2253 Escape */
- XMEMSET(rbuf, 0, 255);
- flags = ASN1_STRFLGS_ESC_2253;
- p_len = wolfSSL_ASN1_STRING_print_ex(bio, esc_str, flags);
- AssertIntEQ(p_len, 9);
- BIO_read(bio, (void*)rbuf, 9);
- AssertStrEQ((char*)rbuf, "a\\+\\;\\<\\>");
-
- /* Show type */
- XMEMSET(rbuf, 0, 255);
- flags = ASN1_STRFLGS_SHOW_TYPE;
- p_len = wolfSSL_ASN1_STRING_print_ex(bio, asn_str, flags);
- AssertIntEQ(p_len, 28);
- BIO_read(bio, (void*)rbuf, 28);
- AssertStrEQ((char*)rbuf, "OCTET STRING:Hello wolfSSL!");
-
- /* Dump All */
- XMEMSET(rbuf, 0, 255);
- flags = ASN1_STRFLGS_DUMP_ALL;
- p_len = wolfSSL_ASN1_STRING_print_ex(bio, asn_str, flags);
- AssertIntEQ(p_len, 31);
- BIO_read(bio, (void*)rbuf, 31);
- AssertStrEQ((char*)rbuf, "#48656C6C6F20776F6C6653534C2100");
-
- /* Dump Der */
- XMEMSET(rbuf, 0, 255);
- flags = ASN1_STRFLGS_DUMP_ALL | ASN1_STRFLGS_DUMP_DER;
- p_len = wolfSSL_ASN1_STRING_print_ex(bio, asn_str, flags);
- AssertIntEQ(p_len, 35);
- BIO_read(bio, (void*)rbuf, 35);
- AssertStrEQ((char*)rbuf, "#040F48656C6C6F20776F6C6653534C2100");
-
- /* Dump All + Show type */
- XMEMSET(rbuf, 0, 255);
- flags = ASN1_STRFLGS_DUMP_ALL | ASN1_STRFLGS_SHOW_TYPE;
- p_len = wolfSSL_ASN1_STRING_print_ex(bio, asn_str, flags);
- AssertIntEQ(p_len, 44);
- BIO_read(bio, (void*)rbuf, 44);
- AssertStrEQ((char*)rbuf, "OCTET STRING:#48656C6C6F20776F6C6653534C2100");
-
- BIO_free(bio);
- ASN1_STRING_free(asn_str);
- ASN1_STRING_free(esc_str);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_ASN1_TIME_to_generalizedtime(void){
-#if defined(OPENSSL_EXTRA) && !defined(NO_ASN_TIME)
- WOLFSSL_ASN1_TIME *t;
- WOLFSSL_ASN1_TIME *out;
- WOLFSSL_ASN1_TIME *gtime;
- int tlen = 0;
- unsigned char *data;
-
- printf(testingFmt, "wolfSSL_ASN1_TIME_to_generalizedtime()");
-
- /* UTC Time test */
- AssertNotNull(t = wolfSSL_ASN1_TIME_new());
- XMEMSET(t->data, 0, ASN_GENERALIZED_TIME_SIZE);
- AssertNotNull(out = wolfSSL_ASN1_TIME_new());
- t->type = ASN_UTC_TIME;
- t->length = ASN_UTC_TIME_SIZE;
- XMEMCPY(t->data, "050727123456Z", ASN_UTC_TIME_SIZE);
-
- tlen = wolfSSL_ASN1_TIME_get_length(t);
- AssertIntEQ(tlen, ASN_UTC_TIME_SIZE);
- data = wolfSSL_ASN1_TIME_get_data(t);
- AssertStrEQ((char*)data, "050727123456Z");
- gtime = wolfSSL_ASN1_TIME_to_generalizedtime(t, &out);
- AssertIntEQ(gtime->type, ASN_GENERALIZED_TIME);
- AssertIntEQ(gtime->length, ASN_GENERALIZED_TIME_SIZE);
- AssertStrEQ((char*)gtime->data, "20050727123456Z");
-
- /* Generalized Time test */
- XMEMSET(t, 0, ASN_GENERALIZED_TIME_SIZE);
- XMEMSET(out, 0, ASN_GENERALIZED_TIME_SIZE);
- XMEMSET(data, 0, ASN_GENERALIZED_TIME_SIZE);
- t->type = ASN_GENERALIZED_TIME;
- t->length = ASN_GENERALIZED_TIME_SIZE;
- XMEMCPY(t->data, "20050727123456Z", ASN_GENERALIZED_TIME_SIZE);
-
- tlen = wolfSSL_ASN1_TIME_get_length(t);
- AssertIntEQ(tlen, ASN_GENERALIZED_TIME_SIZE);
- data = wolfSSL_ASN1_TIME_get_data(t);
- AssertStrEQ((char*)data, "20050727123456Z");
- gtime = wolfSSL_ASN1_TIME_to_generalizedtime(t, &out);
- AssertIntEQ(gtime->type, ASN_GENERALIZED_TIME);
- AssertIntEQ(gtime->length, ASN_GENERALIZED_TIME_SIZE);
- AssertStrEQ((char*)gtime->data, "20050727123456Z");
- XFREE(out, NULL, DYNAMIC_TYPE_TMP_BUFFER);
-
- /* Null parameter test */
- XMEMSET(t, 0, ASN_GENERALIZED_TIME_SIZE);
- gtime = NULL;
- out = NULL;
- t->type = ASN_UTC_TIME;
- t->length = ASN_UTC_TIME_SIZE;
- XMEMCPY(t->data, "050727123456Z", ASN_UTC_TIME_SIZE);
- AssertNotNull(gtime = wolfSSL_ASN1_TIME_to_generalizedtime(t, NULL));
- AssertIntEQ(gtime->type, ASN_GENERALIZED_TIME);
- AssertIntEQ(gtime->length, ASN_GENERALIZED_TIME_SIZE);
- AssertStrEQ((char*)gtime->data, "20050727123456Z");
-
- XFREE(gtime, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(t, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_X509_CA_num(void){
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) && \
- defined(HAVE_ECC) && !defined(NO_RSA)
- WOLFSSL_X509_STORE *store;
- WOLFSSL_X509 *x509_1, *x509_2;
- int ca_num = 0;
-
- printf(testingFmt, "wolfSSL_X509_CA_num()");
-
- store = wolfSSL_X509_STORE_new();
- x509_1 = wolfSSL_X509_load_certificate_file(svrCertFile, WOLFSSL_FILETYPE_PEM);
- wolfSSL_X509_STORE_add_cert(store, x509_1);
- ca_num = wolfSSL_X509_CA_num(store);
- AssertIntEQ(ca_num, 1);
-
- x509_2 = wolfSSL_X509_load_certificate_file(eccCertFile, WOLFSSL_FILETYPE_PEM);
- wolfSSL_X509_STORE_add_cert(store, x509_2);
- ca_num = wolfSSL_X509_CA_num(store);
- AssertIntEQ(ca_num, 2);
-
- wolfSSL_X509_free(x509_1);
- wolfSSL_X509_free(x509_2);
- wolfSSL_X509_STORE_free(store);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_X509_check_ca(void){
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(NO_FILESYSTEM)
- WOLFSSL_X509 *x509;
-
- printf(testingFmt, "wolfSSL_X509_check_ca()");
-
- x509 = wolfSSL_X509_load_certificate_file(svrCertFile, WOLFSSL_FILETYPE_PEM);
- AssertIntEQ(wolfSSL_X509_check_ca(x509), 1);
- wolfSSL_X509_free(x509);
-
- x509 = wolfSSL_X509_load_certificate_file(ntruCertFile, WOLFSSL_FILETYPE_PEM);
- AssertIntEQ(wolfSSL_X509_check_ca(x509), 0);
- wolfSSL_X509_free(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_DC_cert(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(NO_FILESYSTEM) && \
- defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_KEY_GEN) && \
- defined(WOLFSSL_CERT_EXT)
- Cert cert;
- RsaKey key;
- WC_RNG rng;
- byte der[FOURK_BUF];
- int certSz;
- int ret, idx;
- const byte mySerial[8] = {1,2,3,4,5,6,7,8};
- const unsigned char* pt;
-
- X509* x509;
- X509_NAME* x509name;
- X509_NAME_ENTRY* entry;
- ASN1_STRING* entryValue;
-
- CertName name;
- printf(testingFmt, "wolfSSL Certs with DC");
-
- XMEMSET(&name, 0, sizeof(CertName));
-
- /* set up cert name */
- XMEMCPY(name.country, "US", sizeof("US"));
- name.countryEnc = CTC_PRINTABLE;
- XMEMCPY(name.state, "Oregon", sizeof("Oregon"));
- name.stateEnc = CTC_UTF8;
- XMEMCPY(name.locality, "Portland", sizeof("Portland"));
- name.localityEnc = CTC_UTF8;
- XMEMCPY(name.sur, "Test", sizeof("Test"));
- name.surEnc = CTC_UTF8;
- XMEMCPY(name.org, "wolfSSL", sizeof("wolfSSL"));
- name.orgEnc = CTC_UTF8;
- XMEMCPY(name.unit, "Development", sizeof("Development"));
- name.unitEnc = CTC_UTF8;
- XMEMCPY(name.commonName, "www.wolfssl.com", sizeof("www.wolfssl.com"));
- name.commonNameEnc = CTC_UTF8;
- XMEMCPY(name.serialDev, "wolfSSL12345", sizeof("wolfSSL12345"));
- name.serialDevEnc = CTC_PRINTABLE;
-#ifdef WOLFSSL_MULTI_ATTRIB
- #if CTC_MAX_ATTRIB > 2
- {
- NameAttrib* n;
- n = &name.name[0];
- n->id = ASN_DOMAIN_COMPONENT;
- n->type = CTC_UTF8;
- n->sz = sizeof("com");
- XMEMCPY(n->value, "com", sizeof("com"));
-
- n = &name.name[1];
- n->id = ASN_DOMAIN_COMPONENT;
- n->type = CTC_UTF8;
- n->sz = sizeof("wolfssl");
- XMEMCPY(n->value, "wolfssl", sizeof("wolfssl"));
- }
- #endif
-#endif /* WOLFSSL_MULTI_ATTRIB */
-
- AssertIntEQ(wc_InitRsaKey(&key, HEAP_HINT), 0);
-#ifndef HAVE_FIPS
- AssertIntEQ(wc_InitRng_ex(&rng, HEAP_HINT, devId), 0);
-#else
- AssertIntEQ(wc_InitRng(&rng), 0);
-#endif
- AssertIntEQ(wc_MakeRsaKey(&key, 1024, 3, &rng), 0);
-
-
- XMEMSET(&cert, 0 , sizeof(Cert));
- AssertIntEQ(wc_InitCert(&cert), 0);
-
- XMEMCPY(&cert.subject, &name, sizeof(CertName));
- XMEMCPY(cert.serial, mySerial, sizeof(mySerial));
- cert.serialSz = (int)sizeof(mySerial);
- cert.isCA = 1;
-#ifndef NO_SHA256
- cert.sigType = CTC_SHA256wRSA;
-#else
- cert.sigType = CTC_SHAwRSA;
-#endif
-
- /* add SKID from the Public Key */
- AssertIntEQ(wc_SetSubjectKeyIdFromPublicKey(&cert, &key, NULL), 0);
-
- /* add AKID from the Public Key */
- AssertIntEQ(wc_SetAuthKeyIdFromPublicKey(&cert, &key, NULL), 0);
-
- ret = 0;
- do {
-#if defined(WOLFSSL_ASYNC_CRYPT)
- ret = wc_AsyncWait(ret, &key.asyncDev, WC_ASYNC_FLAG_CALL_AGAIN);
-#endif
- if (ret >= 0) {
- ret = wc_MakeSelfCert(&cert, der, FOURK_BUF, &key, &rng);
- }
- } while (ret == WC_PENDING_E);
- AssertIntGT(ret, 0);
- certSz = ret;
-
- /* der holds a certificate with DC's now check X509 parsing of it */
- pt = der;
- AssertNotNull(x509 = d2i_X509(NULL, &pt, certSz));
- AssertNotNull(x509name = X509_get_subject_name(x509));
-#ifdef WOLFSSL_MULTI_ATTRIB
- AssertIntEQ((idx = X509_NAME_get_index_by_NID(x509name, NID_domainComponent,
- -1)), 5);
- AssertIntEQ((idx = X509_NAME_get_index_by_NID(x509name, NID_domainComponent,
- idx)), 6);
- AssertIntEQ((idx = X509_NAME_get_index_by_NID(x509name, NID_domainComponent,
- idx)), -1);
-#endif /* WOLFSSL_MULTI_ATTRIB */
-
- /* compare DN at index 0 */
- AssertNotNull(entry = X509_NAME_get_entry(x509name, 0));
- AssertNotNull(entryValue = X509_NAME_ENTRY_get_data(entry));
- AssertIntEQ(ASN1_STRING_length(entryValue), 2);
- AssertStrEQ((const char*)ASN1_STRING_data(entryValue), "US");
-
-#ifdef WOLFSSL_MULTI_ATTRIB
- /* get first and second DC and compare result */
- AssertIntEQ((idx = X509_NAME_get_index_by_NID(x509name, NID_domainComponent,
- -1)), 5);
- AssertNotNull(entry = X509_NAME_get_entry(x509name, idx));
- AssertNotNull(entryValue = X509_NAME_ENTRY_get_data(entry));
- AssertStrEQ((const char *)ASN1_STRING_data(entryValue), "com");
-
- AssertIntEQ((idx = X509_NAME_get_index_by_NID(x509name, NID_domainComponent,
- idx)), 6);
- AssertNotNull(entry = X509_NAME_get_entry(x509name, idx));
- AssertNotNull(entryValue = X509_NAME_ENTRY_get_data(entry));
- AssertStrEQ((const char *)ASN1_STRING_data(entryValue), "wolfssl");
-#endif /* WOLFSSL_MULTI_ATTRIB */
-
- /* try invalid index locations for regression test and sanity check */
- AssertNull(entry = X509_NAME_get_entry(x509name, 11));
- AssertNull(entry = X509_NAME_get_entry(x509name, 20));
-
- (void)idx;
- X509_free(x509);
- wc_FreeRsaKey(&key);
- wc_FreeRng(&rng);
- printf(resultFmt, passed);
-#endif
-}
-
-
-static void test_wolfSSL_X509_get_version(void){
-#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && !defined(NO_RSA)
- WOLFSSL_X509 *x509;
-
- printf(testingFmt, "wolfSSL_X509_get_version()");
-
- x509 = wolfSSL_X509_load_certificate_file(svrCertFile, WOLFSSL_FILETYPE_PEM);
- AssertNotNull(x509);
- AssertIntEQ((int)wolfSSL_X509_get_version(x509), 2);
- wolfSSL_X509_free(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_DES_ncbc(void){
-#if defined(OPENSSL_EXTRA) && !defined(NO_DES3)
- const_DES_cblock myDes;
- DES_cblock iv = {1};
- DES_key_schedule key = {0};
- unsigned char msg[] = "hello wolfssl";
- unsigned char out[DES_BLOCK_SIZE * 2] = {0};
- unsigned char pln[DES_BLOCK_SIZE * 2] = {0};
-
- unsigned char exp[] = {0x31, 0x98, 0x2F, 0x3A, 0x55, 0xBF, 0xD8, 0xC4};
- unsigned char exp2[] = {0xC7, 0x45, 0x8B, 0x28, 0x10, 0x53, 0xE0, 0x58};
-
- printf(testingFmt, "wolfSSL_DES_ncbc()");
-
- /* partial block test */
- DES_set_key(&key, &myDes);
- DES_ncbc_encrypt(msg, out, 3, &myDes, &iv, DES_ENCRYPT);
- AssertIntEQ(XMEMCMP(exp, out, DES_BLOCK_SIZE), 0);
- AssertIntEQ(XMEMCMP(exp, iv, DES_BLOCK_SIZE), 0);
-
- DES_set_key(&key, &myDes);
- XMEMSET((byte*)&iv, 0, DES_BLOCK_SIZE);
- *((byte*)&iv) = 1;
- DES_ncbc_encrypt(out, pln, 3, &myDes, &iv, DES_DECRYPT);
- AssertIntEQ(XMEMCMP(msg, pln, 3), 0);
- AssertIntEQ(XMEMCMP(exp, iv, DES_BLOCK_SIZE), 0);
-
- /* full block test */
- DES_set_key(&key, &myDes);
- XMEMSET(pln, 0, DES_BLOCK_SIZE);
- XMEMSET((byte*)&iv, 0, DES_BLOCK_SIZE);
- *((byte*)&iv) = 1;
- DES_ncbc_encrypt(msg, out, 8, &myDes, &iv, DES_ENCRYPT);
- AssertIntEQ(XMEMCMP(exp2, out, DES_BLOCK_SIZE), 0);
- AssertIntEQ(XMEMCMP(exp2, iv, DES_BLOCK_SIZE), 0);
-
- DES_set_key(&key, &myDes);
- XMEMSET((byte*)&iv, 0, DES_BLOCK_SIZE);
- *((byte*)&iv) = 1;
- DES_ncbc_encrypt(out, pln, 8, &myDes, &iv, DES_DECRYPT);
- AssertIntEQ(XMEMCMP(msg, pln, 8), 0);
- AssertIntEQ(XMEMCMP(exp2, iv, DES_BLOCK_SIZE), 0);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_AES_cbc_encrypt()
-{
-#if !defined(NO_AES) && defined(HAVE_AES_CBC) && defined(OPENSSL_EXTRA)
- AES_KEY aes;
- AES_KEY* aesN = NULL;
- size_t len = 0;
- size_t lenB = 0;
- int keySz0 = 0;
- int keySzN = -1;
- byte out[AES_BLOCK_SIZE] = {0};
- byte* outN = NULL;
- const int enc1 = AES_ENCRYPT;
- const int enc2 = AES_DECRYPT;
-
- /* Test vectors retrieved from:
- * <begin URL>
- * https://csrc.nist.gov/
- * CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/
- * documents/aes/KAT_AES.zip
- * </end URL>
- */
- const byte* pt128N = NULL;
- byte* key128N = NULL;
- byte* iv128N = NULL;
- byte iv128tmp[AES_BLOCK_SIZE] = {0};
-
- const byte pt128[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
-
- const byte ct128[] = { 0x87,0x85,0xb1,0xa7,0x5b,0x0f,0x3b,0xd9,
- 0x58,0xdc,0xd0,0xe2,0x93,0x18,0xc5,0x21 };
-
- const byte iv128[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
-
- byte key128[] = { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0x00 };
-
-
- len = sizeof(pt128);
-
- #define STRESS_T(a, b, c, d, e, f, g, h, i) \
- wolfSSL_AES_cbc_encrypt(a, b, c, d, e, f); \
- AssertIntNE(XMEMCMP(b, g, h), i)
-
- #define RESET_IV(x, y) XMEMCPY(x, y, AES_BLOCK_SIZE)
-
- printf(testingFmt, "Stressing wolfSSL_AES_cbc_encrypt()");
- STRESS_T(pt128N, out, len, &aes, iv128tmp, enc1, ct128, AES_BLOCK_SIZE, 0);
- STRESS_T(pt128, out, len, &aes, iv128N, enc1, ct128, AES_BLOCK_SIZE, 0);
-
- wolfSSL_AES_cbc_encrypt(pt128, outN, len, &aes, iv128tmp, enc1);
- AssertIntNE(XMEMCMP(out, ct128, AES_BLOCK_SIZE), 0);
- wolfSSL_AES_cbc_encrypt(pt128, out, len, aesN, iv128tmp, enc1);
- AssertIntNE(XMEMCMP(out, ct128, AES_BLOCK_SIZE), 0);
-
- STRESS_T(pt128, out, lenB, &aes, iv128tmp, enc1, ct128, AES_BLOCK_SIZE, 0);
- printf(resultFmt, "Stress Tests: passed");
-
- printf(testingFmt, "Stressing wolfSSL_AES_set_encrypt_key");
- AssertIntNE(wolfSSL_AES_set_encrypt_key(key128N, sizeof(key128)*8, &aes),0);
- AssertIntNE(wolfSSL_AES_set_encrypt_key(key128, sizeof(key128)*8, aesN),0);
- AssertIntNE(wolfSSL_AES_set_encrypt_key(key128, keySz0, &aes), 0);
- AssertIntNE(wolfSSL_AES_set_encrypt_key(key128, keySzN, &aes), 0);
- printf(resultFmt, "Stress Tests: passed");
-
- printf(testingFmt, "Stressing wolfSSL_AES_set_decrypt_key");
- AssertIntNE(wolfSSL_AES_set_decrypt_key(key128N, sizeof(key128)*8, &aes),0);
- AssertIntNE(wolfSSL_AES_set_decrypt_key(key128N, sizeof(key128)*8, aesN),0);
- AssertIntNE(wolfSSL_AES_set_decrypt_key(key128, keySz0, &aes), 0);
- AssertIntNE(wolfSSL_AES_set_decrypt_key(key128, keySzN, &aes), 0);
- printf(resultFmt, "Stress Tests: passed");
-
- #ifdef WOLFSSL_AES_128
-
- printf(testingFmt, "wolfSSL_AES_cbc_encrypt() 128-bit");
- XMEMSET(out, 0, AES_BLOCK_SIZE);
- RESET_IV(iv128tmp, iv128);
-
- AssertIntEQ(wolfSSL_AES_set_encrypt_key(key128, sizeof(key128)*8, &aes), 0);
- wolfSSL_AES_cbc_encrypt(pt128, out, len, &aes, iv128tmp, enc1);
- AssertIntEQ(XMEMCMP(out, ct128, AES_BLOCK_SIZE), 0);
- printf(resultFmt, "passed");
-
- #ifdef HAVE_AES_DECRYPT
-
- printf(testingFmt, "wolfSSL_AES_cbc_encrypt() 128-bit in decrypt mode");
- XMEMSET(out, 0, AES_BLOCK_SIZE);
- RESET_IV(iv128tmp, iv128);
- len = sizeof(ct128);
-
- AssertIntEQ(wolfSSL_AES_set_decrypt_key(key128, sizeof(key128)*8, &aes), 0);
- wolfSSL_AES_cbc_encrypt(ct128, out, len, &aes, iv128tmp, enc2);
- AssertIntEQ(XMEMCMP(out, pt128, AES_BLOCK_SIZE), 0);
- printf(resultFmt, "passed");
-
- #endif
-
- #endif /* WOLFSSL_AES_128 */
- #ifdef WOLFSSL_AES_192
- /* Test vectors from NIST Special Publication 800-38A, 2001 Edition
- * Appendix F.2.3 */
-
- byte iv192tmp[AES_BLOCK_SIZE] = {0};
-
- const byte pt192[] = { 0x6b,0xc1,0xbe,0xe2,0x2e,0x40,0x9f,0x96,
- 0xe9,0x3d,0x7e,0x11,0x73,0x93,0x17,0x2a };
-
- const byte ct192[] = { 0x4f,0x02,0x1d,0xb2,0x43,0xbc,0x63,0x3d,
- 0x71,0x78,0x18,0x3a,0x9f,0xa0,0x71,0xe8 };
-
- const byte iv192[] = { 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
- 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F };
-
- byte key192[] = { 0x8e,0x73,0xb0,0xf7,0xda,0x0e,0x64,0x52,
- 0xc8,0x10,0xf3,0x2b,0x80,0x90,0x79,0xe5,
- 0x62,0xf8,0xea,0xd2,0x52,0x2c,0x6b,0x7b };
-
- len = sizeof(pt192);
-
- printf(testingFmt, "wolfSSL_AES_cbc_encrypt() 192-bit");
- XMEMSET(out, 0, AES_BLOCK_SIZE);
- RESET_IV(iv192tmp, iv192);
-
- AssertIntEQ(wolfSSL_AES_set_encrypt_key(key192, sizeof(key192)*8, &aes), 0);
- wolfSSL_AES_cbc_encrypt(pt192, out, len, &aes, iv192tmp, enc1);
- AssertIntEQ(XMEMCMP(out, ct192, AES_BLOCK_SIZE), 0);
- printf(resultFmt, "passed");
-
- #ifdef HAVE_AES_DECRYPT
-
- printf(testingFmt, "wolfSSL_AES_cbc_encrypt() 192-bit in decrypt mode");
- len = sizeof(ct192);
- RESET_IV(iv192tmp, iv192);
- XMEMSET(out, 0, AES_BLOCK_SIZE);
-
- AssertIntEQ(wolfSSL_AES_set_decrypt_key(key192, sizeof(key192)*8, &aes), 0);
- wolfSSL_AES_cbc_encrypt(ct192, out, len, &aes, iv192tmp, enc2);
- AssertIntEQ(XMEMCMP(out, pt192, AES_BLOCK_SIZE), 0);
- printf(resultFmt, "passed");
-
- #endif
- #endif /* WOLFSSL_AES_192 */
- #ifdef WOLFSSL_AES_256
- /* Test vectors from NIST Special Publication 800-38A, 2001 Edition,
- * Appendix F.2.5 */
- byte iv256tmp[AES_BLOCK_SIZE] = {0};
-
- const byte pt256[] = { 0x6b,0xc1,0xbe,0xe2,0x2e,0x40,0x9f,0x96,
- 0xe9,0x3d,0x7e,0x11,0x73,0x93,0x17,0x2a };
-
- const byte ct256[] = { 0xf5,0x8c,0x4c,0x04,0xd6,0xe5,0xf1,0xba,
- 0x77,0x9e,0xab,0xfb,0x5f,0x7b,0xfb,0xd6 };
-
- const byte iv256[] = { 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
- 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F };
-
- byte key256[] = { 0x60,0x3d,0xeb,0x10,0x15,0xca,0x71,0xbe,
- 0x2b,0x73,0xae,0xf0,0x85,0x7d,0x77,0x81,
- 0x1f,0x35,0x2c,0x07,0x3b,0x61,0x08,0xd7,
- 0x2d,0x98,0x10,0xa3,0x09,0x14,0xdf,0xf4 };
-
-
- len = sizeof(pt256);
-
- printf(testingFmt, "wolfSSL_AES_cbc_encrypt() 256-bit");
- XMEMSET(out, 0, AES_BLOCK_SIZE);
- RESET_IV(iv256tmp, iv256);
-
- AssertIntEQ(wolfSSL_AES_set_encrypt_key(key256, sizeof(key256)*8, &aes), 0);
- wolfSSL_AES_cbc_encrypt(pt256, out, len, &aes, iv256tmp, enc1);
- AssertIntEQ(XMEMCMP(out, ct256, AES_BLOCK_SIZE), 0);
- printf(resultFmt, "passed");
-
- #ifdef HAVE_AES_DECRYPT
-
- printf(testingFmt, "wolfSSL_AES_cbc_encrypt() 256-bit in decrypt mode");
- len = sizeof(ct256);
- RESET_IV(iv256tmp, iv256);
- XMEMSET(out, 0, AES_BLOCK_SIZE);
-
- AssertIntEQ(wolfSSL_AES_set_decrypt_key(key256, sizeof(key256)*8, &aes), 0);
- wolfSSL_AES_cbc_encrypt(ct256, out, len, &aes, iv256tmp, enc2);
- AssertIntEQ(XMEMCMP(out, pt256, AES_BLOCK_SIZE), 0);
- printf(resultFmt, "passed");
-
- #endif
- #endif /* WOLFSSL_AES_256 */
-#endif
-}
-
-#if defined(WOLFSSL_QT)
-#if !defined(NO_ASN)
-static void test_wolfSSL_ASN1_STRING_to_UTF8(void)
-{
- WOLFSSL_X509* x509;
- WOLFSSL_X509_NAME* subject;
- WOLFSSL_X509_NAME_ENTRY* e;
- WOLFSSL_ASN1_STRING* a;
- FILE* file;
- int idx = 0;
- char targetOutput[16] = "www.wolfssl.com";
- unsigned char* actual_output;
- int len = 0;
- int result = 0;
-
- AssertNotNull(file = fopen("./certs/server-cert.pem", "rb"));
- AssertNotNull(x509 = wolfSSL_PEM_read_X509(file, NULL, NULL, NULL));
- fclose(file);
-
- printf(testingFmt, "wolfSSL_ASN1_STRING_to_UTF8(): NID_commonName");
- AssertNotNull(subject = wolfSSL_X509_get_subject_name(x509));
- AssertIntEQ((idx = wolfSSL_X509_NAME_get_index_by_NID(subject,
- NID_commonName, -1)), 5);
- AssertNotNull(e = wolfSSL_X509_NAME_get_entry(subject, idx));
- AssertNotNull(a = wolfSSL_X509_NAME_ENTRY_get_data(e));
- AssertIntEQ((len = wolfSSL_ASN1_STRING_to_UTF8(&actual_output, a)), 15);
- result = strncmp((const char*)actual_output, targetOutput, len);
- AssertIntEQ(result, 0);
- printf(resultFmt, result == 0 ? passed : failed);
-
- printf(testingFmt, "wolfSSL_ASN1_STRING_to_UTF8(NULL, valid): ");
- AssertIntEQ((len = wolfSSL_ASN1_STRING_to_UTF8(NULL, a)),
- WOLFSSL_FATAL_ERROR);
- printf(resultFmt, len == WOLFSSL_FATAL_ERROR ? passed : failed);
-
- printf(testingFmt, "wolfSSL_ASN1_STRING_to_UTF8(valid, NULL): ");
- AssertIntEQ((len = wolfSSL_ASN1_STRING_to_UTF8(&actual_output, NULL)),
- WOLFSSL_FATAL_ERROR);
- printf(resultFmt, len == WOLFSSL_FATAL_ERROR ? passed : failed);
-
- printf(testingFmt, "wolfSSL_ASN1_STRING_to_UTF8(NULL, NULL): ");
- AssertIntEQ((len = wolfSSL_ASN1_STRING_to_UTF8(NULL, NULL)),
- WOLFSSL_FATAL_ERROR);
- printf(resultFmt, len == WOLFSSL_FATAL_ERROR ? passed : failed);
-
- wolfSSL_X509_free(x509);
- XFREE(actual_output, NULL, DYNAMIC_TYPE_TMP_BUFFER);
-}
-#endif /* !defined(NO_ASN) */
-
-static void test_wolfSSL_sk_CIPHER_description(void)
-{
- const long flags = SSL_OP_NO_SSLv2 | SSL_OP_NO_COMPRESSION;
- int i,j,k;
- int numCiphers = 0;
- const SSL_METHOD *method = NULL;
- const SSL_CIPHER *cipher = NULL;
- STACK_OF(SSL_CIPHER) *supportedCiphers = NULL;
- SSL_CTX *ctx = NULL;
- SSL *ssl = NULL;
- char buf[256];
- char test_str[9] = "0000000\0";
- const char badStr[] = "unknown\0";
- const char certPath[] = "./certs/client-cert.pem";
- XMEMSET(buf, 0, sizeof(buf));
-
- printf(testingFmt, "wolfSSL_sk_CIPHER_description");
-
- AssertNotNull(method = TLSv1_client_method());
- AssertNotNull(ctx = SSL_CTX_new(method));
-
- SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, 0);
- SSL_CTX_set_verify_depth(ctx, 4);
-
- SSL_CTX_set_options(ctx, flags);
- AssertIntEQ(SSL_CTX_load_verify_locations(ctx, certPath, NULL),
- WOLFSSL_SUCCESS);
-
- AssertNotNull(ssl = SSL_new(ctx));
- /* SSL_get_ciphers returns a stack of all configured ciphers
- * A flag, getCipherAtOffset, is set to later have SSL_CIPHER_description
- */
- AssertNotNull(supportedCiphers = SSL_get_ciphers(ssl));
-
- /* loop through the amount of supportedCiphers */
- numCiphers = sk_num(supportedCiphers);
- for (i = 0; i < numCiphers; ++i) {
-
- /* sk_value increments "sk->data.cipher->cipherOffset".
- * wolfSSL_sk_CIPHER_description sets the description for
- * the cipher based on the provided offset.
- */
-
- if ((cipher = (const WOLFSSL_CIPHER*)sk_value(supportedCiphers, i))) {
- SSL_CIPHER_description(cipher, buf, sizeof(buf));
- }
-
- /* Search cipher description string for "unknown" descriptor */
- for (j = 0; j < (int)XSTRLEN(buf); j++) {
- k = 0;
- while ((k < (int)XSTRLEN(badStr)) && (buf[j] == badStr[k])) {
- test_str[k] = badStr[k];
- j++;
- k++;
- }
- }
- /* Fail if test_str == badStr == "unknown" */
- AssertStrNE(test_str,badStr);
- }
- SSL_free(ssl);
- SSL_CTX_free(ctx);
-
- printf(resultFmt, passed);
-}
-
-static void test_wolfSSL_get_ciphers_compat(void)
-{
- const SSL_METHOD *method = NULL;
- const char certPath[] = "./certs/client-cert.pem";
- STACK_OF(SSL_CIPHER) *supportedCiphers = NULL;
- SSL_CTX *ctx = NULL;
- WOLFSSL *ssl = NULL;
- const long flags = SSL_OP_NO_SSLv2 | SSL_OP_NO_COMPRESSION;
-
- printf(testingFmt, "wolfSSL_get_ciphers_compat");
-
- AssertNotNull(method = TLSv1_client_method());
- AssertNotNull(ctx = SSL_CTX_new(method));
-
- SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, 0);
- SSL_CTX_set_verify_depth(ctx, 4);
-
- SSL_CTX_set_options(ctx, flags);
- AssertIntEQ(SSL_CTX_load_verify_locations(ctx, certPath, NULL),
- WOLFSSL_SUCCESS);
-
- AssertNotNull(ssl = SSL_new(ctx));
-
- /* Test Bad NULL input */
- AssertNull(supportedCiphers = SSL_get_ciphers(NULL));
- /* Test for Good input */
- AssertNotNull(supportedCiphers = SSL_get_ciphers(ssl));
- /* Further usage of SSL_get_ciphers/wolfSSL_get_ciphers_compat is
- * tested in test_wolfSSL_sk_CIPHER_description according to Qt usage */
-
- SSL_free(ssl);
- SSL_CTX_free(ctx);
-
- printf(resultFmt, passed);
-}
-
-static void test_wolfSSL_X509_PUBKEY_get(void)
-{
- WOLFSSL_X509_PUBKEY pubkey;
- WOLFSSL_X509_PUBKEY* key;
- WOLFSSL_EVP_PKEY evpkey;
- WOLFSSL_EVP_PKEY* evpPkey;
- WOLFSSL_EVP_PKEY* retEvpPkey;
-
- key = &pubkey;
- evpPkey = &evpkey;
-
- evpPkey->type = WOLFSSL_SUCCESS;
- key->pkey = evpPkey;
-
- printf(testingFmt, "wolfSSL_X509_PUBKEY_get()");
- AssertNotNull(retEvpPkey = wolfSSL_X509_PUBKEY_get(key));
- AssertIntEQ(retEvpPkey->type, WOLFSSL_SUCCESS);
-
- AssertNull(retEvpPkey = wolfSSL_X509_PUBKEY_get(NULL));
-
- key->pkey = NULL;
- AssertNull(retEvpPkey = wolfSSL_X509_PUBKEY_get(key));
- printf(resultFmt,retEvpPkey == NULL ? passed : failed);
-}
-
-static void test_wolfSSL_d2i_DHparams()
-{
-#if !defined(NO_DH)
- FILE* f = NULL;
- unsigned char buf[4096];
- const unsigned char* pt = buf;
- const char* params1 = "./certs/dh2048.der";
- const char* params2 = "./certs/dh3072.der";
- long len = 0;
- WOLFSSL_DH* dh = NULL;
- XMEMSET(buf, 0, sizeof(buf));
-
- /* Test 2048 bit parameters */
- printf(testingFmt, "wolfSSL_d2i_DHparams() 2048-bit");
- f = XFOPEN(params1, "rb");
- AssertTrue(f != XBADFILE);
- len = (long)XFREAD(buf, 1, sizeof(buf), f);
- XFCLOSE(f);
-
- /* Valid case */
- AssertNotNull(dh = wolfSSL_d2i_DHparams(NULL, &pt, len));
- AssertNotNull(dh->p);
- AssertNotNull(dh->g);
- AssertTrue(pt != buf);
- AssertIntEQ(DH_generate_key(dh), WOLFSSL_SUCCESS);
-
- /* Invalid cases */
- AssertNull(wolfSSL_d2i_DHparams(NULL, NULL, len));
- AssertNull(wolfSSL_d2i_DHparams(NULL, &pt, -1));
- AssertNull(wolfSSL_d2i_DHparams(NULL, &pt, 10));
-
- DH_free(dh);
- printf(resultFmt, passed);
-
- *buf = 0;
- pt = buf;
-
- /* Test 3072 bit parameters */
- printf(testingFmt, "wolfSSL_d2i_DHparams() 3072-bit");
- f = XFOPEN(params2, "rb");
- AssertTrue(f != XBADFILE);
- len = (long)XFREAD(buf, 1, sizeof(buf), f);
- XFCLOSE(f);
-
- /* Valid case */
- AssertNotNull(dh = wolfSSL_d2i_DHparams(NULL, &pt, len));
- AssertNotNull(dh->p);
- AssertNotNull(dh->g);
- AssertTrue(pt != buf);
- AssertIntEQ(DH_generate_key(dh), 1);
-
- /* Invalid cases */
- AssertNull(wolfSSL_d2i_DHparams(NULL, NULL, len));
- AssertNull(wolfSSL_d2i_DHparams(NULL, &pt, -1));
-
- DH_free(dh);
- printf(resultFmt, passed);
-
-#endif
-}
-
-static void test_wolfSSL_i2d_DHparams()
-{
-#if !defined(NO_DH)
- FILE* f;
- unsigned char buf[4096];
- const unsigned char* pt = buf;
- unsigned char* pt2 = buf;
- const char* params1 = "./certs/dh2048.der";
- const char* params2 = "./certs/dh3072.der";
- long len;
- WOLFSSL_DH* dh;
-
- /* Test 2048 bit parameters */
- printf(testingFmt, "wolfSSL_i2d_DHparams() 2048-bit");
- f = XFOPEN(params1, "rb");
- AssertTrue(f != XBADFILE);
- len = (long)XFREAD(buf, 1, sizeof(buf), f);
- XFCLOSE(f);
-
- /* Valid case */
- AssertNotNull(dh = wolfSSL_d2i_DHparams(NULL, &pt, len));
- AssertTrue(pt != buf);
- AssertIntEQ(DH_generate_key(dh), 1);
- AssertIntEQ(wolfSSL_i2d_DHparams(dh, &pt2), 268);
-
- /* Invalid cases */
- AssertIntEQ(wolfSSL_i2d_DHparams(NULL, &pt2), 0);
- AssertIntEQ(wolfSSL_i2d_DHparams(dh, NULL), 264);
-
- DH_free(dh);
- printf(resultFmt, passed);
-
- *buf = 0;
- pt = buf;
- pt2 = buf;
-
- /* Test 3072 bit parameters */
- printf(testingFmt, "wolfSSL_i2d_DHparams() 3072-bit");
- f = XFOPEN(params2, "rb");
- AssertTrue(f != XBADFILE);
- len = (long)XFREAD(buf, 1, sizeof(buf), f);
- XFCLOSE(f);
-
- /* Valid case */
- AssertNotNull(dh = wolfSSL_d2i_DHparams(NULL, &pt, len));
- AssertTrue(pt != buf);
- AssertIntEQ(DH_generate_key(dh), 1);
- AssertIntEQ(wolfSSL_i2d_DHparams(dh, &pt2), 396);
-
- /* Invalid cases */
- AssertIntEQ(wolfSSL_i2d_DHparams(NULL, &pt2), 0);
- AssertIntEQ(wolfSSL_i2d_DHparams(dh, NULL), 392);
-
- DH_free(dh);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_EC_KEY_dup(void)
-{
-#if defined(HAVE_ECC) && (defined(OPENSSL_EXTRA) || \
- defined(OPENSSL_EXTRA_X509_SMALL))
-
- WOLFSSL_EC_KEY* ecKey;
- WOLFSSL_EC_KEY* dupKey;
- ecc_key* srcKey;
- ecc_key* destKey;
-
- printf(testingFmt, "wolfSSL_EC_KEY_dup()");
-
- AssertNotNull(ecKey = wolfSSL_EC_KEY_new());
- AssertIntEQ(wolfSSL_EC_KEY_generate_key(ecKey), 1);
-
- /* Valid cases */
- AssertNotNull(dupKey = wolfSSL_EC_KEY_dup(ecKey));
- AssertIntEQ(wc_ecc_check_key((ecc_key*)dupKey->internal), 0);
-
- /* Compare pubkey */
- srcKey = (ecc_key*)ecKey->internal;
- destKey = (ecc_key*)dupKey->internal;
- AssertIntEQ(wc_ecc_cmp_point(&srcKey->pubkey, &destKey->pubkey), 0);
-
- /* compare EC_GROUP */
- AssertIntEQ(wolfSSL_EC_GROUP_cmp(ecKey->group, dupKey->group, NULL), MP_EQ);
-
- /* compare EC_POINT */
- AssertIntEQ(wolfSSL_EC_POINT_cmp(ecKey->group, ecKey->pub_key, \
- dupKey->pub_key, NULL), MP_EQ);
-
- /* compare BIGNUM */
- AssertIntEQ(wolfSSL_BN_cmp(ecKey->priv_key, dupKey->priv_key), MP_EQ);
- wolfSSL_EC_KEY_free(dupKey);
-
- /* Invalid cases */
- /* NULL key */
- AssertNull(dupKey = wolfSSL_EC_KEY_dup(NULL));
- /* NULL ecc_key */
- wc_ecc_free((ecc_key*)ecKey->internal);
- XFREE(ecKey->internal, NULL, DYNAMIC_TYPE_ECC);
- ecKey->internal = NULL; /* Set ecc_key to NULL */
- AssertNull(dupKey = wolfSSL_EC_KEY_dup(ecKey));
- wolfSSL_EC_KEY_free(ecKey);
- wolfSSL_EC_KEY_free(dupKey);
-
- /* NULL Group */
- AssertNotNull(ecKey = wolfSSL_EC_KEY_new());
- AssertIntEQ(wolfSSL_EC_KEY_generate_key(ecKey), 1);
- wolfSSL_EC_GROUP_free(ecKey->group);
- ecKey->group = NULL; /* Set group to NULL */
- AssertNull(dupKey = wolfSSL_EC_KEY_dup(ecKey));
- wolfSSL_EC_KEY_free(ecKey);
- wolfSSL_EC_KEY_free(dupKey);
-
- /* NULL public key */
- AssertNotNull(ecKey = wolfSSL_EC_KEY_new());
- AssertIntEQ(wolfSSL_EC_KEY_generate_key(ecKey), 1);
- wc_ecc_del_point((ecc_point*)ecKey->pub_key->internal);
- ecKey->pub_key->internal = NULL; /* Set ecc_point to NULL */
- AssertNull(dupKey = wolfSSL_EC_KEY_dup(ecKey));
-
- wolfSSL_EC_POINT_free(ecKey->pub_key);
- ecKey->pub_key = NULL; /* Set pub_key to NULL */
- AssertNull(dupKey = wolfSSL_EC_KEY_dup(ecKey));
- wolfSSL_EC_KEY_free(ecKey);
- wolfSSL_EC_KEY_free(dupKey);
-
- /* NULL private key */
- AssertNotNull(ecKey = wolfSSL_EC_KEY_new());
- AssertIntEQ(wolfSSL_EC_KEY_generate_key(ecKey), 1);
-#if defined(WOLFSSL_PUBLIC_MP)
- mp_int* mp = (mp_int*)ecKey->priv_key->internal;
- mp_forcezero(mp);
- mp_free(mp);
- ecKey->priv_key->internal = NULL; /* Set internal key to NULL */
- AssertNull(dupKey = wolfSSL_EC_KEY_dup(ecKey));
-#endif
- wolfSSL_BN_free(ecKey->priv_key);
- ecKey->priv_key = NULL; /* Set priv_key to NULL */
- AssertNull(dupKey = wolfSSL_EC_KEY_dup(ecKey));
- wolfSSL_EC_KEY_free(ecKey);
- wolfSSL_EC_KEY_free(dupKey);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_EVP_PKEY_set1_get1_DSA(void)
-{
-#if !defined(NO_DSA)
- DSA *dsa = NULL;
- DSA *setDsa = NULL;
- EVP_PKEY *pkey = NULL;
- EVP_PKEY *set1Pkey = NULL;
-
- SHA_CTX sha;
- byte signature[DSA_SIG_SIZE];
- byte hash[WC_SHA_DIGEST_SIZE];
- word32 bytes;
- int answer;
-#ifdef USE_CERT_BUFFERS_1024
- const unsigned char* dsaKeyDer = dsa_key_der1024;
- int dsaKeySz = sizeof_dsa_key_der_1024;
- byte tmp[ONEK_BUF];
- XMEMSET(tmp, 0, sizeof(tmp));
- XMEMCPY(tmp, dsaKeyDer , dsaKeySz);
- bytes = dsa_key_der_sz;
-#elif defined(USE_CERT_BUFFERS_2048)
- const unsigned char* dsaKeyDer = dsa_key_der_2048;
- int dsaKeySz = sizeof_dsa_key_der_2048;
- byte tmp[TWOK_BUF];
- XMEMSET(tmp, 0, sizeof(tmp));
- XMEMCPY(tmp, dsaKeyDer , dsaKeySz);
- bytes = dsaKeySz;
-#else
- const unsigned char* dsaKeyDer = dsa_key_der_2048;
- int dsaKeySz = sizeof_dsa_key_der_2048;
- byte tmp[TWOK_BUF];
- XMEMSET(tmp, 0, sizeof(tmp));
- XMEMCPY(tmp, dsaKeyDer , dsaKeySz);
- XFILE fp = XOPEN("./certs/dsa2048.der", "rb");
- if (fp == XBADFILE) {
- return WOLFSSL_BAD_FILE;
- }
- bytes = (word32) XFREAD(tmp, 1, sizeof(tmp), fp);
- XFCLOSE(fp);
-#endif /* END USE_CERT_BUFFERS_1024 */
-
- printf(testingFmt,
- "wolfSSL_EVP_PKEY_set1_DSA and wolfSSL_EVP_PKEY_get1_DSA");
-
- /* Create hash to later Sign and Verify */
- AssertIntEQ(SHA1_Init(&sha), WOLFSSL_SUCCESS);
- AssertIntEQ(SHA1_Update(&sha, tmp, bytes), WOLFSSL_SUCCESS);
- AssertIntEQ(SHA1_Final(hash,&sha), WOLFSSL_SUCCESS);
-
- /* Initialize pkey with der format dsa key */
- AssertNotNull(wolfSSL_d2i_PrivateKey(EVP_PKEY_DSA, &pkey,
- &dsaKeyDer ,(long)dsaKeySz));
-
- /* Test wolfSSL_EVP_PKEY_get1_DSA */
- /* Should Fail: NULL argument */
- AssertNull(dsa = wolfSSL_EVP_PKEY_get1_DSA(NULL));
- /* Should Pass: Initialized pkey argument */
- AssertNotNull(dsa = wolfSSL_EVP_PKEY_get1_DSA(pkey));
-
- /* Sign */
- AssertIntEQ(wolfSSL_DSA_do_sign(hash, signature, dsa), WOLFSSL_SUCCESS);
- /* Verify. */
- AssertIntEQ(wolfSSL_DSA_do_verify(hash, signature, dsa, &answer),
- WOLFSSL_SUCCESS);
-
- /* Test wolfSSL_EVP_PKEY_set1_DSA */
- /* Should Fail: set1Pkey not initialized */
- AssertIntNE(wolfSSL_EVP_PKEY_set1_DSA(set1Pkey, dsa), WOLFSSL_SUCCESS);
-
- /* Initialize set1Pkey */
- set1Pkey = wolfSSL_EVP_PKEY_new();
-
- /* Should Fail Verify: setDsa not initialized from set1Pkey */
- AssertIntNE(wolfSSL_DSA_do_verify(hash,signature,setDsa,&answer),
- WOLFSSL_SUCCESS);
-
- /* Should Pass: set dsa into set1Pkey */
- AssertIntEQ(wolfSSL_EVP_PKEY_set1_DSA(set1Pkey, dsa), WOLFSSL_SUCCESS);
- printf(resultFmt, passed);
-
- DSA_free(dsa);
- DSA_free(setDsa);
- EVP_PKEY_free(pkey);
- EVP_PKEY_free(set1Pkey);
-#endif /* NO_DSA */
-} /* END test_EVP_PKEY_set1_get1_DSA */
-
-static void test_wolfSSL_EVP_PKEY_set1_get1_EC_KEY (void)
-{
-#ifdef HAVE_ECC
- WOLFSSL_EC_KEY *ecKey = NULL;
- WOLFSSL_EC_KEY *ecGet1 = NULL;
- EVP_PKEY *pkey = NULL;
-
- printf(testingFmt,
- "wolfSSL_EVP_PKEY_set1_EC_KEY and wolfSSL_EVP_PKEY_get1_EC_KEY");
- AssertNotNull(ecKey = wolfSSL_EC_KEY_new());
- AssertNotNull(pkey = wolfSSL_EVP_PKEY_new());
-
- /* Test wolfSSL_EVP_PKEY_set1_EC_KEY */
- AssertIntEQ(wolfSSL_EVP_PKEY_set1_EC_KEY(NULL, ecKey), WOLFSSL_FAILURE);
- AssertIntEQ(wolfSSL_EVP_PKEY_set1_EC_KEY(pkey, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(wolfSSL_EVP_PKEY_set1_EC_KEY(pkey, ecKey), WOLFSSL_SUCCESS);
-
- /* Test wolfSSL_EVP_PKEY_get1_EC_KEY */
- AssertNull(wolfSSL_EVP_PKEY_get1_EC_KEY(NULL));
- AssertNotNull(ecGet1 = wolfSSL_EVP_PKEY_get1_EC_KEY(pkey));
-
- wolfSSL_EC_KEY_free(ecKey);
- wolfSSL_EC_KEY_free(ecGet1);
- EVP_PKEY_free(pkey);
-
- /* PASSED */
- printf(resultFmt, passed);
-#endif /* HAVE_ECC */
-} /* END test_EVP_PKEY_set1_get1_EC_KEY */
-
-static void test_wolfSSL_EVP_PKEY_set1_get1_DH (void)
-{
-#if !defined(NO_DH)
- DH *dh = NULL;
- DH *setDh = NULL;
- EVP_PKEY *pkey = NULL;
-
- FILE* f = NULL;
- unsigned char buf[4096];
- const unsigned char* pt = buf;
- const char* dh2048 = "./certs/dh2048.der";
- long len = 0;
- int code = -1;
-
- printf(testingFmt,"wolfSSL_EVP_PKEY_set1_DH and wolfSSL_EVP_PKEY_get1_DH");
-
- XMEMSET(buf, 0, sizeof(buf));
-
- f = XFOPEN(dh2048, "rb");
- AssertTrue(f != XBADFILE);
- len = (long)XFREAD(buf, 1, sizeof(buf), f);
- XFCLOSE(f);
-
- /* Load dh2048.der into DH with internal format */
- AssertNotNull(setDh = wolfSSL_d2i_DHparams(NULL, &pt, len));
-
- AssertIntEQ(wolfSSL_DH_check(setDh, &code), WOLFSSL_SUCCESS);
- AssertIntEQ(code, 0);
- code = -1;
-
- pkey = wolfSSL_EVP_PKEY_new();
-
- /* Set DH into PKEY */
- AssertIntEQ(wolfSSL_EVP_PKEY_set1_DH(pkey, setDh), WOLFSSL_SUCCESS);
-
- /* Get DH from PKEY */
- AssertNotNull(dh = wolfSSL_EVP_PKEY_get1_DH(pkey));
-
- AssertIntEQ(wolfSSL_DH_check(dh, &code), WOLFSSL_SUCCESS);
- AssertIntEQ(code, 0);
-
- EVP_PKEY_free(pkey);
- DH_free(setDh);
- DH_free(dh);
- printf(resultFmt, passed);
-#endif /* NO_DH */
-} /* END test_EVP_PKEY_set1_get1_DH */
-
-static void test_wolfSSL_CTX_ctrl(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA)
- char caFile[] = "./certs/client-ca.pem";
- char clientFile[] = "./certs/client-cert.pem";
- SSL_CTX* ctx;
- X509* x509 = NULL;
-#if !defined(NO_DH) && !defined(NO_DSA)
- byte buf[5300];
- char file[] = "./certs/dsaparams.pem";
- XFILE f;
- int bytes;
- BIO* bio;
- DSA* dsa;
- DH* dh;
-#endif
-#ifdef HAVE_ECC
- WOLFSSL_EC_KEY* ecKey;
-#endif
- printf(testingFmt, "wolfSSL_CTX_ctrl");
-
- AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
-
- x509 = wolfSSL_X509_load_certificate_file(caFile, WOLFSSL_FILETYPE_PEM);
- AssertNotNull(x509);
- AssertIntEQ((int)SSL_CTX_add_extra_chain_cert(ctx, x509), WOLFSSL_SUCCESS);
-
- x509 = wolfSSL_X509_load_certificate_file(clientFile, WOLFSSL_FILETYPE_PEM);
- AssertNotNull(x509);
-
-#if !defined(NO_DH) && !defined(NO_DSA)
- /* Initialize DH */
- f = XFOPEN(file, "rb");
- AssertTrue((f != XBADFILE));
- bytes = (int)XFREAD(buf, 1, sizeof(buf), f);
- XFCLOSE(f);
-
- bio = BIO_new_mem_buf((void*)buf, bytes);
- AssertNotNull(bio);
-
- dsa = wolfSSL_PEM_read_bio_DSAparams(bio, NULL, NULL, NULL);
- AssertNotNull(dsa);
-
- dh = wolfSSL_DSA_dup_DH(dsa);
- AssertNotNull(dh);
-#endif
-#ifdef HAVE_ECC
- /* Initialize WOLFSSL_EC_KEY */
- AssertNotNull(ecKey = wolfSSL_EC_KEY_new());
- AssertIntEQ(wolfSSL_EC_KEY_generate_key(ecKey),1);
-#endif
-
-#if !defined(HAVE_USER_RSA) && !defined(HAVE_FAST_RSA)
- /* additional test of getting EVP_PKEY key size from X509
- * Do not run with user RSA because wolfSSL_RSA_size is not currently
- * allowed with user RSA */
- {
- EVP_PKEY* pkey;
-#if defined(HAVE_ECC)
- X509* ecX509;
-#endif /* HAVE_ECC */
-
- AssertNotNull(pkey = X509_get_pubkey(x509));
- /* current RSA key is 2048 bit (256 bytes) */
- AssertIntEQ(EVP_PKEY_size(pkey), 256);
-
- EVP_PKEY_free(pkey);
-
-#if defined(HAVE_ECC)
-#if defined(USE_CERT_BUFFERS_256)
- AssertNotNull(ecX509 = wolfSSL_X509_load_certificate_buffer(
- cliecc_cert_der_256, sizeof_cliecc_cert_der_256,
- SSL_FILETYPE_ASN1));
-#else
- AssertNotNull(ecX509 = wolfSSL_X509_load_certificate_file(
- cliEccCertFile, SSL_FILETYPE_PEM));
-#endif
- AssertNotNull(pkey = X509_get_pubkey(ecX509));
- /* current ECC key is 256 bit (32 bytes) */
- AssertIntEQ(EVP_PKEY_size(pkey), 32);
-
- X509_free(ecX509);
- EVP_PKEY_free(pkey);
-#endif /* HAVE_ECC */
- }
-#endif /* !defined(HAVE_USER_RSA) && !defined(HAVE_FAST_RSA) */
-
- /* Tests should fail with passed in NULL pointer */
- AssertIntEQ((int)wolfSSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,NULL),
- SSL_FAILURE);
-#if !defined(NO_DH) && !defined(NO_DSA)
- AssertIntEQ((int)wolfSSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,NULL),
- SSL_FAILURE);
-#endif
-#ifdef HAVE_ECC
- AssertIntEQ((int)wolfSSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,NULL),
- SSL_FAILURE);
-#endif
-
- /* Test with SSL_CTRL_EXTRA_CHAIN_CERT
- * wolfSSL_CTX_ctrl should succesffuly call SSL_CTX_add_extra_chain_cert
- */
- AssertIntEQ((int)wolfSSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,x509),
- SSL_SUCCESS);
-
- /* Test with SSL_CTRL_OPTIONS
- * wolfSSL_CTX_ctrl should succesffuly call SSL_CTX_set_options
- */
- AssertTrue(wolfSSL_CTX_ctrl(ctx,SSL_CTRL_OPTIONS,SSL_OP_NO_TLSv1,NULL)
- == SSL_OP_NO_TLSv1);
- AssertTrue(SSL_CTX_get_options(ctx) == SSL_OP_NO_TLSv1);
-
- /* Test with SSL_CTRL_SET_TMP_DH
- * wolfSSL_CTX_ctrl should succesffuly call wolfSSL_SSL_CTX_set_tmp_dh
- */
-#if !defined(NO_DH) && !defined(NO_DSA)
- AssertIntEQ((int)wolfSSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,dh),
- SSL_SUCCESS);
-#endif
-
- /* Test with SSL_CTRL_SET_TMP_ECDH
- * wolfSSL_CTX_ctrl should succesffuly call wolfSSL_SSL_CTX_set_tmp_ecdh
- */
-#ifdef HAVE_ECC
- AssertIntEQ((int)wolfSSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,ecKey),
- SSL_SUCCESS);
-#endif
-
-#ifdef WOLFSSL_ENCRYPTED_KEYS
- AssertNull(SSL_CTX_get_default_passwd_cb(ctx));
- AssertNull(SSL_CTX_get_default_passwd_cb_userdata(ctx));
-#endif
-
- /* Cleanup and Pass */
-#if !defined(NO_DH) && !defined(NO_DSA)
- BIO_free(bio);
- DSA_free(dsa);
- DH_free(dh);
-#endif
-#ifdef HAVE_ECC
- wolfSSL_EC_KEY_free(ecKey);
-#endif
- SSL_CTX_free(ctx);
- printf(resultFmt, passed);
-#endif /* defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- !defined(NO_FILESYSTEM) && !defined(NO_RSA) */
-}
-
-static void test_wolfSSL_DH_check(void)
-{
-#if !defined(NO_DH) && !defined(NO_DSA)
- byte buf[5300];
- char file[] = "./certs/dsaparams.pem";
- XFILE f;
- int bytes;
- BIO* bio;
- DSA* dsa;
- DH* dh = NULL;
- WOLFSSL_BIGNUM* pTmp = NULL;
- WOLFSSL_BIGNUM* gTmp = NULL;
- int codes = -1;
-
- printf(testingFmt, "wolfSSL_DH_check");
-
- /* Initialize DH */
- f = XFOPEN(file, "rb");
- AssertTrue((f != XBADFILE));
- bytes = (int)XFREAD(buf, 1, sizeof(buf), f);
- XFCLOSE(f);
-
- bio = BIO_new_mem_buf((void*)buf, bytes);
- AssertNotNull(bio);
-
- dsa = wolfSSL_PEM_read_bio_DSAparams(bio, NULL, NULL, NULL);
- AssertNotNull(dsa);
-
- dh = wolfSSL_DSA_dup_DH(dsa);
- AssertNotNull(dh);
-
- /* Test assumed to be valid dh.
- * Should return WOLFSSL_SUCCESS
- * codes should be 0
- * Invalid codes = {DH_NOT_SUITABLE_GENERATOR, DH_CHECK_P_NOT_PRIME}
- */
- AssertIntEQ(wolfSSL_DH_check(dh, &codes), WOLFSSL_SUCCESS);
- AssertIntEQ(codes, 0);
-
- /* Test NULL dh: expected BAD_FUNC_ARG */
- AssertIntEQ(wolfSSL_DH_check(NULL, &codes), WOLFSSL_FAILURE);
-
- /* Break dh prime to test if codes = DH_CHECK_P_NOT_PRIME */
- pTmp = dh->p;
- dh->p = NULL;
- AssertIntEQ(wolfSSL_DH_check(dh, &codes), WOLFSSL_FAILURE);
- AssertIntEQ(codes, DH_CHECK_P_NOT_PRIME);
- /* set dh->p back to normal so it wont fail on next tests */
- dh->p = pTmp;
- pTmp = NULL;
-
- /* Break dh generator to test if codes = DH_NOT_SUITABLE_GENERATOR */
- gTmp = dh->g;
- dh->g = NULL;
- AssertIntEQ(wolfSSL_DH_check(dh, &codes), WOLFSSL_FAILURE);
- AssertIntEQ(codes, DH_NOT_SUITABLE_GENERATOR);
- dh->g = gTmp;
- gTmp = NULL;
-
- /* Cleanup and Pass Test */
- BIO_free(bio);
- DSA_free(dsa);
- DH_free(dh);
- printf(resultFmt, passed);
-#endif /* !NO_DH && !NO_DSA */
-}
-
-static void test_wolfSSL_EVP_PKEY_assign(void)
-{
-#if defined(OPENSSL_ALL)
- int type;
- WOLFSSL_EVP_PKEY* pkey;
-#ifndef NO_RSA
- WOLFSSL_RSA* rsa;
-#endif
-#ifndef NO_DSA
- WOLFSSL_DSA* dsa;
-#endif
-#ifdef HAVE_ECC
- WOLFSSL_EC_KEY* ecKey;
-#endif
-
- printf(testingFmt, "wolfSSL_EVP_PKEY_assign");
-#ifndef NO_RSA
- type = EVP_PKEY_RSA;
- AssertNotNull(pkey = wolfSSL_EVP_PKEY_new());
- AssertNotNull(rsa = wolfSSL_RSA_new());
- AssertIntEQ(wolfSSL_EVP_PKEY_assign(NULL,type,rsa), WOLFSSL_FAILURE);
- AssertIntEQ(wolfSSL_EVP_PKEY_assign(pkey,type,NULL), WOLFSSL_FAILURE);
- AssertIntEQ(wolfSSL_EVP_PKEY_assign(pkey,-1,rsa), WOLFSSL_FAILURE);
- AssertIntEQ(wolfSSL_EVP_PKEY_assign(pkey,type,rsa), WOLFSSL_SUCCESS);
- wolfSSL_EVP_PKEY_free(pkey);
-#endif /* NO_RSA */
-
-#ifndef NO_DSA
- type = EVP_PKEY_DSA;
- AssertNotNull(pkey = wolfSSL_EVP_PKEY_new());
- AssertNotNull(dsa = wolfSSL_DSA_new());
- AssertIntEQ(wolfSSL_EVP_PKEY_assign(NULL,type,dsa), WOLFSSL_FAILURE);
- AssertIntEQ(wolfSSL_EVP_PKEY_assign(pkey,type,NULL), WOLFSSL_FAILURE);
- AssertIntEQ(wolfSSL_EVP_PKEY_assign(pkey,-1,dsa), WOLFSSL_FAILURE);
- AssertIntEQ(wolfSSL_EVP_PKEY_assign(pkey,type,dsa), WOLFSSL_SUCCESS);
- wolfSSL_EVP_PKEY_free(pkey);
-#endif /* NO_DSA */
-
-#ifdef HAVE_ECC
- type = EVP_PKEY_EC;
- AssertNotNull(pkey = wolfSSL_EVP_PKEY_new());
- AssertNotNull(ecKey = wolfSSL_EC_KEY_new());
- AssertIntEQ(wolfSSL_EVP_PKEY_assign(NULL,type,ecKey), WOLFSSL_FAILURE);
- AssertIntEQ(wolfSSL_EVP_PKEY_assign(pkey,type,NULL), WOLFSSL_FAILURE);
- AssertIntEQ(wolfSSL_EVP_PKEY_assign(pkey,-1,ecKey), WOLFSSL_FAILURE);
- AssertIntEQ(wolfSSL_EVP_PKEY_assign(pkey,type,ecKey), WOLFSSL_SUCCESS);
- wolfSSL_EVP_PKEY_free(pkey);
-#endif /* HAVE_ECC */
- printf(resultFmt, passed);
-#endif /* OPENSSL_ALL */
-}
-
-static void test_wolfSSL_OBJ_ln(void)
-{
- const int nid_set[] = {
- NID_commonName,
- NID_serialNumber,
- NID_countryName,
- NID_localityName,
- NID_stateOrProvinceName,
- NID_organizationName,
- NID_organizationalUnitName,
- NID_domainComponent,
- NID_businessCategory,
- NID_jurisdictionCountryName,
- NID_jurisdictionStateOrProvinceName,
- NID_emailAddress
- };
- const char* ln_set[] = {
- "commonName",
- "serialNumber",
- "countryName",
- "localityName",
- "stateOrProvinceName",
- "organizationName",
- "organizationalUnitName",
- "domainComponent",
- "businessCategory",
- "jurisdictionCountryName",
- "jurisdictionStateOrProvinceName",
- "emailAddress",
- };
- int i = 0, maxIdx = sizeof(ln_set)/sizeof(char*);
-
- printf(testingFmt, "wolfSSL_OBJ_ln");
-
- AssertIntEQ(OBJ_ln2nid(NULL), NID_undef);
-
-#ifdef HAVE_ECC
- {
- int nCurves = 27;
- EC_builtin_curve r[nCurves];
- EC_get_builtin_curves(r,nCurves);
-
- for (i = 0; i < nCurves; i++) {
- AssertIntEQ(OBJ_ln2nid(r[i].comment), r[i].nid);
- AssertStrEQ(OBJ_nid2ln(r[i].nid), r[i].comment);
- }
- }
-#endif
-
- for (i = 0; i < maxIdx; i++) {
- AssertIntEQ(OBJ_ln2nid(ln_set[i]), nid_set[i]);
- AssertStrEQ(OBJ_nid2ln(nid_set[i]), ln_set[i]);
- }
-
- printf(resultFmt, passed);
-}
-
-static void test_wolfSSL_OBJ_sn(void)
-{
- int i = 0, maxIdx = 7;
- const int nid_set[] = {NID_commonName,NID_countryName,NID_localityName,
- NID_stateOrProvinceName,NID_organizationName,
- NID_organizationalUnitName,NID_emailAddress};
- const char* sn_open_set[] = {"CN","C","L","ST","O","OU","emailAddress"};
- const char* sn_wolf_set[] = {WOLFSSL_COMMON_NAME,WOLFSSL_COUNTRY_NAME,
- WOLFSSL_LOCALITY_NAME, WOLFSSL_STATE_NAME,
- WOLFSSL_ORG_NAME, WOLFSSL_ORGUNIT_NAME,
- WOLFSSL_EMAIL_ADDR};
-
- printf(testingFmt, "wolfSSL_OBJ_sn");
-
- AssertIntEQ(wolfSSL_OBJ_sn2nid(NULL), NID_undef);
- for (i = 0; i < maxIdx; i++) {
- AssertIntEQ(wolfSSL_OBJ_sn2nid(sn_wolf_set[i]), nid_set[i]);
- AssertStrEQ(wolfSSL_OBJ_nid2sn(nid_set[i]), sn_open_set[i]);
- }
-
- printf(resultFmt, passed);
-}
-#endif /* WOLFSSL_QT */
-
-
-static void test_wolfSSL_X509V3_EXT_get(void) {
-#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL)
- FILE* f;
- int numOfExt =0;
- int extNid = 0;
- int i = 0;
- WOLFSSL_X509* x509;
- WOLFSSL_X509_EXTENSION* ext;
- const WOLFSSL_v3_ext_method* method;
-
- AssertNotNull(f = fopen("./certs/server-cert.pem", "rb"));
- AssertNotNull(x509 = wolfSSL_PEM_read_X509(f, NULL, NULL, NULL));
- fclose(f);
-
- printf(testingFmt, "wolfSSL_X509V3_EXT_get() return struct and nid test");
- AssertIntEQ((numOfExt = wolfSSL_X509_get_ext_count(x509)), 3);
- for (i = 0; i < numOfExt; i++) {
- AssertNotNull(ext = wolfSSL_X509_get_ext(x509, i));
- AssertNotNull(extNid = ext->obj->nid);
- AssertNotNull(method = wolfSSL_X509V3_EXT_get(ext));
- AssertIntEQ(method->ext_nid, extNid);
- }
- printf(resultFmt, "passed");
-
- printf(testingFmt, "wolfSSL_X509V3_EXT_get() NULL argument test");
- AssertNull(method = wolfSSL_X509V3_EXT_get(NULL));
- printf(resultFmt, "passed");
-
- wolfSSL_X509_free(x509);
-#endif
-}
-
-static void test_wolfSSL_X509V3_EXT_d2i(void) {
-#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL)
- FILE* f;
- int numOfExt = 0, nid = 0, i = 0, expected, actual;
- char* str;
- unsigned char* data;
- const WOLFSSL_v3_ext_method* method;
- WOLFSSL_X509* x509;
- WOLFSSL_X509_EXTENSION* ext;
- WOLFSSL_ASN1_OBJECT *obj, *adObj;
- WOLFSSL_ASN1_STRING* asn1str;
- WOLFSSL_AUTHORITY_KEYID* aKeyId;
- WOLFSSL_AUTHORITY_INFO_ACCESS* aia;
- WOLFSSL_BASIC_CONSTRAINTS* bc;
- WOLFSSL_ACCESS_DESCRIPTION* ad;
- WOLFSSL_GENERAL_NAME* gn;
-
- printf(testingFmt, "wolfSSL_X509V3_EXT_d2i()");
-
- /* Check NULL argument */
- AssertNull(wolfSSL_X509V3_EXT_d2i(NULL));
-
- /* Using OCSP cert with X509V3 extensions */
- AssertNotNull(f = fopen("./certs/ocsp/root-ca-cert.pem", "rb"));
- AssertNotNull(x509 = wolfSSL_PEM_read_X509(f, NULL, NULL, NULL));
- fclose(f);
-
- AssertIntEQ((numOfExt = wolfSSL_X509_get_ext_count(x509)), 5);
-
- /* Basic Constraints */
- AssertNotNull(ext = wolfSSL_X509_get_ext(x509, i));
- AssertNotNull(obj = wolfSSL_X509_EXTENSION_get_object(ext));
- AssertIntEQ((nid = wolfSSL_OBJ_obj2nid(obj)), NID_basic_constraints);
- AssertNotNull(bc = (WOLFSSL_BASIC_CONSTRAINTS*)wolfSSL_X509V3_EXT_d2i(ext));
-
- AssertIntEQ(bc->ca, 1);
- AssertNull(bc->pathlen);
- wolfSSL_BASIC_CONSTRAINTS_free(bc);
- i++;
-
- /* Subject Key Identifier */
- AssertNotNull(ext = wolfSSL_X509_get_ext(x509, i));
- AssertNotNull(obj = wolfSSL_X509_EXTENSION_get_object(ext));
- AssertIntEQ((nid = wolfSSL_OBJ_obj2nid(obj)), NID_subject_key_identifier);
-
- AssertNotNull(asn1str = (WOLFSSL_ASN1_STRING*)wolfSSL_X509V3_EXT_d2i(ext));
- AssertNotNull(method = wolfSSL_X509V3_EXT_get(ext));
- AssertNotNull(method->i2s);
- AssertNotNull(str = method->i2s((WOLFSSL_v3_ext_method*)method, asn1str));
- wolfSSL_ASN1_STRING_free(asn1str);
- actual = strcmp(str,
- "73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21");
- AssertIntEQ(actual, 0);
- XFREE(str, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- i++;
-
- /* Authority Key Identifier */
- AssertNotNull(ext = wolfSSL_X509_get_ext(x509, i));
- AssertNotNull(obj = wolfSSL_X509_EXTENSION_get_object(ext));
- AssertIntEQ((nid = wolfSSL_OBJ_obj2nid(obj)), NID_authority_key_identifier);
-
- AssertNotNull(aKeyId =
- (WOLFSSL_AUTHORITY_KEYID*)wolfSSL_X509V3_EXT_d2i(ext));
- AssertNotNull(method = wolfSSL_X509V3_EXT_get(ext));
- AssertNotNull(asn1str = aKeyId->keyid);
- AssertNotNull(str =
- wolfSSL_i2s_ASN1_STRING((WOLFSSL_v3_ext_method*)method, asn1str));
- actual = strcmp(str,
- "73:B0:1C:A4:2F:82:CB:CF:47:A5:38:D7:B0:04:82:3A:7E:72:15:21");
- AssertIntEQ(actual, 0);
- XFREE(str, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- wolfSSL_AUTHORITY_KEYID_free(aKeyId);
- i++;
-
- /* Key Usage */
- AssertNotNull(ext = wolfSSL_X509_get_ext(x509, i));
- AssertNotNull(obj = wolfSSL_X509_EXTENSION_get_object(ext));
- AssertIntEQ((nid = wolfSSL_OBJ_obj2nid(obj)), NID_key_usage);
-
- AssertNotNull(asn1str = (WOLFSSL_ASN1_STRING*)wolfSSL_X509V3_EXT_d2i(ext));
- AssertNotNull(data = wolfSSL_ASN1_STRING_data(asn1str));
- expected = KEYUSE_KEY_CERT_SIGN | KEYUSE_CRL_SIGN;
-#ifdef BIG_ENDIAN_ORDER
- actual = data[1];
-#else
- actual = data[0];
-#endif
- AssertIntEQ(actual, expected);
- wolfSSL_ASN1_STRING_free(asn1str);
-#if 0
- i++;
-
- /* Authority Info Access */
- AssertNotNull(ext = wolfSSL_X509_get_ext(x509, i));
- AssertNotNull(obj = wolfSSL_X509_EXTENSION_get_object(ext));
- AssertIntEQ((nid = wolfSSL_OBJ_obj2nid(obj)), NID_info_access);
- AssertNotNull(aia = wolfSSL_X509V3_EXT_d2i(ext));
- AssertIntEQ(wolfSSL_sk_num(aia), 1); /* Only one URI entry for this cert */
-
- /* URI entry is an ACCESS_DESCRIPTION type */
- AssertNotNull(ad = wolfSSL_sk_value(aia, 0));
- AssertNotNull(adObj = ad->method);
- /* Make sure nid is OCSP */
- AssertIntEQ(wolfSSL_OBJ_obj2nid(adObj), AIA_OCSP_OID);
-
- /* GENERAL_NAME stores URI as an ASN1_STRING */
- AssertNotNull(gn = ad->location);
- AssertIntEQ(gn->type, GEN_URI); /* Type should always be GEN_URI */
- AssertNotNull(asn1str = gn->d.uniformResourceIdentifier);
- AssertIntEQ(wolfSSL_ASN1_STRING_length(asn1str), 22);
- str = (char*)wolfSSL_ASN1_STRING_data(asn1str);
- actual = strcmp(str, "http://127.0.0.1:22220");
- AssertIntEQ(actual, 0);
-
- wolfSSL_sk_ACCESS_DESCRIPTION_pop_free(aia, NULL);
- XFREE(ad, NULL, DYNAMIC_TYPE_X509_EXT);
-#else
- (void) aia; (void) ad; (void) adObj; (void) gn;
-#endif
- wolfSSL_X509_free(x509);
- printf(resultFmt, "passed");
-#endif
-}
-
-static void test_wolfSSL_X509_get_ext(void){
-#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL)
- int ret = 0;
- FILE* f;
- WOLFSSL_X509* x509;
- WOLFSSL_X509_EXTENSION* foundExtension;
-
- AssertNotNull(f = fopen("./certs/server-cert.pem", "rb"));
- AssertNotNull(x509 = wolfSSL_PEM_read_X509(f, NULL, NULL, NULL));
- fclose(f);
- AssertIntEQ((ret = wolfSSL_X509_get_ext_count(x509)), 3);
-
- printf(testingFmt, "wolfSSL_X509_get_ext() valid input");
- AssertNotNull(foundExtension = wolfSSL_X509_get_ext(x509, 0));
- printf(resultFmt, "passed");
-
- printf(testingFmt, "wolfSSL_X509_get_ext() valid x509, idx out of bounds");
- AssertNull(foundExtension = wolfSSL_X509_get_ext(x509, -1));
- AssertNull(foundExtension = wolfSSL_X509_get_ext(x509, 100));
- printf(resultFmt, "passed");
-
- printf(testingFmt, "wolfSSL_X509_get_ext() NULL x509, idx out of bounds");
- AssertNull(foundExtension = wolfSSL_X509_get_ext(NULL, -1));
- AssertNull(foundExtension = wolfSSL_X509_get_ext(NULL, 100));
- printf(resultFmt, "passed");
-
- printf(testingFmt, "wolfSSL_X509_get_ext() NULL x509, valid idx");
- AssertNull(foundExtension = wolfSSL_X509_get_ext(NULL, 0));
- printf(resultFmt, "passed");
-
- wolfSSL_X509_free(x509);
-#endif
-}
-
-static void test_wolfSSL_X509_get_ext_by_NID(void)
-{
-#if defined(OPENSSL_ALL)
- int rc;
- FILE* f;
- WOLFSSL_X509* x509;
-
- AssertNotNull(f = fopen("./certs/server-cert.pem", "rb"));
- AssertNotNull(x509 = wolfSSL_PEM_read_X509(f, NULL, NULL, NULL));
- fclose(f);
-
- rc = wolfSSL_X509_get_ext_by_NID(x509, NID_basic_constraints, -1);
- AssertIntGE(rc, 0);
-
- /* Start search from last location (should fail) */
- rc = wolfSSL_X509_get_ext_by_NID(x509, NID_basic_constraints, rc);
- AssertIntGE(rc, -1);
-
- rc = wolfSSL_X509_get_ext_by_NID(x509, NID_basic_constraints, -2);
- AssertIntGE(rc, -1);
-
- rc = wolfSSL_X509_get_ext_by_NID(NULL, NID_basic_constraints, -1);
- AssertIntEQ(rc, -1);
-
- rc = wolfSSL_X509_get_ext_by_NID(x509, NID_undef, -1);
- AssertIntEQ(rc, -1);
-
- wolfSSL_X509_free(x509);
-
-#endif
-}
-
-static void test_wolfSSL_X509_EXTENSION_new(void)
-{
-#if defined (OPENSSL_ALL)
- WOLFSSL_X509_EXTENSION* ext;
-
- AssertNotNull(ext = wolfSSL_X509_EXTENSION_new());
- AssertNotNull(ext->obj = wolfSSL_ASN1_OBJECT_new());
- ext->obj->nid = WOLFSSL_SUCCESS;
- AssertIntEQ(WOLFSSL_SUCCESS, ext->obj->nid);
-
- wolfSSL_X509_EXTENSION_free(ext);
-#endif
-}
-
-static void test_wolfSSL_X509_EXTENSION_get_object(void)
-{
-#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL)
- WOLFSSL_X509* x509;
- WOLFSSL_X509_EXTENSION* ext;
- WOLFSSL_ASN1_OBJECT* o;
- FILE* file;
- int nid = 0;
-
- AssertNotNull(file = fopen("./certs/server-cert.pem", "rb"));
- AssertNotNull(x509 = wolfSSL_PEM_read_X509(file, NULL, NULL, NULL));
- fclose(file);
-
- printf(testingFmt, "wolfSSL_X509_EXTENSION_get_object() testing ext idx 0");
- AssertNotNull(ext = wolfSSL_X509_get_ext(x509, 0));
- AssertNotNull(o = wolfSSL_X509_EXTENSION_get_object(ext));
- AssertIntEQ(o->nid, 128);
- nid = o->nid;
- printf(resultFmt, nid == 128 ? passed : failed);
-
- printf(testingFmt, "wolfSSL_X509_EXTENSION_get_object() NULL argument");
- AssertNull(o = wolfSSL_X509_EXTENSION_get_object(NULL));
- printf(resultFmt, passed);
-
- wolfSSL_X509_free(x509);
-#endif
-}
-
-static void test_wolfSSL_X509_EXTENSION_get_data(void)
-{
-#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL)
- WOLFSSL_X509* x509;
- WOLFSSL_X509_EXTENSION* ext;
- WOLFSSL_ASN1_STRING* str;
- FILE* file;
-
- printf(testingFmt, "wolfSSL_X509_EXTENSION_get_data");
-
- AssertNotNull(file = fopen("./certs/server-cert.pem", "rb"));
- AssertNotNull(x509 = wolfSSL_PEM_read_X509(file, NULL, NULL, NULL));
- fclose(file);
- AssertNotNull(ext = wolfSSL_X509_get_ext(x509, 0));
-
- AssertNotNull(str = wolfSSL_X509_EXTENSION_get_data(ext));
- printf(resultFmt, passed);
-
- wolfSSL_X509_free(x509);
-#endif
-}
-
-static void test_wolfSSL_X509_EXTENSION_get_critical(void)
-{
-#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL)
- WOLFSSL_X509* x509;
- WOLFSSL_X509_EXTENSION* ext;
- FILE* file;
- int crit;
-
- printf(testingFmt, "wolfSSL_X509_EXTENSION_get_critical");
-
- AssertNotNull(file = fopen("./certs/server-cert.pem", "rb"));
- AssertNotNull(x509 = wolfSSL_PEM_read_X509(file, NULL, NULL, NULL));
- fclose(file);
- AssertNotNull(ext = wolfSSL_X509_get_ext(x509, 0));
-
- crit = wolfSSL_X509_EXTENSION_get_critical(ext);
- AssertIntEQ(crit, 0);
- printf(resultFmt, passed);
-
- wolfSSL_X509_free(x509);
-#endif
-}
-
-static void test_wolfSSL_X509V3_EXT_print(void)
-{
-#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL)
- printf(testingFmt, "wolfSSL_X509V3_EXT_print");
-
- {
- FILE* f;
- WOLFSSL_X509* x509;
- X509_EXTENSION * ext = NULL;
- int loc;
- BIO *bio = NULL;
-
- AssertNotNull(f = fopen(svrCertFile, "rb"));
- AssertNotNull(x509 = wolfSSL_PEM_read_X509(f, NULL, NULL, NULL));
- fclose(f);
-
- AssertNotNull(bio = wolfSSL_BIO_new(BIO_s_mem()));
-
- loc = wolfSSL_X509_get_ext_by_NID(x509, NID_basic_constraints, -1);
- AssertIntGT(loc, -1);
- AssertNotNull(ext = wolfSSL_X509_get_ext(x509, loc));
- AssertIntEQ(wolfSSL_X509V3_EXT_print(bio, ext, 0, 0), WOLFSSL_SUCCESS);
-
- loc = wolfSSL_X509_get_ext_by_NID(x509, NID_subject_key_identifier, -1);
- AssertIntGT(loc, -1);
- AssertNotNull(ext = wolfSSL_X509_get_ext(x509, loc));
- AssertIntEQ(wolfSSL_X509V3_EXT_print(bio, ext, 0, 0), WOLFSSL_SUCCESS);
-
- loc = wolfSSL_X509_get_ext_by_NID(x509, NID_authority_key_identifier, -1);
- AssertIntGT(loc, -1);
- AssertNotNull(ext = wolfSSL_X509_get_ext(x509, loc));
- AssertIntEQ(wolfSSL_X509V3_EXT_print(bio, ext, 0, 0), WOLFSSL_SUCCESS);
-
- wolfSSL_BIO_free(bio);
- wolfSSL_X509_free(x509);
- }
-
- {
- X509 *x509;
- BIO *bio;
- X509_EXTENSION *ext;
- unsigned int i;
- unsigned int idx;
- /* Some NIDs to test with */
- int nids[] = {
- /* NID_key_usage, currently X509_get_ext returns this as a bit
- * string, which messes up X509V3_EXT_print */
- /* NID_ext_key_usage, */
- NID_subject_alt_name,
- };
- int* n;
-
- printf(testingFmt, "wolfSSL_X509V3_EXT_print");
- AssertNotNull(bio = BIO_new_fp(stderr, BIO_NOCLOSE));
-
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_file(cliCertFileExt,
- WOLFSSL_FILETYPE_PEM));
-
- printf("\nPrinting extension values:\n");
-
- for (i = 0, n = nids; i<(sizeof(nids)/sizeof(int)); i++, n++) {
- /* X509_get_ext_by_NID should return 3 for now. If that changes then
- * update the index */
- AssertIntEQ((idx = X509_get_ext_by_NID(x509, *n, -1)), 3);
- AssertNotNull(ext = X509_get_ext(x509, idx));
- AssertIntEQ(X509V3_EXT_print(bio, ext, 0, 0), 1);
- printf("\n");
- }
-
- BIO_free(bio);
- X509_free(x509);
- }
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_X509_cmp(void)
-{
-#if defined(OPENSSL_ALL)
- FILE* file1;
- FILE* file2;
- WOLFSSL_X509* cert1;
- WOLFSSL_X509* cert2;
- int ret = 0;
-
- AssertNotNull(file1=fopen("./certs/server-cert.pem", "rb"));
- AssertNotNull(file2=fopen("./certs/3072/client-cert.pem", "rb"));
-
- AssertNotNull(cert1 = wolfSSL_PEM_read_X509(file1, NULL, NULL, NULL));
- AssertNotNull(cert2 = wolfSSL_PEM_read_X509(file2, NULL, NULL, NULL));
- fclose(file1);
- fclose(file2);
-
- printf(testingFmt, "wolfSSL_X509_cmp() testing matching certs");
- ret = wolfSSL_X509_cmp(cert1, cert1);
- AssertIntEQ(0, wolfSSL_X509_cmp(cert1, cert1));
- printf(resultFmt, ret == 0 ? passed : failed);
-
- printf(testingFmt, "wolfSSL_X509_cmp() testing mismatched certs");
- ret = wolfSSL_X509_cmp(cert1, cert2);
- AssertIntEQ(-1, wolfSSL_X509_cmp(cert1, cert2));
- printf(resultFmt, ret == -1 ? passed : failed);
-
- printf(testingFmt, "wolfSSL_X509_cmp() testing NULL, valid args");
- ret = wolfSSL_X509_cmp(NULL, cert2);
- AssertIntEQ(BAD_FUNC_ARG, wolfSSL_X509_cmp(NULL, cert2));
- printf(resultFmt, ret == BAD_FUNC_ARG ? passed : failed);
-
- printf(testingFmt, "wolfSSL_X509_cmp() testing valid, NULL args");
- ret = wolfSSL_X509_cmp(cert1, NULL);
- AssertIntEQ(BAD_FUNC_ARG, wolfSSL_X509_cmp(cert1, NULL));
- printf(resultFmt, ret == BAD_FUNC_ARG ? passed : failed);
-
- printf(testingFmt, "wolfSSL_X509_cmp() testing NULL, NULL args");
- ret = wolfSSL_X509_cmp(NULL, NULL);
- AssertIntEQ(BAD_FUNC_ARG, wolfSSL_X509_cmp(NULL, NULL));
- printf(resultFmt, ret == BAD_FUNC_ARG ? passed : failed);
-
- wolfSSL_X509_free(cert1);
- wolfSSL_X509_free(cert2);
-#endif
-}
-
-static void test_wolfSSL_PKEY_up_ref()
-{
-#if defined(OPENSSL_ALL)
- EVP_PKEY* pkey;
- printf(testingFmt, "wolfSSL_PKEY_up_ref()");
-
- pkey = EVP_PKEY_new();
- AssertIntEQ(EVP_PKEY_up_ref(NULL), 0);
- AssertIntEQ(EVP_PKEY_up_ref(pkey), 1);
- EVP_PKEY_free(pkey);
- AssertIntEQ(EVP_PKEY_up_ref(pkey), 1);
- EVP_PKEY_free(pkey);
- EVP_PKEY_free(pkey);
-
- printf(resultFmt, "passed");
-#endif
-}
-
-static void test_wolfSSL_i2d_PrivateKey()
-{
-#if (!defined(NO_RSA) || defined(HAVE_ECC)) && defined(OPENSSL_EXTRA)
-
- printf(testingFmt, "wolfSSL_i2d_PrivateKey()");
-#if !defined(NO_RSA) && defined(USE_CERT_BUFFERS_2048)
- {
- EVP_PKEY* pkey;
- const unsigned char* server_key = (const unsigned char*)server_key_der_2048;
- unsigned char buf[FOURK_BUF];
- unsigned char* pt;
- int bufSz;
-
- AssertNotNull(pkey = d2i_PrivateKey(EVP_PKEY_RSA, NULL, &server_key,
- (long)sizeof_server_key_der_2048));
- AssertIntEQ(i2d_PrivateKey(pkey, NULL), 1193);
- pt = buf;
- AssertIntEQ((bufSz = i2d_PrivateKey(pkey, &pt)), 1193);
- AssertIntNE((pt - buf), 0);
- AssertIntEQ(XMEMCMP(buf, server_key_der_2048, bufSz), 0);
- EVP_PKEY_free(pkey);
- }
-#endif
-#if defined(OPENSSL_EXTRA) && defined(HAVE_ECC) && defined(USE_CERT_BUFFERS_256)
- {
- EVP_PKEY* pkey;
- const unsigned char* client_key =
- (const unsigned char*)ecc_clikey_der_256;
- unsigned char buf[FOURK_BUF];
- unsigned char* pt;
- int bufSz;
-
- AssertNotNull((pkey = d2i_PrivateKey(EVP_PKEY_EC, NULL, &client_key,
- sizeof_ecc_clikey_der_256)));
- AssertIntEQ(i2d_PrivateKey(pkey, NULL), 121);
- pt = buf;
- AssertIntEQ((bufSz = i2d_PrivateKey(pkey, &pt)), 121);
- AssertIntNE((pt - buf), 0);
- AssertIntEQ(XMEMCMP(buf, ecc_clikey_der_256, bufSz), 0);
- EVP_PKEY_free(pkey);
- }
-#endif
-
- printf(resultFmt, "passed");
-#endif
-}
-
-static void test_wolfSSL_OCSP_get0_info()
-{
-#if defined(OPENSSL_ALL) && defined(HAVE_OCSP) && !defined(NO_FILESYSTEM)
- X509* cert;
- X509* issuer;
- OCSP_CERTID* id;
-
- ASN1_STRING* name = NULL;
- ASN1_OBJECT* pmd = NULL;
- ASN1_STRING* keyHash = NULL;
- ASN1_INTEGER* serial = NULL;
- ASN1_INTEGER* x509Int;
-
- printf(testingFmt, "wolfSSL_OCSP_get0_info()");
-
- AssertNotNull(cert =
- wolfSSL_X509_load_certificate_file(svrCertFile, SSL_FILETYPE_PEM));
- AssertNotNull(issuer =
- wolfSSL_X509_load_certificate_file(caCertFile, SSL_FILETYPE_PEM));
-
- id = OCSP_cert_to_id(NULL, cert, issuer);
- AssertNotNull(id);
-
- AssertIntEQ(OCSP_id_get0_info(NULL, NULL, NULL, NULL, NULL), 0);
- AssertIntEQ(OCSP_id_get0_info(NULL, NULL, NULL, NULL, id), 1);
-
- /* name, pmd, keyHash not supported yet, expect failure if not NULL */
- AssertIntEQ(OCSP_id_get0_info(&name, NULL, NULL, NULL, id), 0);
- AssertIntEQ(OCSP_id_get0_info(NULL, &pmd, NULL, NULL, id), 0);
- AssertIntEQ(OCSP_id_get0_info(NULL, NULL, &keyHash, NULL, id), 0);
-
- AssertIntEQ(OCSP_id_get0_info(NULL, NULL, NULL, &serial, id), 1);
- AssertNotNull(serial);
-
- /* compare serial number to one in cert, should be equal */
- x509Int = X509_get_serialNumber(cert);
- AssertNotNull(x509Int);
- AssertIntEQ(x509Int->dataMax, serial->dataMax);
- AssertIntEQ(XMEMCMP(x509Int->data, serial->data, serial->dataMax), 0);
-
- OCSP_CERTID_free(id);
- X509_free(cert); /* free's x509Int */
- X509_free(issuer);
-
- printf(resultFmt, "passed");
-#endif /* OPENSSL_EXTRA & HAVE_OCSP */
-}
-
-static void test_wolfSSL_EVP_PKEY_derive(void)
-{
-#ifdef OPENSSL_ALL
- EVP_PKEY_CTX *ctx;
- unsigned char *skey;
- size_t skeylen;
- EVP_PKEY *pkey, *peerkey;
- const unsigned char* key;
-
- /* DH */
- key = dh_key_der_2048;
- AssertNotNull((pkey = d2i_PrivateKey(EVP_PKEY_DH, NULL, &key,
- sizeof_dh_key_der_2048)));
- AssertIntEQ(DH_generate_key(EVP_PKEY_get0_DH(pkey)), 1);
- key = dh_key_der_2048;
- AssertNotNull((peerkey = d2i_PrivateKey(EVP_PKEY_DH, NULL, &key,
- sizeof_dh_key_der_2048)));
- AssertIntEQ(DH_generate_key(EVP_PKEY_get0_DH(peerkey)), 1);
- AssertNotNull(ctx = EVP_PKEY_CTX_new(pkey, NULL));
- AssertIntEQ(EVP_PKEY_derive_init(ctx), 1);
- AssertIntEQ(EVP_PKEY_derive_set_peer(ctx, peerkey), 1);
- AssertIntEQ(EVP_PKEY_derive(ctx, NULL, &skeylen), 1);
- AssertNotNull(skey = XMALLOC(skeylen, NULL, DYNAMIC_TYPE_OPENSSL));
- AssertIntEQ(EVP_PKEY_derive(ctx, skey, &skeylen), 1);
-
- EVP_PKEY_CTX_free(ctx);
- EVP_PKEY_free(peerkey);
- EVP_PKEY_free(pkey);
- XFREE(skey, NULL, DYNAMIC_TYPE_OPENSSL);
-
-#ifdef HAVE_ECC
- /* ECDH */
- key = ecc_clikey_der_256;
- AssertNotNull((pkey = d2i_PrivateKey(EVP_PKEY_EC, NULL, &key,
- sizeof_ecc_clikey_der_256)));
- key = ecc_clikeypub_der_256;
- AssertNotNull((peerkey = d2i_PUBKEY(NULL, &key,
- sizeof_ecc_clikeypub_der_256)));
- AssertNotNull(ctx = EVP_PKEY_CTX_new(pkey, NULL));
- AssertIntEQ(EVP_PKEY_derive_init(ctx), 1);
- AssertIntEQ(EVP_PKEY_derive_set_peer(ctx, peerkey), 1);
- AssertIntEQ(EVP_PKEY_derive(ctx, NULL, &skeylen), 1);
- AssertNotNull(skey = XMALLOC(skeylen, NULL, DYNAMIC_TYPE_OPENSSL));
- AssertIntEQ(EVP_PKEY_derive(ctx, skey, &skeylen), 1);
-
- EVP_PKEY_CTX_free(ctx);
- EVP_PKEY_free(peerkey);
- EVP_PKEY_free(pkey);
- XFREE(skey, NULL, DYNAMIC_TYPE_OPENSSL);
-#endif
-#endif
-}
-
-static void test_wolfSSL_RSA_padding_add_PKCS1_PSS(void)
-{
-#if defined(OPENSSL_ALL) && defined(WC_RSA_PSS) && !defined(WC_NO_RNG)
- RSA *rsa;
- const unsigned char *derBuf = client_key_der_2048;
- unsigned char em[256] = {0}; /* len = 2048/8 */
- /* Random data simulating a hash */
- const unsigned char mHash[WC_SHA256_DIGEST_SIZE] = {
- 0x28, 0x6e, 0xfd, 0xf8, 0x76, 0xc7, 0x00, 0x3d, 0x91, 0x4e, 0x59, 0xe4,
- 0x8e, 0xb7, 0x40, 0x7b, 0xd1, 0x0c, 0x98, 0x4b, 0xe3, 0x3d, 0xb3, 0xeb,
- 0x6f, 0x8a, 0x3c, 0x42, 0xab, 0x21, 0xad, 0x28
- };
-
- AssertNotNull(d2i_RSAPrivateKey(&rsa, &derBuf, sizeof_client_key_der_2048));
- AssertIntEQ(RSA_padding_add_PKCS1_PSS(rsa, em, mHash, EVP_sha256(), -1), 1);
- AssertIntEQ(RSA_verify_PKCS1_PSS(rsa, mHash, EVP_sha256(), em, -1), 1);
-
- RSA_free(rsa);
-#endif
-}
-
-static void test_wolfSSL_EC_get_builtin_curves(void)
-{
-#if defined(HAVE_ECC) && (defined(OPENSSL_EXTRA) || defined(OPENSSL_ALL))
- EC_builtin_curve* curves = NULL;
- size_t crv_len = 0;
- size_t i = 0;
-
- printf(testingFmt, "wolfSSL_EC_get_builtin_curves");
-
- AssertIntGT((crv_len = EC_get_builtin_curves(NULL, 0)), 0);
- AssertNotNull(curves = (EC_builtin_curve*)
- XMALLOC(sizeof(EC_builtin_curve)*crv_len, NULL,
- DYNAMIC_TYPE_TMP_BUFFER));
- AssertIntEQ(EC_get_builtin_curves(curves, crv_len), crv_len);
-
- for (i = 0; i < crv_len; i++)
- {
- AssertStrEQ(OBJ_nid2sn(curves[i].nid), curves[i].comment);
- }
-
- XFREE(curves, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- printf(resultFmt, passed);
-#endif /* defined(HAVE_ECC) || defined(OPENSSL_EXTRA) || defined(OPENSSL_ALL) */
-}
-
-static void test_no_op_functions(void)
-{
- #if defined(OPENSSL_EXTRA)
- printf(testingFmt, "no_op_functions()");
-
- /* this makes sure wolfSSL can compile and run these no-op functions */
- SSL_load_error_strings();
- ENGINE_load_builtin_engines();
- OpenSSL_add_all_ciphers();
- AssertIntEQ(CRYPTO_malloc_init(), 0);
-
- printf(resultFmt, passed);
- #endif
-}
-
-
-/*----------------------------------------------------------------------------*
- | wolfCrypt ASN
- *----------------------------------------------------------------------------*/
-
-static void test_wc_GetPkcs8TraditionalOffset(void)
-{
-#if !defined(NO_ASN) && !defined(NO_FILESYSTEM) && defined(HAVE_PKCS8)
- int length, derSz;
- word32 inOutIdx;
- const char* path = "./certs/server-keyPkcs8.der";
- XFILE file;
- byte der[2048];
-
- printf(testingFmt, "wc_GetPkcs8TraditionalOffset");
-
- file = XFOPEN(path, "rb");
- AssertTrue(file != XBADFILE);
- derSz = (int)XFREAD(der, 1, sizeof(der), file);
- XFCLOSE(file);
-
- /* valid case */
- inOutIdx = 0;
- length = wc_GetPkcs8TraditionalOffset(der, &inOutIdx, derSz);
- AssertIntGT(length, 0);
-
- /* inOutIdx > sz */
- inOutIdx = 4000;
- length = wc_GetPkcs8TraditionalOffset(der, &inOutIdx, derSz);
- AssertIntEQ(length, BAD_FUNC_ARG);
-
- /* null input */
- inOutIdx = 0;
- length = wc_GetPkcs8TraditionalOffset(NULL, &inOutIdx, 0);
- AssertIntEQ(length, BAD_FUNC_ARG);
-
- /* invalid input, fill buffer with 1's */
- XMEMSET(der, 1, sizeof(der));
- inOutIdx = 0;
- length = wc_GetPkcs8TraditionalOffset(der, &inOutIdx, derSz);
- AssertIntEQ(length, ASN_PARSE_E);
-
- printf(resultFmt, passed);
-#endif /* NO_ASN */
-}
-
-static void test_wc_SetSubjectRaw(void)
-{
-#if !defined(NO_ASN) && !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA) && \
- defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_EXT) && !defined(NO_RSA)
- const char* joiCertFile = "./certs/test/cert-ext-joi.pem";
- WOLFSSL_X509* x509;
- int peerCertSz;
- const byte* peerCertBuf;
- Cert forgedCert;
-
- printf(testingFmt, "test_wc_SetSubjectRaw()");
-
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_file(joiCertFile, WOLFSSL_FILETYPE_PEM));
-
- AssertNotNull(peerCertBuf = wolfSSL_X509_get_der(x509, &peerCertSz));
-
- AssertIntEQ(0, wc_InitCert(&forgedCert));
-
- AssertIntEQ(0, wc_SetSubjectRaw(&forgedCert, peerCertBuf, peerCertSz));
-
- wolfSSL_FreeX509(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wc_GetSubjectRaw(void)
-{
-#if !defined(NO_ASN) && !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA) && \
- defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_EXT)
- Cert cert;
- byte *subjectRaw;
-
- printf(testingFmt, "test_wc_GetSubjectRaw()");
-
- AssertIntEQ(0, wc_InitCert(&cert));
- AssertIntEQ(0, wc_GetSubjectRaw(&subjectRaw, &cert));
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wc_SetIssuerRaw(void)
-{
-#if !defined(NO_ASN) && !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA) && \
- defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_EXT) && !defined(NO_RSA)
- const char* joiCertFile = "./certs/test/cert-ext-joi.pem";
- WOLFSSL_X509* x509;
- int peerCertSz;
- const byte* peerCertBuf;
- Cert forgedCert;
-
- printf(testingFmt, "test_wc_SetIssuerRaw()");
-
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_file(joiCertFile, WOLFSSL_FILETYPE_PEM));
-
- AssertNotNull(peerCertBuf = wolfSSL_X509_get_der(x509, &peerCertSz));
-
- AssertIntEQ(0, wc_InitCert(&forgedCert));
-
- AssertIntEQ(0, wc_SetIssuerRaw(&forgedCert, peerCertBuf, peerCertSz));
-
- wolfSSL_FreeX509(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wc_SetIssueBuffer(void)
-{
-#if !defined(NO_ASN) && !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA) && \
- defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_EXT) && !defined(NO_RSA)
- const char* joiCertFile = "./certs/test/cert-ext-joi.pem";
- WOLFSSL_X509* x509;
- int peerCertSz;
- const byte* peerCertBuf;
- Cert forgedCert;
-
- printf(testingFmt, "test_wc_SetIssuerBuffer()");
-
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_file(joiCertFile, WOLFSSL_FILETYPE_PEM));
-
- AssertNotNull(peerCertBuf = wolfSSL_X509_get_der(x509, &peerCertSz));
-
- AssertIntEQ(0, wc_InitCert(&forgedCert));
-
- AssertIntEQ(0, wc_SetIssuerBuffer(&forgedCert, peerCertBuf, peerCertSz));
-
- wolfSSL_FreeX509(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-/*
- * Testing wc_SetSubjectKeyId
- */
-static void test_wc_SetSubjectKeyId(void)
-{
-#if !defined(NO_ASN) && !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA) && \
- defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_EXT)
- Cert cert;
- const char* file = "certs/ecc-client-keyPub.pem";
-
- printf(testingFmt, "wc_SetSubjectKeyId()");
-
- AssertIntEQ(0, wc_InitCert(&cert));
- AssertIntEQ(0, wc_SetSubjectKeyId(&cert, file));
-
- AssertIntEQ(BAD_FUNC_ARG, wc_SetSubjectKeyId(NULL, file));
- AssertIntGT(0, wc_SetSubjectKeyId(&cert, "badfile.name"));
-
- printf(resultFmt, passed);
-#endif
-} /* END test_wc_SetSubjectKeyId */
-
-/*
- * Testing wc_SetSubject
- */
-static void test_wc_SetSubject(void)
-{
-#if !defined(NO_ASN) && !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA) && \
- defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_EXT)
- Cert cert;
- const char* file = "./certs/ca-ecc-cert.pem";
-
- printf(testingFmt, "wc_SetSubject()");
-
- AssertIntEQ(0, wc_InitCert(&cert));
- AssertIntEQ(0, wc_SetSubject(&cert, file));
-
- AssertIntEQ(BAD_FUNC_ARG, wc_SetSubject(NULL, file));
- AssertIntGT(0, wc_SetSubject(&cert, "badfile.name"));
-
- printf(resultFmt, passed);
-#endif
-} /* END test_wc_SetSubject */
-
-
-static void test_CheckCertSignature(void)
-{
-#if !defined(NO_CERTS) && defined(WOLFSSL_SMALL_CERT_VERIFY)
- WOLFSSL_CERT_MANAGER* cm = NULL;
-#if !defined(NO_FILESYSTEM) && (!defined(NO_RSA) || defined(HAVE_ECC))
- FILE* fp;
- byte cert[4096];
- int certSz;
-#endif
-
- AssertIntEQ(BAD_FUNC_ARG, CheckCertSignature(NULL, 0, NULL, NULL));
- AssertNotNull(cm = wolfSSL_CertManagerNew_ex(NULL));
- AssertIntEQ(BAD_FUNC_ARG, CheckCertSignature(NULL, 0, NULL, cm));
-
-#ifndef NO_RSA
-#ifdef USE_CERT_BUFFERS_1024
- AssertIntEQ(ASN_NO_SIGNER_E, CheckCertSignature(server_cert_der_1024,
- sizeof_server_cert_der_1024, NULL, cm));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CertManagerLoadCABuffer(cm,
- ca_cert_der_1024, sizeof_ca_cert_der_1024,
- WOLFSSL_FILETYPE_ASN1));
- AssertIntEQ(0, CheckCertSignature(server_cert_der_1024,
- sizeof_server_cert_der_1024, NULL, cm));
-#elif defined(USE_CERT_BUFFERS_2048)
- AssertIntEQ(ASN_NO_SIGNER_E, CheckCertSignature(server_cert_der_2048,
- sizeof_server_cert_der_2048, NULL, cm));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CertManagerLoadCABuffer(cm,
- ca_cert_der_2048, sizeof_ca_cert_der_2048,
- WOLFSSL_FILETYPE_ASN1));
- AssertIntEQ(0, CheckCertSignature(server_cert_der_2048,
- sizeof_server_cert_der_2048, NULL, cm));
-#endif
-#endif
-
-#if defined(HAVE_ECC) && defined(USE_CERT_BUFFERS_256)
- AssertIntEQ(ASN_NO_SIGNER_E, CheckCertSignature(serv_ecc_der_256,
- sizeof_serv_ecc_der_256, NULL, cm));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CertManagerLoadCABuffer(cm,
- ca_ecc_cert_der_256, sizeof_ca_ecc_cert_der_256,
- WOLFSSL_FILETYPE_ASN1));
- AssertIntEQ(0, CheckCertSignature(serv_ecc_der_256, sizeof_serv_ecc_der_256,
- NULL, cm));
-#endif
-
-#if !defined(NO_FILESYSTEM)
- wolfSSL_CertManagerFree(cm);
- AssertNotNull(cm = wolfSSL_CertManagerNew_ex(NULL));
-#ifndef NO_RSA
- AssertNotNull(fp = XFOPEN("./certs/server-cert.der", "rb"));
- AssertIntGT((certSz = (int)XFREAD(cert, 1, sizeof(cert), fp)), 0);
- XFCLOSE(fp);
- AssertIntEQ(ASN_NO_SIGNER_E, CheckCertSignature(cert, certSz, NULL, cm));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CertManagerLoadCA(cm,
- "./certs/ca-cert.pem", NULL));
- AssertIntEQ(0, CheckCertSignature(cert, certSz, NULL, cm));
-#endif
-#ifdef HAVE_ECC
- AssertNotNull(fp = XFOPEN("./certs/server-ecc.der", "rb"));
- AssertIntGT((certSz = (int)XFREAD(cert, 1, sizeof(cert), fp)), 0);
- XFCLOSE(fp);
- AssertIntEQ(ASN_NO_SIGNER_E, CheckCertSignature(cert, certSz, NULL, cm));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CertManagerLoadCA(cm,
- "./certs/ca-ecc-cert.pem", NULL));
- AssertIntEQ(0, CheckCertSignature(cert, certSz, NULL, cm));
-#endif
-#endif
-
-#if !defined(NO_FILESYSTEM) && (!defined(NO_RSA) || defined(HAVE_ECC))
- (void)fp;
- (void)cert;
- (void)certSz;
-#endif
-
- wolfSSL_CertManagerFree(cm);
-#endif
-}
-
-/*----------------------------------------------------------------------------*
- | wolfCrypt ECC
- *----------------------------------------------------------------------------*/
-
-static void test_wc_ecc_get_curve_size_from_name(void)
-{
-#ifdef HAVE_ECC
- int ret;
-
- printf(testingFmt, "wc_ecc_get_curve_size_from_name");
-
- #if !defined(NO_ECC256) && !defined(NO_ECC_SECP)
- ret = wc_ecc_get_curve_size_from_name("SECP256R1");
- AssertIntEQ(ret, 32);
- #endif
-
- /* invalid case */
- ret = wc_ecc_get_curve_size_from_name("BADCURVE");
- AssertIntEQ(ret, -1);
-
- /* NULL input */
- ret = wc_ecc_get_curve_size_from_name(NULL);
- AssertIntEQ(ret, BAD_FUNC_ARG);
-
- printf(resultFmt, passed);
-#endif /* HAVE_ECC */
-}
-
-static void test_wc_ecc_get_curve_id_from_name(void)
-{
-#ifdef HAVE_ECC
- int id;
-
- printf(testingFmt, "wc_ecc_get_curve_id_from_name");
-
- #if !defined(NO_ECC256) && !defined(NO_ECC_SECP)
- id = wc_ecc_get_curve_id_from_name("SECP256R1");
- AssertIntEQ(id, ECC_SECP256R1);
- #endif
-
- /* invalid case */
- id = wc_ecc_get_curve_id_from_name("BADCURVE");
- AssertIntEQ(id, -1);
-
- /* NULL input */
- id = wc_ecc_get_curve_id_from_name(NULL);
- AssertIntEQ(id, BAD_FUNC_ARG);
-
- printf(resultFmt, passed);
-#endif /* HAVE_ECC */
-}
-
-#if defined(OPENSSL_EXTRA) && defined(HAVE_ECC) && \
- !defined(HAVE_SELFTEST) && \
- !(defined(HAVE_FIPS) || defined(HAVE_FIPS_VERSION))
-
-static void test_wc_ecc_get_curve_id_from_dp_params(void)
-{
- int id;
-#if !defined(NO_ECC256) && !defined(NO_ECC_SECP)
- int curve_id;
- ecc_key* key;
- const ecc_set_type* params;
- int ret;
-#endif
- WOLFSSL_EC_KEY *ecKey = NULL;
-
- printf(testingFmt, "wc_ecc_get_curve_id_from_dp_params");
-
- #if !defined(NO_ECC256) && !defined(NO_ECC_SECP)
- id = wc_ecc_get_curve_id_from_name("SECP256R1");
- AssertIntEQ(id, ECC_SECP256R1);
-
- ecKey = wolfSSL_EC_KEY_new_by_curve_name(id);
- AssertNotNull(ecKey);
-
- ret = wolfSSL_EC_KEY_generate_key(ecKey);
-
- if (ret == 0) {
- /* normal test */
- key = (ecc_key*)ecKey->internal;
- params = key->dp;
-
- curve_id = wc_ecc_get_curve_id_from_dp_params(params);
- AssertIntEQ(curve_id, id);
- }
- #endif
- /* invalid case, NULL input*/
-
- id = wc_ecc_get_curve_id_from_dp_params(NULL);
- AssertIntEQ(id, BAD_FUNC_ARG);
- wolfSSL_EC_KEY_free(ecKey);
-
- printf(resultFmt, passed);
-}
-#endif /* defined(OPENSSL_EXTRA) && defined(HAVE_ECC) */
-
-static void test_wc_ecc_get_curve_id_from_params(void)
-{
-#ifdef HAVE_ECC
- int id;
-
- const byte prime[] =
- {
- 0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x01,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
- };
-
- const byte primeInvalid[] =
- {
- 0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x01,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0x01
- };
-
- const byte Af[] =
- {
- 0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x01,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC
- };
-
- const byte Bf[] =
- {
- 0x5A,0xC6,0x35,0xD8,0xAA,0x3A,0x93,0xE7,
- 0xB3,0xEB,0xBD,0x55,0x76,0x98,0x86,0xBC,
- 0x65,0x1D,0x06,0xB0,0xCC,0x53,0xB0,0xF6,
- 0x3B,0xCE,0x3C,0x3E,0x27,0xD2,0x60,0x4B
- };
-
- const byte order[] =
- {
- 0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0xBC,0xE6,0xFA,0xAD,0xA7,0x17,0x9E,0x84,
- 0xF3,0xB9,0xCA,0xC2,0xFC,0x63,0x25,0x51
- };
-
- const byte Gx[] =
- {
- 0x6B,0x17,0xD1,0xF2,0xE1,0x2C,0x42,0x47,
- 0xF8,0xBC,0xE6,0xE5,0x63,0xA4,0x40,0xF2,
- 0x77,0x03,0x7D,0x81,0x2D,0xEB,0x33,0xA0,
- 0xF4,0xA1,0x39,0x45,0xD8,0x98,0xC2,0x96
- };
-
- const byte Gy[] =
- {
- 0x4F,0xE3,0x42,0xE2,0xFE,0x1A,0x7F,0x9B,
- 0x8E,0xE7,0xEB,0x4A,0x7C,0x0F,0x9E,0x16,
- 0x2B,0xCE,0x33,0x57,0x6B,0x31,0x5E,0xCE,
- 0xCB,0xB6,0x40,0x68,0x37,0xBF,0x51,0xF5
- };
-
- int cofactor = 1;
- int fieldSize = 256;
-
- printf(testingFmt, "wc_ecc_get_curve_id_from_params");
-
- #if !defined(NO_ECC256) && !defined(NO_ECC_SECP)
- id = wc_ecc_get_curve_id_from_params(fieldSize, prime, sizeof(prime),
- Af, sizeof(Af), Bf, sizeof(Bf), order, sizeof(order),
- Gx, sizeof(Gx), Gy, sizeof(Gy), cofactor);
- AssertIntEQ(id, ECC_SECP256R1);
- #endif
-
- /* invalid case, fieldSize = 0 */
- id = wc_ecc_get_curve_id_from_params(0, prime, sizeof(prime),
- Af, sizeof(Af), Bf, sizeof(Bf), order, sizeof(order),
- Gx, sizeof(Gx), Gy, sizeof(Gy), cofactor);
- AssertIntEQ(id, ECC_CURVE_INVALID);
-
- /* invalid case, NULL prime */
- id = wc_ecc_get_curve_id_from_params(fieldSize, NULL, sizeof(prime),
- Af, sizeof(Af), Bf, sizeof(Bf), order, sizeof(order),
- Gx, sizeof(Gx), Gy, sizeof(Gy), cofactor);
- AssertIntEQ(id, BAD_FUNC_ARG);
-
- /* invalid case, invalid prime */
- id = wc_ecc_get_curve_id_from_params(fieldSize,
- primeInvalid, sizeof(primeInvalid),
- Af, sizeof(Af), Bf, sizeof(Bf), order, sizeof(order),
- Gx, sizeof(Gx), Gy, sizeof(Gy), cofactor);
- AssertIntEQ(id, ECC_CURVE_INVALID);
-
- printf(resultFmt, passed);
-#endif
-}
-static void test_wolfSSL_EVP_PKEY_encrypt(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) && \
- !defined(HAVE_FAST_RSA)
- WOLFSSL_RSA* rsa = NULL;
- WOLFSSL_EVP_PKEY* pkey = NULL;
- WOLFSSL_EVP_PKEY_CTX* ctx = NULL;
- const char* in = "What is easy to do is easy not to do.";
- size_t inlen = XSTRLEN(in);
- size_t outEncLen = 0;
- byte* outEnc = NULL;
- byte* outDec = NULL;
- size_t outDecLen = 0;
- size_t rsaKeySz = 2048/8; /* Bytes */
-#ifdef WC_RSA_NO_PADDING
- byte* inTmp = NULL;
- byte* outEncTmp = NULL;
- byte* outDecTmp = NULL;
-#endif
- printf(testingFmt, "wolfSSL_EVP_PKEY_encrypt()");
-
- AssertNotNull(outEnc = (byte*)XMALLOC(rsaKeySz, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
- XMEMSET(outEnc, 0, rsaKeySz);
- AssertNotNull(outDec = (byte*)XMALLOC(rsaKeySz, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
- XMEMSET(outDec, 0, rsaKeySz);
-
- AssertNotNull(rsa = RSA_generate_key(2048, 3, NULL, NULL));
- AssertNotNull(pkey = wolfSSL_EVP_PKEY_new());
- AssertIntEQ(EVP_PKEY_assign_RSA(pkey, rsa), WOLFSSL_SUCCESS);
- AssertNotNull(ctx = EVP_PKEY_CTX_new(pkey, NULL));
- AssertIntEQ(EVP_PKEY_encrypt_init(ctx), WOLFSSL_SUCCESS);
- AssertIntEQ(EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING),
- WOLFSSL_SUCCESS);
-
- /* Test pkey references count is decremented. pkey shouldn't be destroyed
- since ctx uses it.*/
- AssertIntEQ(pkey->references, 2);
- EVP_PKEY_free(pkey);
- AssertIntEQ(pkey->references, 1);
-
- /* Encrypt data */
- AssertIntEQ(EVP_PKEY_encrypt(ctx, outEnc, &outEncLen,
- (const unsigned char*)in, inlen), WOLFSSL_SUCCESS);
-
- /* Decrypt data */
- AssertIntEQ(EVP_PKEY_decrypt_init(ctx), WOLFSSL_SUCCESS);
-
- AssertIntEQ(EVP_PKEY_decrypt(ctx, outDec, &outDecLen, outEnc, outEncLen),
- WOLFSSL_SUCCESS);
-
- AssertIntEQ(XMEMCMP(in, outDec, outDecLen), 0);
-
-#ifdef WC_RSA_NO_PADDING
- /* The input length must be the same size as the RSA key.*/
- AssertNotNull(inTmp = (byte*)XMALLOC(rsaKeySz, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
- XMEMSET(inTmp, 9, rsaKeySz);
- AssertNotNull(outEncTmp = (byte*)XMALLOC(rsaKeySz, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
- XMEMSET(outEncTmp, 0, rsaKeySz);
- AssertNotNull(outDecTmp = (byte*)XMALLOC(rsaKeySz, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
- XMEMSET(outDecTmp, 0, rsaKeySz);
- AssertIntEQ(EVP_PKEY_encrypt_init(ctx), WOLFSSL_SUCCESS);
- AssertIntEQ(EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_NO_PADDING),
- WOLFSSL_SUCCESS);
- AssertIntEQ(EVP_PKEY_encrypt(ctx, outEncTmp, &outEncLen, inTmp, rsaKeySz),
- WOLFSSL_SUCCESS);
- AssertIntEQ(EVP_PKEY_decrypt_init(ctx), WOLFSSL_SUCCESS);
- AssertIntEQ(EVP_PKEY_decrypt(ctx, outDecTmp, &outDecLen, outEncTmp, outEncLen),
- WOLFSSL_SUCCESS);
- AssertIntEQ(XMEMCMP(inTmp, outDecTmp, outDecLen), 0);
-#endif
- EVP_PKEY_CTX_free(ctx);
- XFREE(outEnc, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(outDec, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
-#ifdef WC_RSA_NO_PADDING
- XFREE(inTmp, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(outEncTmp, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(outDecTmp, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
-#endif
- printf(resultFmt, passed);
-#endif
-}
-static void test_wolfSSL_EVP_PKEY_sign(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) && \
- !defined(HAVE_FAST_RSA) && !defined(HAVE_SELFTEST)
- WOLFSSL_RSA* rsa = NULL;
- WOLFSSL_EVP_PKEY* pkey = NULL;
- WOLFSSL_EVP_PKEY_CTX* ctx = NULL;
- const char* in = "What is easy to do is easy not to do.";
- size_t inlen = XSTRLEN(in);
- byte hash[SHA256_DIGEST_LENGTH] = {0};
- SHA256_CTX c;
- byte* sig = NULL;
- byte* sigVerify = NULL;
- size_t siglen = 0;
- size_t rsaKeySz = 2048/8; /* Bytes */
-
- printf(testingFmt, "wolfSSL_EVP_PKEY_sign()");
-
- AssertNotNull(sig = (byte*)XMALLOC(rsaKeySz, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
- XMEMSET(sig, 0, rsaKeySz);
- AssertNotNull(sigVerify = (byte*)XMALLOC(rsaKeySz, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER));
- XMEMSET(sigVerify, 0, rsaKeySz);
-
- /* Generate hash */
- SHA256_Init(&c);
- SHA256_Update(&c, in, inlen);
- SHA256_Final(hash, &c);
-
- AssertNotNull(rsa = RSA_generate_key(2048, 3, NULL, NULL));
- AssertNotNull(pkey = wolfSSL_EVP_PKEY_new());
- AssertIntEQ(EVP_PKEY_assign_RSA(pkey, rsa), WOLFSSL_SUCCESS);
- AssertNotNull(ctx = EVP_PKEY_CTX_new(pkey, NULL));
- AssertIntEQ(EVP_PKEY_sign_init(ctx), WOLFSSL_SUCCESS);
- AssertIntEQ(EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING),
- WOLFSSL_SUCCESS);
-
- /* Sign data */
- AssertIntEQ(EVP_PKEY_sign(ctx, sig, &siglen, hash, SHA256_DIGEST_LENGTH),
- WOLFSSL_SUCCESS);
- /* Verify signature.
- EVP_PKEY_verify() doesn't exist yet, so use RSA_public_decrypt(). */
- AssertIntEQ(RSA_public_decrypt((int)siglen, sig, sigVerify,
- rsa, RSA_PKCS1_PADDING), SHA256_DIGEST_LENGTH);
-
- AssertIntEQ(XMEMCMP(hash, sigVerify, SHA256_DIGEST_LENGTH), 0);
- /* error cases */
-
- AssertIntNE(EVP_PKEY_sign_init(NULL), WOLFSSL_SUCCESS);
- ctx->pkey->type = EVP_PKEY_RSA2;
- AssertIntNE(EVP_PKEY_sign_init(ctx), WOLFSSL_SUCCESS);
- AssertIntNE(EVP_PKEY_sign(NULL, sig, &siglen, (byte*)in, inlen),
- WOLFSSL_SUCCESS);
- AssertIntNE(EVP_PKEY_sign(ctx, sig, &siglen, (byte*)in, inlen),
- WOLFSSL_SUCCESS);
-
- EVP_PKEY_free(pkey);
- EVP_PKEY_CTX_free(ctx);
- wolfSSL_RSA_free(rsa);
- XFREE(sig, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(sigVerify, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_EVP_PKEY_rsa(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA)
- WOLFSSL_RSA* rsa;
- WOLFSSL_EVP_PKEY* pkey;
-
- AssertNotNull(rsa = wolfSSL_RSA_new());
- AssertNotNull(pkey = wolfSSL_EVP_PKEY_new());
- AssertIntEQ(EVP_PKEY_assign_RSA(NULL, rsa), WOLFSSL_FAILURE);
- AssertIntEQ(EVP_PKEY_assign_RSA(pkey, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(EVP_PKEY_assign_RSA(pkey, rsa), WOLFSSL_SUCCESS);
- AssertPtrEq(EVP_PKEY_get0_RSA(pkey), rsa);
- wolfSSL_EVP_PKEY_free(pkey);
-
- printf(resultFmt, passed);
-
-#endif
-}
-
-static void test_EVP_PKEY_ec(void)
-{
-#if defined(OPENSSL_EXTRA) && defined(HAVE_ECC)
- WOLFSSL_EC_KEY* ecKey;
- WOLFSSL_EVP_PKEY* pkey;
-
- AssertNotNull(ecKey = wolfSSL_EC_KEY_new());
- AssertNotNull(pkey = wolfSSL_EVP_PKEY_new());
- AssertIntEQ(EVP_PKEY_assign_EC_KEY(NULL, ecKey), WOLFSSL_FAILURE);
- AssertIntEQ(EVP_PKEY_assign_EC_KEY(pkey, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(EVP_PKEY_assign_EC_KEY(pkey, ecKey), WOLFSSL_SUCCESS);
- wolfSSL_EVP_PKEY_free(pkey);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_EVP_PKEY_cmp(void)
-{
-#if defined(OPENSSL_EXTRA)
- EVP_PKEY *a, *b;
- const unsigned char *in;
-
-#if !defined(NO_RSA) && defined(USE_CERT_BUFFERS_2048)
- in = client_key_der_2048;
- AssertNotNull(a = wolfSSL_d2i_PrivateKey(EVP_PKEY_RSA, NULL,
- &in, (long)sizeof_client_key_der_2048));
- in = client_key_der_2048;
- AssertNotNull(b = wolfSSL_d2i_PrivateKey(EVP_PKEY_RSA, NULL,
- &in, (long)sizeof_client_key_der_2048));
-
- /* Test success case RSA */
- AssertIntEQ(EVP_PKEY_cmp(a, b), 0);
-
- EVP_PKEY_free(b);
- EVP_PKEY_free(a);
-#endif
-
-#if defined(HAVE_ECC) && defined(USE_CERT_BUFFERS_256)
- in = ecc_clikey_der_256;
- AssertNotNull(a = wolfSSL_d2i_PrivateKey(EVP_PKEY_EC, NULL,
- &in, (long)sizeof_ecc_clikey_der_256));
- in = ecc_clikey_der_256;
- AssertNotNull(b = wolfSSL_d2i_PrivateKey(EVP_PKEY_EC, NULL,
- &in, (long)sizeof_ecc_clikey_der_256));
-
- /* Test success case ECC */
- AssertIntEQ(EVP_PKEY_cmp(a, b), 0);
-
- EVP_PKEY_free(b);
- EVP_PKEY_free(a);
-#endif
-
- /* Test failure cases */
-#if !defined(NO_RSA) && defined(USE_CERT_BUFFERS_2048) && \
- defined(HAVE_ECC) && defined(USE_CERT_BUFFERS_256)
-
- in = client_key_der_2048;
- AssertNotNull(a = wolfSSL_d2i_PrivateKey(EVP_PKEY_RSA, NULL,
- &in, (long)sizeof_client_key_der_2048));
- in = ecc_clikey_der_256;
- AssertNotNull(b = wolfSSL_d2i_PrivateKey(EVP_PKEY_EC, NULL,
- &in, (long)sizeof_ecc_clikey_der_256));
-
- AssertIntNE(EVP_PKEY_cmp(a, b), 0);
-
- EVP_PKEY_free(b);
- EVP_PKEY_free(a);
-#endif
-
- /* invalid or empty failure cases */
- a = EVP_PKEY_new();
- b = EVP_PKEY_new();
- AssertIntNE(EVP_PKEY_cmp(NULL, NULL), 0);
- AssertIntNE(EVP_PKEY_cmp(a, NULL), 0);
- AssertIntNE(EVP_PKEY_cmp(NULL, b), 0);
- AssertIntNE(EVP_PKEY_cmp(a, b), 0);
- EVP_PKEY_free(b);
- EVP_PKEY_free(a);
-
- (void)in;
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_ERR_load_crypto_strings(void)
-{
-#if defined(OPENSSL_ALL)
- ERR_load_crypto_strings();
-
- printf(resultFmt, passed);
-#endif
-}
-
-#if defined(OPENSSL_ALL) && !defined(NO_CERTS)
-static void free_x509(X509* x)
-{
- AssertIntEQ((x == (X509*)1 || x == (X509*)2), 1);
-}
-#endif
-
-static void test_sk_X509(void)
-{
-#if defined(OPENSSL_ALL) && !defined(NO_CERTS)
- STACK_OF(X509)* s;
-
- AssertNotNull(s = sk_X509_new());
- AssertIntEQ(sk_X509_num(s), 0);
- sk_X509_free(s);
-
- AssertNotNull(s = sk_X509_new_null());
- AssertIntEQ(sk_X509_num(s), 0);
- sk_X509_free(s);
-
- AssertNotNull(s = sk_X509_new());
- sk_X509_push(s, (X509*)1);
- AssertIntEQ(sk_X509_num(s), 1);
- AssertIntEQ((sk_X509_value(s, 0) == (X509*)1), 1);
- sk_X509_push(s, (X509*)2);
- AssertIntEQ(sk_X509_num(s), 2);
- AssertIntEQ((sk_X509_value(s, 0) == (X509*)2), 1);
- AssertIntEQ((sk_X509_value(s, 1) == (X509*)1), 1);
- sk_X509_push(s, (X509*)2);
- sk_X509_pop_free(s, free_x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_X509_get_signature_nid(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && !defined(NO_RSA)
- X509* x509;
-
- AssertIntEQ(X509_get_signature_nid(NULL), 0);
- AssertNotNull(x509 = wolfSSL_X509_load_certificate_file(svrCertFile,
- SSL_FILETYPE_PEM));
- AssertIntEQ(X509_get_signature_nid(x509), CTC_SHA256wRSA);
- X509_free(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_X509_REQ(void)
-{
-#if defined(OPENSSL_ALL) && !defined(NO_CERTS) && defined(WOLFSSL_CERT_GEN) && \
- defined(WOLFSSL_CERT_REQ)
- X509_NAME* name;
-#if !defined(NO_RSA) || defined(HAVE_ECC)
- X509_REQ* req;
- EVP_PKEY* priv;
- EVP_PKEY* pub;
- unsigned char* der = NULL;
-#endif
-#ifndef NO_RSA
- #ifdef USE_CERT_BUFFERS_1024
- const unsigned char* rsaPriv = (const unsigned char*)client_key_der_1024;
- const unsigned char* rsaPub = (unsigned char*)client_keypub_der_1024;
- #elif defined(USE_CERT_BUFFERS_2048)
- const unsigned char* rsaPriv = (const unsigned char*)client_key_der_2048;
- const unsigned char* rsaPub = (unsigned char*)client_keypub_der_2048;
- #endif
-#endif
-#ifdef HAVE_ECC
- const unsigned char* ecPriv = (const unsigned char*)ecc_clikey_der_256;
- const unsigned char* ecPub = (unsigned char*)ecc_clikeypub_der_256;
- int len;
-#endif
-
- AssertNotNull(name = X509_NAME_new());
- AssertIntEQ(X509_NAME_add_entry_by_txt(name, "commonName", MBSTRING_UTF8,
- (byte*)"wolfssl.com", 11, 0, 1),
- WOLFSSL_SUCCESS);
- AssertIntEQ(X509_NAME_add_entry_by_txt(name, "emailAddress", MBSTRING_UTF8,
- (byte*)"support@wolfssl.com", 19, -1,
- 1), WOLFSSL_SUCCESS);
-
-#ifndef NO_RSA
- AssertNotNull(priv = d2i_PrivateKey(EVP_PKEY_RSA, NULL, &rsaPriv,
- (long)sizeof_client_key_der_2048));
- AssertNotNull(pub = d2i_PUBKEY(NULL, &rsaPub,
- (long)sizeof_client_keypub_der_2048));
- AssertNotNull(req = X509_REQ_new());
- AssertIntEQ(X509_REQ_set_subject_name(NULL, name), WOLFSSL_FAILURE);
- AssertIntEQ(X509_REQ_set_subject_name(req, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(X509_REQ_set_subject_name(req, name), WOLFSSL_SUCCESS);
- AssertIntEQ(X509_REQ_set_pubkey(NULL, pub), WOLFSSL_FAILURE);
- AssertIntEQ(X509_REQ_set_pubkey(req, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(X509_REQ_set_pubkey(req, pub), WOLFSSL_SUCCESS);
- AssertIntEQ(X509_REQ_sign(NULL, priv, EVP_sha256()), WOLFSSL_FAILURE);
- AssertIntEQ(X509_REQ_sign(req, NULL, EVP_sha256()), WOLFSSL_FAILURE);
- AssertIntEQ(X509_REQ_sign(req, priv, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(X509_REQ_sign(req, priv, EVP_sha256()), WOLFSSL_SUCCESS);
- AssertIntEQ(i2d_X509_REQ(req, &der), 643);
- XFREE(der, NULL, DYNAMIC_TYPE_OPENSSL);
- der = NULL;
- X509_REQ_free(NULL);
- X509_REQ_free(req);
- EVP_PKEY_free(pub);
- EVP_PKEY_free(priv);
-#endif
-#ifdef HAVE_ECC
- AssertNotNull(priv = wolfSSL_d2i_PrivateKey(EVP_PKEY_EC, NULL, &ecPriv,
- sizeof_ecc_clikey_der_256));
- AssertNotNull(pub = wolfSSL_d2i_PUBKEY(NULL, &ecPub,
- sizeof_ecc_clikeypub_der_256));
- AssertNotNull(req = X509_REQ_new());
- AssertIntEQ(X509_REQ_set_subject_name(req, name), WOLFSSL_SUCCESS);
- AssertIntEQ(X509_REQ_set_pubkey(req, pub), WOLFSSL_SUCCESS);
- AssertIntEQ(X509_REQ_sign(req, priv, EVP_sha256()), WOLFSSL_SUCCESS);
- /* Signature is random and may be shorter or longer. */
- AssertIntGE((len = i2d_X509_REQ(req, &der)), 245);
- AssertIntLE(len, 253);
- XFREE(der, NULL, DYNAMIC_TYPE_OPENSSL);
- X509_REQ_free(req);
- EVP_PKEY_free(pub);
- EVP_PKEY_free(priv);
-
-#ifdef FP_ECC
- wc_ecc_fp_free();
-#endif
-#endif /* HAVE_ECC */
-
- X509_NAME_free(name);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfssl_PKCS7(void)
-{
-#if defined(OPENSSL_ALL) && defined(HAVE_PKCS7)
- PKCS7* pkcs7;
- byte data[FOURK_BUF];
- word32 len = sizeof(data);
- const byte* p = data;
- byte content[] = "Test data to encode.";
-
- AssertIntGT((len = CreatePKCS7SignedData(data, len, content,
- (word32)sizeof(content),
- 0, 0)), 0);
-
- AssertNull(pkcs7 = d2i_PKCS7(NULL, NULL, len));
- AssertNull(pkcs7 = d2i_PKCS7(NULL, &p, 0));
- AssertNotNull(pkcs7 = d2i_PKCS7(NULL, &p, len));
- AssertIntEQ(wolfSSL_PKCS7_verify(NULL, NULL, NULL, NULL, NULL,
- PKCS7_NOVERIFY), WOLFSSL_FAILURE);
- PKCS7_free(pkcs7);
-
- /* fail case, without PKCS7_NOVERIFY */
- p = data;
- AssertNotNull(pkcs7 = d2i_PKCS7(NULL, &p, len));
- AssertIntEQ(wolfSSL_PKCS7_verify(pkcs7, NULL, NULL, NULL, NULL,
- 0), WOLFSSL_FAILURE);
- PKCS7_free(pkcs7);
-
- /* success case, with PKCS7_NOVERIFY */
- p = data;
- AssertNotNull(pkcs7 = d2i_PKCS7(NULL, &p, len));
- AssertIntEQ(wolfSSL_PKCS7_verify(pkcs7, NULL, NULL, NULL, NULL,
- PKCS7_NOVERIFY), WOLFSSL_SUCCESS);
-
- PKCS7_free(NULL);
- PKCS7_free(pkcs7);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_PKCS7_SIGNED_new(void)
-{
-#if defined(OPENSSL_ALL) && defined(HAVE_PKCS7)
- PKCS7_SIGNED* pkcs7;
-
- printf(testingFmt, "wolfSSL_PKCS7_SIGNED_new()");
-
- pkcs7 = PKCS7_SIGNED_new();
- AssertNotNull(pkcs7);
- AssertIntEQ(pkcs7->contentOID, SIGNED_DATA);
-
- PKCS7_SIGNED_free(pkcs7);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_PEM_write_bio_PKCS7(void)
-{
-#if defined(OPENSSL_ALL) && defined(HAVE_PKCS7) && !defined(NO_FILESYSTEM)
- PKCS7* pkcs7 = NULL;
- BIO* bio = NULL;
- const byte* cert_buf = NULL;
- int ret = 0;
- WC_RNG rng;
- const byte data[] = { /* Hello World */
- 0x48,0x65,0x6c,0x6c,0x6f,0x20,0x57,0x6f,
- 0x72,0x6c,0x64
- };
-#ifndef NO_RSA
- #if defined(USE_CERT_BUFFERS_2048)
- byte key[sizeof_client_key_der_2048];
- byte cert[sizeof_client_cert_der_2048];
- word32 keySz = (word32)sizeof(key);
- word32 certSz = (word32)sizeof(cert);
- XMEMSET(key, 0, keySz);
- XMEMSET(cert, 0, certSz);
- XMEMCPY(key, client_key_der_2048, keySz);
- XMEMCPY(cert, client_cert_der_2048, certSz);
- #elif defined(USE_CERT_BUFFERS_1024)
- byte key[sizeof_client_key_der_1024];
- byte cert[sizeof_client_cert_der_1024];
- word32 keySz = (word32)sizeof(key);
- word32 certSz = (word32)sizeof(cert);
- XMEMSET(key, 0, keySz);
- XMEMSET(cert, 0, certSz);
- XMEMCPY(key, client_key_der_1024, keySz);
- XMEMCPY(cert, client_cert_der_1024, certSz);
- #else
- unsigned char cert[ONEK_BUF];
- unsigned char key[ONEK_BUF];
- XFILE fp;
- int certSz;
- int keySz;
-
- fp = XFOPEN("./certs/1024/client-cert.der", "rb");
- AssertTrue((fp != XBADFILE));
- certSz = (int)XFREAD(cert, 1, sizeof_client_cert_der_1024, fp);
- XFCLOSE(fp);
-
- fp = XFOPEN("./certs/1024/client-key.der", "rb");
- AssertTrue(fp != XBADFILE);
- keySz = (int)XFREAD(key, 1, sizeof_client_key_der_1024, fp);
- XFCLOSE(fp);
- #endif
-#elif defined(HAVE_ECC)
- #if defined(USE_CERT_BUFFERS_256)
- unsigned char cert[sizeof_cliecc_cert_der_256];
- unsigned char key[sizeof_ecc_clikey_der_256];
- int certSz = (int)sizeof(cert);
- int keySz = (int)sizeof(key);
- XMEMSET(cert, 0, certSz);
- XMEMSET(key, 0, keySz);
- XMEMCPY(cert, cliecc_cert_der_256, sizeof_cliecc_cert_der_256);
- XMEMCPY(key, ecc_clikey_der_256, sizeof_ecc_clikey_der_256);
- #else
- unsigned char cert[ONEK_BUF];
- unsigned char key[ONEK_BUF];
- XFILE fp;
- int certSz, keySz;
-
- fp = XFOPEN("./certs/client-ecc-cert.der", "rb");
- AssertTrue(fp != XBADFILE);
- certSz = (int)XFREAD(cert, 1, sizeof_cliecc_cert_der_256, fp);
- XFCLOSE(fp);
-
- fp = XFOPEN("./certs/client-ecc-key.der", "rb");
- AssertTrue(fp != XBADFILE);
- keySz = (int)XFREAD(key, 1, sizeof_ecc_clikey_der_256, fp);
- XFCLOSE(fp);
- #endif
-#else
- #error PKCS7 requires ECC or RSA
-#endif
- printf(testingFmt, "wolfSSL_PEM_write_bio_PKCS7()");
-
- AssertNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, devId));
- /* initialize with DER encoded cert */
- AssertIntEQ(wc_PKCS7_InitWithCert(pkcs7, (byte*)cert, (word32)certSz), 0);
-
- /* init rng */
- AssertIntEQ(wc_InitRng(&rng), 0);
-
- pkcs7->rng = &rng;
- pkcs7->content = (byte*)data; /* not used for ex */
- pkcs7->contentSz = (word32)sizeof(data);
- pkcs7->contentOID = SIGNED_DATA;
- pkcs7->privateKey = key;
- pkcs7->privateKeySz = (word32)sizeof(key);
- pkcs7->encryptOID = RSAk;
- pkcs7->hashOID = SHAh;
- pkcs7->signedAttribs = NULL;
- pkcs7->signedAttribsSz = 0;
-
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- /* Write PKCS#7 PEM to BIO, the function converts the DER to PEM cert*/
- AssertIntEQ(PEM_write_bio_PKCS7(bio, pkcs7), WOLFSSL_SUCCESS);
-
- /* Read PKCS#7 PEM from BIO */
- ret = wolfSSL_BIO_get_mem_data(bio, &cert_buf);
- AssertIntGE(ret, 0);
-
- BIO_free(bio);
- wc_PKCS7_Free(pkcs7);
- wc_FreeRng(&rng);
-
- printf(resultFmt, passed);
-
-#endif
-}
-
-/*----------------------------------------------------------------------------*
- | Certificate Failure Checks
- *----------------------------------------------------------------------------*/
-#ifndef NO_CERTS
- /* Use the Cert Manager(CM) API to generate the error ASN_SIG_CONFIRM_E */
- static int verify_sig_cm(const char* ca, byte* cert_buf, size_t cert_sz,
- int type)
- {
- int ret;
- WOLFSSL_CERT_MANAGER* cm = NULL;
-
- switch (type) {
- case TESTING_RSA:
- #ifdef NO_RSA
- printf("RSA disabled, skipping test\n");
- return ASN_SIG_CONFIRM_E;
- #else
- break;
- #endif
- case TESTING_ECC:
- #ifndef HAVE_ECC
- printf("ECC disabled, skipping test\n");
- return ASN_SIG_CONFIRM_E;
- #else
- break;
- #endif
- default:
- printf("Bad function argument\n");
- return BAD_FUNC_ARG;
- }
- cm = wolfSSL_CertManagerNew();
- if (cm == NULL) {
- printf("wolfSSL_CertManagerNew failed\n");
- return -1;
- }
-
- #ifndef NO_FILESYSTEM
- ret = wolfSSL_CertManagerLoadCA(cm, ca, 0);
- if (ret != WOLFSSL_SUCCESS) {
- printf("wolfSSL_CertManagerLoadCA failed\n");
- wolfSSL_CertManagerFree(cm);
- return ret;
- }
- #else
- (void)ca;
- #endif
-
- ret = wolfSSL_CertManagerVerifyBuffer(cm, cert_buf, cert_sz, WOLFSSL_FILETYPE_ASN1);
- /* Let AssertIntEQ handle return code */
-
- wolfSSL_CertManagerFree(cm);
-
- return ret;
- }
-
- static int test_RsaSigFailure_cm(void)
- {
- int ret = 0;
- const char* ca_cert = "./certs/ca-cert.pem";
- const char* server_cert = "./certs/server-cert.der";
- byte* cert_buf = NULL;
- size_t cert_sz = 0;
-
- ret = load_file(server_cert, &cert_buf, &cert_sz);
- if (ret == 0) {
- /* corrupt DER - invert last byte, which is signature */
- cert_buf[cert_sz-1] = ~cert_buf[cert_sz-1];
-
- /* test bad cert */
- ret = verify_sig_cm(ca_cert, cert_buf, cert_sz, TESTING_RSA);
- }
-
- printf("Signature failure test: RSA: Ret %d\n", ret);
-
- if (cert_buf)
- free(cert_buf);
-
- return ret;
- }
-
- static int test_EccSigFailure_cm(void)
- {
- int ret = 0;
- /* self-signed ECC cert, so use server cert as CA */
- const char* ca_cert = "./certs/ca-ecc-cert.pem";
- const char* server_cert = "./certs/server-ecc.der";
- byte* cert_buf = NULL;
- size_t cert_sz = 0;
-
- ret = load_file(server_cert, &cert_buf, &cert_sz);
- if (ret == 0) {
- /* corrupt DER - invert last byte, which is signature */
- cert_buf[cert_sz-1] = ~cert_buf[cert_sz-1];
-
- /* test bad cert */
- ret = verify_sig_cm(ca_cert, cert_buf, cert_sz, TESTING_ECC);
- }
-
- printf("Signature failure test: ECC: Ret %d\n", ret);
-
- if (cert_buf)
- free(cert_buf);
-
-#ifdef FP_ECC
- wc_ecc_fp_free();
-#endif
- return ret;
- }
-
-#endif /* NO_CERTS */
-
-#ifdef WOLFSSL_TLS13
-#if defined(WOLFSSL_SEND_HRR_COOKIE) && !defined(NO_WOLFSSL_SERVER)
-static byte fixedKey[WC_SHA384_DIGEST_SIZE] = { 0, };
-#endif
-#ifdef WOLFSSL_EARLY_DATA
-static const char earlyData[] = "Early Data";
-static char earlyDataBuffer[1];
-#endif
-
-static int test_tls13_apis(void)
-{
- int ret = 0;
-#ifndef WOLFSSL_NO_TLS12
-#ifndef NO_WOLFSSL_CLIENT
- WOLFSSL_CTX* clientTls12Ctx;
- WOLFSSL* clientTls12Ssl;
-#endif
-#ifndef NO_WOLFSSL_SERVER
- WOLFSSL_CTX* serverTls12Ctx;
- WOLFSSL* serverTls12Ssl;
-#endif
-#endif
-#ifndef NO_WOLFSSL_CLIENT
- WOLFSSL_CTX* clientCtx;
- WOLFSSL* clientSsl;
-#endif
-#ifndef NO_WOLFSSL_SERVER
- WOLFSSL_CTX* serverCtx;
- WOLFSSL* serverSsl;
-#ifndef NO_CERTS
- const char* ourCert = svrCertFile;
- const char* ourKey = svrKeyFile;
-#endif
-#endif
-#ifdef WOLFSSL_EARLY_DATA
- int outSz;
-#endif
- int groups[2] = { WOLFSSL_ECC_X25519, WOLFSSL_ECC_X448 };
- int numGroups = 2;
-#if defined(OPENSSL_EXTRA) && defined(HAVE_ECC)
- char groupList[] = "P-521:P-384:P-256";
-#endif /* defined(OPENSSL_EXTRA) && defined(HAVE_ECC) */
-
-#ifndef WOLFSSL_NO_TLS12
-#ifndef NO_WOLFSSL_CLIENT
- clientTls12Ctx = wolfSSL_CTX_new(wolfTLSv1_2_client_method());
- clientTls12Ssl = wolfSSL_new(clientTls12Ctx);
-#endif
-#ifndef NO_WOLFSSL_SERVER
- serverTls12Ctx = wolfSSL_CTX_new(wolfTLSv1_2_server_method());
-#ifndef NO_CERTS
- wolfSSL_CTX_use_certificate_chain_file(serverTls12Ctx, ourCert);
- wolfSSL_CTX_use_PrivateKey_file(serverTls12Ctx, ourKey, WOLFSSL_FILETYPE_PEM);
-#endif
- serverTls12Ssl = wolfSSL_new(serverTls12Ctx);
-#endif
-#endif
-
-#ifndef NO_WOLFSSL_CLIENT
- clientCtx = wolfSSL_CTX_new(wolfTLSv1_3_client_method());
- clientSsl = wolfSSL_new(clientCtx);
-#endif
-#ifndef NO_WOLFSSL_SERVER
- serverCtx = wolfSSL_CTX_new(wolfTLSv1_3_server_method());
-#ifndef NO_CERTS
- wolfSSL_CTX_use_certificate_chain_file(serverCtx, ourCert);
- wolfSSL_CTX_use_PrivateKey_file(serverCtx, ourKey, WOLFSSL_FILETYPE_PEM);
-#endif
- serverSsl = wolfSSL_new(serverCtx);
-#endif
-
-#ifdef WOLFSSL_SEND_HRR_COOKIE
- AssertIntEQ(wolfSSL_send_hrr_cookie(NULL, NULL, 0), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
- AssertIntEQ(wolfSSL_send_hrr_cookie(clientSsl, NULL, 0), SIDE_ERROR);
-#endif
-#ifndef NO_WOLFSSL_SERVER
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_send_hrr_cookie(serverTls12Ssl, NULL, 0), BAD_FUNC_ARG);
-#endif
-
- AssertIntEQ(wolfSSL_send_hrr_cookie(serverSsl, NULL, 0), WOLFSSL_SUCCESS);
- AssertIntEQ(wolfSSL_send_hrr_cookie(serverSsl, fixedKey, sizeof(fixedKey)),
- WOLFSSL_SUCCESS);
-#endif
-#endif
-
-#ifdef HAVE_ECC
- AssertIntEQ(wolfSSL_UseKeyShare(NULL, WOLFSSL_ECC_SECP256R1), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_UseKeyShare(serverSsl, WOLFSSL_ECC_SECP256R1),
- WOLFSSL_SUCCESS);
-#endif
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_UseKeyShare(clientTls12Ssl, WOLFSSL_ECC_SECP256R1),
- WOLFSSL_SUCCESS);
-#endif
- AssertIntEQ(wolfSSL_UseKeyShare(clientSsl, WOLFSSL_ECC_SECP256R1),
- WOLFSSL_SUCCESS);
-#endif
-#elif defined(HAVE_CURVE25519)
- AssertIntEQ(wolfSSL_UseKeyShare(NULL, WOLFSSL_ECC_X25519), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_UseKeyShare(serverSsl, WOLFSSL_ECC_X25519),
- WOLFSSL_SUCCESS);
-#endif
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_UseKeyShare(clientTls12Ssl, WOLFSSL_ECC_X25519),
- WOLFSSL_SUCCESS);
-#endif
- AssertIntEQ(wolfSSL_UseKeyShare(clientSsl, WOLFSSL_ECC_X25519),
- WOLFSSL_SUCCESS);
-#endif
-#elif defined(HAVE_CURVE448)
- AssertIntEQ(wolfSSL_UseKeyShare(NULL, WOLFSSL_ECC_X448), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_UseKeyShare(serverSsl, WOLFSSL_ECC_X448),
- WOLFSSL_SUCCESS);
-#endif
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_UseKeyShare(clientTls12Ssl, WOLFSSL_ECC_X448),
- WOLFSSL_SUCCESS);
-#endif
- AssertIntEQ(wolfSSL_UseKeyShare(clientSsl, WOLFSSL_ECC_X448),
- WOLFSSL_SUCCESS);
-#endif
-#else
- AssertIntEQ(wolfSSL_UseKeyShare(NULL, WOLFSSL_ECC_SECP256R1), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_UseKeyShare(clientTls12Ssl, WOLFSSL_ECC_SECP256R1),
- NOT_COMPILED_IN);
-#endif
- AssertIntEQ(wolfSSL_UseKeyShare(clientSsl, WOLFSSL_ECC_SECP256R1),
- NOT_COMPILED_IN);
-#endif
-#endif
-
- AssertIntEQ(wolfSSL_NoKeyShares(NULL), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_NoKeyShares(serverSsl), SIDE_ERROR);
-#endif
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_NoKeyShares(clientTls12Ssl), WOLFSSL_SUCCESS);
-#endif
- AssertIntEQ(wolfSSL_NoKeyShares(clientSsl), WOLFSSL_SUCCESS);
-#endif
-
- AssertIntEQ(wolfSSL_CTX_no_ticket_TLSv13(NULL), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
- AssertIntEQ(wolfSSL_CTX_no_ticket_TLSv13(clientCtx), SIDE_ERROR);
-#endif
-#ifndef NO_WOLFSSL_SERVER
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_CTX_no_ticket_TLSv13(serverTls12Ctx), BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_CTX_no_ticket_TLSv13(serverCtx), 0);
-#endif
-
- AssertIntEQ(wolfSSL_no_ticket_TLSv13(NULL), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
- AssertIntEQ(wolfSSL_no_ticket_TLSv13(clientSsl), SIDE_ERROR);
-#endif
-#ifndef NO_WOLFSSL_SERVER
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_no_ticket_TLSv13(serverTls12Ssl), BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_no_ticket_TLSv13(serverSsl), 0);
-#endif
-
- AssertIntEQ(wolfSSL_CTX_no_dhe_psk(NULL), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_CTX_no_dhe_psk(clientTls12Ctx), BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_CTX_no_dhe_psk(clientCtx), 0);
-#endif
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_CTX_no_dhe_psk(serverCtx), 0);
-#endif
-
- AssertIntEQ(wolfSSL_no_dhe_psk(NULL), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_no_dhe_psk(clientTls12Ssl), BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_no_dhe_psk(clientSsl), 0);
-#endif
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_no_dhe_psk(serverSsl), 0);
-#endif
-
- AssertIntEQ(wolfSSL_update_keys(NULL), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_update_keys(clientTls12Ssl), BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_update_keys(clientSsl), BUILD_MSG_ERROR);
-#endif
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_update_keys(serverSsl), BUILD_MSG_ERROR);
-#endif
-
-#if !defined(NO_CERTS) && defined(WOLFSSL_POST_HANDSHAKE_AUTH)
- AssertIntEQ(wolfSSL_CTX_allow_post_handshake_auth(NULL), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_CTX_allow_post_handshake_auth(serverCtx), SIDE_ERROR);
-#endif
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_CTX_allow_post_handshake_auth(clientTls12Ctx),
- BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_CTX_allow_post_handshake_auth(clientCtx), 0);
-#endif
-
- AssertIntEQ(wolfSSL_allow_post_handshake_auth(NULL), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_allow_post_handshake_auth(serverSsl), SIDE_ERROR);
-#endif
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_allow_post_handshake_auth(clientTls12Ssl),
- BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_allow_post_handshake_auth(clientSsl), 0);
-#endif
-
- AssertIntEQ(wolfSSL_request_certificate(NULL), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
- AssertIntEQ(wolfSSL_request_certificate(clientSsl), SIDE_ERROR);
-#endif
-#ifndef NO_WOLFSSL_SERVER
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_request_certificate(serverTls12Ssl),
- BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_request_certificate(serverSsl), NOT_READY_ERROR);
-#endif
-#endif
-
-#ifndef WOLFSSL_NO_SERVER_GROUPS_EXT
- AssertIntEQ(wolfSSL_preferred_group(NULL), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_preferred_group(serverSsl), SIDE_ERROR);
-#endif
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_preferred_group(clientTls12Ssl), BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_preferred_group(clientSsl), NOT_READY_ERROR);
-#endif
-#endif
-
- AssertIntEQ(wolfSSL_CTX_set_groups(NULL, NULL, 0), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
- AssertIntEQ(wolfSSL_CTX_set_groups(clientCtx, NULL, 0), BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_CTX_set_groups(NULL, groups, numGroups), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_CTX_set_groups(clientTls12Ctx, groups, numGroups),
- BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_CTX_set_groups(clientCtx, groups,
- WOLFSSL_MAX_GROUP_COUNT + 1),
- BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_CTX_set_groups(clientCtx, groups, numGroups),
- WOLFSSL_SUCCESS);
-#endif
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_CTX_set_groups(serverCtx, groups, numGroups),
- WOLFSSL_SUCCESS);
-#endif
-
- AssertIntEQ(wolfSSL_set_groups(NULL, NULL, 0), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
- AssertIntEQ(wolfSSL_set_groups(clientSsl, NULL, 0), BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_set_groups(NULL, groups, numGroups), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_set_groups(clientTls12Ssl, groups, numGroups),
- BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_set_groups(clientSsl, groups,
- WOLFSSL_MAX_GROUP_COUNT + 1), BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_set_groups(clientSsl, groups, numGroups),
- WOLFSSL_SUCCESS);
-#endif
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_set_groups(serverSsl, groups, numGroups),
- WOLFSSL_SUCCESS);
-#endif
-
-#if defined(OPENSSL_EXTRA) && defined(HAVE_ECC)
- AssertIntEQ(wolfSSL_CTX_set1_groups_list(NULL, NULL), WOLFSSL_FAILURE);
-#ifndef NO_WOLFSSL_CLIENT
- AssertIntEQ(wolfSSL_CTX_set1_groups_list(clientCtx, NULL), WOLFSSL_FAILURE);
-#endif
- AssertIntEQ(wolfSSL_CTX_set1_groups_list(NULL, groupList), WOLFSSL_FAILURE);
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_CTX_set1_groups_list(clientTls12Ctx, groupList),
- WOLFSSL_FAILURE);
-#endif
- AssertIntEQ(wolfSSL_CTX_set1_groups_list(clientCtx, groupList),
- WOLFSSL_SUCCESS);
-#endif
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_CTX_set1_groups_list(serverCtx, groupList),
- WOLFSSL_SUCCESS);
-#endif
-
- AssertIntEQ(wolfSSL_set1_groups_list(NULL, NULL), WOLFSSL_FAILURE);
-#ifndef NO_WOLFSSL_CLIENT
- AssertIntEQ(wolfSSL_set1_groups_list(clientSsl, NULL), WOLFSSL_FAILURE);
-#endif
- AssertIntEQ(wolfSSL_set1_groups_list(NULL, groupList), WOLFSSL_FAILURE);
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_set1_groups_list(clientTls12Ssl, groupList),
- WOLFSSL_FAILURE);
-#endif
- AssertIntEQ(wolfSSL_set1_groups_list(clientSsl, groupList),
- WOLFSSL_SUCCESS);
-#endif
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_set1_groups_list(serverSsl, groupList),
- WOLFSSL_SUCCESS);
-#endif
-#endif /* defined(OPENSSL_EXTRA) && defined(HAVE_ECC) */
-
-#ifdef WOLFSSL_EARLY_DATA
- AssertIntEQ(wolfSSL_CTX_set_max_early_data(NULL, 0), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
- AssertIntEQ(wolfSSL_CTX_set_max_early_data(clientCtx, 0), SIDE_ERROR);
-#endif
-#ifndef NO_WOLFSSL_SERVER
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_CTX_set_max_early_data(serverTls12Ctx, 0),
- BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_CTX_set_max_early_data(serverCtx, 0), 0);
-#endif
-
- AssertIntEQ(wolfSSL_set_max_early_data(NULL, 0), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
- AssertIntEQ(wolfSSL_set_max_early_data(clientSsl, 0), SIDE_ERROR);
-#endif
-#ifndef NO_WOLFSSL_SERVER
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_set_max_early_data(serverTls12Ssl, 0), BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_set_max_early_data(serverSsl, 0), 0);
-#endif
-
- AssertIntEQ(wolfSSL_write_early_data(NULL, earlyData, sizeof(earlyData),
- &outSz), BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_CLIENT
- AssertIntEQ(wolfSSL_write_early_data(clientSsl, NULL, sizeof(earlyData),
- &outSz), BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_write_early_data(clientSsl, earlyData, -1, &outSz),
- BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_write_early_data(clientSsl, earlyData,
- sizeof(earlyData), NULL),
- BAD_FUNC_ARG);
-#endif
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_write_early_data(serverSsl, earlyData,
- sizeof(earlyData), &outSz),
- SIDE_ERROR);
-#endif
-#ifndef NO_WOLFSSL_CLIENT
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_write_early_data(clientTls12Ssl, earlyData,
- sizeof(earlyData), &outSz),
- BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_write_early_data(clientSsl, earlyData,
- sizeof(earlyData), &outSz),
- WOLFSSL_FATAL_ERROR);
-#endif
-
- AssertIntEQ(wolfSSL_read_early_data(NULL, earlyDataBuffer,
- sizeof(earlyDataBuffer), &outSz),
- BAD_FUNC_ARG);
-#ifndef NO_WOLFSSL_SERVER
- AssertIntEQ(wolfSSL_read_early_data(serverSsl, NULL,
- sizeof(earlyDataBuffer), &outSz),
- BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_read_early_data(serverSsl, earlyDataBuffer, -1, &outSz),
- BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_read_early_data(serverSsl, earlyDataBuffer,
- sizeof(earlyDataBuffer), NULL),
- BAD_FUNC_ARG);
-#endif
-#ifndef NO_WOLFSSL_CLIENT
- AssertIntEQ(wolfSSL_read_early_data(clientSsl, earlyDataBuffer,
- sizeof(earlyDataBuffer), &outSz),
- SIDE_ERROR);
-#endif
-#ifndef NO_WOLFSSL_SERVER
-#ifndef WOLFSSL_NO_TLS12
- AssertIntEQ(wolfSSL_read_early_data(serverTls12Ssl, earlyDataBuffer,
- sizeof(earlyDataBuffer), &outSz),
- BAD_FUNC_ARG);
-#endif
- AssertIntEQ(wolfSSL_read_early_data(serverSsl, earlyDataBuffer,
- sizeof(earlyDataBuffer), &outSz),
- WOLFSSL_FATAL_ERROR);
-#endif
-#endif
-
-#ifndef NO_WOLFSSL_SERVER
- wolfSSL_free(serverSsl);
- wolfSSL_CTX_free(serverCtx);
-#endif
-#ifndef NO_WOLFSSL_CLIENT
- wolfSSL_free(clientSsl);
- wolfSSL_CTX_free(clientCtx);
-#endif
-
-#ifndef WOLFSSL_NO_TLS12
-#ifndef NO_WOLFSSL_SERVER
- wolfSSL_free(serverTls12Ssl);
- wolfSSL_CTX_free(serverTls12Ctx);
-#endif
-#ifndef NO_WOLFSSL_CLIENT
- wolfSSL_free(clientTls12Ssl);
- wolfSSL_CTX_free(clientTls12Ctx);
-#endif
-#endif
-
- return ret;
-}
-
-#endif
-
-#ifdef HAVE_PK_CALLBACKS
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && !defined(NO_RSA) && \
- !defined(NO_WOLFSSL_CLIENT) && !defined(NO_DH) && !defined(NO_AES) && \
- defined(HAVE_IO_TESTS_DEPENDENCIES) && !defined(SINGLE_THREADED)
-static int my_DhCallback(WOLFSSL* ssl, struct DhKey* key,
- const unsigned char* priv, unsigned int privSz,
- const unsigned char* pubKeyDer, unsigned int pubKeySz,
- unsigned char* out, unsigned int* outlen,
- void* ctx)
-{
- /* Test fail when context associated with WOLFSSL is NULL */
- if (ctx == NULL) {
- return -1;
- }
-
- (void)ssl;
- /* return 0 on success */
- return wc_DhAgree(key, out, outlen, priv, privSz, pubKeyDer, pubKeySz);
-};
-
-static void test_dh_ctx_setup(WOLFSSL_CTX* ctx) {
- wolfSSL_CTX_SetDhAgreeCb(ctx, my_DhCallback);
-#ifdef WOLFSSL_AES_128
- AssertIntEQ(wolfSSL_CTX_set_cipher_list(ctx, "DHE-RSA-AES128-SHA256"),
- WOLFSSL_SUCCESS);
-#endif
-#ifdef WOLFSSL_AES_256
- AssertIntEQ(wolfSSL_CTX_set_cipher_list(ctx, "DHE-RSA-AES256-SHA256"),
- WOLFSSL_SUCCESS);
-#endif
-}
-
-static void test_dh_ssl_setup(WOLFSSL* ssl)
-{
- static int dh_test_ctx = 1;
- int ret;
-
- wolfSSL_SetDhAgreeCtx(ssl, &dh_test_ctx);
- AssertIntEQ(*((int*)wolfSSL_GetDhAgreeCtx(ssl)), dh_test_ctx);
- ret = wolfSSL_SetTmpDH_file(ssl, dhParamFile, WOLFSSL_FILETYPE_PEM);
- if (ret != WOLFSSL_SUCCESS && ret != SIDE_ERROR) {
- AssertIntEQ(ret, WOLFSSL_SUCCESS);
- }
-}
-
-static void test_dh_ssl_setup_fail(WOLFSSL* ssl)
-{
- int ret;
-
- wolfSSL_SetDhAgreeCtx(ssl, NULL);
- AssertNull(wolfSSL_GetDhAgreeCtx(ssl));
- ret = wolfSSL_SetTmpDH_file(ssl, dhParamFile, WOLFSSL_FILETYPE_PEM);
- if (ret != WOLFSSL_SUCCESS && ret != SIDE_ERROR) {
- AssertIntEQ(ret, WOLFSSL_SUCCESS);
- }
-}
-#endif
-
-static void test_DhCallbacks(void)
-{
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS) && !defined(NO_RSA) && \
- !defined(NO_WOLFSSL_CLIENT) && !defined(NO_DH) && !defined(NO_AES) && \
- defined(HAVE_IO_TESTS_DEPENDENCIES) && !defined(SINGLE_THREADED)
- WOLFSSL_CTX *ctx;
- WOLFSSL *ssl;
- tcp_ready ready;
- func_args server_args;
- func_args client_args;
- THREAD_TYPE serverThread;
- callback_functions func_cb_client;
- callback_functions func_cb_server;
- int test;
-
- printf(testingFmt, "test_DhCallbacks");
-
-#ifndef NO_WOLFSSL_CLIENT
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
-#else
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
-#endif
-
- AssertIntEQ(wolfSSL_CTX_set_cipher_list(NULL, "NONE"), WOLFSSL_FAILURE);
-
- wolfSSL_CTX_SetDhAgreeCb(ctx, &my_DhCallback);
-
- /* load client ca cert */
- AssertIntEQ(wolfSSL_CTX_load_verify_locations(ctx, caCertFile, 0),
- WOLFSSL_SUCCESS);
-
- /* test with NULL arguments */
- wolfSSL_SetDhAgreeCtx(NULL, &test);
- AssertNull(wolfSSL_GetDhAgreeCtx(NULL));
-
- /* test success case */
- test = 1;
- AssertNotNull(ssl = wolfSSL_new(ctx));
- wolfSSL_SetDhAgreeCtx(ssl, &test);
- AssertIntEQ(*((int*)wolfSSL_GetDhAgreeCtx(ssl)), test);
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-
- /* test a connection where callback is used */
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
- XMEMSET(&server_args, 0, sizeof(func_args));
- XMEMSET(&client_args, 0, sizeof(func_args));
- XMEMSET(&func_cb_client, 0, sizeof(callback_functions));
- XMEMSET(&func_cb_server, 0, sizeof(callback_functions));
-
- StartTCP();
- InitTcpReady(&ready);
-
-#if defined(USE_WINDOWS_API)
- /* use RNG to get random port if using windows */
- ready.port = GetRandomPort();
-#endif
-
- server_args.signal = &ready;
- client_args.signal = &ready;
- server_args.return_code = TEST_FAIL;
- client_args.return_code = TEST_FAIL;
-
- /* set callbacks to use DH functions */
- func_cb_client.ctx_ready = &test_dh_ctx_setup;
- func_cb_client.ssl_ready = &test_dh_ssl_setup;
-#ifndef WOLFSSL_NO_TLS12
- func_cb_client.method = wolfTLSv1_2_client_method;
-#else
- func_cb_client.method = wolfTLSv1_3_client_method;
-#endif
- client_args.callbacks = &func_cb_client;
-
- func_cb_server.ctx_ready = &test_dh_ctx_setup;
- func_cb_server.ssl_ready = &test_dh_ssl_setup;
-#ifndef WOLFSSL_NO_TLS12
- func_cb_server.method = wolfTLSv1_2_server_method;
-#else
- func_cb_server.method = wolfTLSv1_3_server_method;
-#endif
- server_args.callbacks = &func_cb_server;
-
- start_thread(test_server_nofail, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
- test_client_nofail(&client_args, NULL);
- join_thread(serverThread);
-
- AssertTrue(client_args.return_code);
- AssertTrue(server_args.return_code);
-
- FreeTcpReady(&ready);
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- /* now set user ctx to not be 1 so that the callback returns fail case */
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
- XMEMSET(&server_args, 0, sizeof(func_args));
- XMEMSET(&client_args, 0, sizeof(func_args));
- XMEMSET(&func_cb_client, 0, sizeof(callback_functions));
- XMEMSET(&func_cb_server, 0, sizeof(callback_functions));
-
- StartTCP();
- InitTcpReady(&ready);
-
-#if defined(USE_WINDOWS_API)
- /* use RNG to get random port if using windows */
- ready.port = GetRandomPort();
-#endif
-
- server_args.signal = &ready;
- client_args.signal = &ready;
- server_args.return_code = TEST_FAIL;
- client_args.return_code = TEST_FAIL;
-
- /* set callbacks to use DH functions */
- func_cb_client.ctx_ready = &test_dh_ctx_setup;
- func_cb_client.ssl_ready = &test_dh_ssl_setup_fail;
-#ifndef WOLFSSL_NO_TLS12
- func_cb_client.method = wolfTLSv1_2_client_method;
-#else
- func_cb_client.method = wolfTLSv1_3_client_method;
-#endif
- client_args.callbacks = &func_cb_client;
-
- func_cb_server.ctx_ready = &test_dh_ctx_setup;
- func_cb_server.ssl_ready = &test_dh_ssl_setup_fail;
-#ifndef WOLFSSL_NO_TLS12
- func_cb_server.method = wolfTLSv1_2_server_method;
-#else
- func_cb_server.method = wolfTLSv1_3_server_method;
-#endif
- server_args.callbacks = &func_cb_server;
-
- start_thread(test_server_nofail, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
- test_client_nofail(&client_args, NULL);
- join_thread(serverThread);
-
- AssertIntEQ(client_args.return_code, TEST_FAIL);
- AssertIntEQ(server_args.return_code, TEST_FAIL);
-
- FreeTcpReady(&ready);
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- printf(resultFmt, passed);
-#endif
-}
-#endif /* HAVE_PK_CALLBACKS */
-
-#ifdef HAVE_HASHDRBG
-
-#ifdef TEST_RESEED_INTERVAL
-static int test_wc_RNG_GenerateBlock_Reseed(void)
-{
- int i, ret;
- WC_RNG rng;
- byte key[32];
-
- ret = wc_InitRng(&rng);
-
- if (ret == 0) {
- for(i = 0; i < WC_RESEED_INTERVAL + 10; i++) {
- ret = wc_RNG_GenerateBlock(&rng, key, sizeof(key));
- if (ret != 0) {
- break;
- }
- }
- }
-
- wc_FreeRng(&rng);
-
- return ret;
-}
-#endif /* TEST_RESEED_INTERVAL */
-
-static int test_wc_RNG_GenerateBlock(void)
-{
- int i, ret;
- WC_RNG rng;
- byte key[32];
-
- ret = wc_InitRng(&rng);
-
- if (ret == 0) {
- for(i = 0; i < 10; i++) {
- ret = wc_RNG_GenerateBlock(&rng, key, sizeof(key));
- if (ret != 0) {
- break;
- }
- }
- }
-
- wc_FreeRng(&rng);
-
- (void)rng; /* for WC_NO_RNG case */
- (void)key;
-
- return ret;
-}
-#endif
-
-static void test_wolfSSL_X509_CRL(void)
-{
-#if defined(OPENSSL_EXTRA) && defined(HAVE_CRL)
-
- X509_CRL *crl;
- char pem[][100] = {
- "./certs/crl/crl.pem",
- "./certs/crl/crl2.pem",
- "./certs/crl/caEccCrl.pem",
- "./certs/crl/eccCliCRL.pem",
- "./certs/crl/eccSrvCRL.pem",
- ""
- };
- BIO *bio;
-
-#ifdef HAVE_TEST_d2i_X509_CRL_fp
- char der[][100] = {
- "./certs/crl/crl.der",
- "./certs/crl/crl2.der",
- ""};
-#endif
-
- XFILE fp;
- int i;
-
- printf(testingFmt, "test_wolfSSL_X509_CRL");
-
- for (i = 0; pem[i][0] != '\0'; i++)
- {
- fp = XFOPEN(pem[i], "rb");
- AssertTrue((fp != XBADFILE));
- AssertNotNull(crl = (X509_CRL *)PEM_read_X509_CRL(fp, (X509_CRL **)NULL, NULL, NULL));
- AssertNotNull(crl);
- X509_CRL_free(crl);
- XFCLOSE(fp);
- fp = XFOPEN(pem[i], "rb");
- AssertTrue((fp != XBADFILE));
- AssertNotNull((X509_CRL *)PEM_read_X509_CRL(fp, (X509_CRL **)&crl, NULL, NULL));
- AssertNotNull(crl);
- X509_CRL_free(crl);
- XFCLOSE(fp);
- }
-
- for (i = 0; pem[i][0] != '\0'; i++)
- {
- AssertNotNull(bio = BIO_new_file(pem[i], "r"));
- AssertNotNull(crl = PEM_read_bio_X509_CRL(bio, NULL, NULL, NULL));
- X509_CRL_free(crl);
- BIO_free(bio);
- }
-
-#ifdef HAVE_TEST_d2i_X509_CRL_fp
- for(i = 0; der[i][0] != '\0'; i++){
- fp = XFOPEN(der[i], "rb");
- AssertTrue((fp != XBADFILE));
- AssertNotNull(crl = (X509_CRL *)d2i_X509_CRL_fp((fp, X509_CRL **)NULL));
- AssertNotNull(crl);
- X509_CRL_free(crl);
- XFCLOSE(fp);
- fp = XFOPEN(der[i], "rb");
- AssertTrue((fp != XBADFILE));
- AssertNotNull((X509_CRL *)d2i_X509_CRL_fp(fp, (X509_CRL **)&crl));
- AssertNotNull(crl);
- X509_CRL_free(crl);
- XFCLOSE(fp);
- }
-#endif
-
- printf(resultFmt, passed);
-#endif
- return;
-}
-
-static void test_wolfSSL_PEM_read_X509(void)
-{
-#if defined(OPENSSL_EXTRA) && defined(HAVE_CRL) && !defined(NO_FILESYSTEM) && \
- !defined(NO_RSA)
- X509 *x509 = NULL;
- XFILE fp;
-
- printf(testingFmt, "wolfSSL_PEM_read_X509");
- fp = XFOPEN(svrCertFile, "rb");
- AssertTrue((fp != XBADFILE));
- AssertNotNull(x509 = (X509 *)PEM_read_X509(fp, (X509 **)NULL, NULL, NULL));
- X509_free(x509);
- XFCLOSE(fp);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_PEM_read(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM)
- const char* filename = "./certs/server-keyEnc.pem";
- XFILE fp;
- char* name = NULL;
- char* header = NULL;
- byte* data = NULL;
- long len;
- EVP_CIPHER_INFO cipher;
- WOLFSSL_BIO* bio;
- byte* fileData;
- size_t fileDataSz;
- byte* out;
-
- printf(testingFmt, "wolfSSL_PEM_read");
- fp = XFOPEN(filename, "rb");
- AssertTrue((fp != XBADFILE));
-
- /* Fail cases. */
- AssertIntEQ(PEM_read(fp, NULL, &header, &data, &len), WOLFSSL_FAILURE);
- AssertIntEQ(PEM_read(fp, &name, NULL, &data, &len), WOLFSSL_FAILURE);
- AssertIntEQ(PEM_read(fp, &name, &header, NULL, &len), WOLFSSL_FAILURE);
- AssertIntEQ(PEM_read(fp, &name, &header, &data, NULL), WOLFSSL_FAILURE);
-
- AssertIntEQ(PEM_read(fp, &name, &header, &data, &len), WOLFSSL_SUCCESS);
-
- AssertIntEQ(XSTRNCMP(name, "RSA PRIVATE KEY", 15), 0);
- AssertIntGT(XSTRLEN(header), 0);
- AssertIntGT(len, 0);
-
- AssertIntEQ(XFSEEK(fp, 0, SEEK_END), 0);
- AssertIntGT((fileDataSz = XFTELL(fp)), 0);
- AssertIntEQ(XFSEEK(fp, 0, SEEK_SET), 0);
- AssertNotNull(fileData = (unsigned char*)XMALLOC(fileDataSz, NULL,
- DYNAMIC_TYPE_TMP_BUFFER));
- AssertIntEQ(XFREAD(fileData, 1, fileDataSz, fp), fileDataSz);
- XFCLOSE(fp);
-
- AssertNotNull(bio = wolfSSL_BIO_new(wolfSSL_BIO_s_mem()));
-
- /* Fail cases. */
- AssertIntEQ(PEM_write_bio(NULL, name, header, data, len), 0);
- AssertIntEQ(PEM_write_bio(bio, NULL, header, data, len), 0);
- AssertIntEQ(PEM_write_bio(bio, name, NULL, data, len), 0);
- AssertIntEQ(PEM_write_bio(bio, name, header, NULL, len), 0);
-
- AssertIntEQ(PEM_write_bio(bio, name, header, data, len), fileDataSz);
- AssertIntEQ(wolfSSL_BIO_get_mem_data(bio, &out), fileDataSz);
- AssertIntEQ(XMEMCMP(out, fileData, fileDataSz), 0);
-
- /* Fail cases. */
- AssertIntEQ(PEM_get_EVP_CIPHER_INFO(NULL, &cipher), WOLFSSL_FAILURE);
- AssertIntEQ(PEM_get_EVP_CIPHER_INFO(header, NULL), WOLFSSL_FAILURE);
- AssertIntEQ(PEM_get_EVP_CIPHER_INFO((char*)"", &cipher), WOLFSSL_FAILURE);
-
-#ifndef NO_DES3
- AssertIntEQ(PEM_get_EVP_CIPHER_INFO(header, &cipher), WOLFSSL_SUCCESS);
-#endif
-
- /* Fail cases. */
- AssertIntEQ(PEM_do_header(&cipher, NULL, &len, PasswordCallBack,
- (void*)"yassl123"), WOLFSSL_FAILURE);
- AssertIntEQ(PEM_do_header(&cipher, data, NULL, PasswordCallBack,
- (void*)"yassl123"), WOLFSSL_FAILURE);
- AssertIntEQ(PEM_do_header(&cipher, data, &len, NULL,
- (void*)"yassl123"), WOLFSSL_FAILURE);
-
-#if !defined(NO_DES3) && !defined(NO_MD5)
- AssertIntEQ(PEM_do_header(&cipher, data, &len, PasswordCallBack,
- (void*)"yassl123"), WOLFSSL_SUCCESS);
-#endif
-
- BIO_free(bio);
- XFREE(fileData, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(name, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(header, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
-
- name = NULL;
- header = NULL;
- data = NULL;
- fp = XFOPEN(svrKeyFile, "rb");
- AssertTrue((fp != XBADFILE));
- AssertIntEQ(PEM_read(fp, &name, &header, &data, &len), WOLFSSL_SUCCESS);
- AssertIntEQ(XSTRNCMP(name, "RSA PRIVATE KEY", 15), 0);
- AssertIntEQ(XSTRLEN(header), 0);
- AssertIntGT(len, 0);
-
- AssertIntEQ(XFSEEK(fp, 0, SEEK_END), 0);
- AssertIntGT((fileDataSz = XFTELL(fp)), 0);
- AssertIntEQ(XFSEEK(fp, 0, SEEK_SET), 0);
- AssertNotNull(fileData = (unsigned char*)XMALLOC(fileDataSz, NULL,
- DYNAMIC_TYPE_TMP_BUFFER));
- AssertIntEQ(XFREAD(fileData, 1, fileDataSz, fp), fileDataSz);
- XFCLOSE(fp);
-
- AssertNotNull(bio = wolfSSL_BIO_new(wolfSSL_BIO_s_mem()));
- AssertIntEQ(PEM_write_bio(bio, name, header, data, len), fileDataSz);
- AssertIntEQ(wolfSSL_BIO_get_mem_data(bio, &out), fileDataSz);
- AssertIntEQ(XMEMCMP(out, fileData, fileDataSz), 0);
-
- BIO_free(bio);
- XFREE(fileData, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(name, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(header, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfssl_EVP_aes_gcm(void)
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_AES) && defined(HAVE_AESGCM) && \
- !defined(HAVE_SELFTEST) && !defined(HAVE_FIPS)
-
- /* A 256 bit key, AES_128 will use the first 128 bit*/
- byte *key = (byte*)"01234567890123456789012345678901";
- /* A 128 bit IV */
- byte *iv = (byte*)"0123456789012345";
- int ivSz = AES_BLOCK_SIZE;
- /* Message to be encrypted */
- byte *plaintxt = (byte*)"for things to change you have to change";
- /* Additional non-confidential data */
- byte *aad = (byte*)"Don't spend major time on minor things.";
-
- unsigned char tag[AES_BLOCK_SIZE] = {0};
- int plaintxtSz = (int)XSTRLEN((char*)plaintxt);
- int aadSz = (int)XSTRLEN((char*)aad);
- byte ciphertxt[AES_BLOCK_SIZE * 4] = {0};
- byte decryptedtxt[AES_BLOCK_SIZE * 4] = {0};
- int ciphertxtSz = 0;
- int decryptedtxtSz = 0;
- int len = 0;
- int i = 0;
- EVP_CIPHER_CTX en[2];
- EVP_CIPHER_CTX de[2];
-
- printf(testingFmt, "wolfssl_EVP_aes_gcm");
-
- for (i = 0; i < 2; i++) {
-
- EVP_CIPHER_CTX_init(&en[i]);
-
- if (i == 0) {
- /* Default uses 96-bits IV length */
-#ifdef WOLFSSL_AES_128
- AssertIntEQ(1, EVP_EncryptInit_ex(&en[i], EVP_aes_128_gcm(), NULL, key, iv));
-#elif defined(WOLFSSL_AES_192)
- AssertIntEQ(1, EVP_EncryptInit_ex(&en[i], EVP_aes_192_gcm(), NULL, key, iv));
-#elif defined(WOLFSSL_AES_256)
- AssertIntEQ(1, EVP_EncryptInit_ex(&en[i], EVP_aes_256_gcm(), NULL, key, iv));
-#endif
- }
- else {
-#ifdef WOLFSSL_AES_128
- AssertIntEQ(1, EVP_EncryptInit_ex(&en[i], EVP_aes_128_gcm(), NULL, NULL, NULL));
-#elif defined(WOLFSSL_AES_192)
- AssertIntEQ(1, EVP_EncryptInit_ex(&en[i], EVP_aes_192_gcm(), NULL, NULL, NULL));
-#elif defined(WOLFSSL_AES_256)
- AssertIntEQ(1, EVP_EncryptInit_ex(&en[i], EVP_aes_256_gcm(), NULL, NULL, NULL));
-#endif
- /* non-default must to set the IV length first */
- AssertIntEQ(1, EVP_CIPHER_CTX_ctrl(&en[i], EVP_CTRL_GCM_SET_IVLEN, ivSz, NULL));
- AssertIntEQ(1, EVP_EncryptInit_ex(&en[i], NULL, NULL, key, iv));
- }
- AssertIntEQ(1, EVP_EncryptUpdate(&en[i], NULL, &len, aad, aadSz));
- AssertIntEQ(1, EVP_EncryptUpdate(&en[i], ciphertxt, &len, plaintxt, plaintxtSz));
- ciphertxtSz = len;
- AssertIntEQ(1, EVP_EncryptFinal_ex(&en[i], ciphertxt, &len));
- ciphertxtSz += len;
- AssertIntEQ(1, EVP_CIPHER_CTX_ctrl(&en[i], EVP_CTRL_GCM_GET_TAG, AES_BLOCK_SIZE, tag));
-
- EVP_CIPHER_CTX_init(&de[i]);
- if (i == 0) {
- /* Default uses 96-bits IV length */
-#ifdef WOLFSSL_AES_128
- AssertIntEQ(1, EVP_DecryptInit_ex(&de[i], EVP_aes_128_gcm(), NULL, key, iv));
-#elif defined(WOLFSSL_AES_192)
- AssertIntEQ(1, EVP_DecryptInit_ex(&de[i], EVP_aes_192_gcm(), NULL, key, iv));
-#elif defined(WOLFSSL_AES_256)
- AssertIntEQ(1, EVP_DecryptInit_ex(&de[i], EVP_aes_256_gcm(), NULL, key, iv));
-#endif
- }
- else {
-#ifdef WOLFSSL_AES_128
- AssertIntEQ(1, EVP_DecryptInit_ex(&de[i], EVP_aes_128_gcm(), NULL, NULL, NULL));
-#elif defined(WOLFSSL_AES_192)
- AssertIntEQ(1, EVP_DecryptInit_ex(&de[i], EVP_aes_192_gcm(), NULL, NULL, NULL));
-#elif defined(WOLFSSL_AES_256)
- AssertIntEQ(1, EVP_DecryptInit_ex(&de[i], EVP_aes_256_gcm(), NULL, NULL, NULL));
-#endif
- /* non-default must to set the IV length first */
- AssertIntEQ(1, EVP_CIPHER_CTX_ctrl(&de[i], EVP_CTRL_GCM_SET_IVLEN, ivSz, NULL));
- AssertIntEQ(1, EVP_DecryptInit_ex(&de[i], NULL, NULL, key, iv));
-
- }
- AssertIntEQ(1, EVP_DecryptUpdate(&de[i], NULL, &len, aad, aadSz));
- AssertIntEQ(1, EVP_CIPHER_CTX_ctrl(&de[i], EVP_CTRL_GCM_SET_TAG, AES_BLOCK_SIZE, tag));
- AssertIntEQ(1, EVP_DecryptUpdate(&de[i], decryptedtxt, &len, ciphertxt, ciphertxtSz));
- decryptedtxtSz = len;
- AssertIntGT(EVP_DecryptFinal_ex(&de[i], decryptedtxt, &len), 0);
- decryptedtxtSz += len;
- AssertIntEQ(ciphertxtSz, decryptedtxtSz);
- AssertIntEQ(0, XMEMCMP(plaintxt, decryptedtxt, decryptedtxtSz));
-
- /* modify tag*/
- tag[AES_BLOCK_SIZE-1]+=0xBB;
- AssertIntEQ(1, EVP_DecryptUpdate(&de[i], NULL, &len, aad, aadSz));
- AssertIntEQ(1, EVP_CIPHER_CTX_ctrl(&de[i], EVP_CTRL_GCM_SET_TAG, AES_BLOCK_SIZE, tag));
- /* fail due to wrong tag */
- AssertIntEQ(0, EVP_DecryptUpdate(&de[i], decryptedtxt, &len, ciphertxt, ciphertxtSz));
- AssertIntEQ(0, len);
- }
- printf(resultFmt, passed);
-
-#endif /* OPENSSL_EXTRA && !NO_AES && HAVE_AESGCM */
-}
-
-static void test_wolfSSL_PEM_X509_INFO_read_bio(void)
-{
-#if defined(OPENSSL_ALL) && !defined(NO_FILESYSTEM)
- BIO* bio;
- X509_INFO* info;
- STACK_OF(X509_INFO)* sk;
- char* subject;
- char exp1[] = "/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com";
- char exp2[] = "/C=US/ST=Montana/L=Bozeman/O=wolfSSL/OU=Support/CN=www.wolfssl.com/emailAddress=info@wolfssl.com";
-
- printf(testingFmt, "wolfSSL_PEM_X509_INFO_read_bio");
- AssertNotNull(bio = BIO_new(BIO_s_file()));
- AssertIntGT(BIO_read_filename(bio, svrCertFile), 0);
- AssertNotNull(sk = PEM_X509_INFO_read_bio(bio, NULL, NULL, NULL));
- AssertIntEQ(sk_X509_INFO_num(sk), 2);
-
- /* using dereference to maintain testing for Apache port*/
- AssertNotNull(info = sk_X509_INFO_pop(sk));
- AssertNotNull(info->x_pkey);
- AssertNotNull(info->x_pkey->dec_pkey);
- AssertIntEQ(EVP_PKEY_bits(info->x_pkey->dec_pkey), 2048);
- AssertNotNull(subject =
- X509_NAME_oneline(X509_get_subject_name(info->x509), 0, 0));
-
- AssertIntEQ(0, XSTRNCMP(subject, exp1, sizeof(exp1)));
- XFREE(subject, 0, DYNAMIC_TYPE_OPENSSL);
- X509_INFO_free(info);
-
- AssertNotNull(info = sk_X509_INFO_pop(sk));
- AssertNotNull(subject =
- X509_NAME_oneline(X509_get_subject_name(info->x509), 0, 0));
-
- AssertIntEQ(0, XSTRNCMP(subject, exp2, sizeof(exp2)));
- XFREE(subject, 0, DYNAMIC_TYPE_OPENSSL);
- X509_INFO_free(info);
- AssertNull(info = sk_X509_INFO_pop(sk));
-
- sk_X509_INFO_pop_free(sk, X509_INFO_free);
- BIO_free(bio);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_X509_NAME_ENTRY_get_object()
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && !defined(NO_RSA)
- X509 *x509;
- X509_NAME* name;
- int idx = 0;
- X509_NAME_ENTRY *ne;
- ASN1_OBJECT *object = NULL;
-
- printf(testingFmt, "wolfSSL_X509_NAME_ENTRY_get_object");
- x509 = wolfSSL_X509_load_certificate_file(cliCertFile, WOLFSSL_FILETYPE_PEM);
- AssertNotNull(x509);
- name = X509_get_subject_name(x509);
- idx = X509_NAME_get_index_by_NID(name, NID_commonName, -1);
- AssertIntGE(idx, 0);
-
- ne = X509_NAME_get_entry(name, idx);
- AssertNotNull(ne);
- AssertNotNull(object = X509_NAME_ENTRY_get_object(ne));
-
- X509_free(x509);
-
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_ASN1_INTEGER_set()
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_ASN)
- ASN1_INTEGER *a;
- long val;
- int ret;
-
- printf(testingFmt, "wolfSSL_ASN1_INTEGER_set");
-
- a = wolfSSL_ASN1_INTEGER_new();
- val = 0;
- ret = ASN1_INTEGER_set(NULL, val);
- AssertIntEQ(ret, 0);
- wolfSSL_ASN1_INTEGER_free(a);
-
- /* 0 */
- a = wolfSSL_ASN1_INTEGER_new();
- val = 0;
- ret = ASN1_INTEGER_set(a, val);
- AssertIntEQ(ret, 1);
- wolfSSL_ASN1_INTEGER_free(a);
-
- /* 40 */
- a = wolfSSL_ASN1_INTEGER_new();
- val = 40;
- ret = ASN1_INTEGER_set(a, val);
- AssertIntEQ(ret, 1);
- wolfSSL_ASN1_INTEGER_free(a);
-
- /* -40 */
- a = wolfSSL_ASN1_INTEGER_new();
- val = -40;
- ret = ASN1_INTEGER_set(a, val);
- AssertIntEQ(ret, 1);
- AssertIntEQ(a->negative, 1);
- wolfSSL_ASN1_INTEGER_free(a);
-
- /* 128 */
- a = wolfSSL_ASN1_INTEGER_new();
- val = 128;
- ret = ASN1_INTEGER_set(a, val);
- AssertIntEQ(ret, 1);
- wolfSSL_ASN1_INTEGER_free(a);
-
- /* -128 */
- a = wolfSSL_ASN1_INTEGER_new();
- val = -128;
- ret = ASN1_INTEGER_set(a, val);
- AssertIntEQ(ret, 1);
- AssertIntEQ(a->negative, 1);
- wolfSSL_ASN1_INTEGER_free(a);
-
- /* 200 */
- a = wolfSSL_ASN1_INTEGER_new();
- val = 200;
- ret = ASN1_INTEGER_set(a, val);
- AssertIntEQ(ret, 1);
- wolfSSL_ASN1_INTEGER_free(a);
-
-#ifndef TIME_T_NOT_64BIT
- /* 2147483648 */
- a = wolfSSL_ASN1_INTEGER_new();
- val = 2147483648;
- ret = ASN1_INTEGER_set(a, val);
- AssertIntEQ(ret, 1);
- wolfSSL_ASN1_INTEGER_free(a);
-
- /* -2147483648 */
- a = wolfSSL_ASN1_INTEGER_new();
- val = -2147483648;
- ret = ASN1_INTEGER_set(a, val);
- AssertIntEQ(a->negative, 1);
- AssertIntEQ(ret, 1);
- wolfSSL_ASN1_INTEGER_free(a);
-#endif
-
- printf(resultFmt, passed);
-#endif
-}
-
-/* Testing code used in dpp.c in hostap */
-#ifdef OPENSSL_ALL
-typedef struct {
- /* AlgorithmIdentifier ecPublicKey with optional parameters present
- * as an OID identifying the curve */
- X509_ALGOR *alg;
- /* Compressed format public key per ANSI X9.63 */
- ASN1_BIT_STRING *pub_key;
-} DPP_BOOTSTRAPPING_KEY;
-
-ASN1_SEQUENCE(DPP_BOOTSTRAPPING_KEY) = {
- ASN1_SIMPLE(DPP_BOOTSTRAPPING_KEY, alg, X509_ALGOR),
- ASN1_SIMPLE(DPP_BOOTSTRAPPING_KEY, pub_key, ASN1_BIT_STRING)
-} ASN1_SEQUENCE_END(DPP_BOOTSTRAPPING_KEY);
-
-IMPLEMENT_ASN1_FUNCTIONS(DPP_BOOTSTRAPPING_KEY);
-#endif /* WOLFSSL_WPAS */
-
-static void test_wolfSSL_IMPLEMENT_ASN1_FUNCTIONS()
-{
- /* Testing code used in dpp.c in hostap */
-#if defined(OPENSSL_ALL) && defined(HAVE_ECC) && defined(USE_CERT_BUFFERS_256)
- EC_KEY *eckey;
- EVP_PKEY *key;
- size_t len;
- unsigned char *der = NULL;
- DPP_BOOTSTRAPPING_KEY *bootstrap = NULL;
- const unsigned char *in = ecc_clikey_der_256;
- const EC_GROUP *group;
- const EC_POINT *point;
- int nid;
-
- AssertNotNull(bootstrap = DPP_BOOTSTRAPPING_KEY_new());
-
- AssertNotNull(key = d2i_PrivateKey(EVP_PKEY_EC, NULL, &in,
- (long)sizeof_ecc_clikey_der_256));
- AssertNotNull(eckey = EVP_PKEY_get1_EC_KEY(key));
- AssertNotNull(group = EC_KEY_get0_group(eckey));
- AssertNotNull(point = EC_KEY_get0_public_key(eckey));
- nid = EC_GROUP_get_curve_name(group);
-
- AssertIntEQ(X509_ALGOR_set0(bootstrap->alg, OBJ_nid2obj(EVP_PKEY_EC),
- V_ASN1_OBJECT, OBJ_nid2obj(nid)), 1);
-#ifdef HAVE_COMP_KEY
- AssertIntGT((len = EC_POINT_point2oct(group, point, POINT_CONVERSION_COMPRESSED,
- NULL, 0, NULL)), 0);
-#else
- AssertIntGT((len = EC_POINT_point2oct(group, point, POINT_CONVERSION_UNCOMPRESSED,
- NULL, 0, NULL)), 0);
-#endif
- AssertNotNull(der = XMALLOC(len, NULL, DYNAMIC_TYPE_ASN1));
-#ifdef HAVE_COMP_KEY
- AssertIntEQ(EC_POINT_point2oct(group, point, POINT_CONVERSION_COMPRESSED,
- der, len, NULL), len);
-#else
- AssertIntEQ(EC_POINT_point2oct(group, point, POINT_CONVERSION_UNCOMPRESSED,
- der, len, NULL), len);
-#endif
- bootstrap->pub_key->data = der;
- bootstrap->pub_key->length = (int)len;
- /* Not actually used */
- bootstrap->pub_key->flags &= ~(ASN1_STRING_FLAG_BITS_LEFT | 0x07);
- bootstrap->pub_key->flags |= ASN1_STRING_FLAG_BITS_LEFT;
-
- der = NULL;
- AssertIntGT(i2d_DPP_BOOTSTRAPPING_KEY(bootstrap, &der), 0);
-
- XFREE(der, NULL, DYNAMIC_TYPE_ASN1);
- EVP_PKEY_free(key);
- EC_KEY_free(eckey);
- DPP_BOOTSTRAPPING_KEY_free(bootstrap);
-#endif /* WOLFSSL_WPAS && HAVE_ECC && USE_CERT_BUFFERS_256 */
-}
-
-static void test_wolfSSL_i2c_ASN1_INTEGER()
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_ASN)
- ASN1_INTEGER *a;
- unsigned char *pp,*tpp;
- int ret;
-
- printf(testingFmt, "wolfSSL_i2c_ASN1_INTEGER");
-
- a = wolfSSL_ASN1_INTEGER_new();
-
- /* 40 */
- a->intData[0] = ASN_INTEGER;
- a->intData[1] = 1;
- a->intData[2] = 40;
- ret = i2c_ASN1_INTEGER(a, NULL);
- AssertIntEQ(ret, 1);
- AssertNotNull(pp = (unsigned char*)XMALLOC(ret + 1, NULL,
- DYNAMIC_TYPE_TMP_BUFFER));
- tpp = pp;
- XMEMSET(pp, 0, ret + 1);
- i2c_ASN1_INTEGER(a, &pp);
- pp--;
- AssertIntEQ(*pp, 40);
- XFREE(tpp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
-
- /* 128 */
- a->intData[0] = ASN_INTEGER;
- a->intData[1] = 1;
- a->intData[2] = 128;
- ret = wolfSSL_i2c_ASN1_INTEGER(a, NULL);
- AssertIntEQ(ret, 2);
- AssertNotNull(pp = (unsigned char*)XMALLOC(ret + 1, NULL,
- DYNAMIC_TYPE_TMP_BUFFER));
- tpp = pp;
- XMEMSET(pp, 0, ret + 1);
- wolfSSL_i2c_ASN1_INTEGER(a, &pp);
- pp--;
- AssertIntEQ(*(pp--), 128);
- AssertIntEQ(*pp, 0);
- XFREE(tpp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
-
- /* -40 */
- a->intData[0] = ASN_INTEGER;
- a->intData[1] = 1;
- a->intData[2] = 40;
- a->negative = 1;
- ret = wolfSSL_i2c_ASN1_INTEGER(a, NULL);
- AssertIntEQ(ret, 1);
- AssertNotNull(pp = (unsigned char*)XMALLOC(ret + 1, NULL,
- DYNAMIC_TYPE_TMP_BUFFER));
- tpp = pp;
- XMEMSET(pp, 0, ret + 1);
- wolfSSL_i2c_ASN1_INTEGER(a, &pp);
- pp--;
- AssertIntEQ(*pp, 216);
- XFREE(tpp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
-
- /* -128 */
- a->intData[0] = ASN_INTEGER;
- a->intData[1] = 1;
- a->intData[2] = 128;
- a->negative = 1;
- ret = wolfSSL_i2c_ASN1_INTEGER(a, NULL);
- AssertIntEQ(ret, 1);
- AssertNotNull(pp = (unsigned char*)XMALLOC(ret + 1, NULL,
- DYNAMIC_TYPE_TMP_BUFFER));
- tpp = pp;
- XMEMSET(pp, 0, ret + 1);
- wolfSSL_i2c_ASN1_INTEGER(a, &pp);
- pp--;
- AssertIntEQ(*pp, 128);
- XFREE(tpp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
-
- /* -200 */
- a->intData[0] = ASN_INTEGER;
- a->intData[1] = 1;
- a->intData[2] = 200;
- a->negative = 1;
- ret = wolfSSL_i2c_ASN1_INTEGER(a, NULL);
- AssertIntEQ(ret, 2);
- AssertNotNull(pp = (unsigned char*)XMALLOC(ret + 1, NULL,
- DYNAMIC_TYPE_TMP_BUFFER));
- tpp = pp;
- XMEMSET(pp, 0, ret + 1);
- wolfSSL_i2c_ASN1_INTEGER(a, &pp);
- pp--;
- AssertIntEQ(*(pp--), 56);
- AssertIntEQ(*pp, 255);
-
- XFREE(tpp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- wolfSSL_ASN1_INTEGER_free(a);
-
- printf(resultFmt, passed);
-#endif /* OPENSSL_EXTRA && !NO_ASN */
-}
-
-#ifndef NO_INLINE
-#define WOLFSSL_MISC_INCLUDED
-#include <wolfcrypt/src/misc.c>
-#else
-#include <wolfssl/wolfcrypt/misc.h>
-#endif
-
-static int test_ForceZero(void)
-{
- unsigned char data[32];
- unsigned int i, j, len;
-
- /* Test case with 0 length */
- ForceZero(data, 0);
-
- /* Test ForceZero */
- for (i = 0; i < sizeof(data); i++) {
- for (len = 1; len < sizeof(data) - i; len++) {
- for (j = 0; j < sizeof(data); j++)
- data[j] = j + 1;
-
- ForceZero(data + i, len);
-
- for (j = 0; j < sizeof(data); j++) {
- if (j < i || j >= i + len) {
- if (data[j] == 0x00)
- return -10200;
- }
- else if (data[j] != 0x00)
- return -10201;
- }
- }
- }
-
- return 0;
-}
-
-static void test_wolfSSL_X509_print()
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && \
- !defined(NO_RSA) && !defined(HAVE_FAST_RSA) && defined(XSNPRINTF)
- X509 *x509;
- BIO *bio;
-
- printf(testingFmt, "wolfSSL_X509_print");
- x509 = X509_load_certificate_file(svrCertFile, WOLFSSL_FILETYPE_PEM);
- AssertNotNull(x509);
-
- /* print to memory */
- AssertNotNull(bio = BIO_new(BIO_s_mem()));
- AssertIntEQ(X509_print(bio, x509), SSL_SUCCESS);
-
-#if defined(WOLFSSL_QT)
- AssertIntEQ(BIO_get_mem_data(bio, NULL), 3113);
-#else
- AssertIntEQ(BIO_get_mem_data(bio, NULL), 3103);
-#endif
- BIO_free(bio);
-
- /* print to stdout */
- AssertNotNull(bio = BIO_new(BIO_s_file()));
- wolfSSL_BIO_set_fp(bio, stdout, BIO_NOCLOSE);
- AssertIntEQ(X509_print(bio, x509), SSL_SUCCESS);
- BIO_free(bio);
-
- X509_free(x509);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_RSA_print()
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && \
- !defined(NO_RSA) && !defined(HAVE_FAST_RSA) && defined(WOLFSSL_KEY_GEN) && \
- !defined(HAVE_FAST_RSA)
- BIO *bio;
- WOLFSSL_RSA* rsa = NULL;
- printf(testingFmt, "wolfSSL_RSA_print");
-
- AssertNotNull(rsa = RSA_generate_key(2048, 3, NULL, NULL));
- AssertNotNull(bio = wolfSSL_BIO_new(wolfSSL_BIO_s_file()));
- wolfSSL_BIO_set_fp(bio, stdout, BIO_NOCLOSE);
- AssertIntEQ(RSA_print(bio, rsa, 0), SSL_SUCCESS);
-
- BIO_free(bio);
- wolfSSL_RSA_free(rsa);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_BIO_get_len()
-{
-#if defined(OPENSSL_EXTRA)
- BIO *bio;
- const char txt[] = "Some example text to push to the BIO.";
- printf(testingFmt, "wolfSSL_BIO_get_len");
-
- AssertNotNull(bio = wolfSSL_BIO_new(wolfSSL_BIO_s_mem()));
- AssertIntEQ(wolfSSL_BIO_write(bio, txt, sizeof(txt)), sizeof(txt));
- AssertIntEQ(wolfSSL_BIO_get_len(bio), sizeof(txt));
-
- BIO_free(bio);
- printf(resultFmt, passed);
-#endif
-}
-
-static void test_wolfSSL_ASN1_STRING_print(void){
-#if defined(OPENSSL_ALL) && !defined(NO_ASN) && !defined(NO_CERTS)
- ASN1_STRING* asnStr = NULL;
- const char HELLO_DATA[]= \
- {'H','e','l','l','o',' ','w','o','l','f','S','S','L','!'};
- const unsigned int MAX_UNPRINTABLE_CHAR = 32;
- const unsigned int MAX_BUF = 255;
- const int LF = 10, CR = 13;
- unsigned char unprintableData[MAX_UNPRINTABLE_CHAR + sizeof(HELLO_DATA)];
- unsigned char expected[sizeof(unprintableData)+1];
- unsigned char rbuf[MAX_BUF];
-
- BIO *bio;
- int p_len, i;
-
- printf(testingFmt, "wolfSSL_ASN1_STRING_print()");
-
- /* setup */
-
- for (i = 0; i < (int)sizeof(HELLO_DATA); i++) {
- unprintableData[i] = HELLO_DATA[i];
- expected[i] = HELLO_DATA[i];
- }
-
- for (i = 0; i < (int)MAX_UNPRINTABLE_CHAR; i++) {
- unprintableData[sizeof(HELLO_DATA)+i] = i;
-
- if (i == LF || i == CR)
- expected[sizeof(HELLO_DATA)+i] = i;
- else
- expected[sizeof(HELLO_DATA)+i] = '.';
- }
-
- unprintableData[sizeof(unprintableData)-1] = '\0';
- expected[sizeof(expected)-1] = '\0';
-
- XMEMSET(rbuf, 0, MAX_BUF);
- bio = BIO_new(BIO_s_mem());
- BIO_set_write_buf_size(bio, MAX_BUF);
-
- asnStr = ASN1_STRING_type_new(V_ASN1_OCTET_STRING);
- ASN1_STRING_set(asnStr,(const void*)unprintableData,
- sizeof(unprintableData));
- /* test */
- p_len = wolfSSL_ASN1_STRING_print(bio, asnStr);
- AssertIntEQ(p_len, 46);
- BIO_read(bio, (void*)rbuf, 46);
-
- AssertStrEQ((char*)rbuf, (const char*)expected);
-
- BIO_free(bio);
- ASN1_STRING_free(asnStr);
-
- printf(resultFmt, passed);
-#endif /* OPENSSL_EXTRA && !NO_ASN && !NO_CERTS */
-}
-
-static void test_wolfSSL_RSA_verify()
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(HAVE_FAST_RSA) && \
- !defined(NO_FILESYSTEM) && defined(HAVE_CRL)
- XFILE fp;
- RSA *pKey, *pubKey;
- X509 *cert;
- const char *text = "Hello wolfSSL !";
- unsigned char hash[SHA256_DIGEST_LENGTH];
- unsigned char signature[2048/8];
- unsigned int signatureLength;
- byte *buf;
- BIO *bio;
- SHA256_CTX c;
- EVP_PKEY *evpPkey, *evpPubkey;
- size_t sz;
-
- printf(testingFmt, "wolfSSL_RSA_verify");
-
- /* generate hash */
- SHA256_Init(&c);
- SHA256_Update(&c, text, strlen(text));
- SHA256_Final(hash, &c);
-
- /* read privete key file */
- fp = XFOPEN(svrKeyFile, "r");
- AssertTrue((fp != XBADFILE));
- XFSEEK(fp, 0, XSEEK_END);
- sz = XFTELL(fp);
- XREWIND(fp);
- AssertNotNull(buf = (byte*)XMALLOC(sz, NULL, DYNAMIC_TYPE_FILE));
- AssertIntEQ(XFREAD(buf, 1, sz, fp), sz);
- XFCLOSE(fp);
-
- /* read private key and sign hash data */
- AssertNotNull(bio = BIO_new_mem_buf(buf, (int)sz));
- AssertNotNull(evpPkey = PEM_read_bio_PrivateKey(bio, NULL, NULL, NULL));
- AssertNotNull(pKey = EVP_PKEY_get1_RSA(evpPkey));
- AssertIntEQ(RSA_sign(NID_sha256, hash, SHA256_DIGEST_LENGTH,
- signature, &signatureLength, pKey), SSL_SUCCESS);
-
- /* read public key and verify signed data */
- fp = XFOPEN(svrCertFile,"r");
- AssertTrue((fp != XBADFILE));
- cert = PEM_read_X509(fp, 0, 0, 0 );
- XFCLOSE(fp);
- evpPubkey = X509_get_pubkey(cert);
- pubKey = EVP_PKEY_get1_RSA(evpPubkey);
- AssertIntEQ(RSA_verify(NID_sha256, hash, SHA256_DIGEST_LENGTH, signature,
- signatureLength, pubKey), SSL_SUCCESS);
-
- RSA_free(pKey);
- EVP_PKEY_free(evpPkey);
- RSA_free(pubKey);
- EVP_PKEY_free(evpPubkey);
- X509_free(cert);
- BIO_free(bio);
- XFREE(buf, NULL, DYNAMIC_TYPE_FILE);
- printf(resultFmt, passed);
-#endif
-}
-
-
-#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
- defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_REQ)
-static void test_openssl_make_self_signed_certificate(EVP_PKEY* pkey)
-{
- X509* x509 = NULL;
- BIGNUM* serial_number = NULL;
- X509_NAME* name = NULL;
- time_t epoch_off = 0;
- ASN1_INTEGER* asn1_serial_number;
- long not_before, not_after;
-
- AssertNotNull(x509 = X509_new());
-
- AssertIntNE(X509_set_pubkey(x509, pkey), 0);
-
- AssertNotNull(serial_number = BN_new());
- AssertIntNE(BN_pseudo_rand(serial_number, 64, 0, 0), 0);
- AssertNotNull(asn1_serial_number = X509_get_serialNumber(x509));
- AssertNotNull(BN_to_ASN1_INTEGER(serial_number, asn1_serial_number));
-
- /* version 3 */
- AssertIntNE(X509_set_version(x509, 2L), 0);
-
- AssertNotNull(name = X509_NAME_new());
-
- AssertIntNE(X509_NAME_add_entry_by_NID(name, NID_commonName, MBSTRING_UTF8,
- (unsigned char*)"www.wolfssl.com", -1, -1, 0), 0);
-
- AssertIntNE(X509_set_subject_name(x509, name), 0);
- AssertIntNE(X509_set_issuer_name(x509, name), 0);
-
- not_before = (long)XTIME(NULL);
- not_after = not_before + (365 * 24 * 60 * 60);
- AssertNotNull(X509_time_adj(X509_get_notBefore(x509), not_before, &epoch_off));
- AssertNotNull(X509_time_adj(X509_get_notAfter(x509), not_after, &epoch_off));
-
- AssertIntNE(X509_sign(x509, pkey, EVP_sha256()), 0);
-
- BN_free(serial_number);
- X509_NAME_free(name);
- X509_free(x509);
-}
-#endif
-
-static void test_openssl_generate_key_and_cert(void)
-{
-#if defined(OPENSSL_EXTRA)
-#if !defined(NO_RSA)
- {
- EVP_PKEY* pkey = EVP_PKEY_new();
- int key_length = 2048;
- BIGNUM* exponent = BN_new();
- RSA* rsa = RSA_new();
-
- AssertNotNull(pkey);
- AssertNotNull(exponent);
- AssertNotNull(rsa);
-
- AssertIntNE(BN_set_word(exponent, WC_RSA_EXPONENT), 0);
- #ifndef WOLFSSL_KEY_GEN
- AssertIntEQ(RSA_generate_key_ex(rsa, key_length, exponent, NULL), WOLFSSL_FAILURE);
-
- #if defined(USE_CERT_BUFFERS_1024)
- AssertIntNE(wolfSSL_RSA_LoadDer_ex(rsa, server_key_der_1024,
- sizeof_server_key_der_1024, WOLFSSL_RSA_LOAD_PRIVATE), 0);
- key_length = 1024;
- #elif defined(USE_CERT_BUFFERS_2048)
- AssertIntNE(wolfSSL_RSA_LoadDer_ex(rsa, server_key_der_2048,
- sizeof_server_key_der_2048, WOLFSSL_RSA_LOAD_PRIVATE), 0);
- #else
- RSA_free(rsa);
- rsa = NULL;
- #endif
- #else
- AssertIntNE(RSA_generate_key_ex(rsa, key_length, exponent, NULL), 0);
- #endif
-
- if (rsa) {
- AssertIntNE(EVP_PKEY_assign_RSA(pkey, rsa), 0);
-
- BN_free(exponent);
-
- #if !defined(NO_CERTS) && defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_REQ)
- test_openssl_make_self_signed_certificate(pkey);
- #endif
- }
-
- EVP_PKEY_free(pkey);
- }
-#endif /* !NO_RSA */
-
-#ifdef HAVE_ECC
- {
- EVP_PKEY* pkey = EVP_PKEY_new();
- EC_KEY* ec_key = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
-
- AssertNotNull(pkey);
- AssertNotNull(ec_key);
-
- #ifndef NO_WOLFSSL_STUB
- EC_KEY_set_asn1_flag(ec_key, OPENSSL_EC_NAMED_CURVE);
- #endif
-
- AssertIntNE(EC_KEY_generate_key(ec_key), 0);
- AssertIntNE(EVP_PKEY_assign_EC_KEY(pkey, ec_key), 0);
-
- #if !defined(NO_CERTS) && defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_REQ)
- test_openssl_make_self_signed_certificate(pkey);
- #endif
-
- EVP_PKEY_free(pkey);
- }
-#endif /* HAVE_ECC */
-#endif /* OPENSSL_EXTRA */
-}
-
-static void test_stubs_are_stubs()
-{
-#if defined(OPENSSL_EXTRA) && !defined(NO_WOLFSSL_STUB)
- WOLFSSL_CTX* ctx = NULL;
- WOLFSSL_CTX* ctxN = NULL;
- #ifndef NO_WOLFSSL_CLIENT
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
- #elif !defined(NO_WOLFSSL_SERVER)
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
- #else
- return;
- #endif
-
- #define CHECKZERO_RET(x, y, z) AssertIntEQ((int) x(y), 0); \
- AssertIntEQ((int) x(z), 0)
- /* test logic, all stubs return same result regardless of ctx being NULL
- * as there are no sanity checks, it's just a stub! If at some
- * point a stub is not a stub it should begin to return BAD_FUNC_ARG
- * if invalid inputs are supplied. Test calling both
- * with and without valid inputs, if a stub functionality remains unchanged.
- */
- CHECKZERO_RET(wolfSSL_CTX_sess_accept, ctx, ctxN);
- CHECKZERO_RET(wolfSSL_CTX_sess_connect, ctx, ctxN);
- CHECKZERO_RET(wolfSSL_CTX_sess_accept_good, ctx, ctxN);
- CHECKZERO_RET(wolfSSL_CTX_sess_connect_good, ctx, ctxN);
- CHECKZERO_RET(wolfSSL_CTX_sess_accept_renegotiate, ctx, ctxN);
- CHECKZERO_RET(wolfSSL_CTX_sess_connect_renegotiate, ctx, ctxN);
- CHECKZERO_RET(wolfSSL_CTX_sess_hits, ctx, ctxN);
- CHECKZERO_RET(wolfSSL_CTX_sess_cb_hits, ctx, ctxN);
- CHECKZERO_RET(wolfSSL_CTX_sess_cache_full, ctx, ctxN);
- CHECKZERO_RET(wolfSSL_CTX_sess_misses, ctx, ctxN);
- CHECKZERO_RET(wolfSSL_CTX_sess_timeouts, ctx, ctxN);
- wolfSSL_CTX_free(ctx);
- ctx = NULL;
-#endif /* OPENSSL_EXTRA && !NO_WOLFSSL_STUB */
-}
-
-static void test_wolfSSL_CTX_LoadCRL()
-{
-#ifdef HAVE_CRL
- WOLFSSL_CTX* ctx = NULL;
- const char* badPath = "dummypath";
- const char* validPath = "./certs/crl";
- int derType = WOLFSSL_FILETYPE_ASN1;
- int rawType = WOLFSSL_FILETYPE_RAW;
- int pemType = WOLFSSL_FILETYPE_PEM;
- int monitor = WOLFSSL_CRL_MONITOR;
-
- #define FAIL_T1(x, y, z, p, d) AssertIntEQ((int) x(y, z, p, d), \
- BAD_FUNC_ARG)
- #define SUCC_T(x, y, z, p, d) AssertIntEQ((int) x(y, z, p, d), \
- WOLFSSL_SUCCESS)
-
- FAIL_T1(wolfSSL_CTX_LoadCRL, ctx, validPath, pemType, monitor);
-
- #ifndef NO_WOLFSSL_CLIENT
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
- #elif !defined(NO_WOLFSSL_SERVER)
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()));
- #else
- return;
- #endif
-
- SUCC_T (wolfSSL_CTX_LoadCRL, ctx, validPath, pemType, monitor);
- SUCC_T (wolfSSL_CTX_LoadCRL, ctx, badPath, pemType, monitor);
- SUCC_T (wolfSSL_CTX_LoadCRL, ctx, badPath, derType, monitor);
- SUCC_T (wolfSSL_CTX_LoadCRL, ctx, badPath, rawType, monitor);
-
- wolfSSL_CTX_free(ctx);
- ctx = NULL;
-#endif
-}
-
-static void test_SetTmpEC_DHE_Sz(void)
-{
-#if defined(HAVE_ECC) && !defined(NO_WOLFSSL_CLIENT)
- WOLFSSL_CTX *ctx;
- WOLFSSL *ssl;
-
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfSSLv23_client_method()));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_CTX_SetTmpEC_DHE_Sz(ctx, 32));
- AssertNotNull(ssl = wolfSSL_new(ctx));
- AssertIntEQ(WOLFSSL_SUCCESS, wolfSSL_SetTmpEC_DHE_Sz(ssl, 32));
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-#endif
-}
-
-static void test_wolfSSL_dtls_set_mtu(void)
-{
-#if (defined(WOLFSSL_DTLS_MTU) || defined(WOLFSSL_SCTP)) && \
- defined(WOLFSSL_DTLS)
- WOLFSSL_CTX* ctx = NULL;
- WOLFSSL* ssl = NULL;
- const char* testCertFile;
- const char* testKeyFile;
-
- AssertNotNull(ctx = wolfSSL_CTX_new(wolfDTLSv1_2_server_method()));
-#ifndef NO_RSA
- testCertFile = svrCertFile;
- testKeyFile = svrKeyFile;
-#elif defined(HAVE_ECC)
- testCertFile = eccCertFile;
- testKeyFile = eccKeyFile;
-#endif
- if (testCertFile != NULL && testKeyFile != NULL) {
- AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, testCertFile,
- WOLFSSL_FILETYPE_PEM));
- AssertTrue(wolfSSL_CTX_use_PrivateKey_file(ctx, testKeyFile,
- WOLFSSL_FILETYPE_PEM));
- }
- AssertNotNull(ssl = wolfSSL_new(ctx));
-
- AssertIntEQ(wolfSSL_CTX_dtls_set_mtu(NULL, 1488), BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_dtls_set_mtu(NULL, 1488), BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_CTX_dtls_set_mtu(ctx, 20000), BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_dtls_set_mtu(ssl, 20000), WOLFSSL_FAILURE);
- AssertIntEQ(wolfSSL_get_error(ssl, WOLFSSL_FAILURE), BAD_FUNC_ARG);
- AssertIntEQ(wolfSSL_CTX_dtls_set_mtu(ctx, 1488), WOLFSSL_SUCCESS);
- AssertIntEQ(wolfSSL_dtls_set_mtu(ssl, 1488), WOLFSSL_SUCCESS);
-
- wolfSSL_free(ssl);
- wolfSSL_CTX_free(ctx);
-
- printf(testingFmt, "wolfSSL_dtls_set_mtu()");
- printf(resultFmt, passed);
-#endif
-}
-
-#if !defined(NO_RSA) && !defined(NO_SHA) && !defined(NO_FILESYSTEM) && \
- !defined(NO_CERTS)
-static int load_ca_into_cm(WOLFSSL_CERT_MANAGER* cm, char* certA)
-{
- int ret;
-
- if ((ret = wolfSSL_CertManagerLoadCA(cm, certA, 0)) != WOLFSSL_SUCCESS) {
- printf("loading cert %s failed\n", certA);
- printf("Error: (%d): %s\n", ret, wolfSSL_ERR_reason_error_string(ret));
- return -1;
- }
-
- return 0;
-}
-
-static int verify_cert_with_cm(WOLFSSL_CERT_MANAGER* cm, char* certA)
-{
- int ret;
- if ((ret = wolfSSL_CertManagerVerify(cm, certA, WOLFSSL_FILETYPE_PEM))
- != WOLFSSL_SUCCESS) {
- printf("could not verify the cert: %s\n", certA);
- printf("Error: (%d): %s\n", ret, wolfSSL_ERR_reason_error_string(ret));
- return -1;
- } else {
- printf("successfully verified: %s\n", certA);
- }
-
- return 0;
-}
-#define LOAD_ONE_CA(a, b, c, d) \
- do { \
- a = load_ca_into_cm(c, d); \
- if (a != 0) \
- return b; \
- else \
- b--; \
- } while(0)
-
-#define VERIFY_ONE_CERT(a, b, c, d) \
- do { \
- a = verify_cert_with_cm(c, d); \
- if (a != 0) \
- return b; \
- else \
- b--; \
- } while(0)
-
-static int test_chainG(WOLFSSL_CERT_MANAGER* cm)
-{
- int ret;
- int i = -1;
- /* Chain G is a valid chain per RFC 5280 section 4.2.1.9 */
- char chainGArr[9][50] = {"certs/ca-cert.pem",
- "certs/test-pathlen/chainG-ICA7-pathlen100.pem",
- "certs/test-pathlen/chainG-ICA6-pathlen10.pem",
- "certs/test-pathlen/chainG-ICA5-pathlen20.pem",
- "certs/test-pathlen/chainG-ICA4-pathlen5.pem",
- "certs/test-pathlen/chainG-ICA3-pathlen99.pem",
- "certs/test-pathlen/chainG-ICA2-pathlen1.pem",
- "certs/test-pathlen/chainG-ICA1-pathlen0.pem",
- "certs/test-pathlen/chainG-entity.pem"};
-
- LOAD_ONE_CA(ret, i, cm, chainGArr[0]); /* if failure, i = -1 here */
- LOAD_ONE_CA(ret, i, cm, chainGArr[1]); /* if failure, i = -2 here */
- LOAD_ONE_CA(ret, i, cm, chainGArr[2]); /* if failure, i = -3 here */
- LOAD_ONE_CA(ret, i, cm, chainGArr[3]); /* if failure, i = -4 here */
- LOAD_ONE_CA(ret, i, cm, chainGArr[4]); /* if failure, i = -5 here */
- LOAD_ONE_CA(ret, i, cm, chainGArr[5]); /* if failure, i = -6 here */
- LOAD_ONE_CA(ret, i, cm, chainGArr[6]); /* if failure, i = -7 here */
- LOAD_ONE_CA(ret, i, cm, chainGArr[7]); /* if failure, i = -8 here */
- VERIFY_ONE_CERT(ret, i, cm, chainGArr[1]); /* if failure, i = -9 here */
- VERIFY_ONE_CERT(ret, i, cm, chainGArr[2]); /* if failure, i = -10 here */
- VERIFY_ONE_CERT(ret, i, cm, chainGArr[3]); /* if failure, i = -11 here */
- VERIFY_ONE_CERT(ret, i, cm, chainGArr[4]); /* if failure, i = -12 here */
- VERIFY_ONE_CERT(ret, i, cm, chainGArr[5]); /* if failure, i = -13 here */
- VERIFY_ONE_CERT(ret, i, cm, chainGArr[6]); /* if failure, i = -14 here */
- VERIFY_ONE_CERT(ret, i, cm, chainGArr[7]); /* if failure, i = -15 here */
- VERIFY_ONE_CERT(ret, i, cm, chainGArr[8]); /* if failure, i = -16 here */
-
-/* test validating the entity twice, should have no effect on pathLen since
- * entity/leaf cert */
- VERIFY_ONE_CERT(ret, i, cm, chainGArr[8]); /* if failure, i = -17 here */
-
- return ret;
-}
-
-static int test_chainH(WOLFSSL_CERT_MANAGER* cm)
-{
- int ret;
- int i = -1;
- /* Chain H is NOT a valid chain per RFC5280 section 4.2.1.9:
- * ICA4-pathlen of 2 signing ICA3-pathlen of 2 (reduce max path len to 2)
- * ICA3-pathlen of 2 signing ICA2-pathlen of 2 (reduce max path len to 1)
- * ICA2-pathlen of 2 signing ICA1-pathlen of 0 (reduce max path len to 0)
- * ICA1-pathlen of 0 signing entity (pathlen is already 0, ERROR)
- * Test should successfully verify ICA4, ICA3, ICA2 and then fail on ICA1
- */
- char chainHArr[6][50] = {"certs/ca-cert.pem",
- "certs/test-pathlen/chainH-ICA4-pathlen2.pem",
- "certs/test-pathlen/chainH-ICA3-pathlen2.pem",
- "certs/test-pathlen/chainH-ICA2-pathlen2.pem",
- "certs/test-pathlen/chainH-ICA1-pathlen0.pem",
- "certs/test-pathlen/chainH-entity.pem"};
-
- LOAD_ONE_CA(ret, i, cm, chainHArr[0]); /* if failure, i = -1 here */
- LOAD_ONE_CA(ret, i, cm, chainHArr[1]); /* if failure, i = -2 here */
- LOAD_ONE_CA(ret, i, cm, chainHArr[2]); /* if failure, i = -3 here */
- LOAD_ONE_CA(ret, i, cm, chainHArr[3]); /* if failure, i = -4 here */
- LOAD_ONE_CA(ret, i, cm, chainHArr[4]); /* if failure, i = -5 here */
- VERIFY_ONE_CERT(ret, i, cm, chainHArr[1]); /* if failure, i = -6 here */
- VERIFY_ONE_CERT(ret, i, cm, chainHArr[2]); /* if failure, i = -7 here */
- VERIFY_ONE_CERT(ret, i, cm, chainHArr[3]); /* if failure, i = -8 here */
- VERIFY_ONE_CERT(ret, i, cm, chainHArr[4]); /* if failure, i = -9 here */
- VERIFY_ONE_CERT(ret, i, cm, chainHArr[5]); /* if failure, i = -10 here */
-
- return ret;
-}
-
-static int test_chainI(WOLFSSL_CERT_MANAGER* cm)
-{
- int ret;
- int i = -1;
- /* Chain I is a valid chain per RFC5280 section 4.2.1.9:
- * ICA3-pathlen of 2 signing ICA2 without a pathlen (reduce maxPathLen to 2)
- * ICA2-no_pathlen signing ICA1-no_pathlen (reduce maxPathLen to 1)
- * ICA1-no_pathlen signing entity (reduce maxPathLen to 0)
- * Test should successfully verify ICA4, ICA3, ICA2 and then fail on ICA1
- */
- char chainIArr[5][50] = {"certs/ca-cert.pem",
- "certs/test-pathlen/chainI-ICA3-pathlen2.pem",
- "certs/test-pathlen/chainI-ICA2-no_pathlen.pem",
- "certs/test-pathlen/chainI-ICA1-no_pathlen.pem",
- "certs/test-pathlen/chainI-entity.pem"};
-
- LOAD_ONE_CA(ret, i, cm, chainIArr[0]); /* if failure, i = -1 here */
- LOAD_ONE_CA(ret, i, cm, chainIArr[1]); /* if failure, i = -2 here */
- LOAD_ONE_CA(ret, i, cm, chainIArr[2]); /* if failure, i = -3 here */
- LOAD_ONE_CA(ret, i, cm, chainIArr[3]); /* if failure, i = -4 here */
- VERIFY_ONE_CERT(ret, i, cm, chainIArr[1]); /* if failure, i = -5 here */
- VERIFY_ONE_CERT(ret, i, cm, chainIArr[2]); /* if failure, i = -6 here */
- VERIFY_ONE_CERT(ret, i, cm, chainIArr[3]); /* if failure, i = -7 here */
- VERIFY_ONE_CERT(ret, i, cm, chainIArr[4]); /* if failure, i = -8 here */
-
- return ret;
-}
-
-static int test_chainJ(WOLFSSL_CERT_MANAGER* cm)
-{
- int ret;
- int i = -1;
- /* Chain J is NOT a valid chain per RFC5280 section 4.2.1.9:
- * ICA4-pathlen of 2 signing ICA3 without a pathlen (reduce maxPathLen to 2)
- * ICA3-pathlen of 2 signing ICA2 without a pathlen (reduce maxPathLen to 1)
- * ICA2-no_pathlen signing ICA1-no_pathlen (reduce maxPathLen to 0)
- * ICA1-no_pathlen signing entity (ERROR, pathlen zero and non-leaf cert)
- */
- char chainJArr[6][50] = {"certs/ca-cert.pem",
- "certs/test-pathlen/chainJ-ICA4-pathlen2.pem",
- "certs/test-pathlen/chainJ-ICA3-no_pathlen.pem",
- "certs/test-pathlen/chainJ-ICA2-no_pathlen.pem",
- "certs/test-pathlen/chainJ-ICA1-no_pathlen.pem",
- "certs/test-pathlen/chainJ-entity.pem"};
-
- LOAD_ONE_CA(ret, i, cm, chainJArr[0]); /* if failure, i = -1 here */
- LOAD_ONE_CA(ret, i, cm, chainJArr[1]); /* if failure, i = -2 here */
- LOAD_ONE_CA(ret, i, cm, chainJArr[2]); /* if failure, i = -3 here */
- LOAD_ONE_CA(ret, i, cm, chainJArr[3]); /* if failure, i = -4 here */
- LOAD_ONE_CA(ret, i, cm, chainJArr[4]); /* if failure, i = -5 here */
- VERIFY_ONE_CERT(ret, i, cm, chainJArr[1]); /* if failure, i = -6 here */
- VERIFY_ONE_CERT(ret, i, cm, chainJArr[2]); /* if failure, i = -7 here */
- VERIFY_ONE_CERT(ret, i, cm, chainJArr[3]); /* if failure, i = -8 here */
- VERIFY_ONE_CERT(ret, i, cm, chainJArr[4]); /* if failure, i = -9 here */
- VERIFY_ONE_CERT(ret, i, cm, chainJArr[5]); /* if failure, i = -10 here */
-
- return ret;
-}
-
-static int test_various_pathlen_chains(void)
-{
- int ret;
- WOLFSSL_CERT_MANAGER* cm;
-
- /* Test chain G (large chain with varying pathLens) */
- if ((cm = wolfSSL_CertManagerNew()) == NULL) {
- printf("cert manager new failed\n");
- return -1;
- }
-
- AssertIntEQ(test_chainG(cm), 0);
-
- ret = wolfSSL_CertManagerUnloadCAs(cm);
- if (ret != WOLFSSL_SUCCESS)
- return -1;
- wolfSSL_CertManagerFree(cm);
- /* end test chain G */
-
- /* Test chain H (5 chain with same pathLens) */
- if ((cm = wolfSSL_CertManagerNew()) == NULL) {
- printf("cert manager new failed\n");
- return -1;
- }
- AssertIntLT(test_chainH(cm), 0);
-
- wolfSSL_CertManagerUnloadCAs(cm);
- wolfSSL_CertManagerFree(cm);
- if ((cm = wolfSSL_CertManagerNew()) == NULL) {
- printf("cert manager new failed\n");
- return -1;
- }
-
- ret = wolfSSL_CertManagerUnloadCAs(cm);
- if (ret != WOLFSSL_SUCCESS)
- return -1;
- wolfSSL_CertManagerFree(cm);
- /* end test chain H */
-
- /* Test chain I (only first ICA has pathLen set and it's set to 2,
- * followed by 2 ICA's, should pass) */
- if ((cm = wolfSSL_CertManagerNew()) == NULL) {
- printf("cert manager new failed\n");
- return -1;
- }
- AssertIntEQ(test_chainI(cm), 0);
-
- wolfSSL_CertManagerUnloadCAs(cm);
- wolfSSL_CertManagerFree(cm);
- if ((cm = wolfSSL_CertManagerNew()) == NULL) {
- printf("cert manager new failed\n");
- return -1;
- }
-
- ret = wolfSSL_CertManagerUnloadCAs(cm);
- if (ret != WOLFSSL_SUCCESS)
- return -1;
- wolfSSL_CertManagerFree(cm);
-
- /* Test chain J (Again only first ICA has pathLen set and it's set to 2,
- * this time followed by 3 ICA's, should fail */
- if ((cm = wolfSSL_CertManagerNew()) == NULL) {
- printf("cert manager new failed\n");
- return -1;
- }
- AssertIntLT(test_chainJ(cm), 0);
-
- wolfSSL_CertManagerUnloadCAs(cm);
- wolfSSL_CertManagerFree(cm);
- if ((cm = wolfSSL_CertManagerNew()) == NULL) {
- printf("cert manager new failed\n");
- return -1;
- }
-
- ret = wolfSSL_CertManagerUnloadCAs(cm);
- wolfSSL_CertManagerFree(cm);
-
- return ret;
-}
-#endif /* !NO_RSA && !NO_SHA && !NO_FILESYSTEM && !NO_CERTS */
-
-/*----------------------------------------------------------------------------*
- | Main
- *----------------------------------------------------------------------------*/
-
-void ApiTest(void)
-{
- printf("\n-----------------Porting tests------------------\n");
- AssertTrue(test_fileAccess());
-
- printf(" Begin API Tests\n");
- AssertIntEQ(test_wolfSSL_Init(), WOLFSSL_SUCCESS);
- /* wolfcrypt initialization tests */
- test_wolfSSL_Method_Allocators();
-#ifndef NO_WOLFSSL_SERVER
- test_wolfSSL_CTX_new(wolfSSLv23_server_method());
-#endif
-#if (!defined(NO_WOLFSSL_CLIENT) || !defined(NO_WOLFSSL_SERVER)) && \
-(!defined(NO_RSA) || defined(HAVE_ECC))
- test_for_double_Free();
-#endif
- test_wolfSSL_CTX_use_certificate_file();
- AssertIntEQ(test_wolfSSL_CTX_use_certificate_buffer(), WOLFSSL_SUCCESS);
- test_wolfSSL_CTX_use_PrivateKey_file();
- test_wolfSSL_CTX_load_verify_locations();
- test_wolfSSL_CertManagerLoadCABuffer();
- test_wolfSSL_CertManagerGetCerts();
- test_wolfSSL_CertManagerSetVerify();
- test_wolfSSL_CertManagerCRL();
- test_wolfSSL_CTX_load_verify_locations_ex();
- test_wolfSSL_CTX_load_verify_buffer_ex();
- test_wolfSSL_CTX_load_verify_chain_buffer_format();
- test_wolfSSL_CTX_use_certificate_chain_file_format();
- test_wolfSSL_CTX_trust_peer_cert();
- test_wolfSSL_CTX_SetTmpDH_file();
- test_wolfSSL_CTX_SetTmpDH_buffer();
- test_wolfSSL_CTX_SetMinMaxDhKey_Sz();
- test_wolfSSL_CTX_der_load_verify_locations();
- test_wolfSSL_CTX_enable_disable();
- test_server_wolfSSL_new();
- test_client_wolfSSL_new();
- test_wolfSSL_SetTmpDH_file();
- test_wolfSSL_SetTmpDH_buffer();
- test_wolfSSL_SetMinMaxDhKey_Sz();
- test_SetTmpEC_DHE_Sz();
- test_wolfSSL_dtls_set_mtu();
-#if !defined(NO_WOLFSSL_CLIENT) && !defined(NO_WOLFSSL_SERVER) && \
- defined(HAVE_IO_TESTS_DEPENDENCIES)
- test_wolfSSL_read_write();
-#if defined(OPENSSL_EXTRA) && !defined(NO_SESSION_CACHE) && !defined(WOLFSSL_TLS13)
- test_wolfSSL_reuse_WOLFSSLobj();
-#endif
- test_wolfSSL_dtls_export();
-#endif
- AssertIntEQ(test_wolfSSL_SetMinVersion(), WOLFSSL_SUCCESS);
- AssertIntEQ(test_wolfSSL_CTX_SetMinVersion(), WOLFSSL_SUCCESS);
-
- /* TLS extensions tests */
-#ifdef HAVE_IO_TESTS_DEPENDENCIES
- test_wolfSSL_UseSNI();
-#endif
- test_wolfSSL_UseTrustedCA();
- test_wolfSSL_UseMaxFragment();
- test_wolfSSL_UseTruncatedHMAC();
- test_wolfSSL_UseSupportedCurve();
- test_wolfSSL_UseALPN();
- test_wolfSSL_DisableExtendedMasterSecret();
- test_wolfSSL_wolfSSL_UseSecureRenegotiation();
-
- /* X509 tests */
- test_wolfSSL_X509_NAME_get_entry();
- test_wolfSSL_PKCS12();
- test_wolfSSL_no_password_cb();
- test_wolfSSL_PKCS8();
- test_wolfSSL_PKCS8_ED25519();
- test_wolfSSL_PKCS8_ED448();
- test_wolfSSL_PKCS5();
- test_wolfSSL_URI();
- test_wolfSSL_TBS();
- test_wolfSSL_X509_verify();
-
- test_wc_PemToDer();
- test_wc_AllocDer();
- test_wc_CertPemToDer();
- test_wc_PubKeyPemToDer();
- test_wc_PemPubKeyToDer();
-
- /*OCSP Stapling. */
- AssertIntEQ(test_wolfSSL_UseOCSPStapling(), WOLFSSL_SUCCESS);
- AssertIntEQ(test_wolfSSL_UseOCSPStaplingV2(), WOLFSSL_SUCCESS);
-
- /* Multicast */
- test_wolfSSL_mcast();
-
- /* compatibility tests */
- test_wolfSSL_X509_NAME();
- test_wolfSSL_X509_INFO();
- test_wolfSSL_X509_subject_name_hash();
- test_wolfSSL_DES();
- test_wolfSSL_certs();
- test_wolfSSL_ASN1_TIME_print();
- test_wolfSSL_ASN1_UTCTIME_print();
- test_wolfSSL_ASN1_GENERALIZEDTIME_free();
- test_wolfSSL_private_keys();
- test_wolfSSL_PEM_PrivateKey();
- test_wolfSSL_PEM_bio_RSAKey();
- test_wolfSSL_PEM_bio_DSAKey();
- test_wolfSSL_PEM_bio_ECKey();
- test_wolfSSL_PEM_RSAPrivateKey();
- test_wolfSSL_PEM_PUBKEY();
- test_DSA_do_sign_verify();
- test_wolfSSL_tmp_dh();
- test_wolfSSL_ctrl();
- test_wolfSSL_EVP_MD_size();
- test_wolfSSL_EVP_Digest();
- test_wolfSSL_EVP_PKEY_new_mac_key();
- test_wolfSSL_EVP_MD_hmac_signing();
- test_wolfSSL_EVP_MD_rsa_signing();
- test_wolfSSL_EVP_MD_ecc_signing();
- test_wolfSSL_CTX_add_extra_chain_cert();
-#if !defined(NO_WOLFSSL_CLIENT) && !defined(NO_WOLFSSL_SERVER)
- test_wolfSSL_ERR_peek_last_error_line();
-#endif
- test_wolfSSL_ERR_print_errors_cb();
- test_wolfSSL_set_options();
- test_wolfSSL_sk_SSL_CIPHER();
- test_wolfSSL_X509_STORE_CTX();
- test_wolfSSL_X509_STORE_CTX_get0_current_issuer();
- test_wolfSSL_msgCb();
- test_wolfSSL_either_side();
- test_wolfSSL_DTLS_either_side();
- test_generate_cookie();
- test_wolfSSL_X509_STORE_set_flags();
- test_wolfSSL_X509_LOOKUP_load_file();
- test_wolfSSL_X509_NID();
- test_wolfSSL_X509_STORE_CTX_set_time();
- test_wolfSSL_get0_param();
- test_wolfSSL_X509_VERIFY_PARAM_set1_host();
- test_wolfSSL_X509_STORE_CTX_get0_store();
- test_wolfSSL_X509_STORE();
- test_wolfSSL_X509_STORE_load_locations();
- test_wolfSSL_BN();
- test_wolfSSL_PEM_read_bio();
- test_wolfSSL_BIO();
- test_wolfSSL_ASN1_STRING();
- test_wolfSSL_ASN1_BIT_STRING();
- test_wolfSSL_X509();
- test_wolfSSL_X509_VERIFY_PARAM();
- test_wolfSSL_X509_sign();
- test_wolfSSL_X509_get0_tbs_sigalg();
- test_wolfSSL_X509_ALGOR_get0();
- test_wolfSSL_X509_get_X509_PUBKEY();
- test_wolfSSL_X509_PUBKEY();
- test_wolfSSL_RAND();
- test_wolfSSL_BUF();
- test_wolfSSL_set_tlsext_status_type();
- test_wolfSSL_ASN1_TIME_adj();
- test_wolfSSL_X509_cmp_time();
- test_wolfSSL_X509_time_adj();
- test_wolfSSL_CTX_set_client_CA_list();
- test_wolfSSL_CTX_add_client_CA();
- test_wolfSSL_CTX_set_srp_username();
- test_wolfSSL_CTX_set_srp_password();
- test_wolfSSL_pseudo_rand();
- test_wolfSSL_PKCS8_Compat();
- test_wolfSSL_PKCS8_d2i();
- test_wolfSSL_ERR_put_error();
- test_wolfSSL_ERR_print_errors();
- test_wolfSSL_HMAC();
- test_wolfSSL_OBJ();
- test_wolfSSL_i2a_ASN1_OBJECT();
- test_wolfSSL_OBJ_cmp();
- test_wolfSSL_OBJ_txt2nid();
- test_wolfSSL_OBJ_txt2obj();
- test_wolfSSL_X509_NAME_ENTRY();
- test_wolfSSL_X509_set_name();
- test_wolfSSL_X509_set_notAfter();
- test_wolfSSL_X509_set_notBefore();
- test_wolfSSL_X509_set_version();
- test_wolfSSL_BIO_gets();
- test_wolfSSL_BIO_puts();
- test_wolfSSL_BIO_should_retry();
- test_wolfSSL_d2i_PUBKEY();
- test_wolfSSL_BIO_write();
- test_wolfSSL_BIO_printf();
- test_wolfSSL_BIO_f_md();
- test_wolfSSL_SESSION();
- test_wolfSSL_DES_ecb_encrypt();
- test_wolfSSL_sk_GENERAL_NAME();
- test_wolfSSL_MD4();
- test_wolfSSL_RSA();
- test_wolfSSL_RSA_DER();
- test_wolfSSL_RSA_get0_key();
- test_wolfSSL_RSA_meth();
- test_wolfSSL_verify_depth();
- test_wolfSSL_HMAC_CTX();
- test_wolfSSL_msg_callback();
- test_wolfSSL_SHA();
- test_wolfSSL_DH_1536_prime();
- test_wolfSSL_PEM_write_DHparams();
- test_wolfSSL_AES_ecb_encrypt();
- test_wolfSSL_SHA256();
- test_wolfSSL_X509_get_serialNumber();
- test_wolfSSL_X509_CRL();
- test_wolfSSL_PEM_read_X509();
- test_wolfSSL_PEM_read();
- test_wolfSSL_PEM_X509_INFO_read_bio();
- test_wolfSSL_PEM_read_bio_ECPKParameters();
- test_wolfSSL_X509_NAME_ENTRY_get_object();
- test_wolfSSL_OpenSSL_add_all_algorithms();
- test_wolfSSL_ASN1_STRING_print_ex();
- test_wolfSSL_ASN1_TIME_to_generalizedtime();
- test_wolfSSL_ASN1_INTEGER_set();
- test_wolfSSL_IMPLEMENT_ASN1_FUNCTIONS();
- test_wolfSSL_i2c_ASN1_INTEGER();
- test_wolfSSL_X509_check_ca();
- test_wolfSSL_DC_cert();
- test_wolfSSL_DES_ncbc();
- test_wolfSSL_AES_cbc_encrypt();
- test_wolfssl_EVP_aes_gcm();
- test_wolfSSL_PKEY_up_ref();
- test_wolfSSL_i2d_PrivateKey();
- test_wolfSSL_OCSP_get0_info();
- test_wolfSSL_EVP_PKEY_derive();
- test_wolfSSL_RSA_padding_add_PKCS1_PSS();
-
-#if defined(WOLFSSL_QT)
- printf("\n----------------Qt Unit Tests-------------------\n");
- test_wolfSSL_X509_PUBKEY_get();
- test_wolfSSL_sk_CIPHER_description();
- test_wolfSSL_get_ciphers_compat();
- test_wolfSSL_d2i_DHparams();
- test_wolfSSL_i2d_DHparams();
- test_wolfSSL_ASN1_STRING_to_UTF8();
- test_wolfSSL_EC_KEY_dup();
- test_wolfSSL_EVP_PKEY_set1_get1_DSA();
- test_wolfSSL_EVP_PKEY_set1_get1_EC_KEY();
- test_wolfSSL_EVP_PKEY_set1_get1_DH();
- test_wolfSSL_CTX_ctrl();
- test_wolfSSL_DH_check();
- test_wolfSSL_EVP_PKEY_assign();
- test_wolfSSL_OBJ_ln();
- test_wolfSSL_OBJ_sn();
-
- printf("\n-------------End Of Qt Unit Tests---------------\n");
-
-#endif /* WOLFSSL_QT */
-
-#if (defined(OPENSSL_ALL) || defined(WOLFSSL_ASIO)) && !defined(NO_RSA)
- AssertIntEQ(test_wolfSSL_CTX_use_certificate_ASN1(), WOLFSSL_SUCCESS);
- test_wolfSSL_d2i_PrivateKeys_bio();
-#endif /* OPENSSL_ALL || WOLFSSL_ASIO */
-
- test_wolfSSL_X509_CA_num();
- test_wolfSSL_X509_get_version();
- test_wolfSSL_X509_print();
- test_wolfSSL_BIO_get_len();
- test_wolfSSL_RSA_verify();
- test_wolfSSL_X509V3_EXT_get();
- test_wolfSSL_X509V3_EXT_d2i();
- test_wolfSSL_X509_get_ext();
- test_wolfSSL_X509_get_ext_by_NID();
- test_wolfSSL_X509_get_ext_count();
- test_wolfSSL_X509_EXTENSION_new();
- test_wolfSSL_X509_EXTENSION_get_object();
- test_wolfSSL_X509_EXTENSION_get_data();
- test_wolfSSL_X509_EXTENSION_get_critical();
- test_wolfSSL_X509V3_EXT_print();
- test_wolfSSL_X509_cmp();
- test_wolfSSL_RSA_print();
- test_wolfSSL_ASN1_STRING_print();
- test_openssl_generate_key_and_cert();
-
- test_wolfSSL_EC_get_builtin_curves();
-
- /* test the no op functions for compatibility */
- test_no_op_functions();
-
- /* OpenSSL EVP_PKEY API tests */
- test_EVP_PKEY_rsa();
- test_wolfSSL_EVP_PKEY_encrypt();
- test_wolfSSL_EVP_PKEY_sign();
- test_EVP_PKEY_ec();
- test_EVP_PKEY_cmp();
- /* OpenSSL error API tests */
- test_ERR_load_crypto_strings();
- /* OpenSSL sk_X509 API test */
- test_sk_X509();
- /* OpenSSL X509 API test */
- test_X509_get_signature_nid();
- /* OpenSSL X509 REQ API test */
- test_X509_REQ();
- /* OpenSSL PKCS7 API test */
- test_wolfssl_PKCS7();
- test_wolfSSL_PKCS7_SIGNED_new();
- test_wolfSSL_PEM_write_bio_PKCS7();
-
- /* wolfCrypt ASN tests */
- test_wc_GetPkcs8TraditionalOffset();
- test_wc_SetSubjectRaw();
- test_wc_GetSubjectRaw();
- test_wc_SetIssuerRaw();
- test_wc_SetIssueBuffer();
- test_wc_SetSubjectKeyId();
- test_wc_SetSubject();
- test_CheckCertSignature();
-
- /* wolfCrypt ECC tests */
- test_wc_ecc_get_curve_size_from_name();
- test_wc_ecc_get_curve_id_from_name();
- test_wc_ecc_get_curve_id_from_params();
-#ifdef WOLFSSL_TLS13
- /* TLS v1.3 API tests */
- test_tls13_apis();
-#endif
-
-#ifndef NO_CERTS
- /* Bad certificate signature tests */
- AssertIntEQ(test_EccSigFailure_cm(), ASN_SIG_CONFIRM_E);
- AssertIntEQ(test_RsaSigFailure_cm(), ASN_SIG_CONFIRM_E);
-#endif /* NO_CERTS */
-
-#ifdef HAVE_PK_CALLBACKS
- /* public key callback tests */
- test_DhCallbacks();
-#endif
-
- /*wolfcrypt */
- printf("\n-----------------wolfcrypt unit tests------------------\n");
- AssertFalse(test_wolfCrypt_Init());
- AssertFalse(test_wc_InitMd5());
- AssertFalse(test_wc_Md5Update());
- AssertFalse(test_wc_Md5Final());
- AssertFalse(test_wc_InitSha());
- AssertFalse(test_wc_ShaUpdate());
- AssertFalse(test_wc_ShaFinal());
- AssertFalse(test_wc_InitSha256());
- AssertFalse(test_wc_Sha256Update());
- AssertFalse(test_wc_Sha256Final());
- AssertFalse(test_wc_InitSha512());
- AssertFalse(test_wc_Sha512Update());
- AssertFalse(test_wc_Sha512Final());
- AssertFalse(test_wc_InitSha384());
- AssertFalse(test_wc_Sha384Update());
- AssertFalse(test_wc_Sha384Final());
- AssertFalse(test_wc_InitSha224());
- AssertFalse(test_wc_Sha224Update());
- AssertFalse(test_wc_Sha224Final());
- AssertFalse(test_wc_InitBlake2b());
- AssertFalse(test_wc_InitRipeMd());
- AssertFalse(test_wc_RipeMdUpdate());
- AssertFalse(test_wc_RipeMdFinal());
-
- AssertIntEQ(test_wc_InitSha3(), 0);
- AssertIntEQ(testing_wc_Sha3_Update(), 0);
- AssertIntEQ(test_wc_Sha3_224_Final(), 0);
- AssertIntEQ(test_wc_Sha3_256_Final(), 0);
- AssertIntEQ(test_wc_Sha3_384_Final(), 0);
- AssertIntEQ(test_wc_Sha3_512_Final(), 0);
- AssertIntEQ(test_wc_Sha3_224_Copy(), 0);
- AssertIntEQ(test_wc_Sha3_256_Copy(), 0);
- AssertIntEQ(test_wc_Sha3_384_Copy(), 0);
- AssertIntEQ(test_wc_Sha3_512_Copy(), 0);
- AssertIntEQ(test_wc_InitShake256(), 0);
- AssertIntEQ(testing_wc_Shake256_Update(), 0);
- AssertIntEQ(test_wc_Shake256_Final(), 0);
-
- AssertFalse(test_wc_Md5HmacSetKey());
- AssertFalse(test_wc_Md5HmacUpdate());
- AssertFalse(test_wc_Md5HmacFinal());
- AssertFalse(test_wc_ShaHmacSetKey());
- AssertFalse(test_wc_ShaHmacUpdate());
- AssertFalse(test_wc_ShaHmacFinal());
- AssertFalse(test_wc_Sha224HmacSetKey());
- AssertFalse(test_wc_Sha224HmacUpdate());
- AssertFalse(test_wc_Sha224HmacFinal());
- AssertFalse(test_wc_Sha256HmacSetKey());
- AssertFalse(test_wc_Sha256HmacUpdate());
- AssertFalse(test_wc_Sha256HmacFinal());
- AssertFalse(test_wc_Sha384HmacSetKey());
- AssertFalse(test_wc_Sha384HmacUpdate());
- AssertFalse(test_wc_Sha384HmacFinal());
-
- AssertIntEQ(test_wc_HashInit(), 0);
-
- AssertIntEQ(test_wc_InitCmac(), 0);
- AssertIntEQ(test_wc_CmacUpdate(), 0);
- AssertIntEQ(test_wc_CmacFinal(), 0);
- AssertIntEQ(test_wc_AesCmacGenerate(), 0);
-
- AssertIntEQ(test_wc_Des3_SetIV(), 0);
- AssertIntEQ(test_wc_Des3_SetKey(), 0);
- AssertIntEQ(test_wc_Des3_CbcEncryptDecrypt(), 0);
- AssertIntEQ(test_wc_Des3_CbcEncryptDecryptWithKey(), 0);
- AssertIntEQ(test_wc_IdeaSetKey(), 0);
- AssertIntEQ(test_wc_IdeaSetIV(), 0);
- AssertIntEQ(test_wc_IdeaCipher(), 0);
- AssertIntEQ(test_wc_IdeaCbcEncyptDecrypt(), 0);
- AssertIntEQ(test_wc_Chacha_SetKey(), 0);
- AssertIntEQ(test_wc_Chacha_Process(), 0);
- AssertIntEQ(test_wc_ChaCha20Poly1305_aead(), 0);
- AssertIntEQ(test_wc_Poly1305SetKey(), 0);
-
- AssertIntEQ(test_wc_CamelliaSetKey(), 0);
- AssertIntEQ(test_wc_CamelliaSetIV(), 0);
- AssertIntEQ(test_wc_CamelliaEncryptDecryptDirect(), 0);
- AssertIntEQ(test_wc_CamelliaCbcEncryptDecrypt(), 0);
-
-
- AssertIntEQ(test_wc_RabbitSetKey(), 0);
- AssertIntEQ(test_wc_RabbitProcess(), 0);
-
- AssertIntEQ(test_wc_Arc4SetKey(), 0);
- AssertIntEQ(test_wc_Arc4Process(), 0);
-
- AssertIntEQ(test_wc_AesSetKey(), 0);
- AssertIntEQ(test_wc_AesSetIV(), 0);
- AssertIntEQ(test_wc_AesCbcEncryptDecrypt(), 0);
- AssertIntEQ(test_wc_AesCtrEncryptDecrypt(), 0);
- AssertIntEQ(test_wc_AesGcmSetKey(), 0);
- AssertIntEQ(test_wc_AesGcmEncryptDecrypt(), 0);
- AssertIntEQ(test_wc_GmacSetKey(), 0);
- AssertIntEQ(test_wc_GmacUpdate(), 0);
- AssertIntEQ(test_wc_InitRsaKey(), 0);
- AssertIntEQ(test_wc_RsaPrivateKeyDecode(), 0);
- AssertIntEQ(test_wc_RsaPublicKeyDecode(), 0);
- AssertIntEQ(test_wc_RsaPublicKeyDecodeRaw(), 0);
- AssertIntEQ(test_wc_MakeRsaKey(), 0);
- AssertIntEQ(test_wc_SetKeyUsage (), 0);
-
-
- AssertIntEQ(test_wc_RsaKeyToDer(), 0);
- AssertIntEQ(test_wc_RsaKeyToPublicDer(), 0);
- AssertIntEQ(test_wc_RsaPublicEncryptDecrypt(), 0);
- AssertIntEQ(test_wc_RsaPublicEncryptDecrypt_ex(), 0);
- AssertIntEQ(test_wc_RsaEncryptSize(), 0);
- AssertIntEQ(test_wc_RsaSSL_SignVerify(), 0);
- AssertIntEQ(test_wc_RsaFlattenPublicKey(), 0);
- AssertIntEQ(test_RsaDecryptBoundsCheck(), 0);
- AssertIntEQ(test_wc_AesCcmSetKey(), 0);
- AssertIntEQ(test_wc_AesCcmEncryptDecrypt(), 0);
- AssertIntEQ(test_wc_Hc128_SetKey(), 0);
- AssertIntEQ(test_wc_Hc128_Process(), 0);
- AssertIntEQ(test_wc_InitDsaKey(), 0);
- AssertIntEQ(test_wc_DsaSignVerify(), 0);
- AssertIntEQ(test_wc_DsaPublicPrivateKeyDecode(), 0);
- AssertIntEQ(test_wc_MakeDsaKey(), 0);
- AssertIntEQ(test_wc_DsaKeyToDer(), 0);
- AssertIntEQ(test_wc_DsaKeyToPublicDer(), 0);
- AssertIntEQ(test_wc_DsaImportParamsRaw(), 0);
- AssertIntEQ(test_wc_DsaImportParamsRawCheck(), 0);
- AssertIntEQ(test_wc_DsaExportParamsRaw(), 0);
- AssertIntEQ(test_wc_DsaExportKeyRaw(), 0);
- AssertIntEQ(test_wc_SignatureGetSize_ecc(), 0);
- AssertIntEQ(test_wc_SignatureGetSize_rsa(), 0);
- wolfCrypt_Cleanup();
-
-#ifdef OPENSSL_EXTRA
- /*wolfSSL_EVP_get_cipherbynid test*/
- test_wolfSSL_EVP_get_cipherbynid();
- test_wolfSSL_EVP_CIPHER_CTX();
- test_wolfSSL_EC();
- test_wolfSSL_ECDSA_SIG();
- test_ECDSA_size_sign();
-#endif
-#if defined(OPENSSL_EXTRA) && defined(HAVE_ECC) && \
- !defined(HAVE_SELFTEST) && \
- !(defined(HAVE_FIPS) || defined(HAVE_FIPS_VERSION))
- test_wc_ecc_get_curve_id_from_dp_params();
-#endif
-
-#ifdef HAVE_HASHDRBG
- #ifdef TEST_RESEED_INTERVAL
- AssertIntEQ(test_wc_RNG_GenerateBlock_Reseed(), 0);
- #endif
- AssertIntEQ(test_wc_RNG_GenerateBlock(), 0);
-#endif
-
- AssertIntEQ(test_wc_ed25519_make_key(), 0);
- AssertIntEQ(test_wc_ed25519_init(), 0);
- AssertIntEQ(test_wc_ed25519_sign_msg(), 0);
- AssertIntEQ(test_wc_ed25519_import_public(), 0);
- AssertIntEQ(test_wc_ed25519_import_private_key(), 0);
- AssertIntEQ(test_wc_ed25519_export(), 0);
- AssertIntEQ(test_wc_ed25519_size(), 0);
- AssertIntEQ(test_wc_ed25519_exportKey(), 0);
- AssertIntEQ(test_wc_Ed25519PublicKeyToDer(), 0);
- AssertIntEQ(test_wc_curve25519_init(), 0);
- AssertIntEQ(test_wc_curve25519_size (), 0);
- AssertIntEQ(test_wc_ed448_make_key(), 0);
- AssertIntEQ(test_wc_ed448_init(), 0);
- AssertIntEQ(test_wc_ed448_sign_msg(), 0);
- AssertIntEQ(test_wc_ed448_import_public(), 0);
- AssertIntEQ(test_wc_ed448_import_private_key(), 0);
- AssertIntEQ(test_wc_ed448_export(), 0);
- AssertIntEQ(test_wc_ed448_size(), 0);
- AssertIntEQ(test_wc_ed448_exportKey(), 0);
- AssertIntEQ(test_wc_Ed448PublicKeyToDer(), 0);
- AssertIntEQ(test_wc_curve448_init(), 0);
- AssertIntEQ(test_wc_curve448_size (), 0);
- AssertIntEQ(test_wc_ecc_make_key(), 0);
- AssertIntEQ(test_wc_ecc_init(), 0);
- AssertIntEQ(test_wc_ecc_check_key(), 0);
- AssertIntEQ(test_wc_ecc_get_generator(), 0);
- AssertIntEQ(test_wc_ecc_size(), 0);
- test_wc_ecc_params();
- AssertIntEQ(test_wc_ecc_signVerify_hash(), 0);
- AssertIntEQ(test_wc_ecc_shared_secret(), 0);
- AssertIntEQ(test_wc_ecc_export_x963(), 0);
- AssertIntEQ(test_wc_ecc_export_x963_ex(), 0);
- AssertIntEQ(test_wc_ecc_import_x963(), 0);
- AssertIntEQ(ecc_import_private_key(), 0);
- AssertIntEQ(test_wc_ecc_export_private_only(), 0);
- AssertIntEQ(test_wc_ecc_rs_to_sig(), 0);
- AssertIntEQ(test_wc_ecc_import_raw(), 0);
- AssertIntEQ(test_wc_ecc_sig_size(), 0);
- AssertIntEQ(test_wc_ecc_ctx_new(), 0);
- AssertIntEQ(test_wc_ecc_ctx_reset(), 0);
- AssertIntEQ(test_wc_ecc_ctx_set_peer_salt(), 0);
- AssertIntEQ(test_wc_ecc_ctx_set_info(), 0);
- AssertIntEQ(test_wc_ecc_encryptDecrypt(), 0);
- AssertIntEQ(test_wc_ecc_del_point(), 0);
- AssertIntEQ(test_wc_ecc_pointFns(), 0);
- AssertIntEQ(test_wc_ecc_shared_secret_ssh(), 0);
- AssertIntEQ(test_wc_ecc_verify_hash_ex(), 0);
- AssertIntEQ(test_wc_ecc_mulmod(), 0);
- AssertIntEQ(test_wc_ecc_is_valid_idx(), 0);
-
- test_wc_PKCS7_New();
- test_wc_PKCS7_Init();
- test_wc_PKCS7_InitWithCert();
- test_wc_PKCS7_EncodeData();
- test_wc_PKCS7_EncodeSignedData();
- test_wc_PKCS7_EncodeSignedData_ex();
- test_wc_PKCS7_VerifySignedData();
- test_wc_PKCS7_EncodeDecodeEnvelopedData();
- test_wc_PKCS7_EncodeEncryptedData();
- test_wc_PKCS7_Degenerate();
- test_wc_PKCS7_BER();
- test_PKCS7_signed_enveloped();
-
- test_wc_i2d_PKCS12();
-
- test_wolfSSL_CTX_LoadCRL();
-
- AssertIntEQ(test_ForceZero(), 0);
-
- AssertIntEQ(test_wolfSSL_Cleanup(), WOLFSSL_SUCCESS);
-
-#if !defined(NO_RSA) && !defined(NO_SHA) && !defined(NO_FILESYSTEM) && \
- !defined(NO_CERTS)
- AssertIntEQ(test_various_pathlen_chains(), WOLFSSL_SUCCESS);
-#endif
-
- /* If at some point a stub get implemented this test should fail indicating
- * a need to implement a new test case
- */
- test_stubs_are_stubs();
-#if defined(HAVE_ECC) && defined(FP_ECC) && defined(HAVE_THREAD_LS) \
- && (defined(NO_MAIN_DRIVER) || defined(HAVE_STACK_SIZE))
- wc_ecc_fp_free(); /* free per thread cache */
-#endif
- wolfSSL_Cleanup();
-
- printf(" End API Tests\n");
-
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/hash.c b/FreeRTOS-Plus/Source/WolfSSL/tests/hash.c
deleted file mode 100644
index be9966ac5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/hash.c
+++ /dev/null
@@ -1,1045 +0,0 @@
-/* hash.c has unit tests
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#include <stdio.h>
-
-#include <wolfssl/wolfcrypt/md4.h>
-#include <wolfssl/wolfcrypt/md5.h>
-#include <wolfssl/wolfcrypt/sha.h>
-#include <wolfssl/wolfcrypt/sha256.h>
-#include <wolfssl/wolfcrypt/sha512.h>
-#include <wolfssl/wolfcrypt/ripemd.h>
-#include <wolfssl/wolfcrypt/hmac.h>
-
-#include <tests/unit.h>
-
-typedef struct testVector {
- const char* input;
- const char* output;
- size_t inLen;
- size_t outLen;
-} testVector;
-
-int md4_test(void);
-int md5_test(void);
-int sha_test(void);
-int sha224_test(void);
-int sha256_test(void);
-int sha512_test(void);
-int sha384_test(void);
-int ripemd_test(void);
-int hmac_md5_test(void);
-int hmac_sha_test(void);
-int hmac_sha224_test(void);
-int hmac_sha256_test(void);
-int hmac_sha384_test(void);
-
-int HashTest(void)
-{
- int ret = 0;
-
- printf(" Begin HASH Tests\n");
-
-#ifndef NO_MD4
- if ( (ret = md4_test()) ) {
- printf( " MD4 test failed!\n");
- return ret;
- } else
- printf( " MD4 test passed!\n");
-#endif
-
-#ifndef NO_MD5
- if ( (ret = md5_test()) ) {
- printf( " MD5 test failed!\n");
- return ret;
- } else
- printf( " MD5 test passed!\n");
-#endif
-
-#ifndef NO_SHA
- if ( (ret = sha_test()) ) {
- printf( " SHA test failed!\n");
- return ret;
- } else
- printf( " SHA test passed!\n");
-#endif
-
-#ifdef WOLFSSL_SHA224
- if ( (ret = sha224_test()) ) {
- printf( " SHA-224 test failed!\n");
- return ret;
- } else
- printf( " SHA-224 test passed!\n");
-#endif
-
-#ifndef NO_SHA256
- if ( (ret = sha256_test()) ) {
- printf( " SHA-256 test failed!\n");
- return ret;
- } else
- printf( " SHA-256 test passed!\n");
-#endif
-
-#ifdef WOLFSSL_SHA512
- if ( (ret = sha512_test()) ) {
- printf( " SHA-512 test failed!\n");
- return ret;
- } else
- printf( " SHA-512 test passed!\n");
-#endif
-
-#ifdef WOLFSSL_SHA384
- if ( (ret = sha384_test()) ) {
- printf( " SHA-384 test failed!\n");
- return ret;
- } else
- printf( " SHA-384 test passed!\n");
-#endif
-
-#ifdef WOLFSSL_RIPEMD
- if ( (ret = ripemd_test()) ) {
- printf( " RIPEMD test failed!\n");
- return ret;
- } else
- printf( " RIPEMD test passed!\n");
-#endif
-
-#ifndef NO_HMAC
- #ifndef NO_MD5
- if ( (ret = hmac_md5_test()) ) {
- printf( " HMAC-MD5 test failed!\n");
- return ret;
- } else
- printf( " HMAC-MD5 test passed!\n");
- #endif
-
- #ifndef NO_SHA
- if ( (ret = hmac_sha_test()) )
- printf( " HMAC-SHA test failed!\n");
- else
- printf( " HMAC-SHA test passed!\n");
- #endif
-
- #ifdef WOLFSSL_SHA224
- if ( (ret = hmac_sha224_test()) )
- printf( " HMAC-SHA224 test failed!\n");
- else
- printf( " HMAC-SHA224 test passed!\n");
- #endif
-
- #ifndef NO_SHA256
- if ( (ret = hmac_sha256_test()) )
- printf( " HMAC-SHA256 test failed!\n");
- else
- printf( " HMAC-SHA256 test passed!\n");
- #endif
-
- #ifdef WOLFSSL_SHA384
- if ( (ret = hmac_sha384_test()) )
- printf( " HMAC-SHA384 test failed!\n");
- else
- printf( " HMAC-SHA384 test passed!\n");
- #endif
-#endif
-
- printf(" End HASH Tests\n");
-
- return 0;
-}
-
-#ifndef NO_MD4
-
-int md4_test(void)
-{
- Md4 md4;
- byte hash[MD4_DIGEST_SIZE];
-
- testVector a, b, c, d, e, f, g;
- testVector test_md4[7];
- int times = sizeof(test_md4) / sizeof(testVector), i;
-
- a.input = "";
- a.output = "\x31\xd6\xcf\xe0\xd1\x6a\xe9\x31\xb7\x3c\x59\xd7\xe0\xc0\x89"
- "\xc0";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- b.input = "a";
- b.output = "\xbd\xe5\x2c\xb3\x1d\xe3\x3e\x46\x24\x5e\x05\xfb\xdb\xd6\xfb"
- "\x24";
- b.inLen = XSTRLEN(b.input);
- b.outLen = XSTRLEN(b.output);
-
- c.input = "abc";
- c.output = "\xa4\x48\x01\x7a\xaf\x21\xd8\x52\x5f\xc1\x0a\xe8\x7a\xa6\x72"
- "\x9d";
- c.inLen = XSTRLEN(c.input);
- c.outLen = XSTRLEN(c.output);
-
- d.input = "message digest";
- d.output = "\xd9\x13\x0a\x81\x64\x54\x9f\xe8\x18\x87\x48\x06\xe1\xc7\x01"
- "\x4b";
- d.inLen = XSTRLEN(d.input);
- d.outLen = XSTRLEN(d.output);
-
- e.input = "abcdefghijklmnopqrstuvwxyz";
- e.output = "\xd7\x9e\x1c\x30\x8a\xa5\xbb\xcd\xee\xa8\xed\x63\xdf\x41\x2d"
- "\xa9";
- e.inLen = XSTRLEN(e.input);
- e.outLen = XSTRLEN(e.output);
-
- f.input = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345"
- "6789";
- f.output = "\x04\x3f\x85\x82\xf2\x41\xdb\x35\x1c\xe6\x27\xe1\x53\xe7\xf0"
- "\xe4";
- f.inLen = XSTRLEN(f.input);
- f.outLen = XSTRLEN(f.output);
-
- g.input = "1234567890123456789012345678901234567890123456789012345678"
- "9012345678901234567890";
- g.output = "\xe3\x3b\x4d\xdc\x9c\x38\xf2\x19\x9c\x3e\x7b\x16\x4f\xcc\x05"
- "\x36";
- g.inLen = XSTRLEN(g.input);
- g.outLen = XSTRLEN(g.output);
-
- test_md4[0] = a;
- test_md4[1] = b;
- test_md4[2] = c;
- test_md4[3] = d;
- test_md4[4] = e;
- test_md4[5] = f;
- test_md4[6] = g;
-
- wc_InitMd4(&md4);
-
- for (i = 0; i < times; ++i) {
- wc_Md4Update(&md4, (byte*)test_md4[i].input, (word32)test_md4[i].inLen);
- wc_Md4Final(&md4, hash);
-
- if (XMEMCMP(hash, test_md4[i].output, MD4_DIGEST_SIZE) != 0)
- return -205 - i;
- }
-
- return 0;
-}
-
-#endif /* NO_MD4 */
-
-#ifndef NO_MD5
-
-int md5_test(void)
-{
- int ret;
- wc_Md5 md5;
- byte hash[WC_MD5_DIGEST_SIZE];
-
- testVector a, b, c, d, e;
- testVector test_md5[5];
- int times = sizeof(test_md5) / sizeof(testVector), i;
-
- a.input = "abc";
- a.output = "\x90\x01\x50\x98\x3c\xd2\x4f\xb0\xd6\x96\x3f\x7d\x28\xe1\x7f"
- "\x72";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- b.input = "message digest";
- b.output = "\xf9\x6b\x69\x7d\x7c\xb7\x93\x8d\x52\x5a\x2f\x31\xaa\xf1\x61"
- "\xd0";
- b.inLen = XSTRLEN(b.input);
- b.outLen = XSTRLEN(b.output);
-
- c.input = "abcdefghijklmnopqrstuvwxyz";
- c.output = "\xc3\xfc\xd3\xd7\x61\x92\xe4\x00\x7d\xfb\x49\x6c\xca\x67\xe1"
- "\x3b";
- c.inLen = XSTRLEN(c.input);
- c.outLen = XSTRLEN(c.output);
-
- d.input = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345"
- "6789";
- d.output = "\xd1\x74\xab\x98\xd2\x77\xd9\xf5\xa5\x61\x1c\x2c\x9f\x41\x9d"
- "\x9f";
- d.inLen = XSTRLEN(d.input);
- d.outLen = XSTRLEN(d.output);
-
- e.input = "1234567890123456789012345678901234567890123456789012345678"
- "9012345678901234567890";
- e.output = "\x57\xed\xf4\xa2\x2b\xe3\xc9\x55\xac\x49\xda\x2e\x21\x07\xb6"
- "\x7a";
- e.inLen = XSTRLEN(e.input);
- e.outLen = XSTRLEN(e.output);
-
- test_md5[0] = a;
- test_md5[1] = b;
- test_md5[2] = c;
- test_md5[3] = d;
- test_md5[4] = e;
-
- ret = wc_InitMd5(&md5);
- if (ret) {
- return ret;
- }
-
- for (i = 0; i < times; ++i) {
- ret = wc_Md5Update(&md5, (byte*)test_md5[i].input,
- (word32)test_md5[i].inLen);
- if (ret) {
- return ret;
- }
-
- ret = wc_Md5Final(&md5, hash);
- if (ret) {
- return ret;
- }
-
- if (XMEMCMP(hash, test_md5[i].output, WC_MD5_DIGEST_SIZE) != 0)
- return -5 - i;
- }
-
- return 0;
-}
-
-#endif /* NO_MD5 */
-
-#ifndef NO_SHA
-int sha_test(void)
-{
- wc_Sha sha;
- byte hash[WC_SHA_DIGEST_SIZE];
-
- testVector a, b, c, d;
- testVector test_sha[4];
- int ret = 0;
- int times = sizeof(test_sha) / sizeof(struct testVector), i;
-
- a.input = "abc";
- a.output = "\xA9\x99\x3E\x36\x47\x06\x81\x6A\xBA\x3E\x25\x71\x78\x50\xC2"
- "\x6C\x9C\xD0\xD8\x9D";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- b.input = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
- b.output = "\x84\x98\x3E\x44\x1C\x3B\xD2\x6E\xBA\xAE\x4A\xA1\xF9\x51\x29"
- "\xE5\xE5\x46\x70\xF1";
- b.inLen = XSTRLEN(b.input);
- b.outLen = XSTRLEN(b.output);
-
- c.input = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "aaaaaa";
- c.output = "\x00\x98\xBA\x82\x4B\x5C\x16\x42\x7B\xD7\xA1\x12\x2A\x5A\x44"
- "\x2A\x25\xEC\x64\x4D";
- c.inLen = XSTRLEN(c.input);
- c.outLen = XSTRLEN(c.output);
-
- d.input = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "aaaaaaaaaa";
- d.output = "\xAD\x5B\x3F\xDB\xCB\x52\x67\x78\xC2\x83\x9D\x2F\x15\x1E\xA7"
- "\x53\x99\x5E\x26\xA0";
- d.inLen = XSTRLEN(d.input);
- d.outLen = XSTRLEN(d.output);
-
- test_sha[0] = a;
- test_sha[1] = b;
- test_sha[2] = c;
- test_sha[3] = d;
-
- ret = wc_InitSha(&sha);
- if (ret != 0)
- return ret;
-
- for (i = 0; i < times; ++i) {
- wc_ShaUpdate(&sha, (byte*)test_sha[i].input, (word32)test_sha[i].inLen);
- wc_ShaFinal(&sha, hash);
-
- if (XMEMCMP(hash, test_sha[i].output, WC_SHA_DIGEST_SIZE) != 0)
- return -10 - i;
- }
-
- return 0;
-}
-#endif /* NO_SHA */
-
-#ifdef WOLFSSL_SHA224
-int sha224_test(void)
-{
- wc_Sha224 sha;
- byte hash[WC_SHA224_DIGEST_SIZE];
-
- testVector a, b;
- testVector test_sha[2];
- int ret;
- int times = sizeof(test_sha) / sizeof(struct testVector), i;
-
- a.input = "abc";
- a.output = "\x23\x09\x7d\x22\x34\x05\xd8\x22\x86\x42\xa4\x77\xbd\xa2\x55"
- "\xb3\x2a\xad\xbc\xe4\xbd\xa0\xb3\xf7\xe3\x6c\x9d\xa7";
- a.inLen = XSTRLEN(a.input);
- a.outLen = WC_SHA224_DIGEST_SIZE;
-
- b.input = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
- b.output = "\x75\x38\x8b\x16\x51\x27\x76\xcc\x5d\xba\x5d\xa1\xfd\x89\x01"
- "\x50\xb0\xc6\x45\x5c\xb4\xf5\x8b\x19\x52\x52\x25\x25";
- b.inLen = XSTRLEN(b.input);
- b.outLen = WC_SHA224_DIGEST_SIZE;
-
- test_sha[0] = a;
- test_sha[1] = b;
-
- ret = wc_InitSha224(&sha);
- if (ret != 0)
- return -4005;
-
- for (i = 0; i < times; ++i) {
- ret = wc_Sha224Update(&sha, (byte*)test_sha[i].input,(word32)test_sha[i].inLen);
- if (ret != 0)
- return ret;
- ret = wc_Sha224Final(&sha, hash);
- if (ret != 0)
- return ret;
-
- if (XMEMCMP(hash, test_sha[i].output, WC_SHA224_DIGEST_SIZE) != 0)
- return -10 - i;
- }
-
- return 0;
-}
-#endif
-
-#ifndef NO_SHA256
-int sha256_test(void)
-{
- wc_Sha256 sha;
- byte hash[WC_SHA256_DIGEST_SIZE];
-
- testVector a, b;
- testVector test_sha[2];
- int ret;
- int times = sizeof(test_sha) / sizeof(struct testVector), i;
-
- a.input = "abc";
- a.output = "\xBA\x78\x16\xBF\x8F\x01\xCF\xEA\x41\x41\x40\xDE\x5D\xAE\x22"
- "\x23\xB0\x03\x61\xA3\x96\x17\x7A\x9C\xB4\x10\xFF\x61\xF2\x00"
- "\x15\xAD";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- b.input = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
- b.output = "\x24\x8D\x6A\x61\xD2\x06\x38\xB8\xE5\xC0\x26\x93\x0C\x3E\x60"
- "\x39\xA3\x3C\xE4\x59\x64\xFF\x21\x67\xF6\xEC\xED\xD4\x19\xDB"
- "\x06\xC1";
- b.inLen = XSTRLEN(b.input);
- b.outLen = XSTRLEN(b.output);
-
- test_sha[0] = a;
- test_sha[1] = b;
-
- ret = wc_InitSha256(&sha);
- if (ret != 0)
- return ret;
-
- for (i = 0; i < times; ++i) {
- ret = wc_Sha256Update(&sha, (byte*)test_sha[i].input,(word32)test_sha[i].inLen);
- if (ret != 0)
- return ret;
-
- ret = wc_Sha256Final(&sha, hash);
- if (ret != 0)
- return ret;
-
- if (XMEMCMP(hash, test_sha[i].output, WC_SHA256_DIGEST_SIZE) != 0)
- return -10 - i;
- }
-
- return 0;
-}
-#endif
-
-#ifdef WOLFSSL_SHA512
-int sha512_test(void)
-{
- wc_Sha512 sha;
- byte hash[WC_SHA512_DIGEST_SIZE];
-
- testVector a, b;
- testVector test_sha[2];
- int times = sizeof(test_sha) / sizeof(struct testVector), i;
- int ret;
-
- a.input = "abc";
- a.output = "\xdd\xaf\x35\xa1\x93\x61\x7a\xba\xcc\x41\x73\x49\xae\x20\x41"
- "\x31\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2\x0a\x9e\xee\xe6\x4b\x55"
- "\xd3\x9a\x21\x92\x99\x2a\x27\x4f\xc1\xa8\x36\xba\x3c\x23\xa3"
- "\xfe\xeb\xbd\x45\x4d\x44\x23\x64\x3c\xe8\x0e\x2a\x9a\xc9\x4f"
- "\xa5\x4c\xa4\x9f";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- b.input = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhi"
- "jklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu";
- b.output = "\x8e\x95\x9b\x75\xda\xe3\x13\xda\x8c\xf4\xf7\x28\x14\xfc\x14"
- "\x3f\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1\x72\x99\xae\xad\xb6\x88"
- "\x90\x18\x50\x1d\x28\x9e\x49\x00\xf7\xe4\x33\x1b\x99\xde\xc4"
- "\xb5\x43\x3a\xc7\xd3\x29\xee\xb6\xdd\x26\x54\x5e\x96\xe5\x5b"
- "\x87\x4b\xe9\x09";
- b.inLen = XSTRLEN(b.input);
- b.outLen = XSTRLEN(b.output);
-
- test_sha[0] = a;
- test_sha[1] = b;
-
- ret = wc_InitSha512(&sha);
- if (ret != 0)
- return ret;
-
- for (i = 0; i < times; ++i) {
- ret = wc_Sha512Update(&sha, (byte*)test_sha[i].input,(word32)test_sha[i].inLen);
- if (ret != 0)
- return ret;
-
- ret = wc_Sha512Final(&sha, hash);
- if (ret != 0)
- return ret;
-
- if (XMEMCMP(hash, test_sha[i].output, WC_SHA512_DIGEST_SIZE) != 0)
- return -10 - i;
- }
-
- return 0;
-}
-#endif
-
-#ifdef WOLFSSL_SHA384
-int sha384_test(void)
-{
- wc_Sha384 sha;
- byte hash[WC_SHA384_DIGEST_SIZE];
-
- testVector a, b;
- testVector test_sha[2];
- int times = sizeof(test_sha) / sizeof(struct testVector), i;
- int ret;
-
- a.input = "abc";
- a.output = "\xcb\x00\x75\x3f\x45\xa3\x5e\x8b\xb5\xa0\x3d\x69\x9a\xc6\x50"
- "\x07\x27\x2c\x32\xab\x0e\xde\xd1\x63\x1a\x8b\x60\x5a\x43\xff"
- "\x5b\xed\x80\x86\x07\x2b\xa1\xe7\xcc\x23\x58\xba\xec\xa1\x34"
- "\xc8\x25\xa7";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- b.input = "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhi"
- "jklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu";
- b.output = "\x09\x33\x0c\x33\xf7\x11\x47\xe8\x3d\x19\x2f\xc7\x82\xcd\x1b"
- "\x47\x53\x11\x1b\x17\x3b\x3b\x05\xd2\x2f\xa0\x80\x86\xe3\xb0"
- "\xf7\x12\xfc\xc7\xc7\x1a\x55\x7e\x2d\xb9\x66\xc3\xe9\xfa\x91"
- "\x74\x60\x39";
- b.inLen = XSTRLEN(b.input);
- b.outLen = XSTRLEN(b.output);
-
- test_sha[0] = a;
- test_sha[1] = b;
-
- ret = wc_InitSha384(&sha);
- if (ret != 0)
- return ret;
-
- for (i = 0; i < times; ++i) {
- ret = wc_Sha384Update(&sha, (byte*)test_sha[i].input,(word32)test_sha[i].inLen);
- if (ret != 0)
- return ret;
-
- ret = wc_Sha384Final(&sha, hash);
- if (ret != 0)
- return ret;
-
- if (XMEMCMP(hash, test_sha[i].output, WC_SHA384_DIGEST_SIZE) != 0)
- return -10 - i;
- }
-
- return 0;
-}
-#endif
-
-#ifdef WOLFSSL_RIPEMD
-int ripemd_test(void)
-{
- RipeMd ripemd;
- int ret;
- byte hash[RIPEMD_DIGEST_SIZE];
-
- testVector a, b, c, d;
- testVector test_ripemd[4];
- int times = sizeof(test_ripemd) / sizeof(struct testVector), i;
-
- a.input = "abc";
- a.output = "\x8e\xb2\x08\xf7\xe0\x5d\x98\x7a\x9b\x04\x4a\x8e\x98\xc6"
- "\xb0\x87\xf1\x5a\x0b\xfc";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- b.input = "message digest";
- b.output = "\x5d\x06\x89\xef\x49\xd2\xfa\xe5\x72\xb8\x81\xb1\x23\xa8"
- "\x5f\xfa\x21\x59\x5f\x36";
- b.inLen = XSTRLEN(b.input);
- b.outLen = XSTRLEN(b.output);
-
- c.input = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
- c.output = "\x12\xa0\x53\x38\x4a\x9c\x0c\x88\xe4\x05\xa0\x6c\x27\xdc"
- "\xf4\x9a\xda\x62\xeb\x2b";
- c.inLen = XSTRLEN(c.input);
- c.outLen = XSTRLEN(c.output);
-
- d.input = "12345678901234567890123456789012345678901234567890123456"
- "789012345678901234567890";
- d.output = "\x9b\x75\x2e\x45\x57\x3d\x4b\x39\xf4\xdb\xd3\x32\x3c\xab"
- "\x82\xbf\x63\x32\x6b\xfb";
- d.inLen = XSTRLEN(d.input);
- d.outLen = XSTRLEN(d.output);
-
- test_ripemd[0] = a;
- test_ripemd[1] = b;
- test_ripemd[2] = c;
- test_ripemd[3] = d;
-
- ret = wc_InitRipeMd(&ripemd);
- if (ret) {
- return ret;
- }
-
- for (i = 0; i < times; ++i) {
- ret = wc_RipeMdUpdate(&ripemd, (byte*)test_ripemd[i].input,
- (word32)test_ripemd[i].inLen);
- if (ret) {
- return ret;
- }
-
- ret = wc_RipeMdFinal(&ripemd, hash);
- if (ret) {
- return ret;
- }
-
- if (XMEMCMP(hash, test_ripemd[i].output, RIPEMD_DIGEST_SIZE) != 0)
- return -10 - i;
- }
-
- return 0;
-}
-#endif /* WOLFSSL_RIPEMD */
-
-#if !defined(NO_HMAC) && !defined(NO_MD5)
-int hmac_md5_test(void)
-{
- Hmac hmac;
- byte hash[WC_MD5_DIGEST_SIZE];
-
- const char* keys[]=
- {
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
- "Jefe",
- "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
- };
-
- testVector a, b, c;
- testVector test_hmac[3];
-
- int ret;
- int times = sizeof(test_hmac) / sizeof(testVector), i;
-
- a.input = "Hi There";
- a.output = "\x92\x94\x72\x7a\x36\x38\xbb\x1c\x13\xf4\x8e\xf8\x15\x8b\xfc"
- "\x9d";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- b.input = "what do ya want for nothing?";
- b.output = "\x75\x0c\x78\x3e\x6a\xb0\xb5\x03\xea\xa8\x6e\x31\x0a\x5d\xb7"
- "\x38";
- b.inLen = XSTRLEN(b.input);
- b.outLen = XSTRLEN(b.output);
-
- c.input = "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD";
- c.output = "\x56\xbe\x34\x52\x1d\x14\x4c\x88\xdb\xb8\xc7\x33\xf0\xe8\xb3"
- "\xf6";
- c.inLen = XSTRLEN(c.input);
- c.outLen = XSTRLEN(c.output);
-
- test_hmac[0] = a;
- test_hmac[1] = b;
- test_hmac[2] = c;
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return -20009;
-
- for (i = 0; i < times; ++i) {
-#if defined(HAVE_FIPS)
- if (i == 1)
- continue; /* fips not allowed */
-#endif
- ret = wc_HmacSetKey(&hmac, WC_MD5, (byte*)keys[i], (word32)XSTRLEN(keys[i]));
- if (ret != 0)
- return -4014;
- ret = wc_HmacUpdate(&hmac, (byte*)test_hmac[i].input,
- (word32)test_hmac[i].inLen);
- if (ret != 0)
- return -4015;
- ret = wc_HmacFinal(&hmac, hash);
- if (ret != 0)
- return -4016;
-
- if (XMEMCMP(hash, test_hmac[i].output, WC_MD5_DIGEST_SIZE) != 0)
- return -20 - i;
- }
-
- wc_HmacFree(&hmac);
-
- return 0;
-}
-#endif
-
-#if !defined(NO_HMAC) && !defined(NO_SHA)
-int hmac_sha_test(void)
-{
- Hmac hmac;
- byte hash[WC_SHA_DIGEST_SIZE];
-
- const char* keys[]=
- {
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
- "\x0b\x0b\x0b",
- "Jefe",
- "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
- "\xAA\xAA\xAA"
- };
-
- testVector a, b, c;
- testVector test_hmac[3];
-
- int ret;
- int times = sizeof(test_hmac) / sizeof(testVector), i;
-
- a.input = "Hi There";
- a.output = "\xb6\x17\x31\x86\x55\x05\x72\x64\xe2\x8b\xc0\xb6\xfb\x37\x8c"
- "\x8e\xf1\x46\xbe\x00";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- b.input = "what do ya want for nothing?";
- b.output = "\xef\xfc\xdf\x6a\xe5\xeb\x2f\xa2\xd2\x74\x16\xd5\xf1\x84\xdf"
- "\x9c\x25\x9a\x7c\x79";
- b.inLen = XSTRLEN(b.input);
- b.outLen = XSTRLEN(b.output);
-
- c.input = "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD";
- c.output = "\x12\x5d\x73\x42\xb9\xac\x11\xcd\x91\xa3\x9a\xf4\x8a\xa1\x7b"
- "\x4f\x63\xf1\x75\xd3";
- c.inLen = XSTRLEN(c.input);
- c.outLen = XSTRLEN(c.output);
-
- test_hmac[0] = a;
- test_hmac[1] = b;
- test_hmac[2] = c;
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return -20009;
-
- for (i = 0; i < times; ++i) {
-#if defined(HAVE_FIPS)
- if (i == 1)
- continue; /* fips not allowed */
-#endif
- ret = wc_HmacSetKey(&hmac, WC_SHA, (byte*)keys[i], (word32)XSTRLEN(keys[i]));
- if (ret != 0)
- return -4017;
- ret = wc_HmacUpdate(&hmac, (byte*)test_hmac[i].input,
- (word32)test_hmac[i].inLen);
- if (ret != 0)
- return -4018;
- ret = wc_HmacFinal(&hmac, hash);
- if (ret != 0)
- return -4019;
-
- if (XMEMCMP(hash, test_hmac[i].output, WC_SHA_DIGEST_SIZE) != 0)
- return -20 - i;
- }
-
- wc_HmacFree(&hmac);
-
- return 0;
-}
-#endif
-
-#if !defined(NO_HMAC) && defined(WOLFSSL_SHA224)
-int hmac_sha224_test(void)
-{
- Hmac hmac;
- byte hash[WC_SHA224_DIGEST_SIZE];
-
- const char* keys[]=
- {
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
- "\x0b\x0b\x0b",
- "Jefe",
- "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
- "\xAA\xAA\xAA"
- };
-
- testVector a, b, c;
- testVector test_hmac[3];
-
- int ret;
- int times = sizeof(test_hmac) / sizeof(testVector), i;
-
- a.input = "Hi There";
- a.output = "\x89\x6f\xb1\x12\x8a\xbb\xdf\x19\x68\x32\x10\x7c\xd4\x9d\xf3"
- "\x3f\x47\xb4\xb1\x16\x99\x12\xba\x4f\x53\x68\x4b\x22";
- a.inLen = XSTRLEN(a.input);
- a.outLen = WC_SHA224_DIGEST_SIZE;
-
- b.input = "what do ya want for nothing?";
- b.output = "\xa3\x0e\x01\x09\x8b\xc6\xdb\xbf\x45\x69\x0f\x3a\x7e\x9e\x6d"
- "\x0f\x8b\xbe\xa2\xa3\x9e\x61\x48\x00\x8f\xd0\x5e\x44";
- b.inLen = XSTRLEN(b.input);
- b.outLen = WC_SHA224_DIGEST_SIZE;
-
- c.input = "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD";
- c.output = "\x7f\xb3\xcb\x35\x88\xc6\xc1\xf6\xff\xa9\x69\x4d\x7d\x6a\xd2"
- "\x64\x93\x65\xb0\xc1\xf6\x5d\x69\xd1\xec\x83\x33\xea";
- c.inLen = XSTRLEN(c.input);
- c.outLen = WC_SHA224_DIGEST_SIZE;
-
- test_hmac[0] = a;
- test_hmac[1] = b;
- test_hmac[2] = c;
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return -20009;
-
- for (i = 0; i < times; ++i) {
-#if defined(HAVE_FIPS) || defined(HAVE_CAVIUM)
- if (i == 1)
- continue; /* cavium can't handle short keys, fips not allowed */
-#endif
- ret = wc_HmacSetKey(&hmac, WC_SHA224, (byte*)keys[i],(word32)XSTRLEN(keys[i]));
- if (ret != 0)
- return -4021;
- ret = wc_HmacUpdate(&hmac, (byte*)test_hmac[i].input,
- (word32)test_hmac[i].inLen);
- if (ret != 0)
- return -4022;
- ret = wc_HmacFinal(&hmac, hash);
- if (ret != 0)
- return -4023;
-
- if (XMEMCMP(hash, test_hmac[i].output, WC_SHA224_DIGEST_SIZE) != 0)
- return -20 - i;
- }
-
- wc_HmacFree(&hmac);
-
- return 0;
-}
-#endif
-
-
-#if !defined(NO_HMAC) && !defined(NO_SHA256)
-int hmac_sha256_test(void)
-{
- Hmac hmac;
- byte hash[WC_SHA256_DIGEST_SIZE];
-
- const char* keys[]=
- {
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
- "\x0b\x0b\x0b",
- "Jefe",
- "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
- "\xAA\xAA\xAA"
- };
-
- testVector a, b, c;
- testVector test_hmac[3];
-
- int ret;
- int times = sizeof(test_hmac) / sizeof(testVector), i;
-
- a.input = "Hi There";
- a.output = "\xb0\x34\x4c\x61\xd8\xdb\x38\x53\x5c\xa8\xaf\xce\xaf\x0b\xf1"
- "\x2b\x88\x1d\xc2\x00\xc9\x83\x3d\xa7\x26\xe9\x37\x6c\x2e\x32"
- "\xcf\xf7";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- b.input = "what do ya want for nothing?";
- b.output = "\x5b\xdc\xc1\x46\xbf\x60\x75\x4e\x6a\x04\x24\x26\x08\x95\x75"
- "\xc7\x5a\x00\x3f\x08\x9d\x27\x39\x83\x9d\xec\x58\xb9\x64\xec"
- "\x38\x43";
- b.inLen = XSTRLEN(b.input);
- b.outLen = XSTRLEN(b.output);
-
- c.input = "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD";
- c.output = "\x77\x3e\xa9\x1e\x36\x80\x0e\x46\x85\x4d\xb8\xeb\xd0\x91\x81"
- "\xa7\x29\x59\x09\x8b\x3e\xf8\xc1\x22\xd9\x63\x55\x14\xce\xd5"
- "\x65\xfe";
- c.inLen = XSTRLEN(c.input);
- c.outLen = XSTRLEN(c.output);
-
- test_hmac[0] = a;
- test_hmac[1] = b;
- test_hmac[2] = c;
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return -20009;
-
- for (i = 0; i < times; ++i) {
-#if defined(HAVE_FIPS)
- if (i == 1)
- continue; /* fips not allowed */
-#endif
- ret = wc_HmacSetKey(&hmac, WC_SHA256, (byte*)keys[i],
- (word32)XSTRLEN(keys[i]));
- if (ret != 0)
- return -4020;
- ret = wc_HmacUpdate(&hmac, (byte*)test_hmac[i].input,
- (word32)test_hmac[i].inLen);
- if (ret != 0)
- return -4021;
- ret = wc_HmacFinal(&hmac, hash);
- if (ret != 0)
- return -4022;
-
- if (XMEMCMP(hash, test_hmac[i].output, WC_SHA256_DIGEST_SIZE) != 0)
- return -20 - i;
- }
-
- wc_HmacFree(&hmac);
-
- return 0;
-}
-#endif
-
-
-#if !defined(NO_HMAC) && defined(WOLFSSL_SHA384)
-int hmac_sha384_test(void)
-{
- Hmac hmac;
- byte hash[WC_SHA384_DIGEST_SIZE];
-
- const char* keys[]=
- {
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
- "\x0b\x0b\x0b",
- "Jefe",
- "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
- "\xAA\xAA\xAA"
- };
-
- testVector a, b, c;
- testVector test_hmac[3];
-
- int ret;
- int times = sizeof(test_hmac) / sizeof(testVector), i;
-
- a.input = "Hi There";
- a.output = "\xaf\xd0\x39\x44\xd8\x48\x95\x62\x6b\x08\x25\xf4\xab\x46\x90"
- "\x7f\x15\xf9\xda\xdb\xe4\x10\x1e\xc6\x82\xaa\x03\x4c\x7c\xeb"
- "\xc5\x9c\xfa\xea\x9e\xa9\x07\x6e\xde\x7f\x4a\xf1\x52\xe8\xb2"
- "\xfa\x9c\xb6";
- a.inLen = XSTRLEN(a.input);
- a.outLen = XSTRLEN(a.output);
-
- b.input = "what do ya want for nothing?";
- b.output = "\xaf\x45\xd2\xe3\x76\x48\x40\x31\x61\x7f\x78\xd2\xb5\x8a\x6b"
- "\x1b\x9c\x7e\xf4\x64\xf5\xa0\x1b\x47\xe4\x2e\xc3\x73\x63\x22"
- "\x44\x5e\x8e\x22\x40\xca\x5e\x69\xe2\xc7\x8b\x32\x39\xec\xfa"
- "\xb2\x16\x49";
- b.inLen = XSTRLEN(b.input);
- b.outLen = XSTRLEN(b.output);
-
- c.input = "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"
- "\xDD\xDD\xDD\xDD\xDD\xDD";
- c.output = "\x88\x06\x26\x08\xd3\xe6\xad\x8a\x0a\xa2\xac\xe0\x14\xc8\xa8"
- "\x6f\x0a\xa6\x35\xd9\x47\xac\x9f\xeb\xe8\x3e\xf4\xe5\x59\x66"
- "\x14\x4b\x2a\x5a\xb3\x9d\xc1\x38\x14\xb9\x4e\x3a\xb6\xe1\x01"
- "\xa3\x4f\x27";
- c.inLen = XSTRLEN(c.input);
- c.outLen = XSTRLEN(c.output);
-
- test_hmac[0] = a;
- test_hmac[1] = b;
- test_hmac[2] = c;
-
- ret = wc_HmacInit(&hmac, NULL, INVALID_DEVID);
- if (ret != 0)
- return -20009;
-
- for (i = 0; i < times; ++i) {
-#if defined(HAVE_FIPS)
- if (i == 1)
- continue; /* fips not allowed */
-#endif
- ret = wc_HmacSetKey(&hmac, WC_SHA384, (byte*)keys[i],
- (word32)XSTRLEN(keys[i]));
- if (ret != 0)
- return -4023;
- ret = wc_HmacUpdate(&hmac, (byte*)test_hmac[i].input,
- (word32)test_hmac[i].inLen);
- if (ret != 0)
- return -4024;
- ret = wc_HmacFinal(&hmac, hash);
- if (ret != 0)
- return -4025;
-
- if (XMEMCMP(hash, test_hmac[i].output, WC_SHA384_DIGEST_SIZE) != 0)
- return -20 - i;
- }
-
- wc_HmacFree(&hmac);
-
- return 0;
-}
-#endif
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/include.am b/FreeRTOS-Plus/Source/WolfSSL/tests/include.am
deleted file mode 100644
index ee4952667..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/include.am
+++ /dev/null
@@ -1,48 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-
-if BUILD_TESTS
-check_PROGRAMS += tests/unit.test
-noinst_PROGRAMS += tests/unit.test
-tests_unit_test_SOURCES = \
- tests/unit.c \
- tests/api.c \
- tests/suites.c \
- tests/hash.c \
- tests/srp.c \
- examples/client/client.c \
- examples/server/server.c
-tests_unit_test_CFLAGS = -DNO_MAIN_DRIVER $(AM_CFLAGS)
-tests_unit_test_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-tests_unit_test_DEPENDENCIES = src/libwolfssl.la
-endif
-EXTRA_DIST += tests/unit.h
-EXTRA_DIST += tests/test.conf \
- tests/test-sha2.conf \
- tests/test-tls13.conf \
- tests/test-tls13-down.conf \
- tests/test-tls13-ecc.conf \
- tests/test-tls13-psk.conf \
- tests/test-qsh.conf \
- tests/test-qsh-sha2.conf \
- tests/test-psk.conf \
- tests/test-psk-no-id.conf \
- tests/test-psk-no-id-sha2.conf \
- tests/test-dtls.conf \
- tests/test-dtls-sha2.conf \
- tests/test-sctp.conf \
- tests/test-sctp-sha2.conf \
- tests/test-sig.conf \
- tests/test-ed25519.conf \
- tests/test-ed448.conf \
- tests/test-enckeys.conf \
- tests/test-maxfrag.conf \
- tests/test-maxfrag-dtls.conf \
- tests/test-fails.conf \
- tests/test-chains.conf \
- tests/test-altchains.conf \
- tests/test-trustpeer.conf \
- tests/test-dhprime.conf
-DISTCLEANFILES+= tests/.libs/unit.test
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/srp.c b/FreeRTOS-Plus/Source/WolfSSL/tests/srp.c
deleted file mode 100644
index 504fbfb1c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/srp.c
+++ /dev/null
@@ -1,838 +0,0 @@
-/* srp.c SRP unit tests
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#include <tests/unit.h>
-#include <wolfssl/wolfcrypt/sha512.h>
-#include <wolfssl/wolfcrypt/srp.h>
-
-#if defined(WOLFCRYPT_HAVE_SRP) && defined(WOLFSSL_SHA512)
-
-static byte username[] = "user";
-static word32 usernameSz = 4;
-
-static byte password[] = "password";
-static word32 passwordSz = 8;
-
-static byte srp_N[] = {
- 0xD4, 0xC7, 0xF8, 0xA2, 0xB3, 0x2C, 0x11, 0xB8, 0xFB, 0xA9, 0x58, 0x1E,
- 0xC4, 0xBA, 0x4F, 0x1B, 0x04, 0x21, 0x56, 0x42, 0xEF, 0x73, 0x55, 0xE3,
- 0x7C, 0x0F, 0xC0, 0x44, 0x3E, 0xF7, 0x56, 0xEA, 0x2C, 0x6B, 0x8E, 0xEB,
- 0x75, 0x5A, 0x1C, 0x72, 0x30, 0x27, 0x66, 0x3C, 0xAA, 0x26, 0x5E, 0xF7,
- 0x85, 0xB8, 0xFF, 0x6A, 0x9B, 0x35, 0x22, 0x7A, 0x52, 0xD8, 0x66, 0x33,
- 0xDB, 0xDF, 0xCA, 0x43
-};
-
-static byte srp_g[] = {
- 0x02
-};
-
-static byte srp_salt[] = {
- 0x80, 0x66, 0x61, 0x5B, 0x7D, 0x33, 0xA2, 0x2E, 0x79, 0x18
-};
-
-static byte srp_verifier[] = {
- 0x24, 0x5F, 0xA5, 0x1B, 0x2A, 0x28, 0xF8, 0xFF, 0xE2, 0xA0, 0xF8, 0x61,
- 0x7B, 0x0F, 0x3C, 0x05, 0xD6, 0x4A, 0x55, 0xDF, 0x74, 0x31, 0x54, 0x47,
- 0xA1, 0xFA, 0x9D, 0x25, 0x7B, 0x02, 0x88, 0x0A, 0xE8, 0x5A, 0xBA, 0x8B,
- 0xA2, 0xD3, 0x8A, 0x62, 0x46, 0x8C, 0xEC, 0x52, 0xBE, 0xDE, 0xFC, 0x75,
- 0xF5, 0xDB, 0x9C, 0x8C, 0x9B, 0x34, 0x7A, 0xE7, 0x4A, 0x5F, 0xBB, 0x96,
- 0x38, 0x19, 0xAB, 0x24
-};
-
-static byte srp_a[] = {
- 0x37, 0x95, 0xF2, 0xA6, 0xF1, 0x6F, 0x0D, 0x58, 0xBF, 0xED, 0x44, 0x87,
- 0xE0, 0xB6, 0xCC, 0x1C, 0xA0, 0x50, 0xC6, 0x61, 0xBB, 0x36, 0xE0, 0x9A,
- 0xF3, 0xF7, 0x1E, 0x7A, 0x61, 0x86, 0x5A, 0xF5
-};
-
-static byte srp_A[] = {
- 0x8D, 0x28, 0xC5, 0x6A, 0x46, 0x5C, 0x82, 0xDB, 0xC7, 0xF6, 0x8B, 0x62,
- 0x1A, 0xAD, 0xA1, 0x76, 0x1B, 0x55, 0xFF, 0xAB, 0x10, 0x2F, 0xFF, 0x4A,
- 0xAA, 0x46, 0xAD, 0x33, 0x64, 0xDE, 0x28, 0x2E, 0x82, 0x7A, 0xBE, 0xEA,
- 0x32, 0xFC, 0xD6, 0x14, 0x01, 0x71, 0xE6, 0xC8, 0xC9, 0x53, 0x69, 0x55,
- 0xE1, 0xF8, 0x3D, 0xDD, 0xC7, 0xD5, 0x21, 0xCE, 0xFF, 0x17, 0xFC, 0x23,
- 0xBF, 0xCF, 0x2D, 0xB0
-};
-
-static byte srp_b[] = {
- 0x2B, 0xDD, 0x30, 0x30, 0x53, 0xAF, 0xD8, 0x3A, 0xE7, 0xE0, 0x17, 0x82,
- 0x39, 0x44, 0x2C, 0xDB, 0x30, 0x88, 0x0F, 0xC8, 0x88, 0xC2, 0xB2, 0xC1,
- 0x78, 0x43, 0x2F, 0xD5, 0x60, 0xD4, 0xDA, 0x43
-};
-
-static byte srp_B[] = {
- 0xB5, 0x80, 0x36, 0x7F, 0x50, 0x89, 0xC1, 0x04, 0x42, 0x98, 0xD7, 0x6A,
- 0x37, 0x8E, 0xF1, 0x81, 0x52, 0xC5, 0x7A, 0xA1, 0xD5, 0xB7, 0x66, 0x84,
- 0xA1, 0x3E, 0x32, 0x82, 0x2B, 0x3A, 0xB5, 0xD7, 0x3D, 0x50, 0xF1, 0x58,
- 0xBD, 0x89, 0x75, 0xC7, 0x51, 0xCF, 0x6C, 0x03, 0xD4, 0xCA, 0xD5, 0x6E,
- 0x97, 0x4D, 0xA3, 0x1E, 0x19, 0x0B, 0xF0, 0xAA, 0x7D, 0x14, 0x90, 0x80,
- 0x0E, 0xC7, 0x92, 0xAD
-};
-
-static byte srp_key[] = {
- 0x66, 0x00, 0x9D, 0x58, 0xB3, 0xD2, 0x0D, 0x4B, 0x69, 0x7F, 0xCF, 0x48,
- 0xFF, 0x8F, 0x15, 0x81, 0x4C, 0x4B, 0xFE, 0x9D, 0x85, 0x77, 0x88, 0x60,
- 0x1D, 0x1E, 0x51, 0xCF, 0x75, 0xCC, 0x58, 0x00, 0xE7, 0x8D, 0x22, 0x87,
- 0x13, 0x6C, 0x88, 0x55
-};
-
-static byte srp_client_proof[] = {
- 0x0D, 0x49, 0xE1, 0x9C, 0x3A, 0x88, 0x43, 0x15, 0x45, 0xA8, 0xAC, 0xAB,
- 0xEA, 0x15, 0x1A, 0xEE, 0xF9, 0x38, 0x4D, 0x21
-};
-
-static byte srp_server_proof[] = {
- 0xBD, 0xB1, 0x20, 0x70, 0x46, 0xC9, 0xD6, 0xCC, 0xE2, 0x1D, 0x75, 0xA2,
- 0xD0, 0xAF, 0xC5, 0xBC, 0xAE, 0x12, 0xFC, 0x75
-};
-
-static void test_SrpInit(void)
-{
- Srp srp;
-
- /* invalid params */
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpInit(NULL, SRP_TYPE_SHA, SRP_CLIENT_SIDE));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpInit(&srp, (SrpType)255, SRP_CLIENT_SIDE));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpInit(&srp, SRP_TYPE_SHA, (SrpSide)255));
-
- /* success */
- AssertIntEQ(0, wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_CLIENT_SIDE));
-
- wc_SrpTerm(&srp);
-}
-
-static void test_SrpSetUsername(void)
-{
- Srp srp;
-
- AssertIntEQ(0, wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_CLIENT_SIDE));
-
- /* invalid params */
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpSetUsername(NULL, username, usernameSz));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpSetUsername(&srp, NULL, usernameSz));
-
- /* success */
- AssertIntEQ(0, wc_SrpSetUsername(&srp, username, usernameSz));
- AssertIntEQ((int) usernameSz, srp.userSz);
- AssertIntEQ(0, XMEMCMP(srp.user, username, usernameSz));
-
- wc_SrpTerm(&srp);
-}
-
-static void test_SrpSetParams(void)
-{
- Srp srp;
-
- AssertIntEQ(0, wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_CLIENT_SIDE));
-
- /* invalid call order */
- AssertIntEQ(SRP_CALL_ORDER_E, wc_SrpSetParams(&srp,
- srp_N, sizeof(srp_N),
- srp_g, sizeof(srp_g),
- srp_salt, sizeof(srp_salt)));
-
- /* fix call order */
- AssertIntEQ(0, wc_SrpSetUsername(&srp, username, usernameSz));
-
- /* invalid params */
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpSetParams(NULL,
- srp_N, sizeof(srp_N),
- srp_g, sizeof(srp_g),
- srp_salt, sizeof(srp_salt)));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpSetParams(&srp,
- NULL, sizeof(srp_N),
- srp_g, sizeof(srp_g),
- srp_salt, sizeof(srp_salt)));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpSetParams(&srp,
- srp_N, sizeof(srp_N),
- NULL, sizeof(srp_g),
- srp_salt, sizeof(srp_salt)));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpSetParams(&srp,
- srp_N, sizeof(srp_N),
- srp_g, sizeof(srp_g),
- NULL, sizeof(srp_salt)));
-
- /* success */
- AssertIntEQ(0, wc_SrpSetParams(&srp, srp_N, sizeof(srp_N),
- srp_g, sizeof(srp_g),
- srp_salt, sizeof(srp_salt)));
-
- AssertIntEQ(sizeof(srp_salt), srp.saltSz);
- AssertIntEQ(0, XMEMCMP(srp.salt, srp_salt, srp.saltSz));
-
- wc_SrpTerm(&srp);
-}
-
-static void test_SrpSetPassword(void)
-{
- Srp srp;
- byte v[64];
- word32 vSz = 0;
-
- AssertIntEQ(0, wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_CLIENT_SIDE));
- AssertIntEQ(0, wc_SrpSetUsername(&srp, username, usernameSz));
-
- /* invalid call order */
- AssertIntEQ(SRP_CALL_ORDER_E,
- wc_SrpSetPassword(&srp, password, passwordSz));
- AssertIntEQ(SRP_CALL_ORDER_E,
- wc_SrpGetVerifier(&srp, v, &vSz));
-
- /* fix call order */
- AssertIntEQ(0, wc_SrpSetParams(&srp, srp_N, sizeof(srp_N),
- srp_g, sizeof(srp_g),
- srp_salt, sizeof(srp_salt)));
-
- /* invalid params */
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpSetPassword(NULL, password, passwordSz));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpSetPassword(&srp, NULL, passwordSz));
-
- /* success */
- AssertIntEQ(0, wc_SrpSetPassword(&srp, password, passwordSz));
-
- /* invalid params */
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpGetVerifier(NULL, v, &vSz));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpGetVerifier(&srp, NULL, &vSz));
- AssertIntEQ(BUFFER_E, wc_SrpGetVerifier(&srp, v, &vSz));
-
- /* success */
- vSz = sizeof(v);
- AssertIntEQ(0, wc_SrpGetVerifier(&srp, v, &vSz));
- AssertIntEQ(vSz, sizeof(srp_verifier));
- AssertIntEQ(0, XMEMCMP(srp_verifier, v, vSz));
-
- /* invalid params - client side srp */
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpSetVerifier(&srp, v, vSz));
-
- wc_SrpTerm(&srp);
- AssertIntEQ(0, wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_SERVER_SIDE));
-
- /* invalid params */
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpSetVerifier(NULL, v, vSz));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpSetVerifier(&srp, NULL, vSz));
-
- /* success */
- AssertIntEQ(0, wc_SrpSetVerifier(&srp, v, vSz));
-
- wc_SrpTerm(&srp);
-}
-
-static void test_SrpGetPublic(void)
-{
- Srp srp;
- byte pub[64];
- word32 pubSz = 0;
-
- AssertIntEQ(0, wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_CLIENT_SIDE));
- AssertIntEQ(0, wc_SrpSetUsername(&srp, username, usernameSz));
- AssertIntEQ(0, wc_SrpSetParams(&srp, srp_N, sizeof(srp_N),
- srp_g, sizeof(srp_g),
- srp_salt, sizeof(srp_salt)));
-
- /* invalid call order */
- AssertIntEQ(SRP_CALL_ORDER_E, wc_SrpGetPublic(&srp, pub, &pubSz));
-
- /* fix call order */
- AssertIntEQ(0, wc_SrpSetPassword(&srp, password, passwordSz));
-
- /* invalid params */
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpGetPublic(NULL, pub, &pubSz));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpGetPublic(&srp, NULL, &pubSz));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpGetPublic(&srp, pub, NULL));
- AssertIntEQ(BUFFER_E, wc_SrpGetPublic(&srp, pub, &pubSz));
-
- /* success */
- pubSz = sizeof(pub);
- AssertIntEQ(0, wc_SrpSetPrivate(&srp, srp_a, sizeof(srp_a)));
- AssertIntEQ(0, wc_SrpGetPublic(&srp, pub, &pubSz));
- AssertIntEQ(pubSz, sizeof(srp_A));
- AssertIntEQ(0, XMEMCMP(pub, srp_A, pubSz));
-
- wc_SrpTerm(&srp);
-
- AssertIntEQ(0, wc_SrpInit(&srp, SRP_TYPE_SHA, SRP_SERVER_SIDE));
- AssertIntEQ(0, wc_SrpSetUsername(&srp, username, usernameSz));
- AssertIntEQ(0, wc_SrpSetParams(&srp, srp_N, sizeof(srp_N),
- srp_g, sizeof(srp_g),
- srp_salt, sizeof(srp_salt)));
-
- /* invalid call order */
- AssertIntEQ(SRP_CALL_ORDER_E, wc_SrpGetPublic(&srp, pub, &pubSz));
-
- /* fix call order */
- AssertIntEQ(0, wc_SrpSetVerifier(&srp, srp_verifier, sizeof(srp_verifier)));
-
- /* success */
- AssertIntEQ(0, wc_SrpSetPrivate(&srp, srp_b, sizeof(srp_b)));
- AssertIntEQ(0, wc_SrpGetPublic(&srp, pub, &pubSz));
- AssertIntEQ(pubSz, sizeof(srp_B));
- AssertIntEQ(0, XMEMCMP(pub, srp_B, pubSz));
-
- wc_SrpTerm(&srp);
-}
-
-static void test_SrpComputeKey(void)
-{
- Srp cli, srv;
- byte clientPubKey[64];
- byte serverPubKey[64];
- word32 clientPubKeySz = 64;
- word32 serverPubKeySz = 64;
-
- AssertIntEQ(0, wc_SrpInit(&cli, SRP_TYPE_SHA, SRP_CLIENT_SIDE));
- AssertIntEQ(0, wc_SrpInit(&srv, SRP_TYPE_SHA, SRP_SERVER_SIDE));
-
- /* invalid call order */
- AssertIntEQ(SRP_CALL_ORDER_E, wc_SrpComputeKey(&cli,
- clientPubKey, clientPubKeySz,
- serverPubKey, serverPubKeySz));
-
- /* fix call order */
- AssertIntEQ(0, wc_SrpSetUsername(&cli, username, usernameSz));
- AssertIntEQ(0, wc_SrpSetUsername(&srv, username, usernameSz));
-
- AssertIntEQ(0, wc_SrpSetParams(&cli, srp_N, sizeof(srp_N),
- srp_g, sizeof(srp_g),
- srp_salt, sizeof(srp_salt)));
- AssertIntEQ(0, wc_SrpSetParams(&srv, srp_N, sizeof(srp_N),
- srp_g, sizeof(srp_g),
- srp_salt, sizeof(srp_salt)));
-
- AssertIntEQ(0, wc_SrpSetPassword(&cli, password, passwordSz));
- AssertIntEQ(0, wc_SrpSetVerifier(&srv, srp_verifier, sizeof(srp_verifier)));
-
- AssertIntEQ(0, wc_SrpSetPrivate(&cli, srp_a, sizeof(srp_a)));
- AssertIntEQ(0, wc_SrpGetPublic(&cli, clientPubKey, &clientPubKeySz));
- AssertIntEQ(0, XMEMCMP(clientPubKey, srp_A, clientPubKeySz));
- AssertIntEQ(0, wc_SrpSetPrivate(&srv, srp_b, sizeof(srp_b)));
- AssertIntEQ(0, wc_SrpGetPublic(&srv, serverPubKey, &serverPubKeySz));
- AssertIntEQ(0, XMEMCMP(serverPubKey, srp_B, serverPubKeySz));
-
- /* invalid params */
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpComputeKey(NULL,
- clientPubKey, clientPubKeySz,
- serverPubKey, serverPubKeySz));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpComputeKey(&cli,
- NULL, clientPubKeySz,
- serverPubKey, serverPubKeySz));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpComputeKey(&cli,
- clientPubKey, 0,
- serverPubKey, serverPubKeySz));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpComputeKey(&cli,
- clientPubKey, clientPubKeySz,
- NULL, serverPubKeySz));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpComputeKey(&cli,
- clientPubKey, clientPubKeySz,
- serverPubKey, 0));
-
- /* success */
- AssertIntEQ(0, wc_SrpComputeKey(&cli, clientPubKey, clientPubKeySz,
- serverPubKey, serverPubKeySz));
- AssertIntEQ(0, wc_SrpComputeKey(&srv, clientPubKey, clientPubKeySz,
- serverPubKey, serverPubKeySz));
- AssertIntEQ(0, XMEMCMP(cli.key, srp_key, sizeof(srp_key)));
- AssertIntEQ(0, XMEMCMP(srv.key, srp_key, sizeof(srp_key)));
-
- wc_SrpTerm(&cli);
- wc_SrpTerm(&srv);
-}
-
-static void test_SrpGetProofAndVerify(void)
-{
- Srp cli, srv;
- byte clientPubKey[64];
- byte serverPubKey[64];
- word32 clientPubKeySz = 64;
- word32 serverPubKeySz = 64;
- byte clientProof[SRP_MAX_DIGEST_SIZE];
- byte serverProof[SRP_MAX_DIGEST_SIZE];
- word32 clientProofSz = SRP_MAX_DIGEST_SIZE;
- word32 serverProofSz = SRP_MAX_DIGEST_SIZE;
-
- AssertIntEQ(0, wc_SrpInit(&cli, SRP_TYPE_SHA, SRP_CLIENT_SIDE));
- AssertIntEQ(0, wc_SrpInit(&srv, SRP_TYPE_SHA, SRP_SERVER_SIDE));
-
- AssertIntEQ(0, wc_SrpSetUsername(&cli, username, usernameSz));
- AssertIntEQ(0, wc_SrpSetUsername(&srv, username, usernameSz));
-
- AssertIntEQ(0, wc_SrpSetParams(&cli, srp_N, sizeof(srp_N),
- srp_g, sizeof(srp_g),
- srp_salt, sizeof(srp_salt)));
- AssertIntEQ(0, wc_SrpSetParams(&srv, srp_N, sizeof(srp_N),
- srp_g, sizeof(srp_g),
- srp_salt, sizeof(srp_salt)));
-
- AssertIntEQ(0, wc_SrpSetPassword(&cli, password, passwordSz));
- AssertIntEQ(0, wc_SrpSetVerifier(&srv, srp_verifier, sizeof(srp_verifier)));
-
- AssertIntEQ(0, wc_SrpSetPrivate(&cli, srp_a, sizeof(srp_a)));
- AssertIntEQ(0, wc_SrpGetPublic(&cli, clientPubKey, &clientPubKeySz));
- AssertIntEQ(0, XMEMCMP(clientPubKey, srp_A, clientPubKeySz));
-
- AssertIntEQ(0, wc_SrpSetPrivate(&srv, srp_b, sizeof(srp_b)));
- AssertIntEQ(0, wc_SrpGetPublic(&srv, serverPubKey, &serverPubKeySz));
- AssertIntEQ(0, XMEMCMP(serverPubKey, srp_B, serverPubKeySz));
-
- AssertIntEQ(0, wc_SrpComputeKey(&cli, clientPubKey, clientPubKeySz,
- serverPubKey, serverPubKeySz));
- AssertIntEQ(0, XMEMCMP(cli.key, srp_key, sizeof(srp_key)));
-
- AssertIntEQ(0, wc_SrpComputeKey(&srv, clientPubKey, clientPubKeySz,
- serverPubKey, serverPubKeySz));
- AssertIntEQ(0, XMEMCMP(srv.key, srp_key, sizeof(srp_key)));
-
- /* invalid params */
- serverProofSz = 0;
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpGetProof(NULL, clientProof,&clientProofSz));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpGetProof(&cli, NULL, &clientProofSz));
- AssertIntEQ(BAD_FUNC_ARG, wc_SrpGetProof(&cli, clientProof,NULL));
- AssertIntEQ(BUFFER_E, wc_SrpGetProof(&srv, serverProof,&serverProofSz));
-
- AssertIntEQ(BAD_FUNC_ARG,
- wc_SrpVerifyPeersProof(NULL, clientProof, clientProofSz));
- AssertIntEQ(BAD_FUNC_ARG,
- wc_SrpVerifyPeersProof(&cli, NULL, clientProofSz));
- AssertIntEQ(BUFFER_E,
- wc_SrpVerifyPeersProof(&srv, serverProof, serverProofSz));
- serverProofSz = SRP_MAX_DIGEST_SIZE;
-
- /* success */
- AssertIntEQ(0, wc_SrpGetProof(&cli, clientProof, &clientProofSz));
- AssertIntEQ(0, XMEMCMP(clientProof, srp_client_proof,
- sizeof(srp_client_proof)));
- AssertIntEQ(0, wc_SrpVerifyPeersProof(&srv, clientProof, clientProofSz));
- AssertIntEQ(0, wc_SrpGetProof(&srv, serverProof, &serverProofSz));
- AssertIntEQ(0, XMEMCMP(serverProof, srp_server_proof,
- sizeof(srp_server_proof)));
- AssertIntEQ(0, wc_SrpVerifyPeersProof(&cli, serverProof, serverProofSz));
-
- wc_SrpTerm(&cli);
- wc_SrpTerm(&srv);
-}
-
-static int sha512_key_gen(Srp* srp, byte* secret, word32 size)
-{
- wc_Sha512 hash;
- int r;
-
- srp->key = (byte*)XMALLOC(WC_SHA512_DIGEST_SIZE, NULL, DYNAMIC_TYPE_SRP);
- if (srp->key == NULL)
- return MEMORY_E;
-
- srp->keySz = WC_SHA512_DIGEST_SIZE;
-
- r = wc_InitSha512(&hash);
- if (!r) r = wc_Sha512Update(&hash, secret, size);
- if (!r) r = wc_Sha512Final(&hash, srp->key);
-
- XMEMSET(&hash, 0, sizeof(wc_Sha512));
-
- return r;
-}
-
-static void test_SrpKeyGenFunc_cb(void)
-{
- Srp cli, srv;
- byte clientPubKey[1024];
- byte serverPubKey[1024];
- word32 clientPubKeySz = 1024;
- word32 serverPubKeySz = 1024;
- byte clientProof[SRP_MAX_DIGEST_SIZE];
- byte serverProof[SRP_MAX_DIGEST_SIZE];
- word32 clientProofSz = SRP_MAX_DIGEST_SIZE;
- word32 serverProofSz = SRP_MAX_DIGEST_SIZE;
-
- byte username_[] = "alice";
- word32 usernameSz_ = 5;
-
- byte password_[] = "password123";
- word32 passwordSz_ = 11;
-
-#if !defined(FP_MAX_BITS) || FP_MAX_BITS > 3072 * 2
- byte N_[] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2,
- 0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1,
- 0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
- 0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
- 0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
- 0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
- 0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
- 0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
- 0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
- 0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D,
- 0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36,
- 0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
- 0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
- 0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
- 0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
- 0xCA, 0x18, 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
- 0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83, 0xA2,
- 0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
- 0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49, 0x7C,
- 0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
- 0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
- 0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64,
- 0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A, 0xEA, 0x71, 0x57,
- 0x5D, 0x06, 0x0C, 0x7D, 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
- 0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, 0x1E, 0x8C, 0x94, 0xE0,
- 0x4A, 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B,
- 0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76, 0x02, 0x73,
- 0x3E, 0xC8, 0x6A, 0x64, 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
- 0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, 0x77, 0x09, 0x88, 0xC0,
- 0xBA, 0xD9, 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
- 0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1, 0x20,
- 0xA9, 0x3A, 0xD2, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
- };
-
- byte g_[] = {
- 0x05
- };
-
- byte salt_[] = {
- 0xBE, 0xB2, 0x53, 0x79, 0xD1, 0xA8, 0x58, 0x1E, 0xB5, 0xA7, 0x27, 0x67,
- 0x3A, 0x24, 0x41, 0xEE
- };
-
- byte verifier_[] = {
- 0x9B, 0x5E, 0x06, 0x17, 0x01, 0xEA, 0x7A, 0xEB, 0x39, 0xCF, 0x6E, 0x35,
- 0x19, 0x65, 0x5A, 0x85, 0x3C, 0xF9, 0x4C, 0x75, 0xCA, 0xF2, 0x55, 0x5E,
- 0xF1, 0xFA, 0xF7, 0x59, 0xBB, 0x79, 0xCB, 0x47, 0x70, 0x14, 0xE0, 0x4A,
- 0x88, 0xD6, 0x8F, 0xFC, 0x05, 0x32, 0x38, 0x91, 0xD4, 0xC2, 0x05, 0xB8,
- 0xDE, 0x81, 0xC2, 0xF2, 0x03, 0xD8, 0xFA, 0xD1, 0xB2, 0x4D, 0x2C, 0x10,
- 0x97, 0x37, 0xF1, 0xBE, 0xBB, 0xD7, 0x1F, 0x91, 0x24, 0x47, 0xC4, 0xA0,
- 0x3C, 0x26, 0xB9, 0xFA, 0xD8, 0xED, 0xB3, 0xE7, 0x80, 0x77, 0x8E, 0x30,
- 0x25, 0x29, 0xED, 0x1E, 0xE1, 0x38, 0xCC, 0xFC, 0x36, 0xD4, 0xBA, 0x31,
- 0x3C, 0xC4, 0x8B, 0x14, 0xEA, 0x8C, 0x22, 0xA0, 0x18, 0x6B, 0x22, 0x2E,
- 0x65, 0x5F, 0x2D, 0xF5, 0x60, 0x3F, 0xD7, 0x5D, 0xF7, 0x6B, 0x3B, 0x08,
- 0xFF, 0x89, 0x50, 0x06, 0x9A, 0xDD, 0x03, 0xA7, 0x54, 0xEE, 0x4A, 0xE8,
- 0x85, 0x87, 0xCC, 0xE1, 0xBF, 0xDE, 0x36, 0x79, 0x4D, 0xBA, 0xE4, 0x59,
- 0x2B, 0x7B, 0x90, 0x4F, 0x44, 0x2B, 0x04, 0x1C, 0xB1, 0x7A, 0xEB, 0xAD,
- 0x1E, 0x3A, 0xEB, 0xE3, 0xCB, 0xE9, 0x9D, 0xE6, 0x5F, 0x4B, 0xB1, 0xFA,
- 0x00, 0xB0, 0xE7, 0xAF, 0x06, 0x86, 0x3D, 0xB5, 0x3B, 0x02, 0x25, 0x4E,
- 0xC6, 0x6E, 0x78, 0x1E, 0x3B, 0x62, 0xA8, 0x21, 0x2C, 0x86, 0xBE, 0xB0,
- 0xD5, 0x0B, 0x5B, 0xA6, 0xD0, 0xB4, 0x78, 0xD8, 0xC4, 0xE9, 0xBB, 0xCE,
- 0xC2, 0x17, 0x65, 0x32, 0x6F, 0xBD, 0x14, 0x05, 0x8D, 0x2B, 0xBD, 0xE2,
- 0xC3, 0x30, 0x45, 0xF0, 0x38, 0x73, 0xE5, 0x39, 0x48, 0xD7, 0x8B, 0x79,
- 0x4F, 0x07, 0x90, 0xE4, 0x8C, 0x36, 0xAE, 0xD6, 0xE8, 0x80, 0xF5, 0x57,
- 0x42, 0x7B, 0x2F, 0xC0, 0x6D, 0xB5, 0xE1, 0xE2, 0xE1, 0xD7, 0xE6, 0x61,
- 0xAC, 0x48, 0x2D, 0x18, 0xE5, 0x28, 0xD7, 0x29, 0x5E, 0xF7, 0x43, 0x72,
- 0x95, 0xFF, 0x1A, 0x72, 0xD4, 0x02, 0x77, 0x17, 0x13, 0xF1, 0x68, 0x76,
- 0xDD, 0x05, 0x0A, 0xE5, 0xB7, 0xAD, 0x53, 0xCC, 0xB9, 0x08, 0x55, 0xC9,
- 0x39, 0x56, 0x64, 0x83, 0x58, 0xAD, 0xFD, 0x96, 0x64, 0x22, 0xF5, 0x24,
- 0x98, 0x73, 0x2D, 0x68, 0xD1, 0xD7, 0xFB, 0xEF, 0x10, 0xD7, 0x80, 0x34,
- 0xAB, 0x8D, 0xCB, 0x6F, 0x0F, 0xCF, 0x88, 0x5C, 0xC2, 0xB2, 0xEA, 0x2C,
- 0x3E, 0x6A, 0xC8, 0x66, 0x09, 0xEA, 0x05, 0x8A, 0x9D, 0xA8, 0xCC, 0x63,
- 0x53, 0x1D, 0xC9, 0x15, 0x41, 0x4D, 0xF5, 0x68, 0xB0, 0x94, 0x82, 0xDD,
- 0xAC, 0x19, 0x54, 0xDE, 0xC7, 0xEB, 0x71, 0x4F, 0x6F, 0xF7, 0xD4, 0x4C,
- 0xD5, 0xB8, 0x6F, 0x6B, 0xD1, 0x15, 0x81, 0x09, 0x30, 0x63, 0x7C, 0x01,
- 0xD0, 0xF6, 0x01, 0x3B, 0xC9, 0x74, 0x0F, 0xA2, 0xC6, 0x33, 0xBA, 0x89
- };
-
- byte a_[] = {
- 0x60, 0x97, 0x55, 0x27, 0x03, 0x5C, 0xF2, 0xAD, 0x19, 0x89, 0x80, 0x6F,
- 0x04, 0x07, 0x21, 0x0B, 0xC8, 0x1E, 0xDC, 0x04, 0xE2, 0x76, 0x2A, 0x56,
- 0xAF, 0xD5, 0x29, 0xDD, 0xDA, 0x2D, 0x43, 0x93
- };
-
- byte A_[] = {
- 0xFA, 0xB6, 0xF5, 0xD2, 0x61, 0x5D, 0x1E, 0x32, 0x35, 0x12, 0xE7, 0x99,
- 0x1C, 0xC3, 0x74, 0x43, 0xF4, 0x87, 0xDA, 0x60, 0x4C, 0xA8, 0xC9, 0x23,
- 0x0F, 0xCB, 0x04, 0xE5, 0x41, 0xDC, 0xE6, 0x28, 0x0B, 0x27, 0xCA, 0x46,
- 0x80, 0xB0, 0x37, 0x4F, 0x17, 0x9D, 0xC3, 0xBD, 0xC7, 0x55, 0x3F, 0xE6,
- 0x24, 0x59, 0x79, 0x8C, 0x70, 0x1A, 0xD8, 0x64, 0xA9, 0x13, 0x90, 0xA2,
- 0x8C, 0x93, 0xB6, 0x44, 0xAD, 0xBF, 0x9C, 0x00, 0x74, 0x5B, 0x94, 0x2B,
- 0x79, 0xF9, 0x01, 0x2A, 0x21, 0xB9, 0xB7, 0x87, 0x82, 0x31, 0x9D, 0x83,
- 0xA1, 0xF8, 0x36, 0x28, 0x66, 0xFB, 0xD6, 0xF4, 0x6B, 0xFC, 0x0D, 0xDB,
- 0x2E, 0x1A, 0xB6, 0xE4, 0xB4, 0x5A, 0x99, 0x06, 0xB8, 0x2E, 0x37, 0xF0,
- 0x5D, 0x6F, 0x97, 0xF6, 0xA3, 0xEB, 0x6E, 0x18, 0x20, 0x79, 0x75, 0x9C,
- 0x4F, 0x68, 0x47, 0x83, 0x7B, 0x62, 0x32, 0x1A, 0xC1, 0xB4, 0xFA, 0x68,
- 0x64, 0x1F, 0xCB, 0x4B, 0xB9, 0x8D, 0xD6, 0x97, 0xA0, 0xC7, 0x36, 0x41,
- 0x38, 0x5F, 0x4B, 0xAB, 0x25, 0xB7, 0x93, 0x58, 0x4C, 0xC3, 0x9F, 0xC8,
- 0xD4, 0x8D, 0x4B, 0xD8, 0x67, 0xA9, 0xA3, 0xC1, 0x0F, 0x8E, 0xA1, 0x21,
- 0x70, 0x26, 0x8E, 0x34, 0xFE, 0x3B, 0xBE, 0x6F, 0xF8, 0x99, 0x98, 0xD6,
- 0x0D, 0xA2, 0xF3, 0xE4, 0x28, 0x3C, 0xBE, 0xC1, 0x39, 0x3D, 0x52, 0xAF,
- 0x72, 0x4A, 0x57, 0x23, 0x0C, 0x60, 0x4E, 0x9F, 0xBC, 0xE5, 0x83, 0xD7,
- 0x61, 0x3E, 0x6B, 0xFF, 0xD6, 0x75, 0x96, 0xAD, 0x12, 0x1A, 0x87, 0x07,
- 0xEE, 0xC4, 0x69, 0x44, 0x95, 0x70, 0x33, 0x68, 0x6A, 0x15, 0x5F, 0x64,
- 0x4D, 0x5C, 0x58, 0x63, 0xB4, 0x8F, 0x61, 0xBD, 0xBF, 0x19, 0xA5, 0x3E,
- 0xAB, 0x6D, 0xAD, 0x0A, 0x18, 0x6B, 0x8C, 0x15, 0x2E, 0x5F, 0x5D, 0x8C,
- 0xAD, 0x4B, 0x0E, 0xF8, 0xAA, 0x4E, 0xA5, 0x00, 0x88, 0x34, 0xC3, 0xCD,
- 0x34, 0x2E, 0x5E, 0x0F, 0x16, 0x7A, 0xD0, 0x45, 0x92, 0xCD, 0x8B, 0xD2,
- 0x79, 0x63, 0x93, 0x98, 0xEF, 0x9E, 0x11, 0x4D, 0xFA, 0xAA, 0xB9, 0x19,
- 0xE1, 0x4E, 0x85, 0x09, 0x89, 0x22, 0x4D, 0xDD, 0x98, 0x57, 0x6D, 0x79,
- 0x38, 0x5D, 0x22, 0x10, 0x90, 0x2E, 0x9F, 0x9B, 0x1F, 0x2D, 0x86, 0xCF,
- 0xA4, 0x7E, 0xE2, 0x44, 0x63, 0x54, 0x65, 0xF7, 0x10, 0x58, 0x42, 0x1A,
- 0x01, 0x84, 0xBE, 0x51, 0xDD, 0x10, 0xCC, 0x9D, 0x07, 0x9E, 0x6F, 0x16,
- 0x04, 0xE7, 0xAA, 0x9B, 0x7C, 0xF7, 0x88, 0x3C, 0x7D, 0x4C, 0xE1, 0x2B,
- 0x06, 0xEB, 0xE1, 0x60, 0x81, 0xE2, 0x3F, 0x27, 0xA2, 0x31, 0xD1, 0x84,
- 0x32, 0xD7, 0xD1, 0xBB, 0x55, 0xC2, 0x8A, 0xE2, 0x1F, 0xFC, 0xF0, 0x05,
- 0xF5, 0x75, 0x28, 0xD1, 0x5A, 0x88, 0x88, 0x1B, 0xB3, 0xBB, 0xB7, 0xFE
- };
-
- byte b_[] = {
- 0xE4, 0x87, 0xCB, 0x59, 0xD3, 0x1A, 0xC5, 0x50, 0x47, 0x1E, 0x81, 0xF0,
- 0x0F, 0x69, 0x28, 0xE0, 0x1D, 0xDA, 0x08, 0xE9, 0x74, 0xA0, 0x04, 0xF4,
- 0x9E, 0x61, 0xF5, 0xD1, 0x05, 0x28, 0x4D, 0x20
- };
-
- byte B_[] = {
- 0x40, 0xF5, 0x70, 0x88, 0xA4, 0x82, 0xD4, 0xC7, 0x73, 0x33, 0x84, 0xFE,
- 0x0D, 0x30, 0x1F, 0xDD, 0xCA, 0x90, 0x80, 0xAD, 0x7D, 0x4F, 0x6F, 0xDF,
- 0x09, 0xA0, 0x10, 0x06, 0xC3, 0xCB, 0x6D, 0x56, 0x2E, 0x41, 0x63, 0x9A,
- 0xE8, 0xFA, 0x21, 0xDE, 0x3B, 0x5D, 0xBA, 0x75, 0x85, 0xB2, 0x75, 0x58,
- 0x9B, 0xDB, 0x27, 0x98, 0x63, 0xC5, 0x62, 0x80, 0x7B, 0x2B, 0x99, 0x08,
- 0x3C, 0xD1, 0x42, 0x9C, 0xDB, 0xE8, 0x9E, 0x25, 0xBF, 0xBD, 0x7E, 0x3C,
- 0xAD, 0x31, 0x73, 0xB2, 0xE3, 0xC5, 0xA0, 0xB1, 0x74, 0xDA, 0x6D, 0x53,
- 0x91, 0xE6, 0xA0, 0x6E, 0x46, 0x5F, 0x03, 0x7A, 0x40, 0x06, 0x25, 0x48,
- 0x39, 0xA5, 0x6B, 0xF7, 0x6D, 0xA8, 0x4B, 0x1C, 0x94, 0xE0, 0xAE, 0x20,
- 0x85, 0x76, 0x15, 0x6F, 0xE5, 0xC1, 0x40, 0xA4, 0xBA, 0x4F, 0xFC, 0x9E,
- 0x38, 0xC3, 0xB0, 0x7B, 0x88, 0x84, 0x5F, 0xC6, 0xF7, 0xDD, 0xDA, 0x93,
- 0x38, 0x1F, 0xE0, 0xCA, 0x60, 0x84, 0xC4, 0xCD, 0x2D, 0x33, 0x6E, 0x54,
- 0x51, 0xC4, 0x64, 0xCC, 0xB6, 0xEC, 0x65, 0xE7, 0xD1, 0x6E, 0x54, 0x8A,
- 0x27, 0x3E, 0x82, 0x62, 0x84, 0xAF, 0x25, 0x59, 0xB6, 0x26, 0x42, 0x74,
- 0x21, 0x59, 0x60, 0xFF, 0xF4, 0x7B, 0xDD, 0x63, 0xD3, 0xAF, 0xF0, 0x64,
- 0xD6, 0x13, 0x7A, 0xF7, 0x69, 0x66, 0x1C, 0x9D, 0x4F, 0xEE, 0x47, 0x38,
- 0x26, 0x03, 0xC8, 0x8E, 0xAA, 0x09, 0x80, 0x58, 0x1D, 0x07, 0x75, 0x84,
- 0x61, 0xB7, 0x77, 0xE4, 0x35, 0x6D, 0xDA, 0x58, 0x35, 0x19, 0x8B, 0x51,
- 0xFE, 0xEA, 0x30, 0x8D, 0x70, 0xF7, 0x54, 0x50, 0xB7, 0x16, 0x75, 0xC0,
- 0x8C, 0x7D, 0x83, 0x02, 0xFD, 0x75, 0x39, 0xDD, 0x1F, 0xF2, 0xA1, 0x1C,
- 0xB4, 0x25, 0x8A, 0xA7, 0x0D, 0x23, 0x44, 0x36, 0xAA, 0x42, 0xB6, 0xA0,
- 0x61, 0x5F, 0x3F, 0x91, 0x5D, 0x55, 0xCC, 0x3B, 0x96, 0x6B, 0x27, 0x16,
- 0xB3, 0x6E, 0x4D, 0x1A, 0x06, 0xCE, 0x5E, 0x5D, 0x2E, 0xA3, 0xBE, 0xE5,
- 0xA1, 0x27, 0x0E, 0x87, 0x51, 0xDA, 0x45, 0xB6, 0x0B, 0x99, 0x7B, 0x0F,
- 0xFD, 0xB0, 0xF9, 0x96, 0x2F, 0xEE, 0x4F, 0x03, 0xBE, 0xE7, 0x80, 0xBA,
- 0x0A, 0x84, 0x5B, 0x1D, 0x92, 0x71, 0x42, 0x17, 0x83, 0xAE, 0x66, 0x01,
- 0xA6, 0x1E, 0xA2, 0xE3, 0x42, 0xE4, 0xF2, 0xE8, 0xBC, 0x93, 0x5A, 0x40,
- 0x9E, 0xAD, 0x19, 0xF2, 0x21, 0xBD, 0x1B, 0x74, 0xE2, 0x96, 0x4D, 0xD1,
- 0x9F, 0xC8, 0x45, 0xF6, 0x0E, 0xFC, 0x09, 0x33, 0x8B, 0x60, 0xB6, 0xB2,
- 0x56, 0xD8, 0xCA, 0xC8, 0x89, 0xCC, 0xA3, 0x06, 0xCC, 0x37, 0x0A, 0x0B,
- 0x18, 0xC8, 0xB8, 0x86, 0xE9, 0x5D, 0xA0, 0xAF, 0x52, 0x35, 0xFE, 0xF4,
- 0x39, 0x30, 0x20, 0xD2, 0xB7, 0xF3, 0x05, 0x69, 0x04, 0x75, 0x90, 0x42
- };
-
- byte key_[] = {
- 0x5C, 0xBC, 0x21, 0x9D, 0xB0, 0x52, 0x13, 0x8E, 0xE1, 0x14, 0x8C, 0x71,
- 0xCD, 0x44, 0x98, 0x96, 0x3D, 0x68, 0x25, 0x49, 0xCE, 0x91, 0xCA, 0x24,
- 0xF0, 0x98, 0x46, 0x8F, 0x06, 0x01, 0x5B, 0xEB, 0x6A, 0xF2, 0x45, 0xC2,
- 0x09, 0x3F, 0x98, 0xC3, 0x65, 0x1B, 0xCA, 0x83, 0xAB, 0x8C, 0xAB, 0x2B,
- 0x58, 0x0B, 0xBF, 0x02, 0x18, 0x4F, 0xEF, 0xDF, 0x26, 0x14, 0x2F, 0x73,
- 0xDF, 0x95, 0xAC, 0x50
- };
-#else
- byte N_[] = {
- 0xAC, 0x6B, 0xDB, 0x41, 0x32, 0x4A, 0x9A, 0x9B, 0xF1, 0x66, 0xDE, 0x5E,
- 0x13, 0x89, 0x58, 0x2F, 0xAF, 0x72, 0xB6, 0x65, 0x19, 0x87, 0xEE, 0x07,
- 0xFC, 0x31, 0x92, 0x94, 0x3D, 0xB5, 0x60, 0x50, 0xA3, 0x73, 0x29, 0xCB,
- 0xB4, 0xA0, 0x99, 0xED, 0x81, 0x93, 0xE0, 0x75, 0x77, 0x67, 0xA1, 0x3D,
- 0xD5, 0x23, 0x12, 0xAB, 0x4B, 0x03, 0x31, 0x0D, 0xCD, 0x7F, 0x48, 0xA9,
- 0xDA, 0x04, 0xFD, 0x50, 0xE8, 0x08, 0x39, 0x69, 0xED, 0xB7, 0x67, 0xB0,
- 0xCF, 0x60, 0x95, 0x17, 0x9A, 0x16, 0x3A, 0xB3, 0x66, 0x1A, 0x05, 0xFB,
- 0xD5, 0xFA, 0xAA, 0xE8, 0x29, 0x18, 0xA9, 0x96, 0x2F, 0x0B, 0x93, 0xB8,
- 0x55, 0xF9, 0x79, 0x93, 0xEC, 0x97, 0x5E, 0xEA, 0xA8, 0x0D, 0x74, 0x0A,
- 0xDB, 0xF4, 0xFF, 0x74, 0x73, 0x59, 0xD0, 0x41, 0xD5, 0xC3, 0x3E, 0xA7,
- 0x1D, 0x28, 0x1E, 0x44, 0x6B, 0x14, 0x77, 0x3B, 0xCA, 0x97, 0xB4, 0x3A,
- 0x23, 0xFB, 0x80, 0x16, 0x76, 0xBD, 0x20, 0x7A, 0x43, 0x6C, 0x64, 0x81,
- 0xF1, 0xD2, 0xB9, 0x07, 0x87, 0x17, 0x46, 0x1A, 0x5B, 0x9D, 0x32, 0xE6,
- 0x88, 0xF8, 0x77, 0x48, 0x54, 0x45, 0x23, 0xB5, 0x24, 0xB0, 0xD5, 0x7D,
- 0x5E, 0xA7, 0x7A, 0x27, 0x75, 0xD2, 0xEC, 0xFA, 0x03, 0x2C, 0xFB, 0xDB,
- 0xF5, 0x2F, 0xB3, 0x78, 0x61, 0x60, 0x27, 0x90, 0x04, 0xE5, 0x7A, 0xE6,
- 0xAF, 0x87, 0x4E, 0x73, 0x03, 0xCE, 0x53, 0x29, 0x9C, 0xCC, 0x04, 0x1C,
- 0x7B, 0xC3, 0x08, 0xD8, 0x2A, 0x56, 0x98, 0xF3, 0xA8, 0xD0, 0xC3, 0x82,
- 0x71, 0xAE, 0x35, 0xF8, 0xE9, 0xDB, 0xFB, 0xB6, 0x94, 0xB5, 0xC8, 0x03,
- 0xD8, 0x9F, 0x7A, 0xE4, 0x35, 0xDE, 0x23, 0x6D, 0x52, 0x5F, 0x54, 0x75,
- 0x9B, 0x65, 0xE3, 0x72, 0xFC, 0xD6, 0x8E, 0xF2, 0x0F, 0xA7, 0x11, 0x1F,
- 0x9E, 0x4A, 0xFF, 0x73
- };
-
- byte g_[] = {
- 0x02
- };
-
- byte salt_[] = {
- 0xBE, 0xB2, 0x53, 0x79, 0xD1, 0xA8, 0x58, 0x1E, 0xB5, 0xA7, 0x27, 0x67,
- 0x3A, 0x24, 0x41, 0xEE
- };
-
- byte verifier_[] = {
- 0xab, 0x58, 0xc3, 0x49, 0x79, 0xda, 0x9c, 0x1c, 0x0c, 0x5f, 0x6a, 0xe8,
- 0xa1, 0xc4, 0x20, 0x78, 0x16, 0xe0, 0x29, 0x6f, 0xdc, 0x09, 0x62, 0xe7,
- 0x5d, 0x49, 0x09, 0xd2, 0xd3, 0x48, 0x0b, 0x03, 0xbb, 0xf4, 0x96, 0x58,
- 0x93, 0xa5, 0x69, 0xd4, 0x89, 0x10, 0x7f, 0xe2, 0x23, 0x73, 0xf2, 0x8c,
- 0xc6, 0x5b, 0x52, 0x5d, 0x2a, 0x2b, 0xa5, 0x23, 0x27, 0xa6, 0x5c, 0xf7,
- 0x8d, 0x65, 0x1f, 0xcf, 0x5e, 0x18, 0x70, 0xb7, 0xfd, 0x08, 0x4e, 0xa8,
- 0x42, 0xbe, 0x5f, 0x73, 0xf4, 0x8b, 0xa0, 0x4a, 0xf6, 0xfa, 0x85, 0xd2,
- 0xd7, 0xf6, 0x4f, 0xc0, 0xc5, 0xba, 0x42, 0x32, 0xc5, 0xbb, 0x57, 0xb2,
- 0x60, 0xdb, 0xc4, 0x27, 0x28, 0x4a, 0x7c, 0xdc, 0x5f, 0x64, 0x8a, 0xc2,
- 0x51, 0x47, 0x96, 0xd9, 0x9f, 0xd7, 0x64, 0x29, 0x30, 0xe3, 0x64, 0xfa,
- 0xd2, 0x42, 0xfa, 0x8b, 0xc9, 0xa0, 0x78, 0xc5, 0xcf, 0x3b, 0x1b, 0x60,
- 0x2a, 0xcd, 0x35, 0x8b, 0xfd, 0xbd, 0x62, 0xd6, 0x3b, 0x22, 0x29, 0x1d,
- 0xb0, 0xeb, 0xaa, 0x00, 0xdf, 0x99, 0x1f, 0x82, 0xef, 0x9d, 0x1a, 0xad,
- 0xe2, 0x4d, 0xa1, 0xca, 0xb2, 0x8f, 0x1d, 0xed, 0x5e, 0xc2, 0xbc, 0x48,
- 0xae, 0xe8, 0x5f, 0x52, 0xad, 0xb3, 0xcb, 0xa5, 0x4e, 0xff, 0x52, 0x8c,
- 0x9b, 0x11, 0x58, 0xe2, 0xd9, 0x94, 0xcd, 0x6c, 0x66, 0x87, 0xf8, 0xc1,
- 0x3c, 0x94, 0x87, 0xce, 0x2c, 0x4a, 0x05, 0x66, 0xc3, 0x20, 0x62, 0x67,
- 0x79, 0xc0, 0x33, 0xf1, 0x6e, 0x3f, 0xee, 0xc8, 0xbe, 0x8e, 0x56, 0xc6,
- 0x98, 0x72, 0x0e, 0x37, 0x4b, 0x89, 0x4c, 0xba, 0xd9, 0x45, 0xf4, 0x9e,
- 0x78, 0x7a, 0x6e, 0x1e, 0xdf, 0xff, 0x23, 0xcf, 0xef, 0xdc, 0x7d, 0x1c,
- 0xf1, 0x96, 0x70, 0x2a, 0xa8, 0x6c, 0x20, 0xde, 0xce, 0x6e, 0x3e, 0x89,
- 0x11, 0x44, 0x2b, 0x02
- };
-
- byte a_[] = {
- 0x60, 0x97, 0x55, 0x27, 0x03, 0x5C, 0xF2, 0xAD, 0x19, 0x89, 0x80, 0x6F,
- 0x04, 0x07, 0x21, 0x0B, 0xC8, 0x1E, 0xDC, 0x04, 0xE2, 0x76, 0x2A, 0x56,
- 0xAF, 0xD5, 0x29, 0xDD, 0xDA, 0x2D, 0x43, 0x93
- };
-
- byte A_[] = {
- 0x4b, 0x70, 0x0f, 0x8d, 0x48, 0xe6, 0x9c, 0x9a, 0xae, 0x40, 0xc6, 0x84,
- 0xac, 0x7c, 0x7c, 0x03, 0x12, 0x1e, 0x2b, 0x76, 0x02, 0xeb, 0x4c, 0x35,
- 0x14, 0x80, 0x4c, 0xca, 0xda, 0x0e, 0xd4, 0x01, 0x91, 0x93, 0xa3, 0x51,
- 0xec, 0xc6, 0x5a, 0x6f, 0x85, 0x4e, 0xde, 0x91, 0xeb, 0x09, 0x6e, 0x72,
- 0x1b, 0x22, 0xd7, 0x01, 0xc7, 0xad, 0xc6, 0x4e, 0x9c, 0xed, 0xac, 0xd7,
- 0x5f, 0x2e, 0x26, 0xbb, 0x2f, 0x5e, 0x45, 0xdd, 0x53, 0xdc, 0x8d, 0xbe,
- 0xaf, 0xff, 0xe8, 0x2a, 0xa4, 0x9f, 0xca, 0x05, 0x73, 0x44, 0x46, 0x91,
- 0x21, 0x25, 0x37, 0xa7, 0x3c, 0xf8, 0x0e, 0x25, 0x03, 0x92, 0x58, 0x20,
- 0x5a, 0x7e, 0xdf, 0x47, 0x49, 0xb3, 0x0a, 0xda, 0xf2, 0x58, 0x77, 0xc6,
- 0x2f, 0xcd, 0x09, 0xd6, 0x61, 0x35, 0x98, 0xbc, 0xd4, 0xba, 0xf2, 0xa9,
- 0x72, 0x7a, 0x53, 0x70, 0x6a, 0x27, 0x81, 0x48, 0x99, 0x2b, 0x2a, 0xbb,
- 0x23, 0xad, 0x5d, 0x51, 0x2d, 0x26, 0x9e, 0x16, 0xca, 0x11, 0xbc, 0x08,
- 0x95, 0xb5, 0xa3, 0xb5, 0xec, 0x47, 0x21, 0xcd, 0xe4, 0x0a, 0x8c, 0x39,
- 0xc7, 0x96, 0xe9, 0x4f, 0x0b, 0xe8, 0x6d, 0xbb, 0xeb, 0x33, 0xda, 0x70,
- 0x37, 0x01, 0x89, 0x83, 0x92, 0x1a, 0xba, 0x3f, 0x50, 0x53, 0x19, 0x5d,
- 0x5a, 0xc1, 0xda, 0x4e, 0x56, 0x7e, 0x3c, 0x0e, 0x75, 0xd9, 0xe0, 0x60,
- 0x9f, 0x92, 0xe8, 0x50, 0x65, 0x7b, 0x2b, 0xe4, 0x77, 0x1f, 0x41, 0x5b,
- 0x9c, 0xac, 0xc5, 0xc1, 0xec, 0xed, 0xc3, 0x01, 0x33, 0xbf, 0x64, 0x74,
- 0xf5, 0x02, 0x2c, 0x65, 0x19, 0xd7, 0x80, 0x76, 0x0c, 0xa4, 0xd8, 0xd3,
- 0xb9, 0x66, 0xb0, 0x34, 0xbd, 0x73, 0x87, 0x7c, 0x1b, 0x3b, 0x33, 0xf4,
- 0x74, 0xb9, 0xc3, 0xc5, 0x29, 0x9a, 0x19, 0x68, 0xf3, 0xe6, 0xcd, 0x3b,
- 0xfe, 0x84, 0x44, 0x5a
- };
-
- byte b_[] = {
- 0xE4, 0x87, 0xCB, 0x59, 0xD3, 0x1A, 0xC5, 0x50, 0x47, 0x1E, 0x81, 0xF0,
- 0x0F, 0x69, 0x28, 0xE0, 0x1D, 0xDA, 0x08, 0xE9, 0x74, 0xA0, 0x04, 0xF4,
- 0x9E, 0x61, 0xF5, 0xD1, 0x05, 0x28, 0x4D, 0x20
- };
-
- byte B_[] = {
- 0x03, 0xaf, 0xa6, 0xe2, 0x14, 0xf3, 0x63, 0x35, 0xf5, 0x51, 0x1d, 0xae,
- 0x57, 0x34, 0x24, 0xf4, 0xc2, 0x18, 0xaf, 0x11, 0xf8, 0xef, 0xc7, 0x14,
- 0x44, 0xa6, 0x52, 0x19, 0x7b, 0xae, 0x65, 0xe9, 0x86, 0x5f, 0x45, 0x33,
- 0xae, 0xeb, 0x71, 0xd3, 0xfe, 0xa9, 0x7d, 0x26, 0xe0, 0xc9, 0xc7, 0xf2,
- 0x2e, 0x4f, 0x95, 0xea, 0xb0, 0x83, 0x1d, 0xad, 0x77, 0xca, 0x32, 0x82,
- 0x01, 0x21, 0x00, 0xc5, 0x47, 0x52, 0x67, 0xf1, 0x1b, 0x5c, 0x64, 0xd3,
- 0xae, 0x61, 0x1a, 0x7d, 0x76, 0x0e, 0x7d, 0x23, 0x1e, 0x9c, 0xa0, 0x02,
- 0x7c, 0x44, 0xa8, 0x6f, 0xf9, 0x27, 0x52, 0xd0, 0xa9, 0xc7, 0xd4, 0xbb,
- 0x31, 0x69, 0x39, 0xfc, 0xb7, 0xa7, 0xcd, 0x86, 0xa1, 0x55, 0x71, 0x8a,
- 0xb7, 0x48, 0x02, 0x73, 0x16, 0xf5, 0x9d, 0x83, 0x2f, 0xa8, 0x7e, 0x08,
- 0x2f, 0x2d, 0xc4, 0xc3, 0xae, 0x6c, 0x65, 0x72, 0x42, 0xc1, 0x74, 0xd9,
- 0x95, 0xd0, 0x10, 0xa1, 0x25, 0x9c, 0x5a, 0xf9, 0xa5, 0x08, 0x0d, 0xa2,
- 0xed, 0x3a, 0xf1, 0xf7, 0x69, 0xc6, 0x29, 0xf4, 0x47, 0x43, 0x40, 0x7e,
- 0x6d, 0x8b, 0xff, 0xae, 0x04, 0xf0, 0x09, 0x1d, 0x5f, 0x64, 0xd4, 0x7c,
- 0xb8, 0x47, 0xf3, 0x84, 0xf2, 0x0f, 0x4a, 0x16, 0x32, 0xd1, 0xaf, 0x80,
- 0x5a, 0xd6, 0x0b, 0xd8, 0xc5, 0xa4, 0x07, 0x0e, 0xbe, 0x52, 0x35, 0x99,
- 0x9a, 0xa1, 0x4f, 0x44, 0x5d, 0xb7, 0x4d, 0x5d, 0xb1, 0xe2, 0xf9, 0x84,
- 0x33, 0x6c, 0x51, 0xd6, 0xff, 0x27, 0x64, 0x86, 0x45, 0x56, 0xab, 0x73,
- 0x1e, 0xb0, 0x21, 0x6e, 0x65, 0x19, 0x21, 0xf9, 0x97, 0x09, 0xb3, 0xec,
- 0x32, 0x38, 0x79, 0x28, 0xe2, 0xd2, 0x03, 0x3a, 0x8d, 0xed, 0x8b, 0x34,
- 0xa7, 0xf8, 0x0e, 0x26, 0x5b, 0x60, 0x20, 0x76, 0x43, 0x67, 0xe9, 0xea,
- 0x3b, 0x0b, 0xbf, 0x25
- };
-
- byte key_[] = {
- 0x25, 0x9f, 0xb6, 0xab, 0x17, 0xc4, 0xd8, 0x08, 0x07, 0x57, 0xa4, 0x90,
- 0x57, 0x5a, 0x31, 0xff, 0x15, 0x98, 0xb4, 0x2e, 0x86, 0x4e, 0x7a, 0xcd,
- 0xe3, 0x02, 0x58, 0x6f, 0xa8, 0x4b, 0x5c, 0xab, 0xcc, 0x91, 0xad, 0x8a,
- 0xbd, 0xbe, 0x49, 0x51, 0x75, 0xed, 0x2d, 0xe9, 0x15, 0x8c, 0xfe, 0x19,
- 0x68, 0x4a, 0xbf, 0x74, 0xf6, 0xe2, 0x60, 0xa7, 0xad, 0x89, 0x92, 0xdf,
- 0x9d, 0x6d, 0x66, 0x4c
- };
-#endif
-
- AssertIntEQ(0, wc_SrpInit(&cli, SRP_TYPE_SHA512, SRP_CLIENT_SIDE));
- AssertIntEQ(0, wc_SrpInit(&srv, SRP_TYPE_SHA512, SRP_SERVER_SIDE));
-
- AssertIntEQ(0, wc_SrpSetUsername(&cli, username_, usernameSz_));
- AssertIntEQ(0, wc_SrpSetUsername(&srv, username_, usernameSz_));
-
- AssertIntEQ(0, wc_SrpSetParams(&cli, N_, sizeof(N_),
- g_, sizeof(g_),
- salt_, sizeof(salt_)));
- AssertIntEQ(0, wc_SrpSetParams(&srv, N_, sizeof(N_),
- g_, sizeof(g_),
- salt_, sizeof(salt_)));
-
- AssertIntEQ(0, wc_SrpSetPassword(&cli, password_, passwordSz_));
- AssertIntEQ(0, wc_SrpSetVerifier(&srv, verifier_, sizeof(verifier_)));
-
- AssertIntEQ(0, wc_SrpSetPrivate(&cli, a_, sizeof(a_)));
- AssertIntEQ(0, wc_SrpGetPublic(&cli, clientPubKey, &clientPubKeySz));
- AssertIntEQ(0, XMEMCMP(clientPubKey, A_, clientPubKeySz));
-
- AssertIntEQ(0, wc_SrpSetPrivate(&srv, b_, sizeof(b_)));
- AssertIntEQ(0, wc_SrpGetPublic(&srv, serverPubKey, &serverPubKeySz));
- AssertIntEQ(0, XMEMCMP(serverPubKey, B_, serverPubKeySz));
-
- cli.keyGenFunc_cb = sha512_key_gen;
- AssertIntEQ(0, wc_SrpComputeKey(&cli, clientPubKey, clientPubKeySz,
- serverPubKey, serverPubKeySz));
- AssertIntEQ(0, XMEMCMP(cli.key, key_, sizeof(key_)));
-
- srv.keyGenFunc_cb = sha512_key_gen;
- AssertIntEQ(0, wc_SrpComputeKey(&srv, clientPubKey, clientPubKeySz,
- serverPubKey, serverPubKeySz));
- AssertIntEQ(0, XMEMCMP(srv.key, key_, sizeof(key_)));
-
- AssertIntEQ(0, wc_SrpGetProof(&cli, clientProof, &clientProofSz));
- AssertIntEQ(0, wc_SrpVerifyPeersProof(&srv, clientProof, clientProofSz));
-
- AssertIntEQ(0, wc_SrpGetProof(&srv, serverProof, &serverProofSz));
- AssertIntEQ(0, wc_SrpVerifyPeersProof(&cli, serverProof, serverProofSz));
-
- wc_SrpTerm(&cli);
- wc_SrpTerm(&srv);
-}
-
-#endif
-
-void SrpTest(void)
-{
-#if defined(WOLFCRYPT_HAVE_SRP) && defined(WOLFSSL_SHA512)
- wolfCrypt_Init();
- test_SrpInit();
- test_SrpSetUsername();
- test_SrpSetParams();
- test_SrpSetPassword();
- test_SrpGetPublic();
- test_SrpComputeKey();
- test_SrpGetProofAndVerify();
- test_SrpKeyGenFunc_cb();
- wolfCrypt_Cleanup();
-#endif
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/suites.c b/FreeRTOS-Plus/Source/WolfSSL/tests/suites.c
deleted file mode 100644
index 43a023550..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/suites.c
+++ /dev/null
@@ -1,1031 +0,0 @@
-/* suites.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <wolfssl/ssl.h>
-#include <tests/unit.h>
-#if defined(HAVE_ECC) && defined(FP_ECC) && defined(HAVE_THREAD_LS) \
- && (defined(NO_MAIN_DRIVER) || defined(HAVE_STACK_SIZE))
-#include <wolfssl/wolfcrypt/ecc.h>
-#endif
-
-
-#define MAX_ARGS 40
-#define MAX_COMMAND_SZ 240
-#ifdef WOLFSSL_TLS13
- #define MAX_SUITE_SZ 200
-#else
- #define MAX_SUITE_SZ 80
-#endif
-#define NOT_BUILT_IN -123
-#if defined(NO_OLD_TLS) || !defined(WOLFSSL_ALLOW_SSLV3) || \
- !defined(WOLFSSL_ALLOW_TLSV10)
- #define VERSION_TOO_OLD -124
-#endif
-
-#include "examples/client/client.h"
-#include "examples/server/server.h"
-
-#if !defined(NO_WOLFSSL_SERVER) && !defined(NO_WOLFSSL_CLIENT)
-static WOLFSSL_CTX* cipherSuiteCtx = NULL;
-static char nonblockFlag[] = "-N";
-static char noVerifyFlag[] = "-d";
-static char disableEMSFlag[] = "-n";
-static char flagSep[] = " ";
-#if !defined(USE_WINDOWS_API) && !defined(WOLFSSL_TIRTOS)
- static char portFlag[] = "-p";
- static char svrPort[] = "0";
-#endif
-static char intTestFlag[] = "-H";
-static char forceDefCipherListFlag[] = "defCipherList";
-static char exitWithRetFlag[] = "exitWithRet";
-static char disableDHPrimeTest[] = "-2";
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- static int devId = INVALID_DEVID;
-#endif
-
-
-#ifdef VERSION_TOO_OLD
-static int GetTlsVersion(const char* line)
-{
- int version = -1;
- const char* find = "-v ";
- const char* begin = strstr(line, find);
-
- if (begin) {
- begin += 3;
-
- version = atoi(begin);
- }
- return version;
-}
-
-#ifndef WOLFSSL_ALLOW_SSLV3
-/* if the protocol version is sslv3 return 1, else 0 */
-static int IsSslVersion(const char* line)
-{
- int version = GetTlsVersion(line);
- return (version == 0) ? 1 : 0;
-}
-#endif /* !WOLFSSL_ALLOW_SSLV3 */
-
-#ifndef WOLFSSL_ALLOW_TLSV10
-/* if the protocol version is TLSv1.0 return 1, else 0 */
-static int IsTls10Version(const char* line)
-{
- int version = GetTlsVersion(line);
- return (version == 1) ? 1 : 0;
-}
-#endif /* !WOLFSSL_ALLOW_TLSV10 */
-
-#ifdef NO_OLD_TLS
-/* if the protocol version is less than tls 1.2 return 1, else 0 */
-static int IsOldTlsVersion(const char* line)
-{
- int version = GetTlsVersion(line);
- return (version < 3) ? 1 : 0;
-}
-#endif /* NO_OLD_TLS */
-#endif /* VERSION_TOO_OLD */
-
-
-/* if the cipher suite on line is valid store in suite and return 1, else 0 */
-static int IsValidCipherSuite(const char* line, char* suite)
-{
- int found = 0;
- int valid = 0;
-
- const char* find = "-l ";
- const char* begin = strstr(line, find);
- const char* end;
-
- suite[0] = '\0';
-
- if (begin) {
- begin += 3;
-
- end = XSTRSTR(begin, " ");
-
- if (end) {
- long len = end - begin;
- if (len > MAX_SUITE_SZ) {
- printf("suite too long!\n");
- return 0;
- }
- XMEMCPY(suite, begin, len);
- suite[len] = '\0';
- }
- else
- XSTRNCPY(suite, begin, MAX_SUITE_SZ);
-
- suite[MAX_SUITE_SZ] = '\0';
- found = 1;
- }
-
- /* if QSH not enabled then do not use QSH suite */
- #ifdef HAVE_QSH
- if (XSTRNCMP(suite, "QSH", 3) == 0) {
- if (wolfSSL_CTX_set_cipher_list(cipherSuiteCtx, suite + 4)
- != WOLFSSL_SUCCESS)
- return 0;
- }
- #endif
-
- if (found) {
- if (wolfSSL_CTX_set_cipher_list(cipherSuiteCtx, suite) == WOLFSSL_SUCCESS)
- valid = 1;
- }
-
- return valid;
-}
-
-static int IsValidCert(const char* line)
-{
- int ret = 1;
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS)
- WOLFSSL_CTX* ctx;
- size_t i;
- const char* begin;
- char cert[80];
-#ifdef WOLFSSL_STATIC_MEMORY
- FILE* fStream = NULL;
- long chkSz = 0;
-#endif
-
- begin = XSTRSTR(line, "-c ");
- if (begin == NULL)
- return 1;
-
- begin += 3;
- for (i = 0; i < sizeof(cert) - 1 && *begin != ' ' && *begin != '\0'; i++)
- cert[i] = *(begin++);
- cert[i] = '\0';
-#ifdef WOLFSSL_STATIC_MEMORY
- fStream = XFOPEN(cert, "rb");
- if (fStream == NULL) {
- printf("Failed to open file %s\n", cert);
- printf("Invalid cert, skipping test\n");
- return 0;
- } else {
- printf("Successfully opened file\n");
- }
-
- XFSEEK(fStream, 0L, SEEK_END);
- chkSz = XFTELL(fStream);
- XFCLOSE(fStream);
- if (chkSz > LARGEST_MEM_BUCKET) {
- printf("File is larger than largest bucket, skipping this test\n");
- return 0;
- }
-#endif
-
- ctx = wolfSSL_CTX_new(wolfSSLv23_server_method_ex(NULL));
- if (ctx == NULL)
- return 0;
- ret = wolfSSL_CTX_use_certificate_chain_file(ctx, cert) == WOLFSSL_SUCCESS;
- wolfSSL_CTX_free(ctx);
-#endif /* !NO_FILESYSTEM && !NO_CERTS */
-
- (void)line;
-
- return ret;
-}
-
-static int IsValidCA(const char* line)
-{
- int ret = 1;
-#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS)
- WOLFSSL_CTX* ctx;
- size_t i;
- const char* begin;
- char cert[80];
-
- begin = XSTRSTR(line, "-A ");
- if (begin == NULL)
- return 1;
-
- begin += 3;
- for (i = 0; i < sizeof(cert) - 1 && *begin != ' ' && *begin != '\0'; i++)
- cert[i] = *(begin++);
- cert[i] = '\0';
-
- ctx = wolfSSL_CTX_new(wolfSSLv23_server_method_ex(NULL));
- if (ctx == NULL)
- return 0;
- ret = wolfSSL_CTX_use_certificate_chain_file(ctx, cert) == WOLFSSL_SUCCESS;
- wolfSSL_CTX_free(ctx);
-#endif /* !NO_FILESYSTEM && !NO_CERTS */
-
- (void)line;
-
- return ret;
-}
-
-static int execute_test_case(int svr_argc, char** svr_argv,
- int cli_argc, char** cli_argv,
- int addNoVerify, int addNonBlocking,
- int addDisableEMS, int forceSrvDefCipherList,
- int forceCliDefCipherList)
-{
-#ifdef WOLFSSL_TIRTOS
- func_args cliArgs = {0};
- func_args svrArgs = {0};
- cliArgs.argc = cli_argc;
- cliArgs.argv = cli_argv;
- svrArgs.argc = svr_argc;
- svrArgs.argv = svr_argv;
-#else
- func_args cliArgs = {cli_argc, cli_argv, 0, NULL, NULL};
- func_args svrArgs = {svr_argc, svr_argv, 0, NULL, NULL};
-#endif
-
- tcp_ready ready;
- THREAD_TYPE serverThread;
- char commandLine[MAX_COMMAND_SZ];
- char cipherSuite[MAX_SUITE_SZ+1];
- int i;
- size_t added;
- static int tests = 1;
-#if !defined(USE_WINDOWS_API) && !defined(WOLFSSL_TIRTOS)
- char portNumber[8];
-#endif
- int cliTestShouldFail = 0, svrTestShouldFail = 0;
-
- /* Is Valid Cipher and Version Checks */
- /* build command list for the Is checks below */
- commandLine[0] = '\0';
- added = 0;
- for (i = 0; i < svrArgs.argc; i++) {
- added += XSTRLEN(svr_argv[i]) + 2;
- if (added >= MAX_COMMAND_SZ) {
- printf("server command line too long\n");
- break;
- }
- strcat(commandLine, svr_argv[i]);
- strcat(commandLine, flagSep);
- }
- if (IsValidCipherSuite(commandLine, cipherSuite) == 0) {
- #ifdef DEBUG_SUITE_TESTS
- printf("cipher suite %s not supported in build\n", cipherSuite);
- #endif
- return NOT_BUILT_IN;
- }
- if (!IsValidCert(commandLine)) {
- #ifdef DEBUG_SUITE_TESTS
- printf("certificate %s not supported in build\n", commandLine);
- #endif
- return NOT_BUILT_IN;
- }
-
-#ifndef WOLFSSL_ALLOW_SSLV3
- if (IsSslVersion(commandLine) == 1) {
- #ifdef DEBUG_SUITE_TESTS
- printf("protocol version on line %s is too old\n", commandLine);
- #endif
- return VERSION_TOO_OLD;
- }
-#endif
-#ifndef WOLFSSL_ALLOW_TLSV10
- if (IsTls10Version(commandLine) == 1) {
- #ifdef DEBUG_SUITE_TESTS
- printf("protocol version on line %s is too old\n", commandLine);
- #endif
- return VERSION_TOO_OLD;
- }
-#endif
-#ifdef NO_OLD_TLS
- if (IsOldTlsVersion(commandLine) == 1) {
- #ifdef DEBUG_SUITE_TESTS
- printf("protocol version on line %s is too old\n", commandLine);
- #endif
- return VERSION_TOO_OLD;
- }
-#endif
-
- /* Build Server Command */
- if (addNoVerify) {
- printf("repeating test with client cert request off\n");
- if (svrArgs.argc >= MAX_ARGS)
- printf("server command line too long\n");
- else
- svr_argv[svrArgs.argc++] = noVerifyFlag;
- }
- if (addNonBlocking) {
- printf("repeating test with non blocking on\n");
- if (svrArgs.argc >= MAX_ARGS)
- printf("server command line too long\n");
- else
- svr_argv[svrArgs.argc++] = nonblockFlag;
- }
- #if !defined(USE_WINDOWS_API) && !defined(WOLFSSL_TIRTOS)
- /* add port */
- if (svrArgs.argc + 2 > MAX_ARGS)
- printf("cannot add the magic port number flag to server\n");
- else {
- svr_argv[svrArgs.argc++] = portFlag;
- svr_argv[svrArgs.argc++] = svrPort;
- }
- #endif
- if (forceSrvDefCipherList) {
- if (svrArgs.argc + 2 > MAX_ARGS)
- printf("cannot add the force def cipher list flag to server\n");
- else {
- svr_argv[svrArgs.argc++] = intTestFlag;
- svr_argv[svrArgs.argc++] = forceDefCipherListFlag;
- }
- }
-#ifdef TEST_PK_PRIVKEY
- svr_argv[svrArgs.argc++] = (char*)"-P";
-#endif
-
-
- /* update server flags list */
- commandLine[0] = '\0';
- added = 0;
- for (i = 0; i < svrArgs.argc; i++) {
- added += XSTRLEN(svr_argv[i]) + 2;
- if (added >= MAX_COMMAND_SZ) {
- printf("server command line too long\n");
- break;
- }
- strcat(commandLine, svr_argv[i]);
- strcat(commandLine, flagSep);
- }
- printf("trying server command line[%d]: %s\n", tests, commandLine);
-
- tests++; /* test count */
-
- /* determine based on args if this test is expected to fail */
- if (XSTRSTR(commandLine, exitWithRetFlag) != NULL) {
- svrTestShouldFail = 1;
- }
-
- InitTcpReady(&ready);
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- /* start server */
- svrArgs.signal = &ready;
- start_thread(server_test, &svrArgs, &serverThread);
- wait_tcp_ready(&svrArgs);
-
-
- /* Build Client Command */
- if (addNonBlocking) {
- if (cliArgs.argc >= MAX_ARGS)
- printf("cannot add the non block flag to client\n");
- else
- cli_argv[cliArgs.argc++] = nonblockFlag;
- }
- if (addDisableEMS) {
- printf("repeating test without extended master secret\n");
- if (cliArgs.argc >= MAX_ARGS)
- printf("cannot add the disable EMS flag to client\n");
- else
- cli_argv[cliArgs.argc++] = disableEMSFlag;
- }
-#if !defined(USE_WINDOWS_API) && !defined(WOLFSSL_TIRTOS)
- if (ready.port != 0) {
- if (cliArgs.argc + 2 > MAX_ARGS)
- printf("cannot add the magic port number flag to client\n");
- else {
- snprintf(portNumber, sizeof(portNumber), "%d", ready.port);
- cli_argv[cliArgs.argc++] = portFlag;
- cli_argv[cliArgs.argc++] = portNumber;
- }
- }
-#endif
- if (forceCliDefCipherList) {
- if (cliArgs.argc + 2 > MAX_ARGS)
- printf("cannot add the force def cipher list flag to client\n");
- else {
- cli_argv[cliArgs.argc++] = intTestFlag;
- cli_argv[cliArgs.argc++] = forceDefCipherListFlag;
- }
- }
-#ifdef TEST_PK_PRIVKEY
- cli_argv[cliArgs.argc++] = (char*)"-P";
-#endif
-
- commandLine[0] = '\0';
- added = 0;
- for (i = 0; i < cliArgs.argc; i++) {
- added += XSTRLEN(cli_argv[i]) + 2;
- if (added >= MAX_COMMAND_SZ) {
- printf("client command line too long\n");
- break;
- }
- strcat(commandLine, cli_argv[i]);
- strcat(commandLine, flagSep);
- }
- if (!IsValidCA(commandLine)) {
- #ifdef DEBUG_SUITE_TESTS
- printf("certificate %s not supported in build\n", commandLine);
- #endif
- return NOT_BUILT_IN;
- }
- printf("trying client command line[%d]: %s\n", tests, commandLine);
-
- /* determine based on args if this test is expected to fail */
- if (XSTRSTR(commandLine, exitWithRetFlag) != NULL) {
- cliTestShouldFail = 1;
- }
-
- /* start client */
- client_test(&cliArgs);
-
- /* verify results */
- if ((cliArgs.return_code != 0 && cliTestShouldFail == 0) ||
- (cliArgs.return_code == 0 && cliTestShouldFail != 0)) {
- printf("client_test failed\n");
- XEXIT(EXIT_FAILURE);
- }
-
- join_thread(serverThread);
- if ((svrArgs.return_code != 0 && svrTestShouldFail == 0) ||
- (svrArgs.return_code == 0 && svrTestShouldFail != 0)) {
- printf("server_test failed\n");
- XEXIT(EXIT_FAILURE);
- }
-
-#ifdef WOLFSSL_TIRTOS
- fdCloseSession(Task_self());
-#endif
- FreeTcpReady(&ready);
-
- /* only run the first test for expected failure cases */
- /* the example server/client are not designed to handle expected failure in
- all cases, such as non-blocking, etc... */
- if (svrTestShouldFail || cliTestShouldFail) {
- return NOT_BUILT_IN;
- }
-
- return 0;
-}
-
-static void test_harness(void* vargs)
-{
- func_args* args = (func_args*)vargs;
- char* script;
- long sz, len;
- int cliMode = 0; /* server or client command flag, server first */
- int ret;
- FILE* file;
- char* svrArgs[MAX_ARGS];
- int svrArgsSz;
- char* cliArgs[MAX_ARGS];
- int cliArgsSz;
- char* cursor;
- char* comment;
- const char* fname = "tests/test.conf";
- const char* addArgs = NULL;
-
- if (args->argc == 1) {
- printf("notice: using default file %s\n", fname);
- }
- else if (args->argc == 3) {
- addArgs = args->argv[2];
- }
- else if (args->argc > 3) {
- printf("usage: harness [FILE] [ARG]\n");
- args->return_code = 1;
- return;
- }
-
- if (args->argc >= 2) {
- fname = args->argv[1];
- }
-
- file = fopen(fname, "rb");
- if (file == NULL) {
- fprintf(stderr, "unable to open %s\n", fname);
- args->return_code = 1;
- return;
- }
- fseek(file, 0, SEEK_END);
- sz = ftell(file);
- rewind(file);
- if (sz <= 0) {
- fprintf(stderr, "%s is empty\n", fname);
- fclose(file);
- args->return_code = 1;
- return;
- }
-
- script = (char*)malloc(sz+1);
- if (script == 0) {
- fprintf(stderr, "unable to allocate script buffer\n");
- fclose(file);
- args->return_code = 1;
- return;
- }
-
- len = fread(script, 1, sz, file);
- if (len != sz) {
- fprintf(stderr, "read error\n");
- fclose(file);
- free(script);
- args->return_code = 1;
- return;
- }
-
- fclose(file);
- script[sz] = 0;
-
- cursor = script;
- svrArgsSz = 1;
- svrArgs[0] = args->argv[0];
- cliArgsSz = 1;
- cliArgs[0] = args->argv[0];
-
- while (*cursor != 0) {
- int do_it = 0;
-
- switch (*cursor) {
- case '\n':
- /* A blank line triggers test case execution or switches
- to client mode if we don't have the client command yet */
- if (cliMode == 0)
- cliMode = 1; /* switch to client mode processing */
- /* skip extra newlines */
- else
- do_it = 1; /* Do It, we have server and client */
- cursor++;
- break;
- case '#':
- /* Ignore lines that start with a # */
- comment = XSTRSEP(&cursor, "\n");
- #ifdef DEBUG_SUITE_TESTS
- printf("%s\n", comment);
- #else
- (void)comment;
- #endif
- break;
- case '-':
- default:
- /* Parameters start with a -. They end in either a newline
- * or a space. Capture until either, save in Args list. */
- if (cliMode)
- cliArgs[cliArgsSz++] = XSTRSEP(&cursor, " \n");
- else
- svrArgs[svrArgsSz++] = XSTRSEP(&cursor, " \n");
- if (*cursor == '\0') /* eof */
- do_it = 1;
- break;
- }
-
- if (svrArgsSz == MAX_ARGS || cliArgsSz == MAX_ARGS) {
- fprintf(stderr, "too many arguments, forcing test run\n");
- do_it = 1;
- }
-
- if (do_it) {
- /* additional arguments processing */
- if (cliArgsSz+2 < MAX_ARGS && svrArgsSz+2 < MAX_ARGS) {
- if (addArgs == NULL || XSTRSTR(addArgs, "doDH") == NULL) {
- /* The `-2` disable DH prime check is added to all tests by default */
- cliArgs[cliArgsSz++] = disableDHPrimeTest;
- svrArgs[svrArgsSz++] = disableDHPrimeTest;
- }
- if (addArgs && XSTRSTR(addArgs, "expFail")) {
- /* Tests should expect to fail */
- cliArgs[cliArgsSz++] = intTestFlag;
- cliArgs[cliArgsSz++] = exitWithRetFlag;
- svrArgs[svrArgsSz++] = intTestFlag;
- svrArgs[svrArgsSz++] = exitWithRetFlag;
- }
- }
-
- ret = execute_test_case(svrArgsSz, svrArgs,
- cliArgsSz, cliArgs, 0, 0, 0, 0, 0);
- /* don't repeat if not supported in build */
- if (ret == 0) {
- /* test with default cipher list on server side */
- execute_test_case(svrArgsSz, svrArgs,
- cliArgsSz, cliArgs, 0, 0, 0, 1, 0);
- /* test with default cipher list on client side */
- execute_test_case(svrArgsSz, svrArgs,
- cliArgsSz, cliArgs, 0, 0, 0, 0, 1);
-
- execute_test_case(svrArgsSz, svrArgs,
- cliArgsSz, cliArgs, 0, 1, 0, 0, 0);
- execute_test_case(svrArgsSz, svrArgs,
- cliArgsSz, cliArgs, 1, 0, 0, 0, 0);
- execute_test_case(svrArgsSz, svrArgs,
- cliArgsSz, cliArgs, 1, 1, 0, 0, 0);
-#ifdef HAVE_EXTENDED_MASTER
- execute_test_case(svrArgsSz, svrArgs,
- cliArgsSz, cliArgs, 0, 0, 1, 0, 0);
- execute_test_case(svrArgsSz, svrArgs,
- cliArgsSz, cliArgs, 0, 1, 1, 0, 0);
- execute_test_case(svrArgsSz, svrArgs,
- cliArgsSz, cliArgs, 1, 0, 1, 0, 0);
- execute_test_case(svrArgsSz, svrArgs,
- cliArgsSz, cliArgs, 1, 1, 1, 0, 0);
-#endif
- }
- svrArgsSz = 1;
- cliArgsSz = 1;
- cliMode = 0;
- }
- }
-
- free(script);
- args->return_code = 0;
-}
-#endif /* !NO_WOLFSSL_SERVER && !NO_WOLFSSL_CLIENT */
-
-
-int SuiteTest(int argc, char** argv)
-{
-#if !defined(NO_WOLFSSL_SERVER) && !defined(NO_WOLFSSL_CLIENT)
- func_args args;
- char argv0[3][80];
- char* myArgv[3];
-
- printf(" Begin Cipher Suite Tests\n");
-
- /* setup */
- myArgv[0] = argv0[0];
- myArgv[1] = argv0[1];
- myArgv[2] = argv0[2];
- args.argv = myArgv;
- strcpy(argv0[0], "SuiteTest");
-
-#ifdef WOLFSSL_STATIC_MEMORY
- byte memory[200000];
-#endif
-
- cipherSuiteCtx = wolfSSL_CTX_new(wolfSSLv23_client_method());
- if (cipherSuiteCtx == NULL) {
- printf("can't get cipher suite ctx\n");
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-
- /* load in static memory buffer if enabled */
-#ifdef WOLFSSL_STATIC_MEMORY
- if (wolfSSL_CTX_load_static_memory(&cipherSuiteCtx, NULL,
- memory, sizeof(memory), 0, 1)
- != WOLFSSL_SUCCESS) {
- printf("unable to load static memory and create ctx");
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#endif
-
-#ifdef WOLFSSL_ASYNC_CRYPT
- if (wolfAsync_DevOpen(&devId) < 0) {
- printf("Async device open failed");
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
- wolfSSL_CTX_UseAsync(cipherSuiteCtx, devId);
-#endif /* WOLFSSL_ASYNC_CRYPT */
-
- /* support for custom command line tests */
- if (argc > 1) {
- /* Examples:
- ./tests/unit.test tests/test-altchains.conf
- ./tests/unit.test tests/test-fails.conf expFail
- ./tests/unit.test tests/test-dhprime.conf doDH
- */
- args.argc = argc;
- args.argv = argv;
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- }
- goto exit;
- }
-
- /* default case */
- args.argc = 1;
- printf("starting default cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-
- /* any extra cases will need another argument */
- args.argc = 2;
-
-#ifdef WOLFSSL_OLDTLS_SHA2_CIPHERSUITES
- /* SHA-2 cipher suites in old TLS versions */
- strcpy(argv0[1], "tests/test-sha2.conf");
- printf("starting SHA-2 cipher suite in old TLS versions tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#endif
-
-#ifdef WOLFSSL_TLS13
- /* add TLSv13 extra suites */
- strcpy(argv0[1], "tests/test-tls13.conf");
- printf("starting TLSv13 extra cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
- #ifdef HAVE_ECC
- /* add TLSv13 ECC extra suites */
- strcpy(argv0[1], "tests/test-tls13-ecc.conf");
- printf("starting TLSv13 ECC extra cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
- #endif
- #ifndef WOLFSSL_NO_TLS12
- /* add TLSv13 downgrade tets */
- strcpy(argv0[1], "tests/test-tls13-down.conf");
- printf("starting TLSv13 Downgrade extra tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
- #endif
-#endif
-#if defined(HAVE_CURVE25519) && defined(HAVE_ED25519)
- /* add ED25519 certificate cipher suite tests */
- strcpy(argv0[1], "tests/test-ed25519.conf");
- printf("starting ED25519 extra cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#endif
-#if defined(HAVE_CURVE448) && defined(HAVE_ED448)
- /* add ED448 certificate cipher suite tests */
- strcpy(argv0[1], "tests/test-ed448.conf");
- printf("starting ED448 extra cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#endif
-#ifdef WOLFSSL_DTLS
- /* add dtls extra suites */
- strcpy(argv0[1], "tests/test-dtls.conf");
- printf("starting dtls extra cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#ifdef WOLFSSL_OLDTLS_SHA2_CIPHERSUITES
- /* add dtls extra suites */
- strcpy(argv0[1], "tests/test-dtls-sha2.conf");
- printf("starting dtls extra cipher suite tests - old TLS sha-2 cs\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#endif
-#endif
-#ifdef WOLFSSL_SCTP
- /* add dtls-sctp extra suites */
- strcpy(argv0[1], "tests/test-sctp.conf");
- printf("starting dtls-sctp extra cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#ifdef WOLFSSL_OLDTLS_SHA2_CIPHERSUITES
- /* add dtls-sctp extra suites */
- strcpy(argv0[1], "tests/test-sctp-sha2.conf");
- printf("starting dtls-sctp extra cipher suite tests - old TLS sha-2 cs\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#endif
-#endif
-#ifndef WC_STRICT_SIG
-#if !defined(NO_RSA) && defined(HAVE_ECC) /* testing mixed ECC/RSA cert */
- /* add extra signature test suites */
- strcpy(argv0[1], "tests/test-sig.conf");
- printf("starting sig extra cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#endif /* HAVE_RSA and HAVE_ECC */
-#endif /* !WC_STRICT_SIG */
-#ifdef HAVE_QSH
- /* add QSH extra suites */
- strcpy(argv0[1], "tests/test-qsh.conf");
- printf("starting qsh extra cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#ifdef WOLFSSL_OLDTLS_SHA2_CIPHERSUITES
- strcpy(argv0[1], "tests/test-qsh-sha2.conf");
- printf("starting qsh extra cipher suite tests - old TLS sha-2 cs\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#endif
-#endif
-#ifndef NO_PSK
- #ifndef WOLFSSL_NO_TLS12
- #if !defined(NO_RSA) || defined(HAVE_ECC)
- /* add psk cipher suites */
- strcpy(argv0[1], "tests/test-psk.conf");
- printf("starting psk cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
- #endif
- #endif
- #ifdef WOLFSSL_TLS13
- /* add psk extra suites */
- strcpy(argv0[1], "tests/test-tls13-psk.conf");
- printf("starting TLS 1.3 psk no identity extra cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
- #endif
-#endif
-#if defined(WOLFSSL_ENCRYPTED_KEYS) && !defined(NO_DES3) && !defined(NO_MD5) &&\
- !defined(NO_SHA)
- /* test encrypted keys */
- strcpy(argv0[1], "tests/test-enckeys.conf");
- printf("starting encrypted keys extra cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#endif
-
-#ifdef HAVE_MAX_FRAGMENT
- /* Max fragment cipher suite tests */
- strcpy(argv0[1], "tests/test-maxfrag.conf");
- printf("starting max fragment cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-
- #ifdef WOLFSSL_DTLS
- strcpy(argv0[1], "tests/test-maxfrag-dtls.conf");
- printf("starting dtls max fragment cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
- #endif
-#endif
-
-#ifdef WOLFSSL_ALT_CERT_CHAINS
- /* tests for alt chains */
- strcpy(argv0[1], "tests/test-altchains.conf");
- printf("starting certificate alternate chain cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#else
- /* tests for chains */
- strcpy(argv0[1], "tests/test-chains.conf");
- printf("starting certificate chain cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#endif
-
-#ifdef WOLFSSL_TRUST_PEER_CERT
- /* tests for trusted peer cert */
- strcpy(argv0[1], "tests/test-trustpeer.conf");
- printf("starting trusted peer certificate cipher suite tests\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-#endif
-
- /* tests for dh prime */
- args.argc = 3;
- strcpy(argv0[1], "tests/test-dhprime.conf");
- strcpy(argv0[2], "doDH"); /* add DH prime flag */
- printf("starting tests that expect failure\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-
- /* failure tests */
- args.argc = 3;
- strcpy(argv0[1], "tests/test-fails.conf");
- strcpy(argv0[2], "expFail"); /* tests are expected to fail */
- printf("starting tests that expect failure\n");
- test_harness(&args);
- if (args.return_code != 0) {
- printf("error from script %d\n", args.return_code);
- args.return_code = EXIT_FAILURE;
- goto exit;
- }
-
-exit:
- printf(" End Cipher Suite Tests\n");
-
- wolfSSL_CTX_free(cipherSuiteCtx);
- wolfSSL_Cleanup();
-
-#if defined(HAVE_ECC) && defined(FP_ECC) && defined(HAVE_THREAD_LS) \
- && (defined(NO_MAIN_DRIVER) || defined(HAVE_STACK_SIZE))
- wc_ecc_fp_free(); /* free per thread cache */
-#endif
-#ifdef WOLFSSL_ASYNC_CRYPT
- wolfAsync_DevClose(&devId);
-#endif
-
- return args.return_code;
-#else
- return NOT_COMPILED_IN;
-#endif /* !NO_WOLFSSL_SERVER && !NO_WOLFSSL_CLIENT */
- (void)argc;
- (void)argv;
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-altchains.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-altchains.conf
deleted file mode 100644
index 9bd52741d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-altchains.conf
+++ /dev/null
@@ -1,245 +0,0 @@
-# Tests will use complete chain with intermediate CA for testing
-# The tests with chains have the CRL checking disabled
-# CRL's only load for trusted CA's, for a chain you must load the root and intermediate as trusted
-# For these tests we are loading root and sending intermediate and peer certs
-# server TLSv1.2 DHE-RSA-AES128-GCM-SHA256 RSA Chain
--v 3
--l DHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-chain.pem
--V
-
-# client TLSv1.2 DHE-RSA-AES128-GCM-SHA256 RSA Chain
--v 3
--l DHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-chain.pem
--C
-
-# server TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 RSA Chain
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-chain.pem
--V
-
-# client TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 RSA Chain
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-chain.pem
--C
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Chain
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/intermediate/server-chain-ecc.pem
--V
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Chain
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-client-key.pem
--c ./certs/intermediate/client-chain-ecc.pem
--C
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 RSA Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-chain.pem
--V
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 RSA Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-chain.pem
--C
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/intermediate/server-chain-ecc.pem
--V
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-client-key.pem
--c ./certs/intermediate/client-chain-ecc.pem
--C
-
-# Test will load intermediate CA as trusted and only present the peer cert (partial chain)
-# server TLSv1.2 DHE-RSA-AES128-GCM-SHA256 RSA Partial Chain
--v 3
--l DHE-RSA-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-int-cert.pem
--V
-
-# client TLSv1.2 DHE-RSA-AES128-GCM-SHA256 RSA Partial Chain
--v 3
--l DHE-RSA-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-int-cert.pem
--C
-
-# server TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 RSA Partial Chain
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-int-cert.pem
--V
-
-# client TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 RSA Partial Chain
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-int-cert.pem
--C
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Partial Chain
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/intermediate/server-int-ecc-cert.pem
--V
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Partial Chain
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-ecc-cert.pem
--k ./certs/ecc-client-key.pem
--c ./certs/intermediate/client-int-ecc-cert.pem
--C
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 RSA Partial Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-int-cert.pem
--V
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 RSA Partial Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-int-cert.pem
--C
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Partial Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/intermediate/server-int-ecc-cert.pem
--V
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Partial Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-ecc-cert.pem
--k ./certs/ecc-client-key.pem
--c ./certs/intermediate/client-int-ecc-cert.pem
--C
-
-# Test will use alternate chain where chain contains extra cert
-# server TLSv1.2 DHE-RSA-AES128-GCM-SHA256 RSA Alt Chain
--v 3
--l DHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-chain-alt.pem
--V
-
-# client TLSv1.2 DHE-RSA-AES128-GCM-SHA256 RSA Alt Chain
--v 3
--l DHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-chain-alt.pem
--C
-
-# server TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 RSA Alt Chain
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-chain-alt.pem
--V
-
-# client TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 RSA Alt Chain
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-chain-alt.pem
--C
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Alt Chain
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/intermediate/server-chain-alt-ecc.pem
--V
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Alt Chain
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-client-key.pem
--c ./certs/intermediate/client-chain-alt-ecc.pem
--C
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 RSA Alt Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-chain-alt.pem
--V
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 RSA Alt Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-chain-alt.pem
--C
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Alt Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/intermediate/server-chain-alt-ecc.pem
--V
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Alt Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-client-key.pem
--c ./certs/intermediate/client-chain-alt-ecc.pem
--C
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-chains.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-chains.conf
deleted file mode 100644
index 879d9288d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-chains.conf
+++ /dev/null
@@ -1,384 +0,0 @@
-# Tests will use complete chain with intermediate CA for testing
-# The tests with chains have the CRL checking disabled
-# CRL's only load for trusted CA's, for a chain you must load the root and intermediate as trusted
-# For these tests we are loading root and sending intermediate and peer certs
-# server TLSv1.2 DHE-RSA-AES128-GCM-SHA256 RSA Chain
--v 3
--l DHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-chain.pem
--V
-
-# client TLSv1.2 DHE-RSA-AES128-GCM-SHA256 RSA Chain
--v 3
--l DHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-chain.pem
--C
-
-# server TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 RSA Chain
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-chain.pem
--V
-
-# client TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 RSA Chain
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-chain.pem
--C
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Chain
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/intermediate/server-chain-ecc.pem
--V
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Chain
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-client-key.pem
--c ./certs/intermediate/client-chain-ecc.pem
--C
-
-# server TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/test-pathlen/chainA-entity-key.pem
--c ./certs/test-pathlen/chainA-assembled.pem
--V
-
-# client TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--C
-
-# server TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/test-pathlen/chainB-entity-key.pem
--c ./certs/test-pathlen/chainB-assembled.pem
--V
-
-# client TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--C
-
-# server TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/test-pathlen/chainC-entity-key.pem
--c ./certs/test-pathlen/chainC-assembled.pem
--V
-
-# client TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--C
-
-# server TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/test-pathlen/chainD-entity-key.pem
--c ./certs/test-pathlen/chainD-assembled.pem
--V
-
-# client TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--C
-
-# server TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/test-pathlen/chainE-entity-key.pem
--c ./certs/test-pathlen/chainE-assembled.pem
--H exitWithRet
--V
-
-# client TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--H exitWithRet
--C
-
-# server TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/test-pathlen/chainF-entity-key.pem
--c ./certs/test-pathlen/chainF-assembled.pem
--H exitWithRet
--V
-
-# client TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--H exitWithRet
--C
-
-# server TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/test-pathlen/chainG-entity-key.pem
--c ./certs/test-pathlen/chainG-assembled.pem
--V
-
-# client TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--C
-
-# server TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/test-pathlen/chainH-entity-key.pem
--c ./certs/test-pathlen/chainH-assembled.pem
--H exitWithRet
--V
-
-# client TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--H exitWithRet
--C
-
-# server TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/test-pathlen/chainI-entity-key.pem
--c ./certs/test-pathlen/chainI-assembled.pem
--V
-
-# client TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--C
-
-# server TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/test-pathlen/chainJ-entity-key.pem
--c ./certs/test-pathlen/chainJ-assembled.pem
--H exitWithRet
--V
-
-# client TLSv1.2 pathLen constraint test
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--H exitWithRet
--C
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 RSA Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-chain.pem
--V
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 RSA Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-chain.pem
--C
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/intermediate/server-chain-ecc.pem
--V
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-client-key.pem
--c ./certs/intermediate/client-chain-ecc.pem
--C
-
-# Test will load intermediate CA as trusted and only present the peer cert (partial chain)
-# server TLSv1.2 DHE-RSA-AES128-GCM-SHA256 RSA Partial Chain
--v 3
--l DHE-RSA-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-int-cert.pem
--V
-
-# client TLSv1.2 DHE-RSA-AES128-GCM-SHA256 RSA Partial Chain
--v 3
--l DHE-RSA-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-int-cert.pem
--C
-
-# server TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 RSA Partial Chain
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-int-cert.pem
--V
-
-# client TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 RSA Partial Chain
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-int-cert.pem
--C
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Partial Chain
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/intermediate/server-int-ecc-cert.pem
--V
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Partial Chain
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-ecc-cert.pem
--k ./certs/ecc-client-key.pem
--c ./certs/intermediate/client-int-ecc-cert.pem
--C
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 RSA Partial Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-int-cert.pem
--V
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 RSA Partial Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-int-cert.pem
--C
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Partial Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/intermediate/server-int-ecc-cert.pem
--V
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Partial Chain
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/intermediate/ca-int-ecc-cert.pem
--k ./certs/ecc-client-key.pem
--c ./certs/intermediate/client-int-ecc-cert.pem
--C
-
-# Test will use alternate chain where chain contains extra cert
-# These tests should fail
-# server TLSv1.2 DHE-RSA-AES128-GCM-SHA256 RSA Alt Chain Fail
--v 3
--l DHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-chain-alt.pem
--H exitWithRet
--V
-
-# client TLSv1.2 DHE-RSA-AES128-GCM-SHA256 RSA Alt Chain Fail
--v 3
--l DHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-chain-alt.pem
--H exitWithRet
--C
-
-# server TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 RSA Alt Chain Fail
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-chain-alt.pem
--H exitWithRet
--V
-
-# client TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 RSA Alt Chain Fail
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-chain-alt.pem
--H exitWithRet
--C
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Alt Chain Fail
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/intermediate/server-chain-alt-ecc.pem
--H exitWithRet
--V
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Alt Chain Fail
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-client-key.pem
--c ./certs/intermediate/client-chain-alt-ecc.pem
--H exitWithRet
--C
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 RSA Alt Chain Fail
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-chain-alt.pem
--H exitWithRet
--V
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 RSA Alt Chain Fail
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-chain-alt.pem
--H exitWithRet
--C
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Alt Chain Fail
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/intermediate/server-chain-alt-ecc.pem
--H exitWithRet
--V
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Alt Chain Fail
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--k ./certs/ecc-client-key.pem
--c ./certs/intermediate/client-chain-alt-ecc.pem
--H exitWithRet
--C
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-dhprime.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-dhprime.conf
deleted file mode 100644
index f43739ed0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-dhprime.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-# server TLSv1.2 DHE AES128 (DHE prime test)
--v 3
--l DHE-RSA-AES128-SHA
-
-# client TLSv1.2 DHE AES128 (DHE prime test)
--v 3
--l DHE-RSA-AES128-SHA
-
-# server TLSv1.2 DHE AES256-SHA256 (DHE prime test)
--v 3
--l DHE-RSA-AES256-SHA256
-
-# client TLSv1.2 DHE AES256-SHA256 (DHE prime test)
--v 3
--l DHE-RSA-AES256-SHA256
-
-# server TLSv1.2 DHE-PSK-AES128-CBC-SHA256 (DHE prime test)
--s
--v 3
--l DHE-PSK-AES128-CBC-SHA256
-
-# client TLSv1.2 DHE-PSK-AES128-CBC-SHA256 (DHE prime test)
--s
--v 3
--l DHE-PSK-AES128-CBC-SHA256
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-dtls-sha2.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-dtls-sha2.conf
deleted file mode 100644
index f5bf6e77c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-dtls-sha2.conf
+++ /dev/null
@@ -1,66 +0,0 @@
-# server DTLSv1 AES128-SHA256
--u
--v 2
--l AES128-SHA256
-
-# client DTLSv1 AES128-SHA256
--u
--v 2
--l AES128-SHA256
-
-# server DTLSv1 AES256-SHA256
--u
--v 2
--l AES256-SHA256
-
-# client DTLSv1 AES256-SHA256
--u
--v 2
--l AES256-SHA256
-
-# server TLSv1 ECDHE-PSK-AES128-SHA256
--s
--u
--v 1
--l ECDHE-PSK-AES128-SHA256
-
-# client TLSv1 ECDHE-PSK-AES128-SHA256
--s
--u
--v 1
--l ECDHE-PSK-AES128-SHA256
-
-# server TLSv1.1 ECDHE-PSK-AES128-SHA256
--s
--u
--v 2
--l ECDHE-PSK-AES128-SHA256
-
-# client TLSv1.1 ECDHE-PSK-AES128-SHA256
--s
--u
--v 2
--l ECDHE-PSK-AES128-SHA256
-# server TLSv1 ECDHE-PSK-NULL-SHA256
--s
--u
--v 1
--l ECDHE-PSK-NULL-SHA256
-
-# client TLSv1 ECDHE-PSK-NULL-SHA256
--s
--u
--v 1
--l ECDHE-PSK-NULL-SHA256
-
-# server TLSv1.1 ECDHE-PSK-NULL-SHA256
--s
--u
--v 2
--l ECDHE-PSK-NULL-SHA256
-
-# client TLSv1.1 ECDHE-PSK-NULL-SHA256
--s
--u
--v 2
--l ECDHE-PSK-NULL-SHA256
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-dtls.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-dtls.conf
deleted file mode 100644
index ddf658c54..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-dtls.conf
+++ /dev/null
@@ -1,893 +0,0 @@
-# server DTLSv1.2 DHE-RSA-CHACHA20-POLY1305
--u
--v 3
--l DHE-RSA-CHACHA20-POLY1305
-
-# client DTLSv1.2 DHE-RSA-CHACHA20-POLY1305
--u
--v 3
--l DHE-RSA-CHACHA20-POLY1305
-
-# server DTLSv1.2 ECDHE-RSA-CHACHA20-POLY1305
--u
--v 3
--l ECDHE-RSA-CHACHA20-POLY1305
-
-# client DTLSv1.2 ECDHE-RSA-CHACHA20-POLY1305
--u
--v 3
--l ECDHE-RSA-CHACHA20-POLY1305
-
-# server DTLSv1.2 ECDHE-EDCSA-CHACHA20-POLY1305
--u
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-CHACHA20-POLY1305
--u
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 DHE-PSK-CHACHA20-POLY1305
--u
--v 3
--s
--l DHE-PSK-CHACHA20-POLY1305
-
-# client TLSv1.2 DHE-PSK-CHACHA20-POLY1305
--u
--v 3
--s
--l DHE-PSK-CHACHA20-POLY1305
-
-# server TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305
--u
--v 3
--s
--l ECDHE-PSK-CHACHA20-POLY1305
-
-# client TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305
--u
--v 3
--s
--l ECDHE-PSK-CHACHA20-POLY1305
-
-# server TLSv1.2 PSK-CHACHA20-POLY1305
--u
--v 3
--s
--l PSK-CHACHA20-POLY1305
-
-# client TLSv1.2 PSK-CHACHA20-POLY1305
--u
--v 3
--s
--l PSK-CHACHA20-POLY1305
-
-# server DTLSv1.2 DHE-RSA-CHACHA20-POLY1305-OLD
--u
--v 3
--l DHE-RSA-CHACHA20-POLY1305-OLD
-
-# client DTLSv1.2 DHE-RSA-CHACHA20-POLY1305-OLD
--u
--v 3
--l DHE-RSA-CHACHA20-POLY1305-OLD
-
-# server DTLSv1.2 ECDHE-RSA-CHACHA20-POLY1305-OLD
--u
--v 3
--l ECDHE-RSA-CHACHA20-POLY1305-OLD
-
-# client DTLSv1.2 ECDHE-RSA-CHACHA20-POLY1305-OLD
--u
--v 3
--l ECDHE-RSA-CHACHA20-POLY1305-OLD
-
-# server DTLSv1.2 ECDHE-EDCSA-CHACHA20-POLY1305-OLD
--u
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305-OLD
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-CHACHA20-POLY1305-OLD
--u
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305-OLD
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1 IDEA-CBC-SHA
--u
--v 2
--l IDEA-CBC-SHA
-
-# client DTLSv1 IDEA-CBC-SHA
--u
--v 2
--l IDEA-CBC-SHA
-
-# server DTLSv1 DES-CBC3-SHA
--u
--v 2
--l DES-CBC3-SHA
-
-# client DTLSv1 DES-CBC3-SHA
--u
--v 2
--l DES-CBC3-SHA
-
-# server DTLSv1.2 DES-CBC3-SHA
--u
--v 3
--l DES-CBC3-SHA
-
-# client DTLSv1.2 DES-CBC3-SHA
--u
--v 3
--l DES-CBC3-SHA
-
-# server DTLSv1 AES128-SHA
--u
--v 2
--l AES128-SHA
-
-# client DTLSv1 AES128-SHA
--u
--v 2
--l AES128-SHA
-
-# server DTLSv1.2 AES128-SHA
--u
--v 3
--l AES128-SHA
-
-# client DTLSv1.2 AES128-SHA
--u
--v 3
--l AES128-SHA
-
-# server DTLSv1 AES256-SHA
--u
--v 2
--l AES256-SHA
-
-# client DTLSv1 AES256-SHA
--u
--v 2
--l AES256-SHA
-
-# server DTLSv1.2 AES256-SHA
--u
--v 3
--l AES256-SHA
-
-# client DTLSv1.2 AES256-SHA
--u
--v 3
--l AES256-SHA
-
-# server DTLSv1.2 AES128-SHA256
--u
--v 3
--l AES128-SHA256
-
-# client DTLSv1.2 AES128-SHA256
--u
--v 3
--l AES128-SHA256
-
-# server DTLSv1.2 AES256-SHA256
--u
--v 3
--l AES256-SHA256
-
-# client DTLSv1.2 AES256-SHA256
--u
--v 3
--l AES256-SHA256
-
-# server DTLSv1.1 ECDHE-RSA-DES3
--u
--v 2
--l ECDHE-RSA-DES-CBC3-SHA
-
-# client DTLSv1.1 ECDHE-RSA-DES3
--u
--v 2
--l ECDHE-RSA-DES-CBC3-SHA
-
-# server DTLSv1.1 ECDHE-RSA-AES128
--u
--v 2
--l ECDHE-RSA-AES128-SHA
-
-# client DTLSv1.1 ECDHE-RSA-AES128
--u
--v 2
--l ECDHE-RSA-AES128-SHA
-
-# server DTLSv1.1 ECDHE-RSA-AES256
--u
--v 2
--l ECDHE-RSA-AES256-SHA
-
-# client DTLSv1.1 ECDHE-RSA-AES256
--u
--v 2
--l ECDHE-RSA-AES256-SHA
-
-# server DTLSv1.2 ECDHE-RSA-DES3
--u
--v 3
--l ECDHE-RSA-DES-CBC3-SHA
-
-# client DTLSv1.2 ECDHE-RSA-DES3
--u
--v 3
--l ECDHE-RSA-DES-CBC3-SHA
-
-# server DTLSv1.2 ECDHE-RSA-AES128
--u
--v 3
--l ECDHE-RSA-AES128-SHA
-
-# client DTLSv1.2 ECDHE-RSA-AES128
--u
--v 3
--l ECDHE-RSA-AES128-SHA
-
-# server DTLSv1.2 ECDHE-RSA-AES128-SHA256
--u
--v 3
--l ECDHE-RSA-AES128-SHA256
-
-# client DTLSv1.2 ECDHE-RSA-AES128-SHA256
--u
--v 3
--l ECDHE-RSA-AES128-SHA256
-
-# server DTLSv1.2 ECDHE-RSA-AES256
--u
--v 3
--l ECDHE-RSA-AES256-SHA
-
-# client DTLSv1.2 ECDHE-RSA-AES256
--u
--v 3
--l ECDHE-RSA-AES256-SHA
-
-# server TLSv1 ECDHE-ECDSA-NULL-SHA
--u
--v 1
--l ECDHE-ECDSA-NULL-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-NULL-SHA
--u
--v 1
--l ECDHE-ECDSA-NULL-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDHE-ECDSA-NULL-SHA
--u
--v 2
--l ECDHE-ECDSA-NULL-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-NULL-SHA
--u
--v 2
--l ECDHE-ECDSA-NULL-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-NULL-SHA
--u
--v 3
--l ECDHE-ECDSA-NULL-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-NULL-SHA
--u
--v 3
--l ECDHE-ECDSA-NULL-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.1 ECDHE-ECDSA-DES3
--u
--v 2
--l ECDHE-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDHE-ECDSA-DES3
--u
--v 2
--l ECDHE-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.1 ECDHE-ECDSA-AES128
--u
--v 2
--l ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDHE-ECDSA-AES128
--u
--v 2
--l ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.1 ECDHE-ECDSA-AES256
--u
--v 2
--l ECDHE-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDHE-ECDSA-AES256
--u
--v 2
--l ECDHE-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-DES3
--u
--v 3
--l ECDHE-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-DES3
--u
--v 3
--l ECDHE-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-AES128
--u
--v 3
--l ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES128
--u
--v 3
--l ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-AES128-SHA256
--u
--v 3
--l ECDHE-ECDSA-AES128-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES128-SHA256
--u
--v 3
--l ECDHE-ECDSA-AES128-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-AES256
--u
--v 3
--l ECDHE-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES256
--u
--v 3
--l ECDHE-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.1 ECDH-RSA-DES3
--u
--v 2
--l ECDH-RSA-DES-CBC3-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDH-RSA-DES3
--u
--v 2
--l ECDH-RSA-DES-CBC3-SHA
-
-# server DTLSv1.1 ECDH-RSA-AES128
--u
--v 2
--l ECDH-RSA-AES128-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDH-RSA-AES128
--u
--v 2
--l ECDH-RSA-AES128-SHA
-
-# server DTLSv1.1 ECDH-RSA-AES256
--u
--v 2
--l ECDH-RSA-AES256-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDH-RSA-AES256
--u
--v 2
--l ECDH-RSA-AES256-SHA
-
-# server DTLSv1.2 ECDH-RSA-DES3
--u
--v 3
--l ECDH-RSA-DES-CBC3-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-DES3
--u
--v 3
--l ECDH-RSA-DES-CBC3-SHA
-
-# server DTLSv1.2 ECDH-RSA-AES128
--u
--v 3
--l ECDH-RSA-AES128-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-AES128
--u
--v 3
--l ECDH-RSA-AES128-SHA
-
-# server DTLSv1.2 ECDH-RSA-AES128-SHA256
--u
--v 3
--l ECDH-RSA-AES128-SHA256
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-AES128-SHA256
--u
--v 3
--l ECDH-RSA-AES128-SHA256
-
-# server DTLSv1.2 ECDH-RSA-AES256
--u
--v 3
--l ECDH-RSA-AES256-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-AES256
--u
--v 3
--l ECDH-RSA-AES256-SHA
-
-# server DTLSv1.1 ECDH-ECDSA-DES3
--u
--v 2
--l ECDH-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDH-ECDSA-DES3
--u
--v 2
--l ECDH-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.1 ECDH-ECDSA-AES128
--u
--v 2
--l ECDH-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDH-ECDSA-AES128
--u
--v 2
--l ECDH-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.1 ECDH-ECDSA-AES256
--u
--v 2
--l ECDH-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDH-ECDSA-AES256
--u
--v 2
--l ECDH-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDH-ECDSA-DES3
--u
--v 3
--l ECDH-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-DES3
--u
--v 3
--l ECDH-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDH-ECDSA-AES128
--u
--v 3
--l ECDH-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-AES128
--u
--v 3
--l ECDH-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDH-ECDSA-AES128-SHA256
--u
--v 3
--l ECDH-ECDSA-AES128-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-AES128-SHA256
--u
--v 3
--l ECDH-ECDSA-AES128-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDH-ECDSA-AES256
--u
--v 3
--l ECDH-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-AES256
--u
--v 3
--l ECDH-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-RSA-AES256-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-SHA384
-
-# client DTLSv1.2 ECDHE-RSA-AES256-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-SHA384
-
-# server DTLSv1.2 ECDHE-ECDSA-AES256-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES256-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDH-RSA-AES256-SHA384
--u
--v 3
--l ECDH-RSA-AES256-SHA384
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-AES256-SHA384
--u
--v 3
--l ECDH-RSA-AES256-SHA384
-
-# server DTLSv1.2 ECDH-ECDSA-AES256-SHA384
--u
--v 3
--l ECDH-ECDSA-AES256-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-AES256-SHA384
--u
--v 3
--l ECDH-ECDSA-AES256-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-PSK-AES128-SHA256
--s
--u
--v 3
--l ECDHE-PSK-AES128-SHA256
-
-# client TLSv1.2 ECDHE-PSK-AES128-SHA256
--s
--u
--v 3
--l ECDHE-PSK-AES128-SHA256
-
-# server TLSv1.2 ECDHE-PSK-NULL-SHA256
--s
--u
--v 3
--l ECDHE-PSK-NULL-SHA256
-
-# client TLSv1.2 ECDHE-PSK-NULL-SHA256
--s
--u
--v 3
--l ECDHE-PSK-NULL-SHA256
-
-# server DTLSv1 PSK-AES128
--s
--u
--v 2
--l PSK-AES128-CBC-SHA
-
-# client DTLSv1 PSK-AES128
--s
--u
--v 2
--l PSK-AES128-CBC-SHA
-
-# server DTLSv1 PSK-AES256
--s
--u
--v 2
--l PSK-AES256-CBC-SHA
-
-# client DTLSv1 PSK-AES256
--s
--u
--v 2
--l PSK-AES256-CBC-SHA
-
-# server DTLSv1.2 PSK-AES128
--s
--u
--v 3
--l PSK-AES128-CBC-SHA
-
-# client DTLSv1.2 PSK-AES128
--s
--u
--v 3
--l PSK-AES128-CBC-SHA
-
-# server DTLSv1.2 PSK-AES256
--s
--u
--v 3
--l PSK-AES256-CBC-SHA
-
-# client DTLSv1.2 PSK-AES256
--s
--u
--v 3
--l PSK-AES256-CBC-SHA
-
-# server DTLSv1.2 PSK-AES128-SHA256
--s
--u
--v 3
--l PSK-AES128-CBC-SHA256
-
-# client DTLSv1.2 PSK-AES128-SHA256
--s
--u
--v 3
--l PSK-AES128-CBC-SHA256
-
-# server DTLSv1.2 PSK-AES256-SHA384
--s
--u
--v 3
--l PSK-AES256-CBC-SHA384
-
-# client DTLSv1.2 PSK-AES256-SHA384
--s
--u
--v 3
--l PSK-AES256-CBC-SHA384
-
-# server DTLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--u
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--u
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDH-ECDSA-AES128-GCM-SHA256
--u
--v 3
--l ECDH-ECDSA-AES128-GCM-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-AES128-GCM-SHA256
--u
--v 3
--l ECDH-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDH-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDH-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDH-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-RSA-AES128-GCM-SHA256
--u
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
-
-# client DTLSv1.2 ECDHE-RSA-AES128-GCM-SHA256
--u
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
-
-# server DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# server DTLSv1.2 ECDH-RSA-AES128-GCM-SHA256
--u
--v 3
--l ECDH-RSA-AES128-GCM-SHA256
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-AES128-GCM-SHA256
--u
--v 3
--l ECDH-RSA-AES128-GCM-SHA256
-
-# server DTLSv1.2 ECDH-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDH-RSA-AES256-GCM-SHA384
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDH-RSA-AES256-GCM-SHA384
-
-# server DTLSv1.2 PSK-AES128-GCM-SHA256
--u
--s
--v 3
--l PSK-AES128-GCM-SHA256
-
-# client DTLSv1.2 PSK-AES128-GCM-SHA256
--u
--s
--v 3
--l PSK-AES128-GCM-SHA256
-
-# server DTLSv1.2 PSK-AES256-GCM-SHA384
--u
--s
--v 3
--l PSK-AES256-GCM-SHA384
-
-# client DTLSv1.2 PSK-AES256-GCM-SHA384
--u
--s
--v 3
--l PSK-AES256-GCM-SHA384
-
-# server DTLSv1.2 ECDHE-ECDSA-AES128-CCM
--u
--v 3
--l ECDHE-ECDSA-AES128-CCM
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES128-CCM
--u
--v 3
--l ECDHE-ECDSA-AES128-CCM
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-AES128-CCM-8
--u
--v 3
--l ECDHE-ECDSA-AES128-CCM-8
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES128-CCM-8
--u
--v 3
--l ECDHE-ECDSA-AES128-CCM-8
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-AES256-CCM-8
--u
--v 3
--l ECDHE-ECDSA-AES256-CCM-8
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES256-CCM-8
--u
--v 3
--l ECDHE-ECDSA-AES256-CCM-8
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ADH-AES128-SHA
--u
--a
--v 3
--l ADH-AES128-SHA
-
-# client DTLSv1.2 ADH-AES128-SHA
--u
--a
--v 3
--l ADH-AES128-SHA
-
-# server DTLSv1.0 ADH-AES128-SHA
--u
--a
--v 2
--l ADH-AES128-SHA
-
-# client DTLSv1.0 ADH-AES128-SHA
--u
--a
--v 2
--l ADH-AES128-SHA
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-ed25519.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-ed25519.conf
deleted file mode 100644
index 8de0037bd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-ed25519.conf
+++ /dev/null
@@ -1,71 +0,0 @@
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/ed25519/server-ed25519.pem
--k ./certs/ed25519/server-ed25519-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ed25519/root-ed25519.pem
--C
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/ed25519/server-ed25519.pem
--k ./certs/ed25519/server-ed25519-priv.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ed25519/root-ed25519.pem
--C
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/ed25519/server-ed25519.pem
--k ./certs/ed25519/server-ed25519-key.pem
--A ./certs/ed25519/client-ed25519.pem
--V
-# Remove -V when CRL for ED25519 certificates available.
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/ed25519/client-ed25519.pem
--k ./certs/ed25519/client-ed25519-key.pem
--A ./certs/ed25519/root-ed25519.pem
--C
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--c ./certs/ed25519/server-ed25519.pem
--k ./certs/ed25519/server-ed25519-key.pem
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ed25519/root-ed25519.pem
--C
-
-# Enable when CRL for ED25519 certificates available.
-# server TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--c ./certs/ed25519/server-ed25519.pem
--k ./certs/ed25519/server-ed25519-key.pem
--A ./certs/ed25519/client-ed25519.pem
--V
-# Remove -V when CRL for ED25519 certificates available.
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--c ./certs/ed25519/client-ed25519.pem
--k ./certs/ed25519/client-ed25519-key.pem
--A ./certs/ed25519/root-ed25519.pem
--C
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-ed448.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-ed448.conf
deleted file mode 100644
index 255e189a6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-ed448.conf
+++ /dev/null
@@ -1,59 +0,0 @@
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/ed448/server-ed448.pem
--k ./certs/ed448/server-ed448-priv.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ed448/root-ed448.pem
--C
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/ed448/server-ed448.pem
--k ./certs/ed448/server-ed448-priv.pem
--A ./certs/ed448/client-ed448.pem
--V
-# Remove -V when CRL for ED448 certificates available.
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/ed448/client-ed448.pem
--k ./certs/ed448/client-ed448-priv.pem
--A ./certs/ed448/root-ed448.pem
--C
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--c ./certs/ed448/server-ed448.pem
--k ./certs/ed448/server-ed448-priv.pem
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ed448/root-ed448.pem
--C
-
-# Enable when CRL for ED448 certificates available.
-# server TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--c ./certs/ed448/server-ed448.pem
--k ./certs/ed448/server-ed448-priv.pem
--A ./certs/ed448/client-ed448.pem
--V
-# Remove -V when CRL for ED448 certificates available.
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--c ./certs/ed448/client-ed448.pem
--k ./certs/ed448/client-ed448-priv.pem
--A ./certs/ed448/root-ed448.pem
--C
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-enckeys.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-enckeys.conf
deleted file mode 100644
index 9e371c239..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-enckeys.conf
+++ /dev/null
@@ -1,42 +0,0 @@
-# server RSA encrypted key
--v 3
--k ./certs/server-keyEnc.pem
-
-# client RSA encrypted key
--v 3
--k ./certs/client-keyEnc.pem
-
-# server RSA encrypted key PKCS8
--v 3
--k ./certs/server-keyPkcs8Enc.pem
-
-# client RSA encrypted key
--v 3
--k ./certs/client-keyEnc.pem
-
-# server RSA encrypted key PKCS8 2
--v 3
--k ./certs/server-keyPkcs8Enc2.pem
-
-# client RSA encrypted key
--v 3
--k ./certs/client-keyEnc.pem
-
-# server RSA encrypted key PKCS8 12
--v 3
--k ./certs/server-keyPkcs8Enc12.pem
-
-# client RSA encrypted key
--v 3
--k ./certs/client-keyEnc.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-SHA256 PKCS8 encrypted key
--v 3
--l ECDHE-ECDSA-AES128-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-keyPkcs8Enc.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-SHA256
--v 3
--l ECDHE-ECDSA-AES128-SHA256
--A ./certs/ca-ecc-cert.pem
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-fails.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-fails.conf
deleted file mode 100644
index d8ea91fd4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-fails.conf
+++ /dev/null
@@ -1,179 +0,0 @@
-# server bad certificate common name has null
-# DG: Have not found a way to properly encode null in common name
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/server-key.pem
--c ./certs/test/server-badcnnull.pem
--d
-
-# client bad certificate common name has null
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--h localhost
--A ./certs/test/server-badcnnull.pem
--m
--x
-
-# server bad certificate alternate name has null
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/server-key.pem
--c ./certs/test/server-badaltnull.pem
--d
-
-# client bad certificate alternate name has null
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--h localhost
--A ./certs/test/server-badaltnull.pem
--m
--x
-
-# server nomatch common name
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/server-key.pem
--c ./certs/test/server-badcn.pem
--d
-
-# client nomatch common name
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--h localhost
--A ./certs/test/server-badcn.pem
--m
--x
-
-# server nomatch alternate name
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/server-key.pem
--c ./certs/test/server-badaltname.pem
--d
-
-# client nomatch alternate name
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--h localhost
--A ./certs/test/server-badaltname.pem
--m
--x
-
-# server RSA no signer error
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
-
-# client RSA no signer error
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--A ./certs/client-cert.pem
-
-# server ECC no signer error
-#-v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client ECC no signer error
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/client-ecc-cert.pem
-
-# server RSA bad sig error
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--c ./certs/test/server-cert-rsa-badsig.pem
-
-# client RSA bad sig error
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
-
-# server ECC bad sig error
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/test/server-cert-ecc-badsig.pem
-
-# client ECC bad sig error
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
-
-# server missing CN from alternate names list
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--c ./certs/test/server-garbage.pem
-
-# client missing CN from alternate names list
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--h localhost
--A ./certs/test/server-garbage.pem
--m
-
-# Verify Callback Failure Tests
-# no error going into callback, return error
-# server
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
-
-# client verify should fail
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--H verifyFail
-
-# server verify should fail
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--H verifyFail
-
-# client
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
-
-# server
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
-
-# client verify should fail
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--H verifyFail
-
-# server verify should fail
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--H verifyFail
-
-# client
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
-
-# error going into callback, return error
-# server
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--c ./certs/test/server-cert-rsa-badsig.pem
--k ./certs/server-key.pem
-
-# client verify should fail
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--H verifyFail
-
-# server
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/test/server-cert-ecc-badsig.pem
--k ./certs/ecc-key.pem
-
-# client verify should fail
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--H verifyFail
-
-# server send alert on no mutual authentication
--v 3
--F
-
-# client send alert on no mutual authentication
--v 3
--x
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-maxfrag-dtls.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-maxfrag-dtls.conf
deleted file mode 100644
index 67aef1776..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-maxfrag-dtls.conf
+++ /dev/null
@@ -1,215 +0,0 @@
-# server DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
--F 1
-
-# server DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
--F 1
-
-# server DTLSv1.2 DHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l DHE-RSA-AES256-GCM-SHA384
-
-# client DTLSv1.2 DHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l DHE-RSA-AES256-GCM-SHA384
--F 1
-
-# server DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
--F 2
-
-# server DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
--F 2
-
-# server DTLSv1.2 DHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l DHE-RSA-AES256-GCM-SHA384
-
-# client DTLSv1.2 DHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l DHE-RSA-AES256-GCM-SHA384
--F 2
-
-# server DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
--F 3
-
-# server DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
--F 3
-
-# server DTLSv1.2 DHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l DHE-RSA-AES256-GCM-SHA384
-
-# client DTLSv1.2 DHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l DHE-RSA-AES256-GCM-SHA384
--F 3
-
-# server DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
--F 4
-
-# server DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
--F 4
-
-# server DTLSv1.2 DHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l DHE-RSA-AES256-GCM-SHA384
-
-# client DTLSv1.2 DHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l DHE-RSA-AES256-GCM-SHA384
--F 4
-
-# server DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
--F 5
-
-# server DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
--F 5
-
-# server DTLSv1.2 DHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l DHE-RSA-AES256-GCM-SHA384
-
-# client DTLSv1.2 DHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l DHE-RSA-AES256-GCM-SHA384
--F 5
-
-# server DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
--F 6
-
-# server DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
--F 6
-
-# server DTLSv1.2 DHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l DHE-RSA-AES256-GCM-SHA384
-
-# client DTLSv1.2 DHE-RSA-AES256-GCM-SHA384
--u
--v 3
--l DHE-RSA-AES256-GCM-SHA384
--F 6
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-maxfrag.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-maxfrag.conf
deleted file mode 100644
index 2ca6cc8dd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-maxfrag.conf
+++ /dev/null
@@ -1,179 +0,0 @@
-# server TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
--F 1
-
-# server TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
--F 1
-
-# server TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l DHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l DHE-RSA-AES256-GCM-SHA384
--F 1
-
-# server TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
--F 2
-
-# server TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
--F 2
-
-# server TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l DHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l DHE-RSA-AES256-GCM-SHA384
--F 2
-
-# server TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
--F 3
-
-# server TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
--F 3
-
-# server TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l DHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l DHE-RSA-AES256-GCM-SHA384
--F 3
-
-# server TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
--F 4
-
-# server TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
--F 4
-
-# server TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l DHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l DHE-RSA-AES256-GCM-SHA384
--F 4
-
-# server TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
--F 5
-
-# server TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
--F 5
-
-# server TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l DHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l DHE-RSA-AES256-GCM-SHA384
--F 5
-
-# server TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
--F 6
-
-# server TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
--F 6
-
-# server TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l DHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l DHE-RSA-AES256-GCM-SHA384
--F 6
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-psk-no-id-sha2.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-psk-no-id-sha2.conf
deleted file mode 100644
index 73c6f073a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-psk-no-id-sha2.conf
+++ /dev/null
@@ -1,87 +0,0 @@
-# No Hint server TLSv1 ECDHE-PSK-AES128-SHA256
--s
--I
--v 1
--l ECDHE-PSK-AES128-SHA256
-
-# No Hint client TLSv1 ECDHE-PSK-AES128-SHA256
--s
--v 1
--l ECDHE-PSK-AES128-SHA256
-
-# No Hint server TLSv1.1 ECDHE-PSK-AES128-SHA256
--s
--I
--v 2
--l ECDHE-PSK-AES128-SHA256
-
-# No Hint client TLSv1.1 ECDHE-PSK-AES128-SHA256
--s
--v 2
--l ECDHE-PSK-AES128-SHA256
-
-# No Hint server TLSv1 ECDHE-PSK-NULL-SHA256
--s
--I
--v 1
--l ECDHE-PSK-NULL-SHA256
-
-# No Hint client TLSv1 ECDHE-PSK-NULL-SHA256
--s
--v 1
--l ECDHE-PSK-NULL-SHA256
-
-# No Hint server TLSv1.1 ECDHE-PSK-NULL-SHA256
--s
--I
--v 2
--l ECDHE-PSK-NULL-SHA256
-
-# No Hint client TLSv1.1 ECDHE-PSK-NULL-SHA256
--s
--v 2
--l ECDHE-PSK-NULL-SHA256
-
-# No Hint server TLSv1.0 PSK-AES128-SHA256
--s
--I
--v 1
--l PSK-AES128-CBC-SHA256
-
-# No Hint client TLSv1.0 PSK-AES128-SHA256
--s
--v 1
--l PSK-AES128-CBC-SHA256
-
-# No Hint server TLSv1.1 PSK-AES128-SHA256
--s
--I
--v 2
--l PSK-AES128-CBC-SHA256
-
-# No Hint client TLSv1.1 PSK-AES128-SHA256
--s
--v 2
--l PSK-AES128-CBC-SHA256
-
- No Hint server TLSv1.0 PSK-AES256-SHA384
--s
--I
--v 1
--l PSK-AES256-CBC-SHA384
-
-# No Hint client TLSv1.0 PSK-AES256-SHA384
--s
--v 1
--l PSK-AES256-CBC-SHA384
-
-# No Hint server TLSv1.1 PSK-AES256-SHA384
--s
--I
--v 2
--l PSK-AES256-CBC-SHA384
-
-# No Hint client TLSv1.1 PSK-AES256-SHA384
--s
--v 2
--l PSK-AES256-CBC-SHA384
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-psk-no-id.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-psk-no-id.conf
deleted file mode 100644
index fc9f74654..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-psk-no-id.conf
+++ /dev/null
@@ -1,214 +0,0 @@
-# No Hint server TLSv1.2 PSK-CHACHA20-POLY1305
--s
--I
--v 3
--l PSK-CHACHA20-POLY1305
-
-# No Hint client TLSv1.2 PSK-CHACHA20-POLY1305
--s
--v 3
--l PSK-CHACHA20-POLY1305
-
-# No Hint server TLSv1.2 DHE-PSK-CHACHA20-POLY1305
--s
--I
--v 3
--l DHE-PSK-CHACHA20-POLY1305
-
-# No Hint client TLSv1.2 DHE-PSK-CHACHA20-POLY1305
--s
--v 3
--l DHE-PSK-CHACHA20-POLY1305
-
-# No Hint server TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305
--s
--I
--v 3
--l ECDHE-PSK-CHACHA20-POLY1305
-
-# No Hint client TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305
--s
--v 3
--l ECDHE-PSK-CHACHA20-POLY1305
-
-# No Hint server TLSv1.2 ECDHE-PSK-AES128-SHA256
--s
--I
--v 3
--l ECDHE-PSK-AES128-SHA256
-
-# No Hint client TLSv1.2 ECDHE-PSK-AES128-SHA256
--s
--v 3
--l ECDHE-PSK-AES128-SHA256
-
-# No Hint server TLSv1.2 ECDHE-PSK-NULL-SHA256
--s
--I
--v 3
--l ECDHE-PSK-NULL-SHA256
-
-# No Hint client TLSv1.2 ECDHE-PSK-NULL-SHA256
--s
--v 3
--l ECDHE-PSK-NULL-SHA256
-
-# No Hint server TLSv1 PSK-AES128
--s
--I
--v 1
--l PSK-AES128-CBC-SHA
-
-# No Hint client TLSv1 PSK-AES128
--s
--v 1
--l PSK-AES128-CBC-SHA
-
-# No Hint server TLSv1 PSK-AES256
--s
--I
--v 1
--l PSK-AES256-CBC-SHA
-
-# No Hint client TLSv1 PSK-AES256
--s
--v 1
--l PSK-AES256-CBC-SHA
-
-# No Hint server TLSv1.1 PSK-AES128
--s
--I
--v 2
--l PSK-AES128-CBC-SHA
-
-# No Hint client TLSv1.1 PSK-AES128
--s
--v 2
--l PSK-AES128-CBC-SHA
-
-# No Hint server TLSv1.1 PSK-AES256
--s
--I
--v 2
--l PSK-AES256-CBC-SHA
-
-# No Hint client TLSv1.1 PSK-AES256
--s
--v 2
--l PSK-AES256-CBC-SHA
-
-# No Hint server TLSv1.2 PSK-AES128
--s
--I
--v 3
--l PSK-AES128-CBC-SHA
-
-# No Hint client TLSv1.2 PSK-AES128
--s
--v 3
--l PSK-AES128-CBC-SHA
-
-# No Hint server TLSv1.2 PSK-AES256
--s
--I
--v 3
--l PSK-AES256-CBC-SHA
-
-# No Hint client TLSv1.2 PSK-AES256
--s
--v 3
--l PSK-AES256-CBC-SHA
-
-# No Hint server TLSv1.2 PSK-AES128-SHA256
--s
--I
--v 3
--l PSK-AES128-CBC-SHA256
-
-# No Hint client TLSv1.2 PSK-AES128-SHA256
--s
--v 3
--l PSK-AES128-CBC-SHA256
-
-# No Hint server TLSv1.2 PSK-AES256-SHA384
--s
--I
--v 3
--l PSK-AES256-CBC-SHA384
-
-# No Hint client TLSv1.2 PSK-AES256-SHA384
--s
--v 3
--l PSK-AES256-CBC-SHA384
-
-# server TLSv1.2 PSK-AES128-GCM-SHA256
--s
--I
--v 3
--l PSK-AES128-GCM-SHA256
-
-# client TLSv1.2 PSK-AES128-GCM-SHA256
--s
--v 3
--l PSK-AES128-GCM-SHA256
-
-# server TLSv1.2 PSK-AES256-GCM-SHA384
--s
--I
--v 3
--l PSK-AES256-GCM-SHA384
-
-# client TLSv1.2 PSK-AES256-GCM-SHA384
--s
--v 3
--l PSK-AES256-GCM-SHA384
-
-# server TLSv1.3 AES128-GCM-SHA256
--s
--v 4
--l TLS13-AES128-GCM-SHA256
-
-# client TLSv1.3 AES128-GCM-SHA256
--s
--v 4
--l TLS13-AES128-GCM-SHA256
-
-# server TLSv1.3 accepting EarlyData using PSK
--v 4
--l TLS13-AES128-GCM-SHA256
--r
--s
--0
-
-# client TLSv1.3 sending EarlyData using PSK
--v 4
--l TLS13-AES128-GCM-SHA256
--r
--s
--0
-
-# server TLSv1.3 not accepting EarlyData using PSK
--v 4
--l TLS13-AES128-GCM-SHA256
--r
--s
-
-# client TLSv1.3 sending EarlyData using PSK
--v 4
--l TLS13-AES128-GCM-SHA256
--r
--s
--0
-
-# server TLSv1.3 accepting EarlyData using PSK
--v 4
--l TLS13-AES128-GCM-SHA256
--r
--s
--0
-
-# client TLSv1.3 not sending EarlyData using PSK
--v 4
--l TLS13-AES128-GCM-SHA256
--r
--s
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-psk.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-psk.conf
deleted file mode 100644
index f4f11b298..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-psk.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-# server - PSK plus certificates
--j
--l PSK-CHACHA20-POLY1305
-
-# client- standard PSK
--s
--l PSK-CHACHA20-POLY1305
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-qsh-sha2.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-qsh-sha2.conf
deleted file mode 100644
index 921f098be..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-qsh-sha2.conf
+++ /dev/null
@@ -1,303 +0,0 @@
-# server TLSv1 AES128-SHA256
--v 1
--l QSH:AES128-SHA256
-
-# client TLSv1 AES128-SHA256
--v 1
--l QSH:AES128-SHA256
-
-# server TLSv1 AES256-SHA256
--v 1
--l QSH:AES256-SHA256
-
-# client TLSv1 AES256-SHA256
--v 1
--l QSH:AES256-SHA256
-
-# server TLSv1.1 AES128-SHA256
--v 2
--l QSH:AES128-SHA256
-
-# client TLSv1.1 AES128-SHA256
--v 2
--l QSH:AES128-SHA256
-
-# server TLSv1.1 AES256-SHA256
--v 2
--l QSH:AES256-SHA256
-
-# client TLSv1.1 AES256-SHA256
--v 2
--l QSH:AES256-SHA256
-
-# server TLSv1 DHE AES128-SHA256
--v 1
--l QSH:DHE-RSA-AES128-SHA256
-
-# client TLSv1 DHE AES128-SHA256
--v 1
--l QSH:DHE-RSA-AES128-SHA256
-
-# server TLSv1 DHE AES256-SHA256
--v 1
--l QSH:DHE-RSA-AES256-SHA256
-
-# client TLSv1 DHE AES256-SHA256
--v 1
--l QSH:DHE-RSA-AES256-SHA256
-
-# server TLSv1.1 DHE AES128-SHA256
--v 2
--l QSH:DHE-RSA-AES128-SHA256
-
-# client TLSv1.1 DHE AES128-SHA256
--v 2
--l QSH:DHE-RSA-AES128-SHA256
-
-# server TLSv1.1 DHE AES256-SHA256
--v 2
--l QSH:DHE-RSA-AES256-SHA256
-
-# client TLSv1.1 DHE AES256-SHA256
--v 2
--l QSH:DHE-RSA-AES256-SHA256
-
-# server TLSv1 ECDHE-PSK-AES128-SHA256
--s
--v 1
--l QSH:ECDHE-PSK-AES128-SHA256
-
-# client TLSv1 ECDHE-PSK-AES128-SHA256
--s
--v 1
--l QSH:ECDHE-PSK-AES128-SHA256
-
-# server TLSv1.1 ECDHE-PSK-AES128-SHA256
--s
--v 2
--l QSH:ECDHE-PSK-AES128-SHA256
-
-# client TLSv1.1 ECDHE-PSK-AES128-SHA256
--s
--v 2
--l QSH:ECDHE-PSK-AES128-SHA256
-
-# server TLSv1 ECDHE-PSK-NULL-SHA256
--s
--v 1
--l QSH:ECDHE-PSK-NULL-SHA256
-
-# client TLSv1 ECDHE-PSK-NULL-SHA256
--s
--v 1
--l QSH:ECDHE-PSK-NULL-SHA256
-
-# server TLSv1.1 ECDHE-PSK-NULL-SHA256
--s
--v 2
--l QSH:ECDHE-PSK-NULL-SHA256
-
-# client TLSv1.1 ECDHE-PSK-NULL-SHA256
--s
--v 2
--l QSH:ECDHE-PSK-NULL-SHA256
-
-# server TLSv1.0 PSK-AES128-SHA256
--s
--v 1
--l QSH:PSK-AES128-CBC-SHA256
-
-# client TLSv1.0 PSK-AES128-SHA256
--s
--v 1
--l QSH:PSK-AES128-CBC-SHA256
-
-# server TLSv1.1 PSK-AES128-SHA256
--s
--v 2
--l QSH:PSK-AES128-CBC-SHA256
-
-# client TLSv1.1 PSK-AES128-SHA256
--s
--v 2
--l QSH:PSK-AES128-CBC-SHA256
-
-# server TLSv1.0 PSK-AES256-SHA384
--s
--v 1
--l QSH:PSK-AES256-CBC-SHA384
-
-# client TLSv1.0 PSK-AES256-SHA384
--s
--v 1
--l QSH:PSK-AES256-CBC-SHA384
-
-# server TLSv1.1 PSK-AES256-SHA384
--s
--v 2
--l QSH:PSK-AES256-CBC-SHA384
-
-# client TLSv1.1 PSK-AES256-SHA384
--s
--v 2
--l QSH:PSK-AES256-CBC-SHA384
-
-# server TLSv1.0 RSA-NULL-SHA256
--v 1
--l QSH:NULL-SHA256
-
-# client TLSv1.0 RSA-NULL-SHA256
--v 1
--l QSH:NULL-SHA256
-
-# server TLSv1.1 RSA-NULL-SHA256
--v 2
--l QSH:NULL-SHA256
-
-# client TLSv1.1 RSA-NULL-SHA256
--v 2
--l QSH:NULL-SHA256
-
-# server TLSv1 CAMELLIA128-SHA256
--v 1
--l QSH:CAMELLIA128-SHA256
-
-# client TLSv1 CAMELLIA128-SHA256
--v 1
--l QSH:CAMELLIA128-SHA256
-
-# server TLSv1 CAMELLIA256-SHA256
--v 1
--l QSH:CAMELLIA256-SHA256
-
-# client TLSv1 CAMELLIA256-SHA256
--v 1
--l QSH:CAMELLIA256-SHA256
-
-# server TLSv1.1 CAMELLIA128-SHA256
--v 2
--l QSH:CAMELLIA128-SHA256
-
-# client TLSv1.1 CAMELLIA128-SHA256
--v 2
--l QSH:CAMELLIA128-SHA256
-
-# server TLSv1.1 CAMELLIA256-SHA256
--v 2
--l QSH:CAMELLIA256-SHA256
-
-# client TLSv1.1 CAMELLIA256-SHA256
--v 2
--l QSH:CAMELLIA256-SHA256
-
-# server TLSv1 DHE-RSA-CAMELLIA128-SHA256
--v 1
--l QSH:DHE-RSA-CAMELLIA128-SHA256
-
-# client TLSv1 DHE-RSA-CAMELLIA128-SHA256
--v 1
--l QSH:DHE-RSA-CAMELLIA128-SHA256
-
-# server TLSv1 DHE-RSA-CAMELLIA256-SHA256
--v 1
--l QSH:DHE-RSA-CAMELLIA256-SHA256
-
-# client TLSv1 DHE-RSA-CAMELLIA256-SHA256
--v 1
--l QSH:DHE-RSA-CAMELLIA256-SHA256
-
-# server TLSv1.1 DHE-RSA-CAMELLIA128-SHA256
--v 2
--l QSH:DHE-RSA-CAMELLIA128-SHA256
-
-# client TLSv1.1 DHE-RSA-CAMELLIA128-SHA256
--v 2
--l QSH:DHE-RSA-CAMELLIA128-SHA256
-
-# server TLSv1.1 DHE-RSA-CAMELLIA256-SHA256
--v 2
--l QSH:DHE-RSA-CAMELLIA256-SHA256
-
-# client TLSv1.1 DHE-RSA-CAMELLIA256-SHA256
--v 2
--l QSH:DHE-RSA-CAMELLIA256-SHA256
-
-# server TLSv1.0 DHE-PSK-AES128-CBC-SHA256
--s
--v 1
--l QSH:DHE-PSK-AES128-CBC-SHA256
-
-# client TLSv1.0 DHE-PSK-AES128-CBC-SHA256
--s
--v 1
--l QSH:DHE-PSK-AES128-CBC-SHA256
-
-# server TLSv1.1 DHE-PSK-AES128-CBC-SHA256
--s
--v 2
--l QSH:DHE-PSK-AES128-CBC-SHA256
-
-# client TLSv1.1 DHE-PSK-AES128-CBC-SHA256
--s
--v 2
--l QSH:DHE-PSK-AES128-CBC-SHA256
-
-# server TLSv1.0 DHE-PSK-AES256-CBC-SHA384
--s
--v 1
--l QSH:DHE-PSK-AES256-CBC-SHA384
-
-# client TLSv1.0 DHE-PSK-AES256-CBC-SHA384
--s
--v 1
--l QSH:DHE-PSK-AES256-CBC-SHA384
-
-# server TLSv1.1 DHE-PSK-AES256-CBC-SHA384
--s
--v 2
--l QSH:DHE-PSK-AES256-CBC-SHA384
-
-# client TLSv1.1 DHE-PSK-AES256-CBC-SHA384
--s
--v 2
--l QSH:DHE-PSK-AES256-CBC-SHA384
-
-# server TLSv1.0 DHE-PSK-NULL-SHA256
--s
--v 1
--l QSH:DHE-PSK-NULL-SHA256
-
-# client TLSv1.0 DHE-PSK-NULL-SHA256
--s
--v 1
--l QSH:DHE-PSK-NULL-SHA256
-
-# server TLSv1.1 DHE-PSK-NULL-SHA256
--s
--v 2
--l QSH:DHE-PSK-NULL-SHA256
-
-# client TLSv1.1 DHE-PSK-NULL-SHA256
--s
--v 2
--l QSH:DHE-PSK-NULL-SHA256
-
-# server TLSv1.0 DHE-PSK-NULL-SHA384
--s
--v 1
--l QSH:DHE-PSK-NULL-SHA384
-
-# client TLSv1.0 DHE-PSK-NULL-SHA384
--s
--v 1
--l QSH:DHE-PSK-NULL-SHA384
-
-# server TLSv1.1 DHE-PSK-NULL-SHA384
--s
--v 2
--l QSH:DHE-PSK-NULL-SHA384
-
-# client TLSv1.1 DHE-PSK-NULL-SHA384
--s
--v 2
--l QSH:DHE-PSK-NULL-SHA384
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-qsh.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-qsh.conf
deleted file mode 100644
index 61f8ea031..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-qsh.conf
+++ /dev/null
@@ -1,1778 +0,0 @@
-# server TLSv1.2 DHE-PSK-CHACHA20-POLY1305
--v 3
--s
--l QSH:DHE-PSK-CHACHA20-POLY1305
-
-# client TLSv1.2 DHE-PSK-CHACHA20-POLY1305
--v 3
--s
--l QSH:DHE-PSK-CHACHA20-POLY1305
-
-# server TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305
--v 3
--s
--l QSH:ECDHE-PSK-CHACHA20-POLY1305
-
-# client TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305
--v 3
--s
--l QSH:ECDHE-PSK-CHACHA20-POLY1305
-
-# server TLSv1.2 PSK-CHACHA20-POLY1305
--v 3
--s
--l QSH:PSK-CHACHA20-POLY1305
-
-# client TLSv1.2 PSK-CHACHA20-POLY1305
--v 3
--s
--l QSH:PSK-CHACHA20-POLY1305
-
-# server TLSv1.2 DHE-RSA-CHACHA20-POLY1305-OLD
--v 3
--l QSH:DHE-RSA-CHACHA20-POLY1305-OLD
-
-# client TLSv1.2 DHE-RSA-CHACHA20-POLY1305-OLD
--v 3
--l QSH:DHE-RSA-CHACHA20-POLY1305-OLD
-
-# server TLSv1.2 ECDHE-RSA-CHACHA20-POLY1305-OLD
--v 3
--l QSH:ECDHE-RSA-CHACHA20-POLY1305-OLD
-
-# client TLSv1.2 ECDHE-RSA-CHACHA20-POLY1305-OLD
--v 3
--l QSH:ECDHE-RSA-CHACHA20-POLY1305-OLD
-
-# server TLSv1.2 ECDHE-EDCSA-CHACHA20-POLY1305-OLD
--v 3
--l QSH:ECDHE-ECDSA-CHACHA20-POLY1305-OLD
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-CHACHA20-POLY1305-OLD
--v 3
--l QSH:ECDHE-ECDSA-CHACHA20-POLY1305-OLD
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 DHE-RSA-CHACHA20-POLY1305
--v 3
--l QSH:DHE-RSA-CHACHA20-POLY1305
-
-# client TLSv1.2 DHE-RSA-CHACHA20-POLY1305
--v 3
--l QSH:DHE-RSA-CHACHA20-POLY1305
-
-# server TLSv1.2 ECDHE-RSA-CHACHA20-POLY1305
--v 3
--l QSH:ECDHE-RSA-CHACHA20-POLY1305
-
-# client TLSv1.2 ECDHE-RSA-CHACHA20-POLY1305
--v 3
--l QSH:ECDHE-RSA-CHACHA20-POLY1305
-
-# server TLSv1.2 ECDHE-EDCSA-CHACHA20-POLY1305
--v 3
--l QSH:ECDHE-ECDSA-CHACHA20-POLY1305
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-CHACHA20-POLY1305
--v 3
--l QSH:ECDHE-ECDSA-CHACHA20-POLY1305
--A ./certs/ca-ecc-cert.pem
-
-# server SSLv3 RC4-SHA
--v 0
--l QSH:RC4-SHA
-
-# client SSLv3 RC4-SHA
--v 0
--l QSH:RC4-SHA
-
-# server SSLv3 RC4-MD5
--v 0
--l QSH:RC4-MD5
-
-# client SSLv3 RC4-MD5
--v 0
--l QSH:RC4-MD5
-
-# server SSLv3 DES-CBC3-SHA
--v 0
--l QSH:DES-CBC3-SHA
-
-# client SSLv3 DES-CBC3-SHA
--v 0
--l QSH:DES-CBC3-SHA
-
-# server SSLv3 IDEA-CBC-SHA
--v 0
--l QSH:IDEA-CBC-SHA
-
-# client SSLv3 IDEA-CBC-SHA
--v 0
--l QSH:IDEA-CBC-SHA
-
-# server TLSv1 RC4-SHA
--v 1
--l QSH:RC4-SHA
-
-# client TLSv1 RC4-SHA
--v 1
--l QSH:RC4-SHA
-
-# server TLSv1 RC4-MD5
--v 1
--l QSH:RC4-MD5
-
-# client TLSv1 RC4-MD5
--v 1
--l QSH:RC4-MD5
-
-# server TLSv1 DES-CBC3-SHA
--v 1
--l QSH:DES-CBC3-SHA
-
-# client TLSv1 DES-CBC3-SHA
--v 1
--l QSH:DES-CBC3-SHA
-
-# server TLSv1 IDEA-CBC-SHA
--v 1
--l QSH:IDEA-CBC-SHA
-
-# client TLSv1 IDEA-CBC-SHA
--v 1
--l QSH:IDEA-CBC-SHA
-
-# server TLSv1 AES128-SHA
--v 1
--l QSH:AES128-SHA
-
-# client TLSv1 AES128-SHA
--v 1
--l QSH:AES128-SHA
-
-# server TLSv1 AES256-SHA
--v 1
--l QSH:AES256-SHA
-
-# client TLSv1 AES256-SHA
--v 1
--l QSH:AES256-SHA
-
-# server TLSv1.1 RC4-SHA
--v 2
--l QSH:RC4-SHA
-
-# client TLSv1.1 RC4-SHA
--v 2
--l QSH:RC4-SHA
-
-# server TLSv1.1 RC4-MD5
--v 2
--l QSH:RC4-MD5
-
-# client TLSv1.1 RC4-MD5
--v 2
--l QSH:RC4-MD5
-
-# server TLSv1.1 IDEA-CBC-SHA
--v 2
--l QSH:IDEA-CBC-SHA
-
-# client TLSv1.1 IDEA-CBC-SHA
--v 2
--l QSH:IDEA-CBC-SHA
-
-# server TLSv1.1 DES-CBC3-SHA
--v 2
--l QSH:DES-CBC3-SHA
-
-# client TLSv1.1 DES-CBC3-SHA
--v 2
--l QSH:DES-CBC3-SHA
-
-# server TLSv1.1 AES128-SHA
--v 2
--l QSH:AES128-SHA
-
-# client TLSv1.1 AES128-SHA
--v 2
--l QSH:AES128-SHA
-
-# server TLSv1.1 AES256-SHA
--v 2
--l QSH:AES256-SHA
-
-# client TLSv1.1 AES256-SHA
--v 2
--l QSH:AES256-SHA
-
-# server TLSv1.2 RC4-SHA
--v 3
--l QSH:RC4-SHA
-
-# client TLSv1.2 RC4-SHA
--v 3
--l QSH:RC4-SHA
-
-# server TLSv1.2 RC4-MD5
--v 3
--l QSH:RC4-MD5
-
-# client TLSv1.2 RC4-MD5
--v 3
--l QSH:RC4-MD5
-
-# server TLSv1.2 DES-CBC3-SHA
--v 3
--l QSH:DES-CBC3-SHA
-
-# client TLSv1.2 DES-CBC3-SHA
--v 3
--l QSH:DES-CBC3-SHA
-
-# server TLSv1.2 AES128-SHA
--v 3
--l QSH:AES128-SHA
-
-# client TLSv1.2 AES128-SHA
--v 3
--l QSH:AES128-SHA
-
-# server TLSv1.2 AES256-SHA
--v 3
--l QSH:AES256-SHA
-
-# client TLSv1.2 AES256-SHA
--v 3
--l QSH:AES256-SHA
-
-# server TLSv1.2 AES128-SHA256
--v 3
--l QSH:AES128-SHA256
-
-# client TLSv1.2 AES128-SHA256
--v 3
--l QSH:AES128-SHA256
-
-# server TLSv1.2 AES256-SHA256
--v 3
--l QSH:AES256-SHA256
-
-# client TLSv1.2 AES256-SHA256
--v 3
--l QSH:AES256-SHA256
-
-# server TLSv1 ECDHE-RSA-RC4
--v 1
--l QSH:ECDHE-RSA-RC4-SHA
-
-# client TLSv1 ECDHE-RSA-RC4
--v 1
--l QSH:ECDHE-RSA-RC4-SHA
-
-# server TLSv1 ECDHE-RSA-DES3
--v 1
--l QSH:ECDHE-RSA-DES-CBC3-SHA
-
-# client TLSv1 ECDHE-RSA-DES3
--v 1
--l QSH:ECDHE-RSA-DES-CBC3-SHA
-
-# server TLSv1 ECDHE-RSA-AES128
--v 1
--l QSH:ECDHE-RSA-AES128-SHA
-
-# client TLSv1 ECDHE-RSA-AES128
--v 1
--l QSH:ECDHE-RSA-AES128-SHA
-
-# server TLSv1 ECDHE-RSA-AES256
--v 1
--l QSH:ECDHE-RSA-AES256-SHA
-
-# client TLSv1 ECDHE-RSA-AES256
--v 1
--l QSH:ECDHE-RSA-AES256-SHA
-
-# server TLSv1 ECDHE-ECDSA-NULL-SHA
--v 1
--l QSH:ECDHE-ECDSA-NULL-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-NULL-SHA
--v 1
--l QSH:ECDHE-ECDSA-NULL-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDHE-ECDSA-NULL-SHA
--v 2
--l QSH:ECDHE-ECDSA-NULL-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-NULL-SHA
--v 2
--l QSH:ECDHE-ECDSA-NULL-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-NULL-SHA
--v 3
--l QSH:ECDHE-ECDSA-NULL-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-NULL-SHA
--v 3
--l QSH:ECDHE-ECDSA-NULL-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDHE-RSA-RC4
--v 2
--l QSH:ECDHE-RSA-RC4-SHA
-
-# client TLSv1.1 ECDHE-RSA-RC4
--v 2
--l QSH:ECDHE-RSA-RC4-SHA
-
-# server TLSv1.1 ECDHE-RSA-DES3
--v 2
--l QSH:ECDHE-RSA-DES-CBC3-SHA
-
-# client TLSv1.1 ECDHE-RSA-DES3
--v 2
--l QSH:ECDHE-RSA-DES-CBC3-SHA
-
-# server TLSv1.1 ECDHE-RSA-AES128
--v 2
--l QSH:ECDHE-RSA-AES128-SHA
-
-# client TLSv1.1 ECDHE-RSA-AES128
--v 2
--l QSH:ECDHE-RSA-AES128-SHA
-
-# server TLSv1.1 ECDHE-RSA-AES256
--v 2
--l QSH:ECDHE-RSA-AES256-SHA
-
-# client TLSv1.1 ECDHE-RSA-AES256
--v 2
--l QSH:ECDHE-RSA-AES256-SHA
-
-# server TLSv1.2 ECDHE-RSA-RC4
--v 3
--l QSH:ECDHE-RSA-RC4-SHA
-
-# client TLSv1.2 ECDHE-RSA-RC4
--v 3
--l QSH:ECDHE-RSA-RC4-SHA
-
-# server TLSv1.2 ECDHE-RSA-DES3
--v 3
--l QSH:ECDHE-RSA-DES-CBC3-SHA
-
-# client TLSv1.2 ECDHE-RSA-DES3
--v 3
--l QSH:ECDHE-RSA-DES-CBC3-SHA
-
-# server TLSv1.2 ECDHE-RSA-AES128
--v 3
--l QSH:ECDHE-RSA-AES128-SHA
-
-# client TLSv1.2 ECDHE-RSA-AES128
--v 3
--l QSH:ECDHE-RSA-AES128-SHA
-
-# server TLSv1.2 ECDHE-RSA-AES128-SHA256
--v 3
--l QSH:ECDHE-RSA-AES128-SHA256
-
-# client TLSv1.2 ECDHE-RSA-AES128-SHA256
--v 3
--l QSH:ECDHE-RSA-AES128-SHA256
-
-# server TLSv1.2 ECDHE-RSA-AES256
--v 3
--l QSH:ECDHE-RSA-AES256-SHA
-
-# client TLSv1.2 ECDHE-RSA-AES256
--v 3
--l QSH:ECDHE-RSA-AES256-SHA
-
-# server TLSv1 ECDHE-ECDSA-RC4
--v 1
--l QSH:ECDHE-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-RC4
--v 1
--l QSH:ECDHE-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDHE-ECDSA-DES3
--v 1
--l QSH:ECDHE-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-DES3
--v 1
--l QSH:ECDHE-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDHE-ECDSA-AES128
--v 1
--l QSH:ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-AES128
--v 1
--l QSH:ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDHE-ECDSA-AES256
--v 1
--l QSH:ECDHE-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-AES256
--v 1
--l QSH:ECDHE-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDHE-EDCSA-RC4
--v 2
--l QSH:ECDHE-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDHE-ECDSA-RC4
--v 2
--l QSH:ECDHE-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDHE-ECDSA-DES3
--v 2
--l QSH:ECDHE-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDHE-ECDSA-DES3
--v 2
--l QSH:ECDHE-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDHE-ECDSA-AES128
--v 2
--l QSH:ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDHE-ECDSA-AES128
--v 2
--l QSH:ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDHE-ECDSA-AES256
--v 2
--l QSH:ECDHE-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDHE-ECDSA-AES256
--v 2
--l QSH:ECDHE-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-RC4
--v 3
--l QSH:ECDHE-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-RC4
--v 3
--l QSH:ECDHE-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-DES3
--v 3
--l QSH:ECDHE-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-DES3
--v 3
--l QSH:ECDHE-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES128
--v 3
--l QSH:ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128
--v 3
--l QSH:ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-SHA256
--v 3
--l QSH:ECDHE-ECDSA-AES128-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-SHA256
--v 3
--l QSH:ECDHE-ECDSA-AES128-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES256
--v 3
--l QSH:ECDHE-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256
--v 3
--l QSH:ECDHE-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDH-RSA-RC4
--v 1
--l QSH:ECDH-RSA-RC4-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-RSA-RC4
--v 1
--l QSH:ECDH-RSA-RC4-SHA
-
-# server TLSv1 ECDH-RSA-DES3
--v 1
--l QSH:ECDH-RSA-DES-CBC3-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-RSA-DES3
--v 1
--l QSH:ECDH-RSA-DES-CBC3-SHA
-
-# server TLSv1 ECDH-RSA-AES128
--v 1
--l QSH:ECDH-RSA-AES128-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-RSA-AES128
--v 1
--l QSH:ECDH-RSA-AES128-SHA
-
-# server TLSv1 ECDH-RSA-AES256
--v 1
--l QSH:ECDH-RSA-AES256-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-RSA-AES256
--v 1
--l QSH:ECDH-RSA-AES256-SHA
-
-# server TLSv1.1 ECDH-RSA-RC4
--v 2
--l QSH:ECDH-RSA-RC4-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-RSA-RC4
--v 2
--l QSH:ECDH-RSA-RC4-SHA
-
-# server TLSv1.1 ECDH-RSA-DES3
--v 2
--l QSH:ECDH-RSA-DES-CBC3-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-RSA-DES3
--v 2
--l QSH:ECDH-RSA-DES-CBC3-SHA
-
-# server TLSv1.1 ECDH-RSA-AES128
--v 2
--l QSH:ECDH-RSA-AES128-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-RSA-AES128
--v 2
--l QSH:ECDH-RSA-AES128-SHA
-
-# server TLSv1.1 ECDH-RSA-AES256
--v 2
--l QSH:ECDH-RSA-AES256-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-RSA-AES256
--v 2
--l QSH:ECDH-RSA-AES256-SHA
-
-# server TLSv1.2 ECDH-RSA-RC4
--v 3
--l QSH:ECDH-RSA-RC4-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-RC4
--v 3
--l QSH:ECDH-RSA-RC4-SHA
-
-# server TLSv1.2 ECDH-RSA-DES3
--v 3
--l QSH:ECDH-RSA-DES-CBC3-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-DES3
--v 3
--l QSH:ECDH-RSA-DES-CBC3-SHA
-
-# server TLSv1.2 ECDH-RSA-AES128
--v 3
--l QSH:ECDH-RSA-AES128-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-AES128
--v 3
--l QSH:ECDH-RSA-AES128-SHA
-
-# server TLSv1.2 ECDH-RSA-AES128-SHA256
--v 3
--l QSH:ECDH-RSA-AES128-SHA256
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-AES128-SHA256
--v 3
--l QSH:ECDH-RSA-AES128-SHA256
-
-# server TLSv1.2 ECDH-RSA-AES256
--v 3
--l QSH:ECDH-RSA-AES256-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-AES256
--v 3
--l QSH:ECDH-RSA-AES256-SHA
-
-# server TLSv1 ECDH-ECDSA-RC4
--v 1
--l QSH:ECDH-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-ECDSA-RC4
--v 1
--l QSH:ECDH-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDH-ECDSA-DES3
--v 1
--l QSH:ECDH-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-ECDSA-DES3
--v 1
--l QSH:ECDH-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDH-ECDSA-AES128
--v 1
--l QSH:ECDH-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-ECDSA-AES128
--v 1
--l QSH:ECDH-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDH-ECDSA-AES256
--v 1
--l QSH:ECDH-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-ECDSA-AES256
--v 1
--l QSH:ECDH-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDH-EDCSA-RC4
--v 2
--l QSH:ECDH-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-ECDSA-RC4
--v 2
--l QSH:ECDH-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDH-ECDSA-DES3
--v 2
--l QSH:ECDH-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-ECDSA-DES3
--v 2
--l QSH:ECDH-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDH-ECDSA-AES128
--v 2
--l QSH:ECDH-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-ECDSA-AES128
--v 2
--l QSH:ECDH-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDH-ECDSA-AES256
--v 2
--l QSH:ECDH-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-ECDSA-AES256
--v 2
--l QSH:ECDH-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-RC4
--v 3
--l QSH:ECDH-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-RC4
--v 3
--l QSH:ECDH-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDH-ECDSA-DES3
--v 3
--l QSH:ECDH-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-DES3
--v 3
--l QSH:ECDH-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDH-ECDSA-AES128
--v 3
--l QSH:ECDH-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-AES128
--v 3
--l QSH:ECDH-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDH-ECDSA-AES128-SHA256
--v 3
--l QSH:ECDH-ECDSA-AES128-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-AES128-SHA256
--v 3
--l QSH:ECDH-ECDSA-AES128-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDH-ECDSA-AES256
--v 3
--l QSH:ECDH-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-AES256
--v 3
--l QSH:ECDH-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-RSA-AES256-SHA384
--v 3
--l QSH:ECDHE-RSA-AES256-SHA384
-
-# client TLSv1.2 ECDHE-RSA-AES256-SHA384
--v 3
--l QSH:ECDHE-RSA-AES256-SHA384
-
-# server TLSv1.2 ECDHE-ECDSA-AES256-SHA384
--v 3
--l QSH:ECDHE-ECDSA-AES256-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256-SHA384
--v 3
--l QSH:ECDHE-ECDSA-AES256-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDH-RSA-AES256-SHA384
--v 3
--l QSH:ECDH-RSA-AES256-SHA384
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-AES256-SHA384
--v 3
--l QSH:ECDH-RSA-AES256-SHA384
-
-# server TLSv1.2 ECDH-ECDSA-AES256-SHA384
--v 3
--l QSH:ECDH-ECDSA-AES256-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-AES256-SHA384
--v 3
--l QSH:ECDH-ECDSA-AES256-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 HC128-SHA
--v 1
--l QSH:HC128-SHA
-
-# client TLSv1 HC128-SHA
--v 1
--l QSH:HC128-SHA
-
-# server TLSv1 HC128-MD5
--v 1
--l QSH:HC128-MD5
-
-# client TLSv1 HC128-MD5
--v 1
--l QSH:HC128-MD5
-
-# server TLSv1.1 HC128-SHA
--v 2
--l QSH:HC128-SHA
-
-# client TLSv1.1 HC128-SHA
--v 2
--l QSH:HC128-SHA
-
-# server TLSv1.1 HC128-MD5
--v 2
--l QSH:HC128-MD5
-
-# client TLSv1.1 HC128-MD5
--v 2
--l QSH:HC128-MD5
-
-# server TLSv1.2 HC128-SHA
--v 3
--l QSH:HC128-SHA
-
-# client TLSv1.2 HC128-SHA
--v 3
--l QSH:HC128-SHA
-
-# server TLSv1.2 HC128-MD5
--v 3
--l QSH:HC128-MD5
-
-# client TLSv1.2 HC128-MD5
--v 3
--l QSH:HC128-MD5
-
-# server TLSv1 RABBIT-SHA
--v 1
--l QSH:RABBIT-SHA
-
-# client TLSv1 RABBIT-SHA
--v 1
--l QSH:RABBIT-SHA
-
-# server TLSv1.1 RABBIT-SHA
--v 2
--l QSH:RABBIT-SHA
-
-# client TLSv1.1 RABBIT-SHA
--v 2
--l QSH:RABBIT-SHA
-
-# server TLSv1.2 RABBIT-SHA
--v 3
--l QSH:RABBIT-SHA
-
-# client TLSv1.2 RABBIT-SHA
--v 3
--l QSH:RABBIT-SHA
-
-# server TLSv1 DHE AES128
--v 1
--l QSH:DHE-RSA-AES128-SHA
-
-# client TLSv1 DHE AES128
--v 1
--l QSH:DHE-RSA-AES128-SHA
-
-# server TLSv1 DHE AES256
--v 1
--l QSH:DHE-RSA-AES256-SHA
-
-# client TLSv1 DHE AES256
--v 1
--l QSH:DHE-RSA-AES256-SHA
-
-# server TLSv1.1 DHE AES128
--v 2
--l QSH:DHE-RSA-AES128-SHA
-
-# client TLSv1.1 DHE AES128
--v 2
--l QSH:DHE-RSA-AES128-SHA
-
-# server TLSv1.1 DHE AES256
--v 2
--l QSH:DHE-RSA-AES256-SHA
-
-# client TLSv1.1 DHE AES256
--v 2
--l QSH:DHE-RSA-AES256-SHA
-
-# server TLSv1.2 DHE AES128
--v 3
--l QSH:DHE-RSA-AES128-SHA
-
-# client TLSv1.2 DHE AES128
--v 3
--l QSH:DHE-RSA-AES128-SHA
-
-# server TLSv1.2 DHE AES256
--v 3
--l QSH:DHE-RSA-AES256-SHA
-
-# client TLSv1.2 DHE AES256
--v 3
--l QSH:DHE-RSA-AES256-SHA
-
-# server TLSv1.2 DHE AES128-SHA256
--v 3
--l QSH:DHE-RSA-AES128-SHA256
-
-# client TLSv1.2 DHE AES128-SHA256
--v 3
--l QSH:DHE-RSA-AES128-SHA256
-
-# server TLSv1.2 DHE AES256-SHA256
--v 3
--l QSH:DHE-RSA-AES256-SHA256
-
-# client TLSv1.2 DHE AES256-SHA256
--v 3
--l QSH:DHE-RSA-AES256-SHA256
-
-# server TLSv1.2 ECDHE-PSK-AES128-SHA256
--s
--v 3
--l QSH:ECDHE-PSK-AES128-SHA256
-
-# client TLSv1.2 ECDHE-PSK-AES128-SHA256
--s
--v 3
--l QSH:ECDHE-PSK-AES128-SHA256
-
-# server TLSv1.2 ECDHE-PSK-NULL-SHA256
--s
--v 3
--l QSH:ECDHE-PSK-NULL-SHA256
-
-# client TLSv1.2 ECDHE-PSK-NULL-SHA256
--s
--v 3
--l QSH:ECDHE-PSK-NULL-SHA256
-
-# server TLSv1 PSK-AES128
--s
--v 1
--l QSH:PSK-AES128-CBC-SHA
-
-# client TLSv1 PSK-AES128
--s
--v 1
--l QSH:PSK-AES128-CBC-SHA
-
-# server TLSv1 PSK-AES256
--s
--v 1
--l QSH:PSK-AES256-CBC-SHA
-
-# client TLSv1 PSK-AES256
--s
--v 1
--l QSH:PSK-AES256-CBC-SHA
-
-# server TLSv1.1 PSK-AES128
--s
--v 2
--l QSH:PSK-AES128-CBC-SHA
-
-# client TLSv1.1 PSK-AES128
--s
--v 2
--l QSH:PSK-AES128-CBC-SHA
-
-# server TLSv1.1 PSK-AES256
--s
--v 2
--l QSH:PSK-AES256-CBC-SHA
-
-# client TLSv1.1 PSK-AES256
--s
--v 2
--l QSH:PSK-AES256-CBC-SHA
-
-# server TLSv1.2 PSK-AES128
--s
--v 3
--l QSH:PSK-AES128-CBC-SHA
-
-# client TLSv1.2 PSK-AES128
--s
--v 3
--l QSH:PSK-AES128-CBC-SHA
-
-# server TLSv1.2 PSK-AES256
--s
--v 3
--l QSH:PSK-AES256-CBC-SHA
-
-# client TLSv1.2 PSK-AES256
--s
--v 3
--l QSH:PSK-AES256-CBC-SHA
-
-# server TLSv1.2 PSK-AES128-SHA256
--s
--v 3
--l QSH:PSK-AES128-CBC-SHA256
-
-# client TLSv1.2 PSK-AES128-SHA256
--s
--v 3
--l QSH:PSK-AES128-CBC-SHA256
-
-# server TLSv1.2 PSK-AES256-SHA384
--s
--v 3
--l QSH:PSK-AES256-CBC-SHA384
-
-# client TLSv1.2 PSK-AES256-SHA384
--s
--v 3
--l QSH:PSK-AES256-CBC-SHA384
-
-# server TLSv1.0 PSK-NULL
--s
--v 1
--l QSH:PSK-NULL-SHA
-
-# client TLSv1.0 PSK-NULL
--s
--v 1
--l QSH:PSK-NULL-SHA
-
-# server TLSv1.1 PSK-NULL
--s
--v 2
--l QSH:PSK-NULL-SHA
-
-# client TLSv1.1 PSK-NULL
--s
--v 2
--l QSH:PSK-NULL-SHA
-
-# server TLSv1.2 PSK-NULL
--s
--v 3
--l QSH:PSK-NULL-SHA
-
-# client TLSv1.2 PSK-NULL
--s
--v 3
--l QSH:PSK-NULL-SHA
-
-# server TLSv1.2 PSK-NULL-SHA256
--s
--v 3
--l QSH:PSK-NULL-SHA256
-
-# client TLSv1.2 PSK-NULL-SHA256
--s
--v 3
--l QSH:PSK-NULL-SHA256
-
-# server TLSv1.2 PSK-NULL-SHA384
--s
--v 3
--l QSH:PSK-NULL-SHA384
-
-# client TLSv1.2 PSK-NULL-SHA384
--s
--v 3
--l QSH:PSK-NULL-SHA384
-
-# server TLSv1.2 PSK-NULL
--s
--v 3
--l QSH:PSK-NULL-SHA
-
-# client TLSv1.2 PSK-NULL
--s
--v 3
--l QSH:PSK-NULL-SHA
-
-# server TLSv1.2 PSK-NULL-SHA256
--s
--v 3
--l QSH:PSK-NULL-SHA256
-
-# client TLSv1.2 PSK-NULL-SHA256
--s
--v 3
--l QSH:PSK-NULL-SHA256
-
-# server TLSv1.0 RSA-NULL-SHA
--v 1
--l QSH:NULL-SHA
-
-# client TLSv1.0 RSA-NULL-SHA
--v 1
--l QSH:NULL-SHA
-
-# server TLSv1.1 RSA-NULL-SHA
--v 2
--l QSH:NULL-SHA
-
-# client TLSv1.1 RSA-NULL-SHA
--v 2
--l QSH:NULL-SHA
-
-# server TLSv1.2 RSA-NULL-SHA
--v 3
--l QSH:NULL-SHA
-
-# client TLSv1.2 RSA-NULL-SHA
--v 3
--l QSH:NULL-SHA
-
-# server TLSv1.2 RSA-NULL-SHA256
--v 3
--l QSH:NULL-SHA256
-
-# client TLSv1.2 RSA-NULL-SHA256
--v 3
--l QSH:NULL-SHA256
-
-# server TLSv1 CAMELLIA128-SHA
--v 1
--l QSH:CAMELLIA128-SHA
-
-# client TLSv1 CAMELLIA128-SHA
--v 1
--l QSH:CAMELLIA128-SHA
-
-# server TLSv1 CAMELLIA256-SHA
--v 1
--l QSH:CAMELLIA256-SHA
-
-# client TLSv1 CAMELLIA256-SHA
--v 1
--l QSH:CAMELLIA256-SHA
-
-# server TLSv1.1 CAMELLIA128-SHA
--v 2
--l QSH:CAMELLIA128-SHA
-
-# client TLSv1.1 CAMELLIA128-SHA
--v 2
--l QSH:CAMELLIA128-SHA
-
-# server TLSv1.1 CAMELLIA256-SHA
--v 2
--l QSH:CAMELLIA256-SHA
-
-# client TLSv1.1 CAMELLIA256-SHA
--v 2
--l QSH:CAMELLIA256-SHA
-
-# server TLSv1.2 CAMELLIA128-SHA
--v 3
--l QSH:CAMELLIA128-SHA
-
-# client TLSv1.2 CAMELLIA128-SHA
--v 3
--l QSH:CAMELLIA128-SHA
-
-# server TLSv1.2 CAMELLIA256-SHA
--v 3
--l QSH:CAMELLIA256-SHA
-
-# client TLSv1.2 CAMELLIA256-SHA
--v 3
--l QSH:CAMELLIA256-SHA
-
-# server TLSv1.2 CAMELLIA128-SHA256
--v 3
--l QSH:CAMELLIA128-SHA256
-
-# client TLSv1.2 CAMELLIA128-SHA256
--v 3
--l QSH:CAMELLIA128-SHA256
-
-# server TLSv1.2 CAMELLIA256-SHA256
--v 3
--l QSH:CAMELLIA256-SHA256
-
-# client TLSv1.2 CAMELLIA256-SHA256
--v 3
--l QSH:CAMELLIA256-SHA256
-
-# server TLSv1 DHE-RSA-CAMELLIA128-SHA
--v 1
--l QSH:DHE-RSA-CAMELLIA128-SHA
-
-# client TLSv1 DHE-RSA-CAMELLIA128-SHA
--v 1
--l QSH:DHE-RSA-CAMELLIA128-SHA
-
-# server TLSv1 DHE-RSA-CAMELLIA256-SHA
--v 1
--l QSH:DHE-RSA-CAMELLIA256-SHA
-
-# client TLSv1 DHE-RSA-CAMELLIA256-SHA
--v 1
--l QSH:DHE-RSA-CAMELLIA256-SHA
-
-# server TLSv1.1 DHE-RSA-CAMELLIA128-SHA
--v 2
--l QSH:DHE-RSA-CAMELLIA128-SHA
-
-# client TLSv1.1 DHE-RSA-CAMELLIA128-SHA
--v 2
--l QSH:DHE-RSA-CAMELLIA128-SHA
-
-# server TLSv1.1 DHE-RSA-CAMELLIA256-SHA
--v 2
--l QSH:DHE-RSA-CAMELLIA256-SHA
-
-# client TLSv1.1 DHE-RSA-CAMELLIA256-SHA
--v 2
--l QSH:DHE-RSA-CAMELLIA256-SHA
-
-# server TLSv1.2 DHE-RSA-CAMELLIA128-SHA
--v 3
--l QSH:DHE-RSA-CAMELLIA128-SHA
-
-# client TLSv1.2 DHE-RSA-CAMELLIA128-SHA
--v 3
--l QSH:DHE-RSA-CAMELLIA128-SHA
-
-# server TLSv1.2 DHE-RSA-CAMELLIA256-SHA
--v 3
--l QSH:DHE-RSA-CAMELLIA256-SHA
-
-# client TLSv1.2 DHE-RSA-CAMELLIA256-SHA
--v 3
--l QSH:DHE-RSA-CAMELLIA256-SHA
-
-# server TLSv1.2 DHE-RSA-CAMELLIA128-SHA256
--v 3
--l QSH:DHE-RSA-CAMELLIA128-SHA256
-
-# client TLSv1.2 DHE-RSA-CAMELLIA128-SHA256
--v 3
--l QSH:DHE-RSA-CAMELLIA128-SHA256
-
-# server TLSv1.2 DHE-RSA-CAMELLIA256-SHA256
--v 3
--l QSH:DHE-RSA-CAMELLIA256-SHA256
-
-# client TLSv1.2 DHE-RSA-CAMELLIA256-SHA256
--v 3
--l QSH:DHE-RSA-CAMELLIA256-SHA256
-
-# server TLSv1.2 RSA-AES128-GCM-SHA256
--v 3
--l QSH:AES128-GCM-SHA256
-
-# client TLSv1.2 RSA-AES128-GCM-SHA256
--v 3
--l QSH:AES128-GCM-SHA256
-
-# server TLSv1.2 RSA-AES256-GCM-SHA384
--v 3
--l QSH:AES256-GCM-SHA384
-
-# client TLSv1.2 RSA-AES256-GCM-SHA384
--v 3
--l QSH:AES256-GCM-SHA384
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l QSH:ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l QSH:ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l QSH:ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l QSH:ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDH-ECDSA-AES128-GCM-SHA256
--v 3
--l QSH:ECDH-ECDSA-AES128-GCM-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-AES128-GCM-SHA256
--v 3
--l QSH:ECDH-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDH-ECDSA-AES256-GCM-SHA384
--v 3
--l QSH:ECDH-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-AES256-GCM-SHA384
--v 3
--l QSH:ECDH-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256
--v 3
--l QSH:ECDHE-RSA-AES128-GCM-SHA256
-
-# client TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256
--v 3
--l QSH:ECDHE-RSA-AES128-GCM-SHA256
-
-# server TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l QSH:ECDHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l QSH:ECDHE-RSA-AES256-GCM-SHA384
-
-# server TLSv1.2 ECDH-RSA-AES128-GCM-SHA256
--v 3
--l QSH:ECDH-RSA-AES128-GCM-SHA256
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-AES128-GCM-SHA256
--v 3
--l QSH:ECDH-RSA-AES128-GCM-SHA256
-
-# server TLSv1.2 ECDH-RSA-AES256-GCM-SHA384
--v 3
--l QSH:ECDH-RSA-AES256-GCM-SHA384
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-AES256-GCM-SHA384
--v 3
--l QSH:ECDH-RSA-AES256-GCM-SHA384
-
-# server TLSv1.2 DHE-RSA-AES128-GCM-SHA256
--v 3
--l QSH:DHE-RSA-AES128-GCM-SHA256
-
-# client TLSv1.2 DHE-RSA-AES128-GCM-SHA256
--v 3
--l QSH:DHE-RSA-AES128-GCM-SHA256
-
-# server TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l QSH:DHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l QSH:DHE-RSA-AES256-GCM-SHA384
-
-# server TLSv1.2 PSK-AES128-GCM-SHA256
--s
--v 3
--l QSH:PSK-AES128-GCM-SHA256
-
-# client TLSv1.2 PSK-AES128-GCM-SHA256
--s
--v 3
--l QSH:PSK-AES128-GCM-SHA256
-
-# server TLSv1.2 PSK-AES256-GCM-SHA384
--s
--v 3
--l QSH:PSK-AES256-GCM-SHA384
-
-# client TLSv1.2 PSK-AES256-GCM-SHA384
--s
--v 3
--l QSH:PSK-AES256-GCM-SHA384
-
-# server TLSv1.2 AES128-CCM-8
--v 3
--l QSH:AES128-CCM-8
-
-# client TLSv1.2 AES128-CCM-8
--v 3
--l QSH:AES128-CCM-8
-
-# server TLSv1.2 AES256-CCM-8
--v 3
--l QSH:AES256-CCM-8
-
-# client TLSv1.2 AES256-CCM-8
--v 3
--l QSH:AES256-CCM-8
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-CCM
--v 3
--l QSH:ECDHE-ECDSA-AES128-CCM
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-CCM
--v 3
--l QSH:ECDHE-ECDSA-AES128-CCM
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-CCM-8
--v 3
--l QSH:ECDHE-ECDSA-AES128-CCM-8
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-CCM-8
--v 3
--l QSH:ECDHE-ECDSA-AES128-CCM-8
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES256-CCM-8
--v 3
--l QSH:ECDHE-ECDSA-AES256-CCM-8
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256-CCM-8
--v 3
--l QSH:ECDHE-ECDSA-AES256-CCM-8
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 PSK-AES128-CCM
--s
--v 3
--l QSH:PSK-AES128-CCM
-
-# client TLSv1.2 PSK-AES128-CCM
--s
--v 3
--l QSH:PSK-AES128-CCM
-
-# server TLSv1.2 PSK-AES256-CCM
--s
--v 3
--l QSH:PSK-AES256-CCM
-
-# client TLSv1.2 PSK-AES256-CCM
--s
--v 3
--l QSH:PSK-AES256-CCM
-
-# server TLSv1.2 PSK-AES128-CCM-8
--s
--v 3
--l QSH:PSK-AES128-CCM-8
-
-# client TLSv1.2 PSK-AES128-CCM-8
--s
--v 3
--l QSH:PSK-AES128-CCM-8
-
-# server TLSv1.2 PSK-AES256-CCM-8
--s
--v 3
--l QSH:PSK-AES256-CCM-8
-
-# client TLSv1.2 PSK-AES256-CCM-8
--s
--v 3
--l QSH:PSK-AES256-CCM-8
-
-# server TLSv1.2 DHE-PSK-AES128-CBC-SHA256
--s
--v 3
--l QSH:DHE-PSK-AES128-CBC-SHA256
-
-# client TLSv1.2 DHE-PSK-AES128-CBC-SHA256
--s
--v 3
--l QSH:DHE-PSK-AES128-CBC-SHA256
-
-# server TLSv1.2 DHE-PSK-AES256-CBC-SHA384
--s
--v 3
--l QSH:DHE-PSK-AES256-CBC-SHA384
-
-# client TLSv1.2 DHE-PSK-AES256-CBC-SHA384
--s
--v 3
--l QSH:DHE-PSK-AES256-CBC-SHA384
-
-# server TLSv1.2 DHE-PSK-NULL-SHA256
--s
--v 3
--l QSH:DHE-PSK-NULL-SHA256
-
-# client TLSv1.2 DHE-PSK-NULL-SHA256
--s
--v 3
--l QSH:DHE-PSK-NULL-SHA256
-
-# server TLSv1.2 DHE-PSK-NULL-SHA384
--s
--v 3
--l QSH:DHE-PSK-NULL-SHA384
-
-# client TLSv1.2 DHE-PSK-NULL-SHA384
--s
--v 3
--l QSH:DHE-PSK-NULL-SHA384
-
-# server TLSv1.2 DHE-PSK-AES128-GCM-SHA256
--s
--v 3
--l QSH:DHE-PSK-AES128-GCM-SHA256
-
-# client TLSv1.2 DHE-PSK-AES128-GCM-SHA256
--s
--v 3
--l QSH:DHE-PSK-AES128-GCM-SHA256
-
-# server TLSv1.2 DHE-PSK-AES256-GCM-SHA384
--s
--v 3
--l QSH:DHE-PSK-AES256-GCM-SHA384
-
-# client TLSv1.2 DHE-PSK-AES256-GCM-SHA384
--s
--v 3
--l QSH:DHE-PSK-AES256-GCM-SHA384
-
-# server TLSv1.2 DHE-PSK-AES128-CCM
--s
--v 3
--l QSH:DHE-PSK-AES128-CCM
-
-# client TLSv1.2 DHE-PSK-AES128-CCM
--s
--v 3
--l QSH:DHE-PSK-AES128-CCM
-
-# server TLSv1.2 DHE-PSK-AES256-CCM
--s
--v 3
--l QSH:DHE-PSK-AES256-CCM
-
-# client TLSv1.2 DHE-PSK-AES256-CCM
--s
--v 3
--l QSH:DHE-PSK-AES256-CCM
-
-# server TLSv1.2 ADH-AES128-SHA
--a
--v 3
--l QSH:ADH-AES128-SHA
-
-# client TLSv1.2 ADH-AES128-SHA
--a
--v 3
--l QSH:ADH-AES128-SHA
-
-# server TLSv1.1 ADH-AES128-SHA
--a
--v 2
--l QSH:ADH-AES128-SHA
-
-# client TLSv1.1 ADH-AES128-SHA
--a
--v 2
--l QSH:ADH-AES128-SHA
-
-# server TLSv1.0 ADH-AES128-SHA
--a
--v 1
--l QSH:ADH-AES128-SHA
-
-# client TLSv1.0 ADH-AES128-SHA
--a
--v 1
--l QSH:ADH-AES128-SHA
-
-# server TLSv1 NTRU_RC4
--v 1
--l QSH:NTRU-RC4-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1 NTRU_RC4
--v 1
--l QSH:NTRU-RC4-SHA
-
-# server TLSv1 NTRU_DES3
--v 1
--l QSH:NTRU-DES-CBC3-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1 NTRU_DES3
--v 1
--l QSH:NTRU-DES-CBC3-SHA
-
-# server TLSv1 NTRU_AES128
--v 1
--l QSH:NTRU-AES128-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1 NTRU_AES128
--v 1
--l QSH:NTRU-AES128-SHA
-
-# server TLSv1 NTRU_AES256
--v 1
--l QSH:NTRU-AES256-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1 NTRU_AES256
--v 1
--l QSH:NTRU-AES256-SHA
-
-# server TLSv1.1 NTRU_RC4
--v 2
--l QSH:NTRU-RC4-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1.1 NTRU_RC4
--v 2
--l QSH:NTRU-RC4-SHA
-
-# server TLSv1.1 NTRU_DES3
--v 2
--l QSH:NTRU-DES-CBC3-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1.1 NTRU_DES3
--v 2
--l QSH:NTRU-DES-CBC3-SHA
-
-# server TLSv1.1 NTRU_AES128
--v 2
--l QSH:NTRU-AES128-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1.1 NTRU_AES128
--v 2
--l QSH:NTRU-AES128-SHA
-
-# server TLSv1.1 NTRU_AES256
--v 2
--l QSH:NTRU-AES256-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1.1 NTRU_AES256
--v 2
--l QSH:NTRU-AES256-SHA
-
-# server TLSv1.2 NTRU_RC4
--v 3
--l QSH:NTRU-RC4-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1.2 NTRU_RC4
--v 3
--l QSH:NTRU-RC4-SHA
-
-# server TLSv1.2 NTRU_DES3
--v 3
--l QSH:NTRU-DES-CBC3-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1.2 NTRU_DES3
--v 3
--l QSH:NTRU-DES-CBC3-SHA
-
-# server TLSv1.2 NTRU_AES128
--v 3
--l QSH:NTRU-AES128-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1.2 NTRU_AES128
--v 3
--l QSH:NTRU-AES128-SHA
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-sctp-sha2.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-sctp-sha2.conf
deleted file mode 100644
index 4c72d4b40..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-sctp-sha2.conf
+++ /dev/null
@@ -1,67 +0,0 @@
-# server DTLSv1 AES128-SHA256
--G
--v 2
--l AES128-SHA256
-
-# client DTLSv1 AES128-SHA256
--G
--v 2
--l AES128-SHA256
-
-# server DTLSv1 AES256-SHA256
--G
--v 2
--l AES256-SHA256
-
-# client DTLSv1 AES256-SHA256
--G
--v 2
--l AES256-SHA256
-
-# server TLSv1 ECDHE-PSK-AES128-SHA256
--s
--G
--v 1
--l ECDHE-PSK-AES128-SHA256
-
-# client TLSv1 ECDHE-PSK-AES128-SHA256
--s
--G
--v 1
--l ECDHE-PSK-AES128-SHA256
-
-# server TLSv1.1 ECDHE-PSK-AES128-SHA256
--s
--G
--v 2
--l ECDHE-PSK-AES128-SHA256
-
-# client TLSv1.1 ECDHE-PSK-AES128-SHA256
--s
--G
--v 2
--l ECDHE-PSK-AES128-SHA256
-
-# server TLSv1 ECDHE-PSK-NULL-SHA256
--s
--G
--v 1
--l ECDHE-PSK-NULL-SHA256
-
-# client TLSv1 ECDHE-PSK-NULL-SHA256
--s
--G
--v 1
--l ECDHE-PSK-NULL-SHA256
-
-# server TLSv1.1 ECDHE-PSK-NULL-SHA256
--s
--G
--v 2
--l ECDHE-PSK-NULL-SHA256
-
-# client TLSv1.1 ECDHE-PSK-NULL-SHA256
--s
--G
--v 2
--l ECDHE-PSK-NULL-SHA256
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-sctp.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-sctp.conf
deleted file mode 100644
index a2c2bc052..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-sctp.conf
+++ /dev/null
@@ -1,1042 +0,0 @@
-# server DTLSv1 DHE-RSA-CHACHA20-POLY1305
--G
--v 2
--l DHE-RSA-CHACHA20-POLY1305
-
-# client DTLSv1 DHE-RSA-CHACHA20-POLY1305
--G
--v 2
--l DHE-RSA-CHACHA20-POLY1305
-
-# server DTLSv1 ECDHE-RSA-CHACHA20-POLY1305
--G
--v 2
--l ECDHE-RSA-CHACHA20-POLY1305
-
-# client DTLSv1 ECDHE-RSA-CHACHA20-POLY1305
--G
--v 2
--l ECDHE-RSA-CHACHA20-POLY1305
-
-# server DTLSv1 ECDHE-EDCSA-CHACHA20-POLY1305
--G
--v 2
--l ECDHE-ECDSA-CHACHA20-POLY1305
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1 ECDHE-ECDSA-CHACHA20-POLY1305
--G
--v 2
--l ECDHE-ECDSA-CHACHA20-POLY1305
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 DHE-RSA-CHACHA20-POLY1305
--G
--v 3
--l DHE-RSA-CHACHA20-POLY1305
-
-# client DTLSv1.2 DHE-RSA-CHACHA20-POLY1305
--G
--v 3
--l DHE-RSA-CHACHA20-POLY1305
-
-# server DTLSv1.2 ECDHE-RSA-CHACHA20-POLY1305
--G
--v 3
--l ECDHE-RSA-CHACHA20-POLY1305
-
-# client DTLSv1.2 ECDHE-RSA-CHACHA20-POLY1305
--G
--v 3
--l ECDHE-RSA-CHACHA20-POLY1305
-
-# server DTLSv1.2 ECDHE-EDCSA-CHACHA20-POLY1305
--G
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-CHACHA20-POLY1305
--G
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 DHE-PSK-CHACHA20-POLY1305
--G
--v 3
--s
--l DHE-PSK-CHACHA20-POLY1305
-
-# client TLSv1.2 DHE-PSK-CHACHA20-POLY1305
--G
--v 3
--s
--l DHE-PSK-CHACHA20-POLY1305
-
-# server TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305
--G
--v 3
--s
--l ECDHE-PSK-CHACHA20-POLY1305
-
-# client TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305
--G
--v 3
--s
--l ECDHE-PSK-CHACHA20-POLY1305
-
-# server TLSv1.2 PSK-CHACHA20-POLY1305
--G
--v 3
--s
--l PSK-CHACHA20-POLY1305
-
-# client TLSv1.2 PSK-CHACHA20-POLY1305
--G
--v 3
--s
--l PSK-CHACHA20-POLY1305
-
-# server DTLSv1.2 DHE-RSA-CHACHA20-POLY1305-OLD
--G
--v 3
--l DHE-RSA-CHACHA20-POLY1305-OLD
-
-# client DTLSv1.2 DHE-RSA-CHACHA20-POLY1305-OLD
--G
--v 3
--l DHE-RSA-CHACHA20-POLY1305-OLD
-
-# server DTLSv1.2 ECDHE-RSA-CHACHA20-POLY1305-OLD
--G
--v 3
--l ECDHE-RSA-CHACHA20-POLY1305-OLD
-
-# client DTLSv1.2 ECDHE-RSA-CHACHA20-POLY1305-OLD
--G
--v 3
--l ECDHE-RSA-CHACHA20-POLY1305-OLD
-
-# server DTLSv1.2 ECDHE-EDCSA-CHACHA20-POLY1305-OLD
--G
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305-OLD
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-CHACHA20-POLY1305-OLD
--G
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305-OLD
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1 RC4-SHA
--G
--v 2
--l RC4-SHA
-
-# client DTLSv1 RC4-SHA
--G
--v 2
--l RC4-SHA
-
-# server DTLSv1.2 RC4-SHA
--G
--v 3
--l RC4-SHA
-
-# client DTLSv1.2 RC4-SHA
--G
--v 3
--l RC4-SHA
-
-# server DTLSv1 IDEA-CBC-SHA
--G
--v 2
--l IDEA-CBC-SHA
-
-# client DTLSv1 IDEA-CBC-SHA
--G
--v 2
--l IDEA-CBC-SHA
-
-# server DTLSv1 DES-CBC3-SHA
--G
--v 2
--l DES-CBC3-SHA
-
-# client DTLSv1 DES-CBC3-SHA
--G
--v 2
--l DES-CBC3-SHA
-
-# server DTLSv1.2 DES-CBC3-SHA
--G
--v 3
--l DES-CBC3-SHA
-
-# client DTLSv1.2 DES-CBC3-SHA
--G
--v 3
--l DES-CBC3-SHA
-
-# server DTLSv1 AES128-SHA
--G
--v 2
--l AES128-SHA
-
-# client DTLSv1 AES128-SHA
--G
--v 2
--l AES128-SHA
-
-# server DTLSv1.2 AES128-SHA
--G
--v 3
--l AES128-SHA
-
-# client DTLSv1.2 AES128-SHA
--G
--v 3
--l AES128-SHA
-
-# server DTLSv1 AES256-SHA
--G
--v 2
--l AES256-SHA
-
-# client DTLSv1 AES256-SHA
--G
--v 2
--l AES256-SHA
-
-# server DTLSv1.2 AES256-SHA
--G
--v 3
--l AES256-SHA
-
-# client DTLSv1.2 AES256-SHA
--G
--v 3
--l AES256-SHA
-
-# server DTLSv1.2 AES128-SHA256
--G
--v 3
--l AES128-SHA256
-
-# client DTLSv1.2 AES128-SHA256
--G
--v 3
--l AES128-SHA256
-
-# server DTLSv1.2 AES256-SHA256
--G
--v 3
--l AES256-SHA256
-
-# client DTLSv1.2 AES256-SHA256
--G
--v 3
--l AES256-SHA256
-
-# server DTLSv1 ECDHE-RSA-RC4
--G
--v 2
--l ECDHE-RSA-RC4-SHA
-
-# client DTLSv1 ECDHE-RSA-RC4
--G
--v 2
--l ECDHE-RSA-RC4-SHA
-
-# server DTLSv1.1 ECDHE-RSA-DES3
--G
--v 2
--l ECDHE-RSA-DES-CBC3-SHA
-
-# client DTLSv1.1 ECDHE-RSA-DES3
--G
--v 2
--l ECDHE-RSA-DES-CBC3-SHA
-
-# server DTLSv1.1 ECDHE-RSA-AES128
--G
--v 2
--l ECDHE-RSA-AES128-SHA
-
-# client DTLSv1.1 ECDHE-RSA-AES128
--G
--v 2
--l ECDHE-RSA-AES128-SHA
-
-# server DTLSv1.1 ECDHE-RSA-AES256
--G
--v 2
--l ECDHE-RSA-AES256-SHA
-
-# client DTLSv1.1 ECDHE-RSA-AES256
--G
--v 2
--l ECDHE-RSA-AES256-SHA
-
-# server DTLSv1.2 ECDHE-RSA-RC4
--G
--v 3
--l ECDHE-RSA-RC4-SHA
-
-# client DTLSv1.2 ECDHE-RSA-RC4
--G
--v 3
--l ECDHE-RSA-RC4-SHA
-
-# server DTLSv1.2 ECDHE-RSA-DES3
--G
--v 3
--l ECDHE-RSA-DES-CBC3-SHA
-
-# client DTLSv1.2 ECDHE-RSA-DES3
--G
--v 3
--l ECDHE-RSA-DES-CBC3-SHA
-
-# server DTLSv1.2 ECDHE-RSA-AES128
--G
--v 3
--l ECDHE-RSA-AES128-SHA
-
-# client DTLSv1.2 ECDHE-RSA-AES128
--G
--v 3
--l ECDHE-RSA-AES128-SHA
-
-# server DTLSv1.2 ECDHE-RSA-AES128-SHA256
--G
--v 3
--l ECDHE-RSA-AES128-SHA256
-
-# client DTLSv1.2 ECDHE-RSA-AES128-SHA256
--G
--v 3
--l ECDHE-RSA-AES128-SHA256
-
-# server DTLSv1.2 ECDHE-RSA-AES256
--G
--v 3
--l ECDHE-RSA-AES256-SHA
-
-# client DTLSv1.2 ECDHE-RSA-AES256
--G
--v 3
--l ECDHE-RSA-AES256-SHA
-
-# server TLSv1 ECDHE-ECDSA-NULL-SHA
--G
--v 1
--l ECDHE-ECDSA-NULL-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-NULL-SHA
--G
--v 1
--l ECDHE-ECDSA-NULL-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDHE-ECDSA-NULL-SHA
--G
--v 2
--l ECDHE-ECDSA-NULL-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-NULL-SHA
--G
--v 2
--l ECDHE-ECDSA-NULL-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-NULL-SHA
--G
--v 3
--l ECDHE-ECDSA-NULL-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-NULL-SHA
--G
--v 3
--l ECDHE-ECDSA-NULL-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.1 ECDHE-EDCSA-RC4
--G
--v 2
--l ECDHE-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDHE-ECDSA-RC4
--G
--v 2
--l ECDHE-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.1 ECDHE-ECDSA-DES3
--G
--v 2
--l ECDHE-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDHE-ECDSA-DES3
--G
--v 2
--l ECDHE-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.1 ECDHE-ECDSA-AES128
--G
--v 2
--l ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDHE-ECDSA-AES128
--G
--v 2
--l ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.1 ECDHE-ECDSA-AES256
--G
--v 2
--l ECDHE-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDHE-ECDSA-AES256
--G
--v 2
--l ECDHE-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-RC4
--G
--v 3
--l ECDHE-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-RC4
--G
--v 3
--l ECDHE-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-DES3
--G
--v 3
--l ECDHE-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-DES3
--G
--v 3
--l ECDHE-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-AES128
--G
--v 3
--l ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES128
--G
--v 3
--l ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-AES128-SHA256
--G
--v 3
--l ECDHE-ECDSA-AES128-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES128-SHA256
--G
--v 3
--l ECDHE-ECDSA-AES128-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-AES256
--G
--v 3
--l ECDHE-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES256
--G
--v 3
--l ECDHE-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.1 ECDH-RSA-RC4
--G
--v 2
--l ECDH-RSA-RC4-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDH-RSA-RC4
--G
--v 2
--l ECDH-RSA-RC4-SHA
-
-# server DTLSv1.1 ECDH-RSA-DES3
--G
--v 2
--l ECDH-RSA-DES-CBC3-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDH-RSA-DES3
--G
--v 2
--l ECDH-RSA-DES-CBC3-SHA
-
-# server DTLSv1.1 ECDH-RSA-AES128
--G
--v 2
--l ECDH-RSA-AES128-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDH-RSA-AES128
--G
--v 2
--l ECDH-RSA-AES128-SHA
-
-# server DTLSv1.1 ECDH-RSA-AES256
--G
--v 2
--l ECDH-RSA-AES256-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDH-RSA-AES256
--G
--v 2
--l ECDH-RSA-AES256-SHA
-
-# server DTLSv1.2 ECDH-RSA-RC4
--G
--v 3
--l ECDH-RSA-RC4-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-RC4
--G
--v 3
--l ECDH-RSA-RC4-SHA
-
-# server DTLSv1.2 ECDH-RSA-DES3
--G
--v 3
--l ECDH-RSA-DES-CBC3-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-DES3
--G
--v 3
--l ECDH-RSA-DES-CBC3-SHA
-
-# server DTLSv1.2 ECDH-RSA-AES128
--G
--v 3
--l ECDH-RSA-AES128-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-AES128
--G
--v 3
--l ECDH-RSA-AES128-SHA
-
-# server DTLSv1.2 ECDH-RSA-AES128-SHA256
--G
--v 3
--l ECDH-RSA-AES128-SHA256
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-AES128-SHA256
--G
--v 3
--l ECDH-RSA-AES128-SHA256
-
-# server DTLSv1.2 ECDH-RSA-AES256
--G
--v 3
--l ECDH-RSA-AES256-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-AES256
--G
--v 3
--l ECDH-RSA-AES256-SHA
-
-# server DTLSv1.1 ECDH-EDCSA-RC4
--G
--v 2
--l ECDH-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDH-ECDSA-RC4
--G
--v 2
--l ECDH-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.1 ECDH-ECDSA-DES3
--G
--v 2
--l ECDH-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDH-ECDSA-DES3
--G
--v 2
--l ECDH-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.1 ECDH-ECDSA-AES128
--G
--v 2
--l ECDH-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDH-ECDSA-AES128
--G
--v 2
--l ECDH-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.1 ECDH-ECDSA-AES256
--G
--v 2
--l ECDH-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.1 ECDH-ECDSA-AES256
--G
--v 2
--l ECDH-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-RC4
--G
--v 3
--l ECDH-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-RC4
--G
--v 3
--l ECDH-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDH-ECDSA-DES3
--G
--v 3
--l ECDH-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-DES3
--G
--v 3
--l ECDH-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDH-ECDSA-AES128
--G
--v 3
--l ECDH-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-AES128
--G
--v 3
--l ECDH-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDH-ECDSA-AES128-SHA256
--G
--v 3
--l ECDH-ECDSA-AES128-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-AES128-SHA256
--G
--v 3
--l ECDH-ECDSA-AES128-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDH-ECDSA-AES256
--G
--v 3
--l ECDH-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-AES256
--G
--v 3
--l ECDH-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-RSA-AES256-SHA384
--G
--v 3
--l ECDHE-RSA-AES256-SHA384
-
-# client DTLSv1.2 ECDHE-RSA-AES256-SHA384
--G
--v 3
--l ECDHE-RSA-AES256-SHA384
-
-# server DTLSv1.2 ECDHE-ECDSA-AES256-SHA384
--G
--v 3
--l ECDHE-ECDSA-AES256-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES256-SHA384
--G
--v 3
--l ECDHE-ECDSA-AES256-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDH-RSA-AES256-SHA384
--G
--v 3
--l ECDH-RSA-AES256-SHA384
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-AES256-SHA384
--G
--v 3
--l ECDH-RSA-AES256-SHA384
-
-# server DTLSv1.2 ECDH-ECDSA-AES256-SHA384
--G
--v 3
--l ECDH-ECDSA-AES256-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-AES256-SHA384
--G
--v 3
--l ECDH-ECDSA-AES256-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-PSK-AES128-SHA256
--s
--G
--v 3
--l ECDHE-PSK-AES128-SHA256
-
-# client TLSv1.2 ECDHE-PSK-AES128-SHA256
--s
--G
--v 3
--l ECDHE-PSK-AES128-SHA256
-
-# server TLSv1.2 ECDHE-PSK-NULL-SHA256
--s
--G
--v 3
--l ECDHE-PSK-NULL-SHA256
-
-# client TLSv1.2 ECDHE-PSK-NULL-SHA256
--s
--G
--v 3
--l ECDHE-PSK-NULL-SHA256
-
-# server DTLSv1 PSK-AES128
--s
--G
--v 2
--l PSK-AES128-CBC-SHA
-
-# client DTLSv1 PSK-AES128
--s
--G
--v 2
--l PSK-AES128-CBC-SHA
-
-# server DTLSv1 PSK-AES256
--s
--G
--v 2
--l PSK-AES256-CBC-SHA
-
-# client DTLSv1 PSK-AES256
--s
--G
--v 2
--l PSK-AES256-CBC-SHA
-
-# server DTLSv1.2 PSK-AES128
--s
--G
--v 3
--l PSK-AES128-CBC-SHA
-
-# client DTLSv1.2 PSK-AES128
--s
--G
--v 3
--l PSK-AES128-CBC-SHA
-
-# server DTLSv1.2 PSK-AES256
--s
--G
--v 3
--l PSK-AES256-CBC-SHA
-
-# client DTLSv1.2 PSK-AES256
--s
--G
--v 3
--l PSK-AES256-CBC-SHA
-
-# server DTLSv1.2 PSK-AES128-SHA256
--s
--G
--v 3
--l PSK-AES128-CBC-SHA256
-
-# client DTLSv1.2 PSK-AES128-SHA256
--s
--G
--v 3
--l PSK-AES128-CBC-SHA256
-
-# server DTLSv1.2 PSK-AES256-SHA384
--s
--G
--v 3
--l PSK-AES256-CBC-SHA384
-
-# client DTLSv1.2 PSK-AES256-SHA384
--s
--G
--v 3
--l PSK-AES256-CBC-SHA384
-
-# server DTLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--G
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--G
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--G
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--G
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDH-ECDSA-AES128-GCM-SHA256
--G
--v 3
--l ECDH-ECDSA-AES128-GCM-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-AES128-GCM-SHA256
--G
--v 3
--l ECDH-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDH-ECDSA-AES256-GCM-SHA384
--G
--v 3
--l ECDH-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-ECDSA-AES256-GCM-SHA384
--G
--v 3
--l ECDH-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-RSA-AES128-GCM-SHA256
--G
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
-
-# client DTLSv1.2 ECDHE-RSA-AES128-GCM-SHA256
--G
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
-
-# server DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--G
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client DTLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--G
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# server DTLSv1.2 ECDH-RSA-AES128-GCM-SHA256
--G
--v 3
--l ECDH-RSA-AES128-GCM-SHA256
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-AES128-GCM-SHA256
--G
--v 3
--l ECDH-RSA-AES128-GCM-SHA256
-
-# server DTLSv1.2 ECDH-RSA-AES256-GCM-SHA384
--G
--v 3
--l ECDH-RSA-AES256-GCM-SHA384
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDH-RSA-AES256-GCM-SHA384
--G
--v 3
--l ECDH-RSA-AES256-GCM-SHA384
-
-# server DTLSv1.2 PSK-AES128-GCM-SHA256
--G
--s
--v 3
--l PSK-AES128-GCM-SHA256
-
-# client DTLSv1.2 PSK-AES128-GCM-SHA256
--G
--s
--v 3
--l PSK-AES128-GCM-SHA256
-
-# server DTLSv1.2 PSK-AES256-GCM-SHA384
--G
--s
--v 3
--l PSK-AES256-GCM-SHA384
-
-# client DTLSv1.2 PSK-AES256-GCM-SHA384
--G
--s
--v 3
--l PSK-AES256-GCM-SHA384
-
-# server DTLSv1.2 ECDHE-ECDSA-AES128-CCM
--G
--v 3
--l ECDHE-ECDSA-AES128-CCM
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES128-CCM
--G
--v 3
--l ECDHE-ECDSA-AES128-CCM
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-AES128-CCM-8
--G
--v 3
--l ECDHE-ECDSA-AES128-CCM-8
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES128-CCM-8
--G
--v 3
--l ECDHE-ECDSA-AES128-CCM-8
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ECDHE-ECDSA-AES256-CCM-8
--G
--v 3
--l ECDHE-ECDSA-AES256-CCM-8
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client DTLSv1.2 ECDHE-ECDSA-AES256-CCM-8
--G
--v 3
--l ECDHE-ECDSA-AES256-CCM-8
--A ./certs/ca-ecc-cert.pem
-
-# server DTLSv1.2 ADH-AES128-SHA
--G
--a
--v 3
--l ADH-AES128-SHA
-
-# client DTLSv1.2 ADH-AES128-SHA
--G
--a
--v 3
--l ADH-AES128-SHA
-
-# server DTLSv1.0 ADH-AES128-SHA
--G
--a
--v 2
--l ADH-AES128-SHA
-
-# client DTLSv1.0 ADH-AES128-SHA
--G
--a
--v 2
--l ADH-AES128-SHA
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-sha2.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-sha2.conf
deleted file mode 100644
index f9780eedd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-sha2.conf
+++ /dev/null
@@ -1,403 +0,0 @@
-# server TLSv1 AES128-SHA256
--v 1
--l AES128-SHA256
-
-# client TLSv1 AES128-SHA256
--v 1
--l AES128-SHA256
-
-# server TLSv1 AES256-SHA256
--v 1
--l AES256-SHA256
-
-# client TLSv1 AES256-SHA256
--v 1
--l AES256-SHA256
-
-# server TLSv1.1 AES128-SHA256
--v 2
--l AES128-SHA256
-
-# client TLSv1.1 AES128-SHA256
--v 2
--l AES128-SHA256
-
-# server TLSv1.1 AES256-SHA256
--v 2
--l AES256-SHA256
-
-# client TLSv1.1 AES256-SHA256
--v 2
--l AES256-SHA256
-
-# server TLSv1 DHE AES128-SHA256
--v 1
--l DHE-RSA-AES128-SHA256
-
-# client TLSv1 DHE AES128-SHA256
--v 1
--l DHE-RSA-AES128-SHA256
-
-# server TLSv1 DHE AES256-SHA256
--v 1
--l DHE-RSA-AES256-SHA256
-
-# client TLSv1 DHE AES256-SHA256
--v 1
--l DHE-RSA-AES256-SHA256
-
-# server TLSv1.1 DHE AES128-SHA256
--v 2
--l DHE-RSA-AES128-SHA256
-
-# client TLSv1.1 DHE AES128-SHA256
--v 2
--l DHE-RSA-AES128-SHA256
-
-# server TLSv1.1 DHE AES256-SHA256
--v 2
--l DHE-RSA-AES256-SHA256
-
-# client TLSv1.1 DHE AES256-SHA256
--v 2
--l DHE-RSA-AES256-SHA256
-
-# server TLSv1 ECDHE-PSK-NULL-SHA256
--s
--v 1
--l ECDHE-PSK-NULL-SHA256
-
-# client TLSv1 ECDHE-PSK-NULL-SHA256
--s
--v 1
--l ECDHE-PSK-NULL-SHA256
-
-# server TLSv1.1 ECDHE-PSK-NULL-SHA256
--s
--v 2
--l ECDHE-PSK-NULL-SHA256
-
-# client TLSv1.1 ECDHE-PSK-NULL-SHA256
--s
--v 2
--l ECDHE-PSK-NULL-SHA256
-
-# server TLSv1 ECDHE-PSK-AES128-SHA256
--s
--v 1
--l ECDHE-PSK-AES128-SHA256
-
-# client TLSv1 ECDHE-PSK-AES128-SHA256
--s
--v 1
--l ECDHE-PSK-AES128-SHA256
-
-# server TLSv1.1 ECDHE-PSK-AES128-SHA256
--s
--v 2
--l ECDHE-PSK-AES128-SHA256
-
-# client TLSv1.1 ECDHE-PSK-AES128-SHA256
--s
--v 2
--l ECDHE-PSK-AES128-SHA256
-
-# server TLSv1.0 PSK-AES128-SHA256
--s
--v 1
--l PSK-AES128-CBC-SHA256
-
-# client TLSv1.0 PSK-AES128-SHA256
--s
--v 1
--l PSK-AES128-CBC-SHA256
-
-# server TLSv1.1 PSK-AES128-SHA256
--s
--v 2
--l PSK-AES128-CBC-SHA256
-
-# client TLSv1.1 PSK-AES128-SHA256
--s
--v 2
--l PSK-AES128-CBC-SHA256
-
-# server TLSv1.0 PSK-AES256-SHA384
--s
--v 1
--l PSK-AES256-CBC-SHA384
-
-# client TLSv1.0 PSK-AES256-SHA384
--s
--v 1
--l PSK-AES256-CBC-SHA384
-
-# server TLSv1.1 PSK-AES256-SHA384
--s
--v 2
--l PSK-AES256-CBC-SHA384
-
-# client TLSv1.1 PSK-AES256-SHA384
--s
--v 2
--l PSK-AES256-CBC-SHA384
-
-# server TLSv1.0 RSA-NULL-SHA256
--v 1
--l NULL-SHA256
-
-# client TLSv1.0 RSA-NULL-SHA256
--v 1
--l NULL-SHA256
-
-# server TLSv1.1 RSA-NULL-SHA256
--v 2
--l NULL-SHA256
-
-# client TLSv1.1 RSA-NULL-SHA256
--v 2
--l NULL-SHA256
-
-# server TLSv1 CAMELLIA128-SHA256
--v 1
--l CAMELLIA128-SHA256
-
-# client TLSv1 CAMELLIA128-SHA256
--v 1
--l CAMELLIA128-SHA256
-
-# server TLSv1 CAMELLIA256-SHA256
--v 1
--l CAMELLIA256-SHA256
-
-# client TLSv1 CAMELLIA256-SHA256
--v 1
--l CAMELLIA256-SHA256
-
-# server TLSv1.1 CAMELLIA128-SHA256
--v 2
--l CAMELLIA128-SHA256
-
-# client TLSv1.1 CAMELLIA128-SHA256
--v 2
--l CAMELLIA128-SHA256
-
-# server TLSv1.1 CAMELLIA256-SHA256
--v 2
--l CAMELLIA256-SHA256
-
-# client TLSv1.1 CAMELLIA256-SHA256
--v 2
--l CAMELLIA256-SHA256
-
-# server TLSv1 DHE-RSA-CAMELLIA128-SHA256
--v 1
--l DHE-RSA-CAMELLIA128-SHA256
-
-# client TLSv1 DHE-RSA-CAMELLIA128-SHA256
--v 1
--l DHE-RSA-CAMELLIA128-SHA256
-
-# server TLSv1 DHE-RSA-CAMELLIA256-SHA256
--v 1
--l DHE-RSA-CAMELLIA256-SHA256
-
-# client TLSv1 DHE-RSA-CAMELLIA256-SHA256
--v 1
--l DHE-RSA-CAMELLIA256-SHA256
-
-# server TLSv1.1 DHE-RSA-CAMELLIA128-SHA256
--v 2
--l DHE-RSA-CAMELLIA128-SHA256
-
-# client TLSv1.1 DHE-RSA-CAMELLIA128-SHA256
--v 2
--l DHE-RSA-CAMELLIA128-SHA256
-
-# server TLSv1.1 DHE-RSA-CAMELLIA256-SHA256
--v 2
--l DHE-RSA-CAMELLIA256-SHA256
-
-# client TLSv1.1 DHE-RSA-CAMELLIA256-SHA256
--v 2
--l DHE-RSA-CAMELLIA256-SHA256
-
-# server TLSv1.0 DHE-PSK-AES128-CBC-SHA256
--s
--v 1
--l DHE-PSK-AES128-CBC-SHA256
-
-# client TLSv1.0 DHE-PSK-AES128-CBC-SHA256
--s
--v 1
--l DHE-PSK-AES128-CBC-SHA256
-
-# server TLSv1.1 DHE-PSK-AES128-CBC-SHA256
--s
--v 2
--l DHE-PSK-AES128-CBC-SHA256
-
-# client TLSv1.1 DHE-PSK-AES128-CBC-SHA256
--s
--v 2
--l DHE-PSK-AES128-CBC-SHA256
-
-# server TLSv1.0 DHE-PSK-AES256-CBC-SHA384
--s
--v 1
--l DHE-PSK-AES256-CBC-SHA384
-
-# client TLSv1.0 DHE-PSK-AES256-CBC-SHA384
--s
--v 1
--l DHE-PSK-AES256-CBC-SHA384
-
-# server TLSv1.1 DHE-PSK-AES256-CBC-SHA384
--s
--v 2
--l DHE-PSK-AES256-CBC-SHA384
-
-# client TLSv1.1 DHE-PSK-AES256-CBC-SHA384
--s
--v 2
--l DHE-PSK-AES256-CBC-SHA384
-
-# server TLSv1.0 DHE-PSK-NULL-SHA256
--s
--v 1
--l DHE-PSK-NULL-SHA256
-
-# client TLSv1.0 DHE-PSK-NULL-SHA256
--s
--v 1
--l DHE-PSK-NULL-SHA256
-
-# server TLSv1.1 DHE-PSK-NULL-SHA256
--s
--v 2
--l DHE-PSK-NULL-SHA256
-
-# client TLSv1.1 DHE-PSK-NULL-SHA256
--s
--v 2
--l DHE-PSK-NULL-SHA256
-
-# server TLSv1.0 DHE-PSK-AES256-CBC-SHA384
--s
--v 1
--l DHE-PSK-AES256-CBC-SHA384
-
-# client TLSv1.0 DHE-PSK-AES256-CBC-SHA384
--s
--v 1
--l DHE-PSK-AES256-CBC-SHA384
-
-# server TLSv1.1 DHE-PSK-AES256-CBC-SHA384
--s
--v 2
--l DHE-PSK-AES256-CBC-SHA384
-
-# client TLSv1.1 DHE-PSK-AES256-CBC-SHA384
--s
--v 2
--l DHE-PSK-AES256-CBC-SHA384
-
-# server TLSv1.0 DHE-PSK-NULL-SHA256
--s
--v 1
--l DHE-PSK-NULL-SHA256
-
-# client TLSv1.0 DHE-PSK-NULL-SHA256
--s
--v 1
--l DHE-PSK-NULL-SHA256
-
-# server TLSv1.1 DHE-PSK-NULL-SHA256
--s
--v 2
--l DHE-PSK-NULL-SHA256
-
-# client TLSv1.1 DHE-PSK-NULL-SHA256
--s
--v 2
--l DHE-PSK-NULL-SHA256
-
-# server TLSv1.0 DHE-PSK-NULL-SHA384
--s
--v 1
--l DHE-PSK-NULL-SHA384
-
-# client TLSv1.0 DHE-PSK-NULL-SHA384
--s
--v 1
--l DHE-PSK-NULL-SHA384
-
-# server TLSv1.1 DHE-PSK-NULL-SHA384
--s
--v 2
--l DHE-PSK-NULL-SHA384
-
-# client TLSv1.1 DHE-PSK-NULL-SHA384
--s
--v 2
--l DHE-PSK-NULL-SHA384
-
-# server TLSv1.0 DHE-PSK-AES256-CBC-SHA384
--s
--v 1
--l DHE-PSK-AES256-CBC-SHA384
-
-# client TLSv1.0 DHE-PSK-AES256-CBC-SHA384
--s
--v 1
--l DHE-PSK-AES256-CBC-SHA384
-
-# server TLSv1.1 DHE-PSK-AES256-CBC-SHA384
--s
--v 2
--l DHE-PSK-AES256-CBC-SHA384
-
-# client TLSv1.1 DHE-PSK-AES256-CBC-SHA384
--s
--v 2
--l DHE-PSK-AES256-CBC-SHA384
-
-# server TLSv1.0 DHE-PSK-NULL-SHA256
--s
--v 1
--l DHE-PSK-NULL-SHA256
-
-# client TLSv1.0 DHE-PSK-NULL-SHA256
--s
--v 1
--l DHE-PSK-NULL-SHA256
-
-# server TLSv1.1 DHE-PSK-NULL-SHA256
--s
--v 2
--l DHE-PSK-NULL-SHA256
-
-# client TLSv1.1 DHE-PSK-NULL-SHA256
--s
--v 2
--l DHE-PSK-NULL-SHA256
-
-# server TLSv1.0 DHE-PSK-NULL-SHA384
--s
--v 1
--l DHE-PSK-NULL-SHA384
-
-# client TLSv1.0 DHE-PSK-NULL-SHA384
--s
--v 1
--l DHE-PSK-NULL-SHA384
-
-# server TLSv1.1 DHE-PSK-NULL-SHA384
--s
--v 2
--l DHE-PSK-NULL-SHA384
-
-# client TLSv1.1 DHE-PSK-NULL-SHA384
--s
--v 2
--l DHE-PSK-NULL-SHA384
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-sig.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-sig.conf
deleted file mode 100644
index 680eb3506..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-sig.conf
+++ /dev/null
@@ -1,219 +0,0 @@
-# server TLSv1 ECDHE-ECDSA-DES3
--v 1
--l ECDHE-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-DES3
--v 1
--l ECDHE-ECDSA-DES-CBC3-SHA
--A ./certs/ca-cert.pem
-
-# server TLSv1 ECDHE-ECDSA-AES128
--v 1
--l ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-AES128
--v 1
--l ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDHE-ECDSA-AES128
--v 1
--l ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-AES128
--v 1
--l ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-cert.pem
-
-# server TLSv1 ECDHE-ECDSA-AES256
--v 1
--l ECDHE-ECDSA-AES256-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-AES256
--v 1
--l ECDHE-ECDSA-AES256-SHA
--A ./certs/ca-cert.pem
-
-# server TLSv1.1 ECDHE-ECDSA-DES3
--v 2
--l ECDHE-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDHE-ECDSA-DES3
--v 2
--l ECDHE-ECDSA-DES-CBC3-SHA
--A ./certs/ca-cert.pem
-
-# server TLSv1.1 ECDHE-ECDSA-AES128
--v 2
--l ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDHE-ECDSA-AES128
--v 2
--l ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDHE-ECDSA-AES128
--v 2
--l ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDHE-ECDSA-AES128
--v 2
--l ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-cert.pem
-
-# server TLSv1.1 ECDHE-ECDSA-AES256
--v 2
--l ECDHE-ECDSA-AES256-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDHE-ECDSA-AES256
--v 2
--l ECDHE-ECDSA-AES256-SHA
--A ./certs/ca-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-DES3
--v 3
--l ECDHE-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-DES3
--v 3
--l ECDHE-ECDSA-DES-CBC3-SHA
--A ./certs/ca-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES128
--v 3
--l ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128
--v 3
--l ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-SHA256
--v 3
--l ECDHE-ECDSA-AES128-SHA256
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-SHA256
--v 3
--l ECDHE-ECDSA-AES128-SHA256
--A ./certs/ca-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES256
--v 3
--l ECDHE-ECDSA-AES256-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256
--v 3
--l ECDHE-ECDSA-AES256-SHA
--A ./certs/ca-cert.pem
-
-# server TLSv1.2 ECDHE-EDCSA-CHACHA20-POLY1305
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-CHACHA20-POLY1305
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305
--A ./certs/ca-cert.pem
-
-# server TLSv1.2 ECDH-ECDSA-AES128-SHA256
--v 3
--l ECDH-ECDSA-AES128-SHA256
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-AES128-SHA256
--v 3
--l ECDH-ECDSA-AES128-SHA256
--A ./certs/ca-cert.pem
-
-# server TLSv1.2 ECDH-ECDSA-AES256
--v 3
--l ECDH-ECDSA-AES256-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-AES256
--v 3
--l ECDH-ECDSA-AES256-SHA
--A ./certs/ca-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-privkey.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-CCM
--v 3
--l ECDHE-ECDSA-AES128-CCM
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-CCM
--v 3
--l ECDHE-ECDSA-AES128-CCM
--A ./certs/ca-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-CCM-8
--v 3
--l ECDHE-ECDSA-AES128-CCM-8
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-CCM-8
--v 3
--l ECDHE-ECDSA-AES128-CCM-8
--A ./certs/ca-cert.pem
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13-down.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13-down.conf
deleted file mode 100644
index 181b286eb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13-down.conf
+++ /dev/null
@@ -1,44 +0,0 @@
-# THIS TEST IS BROKEN
-# server TLSv1.3 downgrade
-#-v d
-#-l TLS13-CHACHA20-POLY1305-SHA256
-
-# client TLSv1.2
-#-v 3
-
-# server TLSv1.2
--v 3
-
-# client TLSv1.3 downgrade
--v d
-
-# server TLSv1.3 downgrade
--v d
-
-# client TLSv1.3 downgrade
--v d
-
-# server TLSv1.3 downgrade but don't and resume
--v d
--r
-
-# client TLSv1.3 downgrade but don't and resume
--v d
--r
-
-# server TLSv1.3 downgrade and resume
--v d
--r
-
-# client TLSv1.2 and resume
--v 3
--r
-
-# server TLSv1.2 and resume
--v d
--r
-
-# lcient TLSv1.3 downgrade and resume
--v 3
--r
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13-ecc.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13-ecc.conf
deleted file mode 100644
index ee14f5406..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13-ecc.conf
+++ /dev/null
@@ -1,93 +0,0 @@
-# server TLSv1.3 TLS13-CHACHA20-POLY1305-SHA256
--v 4
--l TLS13-CHACHA20-POLY1305-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.3 TLS13-CHACHA20-POLY1305-SHA256
--v 4
--l TLS13-CHACHA20-POLY1305-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.3 TLS13-AES256-GCM-SHA384
--v 4
--l TLS13-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.3 TLS13-AES256-GCM-SHA384
--v 4
--l TLS13-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.3 TLS13-AES128-CCM-SHA256
--v 4
--l TLS13-AES128-CCM-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.3 TLS13-AES128-CCM-SHA256
--v 4
--l TLS13-AES128-CCM-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.3 TLS13-AES128-CCM-8-SHA256
--v 4
--l TLS13-AES128-CCM-8-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.3 TLS13-AES128-CCM-8-SHA256
--v 4
--l TLS13-AES128-CCM-8-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
--t
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--t
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
--8
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--8
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
--Y
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--y
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13-psk.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13-psk.conf
deleted file mode 100644
index b8b7e2607..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13-psk.conf
+++ /dev/null
@@ -1,31 +0,0 @@
-# server TLSv1.3 PSK
--v 4
--s
--l TLS13-AES128-GCM-SHA256
--d
-
-# client TLSv1.3 PSK
--v 4
--s
--l TLS13-AES128-GCM-SHA256
-
-# server TLSv1.3 PSK
--v 4
--j
--l TLS13-AES128-GCM-SHA256
--d
-
-# client TLSv1.3 PSK
--v 4
--s
--l TLS13-AES128-GCM-SHA256
-
-# server TLSv1.3 PSK
--v 4
--j
--l TLS13-AES128-GCM-SHA256
--d
-
-# client TLSv1.3 not-PSK
--v 4
--l TLS13-AES128-GCM-SHA256
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13.conf
deleted file mode 100644
index c75b27fe1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-tls13.conf
+++ /dev/null
@@ -1,211 +0,0 @@
-# server TLSv1.3 TLS13-CHACHA20-POLY1305-SHA256
--v 4
--l TLS13-CHACHA20-POLY1305-SHA256
-
-# client TLSv1.3 TLS13-CHACHA20-POLY1305-SHA256
--v 4
--l TLS13-CHACHA20-POLY1305-SHA256
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256
--v 4
--l TLS13-AES128-GCM-SHA256
-
-# server TLSv1.3 TLS13-AES256-GCM-SHA384
--v 4
--l TLS13-AES256-GCM-SHA384
-
-# client TLSv1.3 TLS13-AES256-GCM-SHA384
--v 4
--l TLS13-AES256-GCM-SHA384
-
-# server TLSv1.3 TLS13-AES128-CCM-SHA256
--v 4
--l TLS13-AES128-CCM-SHA256
-
-# client TLSv1.3 TLS13-AES128-CCM-SHA256
--v 4
--l TLS13-AES128-CCM-SHA256
-
-# server TLSv1.3 TLS13-AES128-CCM-8-SHA256
--v 4
--l TLS13-AES128-CCM-8-SHA256
-
-# client TLSv1.3 TLS13-AES128-CCM-8-SHA256
--v 4
--l TLS13-AES128-CCM-8-SHA256
-
-# server TLSv1.3 resumption
--v 4
--l TLS13-AES128-GCM-SHA256
--r
-
-# client TLSv1.3 resumption
--v 4
--l TLS13-AES128-GCM-SHA256
--r
-
-# server TLSv1.3 resumption - SHA384
--v 4
--l TLS13-AES256-GCM-SHA384
--r
-
-# client TLSv1.3 resumption - SHA384
--v 4
--l TLS13-AES256-GCM-SHA384
--r
-
-# server TLSv1.3 PSK without (EC)DHE
--v 4
--l TLS13-AES128-GCM-SHA256
--r
-
-# client TLSv1.3 PSK without (EC)DHE
--v 4
--l TLS13-AES128-GCM-SHA256
--r
--K
-
-# server TLSv1.3 accepting EarlyData
--v 4
--l TLS13-AES128-GCM-SHA256
--r
--0
-
-# client TLSv1.3 sending EarlyData
--v 4
--l TLS13-AES128-GCM-SHA256
--r
--0
-
-# server TLSv1.3 not accepting EarlyData
--v 4
--l TLS13-AES128-GCM-SHA256
--r
-
-# client TLSv1.3 sending EarlyData
--v 4
--l TLS13-AES128-GCM-SHA256
--r
--0
-
-# server TLSv1.3 accepting EarlyData
--v 4
--l TLS13-AES128-GCM-SHA256
--r
--0
-
-# client TLSv1.3 not sending EarlyData
--v 4
--l TLS13-AES128-GCM-SHA256
--r
-
-# server TLSv1.3
--v 4
--l TLS13-AES128-GCM-SHA256
-
-# client TLSv1.3 Fragments
--v 4
--l TLS13-AES128-GCM-SHA256
--F 1
-
-# server TLSv1.3
--v 4
--l TLS13-AES128-GCM-SHA256
-
-# client TLSv1.3 HelloRetryRequest to negotiate Key Exchange algorithm
--v 4
--l TLS13-AES128-GCM-SHA256
--J
-
-# server TLSv1.3
--v 4
--l TLS13-AES128-GCM-SHA256
--J
-
-# client TLSv1.3 HelloRetryRequest with cookie
--v 4
--l TLS13-AES128-GCM-SHA256
--J
-
-# server TLSv1.3
--v 4
--l TLS13-AES128-GCM-SHA256
-
-# client TLSv1.3 no client certificate
--v 4
--l TLS13-AES128-GCM-SHA256
--x
-
-# server TLSv1.3
--v 4
--l TLS13-AES128-GCM-SHA256
-
-# client TLSv1.3 DH key exchange
--v 4
--l TLS13-AES128-GCM-SHA256
--y
-
-# server TLSv1.3
--v 4
--l TLS13-AES128-GCM-SHA256
-
-# client TLSv1.3 ECC key exchange
--v 4
--l TLS13-AES128-GCM-SHA256
--Y
-
-# server TLSv1.3
--v 4
--l TLS13-AES128-GCM-SHA256
-
-# client TLSv1.3 ECC key exchange
--v 4
--l TLS13-AES128-GCM-SHA256
--Y
-
-# server TLSv1.3 multiple cipher suites
--v 4
--l TLS13-AES128-GCM-SHA256:TLS13-AES256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES128-CCM-SHA256:TLS13-AES128-CCM-8-SHA256
-
-# client TLSv1.3
--v 4
-
-# server TLSv1.3 KeyUpdate
--v 4
--l TLS13-AES128-GCM-SHA256
--U
-
-# client TLSv1.3 KeyUpdate
--v 4
--l TLS13-AES128-GCM-SHA256
--I
-
-# server TLSv1.3 Post-Handshake Authentication
--v 4
--l TLS13-AES128-GCM-SHA256
--Q
-
-# client TLSv1.3 Post-Handshake Authentication
--v 4
--l TLS13-AES128-GCM-SHA256
--Q
-
-# server TLSv1.3 Integrity-only SHA256
--v 4
--l TLS13-SHA256-SHA256
-
-# client TLSv1.3 Integrity-only SHA256
--v 4
--l TLS13-SHA256-SHA256
-
-# server TLSv1.3 Integrity-only SHA384
--v 4
--l TLS13-SHA384-SHA384
-
-# client TLSv1.3 Integrity-only SHA384
--v 4
--l TLS13-SHA384-SHA384
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test-trustpeer.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test-trustpeer.conf
deleted file mode 100644
index c8df70416..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test-trustpeer.conf
+++ /dev/null
@@ -1,99 +0,0 @@
-# Both client and server use -E [path] for trusted peer
-# server TLSv1.2 DHE-RSA-AES128-GCM-SHA256 RSA Trusted Peer
--v 3
--l DHE-RSA-AES128-GCM-SHA256
--E ./certs/intermediate/client-int-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-int-cert.pem
-
-# client TLSv1.2 DHE-RSA-AES128-GCM-SHA256 RSA Trusted Peer
--v 3
--l DHE-RSA-AES128-GCM-SHA256
--E ./certs/intermediate/server-int-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-int-cert.pem
-
-# server TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 RSA Trusted Peer
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--E ./certs/intermediate/client-int-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-int-cert.pem
-
-# client TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 RSA Trusted Peer
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--E ./certs/intermediate/server-int-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-int-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Trusted Peer
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--E ./certs/intermediate/client-int-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/intermediate/server-int-ecc-cert.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Trusted Peer
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--E ./certs/intermediate/server-int-ecc-cert.pem
--k ./certs/ecc-client-key.pem
--c ./certs/intermediate/client-int-ecc-cert.pem
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 RSA Trusted Peer
--v 4
--l TLS13-AES128-GCM-SHA256
--E ./certs/intermediate/client-int-cert.pem
--k ./certs/server-key.pem
--c ./certs/intermediate/server-int-cert.pem
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 RSA Trusted Peer
--v 4
--l TLS13-AES128-GCM-SHA256
--E ./certs/intermediate/server-int-cert.pem
--k ./certs/client-key.pem
--c ./certs/intermediate/client-int-cert.pem
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Trusted Peer
--v 4
--l TLS13-AES128-GCM-SHA256
--E ./certs/intermediate/client-int-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/intermediate/server-int-ecc-cert.pem
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Trusted Peer
--v 4
--l TLS13-AES128-GCM-SHA256
--E ./certs/intermediate/server-int-ecc-cert.pem
--k ./certs/ecc-client-key.pem
--c ./certs/intermediate/client-int-ecc-cert.pem
-
-# Test for ECC self signed certificate as trusted peer
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Trusted Peer (self signed)
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--E ./certs/client-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/server-ecc-self.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 ECC Trusted Peer (self signed)
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--E ./certs/server-ecc-self.pem
--k ./certs/ecc-client-key.pem
--c ./certs/client-ecc-cert.pem
-
-# server TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Trusted Peer (self signed)
--v 4
--l TLS13-AES128-GCM-SHA256
--E ./certs/client-ecc-cert.pem
--k ./certs/ecc-key.pem
--c ./certs/server-ecc-self.pem
-
-# client TLSv1.3 TLS13-AES128-GCM-SHA256 ECC Trusted Peer (self signed)
--v 4
--l TLS13-AES128-GCM-SHA256
--E ./certs/server-ecc-self.pem
--k ./certs/ecc-client-key.pem
--c ./certs/client-ecc-cert.pem
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/test.conf b/FreeRTOS-Plus/Source/WolfSSL/tests/test.conf
deleted file mode 100644
index 83c228bc3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/test.conf
+++ /dev/null
@@ -1,2208 +0,0 @@
-# server TLSv1.2 DHE-RSA-CHACHA20-POLY1305
--v 3
--l DHE-RSA-CHACHA20-POLY1305
-
-# client TLSv1.2 DHE-RSA-CHACHA20-POLY1305
--v 3
--l DHE-RSA-CHACHA20-POLY1305
-
-# server TLSv1.2 ECDHE-RSA-CHACHA20-POLY1305
--v 3
--l ECDHE-RSA-CHACHA20-POLY1305
-
-# client TLSv1.2 ECDHE-RSA-CHACHA20-POLY1305
--v 3
--l ECDHE-RSA-CHACHA20-POLY1305
-
-# server TLSv1.2 ECDHE-EDCSA-CHACHA20-POLY1305
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-CHACHA20-POLY1305
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 DHE-PSK-CHACHA20-POLY1305
--v 3
--s
--l DHE-PSK-CHACHA20-POLY1305
-
-# client TLSv1.2 DHE-PSK-CHACHA20-POLY1305
--v 3
--s
--l DHE-PSK-CHACHA20-POLY1305
-
-# server TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305
--v 3
--s
--l ECDHE-PSK-CHACHA20-POLY1305
-
-# client TLSv1.2 ECDHE-PSK-CHACHA20-POLY1305
--v 3
--s
--l ECDHE-PSK-CHACHA20-POLY1305
-
-# server TLSv1.2 PSK-CHACHA20-POLY1305
--v 3
--s
--l PSK-CHACHA20-POLY1305
-
-# client TLSv1.2 PSK-CHACHA20-POLY1305
--v 3
--s
--l PSK-CHACHA20-POLY1305
-
-# server TLSv1.2 DHE-RSA-CHACHA20-POLY1305-OLD
--v 3
--l DHE-RSA-CHACHA20-POLY1305-OLD
-
-# client TLSv1.2 DHE-RSA-CHACHA20-POLY1305-OLD
--v 3
--l DHE-RSA-CHACHA20-POLY1305-OLD
-
-# server TLSv1.2 ECDHE-RSA-CHACHA20-POLY1305-OLD
--v 3
--l ECDHE-RSA-CHACHA20-POLY1305-OLD
-
-# client TLSv1.2 ECDHE-RSA-CHACHA20-POLY1305-OLD
--v 3
--l ECDHE-RSA-CHACHA20-POLY1305-OLD
-
-# server TLSv1.2 ECDHE-EDCSA-CHACHA20-POLY1305-OLD
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305-OLD
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-CHACHA20-POLY1305-OLD
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305-OLD
--A ./certs/ca-ecc-cert.pem
-
-# server SSLv3 RC4-SHA
--v 0
--l RC4-SHA
-
-# client SSLv3 RC4-SHA
--v 0
--l RC4-SHA
-
-# server SSLv3 RC4-MD5
--v 0
--l RC4-MD5
-
-# client SSLv3 RC4-MD5
--v 0
--l RC4-MD5
-
-# server SSLv3 DES-CBC3-SHA
--v 0
--l DES-CBC3-SHA
-
-# client SSLv3 DES-CBC3-SHA
--v 0
--l DES-CBC3-SHA
-
-# server SSLv3 IDEA-CBC-SHA
--v 0
--l IDEA-CBC-SHA
-
-# client SSLv3 IDEA-CBC-SHA
--v 0
--l IDEA-CBC-SHA
-
-# server TLSv1 RC4-SHA
--v 1
--l RC4-SHA
-
-# client TLSv1 RC4-SHA
--v 1
--l RC4-SHA
-
-# server TLSv1 RC4-MD5
--v 1
--l RC4-MD5
-
-# client TLSv1 RC4-MD5
--v 1
--l RC4-MD5
-
-# server TLSv1 DES-CBC3-SHA
--v 1
--l DES-CBC3-SHA
-
-# client TLSv1 DES-CBC3-SHA
--v 1
--l DES-CBC3-SHA
-
-# server TLSv1 IDEA-CBC-SHA
--v 1
--l IDEA-CBC-SHA
-
-# client TLSv1 IDEA-CBC-SHA
--v 1
--l IDEA-CBC-SHA
-
-# server TLSv1 AES128-SHA
--v 1
--l AES128-SHA
-
-# client TLSv1 AES128-SHA
--v 1
--l AES128-SHA
-
-# server TLSv1 AES256-SHA
--v 1
--l AES256-SHA
-
-# client TLSv1 AES256-SHA
--v 1
--l AES256-SHA
-
-# server TLSv1.1 RC4-SHA
--v 2
--l RC4-SHA
-
-# client TLSv1.1 RC4-SHA
--v 2
--l RC4-SHA
-
-# server TLSv1.1 RC4-MD5
--v 2
--l RC4-MD5
-
-# client TLSv1.1 RC4-MD5
--v 2
--l RC4-MD5
-
-# server TLSv1.1 IDEA-CBC-SHA
--v 2
--l IDEA-CBC-SHA
-
-# client TLSv1.1 IDEA-CBC-SHA
--v 2
--l IDEA-CBC-SHA
-
-# server TLSv1.1 DES-CBC3-SHA
--v 2
--l DES-CBC3-SHA
-
-# client TLSv1.1 DES-CBC3-SHA
--v 2
--l DES-CBC3-SHA
-
-# server TLSv1.1 AES128-SHA
--v 2
--l AES128-SHA
-
-# client TLSv1.1 AES128-SHA
--v 2
--l AES128-SHA
-
-# server TLSv1.1 AES256-SHA
--v 2
--l AES256-SHA
-
-# client TLSv1.1 AES256-SHA
--v 2
--l AES256-SHA
-
-# server TLSv1.2 RC4-SHA
--v 3
--l RC4-SHA
-
-# client TLSv1.2 RC4-SHA
--v 3
--l RC4-SHA
-
-# server TLSv1.2 RC4-MD5
--v 3
--l RC4-MD5
-
-# client TLSv1.2 RC4-MD5
--v 3
--l RC4-MD5
-
-# server TLSv1.2 DES-CBC3-SHA
--v 3
--l DES-CBC3-SHA
-
-# client TLSv1.2 DES-CBC3-SHA
--v 3
--l DES-CBC3-SHA
-
-# server TLSv1.2 AES128-SHA
--v 3
--l AES128-SHA
-
-# client TLSv1.2 AES128-SHA
--v 3
--l AES128-SHA
-
-# server TLSv1.2 AES256-SHA
--v 3
--l AES256-SHA
-
-# client TLSv1.2 AES256-SHA
--v 3
--l AES256-SHA
-
-# server TLSv1.2 AES128-SHA256
--v 3
--l AES128-SHA256
-
-# client TLSv1.2 AES128-SHA256
--v 3
--l AES128-SHA256
-
-# server TLSv1.2 AES256-SHA256
--v 3
--l AES256-SHA256
-
-# client TLSv1.2 AES256-SHA256
--v 3
--l AES256-SHA256
-
-# server TLSv1 ECDHE-RSA-RC4
--v 1
--l ECDHE-RSA-RC4-SHA
-
-# client TLSv1 ECDHE-RSA-RC4
--v 1
--l ECDHE-RSA-RC4-SHA
-
-# server TLSv1 ECDHE-RSA-DES3
--v 1
--l ECDHE-RSA-DES-CBC3-SHA
-
-# client TLSv1 ECDHE-RSA-DES3
--v 1
--l ECDHE-RSA-DES-CBC3-SHA
-
-# server TLSv1 ECDHE-RSA-AES128
--v 1
--l ECDHE-RSA-AES128-SHA
-
-# client TLSv1 ECDHE-RSA-AES128
--v 1
--l ECDHE-RSA-AES128-SHA
-
-# server TLSv1 ECDHE-RSA-AES256
--v 1
--l ECDHE-RSA-AES256-SHA
-
-# client TLSv1 ECDHE-RSA-AES256
--v 1
--l ECDHE-RSA-AES256-SHA
-
-# server TLSv1.1 ECDHE-RSA-RC4
--v 2
--l ECDHE-RSA-RC4-SHA
-
-# client TLSv1.1 ECDHE-RSA-RC4
--v 2
--l ECDHE-RSA-RC4-SHA
-
-# server TLSv1.1 ECDHE-RSA-DES3
--v 2
--l ECDHE-RSA-DES-CBC3-SHA
-
-# client TLSv1.1 ECDHE-RSA-DES3
--v 2
--l ECDHE-RSA-DES-CBC3-SHA
-
-# server TLSv1.1 ECDHE-RSA-AES128
--v 2
--l ECDHE-RSA-AES128-SHA
-
-# client TLSv1.1 ECDHE-RSA-AES128
--v 2
--l ECDHE-RSA-AES128-SHA
-
-# server TLSv1.1 ECDHE-RSA-AES256
--v 2
--l ECDHE-RSA-AES256-SHA
-
-# client TLSv1.1 ECDHE-RSA-AES256
--v 2
--l ECDHE-RSA-AES256-SHA
-
-# server TLSv1.2 ECDHE-RSA-RC4
--v 3
--l ECDHE-RSA-RC4-SHA
-
-# client TLSv1.2 ECDHE-RSA-RC4
--v 3
--l ECDHE-RSA-RC4-SHA
-
-# server TLSv1.2 ECDHE-RSA-DES3
--v 3
--l ECDHE-RSA-DES-CBC3-SHA
-
-# client TLSv1.2 ECDHE-RSA-DES3
--v 3
--l ECDHE-RSA-DES-CBC3-SHA
-
-# server TLSv1.2 ECDHE-RSA-AES128
--v 3
--l ECDHE-RSA-AES128-SHA
-
-# client TLSv1.2 ECDHE-RSA-AES128
--v 3
--l ECDHE-RSA-AES128-SHA
-
-# server TLSv1.2 ECDHE-RSA-AES128-SHA256
--v 3
--l ECDHE-RSA-AES128-SHA256
-
-# client TLSv1.2 ECDHE-RSA-AES128-SHA256
--v 3
--l ECDHE-RSA-AES128-SHA256
-
-# server TLSv1.2 ECDHE-RSA-AES256
--v 3
--l ECDHE-RSA-AES256-SHA
-
-# client TLSv1.2 ECDHE-RSA-AES256
--v 3
--l ECDHE-RSA-AES256-SHA
-
-# server TLSv1 ECDHE-ECDSA-NULL-SHA
--v 1
--l ECDHE-ECDSA-NULL-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-NULL-SHA
--v 1
--l ECDHE-ECDSA-NULL-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDHE-ECDSA-NULL-SHA
--v 2
--l ECDHE-ECDSA-NULL-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-NULL-SHA
--v 2
--l ECDHE-ECDSA-NULL-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-NULL-SHA
--v 3
--l ECDHE-ECDSA-NULL-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-NULL-SHA
--v 3
--l ECDHE-ECDSA-NULL-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDHE-ECDSA-RC4
--v 1
--l ECDHE-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-RC4
--v 1
--l ECDHE-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDHE-ECDSA-DES3
--v 1
--l ECDHE-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-DES3
--v 1
--l ECDHE-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDHE-ECDSA-AES128
--v 1
--l ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-AES128
--v 1
--l ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDHE-ECDSA-AES256
--v 1
--l ECDHE-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDHE-ECDSA-AES256
--v 1
--l ECDHE-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDHE-EDCSA-RC4
--v 2
--l ECDHE-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDHE-ECDSA-RC4
--v 2
--l ECDHE-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDHE-ECDSA-DES3
--v 2
--l ECDHE-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDHE-ECDSA-DES3
--v 2
--l ECDHE-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDHE-ECDSA-AES128
--v 2
--l ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDHE-ECDSA-AES128
--v 2
--l ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDHE-ECDSA-AES256
--v 2
--l ECDHE-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDHE-ECDSA-AES256
--v 2
--l ECDHE-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-RC4
--v 3
--l ECDHE-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-RC4
--v 3
--l ECDHE-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-DES3
--v 3
--l ECDHE-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-DES3
--v 3
--l ECDHE-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES128
--v 3
--l ECDHE-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128
--v 3
--l ECDHE-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-SHA256
--v 3
--l ECDHE-ECDSA-AES128-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-SHA256
--v 3
--l ECDHE-ECDSA-AES128-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES256
--v 3
--l ECDHE-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256
--v 3
--l ECDHE-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDH-RSA-RC4
--v 1
--l ECDH-RSA-RC4-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-RSA-RC4
--v 1
--l ECDH-RSA-RC4-SHA
-
-# server TLSv1 ECDH-RSA-DES3
--v 1
--l ECDH-RSA-DES-CBC3-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-RSA-DES3
--v 1
--l ECDH-RSA-DES-CBC3-SHA
-
-# server TLSv1 ECDH-RSA-AES128
--v 1
--l ECDH-RSA-AES128-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-RSA-AES128
--v 1
--l ECDH-RSA-AES128-SHA
-
-# server TLSv1 ECDH-RSA-AES256
--v 1
--l ECDH-RSA-AES256-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-RSA-AES256
--v 1
--l ECDH-RSA-AES256-SHA
-
-# server TLSv1.1 ECDH-RSA-RC4
--v 2
--l ECDH-RSA-RC4-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-RSA-RC4
--v 2
--l ECDH-RSA-RC4-SHA
-
-# server TLSv1.1 ECDH-RSA-DES3
--v 2
--l ECDH-RSA-DES-CBC3-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-RSA-DES3
--v 2
--l ECDH-RSA-DES-CBC3-SHA
-
-# server TLSv1.1 ECDH-RSA-AES128
--v 2
--l ECDH-RSA-AES128-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-RSA-AES128
--v 2
--l ECDH-RSA-AES128-SHA
-
-# server TLSv1.1 ECDH-RSA-AES256
--v 2
--l ECDH-RSA-AES256-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-RSA-AES256
--v 2
--l ECDH-RSA-AES256-SHA
-
-# server TLSv1.2 ECDH-RSA-RC4
--v 3
--l ECDH-RSA-RC4-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-RC4
--v 3
--l ECDH-RSA-RC4-SHA
-
-# server TLSv1.2 ECDH-RSA-DES3
--v 3
--l ECDH-RSA-DES-CBC3-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-DES3
--v 3
--l ECDH-RSA-DES-CBC3-SHA
-
-# server TLSv1.2 ECDH-RSA-AES128
--v 3
--l ECDH-RSA-AES128-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-AES128
--v 3
--l ECDH-RSA-AES128-SHA
-
-# server TLSv1.2 ECDH-RSA-AES128-SHA256
--v 3
--l ECDH-RSA-AES128-SHA256
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-AES128-SHA256
--v 3
--l ECDH-RSA-AES128-SHA256
-
-# server TLSv1.2 ECDH-RSA-AES256
--v 3
--l ECDH-RSA-AES256-SHA
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-AES256
--v 3
--l ECDH-RSA-AES256-SHA
-
-# server TLSv1 ECDH-ECDSA-RC4
--v 1
--l ECDH-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-ECDSA-RC4
--v 1
--l ECDH-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDH-ECDSA-DES3
--v 1
--l ECDH-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-ECDSA-DES3
--v 1
--l ECDH-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDH-ECDSA-AES128
--v 1
--l ECDH-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-ECDSA-AES128
--v 1
--l ECDH-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 ECDH-ECDSA-AES256
--v 1
--l ECDH-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1 ECDH-ECDSA-AES256
--v 1
--l ECDH-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDH-EDCSA-RC4
--v 2
--l ECDH-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-ECDSA-RC4
--v 2
--l ECDH-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDH-ECDSA-DES3
--v 2
--l ECDH-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-ECDSA-DES3
--v 2
--l ECDH-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDH-ECDSA-AES128
--v 2
--l ECDH-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-ECDSA-AES128
--v 2
--l ECDH-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.1 ECDH-ECDSA-AES256
--v 2
--l ECDH-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.1 ECDH-ECDSA-AES256
--v 2
--l ECDH-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-RC4
--v 3
--l ECDH-ECDSA-RC4-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-RC4
--v 3
--l ECDH-ECDSA-RC4-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDH-ECDSA-DES3
--v 3
--l ECDH-ECDSA-DES-CBC3-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-DES3
--v 3
--l ECDH-ECDSA-DES-CBC3-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDH-ECDSA-AES128
--v 3
--l ECDH-ECDSA-AES128-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-AES128
--v 3
--l ECDH-ECDSA-AES128-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDH-ECDSA-AES128-SHA256
--v 3
--l ECDH-ECDSA-AES128-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-AES128-SHA256
--v 3
--l ECDH-ECDSA-AES128-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDH-ECDSA-AES256
--v 3
--l ECDH-ECDSA-AES256-SHA
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-AES256
--v 3
--l ECDH-ECDSA-AES256-SHA
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-RSA-AES256-SHA384
--v 3
--l ECDHE-RSA-AES256-SHA384
-
-# client TLSv1.2 ECDHE-RSA-AES256-SHA384
--v 3
--l ECDHE-RSA-AES256-SHA384
-
-# server TLSv1.2 ECDHE-ECDSA-AES256-SHA384
--v 3
--l ECDHE-ECDSA-AES256-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256-SHA384
--v 3
--l ECDHE-ECDSA-AES256-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDH-RSA-AES256-SHA384
--v 3
--l ECDH-RSA-AES256-SHA384
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-AES256-SHA384
--v 3
--l ECDH-RSA-AES256-SHA384
-
-# server TLSv1.2 ECDH-ECDSA-AES256-SHA384
--v 3
--l ECDH-ECDSA-AES256-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-AES256-SHA384
--v 3
--l ECDH-ECDSA-AES256-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1 HC128-SHA
--v 1
--l HC128-SHA
-
-# client TLSv1 HC128-SHA
--v 1
--l HC128-SHA
-
-# server TLSv1 HC128-MD5
--v 1
--l HC128-MD5
-
-# client TLSv1 HC128-MD5
--v 1
--l HC128-MD5
-
-# server TLSv1.1 HC128-SHA
--v 2
--l HC128-SHA
-
-# client TLSv1.1 HC128-SHA
--v 2
--l HC128-SHA
-
-# server TLSv1.1 HC128-MD5
--v 2
--l HC128-MD5
-
-# client TLSv1.1 HC128-MD5
--v 2
--l HC128-MD5
-
-# server TLSv1.2 HC128-SHA
--v 3
--l HC128-SHA
-
-# client TLSv1.2 HC128-SHA
--v 3
--l HC128-SHA
-
-# server TLSv1.2 HC128-MD5
--v 3
--l HC128-MD5
-
-# client TLSv1.2 HC128-MD5
--v 3
--l HC128-MD5
-
-# server TLSv1 RABBIT-SHA
--v 1
--l RABBIT-SHA
-
-# client TLSv1 RABBIT-SHA
--v 1
--l RABBIT-SHA
-
-# server TLSv1.1 RABBIT-SHA
--v 2
--l RABBIT-SHA
-
-# client TLSv1.1 RABBIT-SHA
--v 2
--l RABBIT-SHA
-
-# server TLSv1.2 RABBIT-SHA
--v 3
--l RABBIT-SHA
-
-# client TLSv1.2 RABBIT-SHA
--v 3
--l RABBIT-SHA
-
-# server TLSv1 DHE AES128
--v 1
--l DHE-RSA-AES128-SHA
-
-# client TLSv1 DHE AES128
--v 1
--l DHE-RSA-AES128-SHA
-
-# server TLSv1 DHE AES256
--v 1
--l DHE-RSA-AES256-SHA
-
-# client TLSv1 DHE AES256
--v 1
--l DHE-RSA-AES256-SHA
-
-# server TLSv1.1 DHE AES128
--v 2
--l DHE-RSA-AES128-SHA
-
-# client TLSv1.1 DHE AES128
--v 2
--l DHE-RSA-AES128-SHA
-
-# server TLSv1.1 DHE AES256
--v 2
--l DHE-RSA-AES256-SHA
-
-# client TLSv1.1 DHE AES256
--v 2
--l DHE-RSA-AES256-SHA
-
-# server TLSv1.1 DHE 3DES
--v 2
--l EDH-RSA-DES-CBC3-SHA
-
-# client TLSv1.1 DHE 3DES
--v 2
--l EDH-RSA-DES-CBC3-SHA
-
-# server TLSv1.2 DHE 3DES
--v 3
--l EDH-RSA-DES-CBC3-SHA
-
-# client TLSv1.2 DHE 3DES
--v 3
--l EDH-RSA-DES-CBC3-SHA
-
-# server TLSv1.2 DHE AES128
--v 3
--l DHE-RSA-AES128-SHA
-
-# client TLSv1.2 DHE AES128
--v 3
--l DHE-RSA-AES128-SHA
-
-# server TLSv1.2 DHE AES256
--v 3
--l DHE-RSA-AES256-SHA
-
-# client TLSv1.2 DHE AES256
--v 3
--l DHE-RSA-AES256-SHA
-
-# server TLSv1.2 DHE AES128-SHA256
--v 3
--l DHE-RSA-AES128-SHA256
-
-# client TLSv1.2 DHE AES128-SHA256
--v 3
--l DHE-RSA-AES128-SHA256
-
-# server TLSv1.2 DHE AES256-SHA256
--v 3
--l DHE-RSA-AES256-SHA256
-
-# client TLSv1.2 DHE AES256-SHA256
--v 3
--l DHE-RSA-AES256-SHA256
-
-# server TLSv1.2 ECDHE-PSK-NULL-SHA256
--s
--v 3
--l ECDHE-PSK-NULL-SHA256
-
-# client TLSv1.2 ECDHE-PSK-NULL-SHA256
--s
--v 3
--l ECDHE-PSK-NULL-SHA256
-
-# server TLSv1.2 ECDHE-PSK-AES128-SHA256
--s
--v 3
--l ECDHE-PSK-AES128-SHA256
-
-# client TLSv1.2 ECDHE-PSK-AES128-SHA256
--s
--v 3
--l ECDHE-PSK-AES128-SHA256
-
-# server TLSv1 PSK-AES128
--s
--v 1
--l PSK-AES128-CBC-SHA
-
-# client TLSv1 PSK-AES128
--s
--v 1
--l PSK-AES128-CBC-SHA
-
-# server TLSv1 PSK-AES256
--s
--v 1
--l PSK-AES256-CBC-SHA
-
-# client TLSv1 PSK-AES256
--s
--v 1
--l PSK-AES256-CBC-SHA
-
-# server TLSv1.1 PSK-AES128
--s
--v 2
--l PSK-AES128-CBC-SHA
-
-# client TLSv1.1 PSK-AES128
--s
--v 2
--l PSK-AES128-CBC-SHA
-
-# server TLSv1.1 PSK-AES256
--s
--v 2
--l PSK-AES256-CBC-SHA
-
-# client TLSv1.1 PSK-AES256
--s
--v 2
--l PSK-AES256-CBC-SHA
-
-# server TLSv1.2 PSK-AES128
--s
--v 3
--l PSK-AES128-CBC-SHA
-
-# client TLSv1.2 PSK-AES128
--s
--v 3
--l PSK-AES128-CBC-SHA
-
-# server TLSv1.2 PSK-AES256
--s
--v 3
--l PSK-AES256-CBC-SHA
-
-# client TLSv1.2 PSK-AES256
--s
--v 3
--l PSK-AES256-CBC-SHA
-
-# server TLSv1.2 PSK-AES128-SHA256
--s
--v 3
--l PSK-AES128-CBC-SHA256
-
-# client TLSv1.2 PSK-AES128-SHA256
--s
--v 3
--l PSK-AES128-CBC-SHA256
-
-# server TLSv1.2 PSK-AES256-SHA384
--s
--v 3
--l PSK-AES256-CBC-SHA384
-
-# client TLSv1.2 PSK-AES256-SHA384
--s
--v 3
--l PSK-AES256-CBC-SHA384
-
-# server TLSv1.0 PSK-NULL
--s
--v 1
--l PSK-NULL-SHA
-
-# client TLSv1.0 PSK-NULL
--s
--v 1
--l PSK-NULL-SHA
-
-# server TLSv1.1 PSK-NULL
--s
--v 2
--l PSK-NULL-SHA
-
-# client TLSv1.1 PSK-NULL
--s
--v 2
--l PSK-NULL-SHA
-
-# server TLSv1.2 PSK-NULL
--s
--v 3
--l PSK-NULL-SHA
-
-# client TLSv1.2 PSK-NULL
--s
--v 3
--l PSK-NULL-SHA
-
-# server TLSv1.2 PSK-NULL-SHA256
--s
--v 3
--l PSK-NULL-SHA256
-
-# client TLSv1.2 PSK-NULL-SHA256
--s
--v 3
--l PSK-NULL-SHA256
-
-# server TLSv1.2 PSK-NULL-SHA384
--s
--v 3
--l PSK-NULL-SHA384
-
-# client TLSv1.2 PSK-NULL-SHA384
--s
--v 3
--l PSK-NULL-SHA384
-
-# server TLSv1.2 PSK-NULL
--s
--v 3
--l PSK-NULL-SHA
-
-# client TLSv1.2 PSK-NULL
--s
--v 3
--l PSK-NULL-SHA
-
-# server TLSv1.2 PSK-NULL-SHA256
--s
--v 3
--l PSK-NULL-SHA256
-
-# client TLSv1.2 PSK-NULL-SHA256
--s
--v 3
--l PSK-NULL-SHA256
-
-# server TLSv1.0 RSA-NULL-MD5
--v 1
--l NULL-MD5
-
-# client TLSv1.0 RSA-NULL-MD5
--v 1
--l NULL-MD5
-
-# server TLSv1.1 RSA-NULL-MD5
--v 2
--l NULL-MD5
-
-# client TLSv1.1 RSA-NULL-MD5
--v 2
--l NULL-MD5
-
-# server TLSv1.2 RSA-NULL-MD5
--v 3
--l NULL-MD5
-
-# client TLSv1.2 RSA-NULL-MD5
--v 3
--l NULL-MD5
-
-# server TLSv1.0 RSA-NULL-SHA
--v 1
--l NULL-SHA
-
-# client TLSv1.0 RSA-NULL-SHA
--v 1
--l NULL-SHA
-
-# server TLSv1.1 RSA-NULL-SHA
--v 2
--l NULL-SHA
-
-# client TLSv1.1 RSA-NULL-SHA
--v 2
--l NULL-SHA
-
-# server TLSv1.2 RSA-NULL-SHA
--v 3
--l NULL-SHA
-
-# client TLSv1.2 RSA-NULL-SHA
--v 3
--l NULL-SHA
-
-# server TLSv1.2 RSA-NULL-SHA256
--v 3
--l NULL-SHA256
-
-# client TLSv1.2 RSA-NULL-SHA256
--v 3
--l NULL-SHA256
-
-# server TLSv1 CAMELLIA128-SHA
--v 1
--l CAMELLIA128-SHA
-
-# client TLSv1 CAMELLIA128-SHA
--v 1
--l CAMELLIA128-SHA
-
-# server TLSv1 CAMELLIA256-SHA
--v 1
--l CAMELLIA256-SHA
-
-# client TLSv1 CAMELLIA256-SHA
--v 1
--l CAMELLIA256-SHA
-
-# server TLSv1.1 CAMELLIA128-SHA
--v 2
--l CAMELLIA128-SHA
-
-# client TLSv1.1 CAMELLIA128-SHA
--v 2
--l CAMELLIA128-SHA
-
-# server TLSv1.1 CAMELLIA256-SHA
--v 2
--l CAMELLIA256-SHA
-
-# client TLSv1.1 CAMELLIA256-SHA
--v 2
--l CAMELLIA256-SHA
-
-# server TLSv1.2 CAMELLIA128-SHA
--v 3
--l CAMELLIA128-SHA
-
-# client TLSv1.2 CAMELLIA128-SHA
--v 3
--l CAMELLIA128-SHA
-
-# server TLSv1.2 CAMELLIA256-SHA
--v 3
--l CAMELLIA256-SHA
-
-# client TLSv1.2 CAMELLIA256-SHA
--v 3
--l CAMELLIA256-SHA
-
-# server TLSv1.2 CAMELLIA128-SHA256
--v 3
--l CAMELLIA128-SHA256
-
-# client TLSv1.2 CAMELLIA128-SHA256
--v 3
--l CAMELLIA128-SHA256
-
-# server TLSv1.2 CAMELLIA256-SHA256
--v 3
--l CAMELLIA256-SHA256
-
-# client TLSv1.2 CAMELLIA256-SHA256
--v 3
--l CAMELLIA256-SHA256
-
-# server TLSv1 DHE-RSA-CAMELLIA128-SHA
--v 1
--l DHE-RSA-CAMELLIA128-SHA
-
-# client TLSv1 DHE-RSA-CAMELLIA128-SHA
--v 1
--l DHE-RSA-CAMELLIA128-SHA
-
-# server TLSv1 DHE-RSA-CAMELLIA256-SHA
--v 1
--l DHE-RSA-CAMELLIA256-SHA
-
-# client TLSv1 DHE-RSA-CAMELLIA256-SHA
--v 1
--l DHE-RSA-CAMELLIA256-SHA
-
-# server TLSv1.1 DHE-RSA-CAMELLIA128-SHA
--v 2
--l DHE-RSA-CAMELLIA128-SHA
-
-# client TLSv1.1 DHE-RSA-CAMELLIA128-SHA
--v 2
--l DHE-RSA-CAMELLIA128-SHA
-
-# server TLSv1.1 DHE-RSA-CAMELLIA256-SHA
--v 2
--l DHE-RSA-CAMELLIA256-SHA
-
-# client TLSv1.1 DHE-RSA-CAMELLIA256-SHA
--v 2
--l DHE-RSA-CAMELLIA256-SHA
-
-# server TLSv1.2 DHE-RSA-CAMELLIA128-SHA
--v 3
--l DHE-RSA-CAMELLIA128-SHA
-
-# client TLSv1.2 DHE-RSA-CAMELLIA128-SHA
--v 3
--l DHE-RSA-CAMELLIA128-SHA
-
-# server TLSv1.2 DHE-RSA-CAMELLIA256-SHA
--v 3
--l DHE-RSA-CAMELLIA256-SHA
-
-# client TLSv1.2 DHE-RSA-CAMELLIA256-SHA
--v 3
--l DHE-RSA-CAMELLIA256-SHA
-
-# server TLSv1.2 DHE-RSA-CAMELLIA128-SHA256
--v 3
--l DHE-RSA-CAMELLIA128-SHA256
-
-# client TLSv1.2 DHE-RSA-CAMELLIA128-SHA256
--v 3
--l DHE-RSA-CAMELLIA128-SHA256
-
-# server TLSv1.2 DHE-RSA-CAMELLIA256-SHA256
--v 3
--l DHE-RSA-CAMELLIA256-SHA256
-
-# client TLSv1.2 DHE-RSA-CAMELLIA256-SHA256
--v 3
--l DHE-RSA-CAMELLIA256-SHA256
-
-# server TLSv1.2 RSA-AES128-GCM-SHA256
--v 3
--l AES128-GCM-SHA256
-
-# client TLSv1.2 RSA-AES128-GCM-SHA256
--v 3
--l AES128-GCM-SHA256
-
-# server TLSv1.2 RSA-AES256-GCM-SHA384
--v 3
--l AES256-GCM-SHA384
-
-# client TLSv1.2 RSA-AES256-GCM-SHA384
--v 3
--l AES256-GCM-SHA384
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDH-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDH-ECDSA-AES128-GCM-SHA256
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-AES128-GCM-SHA256
--v 3
--l ECDH-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDH-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDH-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-ECDSA-AES256-GCM-SHA384
--v 3
--l ECDH-ECDSA-AES256-GCM-SHA384
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
-
-# client TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
-
-# server TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# server TLSv1.2 ECDH-RSA-AES128-GCM-SHA256
--v 3
--l ECDH-RSA-AES128-GCM-SHA256
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-AES128-GCM-SHA256
--v 3
--l ECDH-RSA-AES128-GCM-SHA256
-
-# server TLSv1.2 ECDH-RSA-AES256-GCM-SHA384
--v 3
--l ECDH-RSA-AES256-GCM-SHA384
--c ./certs/server-ecc-rsa.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDH-RSA-AES256-GCM-SHA384
--v 3
--l ECDH-RSA-AES256-GCM-SHA384
-
-# server TLSv1.2 DHE-RSA-AES128-GCM-SHA256
--v 3
--l DHE-RSA-AES128-GCM-SHA256
-
-# client TLSv1.2 DHE-RSA-AES128-GCM-SHA256
--v 3
--l DHE-RSA-AES128-GCM-SHA256
-
-# server TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l DHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 DHE-RSA-AES256-GCM-SHA384
--v 3
--l DHE-RSA-AES256-GCM-SHA384
-
-# server TLSv1.2 PSK-AES128-GCM-SHA256
--s
--v 3
--l PSK-AES128-GCM-SHA256
-
-# client TLSv1.2 PSK-AES128-GCM-SHA256
--s
--v 3
--l PSK-AES128-GCM-SHA256
-
-# server TLSv1.2 PSK-AES256-GCM-SHA384
--s
--v 3
--l PSK-AES256-GCM-SHA384
-
-# client TLSv1.2 PSK-AES256-GCM-SHA384
--s
--v 3
--l PSK-AES256-GCM-SHA384
-
-# server TLSv1.2 AES128-CCM-8
--v 3
--l AES128-CCM-8
-
-# client TLSv1.2 AES128-CCM-8
--v 3
--l AES128-CCM-8
-
-# server TLSv1.2 AES256-CCM-8
--v 3
--l AES256-CCM-8
-
-# client TLSv1.2 AES256-CCM-8
--v 3
--l AES256-CCM-8
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-CCM
--v 3
--l ECDHE-ECDSA-AES128-CCM
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-CCM
--v 3
--l ECDHE-ECDSA-AES128-CCM
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES128-CCM-8
--v 3
--l ECDHE-ECDSA-AES128-CCM-8
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES128-CCM-8
--v 3
--l ECDHE-ECDSA-AES128-CCM-8
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 ECDHE-ECDSA-AES256-CCM-8
--v 3
--l ECDHE-ECDSA-AES256-CCM-8
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256-CCM-8
--v 3
--l ECDHE-ECDSA-AES256-CCM-8
--A ./certs/ca-ecc-cert.pem
-
-# server TLSv1.2 PSK-AES128-CCM
--s
--v 3
--l PSK-AES128-CCM
-
-# client TLSv1.2 PSK-AES128-CCM
--s
--v 3
--l PSK-AES128-CCM
-
-# server TLSv1.2 PSK-AES256-CCM
--s
--v 3
--l PSK-AES256-CCM
-
-# client TLSv1.2 PSK-AES256-CCM
--s
--v 3
--l PSK-AES256-CCM
-
-# server TLSv1.2 PSK-AES128-CCM-8
--s
--v 3
--l PSK-AES128-CCM-8
-
-# client TLSv1.2 PSK-AES128-CCM-8
--s
--v 3
--l PSK-AES128-CCM-8
-
-# server TLSv1.2 PSK-AES256-CCM-8
--s
--v 3
--l PSK-AES256-CCM-8
-
-# client TLSv1.2 PSK-AES256-CCM-8
--s
--v 3
--l PSK-AES256-CCM-8
-
-# server TLSv1.2 DHE-PSK-AES128-CBC-SHA256
--s
--v 3
--l DHE-PSK-AES128-CBC-SHA256
-
-# client TLSv1.2 DHE-PSK-AES128-CBC-SHA256
--s
--v 3
--l DHE-PSK-AES128-CBC-SHA256
-
-# server TLSv1.2 DHE-PSK-AES256-CBC-SHA384
--s
--v 3
--l DHE-PSK-AES256-CBC-SHA384
-
-# client TLSv1.2 DHE-PSK-AES256-CBC-SHA384
--s
--v 3
--l DHE-PSK-AES256-CBC-SHA384
-
-# server TLSv1.2 DHE-PSK-NULL-SHA256
--s
--v 3
--l DHE-PSK-NULL-SHA256
-
-# client TLSv1.2 DHE-PSK-NULL-SHA256
--s
--v 3
--l DHE-PSK-NULL-SHA256
-
-# server TLSv1.2 DHE-PSK-NULL-SHA384
--s
--v 3
--l DHE-PSK-NULL-SHA384
-
-# client TLSv1.2 DHE-PSK-NULL-SHA384
--s
--v 3
--l DHE-PSK-NULL-SHA384
-
-# server TLSv1.2 DHE-PSK-AES128-GCM-SHA256
--s
--v 3
--l DHE-PSK-AES128-GCM-SHA256
-
-# client TLSv1.2 DHE-PSK-AES128-GCM-SHA256
--s
--v 3
--l DHE-PSK-AES128-GCM-SHA256
-
-# server TLSv1.2 DHE-PSK-AES256-GCM-SHA384
--s
--v 3
--l DHE-PSK-AES256-GCM-SHA384
-
-# client TLSv1.2 DHE-PSK-AES256-GCM-SHA384
--s
--v 3
--l DHE-PSK-AES256-GCM-SHA384
-
-# server TLSv1.2 DHE-PSK-AES128-CCM
--s
--v 3
--l DHE-PSK-AES128-CCM
-
-# client TLSv1.2 DHE-PSK-AES128-CCM
--s
--v 3
--l DHE-PSK-AES128-CCM
-
-# server TLSv1.2 DHE-PSK-AES256-CCM
--s
--v 3
--l DHE-PSK-AES256-CCM
-
-# client TLSv1.2 DHE-PSK-AES256-CCM
--s
--v 3
--l DHE-PSK-AES256-CCM
-
-# server TLSv1.2 ADH-AES128-SHA
--a
--v 3
--l ADH-AES128-SHA
-
-# client TLSv1.2 ADH-AES128-SHA
--a
--v 3
--l ADH-AES128-SHA
-
-# server TLSv1.1 ADH-AES128-SHA
--a
--v 2
--l ADH-AES128-SHA
-
-# client TLSv1.1 ADH-AES128-SHA
--a
--v 2
--l ADH-AES128-SHA
-
-# server TLSv1.0 ADH-AES128-SHA
--a
--v 1
--l ADH-AES128-SHA
-
-# client TLSv1.0 ADH-AES128-SHA
--a
--v 1
--l ADH-AES128-SHA
-
-# server TLSv1.2 ADH-AES256-GCM-SHA384
--a
--v 3
--l ADH-AES256-GCM-SHA384
-
-# client TLSv1.2 ADH-AES256-GCM-SHA384
--a
--v 3
--l ADH-AES256-GCM-SHA384
-
-# server TLSv1.1 ADH-AES256-GCM-SHA384
--a
--v 2
--l ADH-AES256-GCM-SHA384
--H exitWithRet
-
-# client TLSv1.1 ADH-AES256-GCM-SHA384
--a
--v 2
--l ADH-AES256-GCM-SHA384
--H exitWithRet
-
-# server TLSv1.0 ADH-AES256-GCM-SHA384
--a
--v 1
--l ADH-AES256-GCM-SHA384
--H exitWithRet
-
-# client TLSv1.0 ADH-AES256-GCM-SHA384
--a
--v 1
--l ADH-AES256-GCM-SHA384
--H exitWithRet
-
-# server TLSv1.1 DHE-RSA-AES256-GCM-SHA384
--a
--v 2
--l DHE-RSA-AES256-GCM-SHA384
--H exitWithRet
-
-# client TLSv1.1 DHE-RSA-AES256-GCM-SHA384
--a
--v 2
--l DHE-RSA-AES256-GCM-SHA384
--H exitWithRet
-
-# server TLSv1.0 DHE-RSA-AES256-GCM-SHA384
--a
--v 1
--l DHE-RSA-AES256-GCM-SHA384
--H exitWithRet
-
-# client TLSv1.0 DHE-RSA-AES256-GCM-SHA384
--a
--v 1
--l DHE-RSA-AES256-GCM-SHA384
--H exitWithRet
-
-# server TLSv1.1
--a
--v 2
-
-# client TLSv1.1 DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA
--a
--v 2
--l DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA
-
-# server TLSv1 NTRU_RC4
--v 1
--l NTRU-RC4-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1 NTRU_RC4
--v 1
--l NTRU-RC4-SHA
-
-# server TLSv1 NTRU_DES3
--v 1
--l NTRU-DES-CBC3-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1 NTRU_DES3
--v 1
--l NTRU-DES-CBC3-SHA
-
-# server TLSv1 NTRU_AES128
--v 1
--l NTRU-AES128-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1 NTRU_AES128
--v 1
--l NTRU-AES128-SHA
-
-# server TLSv1 NTRU_AES256
--v 1
--l NTRU-AES256-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1 NTRU_AES256
--v 1
--l NTRU-AES256-SHA
-
-# server TLSv1.1 NTRU_RC4
--v 2
--l NTRU-RC4-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1.1 NTRU_RC4
--v 2
--l NTRU-RC4-SHA
-
-# server TLSv1.1 NTRU_DES3
--v 2
--l NTRU-DES-CBC3-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1.1 NTRU_DES3
--v 2
--l NTRU-DES-CBC3-SHA
-
-# server TLSv1.1 NTRU_AES128
--v 2
--l NTRU-AES128-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1.1 NTRU_AES128
--v 2
--l NTRU-AES128-SHA
-
-# server TLSv1.1 NTRU_AES256
--v 2
--l NTRU-AES256-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1.1 NTRU_AES256
--v 2
--l NTRU-AES256-SHA
-
-# server TLSv1.2 NTRU_RC4
--v 3
--l NTRU-RC4-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1.2 NTRU_RC4
--v 3
--l NTRU-RC4-SHA
-
-# server TLSv1.2 NTRU_DES3
--v 3
--l NTRU-DES-CBC3-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1.2 NTRU_DES3
--v 3
--l NTRU-DES-CBC3-SHA
-
-# server TLSv1.2 NTRU_AES128
--v 3
--l NTRU-AES128-SHA
--n
--c ./certs/ntru-cert.pem
--k ./certs/ntru-key.raw
-
-# client TLSv1.2 NTRU_AES128
--v 3
--l NTRU-AES128-SHA
-
-# error going into callback, return ok
-# server TLSv1.2 verify callback override
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--c ./certs/test/server-cert-rsa-badsig.pem
-
-# client TLSv1.2 verify callback override
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--j
-
-# server TLSv1.2 verify callback override
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--c ./certs/test/server-cert-ecc-badsig.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 verify callback override
--v 3
--l ECDHE-ECDSA-AES128-GCM-SHA256
--A ./certs/ca-ecc-cert.pem
--j
-
-# no error going into callback, return ok
-# server TLSv1.2 verify callback override
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--c ./certs/server-cert.pem
-
-# client TLSv1.2 verify callback override
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--j
-
-# server TLSv1.2 verify callback override
-#-v 3
-#-l ECDHE-ECDSA-AES128-GCM-SHA256
-#-c ./certs/test/server-ecc.pem #This cert no longer exists
-#-k ./certs/ecc-key.pem
-
-# client TLSv1.2 verify callback override
-#-v 3
-#-l ECDHE-ECDSA-AES128-GCM-SHA256
-#-A ./certs/ca-ecc-cert.pem
-#-j
-
-# server TLSv1.2 ECDHE-EDCSA-CHACHA20-POLY1305
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-CHACHA20-POLY1305
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305
--A ./certs/ca-ecc-cert.pem
--t
-
-# server TLSv1.2 ECDHE-EDCSA-CHACHA20-POLY1305
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305
--c ./certs/server-ecc.pem
--k ./certs/ecc-key.pem
-
-# client TLSv1.2 ECDHE-ECDSA-CHACHA20-POLY1305
--v 3
--l ECDHE-ECDSA-CHACHA20-POLY1305
--A ./certs/ca-ecc-cert.pem
--8
-
-# server TLSv1.2 private-only key
--v 3
--c ./certs/ecc-privOnlyCert.pem
--k ./certs/ecc-privOnlyKey.pem
-
-# client TLSv1.2 private-only key on server
--v 3
--d
-
-# server TLSv1.2 with fragment
--v 3
-
-# client TLSv1.2 with fragment
--v 3
--F 1
-
-# server TLSv1.2 RSA 3072-bit DH 3072-bit
--v 3
--D certs/dh3072.pem
--A certs/3072/client-cert.pem
-
-# client TLSv1.2 RSA 3072-bit DH 3072-bit
--v 3
--D certs/dh3072.pem
--c certs/3072/client-cert.pem
--k certs/3072/client-key.pem
-
-# server good certificate common name
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/server-key.pem
--c ./certs/test/server-goodcn.pem
--d
-
-# client good certificate common name
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--h localhost
--A ./certs/test/server-goodcn.pem
--m
--C
-
-# server good certificate alt name
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/server-key.pem
--c ./certs/test/server-goodalt.pem
--d
-
-# client good certificate alt name
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--h localhost
--A ./certs/test/server-goodalt.pem
--m
--C
-
-# server good certificate common name wild
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/server-key.pem
--c ./certs/test/server-goodcnwild.pem
--d
-
-# client good certificate common name wild
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--h localhost
--A ./certs/test/server-goodcnwild.pem
--m
--C
-
-# server good certificate alt name wild
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--k ./certs/server-key.pem
--c ./certs/test/server-goodaltwild.pem
--d
-
-# client good certificate alt name wild
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--h localhost
--A ./certs/test/server-goodaltwild.pem
--m
--C
-
-# server CN in alternate names list
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--c ./certs/test/server-localhost.pem
-
-# client CN in alternate names list
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--h localhost
--A ./certs/test/server-localhost.pem
--m
-
-# server TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
-
-# client TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 with user curve (384 or 256)
--v 3
--l ECDHE-RSA-AES256-GCM-SHA384
--H useSupCurve
-
-# server TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384 with P-384 Certs and CA
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/server-ecc384-cert.pem
--k ./certs/server-ecc384-key.pem
--A ./certs/ca-ecc384-cert.pem
-
-# client TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384 with P-384 Certs and CA
--v 3
--l ECDHE-ECDSA-AES256-GCM-SHA384
--c ./certs/client-ecc384-cert.pem
--k ./certs/client-ecc384-key.pem
--A ./certs/ca-ecc384-cert.pem
-
-# server TLSv1.2 default with secure renegotiation (renegotiation available)
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--M
-
-# client TLSv1.2 default with secure renegotiation (client initiated)
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--i
-
-# server TLSv1.2 default with secure renegotiation (renegotiation available)
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--M
-
-# client TLSv1.2 default with secure renegotiation (client initiated as resume)
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--i -4
-
-# server TLSv1.2 default with secure renegotiation (server initiated)
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--m
-
-# client TLSv1.2 default with secure renegotiation (renegotiation available)
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--R
-
-# server TLSv1.2 default with secure renegotiation (server initiated)
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--m
-
-# client TLSv1.2 default with secure renegotiation (renegotiation available as resume)
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--R -4
-
-# server TLSv1.2 default with secure renegotiation (server initiated)
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--m
-
-# client TLSv1.2 default with secure renegotiation (client initiated)
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--i
-
-# server TLSv1.2 default with secure renegotiation (server initiated)
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--m
-
-# client TLSv1.2 default with secure renegotiation (client initiated as resume)
--v 3
--l ECDHE-RSA-AES128-GCM-SHA256
--i -4
-
-# server TLSv1.2 with Trusted CA Indication (pre-shared)
--v 3
--5
-
-# client TLSv1.2 with Trusted CA Indication (pre-shared)
--v 3
--5
-
-# server TLSv1.2 with block cipher and no ETM
--v 3
--l ECDHE-RSA-AES128-SHA256
--H disallowETM
-
-# client TLSv1.2 with block cipher
--v 3
--l ECDHE-RSA-AES128-SHA256
-
-# server TLSv1.2 with block cipher
--v 3
--l ECDHE-RSA-AES128-SHA256
-
-# client TLSv1.2 with block cipher and no ETM
--v 3
--l ECDHE-RSA-AES128-SHA256
--H disallowETM
-
-# server TLSv1.2 with block cipher and no ETM
--v 3
--l ECDHE-RSA-AES128-SHA256
--H disallowETM
-
-# client TLSv1.2 with block cipher and no ETM
--v 3
--l ECDHE-RSA-AES128-SHA256
--H disallowETM
-
-# server TLSv1.2 with block cipher and SHA-1 and no ETM
--v 3
--l ECDHE-RSA-AES128-SHA
--H disallowETM
-
-# client TLSv1.2 with block cipher and SHA-1 and no ETM
--v 3
--l ECDHE-RSA-AES128-SHA
--H disallowETM
-
-# server TLSv1.2 with block cipher
--v 3
--l ECDHE-RSA-AES128-SHA256
-
-# client TLSv1.2 with block cipher - atomic user (use callback)
--v 3
--l ECDHE-RSA-AES128-SHA256
--U
-
-# server TLSv1.2 with block cipher and no ETM
--v 3
--l ECDHE-RSA-AES128-SHA256
--H disallowETM
-
-# client TLSv1.2 with block cipher - atomic user (use callback)
--v 3
--l ECDHE-RSA-AES128-SHA256
--U
-
-# server with bidirectional shutdown
--w
-
-# client with bidirectional shutdown
--w
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/unit.c b/FreeRTOS-Plus/Source/WolfSSL/tests/unit.c
deleted file mode 100644
index 670e1d198..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/unit.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* unit.c API unit tests driver
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/* Name change compatibility layer no longer need to be included here */
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#include <stdio.h>
-#include <tests/unit.h>
-
-
-int myoptind = 0;
-char* myoptarg = NULL;
-int unit_test(int argc, char** argv);
-
-#ifndef NO_TESTSUITE_MAIN_DRIVER
-int main(int argc, char** argv)
-{
- return unit_test(argc, argv);
-}
-#endif
-
-int unit_test(int argc, char** argv)
-{
- int ret = 0;
-
- (void)argc;
- (void)argv;
-
-#ifdef WOLFSSL_FORCE_MALLOC_FAIL_TEST
- if (argc > 1) {
- word32 memFailCount = atoi(argv[1]);
- printf("\n--- SET RNG MALLOC FAIL AT %d---\n", memFailCount);
- wolfSSL_SetMemFailCount(memFailCount);
- }
-#endif
-
- printf("starting unit tests...\n");
-
-#if defined(DEBUG_WOLFSSL) && !defined(HAVE_VALGRIND)
- wolfSSL_Debugging_ON();
-#endif
-
-#ifdef HAVE_WNR
- if (wc_InitNetRandom(wnrConfig, NULL, 5000) != 0)
- err_sys("Whitewood netRandom global config failed");
-#endif /* HAVE_WNR */
-
-#ifndef WOLFSSL_TIRTOS
- ChangeToWolfRoot();
-#endif
-
- ApiTest();
-
- if ( (ret = HashTest()) != 0){
- printf("hash test failed with %d\n", ret);
- goto exit;
- }
-
-#if !defined(NO_WOLFSSL_CLIENT) && !defined(NO_WOLFSSL_SERVER)
-#ifndef SINGLE_THREADED
- if ( (ret = SuiteTest(argc, argv)) != 0){
- printf("suite test failed with %d\n", ret);
- goto exit;
- }
-#endif
-#endif
-
- SrpTest();
-
-exit:
-#ifdef HAVE_WNR
- if (wc_FreeNetRandom() < 0)
- err_sys("Failed to free netRandom context");
-#endif /* HAVE_WNR */
-
- return ret;
-}
-
-
-
-void wait_tcp_ready(func_args* args)
-{
-#ifdef SINGLE_THREADED
- (void)args;
-#elif defined(_POSIX_THREADS) && !defined(__MINGW32__)
- pthread_mutex_lock(&args->signal->mutex);
-
- if (!args->signal->ready)
- pthread_cond_wait(&args->signal->cond, &args->signal->mutex);
- args->signal->ready = 0; /* reset */
-
- pthread_mutex_unlock(&args->signal->mutex);
-#else
- (void)args;
-#endif
-}
-
-
-void start_thread(THREAD_FUNC fun, func_args* args, THREAD_TYPE* thread)
-{
-#ifdef SINGLE_THREADED
- (void)fun;
- (void)args;
- (void)thread;
-#elif defined(_POSIX_THREADS) && !defined(__MINGW32__)
- pthread_create(thread, 0, fun, args);
- return;
-#elif defined (WOLFSSL_TIRTOS)
- /* Initialize the defaults and set the parameters. */
- Task_Params taskParams;
- Task_Params_init(&taskParams);
- taskParams.arg0 = (UArg)args;
- taskParams.stackSize = 65535;
- *thread = Task_create((Task_FuncPtr)fun, &taskParams, NULL);
- if (*thread == NULL) {
- printf("Failed to create new Task\n");
- }
- Task_yield();
-#else
- *thread = (THREAD_TYPE)_beginthreadex(0, 0, fun, args, 0, 0);
-#endif
-}
-
-
-void join_thread(THREAD_TYPE thread)
-{
-#ifdef SINGLE_THREADED
- (void)thread;
-#elif defined(_POSIX_THREADS) && !defined(__MINGW32__)
- pthread_join(thread, 0);
-#elif defined (WOLFSSL_TIRTOS)
- while(1) {
- if (Task_getMode(thread) == Task_Mode_TERMINATED) {
- Task_sleep(5);
- break;
- }
- Task_yield();
- }
-#else
- int res = WaitForSingleObject((HANDLE)thread, INFINITE);
- assert(res == WAIT_OBJECT_0);
- res = CloseHandle((HANDLE)thread);
- assert(res);
- (void)res; /* Suppress un-used variable warning */
-#endif
-}
-
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tests/unit.h b/FreeRTOS-Plus/Source/WolfSSL/tests/unit.h
deleted file mode 100644
index 67f49f5f9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tests/unit.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* unit.c API unit tests driver
- *
- * Copyright (C) 2006-2020 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 CyaSSL_UNIT_H
-#define CyaSSL_UNIT_H
-
-#include <wolfssl/ssl.h>
-#include <wolfssl/test.h> /* thread and tcp stuff */
-
-#ifdef WOLFSSL_FORCE_MALLOC_FAIL_TEST
-#define XABORT()
-#else
-#define XABORT() abort()
-#endif
-
-#ifndef WOLFSSL_PASSTHRU_ERR
-#define Fail(description, result) do { \
- printf("\nERROR - %s line %d failed with:", __FILE__, __LINE__); \
- printf("\n expected: "); printf description; \
- printf("\n result: "); printf result; printf("\n\n"); \
- XABORT(); \
-} while(0)
-#else
-#define Fail(description, result) do { \
- printf("\nERROR - %s line %d failed with:", __FILE__, __LINE__); \
- printf("\n expected: ");printf description; \
- printf("\n result: "); printf result; printf("\n\n"); \
-} while (0)
-#endif
-
-#define Assert(test, description, result) if (!(test)) Fail(description, result)
-
-#define AssertTrue(x) Assert( (x), ("%s is true", #x), (#x " => FALSE"))
-#define AssertFalse(x) Assert(!(x), ("%s is false", #x), (#x " => TRUE"))
-#define AssertNotNull(x) Assert( (x), ("%s is not null", #x), (#x " => NULL"))
-
-#define AssertNull(x) do { \
- void* _x = (void *) (x); \
- \
- Assert(!_x, ("%s is null", #x), (#x " => %p", _x)); \
-} while(0)
-
-#define AssertInt(x, y, op, er) do { \
- int _x = (int)x; \
- int _y = (int)y; \
- \
- Assert(_x op _y, ("%s " #op " %s", #x, #y), ("%d " #er " %d", _x, _y)); \
-} while(0)
-
-#define AssertIntEQ(x, y) AssertInt(x, y, ==, !=)
-#define AssertIntNE(x, y) AssertInt(x, y, !=, ==)
-#define AssertIntGT(x, y) AssertInt(x, y, >, <=)
-#define AssertIntLT(x, y) AssertInt(x, y, <, >=)
-#define AssertIntGE(x, y) AssertInt(x, y, >=, <)
-#define AssertIntLE(x, y) AssertInt(x, y, <=, >)
-
-#define AssertStr(x, y, op, er) do { \
- const char* _x = x; \
- const char* _y = y; \
- int _z = (_x && _y) ? strcmp(_x, _y) : -1; \
- \
- Assert(_z op 0, ("%s " #op " %s", #x, #y), \
- ("\"%s\" " #er " \"%s\"", _x, _y));\
-} while(0)
-
-#define AssertStrEQ(x, y) AssertStr(x, y, ==, !=)
-#define AssertStrNE(x, y) AssertStr(x, y, !=, ==)
-#define AssertStrGT(x, y) AssertStr(x, y, >, <=)
-#define AssertStrLT(x, y) AssertStr(x, y, <, >=)
-#define AssertStrGE(x, y) AssertStr(x, y, >=, <)
-#define AssertStrLE(x, y) AssertStr(x, y, <=, >)
-
-#define AssertPtr(x, y, op, er) do { \
- void* _x = (void*)x; \
- void* _y = (void*)y; \
- Assert(_x op _y, ("%s " #op " %s", #x, #y), ("%p " #er " %p", _x, _y)); \
-} while(0)
-
-#define AssertPtrEq(x, y) AssertPtr(x, y, ==, !=)
-#define AssertPtrNE(x, y) AssertPtr(x, y, !=, ==)
-#define AssertPtrGT(x, y) AssertPtr(x, y, >, <=)
-#define AssertPtrLT(x, y) AssertPtr(x, y, <, >=)
-#define AssertPtrGE(x, y) AssertPtr(x, y, >=, <)
-#define AssertPtrLE(x, y) AssertPtr(x, y, <=, >)
-
-
-void ApiTest(void);
-int SuiteTest(int argc, char** argv);
-int HashTest(void);
-void SrpTest(void);
-
-
-#endif /* CyaSSL_UNIT_H */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/testsuite/include.am b/FreeRTOS-Plus/Source/WolfSSL/testsuite/include.am
deleted file mode 100644
index ed2604427..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/testsuite/include.am
+++ /dev/null
@@ -1,26 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-
-if BUILD_TESTS
-check_PROGRAMS += testsuite/testsuite.test
-noinst_PROGRAMS += testsuite/testsuite.test
-testsuite_testsuite_test_SOURCES = \
- wolfcrypt/test/test.c \
- examples/client/client.c \
- examples/echoclient/echoclient.c \
- examples/echoserver/echoserver.c \
- examples/server/server.c \
- testsuite/testsuite.c
-testsuite_testsuite_test_CFLAGS = -DNO_MAIN_DRIVER $(AM_CFLAGS)
-testsuite_testsuite_test_LDADD = src/libwolfssl.la $(LIB_STATIC_ADD)
-testsuite_testsuite_test_DEPENDENCIES = src/libwolfssl.la
-endif
-EXTRA_DIST += testsuite/testsuite.sln
-EXTRA_DIST += testsuite/testsuite-ntru.vcproj
-EXTRA_DIST += testsuite/testsuite.vcproj
-EXTRA_DIST += testsuite/testsuite.vcxproj
-EXTRA_DIST += input
-EXTRA_DIST += quit
-DISTCLEANFILES+= testsuite/.libs/testsuite.test
diff --git a/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite-ntru.vcproj b/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite-ntru.vcproj
deleted file mode 100644
index a6fc7be67..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite-ntru.vcproj
+++ /dev/null
@@ -1,219 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="testsuite"
- ProjectGUID="{611E8971-46E0-4D0A-B5A1-632C3B00CB80}"
- RootNamespace="testsuite"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../;../NTRU/include"
- PreprocessorDefinitions="NO_MAIN_DRIVER;WOLFSSL_RIPEMD;WOLFSSL_SHA512;OPENSSL_EXTRA;HAVE_NTRU;NO_PSK;WIN32"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib NtruEncrypt_DLL.lib"
- LinkIncremental="2"
- AdditionalLibraryDirectories="..\NTRU\bin"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../;../NTRU/include"
- PreprocessorDefinitions="NO_MAIN_DRIVER;WOLFSSL_RIPEMD;WOLFSSL_SHA512;OPENSSL_EXTRA;HAVE_NTRU;NO_PSK;WIN32"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib NtruEncrypt_DLL.lib"
- LinkIncremental="1"
- AdditionalLibraryDirectories="..\NTRU\bin"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath="..\examples\client\client.c"
- >
- </File>
- <File
- RelativePath="..\examples\echoclient\echoclient.c"
- >
- </File>
- <File
- RelativePath="..\examples\echoserver\echoserver.c"
- >
- </File>
- <File
- RelativePath="..\examples\server\server.c"
- >
- </File>
- <File
- RelativePath="..\wolfcrypt\test\test.c"
- >
- </File>
- <File
- RelativePath=".\testsuite.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.c b/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.c
deleted file mode 100644
index 8cd2cd291..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.c
+++ /dev/null
@@ -1,417 +0,0 @@
-/* testsuite.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#include <wolfssl/ssl.h>
-#include <wolfssl/test.h>
-#include <wolfcrypt/test/test.h>
-
-
-#ifndef SINGLE_THREADED
-
-#ifdef OPENSSL_EXTRA
-#include <wolfssl/openssl/ssl.h>
-#endif
-#include <wolfssl/wolfcrypt/sha256.h>
-
-#include <examples/echoclient/echoclient.h>
-#include <examples/echoserver/echoserver.h>
-#include <examples/server/server.h>
-#include <examples/client/client.h>
-
-
-#ifndef NO_SHA256
-void file_test(const char* file, byte* hash);
-#endif
-
-#if !defined(NO_WOLFSSL_SERVER) && !defined(NO_WOLFSSL_CLIENT)
-void simple_test(func_args*);
-
-enum {
- NUMARGS = 3
-};
-
-static const char *outputName;
-#endif
-
-int myoptind = 0;
-char* myoptarg = NULL;
-
-#ifndef NO_TESTSUITE_MAIN_DRIVER
-
- static int testsuite_test(int argc, char** argv);
-
- int main(int argc, char** argv)
- {
- return testsuite_test(argc, argv);
- }
-
-#endif /* NO_TESTSUITE_MAIN_DRIVER */
-
-
-int testsuite_test(int argc, char** argv)
-{
-#if !defined(NO_WOLFSSL_SERVER) && !defined(NO_WOLFSSL_CLIENT)
- func_args server_args;
-
- tcp_ready ready;
- THREAD_TYPE serverThread;
-
-#ifndef USE_WINDOWS_API
- char tempName[] = "/tmp/output-XXXXXX";
- int len = 18;
- int num = 6;
-#else
- char tempName[] = "fnXXXXXX";
- int len = 8;
- int num = 6;
-#endif
-
-#ifdef HAVE_WNR
- if (wc_InitNetRandom(wnrConfig, NULL, 5000) != 0) {
- err_sys("Whitewood netRandom global config failed");
- return -1237;
- }
-#endif /* HAVE_WNR */
-
- StartTCP();
-
- server_args.argc = argc;
- server_args.argv = argv;
-
- wolfSSL_Init();
-#if defined(DEBUG_WOLFSSL) && !defined(HAVE_VALGRIND)
- wolfSSL_Debugging_ON();
-#endif
-
-#if !defined(WOLFSSL_TIRTOS)
- ChangeToWolfRoot();
-#endif
-
-#ifdef WOLFSSL_TIRTOS
- fdOpenSession(Task_self());
-#endif
-
- server_args.signal = &ready;
- InitTcpReady(&ready);
-
-#ifndef NO_CRYPT_TEST
- /* wc_ test */
- wolfcrypt_test(&server_args);
- if (server_args.return_code != 0) return server_args.return_code;
-#endif
-
- /* Simple wolfSSL client server test */
- simple_test(&server_args);
- if (server_args.return_code != 0) return server_args.return_code;
-
- /* Echo input wolfSSL client server test */
- start_thread(echoserver_test, &server_args, &serverThread);
- wait_tcp_ready(&server_args);
- {
- func_args echo_args;
- char* myArgv[NUMARGS];
-
- char arg[3][32];
-
- myArgv[0] = arg[0];
- myArgv[1] = arg[1];
- myArgv[2] = arg[2];
-
- echo_args.argc = 3;
- echo_args.argv = myArgv;
-
- /* Create unique file name */
- outputName = mymktemp(tempName, len, num);
- if (outputName == NULL) {
- printf("Could not create unique file name");
- return EXIT_FAILURE;
- }
-
- strcpy(arg[0], "echoclient");
- strcpy(arg[1], "input");
- strcpy(arg[2], outputName);
-
- /* Share the signal, it has the new port number in it. */
- echo_args.signal = server_args.signal;
-
- /* make sure OK */
- echoclient_test(&echo_args);
- if (echo_args.return_code != 0) return echo_args.return_code;
-
-#ifdef WOLFSSL_DTLS
- wait_tcp_ready(&server_args);
-#endif
- /* send quit to echoserver */
- echo_args.argc = 2;
- strcpy(echo_args.argv[1], "quit");
-
- echoclient_test(&echo_args);
- if (echo_args.return_code != 0) return echo_args.return_code;
- join_thread(serverThread);
- if (server_args.return_code != 0) return server_args.return_code;
- }
-
- /* show ciphers */
- {
- char ciphers[WOLFSSL_CIPHER_LIST_MAX_SIZE];
- XMEMSET(ciphers, 0, sizeof(ciphers));
- wolfSSL_get_ciphers(ciphers, sizeof(ciphers)-1);
- printf("ciphers = %s\n", ciphers);
- }
-
- /* validate output equals input */
- {
- #ifndef NO_SHA256
- byte input[WC_SHA256_DIGEST_SIZE];
- byte output[WC_SHA256_DIGEST_SIZE];
-
- file_test("input", input);
- file_test(outputName, output);
- #endif
- remove(outputName);
- #ifndef NO_SHA256
- if (memcmp(input, output, sizeof(input)) != 0)
- return EXIT_FAILURE;
- #endif
- }
-
- wolfSSL_Cleanup();
- FreeTcpReady(&ready);
-
-#ifdef WOLFSSL_TIRTOS
- fdCloseSession(Task_self());
-#endif
-
-#ifdef HAVE_WNR
- if (wc_FreeNetRandom() < 0)
- err_sys("Failed to free netRandom context");
-#endif /* HAVE_WNR */
-
- printf("\nAll tests passed!\n");
-
-#else
- (void)argc;
- (void)argv;
-#endif /* !NO_WOLFSSL_SERVER && !NO_WOLFSSL_CLIENT */
-
- return EXIT_SUCCESS;
-}
-
-#if !defined(NO_WOLFSSL_SERVER) && !defined(NO_WOLFSSL_CLIENT)
-void simple_test(func_args* args)
-{
- THREAD_TYPE serverThread;
-
- int i;
-
- func_args svrArgs;
- char *svrArgv[9];
- char argvs[9][32];
-
- func_args cliArgs;
- char *cliArgv[NUMARGS];
- char argvc[3][32];
-
- for (i = 0; i < 9; i++)
- svrArgv[i] = argvs[i];
- for (i = 0; i < 3; i++)
- cliArgv[i] = argvc[i];
-
- strcpy(argvs[0], "SimpleServer");
- svrArgs.argc = 1;
- svrArgs.argv = svrArgv;
- svrArgs.return_code = 0;
- #if !defined(USE_WINDOWS_API) && !defined(WOLFSSL_SNIFFER) && \
- !defined(WOLFSSL_TIRTOS)
- strcpy(argvs[svrArgs.argc++], "-p");
- strcpy(argvs[svrArgs.argc++], "0");
- #endif
- /* Set the last arg later, when it is known. */
-
- args->return_code = 0;
- svrArgs.signal = args->signal;
- start_thread(server_test, &svrArgs, &serverThread);
- wait_tcp_ready(&svrArgs);
-
- /* Setting the actual port number. */
- strcpy(argvc[0], "SimpleClient");
- cliArgs.argv = cliArgv;
- cliArgs.return_code = 0;
- #ifndef USE_WINDOWS_API
- cliArgs.argc = NUMARGS;
- strcpy(argvc[1], "-p");
- snprintf(argvc[2], sizeof(argvc[2]), "%d", svrArgs.signal->port);
- #else
- cliArgs.argc = 1;
- #endif
-
- client_test(&cliArgs);
- if (cliArgs.return_code != 0) {
- args->return_code = cliArgs.return_code;
- return;
- }
- join_thread(serverThread);
- if (svrArgs.return_code != 0) args->return_code = svrArgs.return_code;
-}
-#endif /* !NO_WOLFSSL_SERVER && !NO_WOLFSSL_CLIENT */
-
-
-void wait_tcp_ready(func_args* args)
-{
-#if defined(_POSIX_THREADS) && !defined(__MINGW32__)
- pthread_mutex_lock(&args->signal->mutex);
-
- if (!args->signal->ready)
- pthread_cond_wait(&args->signal->cond, &args->signal->mutex);
- args->signal->ready = 0; /* reset */
-
- pthread_mutex_unlock(&args->signal->mutex);
-#else
- (void)args;
-#endif
-}
-
-
-void start_thread(THREAD_FUNC fun, func_args* args, THREAD_TYPE* thread)
-{
-#if defined(_POSIX_THREADS) && !defined(__MINGW32__)
- pthread_create(thread, 0, fun, args);
- return;
-#elif defined(WOLFSSL_TIRTOS)
- /* Initialize the defaults and set the parameters. */
- Task_Params taskParams;
- Task_Params_init(&taskParams);
- taskParams.arg0 = (UArg)args;
- taskParams.stackSize = 65535;
- *thread = Task_create((Task_FuncPtr)fun, &taskParams, NULL);
- if (*thread == NULL) {
- printf("Failed to create new Task\n");
- }
- Task_yield();
-#else
- *thread = (THREAD_TYPE)_beginthreadex(0, 0, fun, args, 0, 0);
-#endif
-}
-
-
-void join_thread(THREAD_TYPE thread)
-{
-#if defined(_POSIX_THREADS) && !defined(__MINGW32__)
- pthread_join(thread, 0);
-#elif defined(WOLFSSL_TIRTOS)
- while(1) {
- if (Task_getMode(thread) == Task_Mode_TERMINATED) {
- Task_sleep(5);
- break;
- }
- Task_yield();
- }
-#else
- int res = WaitForSingleObject((HANDLE)thread, INFINITE);
- assert(res == WAIT_OBJECT_0);
- res = CloseHandle((HANDLE)thread);
- assert(res);
- (void)res; /* Suppress un-used variable warning */
-#endif
-}
-
-
-#ifndef NO_SHA256
-void file_test(const char* file, byte* check)
-{
- FILE* f;
- int i = 0, j, ret;
- wc_Sha256 sha256;
- byte buf[1024];
- byte shasum[WC_SHA256_DIGEST_SIZE];
-
- ret = wc_InitSha256(&sha256);
- if (ret != 0) {
- printf("Can't wc_InitSha256 %d\n", ret);
- return;
- }
- if( !( f = fopen( file, "rb" ) )) {
- printf("Can't open %s\n", file);
- return;
- }
- while( ( i = (int)fread(buf, 1, sizeof(buf), f )) > 0 ) {
- ret = wc_Sha256Update(&sha256, buf, i);
- if (ret != 0) {
- printf("Can't wc_Sha256Update %d\n", ret);
- fclose(f);
- return;
- }
- }
-
- ret = wc_Sha256Final(&sha256, shasum);
- if (ret != 0) {
- printf("Can't wc_Sha256Final %d\n", ret);
- fclose(f);
- return;
- }
-
- XMEMCPY(check, shasum, sizeof(shasum));
-
- for(j = 0; j < WC_SHA256_DIGEST_SIZE; ++j )
- printf( "%02x", shasum[j] );
-
- printf(" %s\n", file);
-
- fclose(f);
-}
-#endif
-
-#else /* SINGLE_THREADED */
-
-
-int myoptind = 0;
-char* myoptarg = NULL;
-
-
-int main(int argc, char** argv)
-{
- func_args server_args;
-
- server_args.argc = argc;
- server_args.argv = argv;
-
- wolfSSL_Init();
- ChangeToWolfRoot();
-
- wolfcrypt_test(&server_args);
- if (server_args.return_code != 0) return server_args.return_code;
-
- wolfSSL_Cleanup();
- printf("\nAll tests passed!\n");
-
- EXIT_TEST(EXIT_SUCCESS);
-}
-
-
-#endif /* SINGLE_THREADED */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.sln b/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.sln
deleted file mode 100644
index b89dcc1f4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual C++ Express 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsuite", "testsuite.vcproj", "{9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Debug|Win32.ActiveCfg = Debug|Win32
- {9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Debug|Win32.Build.0 = Debug|Win32
- {9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Release|Win32.ActiveCfg = Release|Win32
- {9D4D8446-CE91-4F7A-AFF2-90D0B5DCD717}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.vcproj b/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.vcproj
deleted file mode 100644
index dc1fad1a4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.vcproj
+++ /dev/null
@@ -1,221 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="testsuite"
- ProjectGUID="{611E8971-46E0-4D0A-B5A1-632C3B00CB80}"
- RootNamespace="testsuite"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../;../IDE/WIN"
- PreprocessorDefinitions="NO_MAIN_DRIVER;WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib"
- LinkIncremental="2"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="../;../IDE/WIN"
- PreprocessorDefinitions="NO_MAIN_DRIVER;WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Ws2_32.lib"
- LinkIncremental="1"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath="..\examples\client\client.c"
- >
- </File>
- <File
- RelativePath="..\examples\echoclient\echoclient.c"
- >
- </File>
- <File
- RelativePath="..\examples\echoserver\echoserver.c"
- >
- </File>
- <File
- RelativePath="..\examples\server\server.c"
- >
- </File>
- <File
- RelativePath="..\wolfcrypt\test\test.c"
- >
- </File>
- <File
- RelativePath=".\testsuite.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath="..\IDE\WIN\user_settings.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.vcxproj b/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.vcxproj
deleted file mode 100644
index 5c40c315b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/testsuite/testsuite.vcxproj
+++ /dev/null
@@ -1,341 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Debug|Win32">
- <Configuration>DLL Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Debug|x64">
- <Configuration>DLL Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Release|Win32">
- <Configuration>DLL Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Release|x64">
- <Configuration>DLL Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{611E8971-46E0-4D0A-B5A1-632C3B00CB80}</ProjectGuid>
- <RootNamespace>testsuite</RootNamespace>
- <Keyword>Win32Proj</Keyword>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../;../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NO_MAIN_DRIVER;WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader />
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../;../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NO_MAIN_DRIVER;WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../;../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NO_MAIN_DRIVER;WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../;../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NO_MAIN_DRIVER;WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../;../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NO_MAIN_DRIVER;WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader />
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../;../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NO_MAIN_DRIVER;WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../;../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NO_MAIN_DRIVER;WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../;../IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>NO_MAIN_DRIVER;WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;WOLFSSL_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\examples\client\client.c" />
- <ClCompile Include="..\examples\echoclient\echoclient.c" />
- <ClCompile Include="..\examples\echoserver\echoserver.c" />
- <ClCompile Include="..\examples\server\server.c" />
- <ClCompile Include="..\wolfcrypt\test\test.c" />
- <ClCompile Include="testsuite.c" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\wolfssl.vcxproj">
- <Project>{73973223-5ee8-41ca-8e88-1d60e89a237b}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\IDE\WIN\user_settings.h" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/README b/FreeRTOS-Plus/Source/WolfSSL/tirtos/README
deleted file mode 100644
index dc7fbb114..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/README
+++ /dev/null
@@ -1,17 +0,0 @@
-# wolfSSL library for TI-RTOS
-
-This directory contains the files that build wolfSSL library for TI-RTOS.
-Please follow the instructions in "Using wolfSSL with TI-RTOS" (http://processors.wiki.ti.com/index.php/Using_wolfSSL_with_TI-RTOS) to build the wolfSSL
-library and the example applications.
-
-Also read TI-RTOS Getting Started Guide and TI-RTOS User Guide to learn more
-about TI-RTOS (http://www.ti.com/tool/ti-rtos).
-
-For more information see:
-(https://github.com/wolfSSL/wolfssl-examples/blob/master/tirtos_ccs_examples/README.md)
-
-## Example Application
-
-A simple "TCP echo server with TLS" example application is provided with TI-RTOS
-product. Look in the TI-RTOS Getting Started Guide for instructions to build
-examples.
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/include.am b/FreeRTOS-Plus/Source/WolfSSL/tirtos/include.am
deleted file mode 100644
index 7299c438e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/include.am
+++ /dev/null
@@ -1,23 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-EXTRA_DIST += \
- tirtos/README \
- tirtos/wolfssl.bld \
- tirtos/wolfssl.mak \
- tirtos/products.mak \
- tirtos/packages/ti/net/wolfssl/package.bld \
- tirtos/packages/ti/net/wolfssl/package.xdc \
- tirtos/packages/ti/net/wolfssl/package.xs \
- tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/package.bld.hide \
- tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/package.xdc \
- tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/test.cfg \
- tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/TM4C1294NC.icf \
- tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/main.c \
- tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/package.bld.hide \
- tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/package.xdc \
- tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/benchmark.cfg \
- tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/TM4C1294NC.icf \
- tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/main.c
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/package.bld b/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/package.bld
deleted file mode 100644
index 7f2ef948d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/package.bld
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * ======== package.bld ========
- * Build script for wolfSSL library
- */
-var Build = xdc.useModule('xdc.bld.BuildEnvironment');
-var Pkg = xdc.useModule('xdc.bld.PackageContents');
-
-/* make command to search for the srcs */
-Pkg.makePrologue = "vpath %.c $(subst ;, ,$(XPKGPATH))";
-
-/* WOLFSSL sources */
-var wolfSSLObjList = [
- "wolfcrypt/src/aes.c",
- "wolfcrypt/src/arc4.c",
- "wolfcrypt/src/asm.c",
- "wolfcrypt/src/asn.c",
- "wolfcrypt/src/blake2b.c",
- "wolfcrypt/src/camellia.c",
- "wolfcrypt/src/chacha.c",
- "wolfcrypt/src/coding.c",
- "wolfcrypt/src/des3.c",
- "wolfcrypt/src/dh.c",
- "wolfcrypt/src/dsa.c",
- "wolfcrypt/src/ecc.c",
- "wolfcrypt/src/error.c",
- "wolfcrypt/src/hc128.c",
- "wolfcrypt/src/hmac.c",
- "wolfcrypt/src/hash.c",
- "wolfcrypt/src/integer.c",
- "wolfcrypt/src/logging.c",
- "wolfcrypt/src/md4.c",
- "wolfcrypt/src/md5.c",
- "wolfcrypt/src/memory.c",
- "wolfcrypt/src/poly1305.c",
- "wolfcrypt/src/pwdbased.c",
- "wolfcrypt/src/rabbit.c",
- "wolfcrypt/src/random.c",
- "wolfcrypt/src/rsa.c",
- "wolfcrypt/src/sha.c",
- "wolfcrypt/src/sha256.c",
- "wolfcrypt/src/sha512.c",
- "wolfcrypt/src/tfm.c",
- "wolfcrypt/src/wc_port.c",
- "wolfcrypt/src/wolfmath.c",
- "wolfcrypt/src/wc_encrypt.c",
-
- "src/internal.c",
- "src/wolfio.c",
- "src/keys.c",
- "src/ssl.c",
- "src/tls.c",
-];
-
-for each (var targ in Build.targets) {
- var libOptions = {incs: wolfsslPathInclude};
- var lib = Pkg.addLibrary("lib/wolfssl", targ, libOptions);
- lib.addObjects(wolfSSLObjList);
-
- var hwLibptions = {incs: wolfsslPathInclude, defs: " -DWOLFSSL_TI_HASH "
- + "-DWOLFSSL_TI_CRYPT -DTARGET_IS_SNOWFLAKE_RA2"};
-
- var hwLib = Pkg.addLibrary("lib/wolfssl_tm4c_hw", targ, hwLibptions);
- hwLib.addObjects(wolfSSLObjList);
-}
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/package.xdc b/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/package.xdc
deleted file mode 100644
index 5fe467d45..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/package.xdc
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * ======== ti.net.wolfssl ========
- * wolfSSL library for TI-RTOS
- */
-package ti.net.wolfssl [1, 0, 0] {
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/package.xs b/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/package.xs
deleted file mode 100644
index 7f5215d36..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/package.xs
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * ======== package.xs ========
- */
-
-/*
- * ======== getLibs ========
- * Contribute wolfSSL library.
- */
-function getLibs(prog)
-{
- return ("lib/wolfssl.a" + prog.build.target.suffix);
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/TM4C1294NC.icf b/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/TM4C1294NC.icf
deleted file mode 100644
index f45398a3d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/TM4C1294NC.icf
+++ /dev/null
@@ -1,29 +0,0 @@
-/*###ICF### Section handled by ICF editor, don't touch! ****/
-/*-Editor annotation file-*/
-/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
-/*-Specials-*/
-define symbol __ICFEDIT_intvec_start__ = 0x00000000;
-/*-Memory Regions-*/
-define symbol __ICFEDIT_region_ROM_start__ = 0x00000000;
-define symbol __ICFEDIT_region_ROM_end__ = 0x000FFFFF;
-define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
-define symbol __ICFEDIT_region_RAM_end__ = 0x2003FFFF;
-/*-Sizes-*/
-define symbol __ICFEDIT_size_cstack__ = 0x8000;
-define symbol __ICFEDIT_size_heap__ = 0x10000;
-/**** End of ICF editor section. ###ICF###*/
-
-define memory mem with size = 4G;
-define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
-define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
-
-define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
-define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
-
-initialize by copy { readwrite };
-do not initialize { section .noinit };
-
-place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
-place in ROM_region { readonly };
-place in RAM_region { readwrite,
- block CSTACK, block HEAP }; \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/benchmark.cfg b/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/benchmark.cfg
deleted file mode 100644
index e259718d6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/benchmark.cfg
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * ======== benchmark.cfg ========
- */
-
-/* ================ General configuration ================ */
-var Defaults = xdc.useModule('xdc.runtime.Defaults');
-var Diags = xdc.useModule('xdc.runtime.Diags');
-var Error = xdc.useModule('xdc.runtime.Error');
-var Log = xdc.useModule('xdc.runtime.Log');
-var Main = xdc.useModule('xdc.runtime.Main');
-var Memory = xdc.useModule('xdc.runtime.Memory');
-var System = xdc.useModule('xdc.runtime.System');
-var Text = xdc.useModule('xdc.runtime.Text');
-var Timestamp = xdc.useModule('xdc.runtime.Timestamp');
-
-var BIOS = xdc.useModule('ti.sysbios.BIOS');
-var Clock = xdc.useModule('ti.sysbios.knl.Clock');
-var Task = xdc.useModule('ti.sysbios.knl.Task');
-var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
-var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
-var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
-var Timer = xdc.useModule('ti.sysbios.hal.Timer');
-
-BIOS.heapSize = 86016;
-Task.idleTaskStackSize = 768;
-
-/*
- * Program.stack is ignored with IAR. Use the project options in
- * IAR Embedded Workbench to alter the system stack size.
- */
-if (!Program.build.target.$name.match(/iar/)) {
- /*
- * Reducing the system stack size (used by ISRs and Swis) to reduce
- * RAM usage.
- */
- Program.stack = 2048;
-}
-
-/* ================ System configuration ================ */
-var SysMin = xdc.useModule('xdc.runtime.SysMin');
-SysMin.bufSize = 128;
-System.SupportProxy = SysMin;
-
-/* Enable Semihosting for GNU targets to print to CCS console */
-if (Program.build.target.$name.match(/gnu/)) {
- var SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
-}
-
-/* ================ NDK configuration ================ */
-var Ndk = xdc.loadPackage('ti.ndk.config');
-var Global = xdc.useModule('ti.ndk.config.Global');
-var Tcp = xdc.useModule('ti.ndk.config.Tcp');
-
-Global.IPv6 = false;
-Global.stackLibType = Global.MIN;
-
-Global.pktNumFrameBufs = 10;
-Global.memRawPageCount = 6;
-Global.ndkThreadStackSize = 1536;
-Global.lowTaskStackSize = 1024;
-Global.normTaskStackSize = 1024;
-Global.highTaskStackSize = 1024;
-Tcp.transmitBufSize = 1024;
-Tcp.receiveBufSize = 1024;
-
-
-/* ================ Driver configuration ================ */
-var TIRTOS = xdc.useModule('ti.tirtos.TIRTOS');
-TIRTOS.useEMAC = true;
-TIRTOS.useGPIO = true;
-
-/* ================ wolfSSL configuration ================ */
-try {
- var wolfSSL = xdc.loadPackage('ti.net.wolfssl');
-}
-catch (e) {
- print("Error: Could not find wolfSSL library! Make sure the wolfSSL library"
- + " is built and package path is updated for the build tool"
- + " to find the library. More detailed wolfSSL build instructions"
- + " can be found in the TI-RTOS user guide.");
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/main.c b/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/main.c
deleted file mode 100644
index eddd432f7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/main.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * ======== main.c ========
- * Entry point for Benchmark application
- */
-/* BIOS Header files */
-#include <ti/sysbios/BIOS.h>
-#include <ti/sysbios/knl/Swi.h>
-#include <xdc/runtime/System.h>
-#include <ti/sysbios/knl/Task.h>
-#include <ti/sysbios/hal/Timer.h>
-
-static int initialized = 0;
-static double msTicks = 0;
-static Timer_Handle hdl = NULL;
-
-double current_time(int reset);
-static void tick(unsigned int arg0);
-void msTimer_init(void);
-void runBenchmarks(UArg arg0, UArg arg1);
-extern int benchmark_test(void* args);
-
-/*
- * ======== runBenchmarks ========
- * Run the wolfSSL benchmark application
- */
-void runBenchmarks(UArg arg0, UArg arg1)
-{
- void *args = NULL;
- msTimer_init();
-
- System_printf("Running benchmarks...\n");
- System_flush();
- benchmark_test(args);
- System_printf("Benchmarks completed.\n");
-
- BIOS_exit(0);
-}
-
-/*
- * ======== ticks ========
- * Keeps track of time in millisec
- */
-static void tick(unsigned int arg0)
-{
- Swi_disable();
- msTicks++;
- Swi_enable();
-}
-
-/*
- * ======== current_time ========
- * Returns the time in sec (double precision)
- */
-double current_time(int reset)
-{
- if (reset) {
- msTicks = 0;
- }
-
- return (msTicks/1000);
-}
-
-/*
- * ======== msTimer_init ========
- * Sets up a BIOS timer with millisec period
- */
-void msTimer_init(void)
-{
- Timer_Params params;
-
- if (initialized) {
- return;
- }
-
- Timer_Params_init(&params);
- params.period = 1000;
- params.periodType = Timer_PeriodType_MICROSECS;
- params.runMode = Timer_RunMode_CONTINUOUS;
- params.startMode = Timer_StartMode_AUTO;
- hdl = Timer_create(-1, (ti_sysbios_hal_Timer_FuncPtr)tick,
- &params, NULL);
- if (!hdl) {
- System_abort("msTimer_init: Timer creation failed.\n");
- }
-
- /* Set flag indicating that initialization has completed */
- initialized = 1;
-}
-
-/*
- * ======== main ========
- */
-int main(int argc, char** argv)
-{
- /* Initialize the defaults and set the parameters. */
- Task_Handle handle;
- Task_Params taskParams;
- Task_Params_init(&taskParams);
- taskParams.stackSize = 65535;
- handle = Task_create(runBenchmarks, &taskParams, NULL);
- if (handle == NULL) {
- System_printf("main: Failed to create new Task.\n");
- }
-
- BIOS_start();
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/package.bld.hide b/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/package.bld.hide
deleted file mode 100644
index 453fee738..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/package.bld.hide
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * ======== package.bld ========
- * Build script for benchmark application
- */
-
-if ((typeof(TivaWareDir) == undefined) || (TivaWareDir == "")) {
- throw("ERROR: NO VALID TIVAWARE PATH DEFINED!!!");
-}
-
-var Build = xdc.useModule('xdc.bld.BuildEnvironment');
-var Pkg = xdc.useModule('xdc.bld.PackageContents');
-
-/* make command to search for the srcs */
-Pkg.makePrologue = "vpath %.c $(subst ;, ,$(XPKGPATH))";
-
-var srcs = [
- "main.c",
- "wolfcrypt/benchmark/benchmark.c",
- "examples/boards/EK_TM4C1294XL/EK_TM4C1294XL.c",
-];
-
-for each (var targ in Build.targets) {
-
- var lnkOpts = "";
- var platform = "ti.platforms.tiva:TM4C1294NCPDT:1";
- if (targ.$name.match(/^ti/)) {
- lnkOpts = " -l" + TivaWareDir + "/driverlib/ccs/Debug/driverlib.lib";
- lnkOpts += " -x ";
- }
- else if (targ.$name.match(/^iar/)) {
- lnkOpts = TivaWareDir + "/driverlib/ewarm/Exe/driverlib.a"
- + " --config TM4C1294NC.icf";
- platform = "ti.platforms.tiva:TM4C1294NCPDT";
-
- /* Floating point print support */
- var suffix = targ.$orig.lnkOpts.suffix;
- targ.$orig.lnkOpts.suffix = suffix.replace(/PrintfSmall/, "PrintfFull");
- }
- else if (targ.$name.match(/^gnu/)) {
- targ.$orig.lnkOpts.suffix += " -L" + TivaWareDir + "/driverlib/gcc "
- + " -Wl,--start-group -ldriver -Wl,--end-group ";
- targ.$orig.bspLib = "rdimon";
- }
-
- var exeOptions = { incs: wolfsslPathInclude
- + " -DNO_MAIN_DRIVER -D_INCLUDE_NIMU_CODE -DBENCH_EMBEDDED "
- + " -DTIVAWARE -DPART_TM4C1294NCPDT",
- lopts: lnkOpts
- };
-
- var exe = Pkg.addExecutable("benchmark", targ, platform, exeOptions);
- exe.addObjects(srcs);
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/package.xdc b/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/package.xdc
deleted file mode 100644
index 6a93cc333..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/benchmark/package.xdc
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
- * ======== ti.net.wolfssl.tests.EK_TM4C1294XL.wolfcrypt.benchmark ========
- * wc_ Benchmark Application
- */
-package ti.net.wolfssl.tests.EK_TM4C1294XL.wolfcrypt.benchmark [1, 0, 0] {
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/TM4C1294NC.icf b/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/TM4C1294NC.icf
deleted file mode 100644
index f45398a3d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/TM4C1294NC.icf
+++ /dev/null
@@ -1,29 +0,0 @@
-/*###ICF### Section handled by ICF editor, don't touch! ****/
-/*-Editor annotation file-*/
-/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
-/*-Specials-*/
-define symbol __ICFEDIT_intvec_start__ = 0x00000000;
-/*-Memory Regions-*/
-define symbol __ICFEDIT_region_ROM_start__ = 0x00000000;
-define symbol __ICFEDIT_region_ROM_end__ = 0x000FFFFF;
-define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
-define symbol __ICFEDIT_region_RAM_end__ = 0x2003FFFF;
-/*-Sizes-*/
-define symbol __ICFEDIT_size_cstack__ = 0x8000;
-define symbol __ICFEDIT_size_heap__ = 0x10000;
-/**** End of ICF editor section. ###ICF###*/
-
-define memory mem with size = 4G;
-define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
-define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
-
-define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
-define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
-
-initialize by copy { readwrite };
-do not initialize { section .noinit };
-
-place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
-place in ROM_region { readonly };
-place in RAM_region { readwrite,
- block CSTACK, block HEAP }; \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/main.c b/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/main.c
deleted file mode 100644
index 88023e4e1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/main.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * ======== main.c ========
- * Entry point to wolfcrypt Test Application
- */
-
-/* XDCtools Header files */
-#include <ti/sysbios/BIOS.h>
-#include <ti/sysbios/knl/Task.h>
-#include <xdc/runtime/System.h>
-
-/* func_args from test.h, so don't have to pull in other junk */
-typedef struct func_args {
- int argc;
- char** argv;
- int return_code;
-} func_args;
-
-extern int wolfcrypt_test(void* args);
-
-/*
- * ======== testwolfcrypt ========
- * Run the wolfcrypt test
- */
-void testwolfcrypt(UArg arg0, UArg arg1)
-{
- System_printf("Running wolfcrypt tests...\n");
- System_flush();
- wolfcrypt_test((void *)arg0);
- System_printf("Tests completed.\n");
-
- BIOS_exit(0);
-}
-
-/*
- * ======== main ========
- */
-int main(int argc, char** argv)
-{
- func_args args;
- args.argc = argc;
- args.argv = argv;
- /* Initialize the defaults and set the parameters. */
- Task_Handle handle;
- Task_Params taskParams;
- Task_Params_init(&taskParams);
- taskParams.arg0 = (UArg)&args;
- taskParams.stackSize = 65535;
- handle =Task_create(testwolfcrypt, &taskParams, NULL);
- if (handle == NULL) {
- System_printf("main: Failed to create new Task.\n");
- return (-1);
- }
-
- BIOS_start();
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/package.bld.hide b/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/package.bld.hide
deleted file mode 100644
index adfca1c9c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/package.bld.hide
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * ======== package.bld ========
- * Build script for wolfcrypt Test
- */
-
-if ((typeof(TivaWareDir) == undefined) || (TivaWareDir == "")) {
- throw("ERROR: NO VALID TIVAWARE PATH DEFINED!!!");
-}
-
-var Build = xdc.useModule('xdc.bld.BuildEnvironment');
-var Pkg = xdc.useModule('xdc.bld.PackageContents');
-
-/* make command to search for the srcs */
-Pkg.makePrologue = "vpath %.c $(subst ;, ,$(XPKGPATH))";
-
-var srcs = [
- "main.c",
- "wolfcrypt/test/test.c",
- "examples/boards/EK_TM4C1294XL/EK_TM4C1294XL.c",
-];
-
-for each (var targ in Build.targets) {
-
- var lnkOpts = "";
- var platform = "ti.platforms.tiva:TM4C1294NCPDT:1";
- if (targ.$name.match(/^ti/)) {
- lnkOpts = " -l" + TivaWareDir + "/driverlib/ccs/Debug/driverlib.lib";
- lnkOpts += " -x ";
- }
- else if (targ.$name.match(/^iar/)) {
- lnkOpts = TivaWareDir + "/driverlib/ewarm/Exe/driverlib.a"
- + " --config TM4C1294NC.icf";
- platform = "ti.platforms.tiva:TM4C1294NCPDT";
- }
- else if (targ.$name.match(/^gnu/)) {
- targ.$orig.lnkOpts.suffix += " -L" + TivaWareDir + "/driverlib/gcc "
- + " -Wl,--start-group -ldriver -Wl,--end-group ";
- targ.$orig.bspLib = "rdimon";
- }
-
- var exeOptions = { incs: wolfsslPathInclude
- + " -DNO_MAIN_DRIVER -D_INCLUDE_NIMU_CODE -DBENCH_EMBEDDED "
- + " -DTIVAWARE -DPART_TM4C1294NCPDT",
- lopts: lnkOpts,
- };
-
- var exe = Pkg.addExecutable("test", targ, platform, exeOptions);
- exe.addObjects(srcs);
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/package.xdc b/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/package.xdc
deleted file mode 100644
index 0b85d5786..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/package.xdc
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
- * ======== ti.net.wolfssl.tests.EK_TM4C1294XL.wolfcrypt.test ========
- * wolfcrypt Test Application
- */
-package ti.net.wolfssl.tests.EK_TM4C1294XL.wolfcrypt.test [1, 0, 0] {
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/test.cfg b/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/test.cfg
deleted file mode 100644
index dd8efc801..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/packages/ti/net/wolfssl/tests/EK_TM4C1294XL/wolfcrypt/test/test.cfg
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * ======== test.cfg ========
- */
-
-/* ================ General configuration ================ */
-var Defaults = xdc.useModule('xdc.runtime.Defaults');
-var Diags = xdc.useModule('xdc.runtime.Diags');
-var Error = xdc.useModule('xdc.runtime.Error');
-var Log = xdc.useModule('xdc.runtime.Log');
-var Main = xdc.useModule('xdc.runtime.Main');
-var Memory = xdc.useModule('xdc.runtime.Memory');
-var System = xdc.useModule('xdc.runtime.System');
-var Text = xdc.useModule('xdc.runtime.Text');
-var Timestamp = xdc.useModule('xdc.runtime.Timestamp');
-
-var BIOS = xdc.useModule('ti.sysbios.BIOS');
-var Clock = xdc.useModule('ti.sysbios.knl.Clock');
-var Task = xdc.useModule('ti.sysbios.knl.Task');
-var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
-var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
-var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
-
-BIOS.heapSize = 86016;
-Task.idleTaskStackSize = 768;
-
-/*
- * Program.stack is ignored with IAR. Use the project options in
- * IAR Embedded Workbench to alter the system stack size.
- */
-if (!Program.build.target.$name.match(/iar/)) {
- /*
- * Reducing the system stack size (used by ISRs and Swis) to reduce
- * RAM usage.
- */
- Program.stack = 2048;
-}
-
-/* ================ System configuration ================ */
-var SysMin = xdc.useModule('xdc.runtime.SysMin');
-SysMin.bufSize = 128;
-System.SupportProxy = SysMin;
-
-/* Enable Semihosting for GNU targets to print to CCS console */
-if (Program.build.target.$name.match(/gnu/)) {
- var SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
-}
-
-/* ================ NDK configuration ================ */
-var Ndk = xdc.loadPackage('ti.ndk.config');
-var Global = xdc.useModule('ti.ndk.config.Global');
-var Tcp = xdc.useModule('ti.ndk.config.Tcp');
-
-Global.IPv6 = false;
-Global.stackLibType = Global.MIN;
-
-Global.pktNumFrameBufs = 10;
-Global.memRawPageCount = 6;
-Global.ndkThreadStackSize = 1536;
-Global.lowTaskStackSize = 1024;
-Global.normTaskStackSize = 1024;
-Global.highTaskStackSize = 1024;
-Tcp.transmitBufSize = 1024;
-Tcp.receiveBufSize = 1024;
-
-
-/* ================ Driver configuration ================ */
-var TIRTOS = xdc.useModule('ti.tirtos.TIRTOS');
-TIRTOS.useEMAC = true;
-TIRTOS.useGPIO = true;
-
-/* ================ wolfSSL configuration ================ */
-try {
- var wolfSSL = xdc.loadPackage('ti.net.wolfssl');
-}
-catch (e) {
- print("Error: Could not find wolfSSL library! Make sure the wolfSSL library"
- + " is built and package path is updated for the build tool"
- + " to find the library. More detailed wolfSSL build instructions"
- + " can be found in the TI-RTOS user guide.");
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/products.mak b/FreeRTOS-Plus/Source/WolfSSL/tirtos/products.mak
deleted file mode 100644
index 8bf1823db..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/products.mak
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# ======== products.mak ========
-#
-#
-# Read the http://processors.wiki.ti.com/index.php/Using_wolfSSL_with_TI-RTOS
-# for instructions to download the software required.
-
-# XDC_INSTALL_DIR is the path to XDCtools directory.
-XDC_INSTALL_DIR =
-
-# BIOS_INSTALL_DIR is the path to TI-RTOS Kernel (SYS/BIOS) directory. If you
-# have installed TI-RTOS, it is located in the products/bios_* path.
-BIOS_INSTALL_DIR =
-
-# NDK_INSTALL_DIR is the path to TI-RTOS NDK directory. If you have
-# installed TI-RTOS, it is located in the products/ndk_* path.
-NDK_INSTALL_DIR =
-
-# TIVAWARE_INSTALL_DIR is the path to Tivaware driverlib directory. If you have
-# installed TI-RTOS, it is located in the products/TivaWare_* path.
-TIVAWARE_INSTALL_DIR =
-
-# Define the code generation tools path for TI, IAR and GCC ARM compilers.
-# If you have installed Code Composer Studio, the TI and GCC compiler are
-# located in the ccsv*/tools/compiler/* path.
-#
-# Leave assignment empty to disable any toolchain.
-ti.targets.arm.elf.M4F =
-iar.targets.arm.M4F =
-gnu.targets.arm.M4F =
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/wolfssl.bld b/FreeRTOS-Plus/Source/WolfSSL/tirtos/wolfssl.bld
deleted file mode 100644
index 59e95103b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/wolfssl.bld
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Generally there is no need to edit this file!
- *
- * This file controls which libraries are built, as well as compiler options
- * to use.
- *
- * The contents of this file usually don't change, but having it in your
- * ownership allows you to tweak your compiler options. If you do change
- * this file, however, on the next upgrade of the product we recommend
- * that you take "wolfssl.bld" file as supplied by the upgrade and then merge
- * your changes with it.
- */
-
-/*
- * ======== wolfssl.bld ========
- * This script is run prior to all build scripts. It sets host-system-
- * independent values for targets and platforms, then it attempts to
- * find the host-system-specific user.bld script that sets rootDirs.
- *
- * These settings may be a function of the following global variables:
- *
- * environment a hash table of environment strings
- *
- * arguments an array of string arguments to the _config.bld script
- * initialized as follows:
- * arguments[0] - the file name of the _config.bld script
- * arguments[1] - the first argument specified in XDCARGS
- * :
- * arguments[n] - the n'th argument in XDCARGS
- *
- * Build an alias for xdc.om.xdc.bld.BuildEnvironment
- */
-
-var armOpts = " -ms ";
-var gnuOpts = " -D_POSIX_SOURCE ";
-var iarOpts = " --diag_suppress=Pa134 ";
-var ndkDir = "";
-
-/* Uncomment the following lines to build libraries for debug mode: */
-// Pkg.attrs.profile = "debug";
-// armOpts += " -g -o0 ";
-// gnuOpts += " -g -D_POSIX_SOURCE ";
-// iarOpts += " --debug ";
-
-var ccOpts = {
- "ti.targets.arm.elf.M4" : armOpts,
- "ti.targets.arm.elf.M4F" : armOpts,
-
- "gnu.targets.arm.M4" : gnuOpts,
- "gnu.targets.arm.M4F" : gnuOpts,
-
- "iar.targets.arm.M4" : iarOpts,
- "iar.targets.arm.M4F" : iarOpts,
-};
-
-/* initialize local vars with those set in xdcpaths.mak (via XDCARGS) */
-for (arg = 0; arg < arguments.length; arg++) {
- /*
- * Get the compiler's installation directory.
- * For "ti.targets.arm.elf.M4F=/vendors/arm/6.1.0",
- * we get "/vendors/arm/6.1.0"
- */
- var targetName = arguments[arg].split("=")[0];
- var rootDir = arguments[arg].split("=")[1];
-
- /* only build for the specified compilers */
- if (rootDir == "" || rootDir == undefined) {
- continue;
- }
-
- if (targetName.match(/^NDK/) ) {
- ndkDir = rootDir;
- continue;
- }
-
- var target = xdc.useModule(targetName);
- target.rootDir = rootDir;
- target.ccOpts.suffix += ccOpts[targetName];
-
- Build.targets.$add(target);
-}
-
-/* Include Path (needed to find NDK headers) */
-var wolfsslPathInclude = " -I" + ndkDir + "/packages/ti/ndk/inc/bsd "
- + "-DWOLFSSL_TIRTOS ";
-
-/* lib/ is a generated directory that 'xdc clean' should remove */
-var Pkg = xdc.useModule('xdc.bld.PackageContents');
-Pkg.generatedFiles.$add("lib/");
diff --git a/FreeRTOS-Plus/Source/WolfSSL/tirtos/wolfssl.mak b/FreeRTOS-Plus/Source/WolfSSL/tirtos/wolfssl.mak
deleted file mode 100644
index f3088857f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/tirtos/wolfssl.mak
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-# ======== wolfssl.mak ========
-#
-include ./products.mak
-
-# Enable older TI-RTOS 2.14-based variables
-ifeq ($(BIOS_INSTALL_DIR),)
- BIOS_INSTALL_DIR=$(SYSBIOS_INSTALL_DIR)
-endif
-ifeq ($(TIVAWARE_INSTALL_DIR),)
- TIVAWARE_INSTALL_DIR=$(TIVAWARE)
-endif
-
-WOLFSSL_INSTALL_DIR=$(CURDIR)/../
-
-#
-# Set XDCARGS to some of the variables above. XDCARGS are passed
-# to the XDC build engine... which will load wolfssl.bld... which will
-# extract these variables and use them to determine what to build and which
-# toolchains to use.
-#
-# Note that not all of these variables need to be set to something valid.
-# Unfortunately, since these vars are unconditionally assigned, your build line
-# will be longer and more noisy than necessary.
-#
-# Some background is here:
-# http://rtsc.eclipse.org/docs-tip/Command_-_xdc#Environment_Variables
-#
-XDCARGS= \
- ti.targets.arm.elf.M4F=\"$(ti.targets.arm.elf.M4F)\" \
- gnu.targets.arm.M4F=\"$(gnu.targets.arm.M4F)\" \
- iar.targets.arm.M4F=\"$(iar.targets.arm.M4F)\" \
- NDK=\"$(NDK_INSTALL_DIR)\"
-
-#
-# Set XDCPATH to contain necessary repositories.
-#
-XDCPATH = $(BIOS_INSTALL_DIR)/packages;$(NDK_INSTALL_DIR)/packages;$(WOLFSSL_INSTALL_DIR);$(TIVAWARE_INSTALL_DIR)
-export XDCPATH
-
-#
-# Set XDCOPTIONS. Use -v for a verbose build.
-#
-#XDCOPTIONS=v
-export XDCOPTIONS
-
-#
-# Set XDC executable command
-# Note that XDCBUILDCFG points to the wolfssl.bld file which uses
-# the arguments specified by XDCARGS
-#
-XDC = $(XDC_INSTALL_DIR)/xdc XDCARGS="$(XDCARGS)" XDCBUILDCFG=./wolfssl.bld
-
-#######################################################
-## Shouldn't have to modify anything below this line ##
-#######################################################
-
-all:
- @ echo building wolfssl packages ...
- @ $(XDC) -Pr ./packages
-
-clean:
- @ echo cleaning wolfssl packages ...
- @ $(XDC) clean -Pr ./packages
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/benchmark/README.md b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/benchmark/README.md
deleted file mode 100644
index fc01f377b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/benchmark/README.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# wolfCrypt Benchmarks
-
-Tool for performing cryptographic algorithm benchmarking.
-
-## Measurements
-
-* Symmetric algorithms like AES and ChaCha20 are measured in Killobytes (KB) or Megabytes (MB) per second.
-* Asymmetric algorithms like RSA and ECC are measured using Operations Per Second (Ops) per second.
-
-## Usage
-
-```sh
-./wolfcrypt/benchmark/benchmark -?
-benchmark
--? <num> Help, print this usage
- 0: English, 1: Japanese
--csv Print terminal output in csv format
--base10 Display bytes as power of 10 (eg 1 kB = 1000 Bytes)
--no_aad No additional authentication data passed.
--dgst_full Full digest operation performed.
--rsa_sign Measure RSA sign/verify instead of encrypt/decrypt.
-<keySz> -rsa-sz
- Measure RSA <key size> performance.
--<alg> Algorithm to benchmark. Available algorithms include:
- cipher aes-cbc aes-gcm aes-ecb aes-xts aes-cfb aes-ctr aes-ccm
- camellia arc4 hc128 rabbit chacha20 chacha20-poly1305 des idea
- digest md5 poly1305 sha sha2 sha224 sha256 sha384 sha512 sha3
- sha3-224 sha3-256 sha3-384 sha3-512 ripemd
- mac cmac hmac hmac-md5 hmac-sha hmac-sha224 hmac-sha256
- hmac-sha384 hmac-sha512 pbkdf2
- asym rsa-kg rsa rsa-sz dh ecc-kg ecc ecc-enc curve25519_kg x25519
- ed25519-kg ed25519
- other rng scrypt
--lng <num> Display benchmark result by specified language.
- 0: English, 1: Japanese
-<num> Size of block in bytes
-```
-
-The `-base10` option shows as thousands of bytes (kB).
-
-## Example Output
-
-Run on Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz.
-
-```sh
-./configure --enable-intelasm --enable-aesni --enable-sp --enable-sp-asm && make
-
-./wolfcrypt/benchmark/benchmark
-------------------------------------------------------------------------------
- wolfSSL version 4.0.0
-------------------------------------------------------------------------------
-wolfCrypt Benchmark (block bytes 1048576, min 1.0 sec each)
-RNG 180 MB took 1.022 seconds, 176.201 MB/s Cycles per byte = 16.76
-AES-128-CBC-enc 1250 MB took 1.002 seconds, 1247.878 MB/s Cycles per byte = 2.37
-AES-128-CBC-dec 4595 MB took 1.001 seconds, 4591.703 MB/s Cycles per byte = 0.64
-AES-192-CBC-enc 1005 MB took 1.003 seconds, 1002.018 MB/s Cycles per byte = 2.95
-AES-192-CBC-dec 4345 MB took 1.000 seconds, 4344.744 MB/s Cycles per byte = 0.68
-AES-256-CBC-enc 905 MB took 1.005 seconds, 900.386 MB/s Cycles per byte = 3.28
-AES-256-CBC-dec 3255 MB took 1.001 seconds, 3251.618 MB/s Cycles per byte = 0.91
-AES-128-GCM-enc 4730 MB took 1.001 seconds, 4726.267 MB/s Cycles per byte = 0.62
-AES-128-GCM-dec 5140 MB took 1.000 seconds, 5137.596 MB/s Cycles per byte = 0.57
-AES-192-GCM-enc 4475 MB took 1.001 seconds, 4471.056 MB/s Cycles per byte = 0.66
-AES-192-GCM-dec 3405 MB took 1.001 seconds, 3403.179 MB/s Cycles per byte = 0.87
-AES-256-GCM-enc 2640 MB took 1.000 seconds, 2638.905 MB/s Cycles per byte = 1.12
-AES-256-GCM-dec 2780 MB took 1.001 seconds, 2776.632 MB/s Cycles per byte = 1.06
-CHACHA 2615 MB took 1.000 seconds, 2614.357 MB/s Cycles per byte = 1.13
-CHA-POLY 1490 MB took 1.001 seconds, 1488.344 MB/s Cycles per byte = 1.98
-MD5 440 MB took 1.010 seconds, 435.763 MB/s Cycles per byte = 6.78
-POLY1305 4900 MB took 1.001 seconds, 4896.430 MB/s Cycles per byte = 0.60
-SHA 515 MB took 1.011 seconds, 509.459 MB/s Cycles per byte = 5.80
-SHA-224 425 MB took 1.005 seconds, 422.737 MB/s Cycles per byte = 6.98
-SHA-256 420 MB took 1.006 seconds, 417.312 MB/s Cycles per byte = 7.08
-SHA-384 615 MB took 1.003 seconds, 613.018 MB/s Cycles per byte = 4.82
-SHA-512 560 MB took 1.007 seconds, 556.230 MB/s Cycles per byte = 5.31
-SHA3-224 295 MB took 1.003 seconds, 294.133 MB/s Cycles per byte = 10.04
-SHA3-256 280 MB took 1.003 seconds, 279.088 MB/s Cycles per byte = 10.58
-SHA3-384 215 MB took 1.002 seconds, 214.654 MB/s Cycles per byte = 13.76
-SHA3-512 145 MB took 1.005 seconds, 144.266 MB/s Cycles per byte = 20.47
-HMAC-MD5 485 MB took 1.004 seconds, 483.019 MB/s Cycles per byte = 6.11
-HMAC-SHA 505 MB took 1.006 seconds, 502.159 MB/s Cycles per byte = 5.88
-HMAC-SHA224 415 MB took 1.007 seconds, 411.965 MB/s Cycles per byte = 7.17
-HMAC-SHA256 380 MB took 1.002 seconds, 379.398 MB/s Cycles per byte = 7.78
-HMAC-SHA384 610 MB took 1.006 seconds, 606.370 MB/s Cycles per byte = 4.87
-HMAC-SHA512 620 MB took 1.001 seconds, 619.377 MB/s Cycles per byte = 4.77
-RSA 2048 public 52000 ops took 1.001 sec, avg 0.019 ms, 51932.223 ops/sec
-RSA 2048 private 1700 ops took 1.022 sec, avg 0.601 ms, 1662.697 ops/sec
-DH 2048 key gen 3491 ops took 1.000 sec, avg 0.286 ms, 3490.745 ops/sec
-DH 2048 agree 3500 ops took 1.014 sec, avg 0.290 ms, 3452.191 ops/sec
-ECC 256 key gen 88961 ops took 1.000 sec, avg 0.011 ms, 88960.279 ops/sec
-ECDHE 256 agree 20700 ops took 1.005 sec, avg 0.049 ms, 20605.239 ops/sec
-ECDSA 256 sign 53200 ops took 1.001 sec, avg 0.019 ms, 53157.214 ops/sec
-ECDSA 256 verify 17200 ops took 1.004 sec, avg 0.058 ms, 17124.208 ops/sec
-Benchmark complete
-```
-
-
-## Windows Visual Studio
-
-For building wolfCrypt Benchmark project in Visual Studio open the `benchmark.sln`. For newer Visual Studio version it may prompt for a one-way upgrade. Then you may have to right-click on the solution and choose `Retarget solution` to update the project files for your Visual Studio version.
-
-If you see an error about `rc.exe` then you'll need to update the "Target Platform Version". You can do this by right-clicking on the benchmark project -> General -> "Target Platform Version" and changing to 8.1 (needs to match the wolfssl library project).
-
-This solution includes the wolfSSL library project at `<wolfssl-root>wolfssl.vcxproj` and will compile the library, then the benchmark project.
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/benchmark/benchmark.h b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/benchmark/benchmark.h
deleted file mode 100644
index c2771bb59..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/benchmark/benchmark.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* wolfcrypt/benchmark/benchmark.h
- *
- * Copyright (C) 2006-2020 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 WOLFCRYPT_BENCHMARK_H
-#define WOLFCRYPT_BENCHMARK_H
-
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* run all benchmark entry */
-#ifdef HAVE_STACK_SIZE
-THREAD_RETURN WOLFSSL_THREAD benchmark_test(void* args);
-#else
-int benchmark_test(void *args);
-#endif
-
-/* individual benchmarks */
-int benchmark_init(void);
-int benchmark_free(void);
-void benchmark_configure(int block_size);
-
-void bench_des(int);
-void bench_idea(void);
-void bench_arc4(int);
-void bench_hc128(void);
-void bench_rabbit(void);
-void bench_chacha(void);
-void bench_chacha20_poly1305_aead(void);
-void bench_aescbc(int);
-void bench_aesgcm(int);
-void bench_aesccm(void);
-void bench_aesecb(int);
-void bench_aesxts(void);
-void bench_aesctr(void);
-void bench_aescfb(void);
-void bench_aesofb(void);
-void bench_poly1305(void);
-void bench_camellia(void);
-void bench_md5(int);
-void bench_sha(int);
-void bench_sha224(int);
-void bench_sha256(int);
-void bench_sha384(int);
-void bench_sha512(int);
-void bench_sha3_224(int);
-void bench_sha3_256(int);
-void bench_sha3_384(int);
-void bench_sha3_512(int);
-int bench_ripemd(void);
-void bench_cmac(void);
-void bench_scrypt(void);
-void bench_hmac_md5(int);
-void bench_hmac_sha(int);
-void bench_hmac_sha224(int);
-void bench_hmac_sha256(int);
-void bench_hmac_sha384(int);
-void bench_hmac_sha512(int);
-void bench_rsaKeyGen(int);
-void bench_rsaKeyGen_size(int, int);
-void bench_rsa(int);
-void bench_rsa_key(int, int);
-void bench_dh(int);
-void bench_eccMakeKey(int);
-void bench_ecc(int);
-void bench_eccEncrypt(void);
-void bench_curve25519KeyGen(void);
-void bench_curve25519KeyAgree(void);
-void bench_ed25519KeyGen(void);
-void bench_ed25519KeySign(void);
-void bench_curve448KeyGen(void);
-void bench_curve448KeyAgree(void);
-void bench_ed448KeyGen(void);
-void bench_ed448KeySign(void);
-void bench_ntru(void);
-void bench_ntruKeyGen(void);
-void bench_rng(void);
-void bench_blake2b(void);
-void bench_blake2s(void);
-void bench_pbkdf2(void);
-
-void bench_stats_print(void);
-
-
-#ifdef __cplusplus
- } /* extern "C" */
-#endif
-
-
-#endif /* WOLFCRYPT_BENCHMARK_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/evp.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/evp.c
index 7fffda210..d9207900c 100644
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/evp.c
+++ b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/evp.c
@@ -21,7 +21,7 @@
#if !defined(WOLFSSL_EVP_INCLUDED)
#ifndef WOLFSSL_IGNORE_FILE_WARN
-// #warning evp.c does not need to be compiled separately from ssl.c
+ #warning evp.c does not need to be compiled separately from ssl.c
#endif
#elif defined(WOLFCRYPT_ONLY)
#else
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/README.md b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/README.md
deleted file mode 100644
index 4f0d0b512..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/README.md
+++ /dev/null
@@ -1,109 +0,0 @@
-# ESP32 Port
-
-Support for the ESP32-WROOM-32 on-board crypto hardware acceleration for symmetric AES, SHA1/SHA256/SHA384/SHA512 and RSA primitive including mul, mulmod and exptmod.
-
-## ESP32 Acceleration
-
-For detail about ESP32 HW Acceleration, you can find in [Technical Reference Manual](https://espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf)
-
-### Building
-
-To enable hw acceleration :
-
-Uncomment out #define WOLFSSL_ESPIDF in /path/to/wolfssl/wolfssl/wolfcrypt/settings.h
-Uncomment out #define WOLFSSL_ESPWROOM32 in /path/to/wolfssl/wolfssl/wolfcrypt/settings.h
-
-To disable portions of the hardware acceleration you can optionally define:
-
-```
-/* Disabled SHA, AES and RSA acceleration */
-#define NO_ESP32WROOM32_CRYPT
-/* Disabled AES acceleration */
-#define NO_WOLFSSL_ESP32WROOM32_CRYPT_AES
-/* Disabled SHA acceleration */
-#define NO_WOLFSSL_ESP32WROOM32_CRYPT_HASH
-/* Disabled RSA Primitive acceleration */
-#define NO_WOLFSSL_ESP32WROOM32_CRYPT_RSA_PRI
-```
-
-### Coding
-
-In your application you must include <wolfssl/wolfcrypt/settings.h> before any other wolfSSL headers. If building the sources directly we recommend defining `WOLFSSL_USER_SETTINGS` and adding your own `user_settings.h` file. You can find a good reference for this in `IDE/GCC-ARM/Header/user_settings.h`.
-
-
-### Benchmarks
-
-w/ USE_FAST_MATH and WOLFSSL_SMALL_STACK options
-
-Software only implementation :
-
-```
-AES-128-CBC-enc 1 MB took 1.001 seconds, 1.146 MB/s
-AES-128-CBC-dec 1 MB took 1.017 seconds, 1.104 MB/s
-AES-192-CBC-enc 1 MB took 1.018 seconds, 1.055 MB/s
-AES-192-CBC-dec 1 MB took 1.006 seconds, 1.019 MB/s
-AES-256-CBC-enc 1000 KB took 1.000 seconds, 1000.000 KB/s
-AES-256-CBC-dec 975 KB took 1.007 seconds, 968.222 KB/s
-AES-128-GCM-enc 350 KB took 1.055 seconds, 331.754 KB/s
-AES-128-GCM-dec 350 KB took 1.054 seconds, 332.068 KB/s
-AES-192-GCM-enc 325 KB took 1.013 seconds, 320.829 KB/s
-AES-192-GCM-dec 325 KB took 1.013 seconds, 320.829 KB/s
-AES-256-GCM-enc 325 KB took 1.041 seconds, 312.200 KB/s
-AES-256-GCM-dec 325 KB took 1.041 seconds, 312.200 KB/s
-SHA 6 MB took 1.004 seconds, 5.714 MB/s
-SHA-256 2 MB took 1.006 seconds, 1.747 MB/s
-SHA-384 1 MB took 1.011 seconds, 1.159 MB/s
-SHA-512 1 MB took 1.009 seconds, 1.161 MB/s
-HMAC-SHA 6 MB took 1.001 seconds, 5.634 MB/s
-HMAC-SHA256 2 MB took 1.000 seconds, 1.733 MB/s
-HMAC-SHA384 1 MB took 1.004 seconds, 1.046 MB/s
-HMAC-SHA512 1 MB took 1.002 seconds, 1.048 MB/s
-RSA 2048 public 16 ops took 1.056 sec, avg 66.000 ms, 15.152 ops/sec
-RSA 2048 private 2 ops took 2.488 sec, avg 1244.000 ms, 0.804 ops/sec
-ECC 256 key gen 4 ops took 1.101 sec, avg 275.250 ms, 3.633 ops/sec
-ECDHE 256 agree 4 ops took 1.098 sec, avg 274.500 ms, 3.643 ops/sec
-ECDSA 256 sign 4 ops took 1.111 sec, avg 277.750 ms, 3.600 ops/sec
-ECDSA 256 verify 2 ops took 1.099 sec, avg 549.500 ms, 1.820 ops/sec
-```
-
-Hardware Acceleration :
-
-
-```
-AES-128-CBC-enc 6 MB took 1.004 seconds, 5.958 MB/s
-AES-128-CBC-dec 5 MB took 1.002 seconds, 5.287 MB/s
-AES-192-CBC-enc 6 MB took 1.004 seconds, 5.958 MB/s
-AES-192-CBC-dec 5 MB took 1.002 seconds, 5.287 MB/s
-AES-256-CBC-enc 6 MB took 1.001 seconds, 5.951 MB/s
-AES-256-CBC-dec 5 MB took 1.004 seconds, 5.277 MB/s
-AES-128-GCM-enc 375 KB took 1.067 seconds, 351.453 KB/s
-AES-128-GCM-dec 375 KB took 1.067 seconds, 351.453 KB/s
-AES-192-GCM-enc 350 KB took 1.010 seconds, 346.535 KB/s
-AES-192-GCM-dec 350 KB took 1.009 seconds, 346.878 KB/s
-AES-256-GCM-enc 350 KB took 1.016 seconds, 344.488 KB/s
-AES-256-GCM-dec 350 KB took 1.016 seconds, 344.488 KB/s
-SHA 14 MB took 1.000 seconds, 14.062 MB/s
-SHA-256 15 MB took 1.000 seconds, 15.234 MB/s
-SHA-384 17 MB took 1.000 seconds, 17.383 MB/s
-SHA-512 18 MB took 1.001 seconds, 17.512 MB/s
-HMAC-SHA 14 MB took 1.000 seconds, 13.818 MB/s
-HMAC-SHA256 15 MB took 1.001 seconds, 14.951 MB/s
-HMAC-SHA384 17 MB took 1.001 seconds, 16.683 MB/s
-HMAC-SHA512 17 MB took 1.000 seconds, 16.943 MB/s
-RSA 2048 public 20 ops took 1.017 sec, avg 50.850 ms, 19.666 ops/sec
-RSA 2048 private 4 ops took 1.059 sec, avg 264.750 ms, 3.777 ops/sec
-ECC 256 key gen 4 ops took 1.092 sec, avg 273.000 ms, 3.663 ops/sec
-ECDHE 256 agree 4 ops took 1.089 sec, avg 272.250 ms, 3.673 ops/sec
-ECDSA 256 sign 4 ops took 1.101 sec, avg 275.250 ms, 3.633 ops/sec
-ECDSA 256 verify 2 ops took 1.092 sec, avg 546.000 ms, 1.832 ops/sec
-```
-
-Condition :
-- Model : ESP32-WROOM-32
-- CPU Speed: 240Mhz
-- ESP-IDF : v3.3-beta1-39-g6cb37ecc5(commit hash : 6cb37ecc5)
-- OS : Ubuntu 18.04.1 LTS (Bionic Beaver)
-
-## Support
-
-Email us at [support@wolfssl.com](mailto:support@wolfssl.com).
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_aes.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_aes.c
deleted file mode 100644
index f2fb8a5be..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_aes.c
+++ /dev/null
@@ -1,299 +0,0 @@
-/* esp32_aes.c
- *
- * Copyright (C) 2006-2020 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 <string.h>
-#include <stdio.h>
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifndef NO_AES
-
-#if defined(WOLFSSL_ESP32WROOM32_CRYPT) && \
- !defined(NO_WOLFSSL_ESP32WROOM32_CRYPT_AES)
-
-#include <wolfssl/wolfcrypt/aes.h>
-#include "wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h"
-
-static const char* TAG = "wolf_hw_aes";
-/* mutex */
-static wolfSSL_Mutex aes_mutex;
-static int espaes_CryptHwMutexInit = 0;
-
-/*
-* lock hw engine.
-* this should be called before using engine.
-*/
-static int esp_aes_hw_InUse()
-{
- int ret = 0;
-
- ESP_LOGV(TAG, "enter esp_aes_hw_InUse");
-
- if(espaes_CryptHwMutexInit == 0) {
- ret = esp_CryptHwMutexInit(&aes_mutex);
- if(ret == 0){
- espaes_CryptHwMutexInit = 1;
- } else {
- ESP_LOGE(TAG, "aes mutx initialization failed.");
- return -1;
- }
- }
- /* lock hardware */
- ret = esp_CryptHwMutexLock(&aes_mutex, portMAX_DELAY);
- if(ret != 0) {
- ESP_LOGE(TAG, "aes engine lock failed.");
- return -1;
- }
- /* Enable AES hardware */
- periph_module_enable(PERIPH_AES_MODULE);
-
- ESP_LOGV(TAG, "leave esp_aes_hw_InUse");
- return ret;
-}
-
-/*
-* release hw engine
-*/
-static void esp_aes_hw_Leave( void )
-{
- ESP_LOGV(TAG, "enter esp_aes_hw_Leave");
- /* Disable AES hardware */
- periph_module_disable(PERIPH_AES_MODULE);
-
- /* unlock */
- esp_CryptHwMutexUnLock(&aes_mutex);
-
- ESP_LOGV(TAG, "leave esp_aes_hw_Leave");
-}
-
-/*
- * set key to hardware key registers.
- */
-static void esp_aes_hw_Set_KeyMode(Aes *ctx, ESP32_AESPROCESS mode)
-{
- int i;
- word32 mode_ = 0;
-
- ESP_LOGV(TAG, "enter esp_aes_hw_Set_KeyMode");
-
- /* check mode */
- if(mode == ESP32_AES_UPDATEKEY_ENCRYPT) {
- mode_ = 0;
- } else if(mode == ESP32_AES_UPDATEKEY_DECRYPT){
- mode_ = 4;
- } else {
- ESP_LOGE(TAG, "unexpected error.");
- return;
- }
-
- /* update key */
- for(i=0;i<(ctx->keylen)/sizeof(word32);i++){
- DPORT_REG_WRITE(AES_KEY_BASE + (i*4), *(((word32*)ctx->key) + i));
- }
-
- /* mode
- * 0 AES-128 Encryption
- * 1 AES-192 Encryption
- * 2 AES-256 Encryption
- * 4 AES-128 Decryption
- * 5 AES-192 Decryption
- * 6 AES-256 Decryption
- */
- switch(ctx->keylen){
- case 24: mode_ += 1; break;
- case 32: mode_ += 2; break;
- default: break;
- }
-
- DPORT_REG_WRITE(AES_MODE_REG, mode_);
- ESP_LOGV(TAG, "leave esp_aes_hw_Setkey");
-}
-
-/*
- * Process a one block of AES
- */
-static void esp_aes_bk(const byte* in, byte* out)
-{
- const word32 *inwords = (const word32 *)in;
- word32 *outwords = (word32 *)out;
-
- ESP_LOGV(TAG, "enter esp_aes_bk");
-
- /* copy text for encrypting/decrypting blocks */
- DPORT_REG_WRITE(AES_TEXT_BASE, inwords[0]);
- DPORT_REG_WRITE(AES_TEXT_BASE + 4, inwords[1]);
- DPORT_REG_WRITE(AES_TEXT_BASE + 8, inwords[2]);
- DPORT_REG_WRITE(AES_TEXT_BASE + 12, inwords[3]);
-
- /* start engine */
- DPORT_REG_WRITE(AES_START_REG, 1);
-
- /* wait until finishing the process */
- while(1) {
- if(DPORT_REG_READ(AES_IDLE_REG) == 1)
- break;
- }
-
- /* read-out blocks */
- esp_dport_access_read_buffer(outwords, AES_TEXT_BASE, 4);
- ESP_LOGV(TAG, "leave esp_aes_bk");
-}
-
-/*
-* wc_esp32AesEncrypt
-* @brief: a one block encrypt of the input block, into the output block
-* @param aes: a pointer of the AES object used to encrypt data
-* @param in : a pointer of the input buffer containing plain text to be encrypted
-* @param out: a pointer of the output buffer in which to store the cipher text of
-* the encrypted message
-*/
-int wc_esp32AesEncrypt(Aes *aes, const byte* in, byte* out)
-{
- ESP_LOGV(TAG, "enter wc_esp32AesEncrypt");
- /* lock the hw engine */
- esp_aes_hw_InUse();
- /* load the key into the register */
- esp_aes_hw_Set_KeyMode(aes, ESP32_AES_UPDATEKEY_ENCRYPT);
- /* process a one block of AES */
- esp_aes_bk(in, out);
- /* release hw */
- esp_aes_hw_Leave();
- return 0;
-}
-/*
-* wc_esp32AesDecrypt
-* @brief: a one block decrypt of the input block, into the output block
-* @param aes: a pointer of the AES object used to decrypt data
-* @param in : a pointer of the input buffer containing plain text to be decrypted
-* @param out: a pointer of the output buffer in which to store the cipher text of
-* the decrypted message
-*/
-int wc_esp32AesDecrypt(Aes *aes, const byte* in, byte* out)
-{
- ESP_LOGV(TAG, "enter wc_esp32AesDecrypt");
- /* lock the hw engine */
- esp_aes_hw_InUse();
- /* load the key into the register */
- esp_aes_hw_Set_KeyMode(aes, ESP32_AES_UPDATEKEY_DECRYPT);
- /* process a one block of AES */
- esp_aes_bk(in, out);
- /* release hw engine */
- esp_aes_hw_Leave();
- return 0;
-}
-/*
-* wc_esp32AesCbcEncrypt
-* @brief: Encrypts a plain text message from the input buffer, and places the
-* resulting cipher text into the output buffer using cipher block chaining
-* with AES.
-* @param aes: a pointer of the AES object used to encrypt data
-* @param out: a pointer of the output buffer in which to store the cipher text of
-* the encrypted message
-* @param in : a pointer of the input buffer containing plain text to be encrypted
-* @param sz : size of input message
-*/
-int wc_esp32AesCbcEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
-{
- int i;
- int offset = 0;
- word32 blocks = (sz / AES_BLOCK_SIZE);
- byte *iv;
- byte temp_block[AES_BLOCK_SIZE];
-
- ESP_LOGV(TAG, "enter wc_esp32AesCbcEncrypt");
-
- iv = (byte*)aes->reg;
-
- esp_aes_hw_InUse();
-
- esp_aes_hw_Set_KeyMode(aes, ESP32_AES_UPDATEKEY_ENCRYPT);
-
- while (blocks--) {
- XMEMCPY(temp_block, in + offset, AES_BLOCK_SIZE);
-
- /* XOR block with IV for CBC */
- for (i = 0; i < AES_BLOCK_SIZE; i++)
- temp_block[i] ^= iv[i];
-
- esp_aes_bk(temp_block, (out + offset));
-
- offset += AES_BLOCK_SIZE;
-
- /* store IV for next block */
- XMEMCPY(iv, out + offset - AES_BLOCK_SIZE, AES_BLOCK_SIZE);
- }
-
- esp_aes_hw_Leave();
- ESP_LOGV(TAG, "leave wc_esp32AesCbcEncrypt");
- return 0;
-}
-/*
-* wc_esp32AesCbcDecrypt
-* @brief: Encrypts a plain text message from the input buffer, and places the
-* resulting cipher text into the output buffer using cipher block chaining
-* with AES.
-* @param aes: a pointer of the AES object used to decrypt data
-* @param out: a pointer of the output buffer in which to store the cipher text of
-* the decrypted message
-* @param in : a pointer of the input buffer containing plain text to be decrypted
-* @param sz : size of input message
-*/
-int wc_esp32AesCbcDecrypt(Aes* aes, byte* out, const byte* in, word32 sz)
-{
- int i;
- int offset = 0;
- word32 blocks = (sz / AES_BLOCK_SIZE);
- byte* iv;
- byte temp_block[AES_BLOCK_SIZE];
-
- ESP_LOGV(TAG, "enter wc_esp32AesCbcDecrypt");
-
- iv = (byte*)aes->reg;
-
- esp_aes_hw_InUse();
-
- esp_aes_hw_Set_KeyMode(aes, ESP32_AES_UPDATEKEY_DECRYPT);
-
- while (blocks--) {
- XMEMCPY(temp_block, in + offset, AES_BLOCK_SIZE);
-
- esp_aes_bk((in + offset), (out + offset));
-
- /* XOR block with IV for CBC */
- for (i = 0; i < AES_BLOCK_SIZE; i++)
- (out + offset)[i] ^= iv[i];
-
- /* store IV for next block */
- XMEMCPY(iv, temp_block, AES_BLOCK_SIZE);
-
- offset += AES_BLOCK_SIZE;
- }
-
- esp_aes_hw_Leave();
- ESP_LOGV(TAG, "leave wc_esp32AesCbcDecrypt");
- return 0;
-}
-
-#endif /* WOLFSSL_ESP32WROOM32_CRYPT */
-#endif /* NO_AES */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_mp.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_mp.c
deleted file mode 100644
index 2174089b1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_mp.c
+++ /dev/null
@@ -1,514 +0,0 @@
-/* esp32_mp.c
- *
- * Copyright (C) 2006-2020 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 <string.h>
-#include <stdio.h>
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-#include <wolfssl/wolfcrypt/settings.h>
-
-#include "wolfssl/wolfcrypt/logging.h"
-
-#if !defined(NO_RSA) || defined(HAVE_ECC)
-
-#if defined(WOLFSSL_ESP32WROOM32_CRYPT_RSA_PRI) && \
- !defined(NO_WOLFSSL_ESP32WROOM32_CRYPT_RSA_PRI)
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-#include <wolfssl/wolfcrypt/tfm.h>
-
-static const char* const TAG = "wolfssl_mp";
-
-#define ESP_HW_RSAMAX_BIT 4096
-#define ESP_HW_MULTI_RSAMAX_BITS 2048
-#define ESP_HW_RSAMIN_BIT 512
-#define BYTE_TO_WORDS(s) (((s+3)>>2)) /* (s+(4-1))/ 4 */
-#define BITS_TO_WORDS(s) (((s+31)>>3)>>2) /* (s+(32-1))/ 8/ 4*/
-
-#define MP_NG -1
-
-/* mutex */
-static wolfSSL_Mutex mp_mutex;
-static int espmp_CryptHwMutexInit = 0;
-/*
-* check if the hw is ready before accessing it
-*/
-static int esp_mp_hw_wait_clean()
-{
- int timeout = 0;
- while(++timeout < ESP_RSA_TIMEOUT && DPORT_REG_READ(RSA_CLEAN_REG) != 1){}
-
- if(timeout >= ESP_RSA_TIMEOUT) {
- ESP_LOGE(TAG, "waiting hw ready is time-outed.");
- return MP_NG;
- }
- return MP_OKAY;
-}
-/*
-* lock hw engine.
-* this should be called before using engine.
-*/
-static int esp_mp_hw_lock()
-{
- int ret = 0;
-
- if(espmp_CryptHwMutexInit == 0) {
- ret = esp_CryptHwMutexInit(&mp_mutex);
- if(ret == 0){
- espmp_CryptHwMutexInit = 1;
- } else {
- ESP_LOGE(TAG, "mp mutx initialization failed.");
- return MP_NG;
- }
- }
- /* lock hardware */
- ret = esp_CryptHwMutexLock(&mp_mutex, portMAX_DELAY);
- if(ret != 0) {
- ESP_LOGE(TAG, "mp engine lock failed.");
- return MP_NG;
- }
- /* Enable RSA hardware */
- periph_module_enable(PERIPH_RSA_MODULE);
-
- return ret;
-}
-/*
-* Release hw engine
-*/
-static void esp_mp_hw_unlock( void )
-{
- /* Disable RSA hardware */
- periph_module_disable(PERIPH_RSA_MODULE);
-
- /* unlock */
- esp_CryptHwMutexUnLock(&mp_mutex);
-}
-/* this is based on an article by Cetin Kaya Koc, A New Algorithm for Inversion*/
-/* mod p^k, June 28 2017. */
-static int esp_calc_Mdash(mp_int *M, word32 k, mp_digit* md)
-{
- int i;
- int xi;
- int b0 = 1;
- int bi;
- word32 N = 0;
- word32 x;
-
- N = M->dp[0];
- bi = b0;
- x = 0;
-
- for(i = 0; i < k; i++) {
- xi = bi % 2;
- if(xi < 0){
- xi *= -1;
- }
- bi = (bi - N * xi) / 2;
- x |= (xi << i);
- }
- /* 2's complement */
- *md = ~x + 1;
- return MP_OKAY;
-}
-/* start hw process */
-static void process_start(word32 reg)
-{
- /* clear interrupt */
- DPORT_REG_WRITE(RSA_INTERRUPT_REG, 1);
- /* start process */
- DPORT_REG_WRITE(reg, 1);
-}
-/* wait until done */
-static int wait_uitil_done(word32 reg)
-{
- int timeout = 0;
- /* wait until done && not timeout */
- while(1) {
- if(++timeout < ESP_RSA_TIMEOUT && DPORT_REG_READ(reg) == 1){
- break;
- }
- }
-
- /* clear interrupt */
- DPORT_REG_WRITE(RSA_INTERRUPT_REG, 1);
-
- if(timeout >= ESP_RSA_TIMEOUT) {
- ESP_LOGE(TAG, "rsa operation is time-outed.");
- return MP_NG;
- }
-
- return MP_OKAY;
-}
-/* read data from memory into mp_init */
-static void esp_memblock_to_mpint(word32 mem_address, mp_int* mp, word32 numwords)
-{
- esp_dport_access_read_buffer((uint32_t*)mp->dp, mem_address, numwords);
- mp->used = numwords;
-}
-
-/* write mp_init into memory block */
-static void esp_mpint_to_memblock(word32 mem_address, const mp_int* mp,
- const word32 bits,
- const word32 hwords)
-{
- word32 i;
- word32 len = (bits / 8 + ((bits & 7) != 0 ? 1 : 0));
-
- len = (len+sizeof(word32)-1)/sizeof(word32);
-
- for(i=0;i < hwords; i++) {
- if(i < len) {
- DPORT_REG_WRITE(mem_address + (i * sizeof(word32)), mp->dp[i]);
- } else {
- DPORT_REG_WRITE(mem_address + (i * sizeof(word32)), 0);
- }
- }
-}
-/* return needed hw words. */
-/* supported words length */
-/* words : {16 , 32, 48, 64, 80, 96, 112, 128} */
-/* bits : {512,1024, 1536, 2048, 2560, 3072, 3584, 4096} */
-static word32 words2hwords(word32 wd)
-{
- const word32 shit_ = 4;
-
- return (((wd + 0xf)>>shit_)<<shit_);
-}
-/* count the number of words is needed for bits */
-static word32 bits2words(word32 bits)
-{
- /* 32 bits */
- const word32 d = sizeof(word32) * WOLFSSL_BIT_SIZE;
-
- return((bits + (d - 1))/d);
-}
-/* get rinv */
-static int esp_get_rinv(mp_int *rinv, mp_int *M, word32 exp)
-{
- int ret = 0;
-
- /* 2^(exp)*/
- if((ret = mp_2expt(rinv, exp)) != MP_OKAY) {
- ESP_LOGE(TAG, "failed to calculate mp_2expt()");
- return ret;
- }
-
- /* r_inv = R^2 mod M(=P) */
- if(ret == 0 && (ret = mp_mod(rinv, M, rinv)) != MP_OKAY){
- ESP_LOGE(TAG, "failed to calculate mp_mod()");
- return ret;
- }
-
- return ret;
-}
-/* Z = X * Y; */
-int esp_mp_mul(fp_int* X, fp_int* Y, fp_int* Z)
-{
- int ret = 0;
- int neg = (X->sign == Y->sign)? MP_ZPOS : MP_NEG;
-
- word32 Xs;
- word32 Ys;
- word32 Zs;
- word32 maxWords_sz;
- word32 hwWords_sz;
-
- /* ask bits number */
- Xs = mp_count_bits(X);
- Ys = mp_count_bits(Y);
- Zs = Xs + Ys;
-
- /* maximum bits and words for writing to hw */
- maxWords_sz = bits2words(max(Xs, Ys));
- hwWords_sz = words2hwords(maxWords_sz);
-
- /* sanity check */
- if((hwWords_sz<<5) > ESP_HW_MULTI_RSAMAX_BITS) {
- ESP_LOGW(TAG, "exceeds max bit length(2048)");
- return -2;
- }
-
- /*Steps to use hw in the following order:
- * 1. wait until clean hw engine
- * 2. Write(2*N/512bits - 1 + 8) to MULT_MODE_REG
- * 3. Write X and Y to memory blocks
- * need to write data to each memory block only according to the length
- * of the number.
- * 4. Write 1 to MUL_START_REG
- * 5. Wait for the first operation to be done. Poll INTERRUPT_REG until it reads 1.
- * (Or until the INTER interrupt is generated.)
- * 6. Write 1 to RSA_INTERRUPT_REG to clear the interrupt.
- * 7. Read the Z from RSA_Z_MEM
- * 8. Write 1 to RSA_INTERUPT_REG to clear the interrupt.
- * 9. Release the hw engine
- */
- /* lock hw for use */
- if((ret = esp_mp_hw_lock()) != MP_OKAY)
- return ret;
-
- if((ret = esp_mp_hw_wait_clean()) != MP_OKAY){
- return ret;
- }
-
- /* step.1 (2*N/512) => N/256. 512 bits => 16 words */
- DPORT_REG_WRITE(RSA_MULT_MODE_REG, (hwWords_sz >> 3) - 1 + 8);
- /* step.2 write X, M and r_inv into memory */
- esp_mpint_to_memblock(RSA_MEM_X_BLOCK_BASE, X, Xs, hwWords_sz);
- /* Y(let-extend) */
- esp_mpint_to_memblock(RSA_MEM_Z_BLOCK_BASE + (hwWords_sz<<2), Y, Ys, hwWords_sz);
- /* step.3 start process */
- process_start(RSA_MULT_START_REG);
-
- /* step.4,5 wait until done */
- wait_uitil_done(RSA_INTERRUPT_REG);
- /* step.6 read the result form MEM_Z */
- esp_memblock_to_mpint(RSA_MEM_Z_BLOCK_BASE, Z, BITS_TO_WORDS(Zs));
-
- /* step.7 clear and release hw */
- esp_mp_hw_unlock();
-
- Z->sign = (Z->used > 0)? neg : MP_ZPOS;
-
- return ret;
-}
-/* Z = X * Y (mod M) */
-int esp_mp_mulmod(fp_int* X, fp_int* Y, fp_int* M, fp_int* Z)
-{
- int ret = 0;
- int negcheck = 0;
- word32 Xs;
- word32 Ys;
- word32 Ms;
- word32 maxWords_sz;
- word32 hwWords_sz;
- word32 zwords;
-
- mp_int r_inv;
- mp_int tmpZ;
- mp_digit mp;
-
- /* neg check */
- if(X->sign != Y->sign) {
- /* X*Y becomes negative */
- negcheck = 1;
- }
- /* ask bits number */
- Xs = mp_count_bits(X);
- Ys = mp_count_bits(Y);
- Ms = mp_count_bits(M);
-
- /* maximum bits and words for writing to hw */
- maxWords_sz = bits2words(max(Xs, max(Ys, Ms)));
- zwords = bits2words(min(Ms, Xs + Ys));
- hwWords_sz = words2hwords(maxWords_sz);
-
- if((hwWords_sz<<5) > ESP_HW_RSAMAX_BIT) {
- ESP_LOGE(TAG, "exceeds hw maximum bits");
- return -2;
- }
- /* calculate r_inv = R^2 mode M
- * where: R = b^n, and b = 2^32
- * accordingly R^2 = 2^(n*32*2)
- */
- ret = mp_init_multi(&tmpZ, &r_inv, NULL, NULL, NULL, NULL);
- if(ret == 0 && (ret = esp_get_rinv(&r_inv, M, (hwWords_sz<<6))) != MP_OKAY) {
- ESP_LOGE(TAG, "calculate r_inv failed.");
- mp_clear(&tmpZ);
- mp_clear(&r_inv);
- return ret;
- }
- /* lock hw for use */
- if((ret = esp_mp_hw_lock()) != MP_OKAY){
- mp_clear(&tmpZ);
- mp_clear(&r_inv);
- return ret;
- }
- /* Calculate M' */
- if((ret = esp_calc_Mdash(M, 32/* bits */, &mp)) != MP_OKAY) {
- ESP_LOGE(TAG, "failed to calculate M dash");
- mp_clear(&tmpZ);
- mp_clear(&r_inv);
- return -1;
- }
- /*Steps to use hw in the following order:
- * 1. wait until clean hw engine
- * 2. Write(N/512bits - 1) to MULT_MODE_REG
- * 3. Write X,M(=G, X, P) to memory blocks
- * need to write data to each memory block only according to the length
- * of the number.
- * 4. Write M' to M_PRIME_REG
- * 5. Write 1 to MODEXP_START_REG
- * 6. Wait for the first operation to be done. Poll INTERRUPT_REG until it reads 1.
- * (Or until the INTER interrupt is generated.)
- * 7. Write 1 to RSA_INTERRUPT_REG to clear the interrupt.
- * 8. Write Y to RSA_X_MEM
- * 9. Write 1 to RSA_MULT_START_REG
- * 10. Wait for the second operation to be completed. Poll INTERRUPT_REG until it reads 1.
- * 11. Read the Z from RSA_Z_MEM
- * 12. Write 1 to RSA_INTERUPT_REG to clear the interrupt.
- * 13. Release the hw engine
- */
-
- if((ret = esp_mp_hw_wait_clean()) != MP_OKAY){
- return ret;
- }
- /* step.1 512 bits => 16 words */
- DPORT_REG_WRITE(RSA_MULT_MODE_REG, (hwWords_sz >> 4) - 1);
-
- /* step.2 write X, M and r_inv into memory */
- esp_mpint_to_memblock(RSA_MEM_X_BLOCK_BASE, X, Xs, hwWords_sz);
- esp_mpint_to_memblock(RSA_MEM_M_BLOCK_BASE, M, Ms, hwWords_sz);
- esp_mpint_to_memblock(RSA_MEM_Z_BLOCK_BASE, &r_inv, mp_count_bits(&r_inv),
- hwWords_sz);
- /* step.3 write M' into memory */
- DPORT_REG_WRITE(RSA_M_DASH_REG, mp);
- /* step.4 start process */
- process_start(RSA_MULT_START_REG);
-
- /* step.5,6 wait until done */
- wait_uitil_done(RSA_INTERRUPT_REG);
- /* step.7 Y to MEM_X */
- esp_mpint_to_memblock(RSA_MEM_X_BLOCK_BASE, Y, Ys, hwWords_sz);
-
- /* step.8 start process */
- process_start(RSA_MULT_START_REG);
-
- /* step.9,11 wait until done */
- wait_uitil_done(RSA_INTERRUPT_REG);
-
- /* step.12 read the result from MEM_Z */
- esp_memblock_to_mpint(RSA_MEM_Z_BLOCK_BASE, &tmpZ, zwords);
-
- /* step.13 clear and release hw */
- esp_mp_hw_unlock();
-
- /* additional steps */
- /* this needs for known issue when Z is greater than M */
- if(mp_cmp(&tmpZ, M)==FP_GT) {
- /* Z -= M */
- mp_sub(&tmpZ, M, &tmpZ);
- }
- if(negcheck) {
- mp_sub(M, &tmpZ, &tmpZ);
- }
-
- mp_copy(&tmpZ, Z);
-
- mp_clear(&tmpZ);
- mp_clear(&r_inv);
-
- return ret;
-}
-/* Z = X^Y mod M */
-int esp_mp_exptmod(fp_int* X, fp_int* Y, word32 Ys, fp_int* M, fp_int* Z)
-{
- int ret = 0;
-
- word32 Xs;
- word32 Ms;
- word32 maxWords_sz;
- word32 hwWords_sz;
-
- mp_int r_inv;
- mp_digit mp;
-
- /* ask bits number */
- Xs = mp_count_bits(X);
- Ms = mp_count_bits(M);
- /* maximum bits and words for writing to hw */
- maxWords_sz = bits2words(max(Xs, max(Ys, Ms)));
- hwWords_sz = words2hwords(maxWords_sz);
-
- if((hwWords_sz<<5) > ESP_HW_RSAMAX_BIT) {
- ESP_LOGE(TAG, "exceeds hw maximum bits");
- return -2;
- }
- /* calculate r_inv = R^2 mode M
- * where: R = b^n, and b = 2^32
- * accordingly R^2 = 2^(n*32*2)
- */
- ret = mp_init(&r_inv);
- if(ret == 0 && (ret = esp_get_rinv(&r_inv, M, (hwWords_sz<<6))) != MP_OKAY) {
- ESP_LOGE(TAG, "calculate r_inv failed.");
- mp_clear(&r_inv);
- return ret;
- }
- /* lock and init the hw */
- if((ret = esp_mp_hw_lock()) != MP_OKAY) {
- mp_clear(&r_inv);
- return ret;
- }
- /* calc M' */
- /* if Pm is odd, uses mp_montgomery_setup() */
- if((ret = esp_calc_Mdash(M, 32/* bits */, &mp)) != MP_OKAY) {
- ESP_LOGE(TAG, "failed to calculate M dash");
- mp_clear(&r_inv);
- return -1;
- }
-
- /*Steps to use hw in the following order:
- * 1. Write(N/512bits - 1) to MODEXP_MODE_REG
- * 2. Write X, Y, M and r_inv to memory blocks
- * need to write data to each memory block only according to the length
- * of the number.
- * 3. Write M' to M_PRIME_REG
- * 4. Write 1 to MODEXP_START_REG
- * 5. Wait for the operation to be done. Poll INTERRUPT_REG until it reads 1.
- * (Or until the INTER interrupt is generated.)
- * 6. Read the result Z(=Y) from Z_MEM
- * 7. Write 1 to INTERRUPT_REG to clear the interrupt.
- */
- if((ret = esp_mp_hw_wait_clean()) != MP_OKAY){
- return ret;
- }
-
- /* step.1 */
- DPORT_REG_WRITE(RSA_MODEXP_MODE_REG, (hwWords_sz >> 4) - 1);
- /* step.2 write G, X, P, r_inv and M' into memory */
- esp_mpint_to_memblock(RSA_MEM_X_BLOCK_BASE, X, Xs, hwWords_sz);
- esp_mpint_to_memblock(RSA_MEM_Y_BLOCK_BASE, Y, Ys, hwWords_sz);
- esp_mpint_to_memblock(RSA_MEM_M_BLOCK_BASE, M, Ms, hwWords_sz);
- esp_mpint_to_memblock(RSA_MEM_Z_BLOCK_BASE, &r_inv, mp_count_bits(&r_inv),
- hwWords_sz);
- /* step.3 write M' into memory */
- DPORT_REG_WRITE(RSA_M_DASH_REG, mp);
- /* step.4 start process */
- process_start(RSA_START_MODEXP_REG);
-
- /* step.5 wait until done */
- wait_uitil_done(RSA_INTERRUPT_REG);
- /* step.6 read a result form memory */
- esp_memblock_to_mpint(RSA_MEM_Z_BLOCK_BASE, Z, BITS_TO_WORDS(Ms));
- /* step.7 clear and release hw */
- esp_mp_hw_unlock();
-
- mp_clear(&r_inv);
-
- return ret;
-}
-#endif /* !NO_RSA || HAVE_ECC */
-#endif /* (WOLFSS_ESP32WROOM32_CRYPT) && (NO_WOLFSSL_ESP32WROOM32_CRYPT_RES_PRI)*/
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_sha.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_sha.c
deleted file mode 100644
index 94789cd64..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_sha.c
+++ /dev/null
@@ -1,434 +0,0 @@
-/* esp32_sha.c
- *
- * Copyright (C) 2006-2020 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 <string.h>
-#include <stdio.h>
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-#include <wolfssl/wolfcrypt/settings.h>
-
-#if !defined(NO_SHA) || !defined(NO_SHA256) || defined(WC_SHA384) || \
- defined(WC_SHA512)
-
-#include "wolfssl/wolfcrypt/logging.h"
-
-
-#if defined(WOLFSSL_ESP32WROOM32_CRYPT) && \
- !defined(NO_WOLFSSL_ESP32WROOM32_CRYPT_HASH)
-
-#include <wolfssl/wolfcrypt/sha.h>
-#include <wolfssl/wolfcrypt/sha256.h>
-#include <wolfssl/wolfcrypt/sha512.h>
-
-#include "wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h"
-#include "wolfssl/wolfcrypt/error-crypt.h"
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-static const char* TAG = "wolf_hw_sha";
-/* continue register offset */
-#define CONTINUE_REG_OFFSET (0x04) /* start_reg + 0x04 */
-
-#ifdef NO_SHA
- #define WC_SHA_DIGEST_SIZE 20
-#endif
-/* mutex */
-#if defined(SINGLE_THREADED)
-static int InUse = 0;
-#else
-static wolfSSL_Mutex sha_mutex;
-static int espsha_CryptHwMutexInit = 0;
-#endif
-/*
- enum SHA_TYPE {
- SHA1 = 0,
- SHA2_256,
- SHA2_384,
- SHA2_512,
- SHA_INVALID = -1,
- };
-*/
-static word32 esp_sha_digest_size(enum SHA_TYPE type)
-{
- ESP_LOGV(TAG, "enter esp_sha_digest_size");
-
- switch(type){
-#ifndef NO_SHA
- case SHA1:
- return WC_SHA_DIGEST_SIZE;
-#endif
-#ifndef NO_SHA256
- case SHA2_256:
- return WC_SHA256_DIGEST_SIZE;
-#endif
-#ifdef WOLFSSL_SHA384
- case SHA2_384:
- return WC_SHA384_DIGEST_SIZE;
-#endif
-#ifdef WOLFSSL_SHA512
- case SHA2_512:
- return WC_SHA512_DIGEST_SIZE;
-#endif
- default:
- ESP_LOGE(TAG, "Bad sha type");
- return WC_SHA_DIGEST_SIZE;
- }
- ESP_LOGV(TAG, "leave esp_sha_digest_size");
-}
-/*
-* wait until engines becomes idle
-*/
-static void esp_wait_until_idle()
-{
- while((DPORT_REG_READ(SHA_1_BUSY_REG) !=0) ||
- (DPORT_REG_READ(SHA_256_BUSY_REG)!=0) ||
- (DPORT_REG_READ(SHA_384_BUSY_REG)!=0) ||
- (DPORT_REG_READ(SHA_512_BUSY_REG)!=0)){ }
-}
-/*
-* lock hw engine.
-* this should be called before using engine.
-*/
-int esp_sha_try_hw_lock(WC_ESP32SHA* ctx)
-{
- int ret = 0;
-
- ESP_LOGV(TAG, "enter esp_sha_hw_lock");
-
- /* Init mutex */
-#if defined(SINGLE_THREADED)
- if(ctx->mode == ESP32_SHA_INIT) {
- if(!InUse) {
- ctx->mode = ESP32_SHA_HW;
- InUse = 1;
- } else {
- ctx->mode = ESP32_SHA_SW;
- }
- } else {
- /* this should not happens */
- ESP_LOGE(TAG, "unexpected error in esp_sha_try_hw_lock.");
- return -1;
- }
-#else
- if(espsha_CryptHwMutexInit == 0){
- ret = esp_CryptHwMutexInit(&sha_mutex);
- if(ret == 0) {
- espsha_CryptHwMutexInit = 1;
- } else {
- ESP_LOGE(TAG, " mutex initialization failed.");
- ctx->mode = ESP32_SHA_SW;
- return 0;
- }
- }
- /* check if this sha has been operated as sw or hw, or not yet init */
- if(ctx->mode == ESP32_SHA_INIT){
- /* try to lock the hw engine */
- if(esp_CryptHwMutexLock(&sha_mutex, (TickType_t)0) == 0) {
- ctx->mode = ESP32_SHA_HW;
- } else {
- ESP_LOGI(TAG, "someone used. hw is locked.....");
- ESP_LOGI(TAG, "the rest of operation will use sw implementation for this sha");
- ctx->mode = ESP32_SHA_SW;
- return 0;
- }
- } else {
- /* this should not happens */
- ESP_LOGE(TAG, "unexpected error in esp_sha_try_hw_lock.");
- return -1;
- }
-#endif
- /* Enable SHA hardware */
- periph_module_enable(PERIPH_SHA_MODULE);
-
- ESP_LOGV(TAG, "leave esp_sha_hw_lock");
- return ret;
-}
-/*
-* release hw engine
-*/
-void esp_sha_hw_unlock( void )
-{
- ESP_LOGV(TAG, "enter esp_sha_hw_unlock");
-
- /* Disable AES hardware */
- periph_module_disable(PERIPH_SHA_MODULE);
-#if defined(SINGLE_THREADED)
- InUse = 0;
-#else
- /* unlock hw engine for next use */
- esp_CryptHwMutexUnLock(&sha_mutex);
-#endif
- ESP_LOGV(TAG, "leave esp_sha_hw_unlock");
-}
-/*
-* start sha process by using hw engine
-*/
-static void esp_sha_start_process(WC_ESP32SHA* sha, word32 address)
-{
- ESP_LOGV(TAG, "enter esp_sha_start_process");
-
- if(sha->isfirstblock){
- /* start first message block */
- DPORT_REG_WRITE(address, 1);
- sha->isfirstblock = 0;
- } else {
- /* CONTINU_REG */
- DPORT_REG_WRITE(address + CONTINUE_REG_OFFSET , 1);
- }
-
- ESP_LOGV(TAG, "leave esp_sha_start_process");
-}
-/*
-* process message block
-*/
-static void esp_process_block(WC_ESP32SHA* ctx, word32 address,
- const word32* data, word32 len)
-{
- int i;
-
- ESP_LOGV(TAG, "enter esp_process_block");
-
- /* check if there are any busy engine */
- esp_wait_until_idle();
- /* load message data into hw */
- for(i=0;i<((len)/(sizeof(word32)));++i){
- DPORT_REG_WRITE(SHA_TEXT_BASE+(i*sizeof(word32)),*(data+i));
- }
- /* notify hw to start process */
- esp_sha_start_process(ctx, address);
-
- ESP_LOGV(TAG, "leave esp_process_block");
-}
-/*
-* retrieve sha digest from memory
-*/
-static void esp_digest_state(WC_ESP32SHA* ctx, byte* hash, enum SHA_TYPE sha_type)
-{
- /* registers */
- word32 SHA_LOAD_REG = SHA_1_LOAD_REG;
- word32 SHA_BUSY_REG = SHA_1_BUSY_REG;
-
- ESP_LOGV(TAG, "enter esp_digest_state");
-
- /* sanity check */
- if(sha_type == SHA_INVALID) {
- ESP_LOGE(TAG, "unexpected error. sha_type is invalid.");
- return;
- }
-
- SHA_LOAD_REG += (sha_type << 4);
- SHA_BUSY_REG += (sha_type << 4);
-
- if(ctx->isfirstblock == 1){
- /* no hardware use yet. Nothing to do yet */
- return ;
- }
-
- /* wait until idle */
- esp_wait_until_idle();
-
- /* LOAD final digest */
- DPORT_REG_WRITE(SHA_LOAD_REG, 1);
- /* wait until done */
- while(DPORT_REG_READ(SHA_BUSY_REG) == 1){ }
-
- esp_dport_access_read_buffer((word32*)(hash), SHA_TEXT_BASE,
- esp_sha_digest_size(sha_type)/sizeof(word32));
-
-#if defined(WOLFSSL_SHA512) || defined(WOLFSSL_SHA384)
- if(sha_type==SHA2_384||sha_type==SHA2_512) {
- word32 i;
- word32* pwrd1 = (word32*)(hash);
- /* swap value */
- for(i = 0; i <WC_SHA512_DIGEST_SIZE/4; i+=2 ) {
- pwrd1[i] ^= pwrd1[i+1];
- pwrd1[i+1]^= pwrd1[i];
- pwrd1[i] ^= pwrd1[i+1];
- }
- }
-#endif
-
- ESP_LOGV(TAG, "leave esp_digest_state");
-}
-
-#ifndef NO_SHA
-/*
-* sha1 process
-*/
-int esp_sha_process(struct wc_Sha* sha, const byte* data)
-{
- int ret = 0;
-
- ESP_LOGV(TAG, "enter esp_sha_process");
-
- word32 SHA_START_REG = SHA_1_START_REG;
-
- esp_process_block(&sha->ctx, SHA_START_REG, (const word32*)data,
- WC_SHA_BLOCK_SIZE);
-
- ESP_LOGV(TAG, "leave esp_sha_process");
- return ret;
-}
-/*
-* retrieve sha1 digest
-*/
-int esp_sha_digest_process(struct wc_Sha* sha, byte blockproc)
-{
- int ret = 0;
-
- ESP_LOGV(TAG, "enter esp_sha_digest_process");
-
- if(blockproc) {
- word32 SHA_START_REG = SHA_1_START_REG;
-
- esp_process_block(&sha->ctx, SHA_START_REG, sha->buffer,
- WC_SHA_BLOCK_SIZE);
- }
-
- esp_digest_state(&sha->ctx, (byte*)sha->digest, SHA1);
-
- ESP_LOGV(TAG, "leave esp_sha_digest_process");
-
- return ret;
-}
-#endif /* NO_SHA */
-
-
-#ifndef NO_SHA256
-/*
-* sha256 process
-*/
-int esp_sha256_process(struct wc_Sha256* sha, const byte* data)
-{
- int ret = 0;
- word32 SHA_START_REG = SHA_1_START_REG;
-
- ESP_LOGV(TAG, "enter esp_sha256_process");
-
- /* start register offset */
- SHA_START_REG += (SHA2_256 << 4);
-
- esp_process_block(&sha->ctx, SHA_START_REG, (const word32*)data,
- WC_SHA256_BLOCK_SIZE);
-
- ESP_LOGV(TAG, "leave esp_sha256_process");
-
- return ret;
-}
-/*
-* retrieve sha256 digest
-*/
-int esp_sha256_digest_process(struct wc_Sha256* sha, byte blockproc)
-{
- int ret = 0;
-
- ESP_LOGV(TAG, "enter esp_sha256_digest_process");
-
- if(blockproc) {
- word32 SHA_START_REG = SHA_1_START_REG + (SHA2_256 << 4);
-
- esp_process_block(&sha->ctx, SHA_START_REG, sha->buffer,
- WC_SHA256_BLOCK_SIZE);
- }
-
- esp_digest_state(&sha->ctx, (byte*)sha->digest, SHA2_256);
-
- ESP_LOGV(TAG, "leave esp_sha256_digest_process");
- return ret;
-}
-#endif /* NO_SHA256 */
-
-#if defined(WOLFSSL_SHA512) || defined(WOLFSSL_SHA384)
-/*
-* sha512 proess. this is used for sha384 too.
-*/
-void esp_sha512_block(struct wc_Sha512* sha, const word32* data, byte isfinal)
-{
- enum SHA_TYPE sha_type = sha->ctx.sha_type;
- word32 SHA_START_REG = SHA_1_START_REG;
-
- ESP_LOGV(TAG, "enter esp_sha512_block");
- /* start register offset */
- SHA_START_REG += (sha_type << 4);
-
- if(sha->ctx.mode == ESP32_SHA_SW){
- ByteReverseWords64(sha->buffer, sha->buffer,
- WC_SHA512_BLOCK_SIZE);
- if(isfinal){
- sha->buffer[WC_SHA512_BLOCK_SIZE / sizeof(word64) - 2] = sha->hiLen;
- sha->buffer[WC_SHA512_BLOCK_SIZE / sizeof(word64) - 1] = sha->loLen;
- }
-
- } else {
- ByteReverseWords((word32*)sha->buffer, (word32*)sha->buffer,
- WC_SHA512_BLOCK_SIZE);
- if(isfinal){
- sha->buffer[WC_SHA512_BLOCK_SIZE / sizeof(word64) - 2] =
- rotlFixed64(sha->hiLen, 32U);
- sha->buffer[WC_SHA512_BLOCK_SIZE / sizeof(word64) - 1] =
- rotlFixed64(sha->loLen, 32U);
- }
-
- esp_process_block(&sha->ctx, SHA_START_REG, data, WC_SHA512_BLOCK_SIZE);
- }
- ESP_LOGV(TAG, "leave esp_sha512_block");
-}
-/*
-* sha512 process. this is used for sha384 too.
-*/
-int esp_sha512_process(struct wc_Sha512* sha)
-{
- word32 *data = (word32*)sha->buffer;
-
- ESP_LOGV(TAG, "enter esp_sha512_process");
-
- esp_sha512_block(sha, data, 0);
-
- ESP_LOGV(TAG, "leave esp_sha512_process");
- return 0;
-}
-/*
-* retrieve sha512 digest. this is used for sha384 too.
-*/
-int esp_sha512_digest_process(struct wc_Sha512* sha, byte blockproc)
-{
- ESP_LOGV(TAG, "enter esp_sha512_digest_process");
-
- if(blockproc) {
- word32* data = (word32*)sha->buffer;
-
- esp_sha512_block(sha, data, 1);
- }
- if(sha->ctx.mode != ESP32_SHA_SW)
- esp_digest_state(&sha->ctx, (byte*)sha->digest, sha->ctx.sha_type);
-
- ESP_LOGV(TAG, "leave esp_sha512_digest_process");
- return 0;
-}
-#endif /* WOLFSSL_SHA512 || WOLFSSL_SHA384 */
-#endif /* WOLFSSL_ESP32WROOM32_CRYPT */
-#endif /* !defined(NO_SHA) ||... */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_util.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_util.c
deleted file mode 100644
index b501b5ea6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Espressif/esp32_util.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* esp32_util.c
- *
- * Copyright (C) 2006-2020 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 <wolfssl/wolfcrypt/settings.h>
-
-#if defined(WOLFSSL_ESP32WROOM32_CRYPT) && \
- (!defined(NO_AES) || !defined(NO_SHA) || !defined(NO_SHA256) ||\
- defined(WOLFSSL_SHA384) || defined(WOLFSSL_SHA512))
-
-#include <wolfssl/wolfcrypt/wc_port.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-
-int esp_CryptHwMutexInit(wolfSSL_Mutex* mutex) {
- return wc_InitMutex(mutex);
-}
-
-int esp_CryptHwMutexLock(wolfSSL_Mutex* mutex, TickType_t xBlockTime) {
-#ifdef SINGLE_THREADED
- return wc_LockMutex(mutex);
-#else
- return ((xSemaphoreTake( *mutex, xBlockTime ) == pdTRUE) ? 0 : BAD_MUTEX_E);
-#endif
-}
-
-int esp_CryptHwMutexUnLock(wolfSSL_Mutex* mutex) {
- return wc_UnLockMutex(mutex);
-}
-
-#endif
-
-#ifdef WOLFSSL_ESP32WROOM32_CRYPT_DEBUG
-
-#include "esp_timer.h"
-#include "esp_log.h"
-
-static uint64_t startTime = 0;
-
-
-void wc_esp32TimerStart()
-{
- startTime = esp_timer_get_time();
-}
-
-uint64_t wc_esp32elapsedTime()
-{
- /* return elapsed time since wc_esp32AesTimeStart() is called in us */
- return esp_timer_get_time() - startTime;
-}
-
-#endif /*WOLFSSL_ESP32WROOM32_CRYPT_DEBUG */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/README.md b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/README.md
deleted file mode 100644
index ca60bc574..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/README.md
+++ /dev/null
@@ -1,176 +0,0 @@
-# TSIP FIT Module port
-Support for TSIP FIT driver for symmetric AES, SHA1/SHA256 hardware acceleration and TLS-linked capability including Root CA, the server certificate or intermediate certificate verification.
-
-## Overview
-Renesas TSIP FIT module with wolfSSL by setting *WOLFSSL_RENESAS_TSIP* definition.
-
-Including the following examples:
-
-* simple tls_client/tls_server
-* crypt test
-* crypt benchmark
-
- The *user_settings.h* file enables some of the hardened settings.
-
-## Requirements
-### 1. [Renesas TSIP FIT module](https://www.renesas.com/us/en/products/software-tools/software-os-middleware-driver/security-crypto/trusted-secure-ip-driver.html)
-[FIT module](https://www.renesas.com/us/en/products/software-tools/software-os-middleware-driver/software-package/fit.html)
-Note : The included example program is tested with <u>TSIP FIT version **1.06**</u>.
-
-### 2. [e2studio](https://www.renesas.com/us/en/products/software-tools/tools/ide/e2studio.html)
-
-### 3. Evaluation Board that supports TSIP
-Note : The included example program is tested with [GR-ROSE](http://gadget.renesas.com/en/product/rose.html), which is classified to RX65N.
-
-## Setup and Build wolfSSL library
- 1. Uncomment out #define WOLFSSL_RENESAS_TSIP in /path/to/wolfssl/wolfssl/wolfcrypt/settings.h
- Uncomment out #define WOLFSSL_RENESAS_RX65N in /path/to/wolfssl/wolfssl/wolfcrypt/settings.h
- 2. Open a project file at /path/to/wolfssl/IDE/Renesas/e2studio/Projects/wolfssl/ by e2studio and build to create wolfssl library
-Note : Generating FIT module source files in advance are required to compile wolfSSL when enabling WOLFSSL_RENESAS_TSIP and WOLFSSL_RENESAS_RX65N. Please see for creating FIT module files at "Setup and Build and example program" in this readme below.
-
-To disable portions of the hardware acceleration you can optionally define:
-
-```
-/* Disabled SHA acceleration */
-#define NO_WOLFSSL_RENESAS_TSIP_CRYPT_HASH
-/* Disabled TLS-linked acceleration */
-#define NO_WOLFSSL_RENESAS_TSIP_TLS_SESSION
-```
-### Benchmarks
-**Software only implementation:**
-*block cipher*
-```
-RNG 200 KB took 1.099 seconds, 182.000 KB/s
-SHA 1 MB took 1.005 seconds, 1.166 MB/s
-SHA-256 425 KB took 1.038 seconds, 409.520 KB/s
-```
-
-*TLS establishment time*
-```
-TLS_RSA_WITH_AES_128_CBC_SHA : 0.651 (s)
-TLS_RSA_WITH_AES_128_CBC_SHA256 : 0.651 (s)
-TLS_RSA_WITH_AES_256_CBC_SHA : 0.642 (s)
-TLS_RSA_WITH_AES_256_CBAC_SHA256 : 0.662 (s)
-TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 : 2.050 (s)
-```
-**Hardware acceleration:**
-*block cipher*
-```
-RNG 1 MB took 1.011 seconds, 1.038 MB/s
-SHA 12 MB took 1.001 seconds, 11.515 MB/s
-SHA-256 13 MB took 1.001 seconds, 12.900 MB/s
-```
-*TLS establishment time with TLS-linked capability*
-*Perform full TlS-linked capability*
-```
-TLS_RSA_WITH_AES_128_CBC_SHA : 0.141 (s)
-TLS_RSA_WITH_AES_128_CBC_SHA256 : 0.141 (s)
-TLS_RSA_WITH_AES_256_CBC_SHA : 0.141 (s)
-TLS_RSA_WITH_AES_256_CBAC_SHA256 : 0.144 (s)
-```
-*Perform certificate verification by TSIP TLS-linked API*
-```
-TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 : 1.721 (s)
-```
-Condition:
-Renesas : e2Studio v7.4.0
-ToolChain : Renesas CCRX version 3.00.00
-TSIP FIT : version 1.0.6
-Board : [GR-ROSE](http://gadget.renesas.com/en/product/rose.html)
-wolfSSL : 4.1.0
-
-
-## Setup and Build an example program
-An example program expects the following FIT modules:
-
-* r_bsp
-* r_cmt_rx
-* r_config
-* r_ether_rx
-* r_sys_time_rx
-* r_t4_driver_rx
-* r_t4_rx
-* r_tsip_rx
-
-These needed source files can be generated by creating a dummy project including Renesas Smart Configurator as steps below:
-
- 1. Create a dummy project including Renesas Smart Configurator for your evaluation board type
- 2. Open Smart Configurator and add FIT modules above
- It would need to expand *User Stack Size* property and *Heap Size* of r_bsp.
- Change IP ADDRESS and PORT NUMBER in r_t4_rx_config.h
- `#define T4_CFG_FIXED_IP_ADDRESS_CH0 192,168,1,33`
- `#define T4_CFG_TCP_REPID1_PORT_NUMBER 11111`
- Note: It would need to modify other configuration base on evaluation board.
-
- When using GR-ROSE, you can choose "GR-ROSE" from "board" tab and "board" drop-down list and then is able to follow settings below:
-
- Go to component tab and open r_ether_rx properties:
- Ethernet interface : RMII
- The register bus of PHY0 for ETHER0/1: Use ETHER0
- Resource, ETHERC: Check ETHERC0_RMII
-
- Go to component tab and open r_t4_rx properties:
- Enable/Disable DHCP function : 0
- IP address for ch0, when DHCP disable : 192,168,1,33
- TCP REPID1 prot number : 11111
-
- Go to pins tab and select ethernet controller
- Check to use pins
-
- 3. Generate source code
-Now, it is able to copy these FIT modules into an example project.
- 4. Make "smc_gen" folder under /path/to/wolfssl/IDE/Renesas/e2studio/Projects/test/src/
- 5. Copy the FIT modules into the folder that is created at step 4.
- 6. Open an example project file at /path/to/wolfssl/IDE/Renesas/e2studio/Projects/test/ by e2studio
- 7. Enable a macro definition in /path/to/wolfssl/IDE/Renesas/e2studio/Projects/test/src/wolfssl_demo.h for application type
- `#define CRYPT_TEST // enable crypt test`
- `#define BENCHMARK // enable benchmark application`
- `#define TLS_CLIENT // enable simple tls client application`
- `#define TLS_SERVER // enable simple tls server application`
- `#define USE_TSIP_TLS // to inform user key and flash keying, when using TSIP`
- Note: CRYPT_TEST and BENCHMARK can be enabled at the same time. TLS_CLIENT and TLS_SERVER cannot be enabled together other definitions.
- 7. Setup debug configuration based on your debug hardware
-
-## Run client/server program on the device
-When testing the embedded client or server on the device, it is recommended to test against one of the standard wolfSSL example application running on a desktop machine.
-
-
-For the embedded client, an example server commands for running on a desktop machine, IP address 192.168.1.45, is as follows:
-`$./example/server/server -b -d -i`
-
-
-For the embedded server, an example client commands for running on a desktop machine is as follows:
-`$./example/client/client -h 192.168.1.33 -p 11111`
-
-## Modify an example program
-To use own TSIP keys for TSIP TLS-linked API use, it needs own flash keyring, PSS signed signature and RSA key.
-
-### Create flash keyring and use it in an example program
- 1. Please follow the instruction at TSIP manual, chapter 7. Key Data Operations.
- 2. Copy and paste s_flash[] data to s_flash[] data in example-program/key_data.c
-`const uint32_t s_flash[] =`
-
-### Create RSA key pair for signing Root CA verification and use them in an example program
- To use TSIP TLS-linked APIs, it needs RSA key pair and Root CA certificate bundle signature by RSA 2048 PSS with SHA256.
- Shell and Perl script program in /path/to/wolfssl/IDE/Renesas/e2studio/Projects/tools/ can be used for the purpose.
-
- * generate_rsa_keypair.sh : generate RSA 2048 bit key pair. Show modulus and public exponent when specifying "-s" option
- * rsa_pss_sign.sh : sign the file by the specified private key
- * genhexbuf.pl : generate C header file including a byte array generated from the specified file in the script
-
- Modulus and public exponent showed by `generate_rsa_keypair.sh` can be used for input date to Renesas Secure Flash Programmer to generate encrypted RSA keys for TSIP TLS-linked API use. Please follow the instruction about how to generate RSA keys in the TSIP manual.
-
-
- Generated byte array of signed signature by genhexbuf.pl can be replaced signature data in key_data.c of an example program.
-
-
- Encrypted RSA key and generated byte array of signed signature need to be informed wolfSSL library before loading CA certification. Please see SetTsipTlskey() function an example program about how to inform them.
-
-### Coding
-
-In your application you must include <wolfssl/wolfcrypt/settings.h> before any other wolfSSL headers. If building the sources directly we recommend defining `WOLFSSL_USER_SETTINGS` and adding your own `user_settings.h` file. You can find a good reference for this in `/path/to/Renesas/e2studio/Projects/common/user_settings.h`.
-
-## Support
- For question please email [support@wolfssl.com]
-
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/renesas_tsip_aes.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/renesas_tsip_aes.c
deleted file mode 100644
index ce04ff54f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/renesas_tsip_aes.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/* renesas_tsip_aes.c
- *
- * Copyright (C) 2006-2020 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 <string.h>
-#include <stdio.h>
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-#include <wolfssl/wolfcrypt/settings.h>
-#include <stdio.h>
-
-#ifndef NO_AES
-
-#if defined(WOLFSSL_RENESAS_TSIP_CRYPT) && \
- !defined(NO_WOLFSSL_RENESAS_TSIP_CRYPT_AES)
-
-#include <wolfssl/wolfcrypt/wc_port.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-
-#include <wolfssl/wolfcrypt/aes.h>
-#include "wolfssl/wolfcrypt/port/Renesas/renesas-tsip-crypt.h"
-
-struct Aes;
-
-int wc_tsip_AesCbcEncrypt(struct Aes* aes, byte* out, const byte* in, word32 sz)
-{
- tsip_aes_handle_t _handle;
- word32 ret;
- word32 blocks = (sz / AES_BLOCK_SIZE);
- uint32_t dataLength;
- byte *iv;
-
- if ((in == NULL) || (out == NULL) || (aes == NULL))
- return BAD_FUNC_ARG;
-
- /* while doing TLS handshake, TSIP driver keeps true-key and iv *
- * on the device. iv is dummy */
- iv = (uint8_t*)aes->reg;
-
- if((ret = tsip_hw_lock()) != 0){
- WOLFSSL_MSG("Failed to lock");
- return ret;
- }
-
- if (aes->ctx.keySize == 16) {
- ret = R_TSIP_Aes128CbcEncryptInit(&_handle, &aes->ctx.tsip_keyIdx, iv);
- } else if (aes->ctx.keySize == 32) {
- ret = R_TSIP_Aes256CbcEncryptInit(&_handle, &aes->ctx.tsip_keyIdx, iv);
- } else {
- tsip_hw_unlock();
- return -1;
- }
-
- while (ret == TSIP_SUCCESS && blocks--) {
-
- if (aes->ctx.keySize == 16)
- ret = R_TSIP_Aes128CbcEncryptUpdate(&_handle, (uint8_t*)in,
- (uint8_t*)out, (uint32_t)AES_BLOCK_SIZE);
- else
- ret = R_TSIP_Aes256CbcEncryptUpdate(&_handle, (uint8_t*)in,
- (uint8_t*)out, (uint32_t)AES_BLOCK_SIZE);
-
- in += AES_BLOCK_SIZE;
- out += AES_BLOCK_SIZE;
- }
-
- if (ret == TSIP_SUCCESS) {
- if (aes->ctx.keySize == 16) {
- ret = R_TSIP_Aes128CbcEncryptFinal(&_handle, out, &dataLength);
- } else {
- ret = R_TSIP_Aes256CbcEncryptFinal(&_handle, out, &dataLength);
- }
- } else {
- WOLFSSL_MSG("TSIP AES CBC encryption failed");
- ret = -1;
- }
-
- tsip_hw_unlock();
- return ret;
-}
-
-int wc_tsip_AesCbcDecrypt(struct Aes* aes, byte* out, const byte* in, word32 sz)
-{
- tsip_aes_handle_t _handle;
- word32 ret;
- word32 blocks = (sz / AES_BLOCK_SIZE);
- uint32_t dataLength;
- byte *iv;
-
- if ((in == NULL) || (out == NULL) || (aes == NULL))
- return BAD_FUNC_ARG;
-
- iv = (uint8_t*)aes->reg;
-
- if((ret = tsip_hw_lock()) != 0){
- WOLFSSL_MSG("Failed to lock");
- return ret;
- }
-
- if (aes->ctx.keySize == 16) {
- ret = R_TSIP_Aes128CbcDecryptInit(&_handle, &aes->ctx.tsip_keyIdx, iv);
- } else if (aes->ctx.keySize == 32) {
- ret = R_TSIP_Aes256CbcDecryptInit(&_handle, &aes->ctx.tsip_keyIdx, iv);
- } else {
- tsip_hw_unlock();
- return -1;
- }
-
- while (ret == TSIP_SUCCESS && blocks--) {
-
- if (aes->ctx.keySize == 16)
- ret = R_TSIP_Aes128CbcDecryptUpdate(&_handle, (uint8_t*)in,
- (uint8_t*)out, (uint32_t)AES_BLOCK_SIZE);
- else
- ret = R_TSIP_Aes256CbcDecryptUpdate(&_handle, (uint8_t*)in,
- (uint8_t*)out, (uint32_t)AES_BLOCK_SIZE);
-
- in += AES_BLOCK_SIZE;
- out += AES_BLOCK_SIZE;
- }
-
- if (ret == TSIP_SUCCESS) {
- if (aes->ctx.keySize == 16)
- ret = R_TSIP_Aes128CbcDecryptFinal(&_handle, out, &dataLength);
- else
- ret = R_TSIP_Aes256CbcDecryptFinal(&_handle, out, &dataLength);
- } else {
- WOLFSSL_MSG("TSIP AES CBC decryption failed");
- ret = -1;
- }
-
- tsip_hw_unlock();
- return ret;
-}
-
-#endif /* WOLFSSL_RENESAS_TSIP_CRYPT */
-#endif /* NO_AES */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/renesas_tsip_sha.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/renesas_tsip_sha.c
deleted file mode 100644
index b12d8eee9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/renesas_tsip_sha.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/* renesas_tsip_sha.c
- *
- * Copyright (C) 2006-2020 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 <string.h>
-#include <stdio.h>
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-#include <wolfssl/wolfcrypt/settings.h>
-
-#if !defined(NO_SHA) || !defined(NO_SHA256)
-
-#include <wolfssl/wolfcrypt/logging.h>
-
-#if defined(WOLFSSL_RENESAS_TSIP_CRYPT)
-
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/port/Renesas/renesas-tsip-crypt.h>
-
-#if !defined(NO_SHA)
-#include <wolfssl/wolfcrypt/sha.h>
-
-static void TSIPHashFree(wolfssl_TSIP_Hash* hash)
-{
- if (hash == NULL)
- return;
-
- if (hash->msg != NULL) {
- XFREE(hash->msg, hash->heap, DYNAMIC_TYPE_TMP_BUFFER);
- hash->msg = NULL;
- }
-}
-
-static int TSIPHashInit(wolfssl_TSIP_Hash* hash, void* heap, int devId,
- word32 sha_type)
-{
- if (hash == NULL) {
- return BAD_FUNC_ARG;
- }
-
- (void)devId;
- XMEMSET(hash, 0, sizeof(wolfssl_TSIP_Hash));
-
- hash->heap = heap;
- hash->len = 0;
- hash->used = 0;
- hash->msg = NULL;
- hash->sha_type = sha_type;
-
- return 0;
-}
-
-static int TSIPHashUpdate(wolfssl_TSIP_Hash* hash, const byte* data, word32 sz)
-{
- if (hash == NULL || (sz > 0 && data == NULL)) {
- return BAD_FUNC_ARG;
- }
-
- if (hash->len < hash->used + sz) {
- if (hash->msg == NULL) {
- hash->msg = (byte*)XMALLOC(hash->used + sz, hash->heap,
- DYNAMIC_TYPE_TMP_BUFFER);
- } else {
-#ifdef FREERTOS
- byte* pt = (byte*)XMALLOC(hash->used + sz, hash->heap,
- DYNAMIC_TYPE_TMP_BUFFER);
- if (pt == NULL) {
- return MEMORY_E;
- }
- XMEMCPY(pt, hash->msg, hash->used);
- XFREE(hash->msg, hash->heap, DYNAMIC_TYPE_TMP_BUFFER);
- hash->msg = NULL;
- hash->msg = pt;
-#else
- byte* pt = (byte*)XREALLOC(hash->msg, hash->used + sz, hash->heap,
- DYNAMIC_TYPE_TMP_BUFFER);
- if (pt == NULL) {
- return MEMORY_E;
- }
- hash->msg = pt;
-#endif
- }
- if (hash->msg == NULL) {
- return MEMORY_E;
- }
- hash->len = hash->used + sz;
- }
- XMEMCPY(hash->msg + hash->used, data , sz);
- hash->used += sz;
-
- return 0;
-}
-
-static int TSIPHashFinal(wolfssl_TSIP_Hash* hash, byte* out, word32 outSz)
-{
- int ret;
- void* heap;
- tsip_sha_md5_handle_t handle;
- uint32_t sz;
-
- e_tsip_err_t (*Init)(tsip_sha_md5_handle_t*);
- e_tsip_err_t (*Update)(tsip_sha_md5_handle_t*, uint8_t*, uint32_t);
- e_tsip_err_t (*Final )(tsip_sha_md5_handle_t*, uint8_t*, uint32_t*);
-
- if (hash == NULL || out == NULL) {
- return BAD_FUNC_ARG;
- }
-
- if (hash->sha_type == TSIP_SHA1) {
- Init = R_TSIP_Sha1Init;
- Update = R_TSIP_Sha1Update;
- Final = R_TSIP_Sha1Final;
- } else if (hash->sha_type == TSIP_SHA256) {
- Init = R_TSIP_Sha256Init;
- Update = R_TSIP_Sha256Update;
- Final = R_TSIP_Sha256Final;
- } else
- return BAD_FUNC_ARG;
-
- heap = hash->heap;
-
- tsip_hw_lock();
-
- if (Init(&handle) == TSIP_SUCCESS) {
- ret = Update(&handle, (uint8_t*)hash->msg, hash->used);
- if (ret == TSIP_SUCCESS) {
- ret = Final(&handle, out, (uint32_t*)&sz);
- if (ret != TSIP_SUCCESS || sz != outSz) {
- return ret;
- }
- }
- }
- tsip_hw_unlock();
-
- TSIPHashFree(hash);
- return TSIPHashInit(hash, heap, 0, hash->sha_type);
-}
-
-static int TSIPHashGet(wolfssl_TSIP_Hash* hash, byte* out, word32 outSz)
-{
- int ret;
- tsip_sha_md5_handle_t handle;
- uint32_t sz;
-
- e_tsip_err_t (*Init)(tsip_sha_md5_handle_t*);
- e_tsip_err_t (*Update)(tsip_sha_md5_handle_t*, uint8_t*, uint32_t);
- e_tsip_err_t (*Final )(tsip_sha_md5_handle_t*, uint8_t*, uint32_t*);
-
- if (hash == NULL || out == NULL) {
- return BAD_FUNC_ARG;
- }
-
- if (hash->sha_type == TSIP_SHA1) {
- Init = R_TSIP_Sha1Init;
- Update = R_TSIP_Sha1Update;
- Final = R_TSIP_Sha1Final;
- } else if (hash->sha_type == TSIP_SHA256) {
- Init = R_TSIP_Sha256Init;
- Update = R_TSIP_Sha256Update;
- Final = R_TSIP_Sha256Final;
- } else
- return BAD_FUNC_ARG;
-
- tsip_hw_lock();
-
- if (Init(&handle) == TSIP_SUCCESS) {
- ret = Update(&handle, (uint8_t*)hash->msg, hash->used);
- if (ret == TSIP_SUCCESS) {
- ret = Final(&handle, out, &sz);
- if (ret != TSIP_SUCCESS || sz != outSz) {
- return ret;
- }
- }
- }
-
- tsip_hw_unlock();
-
- return 0;
-}
-
-static int TSIPHashCopy(wolfssl_TSIP_Hash* src, wolfssl_TSIP_Hash* dst)
-{
- if (src == NULL || dst == NULL) {
- return BAD_FUNC_ARG;
- }
-
- XMEMCPY(dst, src, sizeof(wolfssl_TSIP_Hash));
-
- if (src->len > 0 && src->msg != NULL) {
- dst->msg = (byte*)XMALLOC(src->len, dst->heap, DYNAMIC_TYPE_TMP_BUFFER);
- if (dst->msg == NULL) {
- return MEMORY_E;
- }
- XMEMCPY(dst->msg, src->msg, src->len);
- }
-
- return 0;
-}
- /* */
-int wc_InitSha_ex(wc_Sha* sha, void* heap, int devId)
-{
- return TSIPHashInit(sha, heap, devId, TSIP_SHA1);
-}
-
-int wc_ShaUpdate(wc_Sha* sha, const byte* in, word32 sz)
-{
- return TSIPHashUpdate(sha, in, sz);
-}
-
-int wc_ShaFinal(wc_Sha* sha, byte* hash)
-{
- return TSIPHashFinal(sha, hash, WC_SHA_DIGEST_SIZE);
-}
-
-int wc_ShaGetHash(wc_Sha* sha, byte* hash)
-{
- return TSIPHashGet(sha, hash, WC_SHA_DIGEST_SIZE);
-}
-
-int wc_ShaCopy(wc_Sha256* src, wc_Sha256* dst)
-{
- return TSIPHashCopy(src, dst);
-}
-#endif /* !NO_SHA */
-
-#if !defined(NO_SHA256)
-#include <wolfssl/wolfcrypt/sha256.h>
-
-/* */
-int wc_InitSha256_ex(wc_Sha256* sha, void* heap, int devId)
-{
- return TSIPHashInit(sha, heap, devId, TSIP_SHA256);
-}
-
-int wc_Sha256Update(wc_Sha256* sha, const byte* in, word32 sz)
-{
- return TSIPHashUpdate(sha, in, sz);
-}
-
-int wc_Sha256Final(wc_Sha256* sha, byte* hash)
-{
- return TSIPHashFinal(sha, hash, WC_SHA256_DIGEST_SIZE);
-}
-
-int wc_Sha256GetHash(wc_Sha256* sha, byte* hash)
-{
- return TSIPHashGet(sha, hash, WC_SHA256_DIGEST_SIZE);
-}
-
-int wc_Sha256Copy(wc_Sha256* src, wc_Sha256* dst)
-{
- return TSIPHashCopy(src, dst);
-}
-#endif /* !NO_SHA256 */
-#endif /* WOLFSSL_RENESAS_TSIP_CRYPT */
-#endif /* #if !defined(NO_SHA) || !defined(NO_SHA256) */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/renesas_tsip_util.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/renesas_tsip_util.c
deleted file mode 100644
index e3cd7ad24..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/Renesas/renesas_tsip_util.c
+++ /dev/null
@@ -1,719 +0,0 @@
-/* renesas_tsip_util.c
- *
- * Copyright (C) 2006-2020 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 <wolfssl/wolfcrypt/settings.h>
-
-#if defined(WOLFSSL_RENESAS_TSIP)
-
-#include <wolfssl/wolfcrypt/wc_port.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-
-#include <wolfssl/wolfcrypt/port/Renesas/renesas-tsip-crypt.h>
-#include <wolfssl/wolfcrypt/memory.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/aes.h>
-#include <wolfssl/ssl.h>
-#include <wolfssl/internal.h>
-
-#include <stdio.h>
-/* mutex */
-wolfSSL_Mutex tsip_mutex;
-static int tsip_CryptHwMutexInit_ = 0;
-
-/* ./ca-cert.der.sign, */
-/* expect to have these variables defined at user application */
-extern uint32_t s_flash[];
-extern uint32_t s_inst1[R_TSIP_SINST_WORD_SIZE];
-extern uint32_t s_inst2[R_TSIP_SINST2_WORD_SIZE];
-static const byte *ca_cert_sig;
-
-/* user key */
-static tsip_key_data g_user_key_info;
-/* tsip only keep one encrypted ca public key */
-#if defined(WOLFSSL_RENESAS_TSIP_TLS)
-static uint32_t g_encrypted_publicCA_key[R_TSIP_SINST_WORD_SIZE];
-static uint32_t g_CAscm_Idx; /* index of CM table */
-#endif
-
-static int tsip_CryptHwMutexInit(wolfSSL_Mutex* mutex) {
- return wc_InitMutex(mutex);
-}
-
-static int tsip_CryptHwMutexLock(wolfSSL_Mutex* mutex) {
- return wc_LockMutex(mutex);
-}
-
-static int tsip_CryptHwMutexUnLock(wolfSSL_Mutex* mutex) {
- return wc_UnLockMutex(mutex);
-}
-
-/*
-* lock hw engine.
-* this should be called before using engine.
-*/
-int tsip_hw_lock()
-{
- int ret = 0;
-
- WOLFSSL_MSG("enter esp_sha_hw_lock");
-
- if(tsip_CryptHwMutexInit_ == 0){
- ret = tsip_CryptHwMutexInit(&tsip_mutex);
- if(ret == 0) {
- tsip_CryptHwMutexInit_ = 1;
- } else {
- WOLFSSL_MSG(" mutex initialization failed.");
- return -1;
- }
- }
- if(tsip_CryptHwMutexLock(&tsip_mutex) != 0) {
- /* this should not happens */
- return -1;
- }
-
- WOLFSSL_MSG("leave tsip_sha_try_hw_lock");
- return ret;
-}
-
-/*
-* release hw engine
-*/
-void tsip_hw_unlock( void )
-{
- WOLFSSL_MSG("enter tsip_hw_unlock");
- /* unlock hw engine for next use */
- tsip_CryptHwMutexUnLock(&tsip_mutex);
- WOLFSSL_MSG("leave tsip_hw_unlock");
-}
-/* check if tsip tls functions can be used for the cipher */
-/* cipher0 : in the some cipher suite, */
-/* first byte becomes greater than 0, otherwise 0x00 */
-/* side : CLIENT END or SEVER END */
-int tsip_useable(const struct WOLFSSL *ssl)
-{
- byte cipher0;
- byte cipher;
- byte side;
-
- /* sanity check */
- if (ssl == NULL)
- return BAD_FUNC_ARG;
-
- /* when rsa key index == NULL, tsip isn't used for cert verification. */
- /* in the case, we cannot use TSIP. */
- if (!ssl->peerTsipEncRsaKeyIndex)
- return 0;
-
- /* when enabled Extended Master Secret, we cannot use TSIP. */
- if (ssl->options.haveEMS)
- return 0;
-
- cipher0 = ssl->options.cipherSuite0;
- cipher = ssl->options.cipherSuite;
- side = ssl->options.side;
-
- if (cipher0 > 0x00)
- return 0;
-
- if ((cipher == l_TLS_RSA_WITH_AES_128_CBC_SHA ||
- cipher == l_TLS_RSA_WITH_AES_128_CBC_SHA256 ||
- cipher == l_TLS_RSA_WITH_AES_256_CBC_SHA ||
- cipher == l_TLS_RSA_WITH_AES_256_CBC_SHA256) &&
- side == WOLFSSL_CLIENT_END)
- return 1;
- else
- return 0;
-}
-
-/* check if the g_alreadyVerified CA's key can be used for *
- * peer's certification */
-byte tsip_checkCA(word32 cmIdx)
-{
- return (cmIdx == g_CAscm_Idx? 1:0);
-}
-
-/* check if the root CA has been verified by TSIP, *
- * and it exists in the CM table. */
-byte tsip_rootCAverified( )
-{
- return (g_CAscm_Idx != (uint32_t)-1 ? 1:0);
-}
-
-/* open TSIP driver for use */
-int tsip_Open( ) {
-
- int ret;
-
- if ((ret = tsip_hw_lock()) == 0) {
- /* open the TSIP */
- ret = R_TSIP_Open((uint32_t*)s_flash, s_inst1, s_inst2);
- if( ret != TSIP_SUCCESS ) {
- WOLFSSL_MSG("RENESAS TSIP Open failed");
- }
-
-#if defined(WOLFSSL_RENESAS_TSIP_TLS)
- /* generate TLS Rsa public key for Certificate verification */
- if (ret == TSIP_SUCCESS && g_user_key_info.encrypted_user_tls_key) {
- ret = R_TSIP_GenerateTlsRsaPublicKeyIndex(
- g_user_key_info.encrypted_session_key,
- g_user_key_info.iv,
- g_user_key_info.encrypted_user_tls_key,
- &g_user_key_info.user_rsa2048_tls_pubindex);
-
- if (ret != TSIP_SUCCESS) {
- WOLFSSL_MSG("R_TSIP_GenerateTlsRsaPublicKeyIndex failed");
- } else {
- /* close once */
- tsip_Close( );
- /* open again with s_inst[] */
- XMEMCPY(s_inst1,
- g_user_key_info.user_rsa2048_tls_pubindex.value,
- sizeof(s_inst1));
- ret = R_TSIP_Open((uint32_t*)s_flash, s_inst1, s_inst2);
- if (ret != TSIP_SUCCESS) {
- WOLFSSL_MSG("R_TSIP_(Re)Open failed");
- }
- /* init vars */
- g_CAscm_Idx = (uint32_t)-1;
- }
- }
-#endif
- /* unlock hw */
- tsip_hw_unlock();
- } else
- WOLFSSL_MSG("Failed to lock tsip hw \n");
-
- return ret;
-}
-
-/* close TSIP driver */
-void tsip_Close( ) {
- int ret;
-
- if ((ret = tsip_hw_lock()) == 0) {
- /* close TSIP */
- ret = R_TSIP_Close();
-#if defined(WOLFSSL_RENESAS_TSIP_TLS)
- g_CAscm_Idx = (uint32_t)-1;
-#endif
- /* unlock hw */
- tsip_hw_unlock();
- if( ret != TSIP_SUCCESS ) {
- WOLFSSL_MSG("RENESAS TSIP Close failed");
- }
- } else
- WOLFSSL_MSG("Failed to unlock tsip hw \n");
-}
-
-/* Support functions for TSIP TLS Capability */
-#if defined(WOLFSSL_RENESAS_TSIP_TLS)
-
-/* to inform ca certificate sign */
-/* signature format expects RSA 2048 PSS with SHA256 */
-void tsip_inform_cert_sign(const byte *sign)
-{
- if(sign)
- ca_cert_sig = sign;
-}
-
-/* inform user key */
-/* the function expects to be called from user application */
-/* user has to create these key information by Renesas tool in advance.*/
-void tsip_inform_user_keys(
- byte *encrypted_session_key,
- byte *iv,
- byte *encrypted_user_tls_key
-)
-{
- g_user_key_info.encrypted_session_key = NULL;
- g_user_key_info.iv = NULL;
- g_user_key_info.encrypted_user_tls_key = NULL;
-
- if ( encrypted_session_key ) {
- g_user_key_info.encrypted_session_key = encrypted_session_key;
- }
- if ( iv ) {
- g_user_key_info.iv = iv;
- }
- if ( encrypted_user_tls_key ) {
- g_user_key_info.encrypted_user_tls_key = encrypted_user_tls_key;
- }
-}
-
-#ifndef NO_WOLFSSL_RENESAS_TSIP_TLS_SESSION
-/* convert def to tsip define */
-static byte _tls2tsipdef(byte cipher)
-{
- byte def = R_TSIP_TLS_RSA_WITH_AES_128_CBC_SHA;
- switch(cipher){
- case l_TLS_RSA_WITH_AES_128_CBC_SHA:
- break;
- case l_TLS_RSA_WITH_AES_128_CBC_SHA256:
- def = R_TSIP_TLS_RSA_WITH_AES_128_CBC_SHA256;
- break;
- case l_TLS_RSA_WITH_AES_256_CBC_SHA:
- def = R_TSIP_TLS_RSA_WITH_AES_256_CBC_SHA;
- break;
- case l_TLS_RSA_WITH_AES_256_CBC_SHA256:
- def = R_TSIP_TLS_RSA_WITH_AES_256_CBC_SHA256;
- break;
- default:break;
- }
- return def;
-}
-
-/* Sha1Hmac */
-int tsip_Sha1Hmac(const struct WOLFSSL *ssl, const byte *myInner,
- word32 innerSz, const byte *in, word32 sz, byte *digest,
- word32 verify)
-{
- tsip_hmac_sha_handle_t _handle;
- tsip_hmac_sha_key_index_t key_index;
- int ret;
-
- if ((ssl == NULL) || (myInner == NULL) || (in == NULL) ||
- (digest == NULL))
- return BAD_FUNC_ARG;
-
- if ((ret = tsip_hw_lock()) != 0) {
- WOLFSSL_MSG("hw lock failed\n");
- return ret;
- }
-
- if ( (ssl->options.side == WOLFSSL_CLIENT_END && !verify) ||
- (ssl->options.side == WOLFSSL_SERVER_END && verify) )
- XMEMCPY(key_index.value, ssl->keys.tsip_client_write_MAC_secret,
- sizeof(key_index.value));
- else
- XMEMCPY(key_index.value, ssl->keys.tsip_server_write_MAC_secret,
- sizeof(key_index.value));
-
- ret = R_TSIP_Sha1HmacGenerateInit(&_handle, &key_index);
-
- if (ret == TSIP_SUCCESS)
- ret = R_TSIP_Sha1HmacGenerateUpdate(&_handle, (uint8_t*)myInner,
- (uint32_t)innerSz);
-
- if (ret == TSIP_SUCCESS)
- ret = R_TSIP_Sha1HmacGenerateUpdate(&_handle, (uint8_t*)in, sz);
-
- if (ret == TSIP_SUCCESS)
- ret = R_TSIP_Sha1HmacGenerateFinal(&_handle, digest);
-
- /* unlock hw */
- tsip_hw_unlock();
-
- return ret;
-}
-
-/* Sha256Hmac */
-int tsip_Sha256Hmac(const struct WOLFSSL *ssl, const byte *myInner,
- word32 innerSz, const byte *in, word32 sz, byte *digest,
- word32 verify)
-{
- tsip_hmac_sha_handle_t _handle;
- tsip_hmac_sha_key_index_t key_index;
- int ret;
-
- if ((ssl == NULL) || (myInner == NULL) || (in == NULL) ||
- (digest == NULL))
- return BAD_FUNC_ARG;
-
- if ( (ssl->options.side == WOLFSSL_CLIENT_END && !verify) ||
- (ssl->options.side == WOLFSSL_SERVER_END && verify) )
- XMEMCPY(key_index.value, ssl->keys.tsip_client_write_MAC_secret,
- sizeof(key_index.value));
- else
- XMEMCPY(key_index.value, ssl->keys.tsip_server_write_MAC_secret,
- sizeof(key_index.value));
-
- if ((ret = tsip_hw_lock()) != 0) {
- WOLFSSL_MSG("hw lock failed\n");
- return ret;
- }
-
- ret = R_TSIP_Sha256HmacGenerateInit(&_handle, &key_index);
-
- if (ret == TSIP_SUCCESS)
- ret = R_TSIP_Sha256HmacGenerateUpdate(&_handle, (uint8_t*)myInner,
- innerSz);
-
- if (ret == TSIP_SUCCESS)
- ret = R_TSIP_Sha256HmacGenerateUpdate(&_handle, (uint8_t*)in, sz);
-
- if (ret == TSIP_SUCCESS)
- ret = R_TSIP_Sha256HmacGenerateFinal(&_handle, digest);
-
- /* unlock hw */
- tsip_hw_unlock();
-
- return ret;
-}
-
-/* generate Verify Data based on master secret */
-int tsip_generateVerifyData(const byte *ms, /* master secret */
- const byte *side, const byte *handshake_hash,
- byte *hashes /* out */)
-{
- int ret ;
- uint32_t l_side = R_TSIP_TLS_GENERATE_CLIENT_VERIFY;
-
- if ((ms == NULL) || (side == NULL) || (handshake_hash == NULL) ||
- (hashes == NULL))
- return BAD_FUNC_ARG;
-
- if (XSTRNCMP((const char*)side, (const char*)tls_server, FINISHED_LABEL_SZ)
- == 0)
- {
- l_side = R_TSIP_TLS_GENERATE_SERVER_VERIFY;
- }
-
- if ((ret = tsip_hw_lock()) == 0) {
- ret = R_TSIP_TlsGenerateVerifyData(l_side, (uint32_t*)ms,
- (uint8_t*)handshake_hash, hashes/* out */);
- if (ret != TSIP_SUCCESS) {
- WOLFSSL_MSG("R_TSIP_TlsGenerateSessionKey failed\n");
- }
- }
- /* unlock hw */
- tsip_hw_unlock();
-
- return ret;
-}
-
-/* generate keys for TLS communication */
-int tsip_generateSeesionKey(struct WOLFSSL *ssl)
-{
- int ret;
- Ciphers *enc;
- Ciphers *dec;
- tsip_hmac_sha_key_index_t key_client_mac;
- tsip_hmac_sha_key_index_t key_server_mac;
- tsip_aes_key_index_t key_client_aes;
- tsip_aes_key_index_t key_server_aes;
-
- if (ssl== NULL)
- return BAD_FUNC_ARG;
-
- if ((ret = tsip_hw_lock()) == 0) {
- ret = R_TSIP_TlsGenerateSessionKey(
- _tls2tsipdef(ssl->options.cipherSuite),
- (uint32_t*)ssl->arrays->tsip_masterSecret,
- (uint8_t*)ssl->arrays->clientRandom,
- (uint8_t*)ssl->arrays->serverRandom, &key_client_mac,
- &key_server_mac, &key_client_aes, &key_server_aes,
- NULL, NULL);
- if (ret != TSIP_SUCCESS) {
- WOLFSSL_MSG("R_TSIP_TlsGenerateSessionKey failed\n");
- } else {
- /* succeeded creating session keys */
- /* alloc aes instance for both enc and dec */
- enc = &ssl->encrypt;
- dec = &ssl->decrypt;
-
- if (enc) {
- if (enc->aes == NULL) {
- enc->aes = (Aes*)XMALLOC(sizeof(Aes), ssl->heap,
- DYNAMIC_TYPE_CIPHER);
- if (enc->aes == NULL)
- return MEMORY_E;
- }
-
- XMEMSET(enc->aes, 0, sizeof(Aes));
- }
- if (dec) {
- if (dec->aes == NULL) {
- dec->aes = (Aes*)XMALLOC(sizeof(Aes), ssl->heap,
- DYNAMIC_TYPE_CIPHER);
- if (dec->aes == NULL) {
- if (enc) {
- XFREE(enc->aes, NULL, DYNAMIC_TYPE_CIPHER);
- }
- return MEMORY_E;
- }
- }
-
- XMEMSET(dec->aes, 0, sizeof(Aes));
- }
- /* copy key index into aes */
- if (ssl->options.side == PROVISION_CLIENT) {
- XMEMCPY(&enc->aes->ctx.tsip_keyIdx, &key_client_aes,
- sizeof(key_client_aes));
- XMEMCPY(&dec->aes->ctx.tsip_keyIdx, &key_server_aes,
- sizeof(key_server_aes));
- } else {
- XMEMCPY(&enc->aes->ctx.tsip_keyIdx, &key_server_aes,
- sizeof(key_server_aes));
- XMEMCPY(&dec->aes->ctx.tsip_keyIdx, &key_client_aes,
- sizeof(key_client_aes));
- }
- /* copy hac key index into keys */
- XMEMCPY(ssl->keys.tsip_client_write_MAC_secret, key_client_mac.value,
- sizeof(key_client_mac.value));
- XMEMCPY(ssl->keys.tsip_server_write_MAC_secret, key_server_mac.value,
- sizeof(key_client_mac.value));
- /* set up key size and marked readly */
- if (enc){
- enc->aes->ctx.keySize = ssl->specs.key_size;
- /* ready for use */
- enc->setup = 1;
- }
- /* set up key size and marked readly */
- if (dec) {
- dec->aes->ctx.keySize = ssl->specs.key_size;
- /* ready for use */
- dec->setup = 1;
- }
- }
- /* unlock hw */
- tsip_hw_unlock();
- } else
- WOLFSSL_MSG("hw lock failed\n");
-
- return ret;
-}
-/* generate Master secrete by TSIP */
-int tsip_generateMasterSecret(const byte *pr, /* pre-master */
- const byte *cr, /* client random */
- const byte *sr, /* server random */
- byte *ms)
-{
- int ret;
-
- if ((pr == NULL) || (cr == NULL) || (sr == NULL) ||
- (ms == NULL))
- return BAD_FUNC_ARG;
-
- if ((ret = tsip_hw_lock()) == 0) {
- ret = R_TSIP_TlsGenerateMasterSecret( (uint32_t*)pr,
- (uint8_t*)cr, (uint8_t*)sr, (uint32_t*)ms);
- if (ret != TSIP_SUCCESS) {
- WOLFSSL_MSG("R_TSIP_TlsGenerateMasterSecret failed\n");
- }
- /* unlock hw */
- tsip_hw_unlock();
- } else {
- WOLFSSL_MSG(" hw lock failed ");
- }
-
- return ret;
-}
-/* generate pre-Master secrete by TSIP */
-int tsip_generatePremasterSecret(byte *premaster, word32 preSz )
-{
- int ret;
-
- if (premaster == NULL)
- return BAD_FUNC_ARG;
-
- if ((ret = tsip_hw_lock()) == 0 && preSz >=
- (R_TSIP_TLS_MASTER_SECRET_WORD_SIZE*4)) {
- /* generate pre-master, 80 bytes */
- ret = R_TSIP_TlsGeneratePreMasterSecret( (uint32_t*)premaster );
- if (ret != TSIP_SUCCESS) {
- WOLFSSL_MSG(" R_TSIP_TlsGeneratePreMasterSecret failed\n");
- }
- /* unlock hw */
- tsip_hw_unlock();
- } else {
- WOLFSSL_MSG(" hw lock failed or preSz is smaller than 80");
- }
-
- return ret;
-}
-/* generate encrypted pre-Master secrete by TSIP */
-int tsip_generateEncryptPreMasterSecret(WOLFSSL *ssl, byte *out, word32 *outSz)
-{
- int ret;
-
- if ((ssl == NULL) || (out == NULL) || (outSz == NULL))
- return BAD_FUNC_ARG;
-
- if ((ret = tsip_hw_lock()) == 0) {
- if (*outSz >= 256)
- ret = R_TSIP_TlsEncryptPreMasterSecret(
- (uint32_t*)ssl->peerTsipEncRsaKeyIndex,
- (uint32_t*)&ssl->arrays->preMasterSecret[VERSION_SZ],
- (uint8_t*)out);
- else
- ret = -1;
-
- if (ret != TSIP_SUCCESS) {
- WOLFSSL_MSG(" R_TSIP_TlsEncryptPreMasterSecret failed\n");
- } else {
- *outSz = 256; /* TSIP can only handles 2048 RSA */
- }
- /* unlock hw */
- tsip_hw_unlock();
- } else {
- WOLFSSL_MSG(" hw lock failed ");
- }
-
- return ret;
-}
-#endif /* NO_WOLFSSL_RENESAS_TSIP_TLS_SESSION */
-
-/* Certificate verification by TSIP */
-int tsip_tls_CertVerify(const byte *cert, word32 certSz,
- const byte *signature, word32 sigSz,
- word32 key_n_start, word32 key_n_len,
- word32 key_e_start, word32 key_e_len,
- byte *tsip_encRsaKeyIndex)
-{
- int ret;
-
- if (cert == NULL)
- return BAD_FUNC_ARG;
-
- if (!signature) {
- WOLFSSL_MSG(" signature for ca verification is not set\n");
- return -1;
- }
- if (!tsip_encRsaKeyIndex) {
- WOLFSSL_MSG(" tsip_encRsaKeyIndex is NULL.\n");
- return -1;
- }
-
- if ((ret = tsip_hw_lock()) == 0) {
- ret = R_TSIP_TlsCertificateVerification(
- (uint32_t*)g_encrypted_publicCA_key,/* encrypted public key */
- (uint8_t*)cert, /* certificate der */
- certSz, /* length of der */
- (uint8_t*)signature, /* sign data by RSA PSS */
- key_n_start, /* start position of public key n in bytes */
- (key_n_start + key_n_len), /* length of the public key n */
- key_e_start, /* start pos, key e in bytes */
- (key_e_start + key_e_len), /* length of the public key e */
- (uint32_t*)tsip_encRsaKeyIndex /* returned encrypted key */
- );
-
- if (ret != TSIP_SUCCESS) {
- WOLFSSL_MSG(" R_TSIP_TlsCertificateVerification() failed");
- }
- tsip_hw_unlock();
- } else {
- WOLFSSL_MSG(" hw lock failed ");
- }
-
- return ret;
-}
-/* Root Certificate verification */
-int tsip_tls_RootCertVerify(const byte *cert, word32 cert_len,
- word32 key_n_start, word32 key_n_len,
- word32 key_e_start, word32 key_e_len,
- word32 cm_row)
-{
- int ret;
- /* call to generate encrypted public key for certificate verification */
- uint8_t *signature = (uint8_t*)ca_cert_sig;
-
- if (cert == NULL)
- return BAD_FUNC_ARG;
-
- if (!signature) {
- WOLFSSL_MSG(" signature for ca verification is not set\n");
- return -1;
- }
-
- if ((ret = tsip_hw_lock()) == 0) {
- ret = R_TSIP_TlsRootCertificateVerification(
- /* CA cert */
- (uint8_t*)cert,
- /* length of CA cert */
- (uint32_t)cert_len,
- /* Byte position of public key */
- key_n_start,
- (key_n_start + key_n_len),
- key_e_start,
- (key_e_start + key_e_len),
- /* signature by "RSA 2048 PSS with SHA256" */
- (uint8_t*)ca_cert_sig,
- /* RSA-2048 public key used by
- RSA-2048 PSS with SHA256. 560 Bytes*/
- g_encrypted_publicCA_key
- );
-
- if (ret != TSIP_SUCCESS) {
- WOLFSSL_MSG(" R_TSIP_TlsRootCertVerify() failed");
- } else {
- g_CAscm_Idx = cm_row;
- }
-
- tsip_hw_unlock();
- } else {
- WOLFSSL_MSG(" hw lock failed ");
- }
-
- return ret;
-}
-#endif /* WOLFSSL_RENESAS_TSIP_TLS */
-
-#ifdef WOLFSSL_RENESAS_TSIP_CRYPT_DEBUG
-
-/* err
- * e_tsip_err
- TSIP_SUCCESS = 0,
- TSIP_ERR_SELF_CHECK1, // Self-check 1 fail or TSIP function internal err.
- TSIP_ERR_RESOURCE_CONFLICT, // A resource conflict occurred.
- TSIP_ERR_SELF_CHECK2, // Self-check 2 fail.
- TSIP_ERR_KEY_SET, // setting the invalid key.
- TSIP_ERR_AUTHENTICATION, // Authentication failed.
- TSIP_ERR_CALLBACK_UNREGIST, // Callback function is not registered.
- TSIP_ERR_PARAMETER, // Illegal Input data.
- TSIP_ERR_PROHIBIT_FUNCTION, // An invalid function call occurred.
- * TSIP_RESUME_FIRMWARE_GENERATE_MAC,
- // There is a continuation of R_TSIP_GenerateFirmwareMAC.
-*/
-
-static void hexdump(const uint8_t* in, uint32_t len)
-{
- uint32_t i;
-
- if (in == NULL)
- return;
-
- for (i = 0; i <= len;i++, in++){
- printf("%02x:", *in);
- if (((i+1)%16)==0){
- printf("\n");
- }
- }
- printf("\n");
-}
-
-byte *ret2err(word32 ret)
-{
- switch(ret){
- case TSIP_SUCCESS: return "success";
- case TSIP_ERR_SELF_CHECK1: return "selfcheck1";
- case TSIP_ERR_RESOURCE_CONFLICT: return "rsconflict";
- case TSIP_ERR_SELF_CHECK2: return "selfcheck2";
- case TSIP_ERR_KEY_SET: return "keyset";
- case TSIP_ERR_AUTHENTICATION: return "authentication";
- case TSIP_ERR_CALLBACK_UNREGIST: return "callback unreg";
- case TSIP_ERR_PARAMETER: return "badarg";
- case TSIP_ERR_PROHIBIT_FUNCTION: return "prohibitfunc";
- case TSIP_RESUME_FIRMWARE_GENERATE_MAC: return "conti-generate-mac";
- default:return "unknown";
- }
-}
-
-#endif /* WOLFSSL_RENESAS_TSIP_CRYPT_DEBUG */
-#endif /* WOLFSSL_RENESAS_TSIP */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/af_alg/afalg_aes.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/af_alg/afalg_aes.c
deleted file mode 100644
index 2d1d41a6a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/af_alg/afalg_aes.c
+++ /dev/null
@@ -1,900 +0,0 @@
-/* afalg_aes.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-
-#if !defined(NO_AES) && (defined(WOLFSSL_AFALG) || \
- defined(WOLFSSL_AFALG_XILINX_AES))
-
-#include <wolfssl/wolfcrypt/aes.h>
-#include <wolfssl/wolfcrypt/logging.h>
-#include <wolfssl/wolfcrypt/port/af_alg/wc_afalg.h>
-
-#include <sys/uio.h> /* for readv */
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-#ifdef WOLFSSL_AFALG_XILINX_AES
- #define WOLFSSL_XILINX_ALIGN sizeof(wolfssl_word)
-#endif
-
-static const char WC_TYPE_SYMKEY[] = "skcipher";
-
-static int wc_AesSetup(Aes* aes, const char* type, const char* name, int ivSz, int aadSz)
-{
-#ifdef WOLFSSL_AFALG_XILINX_AES
- byte* key = (byte*)aes->msgBuf;
-#else
- byte* key = (byte*)aes->key;
-#endif
-
- aes->rdFd = wc_Afalg_CreateRead(aes->alFd, type, name);
- if (aes->rdFd < 0) {
- WOLFSSL_MSG("Unable to accept and get AF_ALG read socket");
- aes->rdFd = WC_SOCK_NOTSET;
- return aes->rdFd;
- }
-
- if (setsockopt(aes->alFd, SOL_ALG, ALG_SET_KEY, key, aes->keylen) != 0) {
- WOLFSSL_MSG("Unable to set AF_ALG key");
- aes->rdFd = WC_SOCK_NOTSET;
- return WC_AFALG_SOCK_E;
- }
- ForceZero(key, sizeof(aes->key));
-
- /* set up CMSG headers */
- XMEMSET((byte*)&(aes->msg), 0, sizeof(struct msghdr));
-
- aes->msg.msg_control = key; /* use existing key buffer for
- * control buffer */
-#ifdef WOLFSSL_AFALG_XILINX_AES
- aes->msg.msg_controllen = CMSG_SPACE(4) +
- CMSG_SPACE(sizeof(struct af_alg_iv) + ivSz);
- (void)aadSz;
-#else
- aes->msg.msg_controllen = CMSG_SPACE(4);
- if (aadSz > 0) {
- aes->msg.msg_controllen += CMSG_SPACE(4);
- }
- if (ivSz > 0) {
- aes->msg.msg_controllen += CMSG_SPACE((sizeof(struct af_alg_iv) + ivSz));
- }
-#endif
-
- if (wc_Afalg_SetOp(CMSG_FIRSTHDR(&(aes->msg)), aes->dir) < 0) {
- WOLFSSL_MSG("Error with setting AF_ALG operation");
- aes->rdFd = WC_SOCK_NOTSET;
- return -1;
- }
-
- return 0;
-}
-
-
-#ifdef WOLFSSL_AFALG
-int wc_AesSetKey(Aes* aes, const byte* userKey, word32 keylen,
- const byte* iv, int dir)
-{
-#if defined(AES_MAX_KEY_SIZE)
- const word32 max_key_len = (AES_MAX_KEY_SIZE / 8);
-#endif
-
- if (aes == NULL ||
- !((keylen == 16) || (keylen == 24) || (keylen == 32))) {
- return BAD_FUNC_ARG;
- }
-
-#if defined(AES_MAX_KEY_SIZE)
- /* Check key length */
- if (keylen > max_key_len) {
- return BAD_FUNC_ARG;
- }
-#endif
- aes->keylen = keylen;
- aes->rounds = keylen/4 + 6;
-
-#ifdef WOLFSSL_AES_COUNTER
- aes->left = 0;
-#endif
-
- aes->rdFd = WC_SOCK_NOTSET;
- aes->alFd = wc_Afalg_Socket();
- if (aes->alFd < 0) {
- WOLFSSL_MSG("Unable to open an AF_ALG socket");
- return WC_AFALG_SOCK_E;
- }
-
- /* save key until type is known i.e. CBC, ECB, ... */
- XMEMCPY((byte*)(aes->key), userKey, keylen);
- aes->dir = dir;
-
- return wc_AesSetIV(aes, iv);
-}
-#endif
-
-/* AES-CBC */
-#if defined(HAVE_AES_CBC) && defined(WOLFSSL_AFALG)
- static const char WC_NAME_AESCBC[] = "cbc(aes)";
-
- int wc_AesCbcEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
- {
- struct cmsghdr* cmsg;
- struct iovec iov;
- int ret;
-
- if (aes == NULL || out == NULL || in == NULL) {
- return BAD_FUNC_ARG;
- }
-
- if (aes->rdFd == WC_SOCK_NOTSET) {
- if ((ret = wc_AesSetup(aes, WC_TYPE_SYMKEY, WC_NAME_AESCBC,
- AES_IV_SIZE, 0)) != 0) {
- WOLFSSL_MSG("Error with first time setup of AF_ALG socket");
- return ret;
- }
- }
-
- sz = sz - (sz % AES_BLOCK_SIZE);
- if ((sz / AES_BLOCK_SIZE) > 0) {
- /* update IV */
- cmsg = CMSG_FIRSTHDR(&(aes->msg));
- ret = wc_Afalg_SetIv(CMSG_NXTHDR(&(aes->msg), cmsg),
- (byte*)(aes->reg), AES_IV_SIZE);
- if (ret < 0) {
- WOLFSSL_MSG("Error setting IV");
- return ret;
- }
-
- /* set data to be encrypted */
- iov.iov_base = (byte*)in;
- iov.iov_len = sz;
-
- aes->msg.msg_iov = &iov;
- aes->msg.msg_iovlen = 1; /* # of iov structures */
-
- ret = (int)sendmsg(aes->rdFd, &(aes->msg), 0);
- if (ret < 0) {
- return ret;
- }
- ret = (int)read(aes->rdFd, out, sz);
- if (ret < 0) {
- return ret;
- }
-
- /* set IV for next CBC call */
- XMEMCPY(aes->reg, out + sz - AES_BLOCK_SIZE, AES_BLOCK_SIZE);
- }
-
- return 0;
- }
-
- #ifdef HAVE_AES_DECRYPT
- int wc_AesCbcDecrypt(Aes* aes, byte* out, const byte* in, word32 sz)
- {
- struct cmsghdr* cmsg;
- struct iovec iov;
- int ret;
-
- if (aes == NULL || out == NULL || in == NULL
- || sz % AES_BLOCK_SIZE != 0) {
- return BAD_FUNC_ARG;
- }
-
- if (aes->rdFd == WC_SOCK_NOTSET) {
- if ((ret = wc_AesSetup(aes, WC_TYPE_SYMKEY, WC_NAME_AESCBC,
- AES_IV_SIZE, 0)) != 0) {
- return ret;
- }
- }
-
- if ((sz / AES_BLOCK_SIZE) > 0) {
- /* update IV */
- cmsg = CMSG_FIRSTHDR(&(aes->msg));
- ret = wc_Afalg_SetIv(CMSG_NXTHDR(&(aes->msg), cmsg),
- (byte*)(aes->reg), AES_IV_SIZE);
- if (ret != 0) {
- return ret;
- }
-
- /* set data to be decrypted */
- iov.iov_base = (byte*)in;
- iov.iov_len = sz;
-
- aes->msg.msg_iov = &iov;
- aes->msg.msg_iovlen = 1; /* # of iov structures */
-
- /* set IV for next CBC call */
- XMEMCPY(aes->reg, in + sz - AES_BLOCK_SIZE, AES_BLOCK_SIZE);
-
- ret = (int)sendmsg(aes->rdFd, &(aes->msg), 0);
- if (ret < 0) {
- return ret;
- }
- ret = (int)read(aes->rdFd, out, sz);
- if (ret < 0) {
- return ret;
- }
-
- }
-
- return 0;
- }
- #endif
-
-#endif /* HAVE_AES_CBC */
-
-
-/* AES-DIRECT */
-#if (defined(WOLFSSL_AES_DIRECT) || defined(HAVE_AES_ECB)) && \
- defined(WOLFSSL_AFALG)
-
-static const char WC_NAME_AESECB[] = "ecb(aes)";
-
-/* common code between ECB encrypt and decrypt
- * returns 0 on success */
-static int wc_Afalg_AesDirect(Aes* aes, byte* out, const byte* in, word32 sz)
-{
- struct iovec iov;
- int ret;
-
- if (aes == NULL || out == NULL || in == NULL) {
- return BAD_FUNC_ARG;
- }
-
- if (aes->rdFd == WC_SOCK_NOTSET) {
- if ((ret = wc_AesSetup(aes, WC_TYPE_SYMKEY, WC_NAME_AESECB,
- 0, 0)) != 0) {
- WOLFSSL_MSG("Error with first time setup of AF_ALG socket");
- return ret;
- }
- }
-
- /* set data to be encrypted */
- iov.iov_base = (byte*)in;
- iov.iov_len = sz;
-
- aes->msg.msg_iov = &iov;
- aes->msg.msg_iovlen = 1; /* # of iov structures */
-
- ret = (int)sendmsg(aes->rdFd, &(aes->msg), 0);
- if (ret < 0) {
- return ret;
- }
- ret = (int)read(aes->rdFd, out, sz);
- if (ret < 0) {
- return ret;
- }
-
- return 0;
-}
-#endif
-
-
-#if defined(WOLFSSL_AES_DIRECT) && defined(WOLFSSL_AFALG)
-void wc_AesEncryptDirect(Aes* aes, byte* out, const byte* in)
-{
- if (wc_Afalg_AesDirect(aes, out, in, AES_BLOCK_SIZE) != 0) {
- WOLFSSL_MSG("Error with AES encrypt direct call");
- }
-}
-
-
-void wc_AesDecryptDirect(Aes* aes, byte* out, const byte* in)
-{
- if (wc_Afalg_AesDirect(aes, out, in, AES_BLOCK_SIZE) != 0) {
- WOLFSSL_MSG("Error with AES decrypt direct call");
- }
-}
-
-
-int wc_AesSetKeyDirect(Aes* aes, const byte* userKey, word32 keylen,
- const byte* iv, int dir)
-{
- return wc_AesSetKey(aes, userKey, keylen, iv, dir);
-}
-#endif
-
-
-/* AES-CTR */
-#if defined(WOLFSSL_AES_COUNTER) && defined(WOLFSSL_AFALG)
- static const char WC_NAME_AESCTR[] = "ctr(aes)";
-
- /* Increment AES counter */
- static WC_INLINE void IncrementAesCounter(byte* inOutCtr)
- {
- /* in network byte order so start at end and work back */
- int i;
- for (i = AES_BLOCK_SIZE - 1; i >= 0; i--) {
- if (++inOutCtr[i]) /* we're done unless we overflow */
- return;
- }
- }
-
- int wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
- {
- struct cmsghdr* cmsg;
- struct iovec iov[2];
- int ret;
- byte* tmp;
-
- if (aes == NULL || out == NULL || in == NULL) {
- return BAD_FUNC_ARG;
- }
-
- /* consume any unused bytes left in aes->tmp */
- tmp = (byte*)aes->tmp + AES_BLOCK_SIZE - aes->left;
- while (aes->left && sz) {
- *(out++) = *(in++) ^ *(tmp++);
- aes->left--;
- sz--;
- }
-
- if (aes->rdFd == WC_SOCK_NOTSET) {
- if ((ret = wc_AesSetup(aes, WC_TYPE_SYMKEY, WC_NAME_AESCTR,
- AES_IV_SIZE, 0)) != 0) {
- WOLFSSL_MSG("Error with first time setup of AF_ALG socket");
- return ret;
- }
- }
-
- if (sz > 0) {
- aes->left = sz % AES_BLOCK_SIZE;
-
- /* clear previously leftover data */
- tmp = (byte*)aes->tmp;
- XMEMSET(tmp, 0, AES_BLOCK_SIZE);
-
- /* update IV */
- cmsg = CMSG_FIRSTHDR(&(aes->msg));
- ret = wc_Afalg_SetIv(CMSG_NXTHDR(&(aes->msg), cmsg),
- (byte*)(aes->reg), AES_IV_SIZE);
- if (ret < 0) {
- WOLFSSL_MSG("Error setting IV");
- return ret;
- }
-
- /* set data to be encrypted */
- iov[0].iov_base = (byte*)in;
- iov[0].iov_len = sz - aes->left;
-
- iov[1].iov_base = tmp;
- if (aes->left > 0) {
- XMEMCPY(tmp, in + sz - aes->left, aes->left);
- iov[1].iov_len = AES_BLOCK_SIZE;
- }
- else {
- iov[1].iov_len = 0;
- }
-
- aes->msg.msg_iov = iov;
- aes->msg.msg_iovlen = 2; /* # of iov structures */
-
- ret = (int)sendmsg(aes->rdFd, &(aes->msg), 0);
- if (ret < 0) {
- return ret;
- }
-
-
- /* set buffers to hold result and left over stream */
- iov[0].iov_base = (byte*)out;
- iov[0].iov_len = sz - aes->left;
-
- iov[1].iov_base = tmp;
- if (aes->left > 0) {
- iov[1].iov_len = AES_BLOCK_SIZE;
- }
- else {
- iov[1].iov_len = 0;
- }
-
- ret = (int)readv(aes->rdFd, iov, 2);
- if (ret < 0) {
- return ret;
- }
-
- if (aes->left > 0) {
- XMEMCPY(out + sz - aes->left, tmp, aes->left);
- aes->left = AES_BLOCK_SIZE - aes->left;
- }
- }
-
- /* adjust counter after call to hardware */
- while (sz >= AES_BLOCK_SIZE) {
- IncrementAesCounter((byte*)aes->reg);
- sz -= AES_BLOCK_SIZE;
- }
-
- if (aes->left > 0) {
- IncrementAesCounter((byte*)aes->reg);
- }
-
- return 0;
- }
-#endif /* WOLFSSL_AES_COUNTER */
-
-
-#ifdef HAVE_AESGCM
-
-
-#ifdef WOLFSSL_AFALG_XILINX_AES
- static const char WC_NAME_AESGCM[] = "xilinx-zynqmp-aes";
- static const char* WC_TYPE_AEAD = WC_TYPE_SYMKEY;
-#else
- static const char WC_NAME_AESGCM[] = "gcm(aes)";
- static const char WC_TYPE_AEAD[] = "aead";
-#endif
-
-#ifndef WC_SYSTEM_AESGCM_IV
-/* size of IV allowed on system for AES-GCM */
-#define WC_SYSTEM_AESGCM_IV 12
-#endif
-
-#ifndef WOLFSSL_MAX_AUTH_TAG_SZ
-/* size of tag is restricted by system for AES-GCM
- * check 'cat /proc/crypto' to see restricted size */
-#define WOLFSSL_MAX_AUTH_TAG_SZ 16
-#endif
-
-#ifdef WOLFSSL_AFALG_XILINX_AES
-/* Xilinx uses a slightly different function because the default AES key is also
- * needed if handling additional data with creating/validating the TAG.
- *
- * returns 0 on success
- */
-int wc_AesGcmSetKey_ex(Aes* aes, const byte* key, word32 len, word32 kup)
-#else
-int wc_AesGcmSetKey(Aes* aes, const byte* key, word32 len)
-#endif
-{
-#if defined(AES_MAX_KEY_SIZE)
- const word32 max_key_len = (AES_MAX_KEY_SIZE / 8);
-#endif
-
- if (aes == NULL ||
- !((len == 16) || (len == 24) || (len == 32))) {
- return BAD_FUNC_ARG;
- }
-
-#if defined(AES_MAX_KEY_SIZE)
- /* Check key length */
- if (len > max_key_len) {
- return BAD_FUNC_ARG;
- }
-#endif
- aes->keylen = len;
- aes->rounds = len/4 + 6;
-
- aes->rdFd = WC_SOCK_NOTSET;
- aes->alFd = wc_Afalg_Socket();
- if (aes->alFd < 0) {
- WOLFSSL_MSG("Unable to open an AF_ALG socket");
- return WC_AFALG_SOCK_E;
- }
-
- /* save key until direction is known i.e. encrypt or decrypt */
-#ifdef WOLFSSL_AFALG_XILINX_AES
- (void)kup; /* using alternate buffer because software key is needed */
- XMEMCPY((byte*)(aes->msgBuf), key, len);
-#else
- XMEMCPY((byte*)(aes->key), key, len);
-#endif
-
- return 0;
-}
-
-
-
-/* Performs AES-GCM encryption and returns 0 on success
- *
- * Warning: If using Xilinx hardware acceleration it is assumed that the out
- * buffer is large enough to hold both cipher text and tag. That is
- * sz | 16 bytes. The input and output buffer is expected to be 64 bit
- * aligned
- *
- */
-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)
-{
- struct cmsghdr* cmsg;
- struct iovec iov[3];
- int ret;
- struct msghdr* msg;
- byte scratch[AES_BLOCK_SIZE];
-
- /* argument checks */
- if (aes == NULL || authTagSz > AES_BLOCK_SIZE) {
- return BAD_FUNC_ARG;
- }
-
- if (ivSz != WC_SYSTEM_AESGCM_IV || authTagSz > WOLFSSL_MAX_AUTH_TAG_SZ) {
- WOLFSSL_MSG("IV/AAD size not supported on system");
- return BAD_FUNC_ARG;
- }
-
- if (authTagSz < WOLFSSL_MIN_AUTH_TAG_SZ) {
- WOLFSSL_MSG("GcmEncrypt authTagSz too small error");
- return BAD_FUNC_ARG;
- }
-
- if (aes->rdFd == WC_SOCK_NOTSET) {
- aes->dir = AES_ENCRYPTION;
- if ((ret = wc_AesSetup(aes, WC_TYPE_AEAD, WC_NAME_AESGCM, ivSz,
- authInSz)) != 0) {
- WOLFSSL_MSG("Error with first time setup of AF_ALG socket");
- return ret;
- }
-
- /* note that if the ivSz was to change, the msg_controllen would need
- reset */
-
-#ifndef WOLFSSL_AFALG_XILINX_AES
- /* set auth tag
- * @TODO case where tag size changes between calls? */
- ret = setsockopt(aes->alFd, SOL_ALG, ALG_SET_AEAD_AUTHSIZE, NULL,
- authTagSz);
- if (ret != 0) {
- perror("set tag");
- WOLFSSL_MSG("Unable to set AF_ALG tag size ");
- return WC_AFALG_SOCK_E;
- }
-#endif
- }
-
-
- msg = &(aes->msg);
- cmsg = CMSG_FIRSTHDR(msg);
- cmsg = CMSG_NXTHDR(msg, cmsg);
-
- /* set IV and AAD size */
- ret = wc_Afalg_SetIv(cmsg, (byte*)iv, ivSz);
- if (ret < 0) {
- WOLFSSL_MSG("Error setting IV");
- return ret;
-
- }
-#ifdef WOLFSSL_AFALG_XILINX_AES
- if (sz > 0) {
- #ifndef NO_WOLFSSL_ALLOC_ALIGN
- byte* tmp = NULL;
- #endif
- if ((wolfssl_word)in % WOLFSSL_XILINX_ALIGN) {
- #ifndef NO_WOLFSSL_ALLOC_ALIGN
- byte* tmp_align;
- tmp = (byte*)XMALLOC(sz + WOLFSSL_XILINX_ALIGN +
- AES_BLOCK_SIZE, aes->heap, DYNAMIC_TYPE_TMP_BUFFER);
- if (tmp == NULL) {
- return MEMORY_E;
- }
- tmp_align = tmp + (WOLFSSL_XILINX_ALIGN -
- ((size_t)tmp % WOLFSSL_XILINX_ALIGN));
- XMEMCPY(tmp_align, in, sz);
- iov[0].iov_base = tmp_align;
- #else
- WOLFSSL_MSG("Buffer expected to be word aligned");
- return BAD_ALIGN_E;
- #endif
- }
- else {
- iov[0].iov_base = (byte*)in;
- }
- iov[0].iov_len = sz + AES_BLOCK_SIZE;
-
- msg->msg_iov = iov;
- msg->msg_iovlen = 1; /* # of iov structures */
-
- ret = (int)sendmsg(aes->rdFd, msg, 0);
- #ifndef NO_WOLFSSL_ALLOC_ALIGN
- XFREE(tmp, aes->heap, DYNAMIC_TYPE_TMP_BUFFER);
- #endif
- if (ret < 0) {
- return ret;
- }
-
- ret = read(aes->rdFd, out, sz + AES_BLOCK_SIZE);
- if (ret < 0) {
- return ret;
- }
- XMEMCPY(authTag, out + sz, authTagSz);
- }
-
- /* handle completing tag with using software if additional data added */
- if (authIn != NULL && authInSz > 0) {
- byte initalCounter[AES_BLOCK_SIZE];
- XMEMSET(initalCounter, 0, AES_BLOCK_SIZE);
- XMEMCPY(initalCounter, iv, ivSz);
- initalCounter[AES_BLOCK_SIZE - 1] = 1;
- GHASH(aes, authIn, authInSz, out, sz, authTag, authTagSz);
- wc_AesEncryptDirect(aes, scratch, initalCounter);
- xorbuf(authTag, scratch, authTagSz);
- }
-#else
- if (authInSz > 0) {
- cmsg = CMSG_NXTHDR(msg, cmsg);
- ret = wc_Afalg_SetAad(cmsg, authInSz);
- if (ret < 0) {
- WOLFSSL_MSG("Unable to set AAD size");
- return ret;
- }
- }
-
- /* set data to be encrypted*/
- iov[0].iov_base = (byte*)authIn;
- iov[0].iov_len = authInSz;
-
- iov[1].iov_base = (byte*)in;
- iov[1].iov_len = sz;
-
- msg->msg_iov = iov;
- msg->msg_iovlen = 2; /* # of iov structures */
-
- ret = (int)sendmsg(aes->rdFd, msg, 0);
- if (ret < 0) {
- return ret;
- }
-
- {
- byte* tmp = (byte*)XMALLOC(authInSz, aes->heap, DYNAMIC_TYPE_TMP_BUFFER);
- if (tmp == NULL) {
- return MEMORY_E;
- }
- /* first 16 bytes was all 0's */
- iov[0].iov_base = tmp;
- (void)scratch;
- iov[0].iov_len = authInSz;
-
- iov[1].iov_base = out;
- iov[1].iov_len = sz;
-
- iov[2].iov_base = authTag;
- iov[2].iov_len = authTagSz;
-
- ret = (int)readv(aes->rdFd, iov, 3);
- XFREE(tmp, aes->heap, DYNAMIC_TYPE_TMP_BUFFER);
- }
- if (ret < 0) {
- return ret;
- }
-#endif
-
-
- return 0;
-}
-
-#if defined(HAVE_AES_DECRYPT) || defined(HAVE_AESGCM_DECRYPT)
-/* Performs AES-GCM decryption and returns 0 on success
- *
- * Warning: If using Xilinx hardware acceleration it is assumed that the in
- * buffer is large enough to hold both cipher text and tag. That is
- * sz | 16 bytes
- */
-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)
-{
- struct cmsghdr* cmsg;
- struct msghdr* msg;
- struct iovec iov[3];
- byte scratch[AES_BLOCK_SIZE];
- int ret;
-#ifdef WOLFSSL_AFALG_XILINX_AES
- byte* tag = (byte*)authTag;
- byte buf[AES_BLOCK_SIZE];
- byte initalCounter[AES_BLOCK_SIZE];
-#ifndef NO_WOLFSSL_ALLOC_ALIGN
- byte* tmp = NULL;
-#endif
-#endif
-
- /* argument checks */
- if (aes == NULL || authTagSz > AES_BLOCK_SIZE) {
- return BAD_FUNC_ARG;
- }
-
- if (ivSz != WC_SYSTEM_AESGCM_IV || authTagSz > WOLFSSL_MAX_AUTH_TAG_SZ) {
- WOLFSSL_MSG("IV/AAD size not supported on system");
- return BAD_FUNC_ARG;
- }
-
- if (authTagSz < WOLFSSL_MIN_AUTH_TAG_SZ) {
- WOLFSSL_MSG("GcmEncrypt authTagSz too small error");
- return BAD_FUNC_ARG;
- }
-
- if (aes->rdFd == WC_SOCK_NOTSET) {
- aes->dir = AES_DECRYPTION;
- if ((ret = wc_AesSetup(aes, WC_TYPE_AEAD, WC_NAME_AESGCM, ivSz,
- authInSz)) != 0) {
- WOLFSSL_MSG("Error with first time setup of AF_ALG socket");
- return ret;
- }
-
-#ifndef WOLFSSL_AFALG_XILINX_AES
- /* set auth tag
- * @TODO case where tag size changes between calls? */
- ret = setsockopt(aes->alFd, SOL_ALG, ALG_SET_AEAD_AUTHSIZE, NULL,
- authTagSz);
- if (ret != 0) {
- WOLFSSL_MSG("Unable to set AF_ALG tag size ");
- return WC_AFALG_SOCK_E;
- }
-#endif
- }
-
- /* set IV and AAD size */
- msg = &aes->msg;
- if ((cmsg = CMSG_FIRSTHDR(msg)) == NULL) {
- return WC_AFALG_SOCK_E;
- }
- if (wc_Afalg_SetOp(cmsg, aes->dir) < 0) {
- WOLFSSL_MSG("Error with setting AF_ALG operation");
- return WC_AFALG_SOCK_E;
- }
- if ((cmsg = CMSG_NXTHDR(msg, cmsg)) == NULL) {
- return WC_AFALG_SOCK_E;
- }
- ret = wc_Afalg_SetIv(cmsg, (byte*)iv, ivSz);
- if (ret < 0) {
- return ret;
- }
-
-#ifdef WOLFSSL_AFALG_XILINX_AES
- /* check for and handle additional data */
- if (authIn != NULL && authInSz > 0) {
-
- XMEMSET(initalCounter, 0, AES_BLOCK_SIZE);
- XMEMCPY(initalCounter, iv, ivSz);
- initalCounter[AES_BLOCK_SIZE - 1] = 1;
- tag = buf;
- GHASH(aes, NULL, 0, in, sz, tag, AES_BLOCK_SIZE);
- wc_AesEncryptDirect(aes, scratch, initalCounter);
- xorbuf(tag, scratch, AES_BLOCK_SIZE);
- if (ret != 0) {
- return AES_GCM_AUTH_E;
- }
- }
-
- /* it is assumed that in buffer size is large enough to hold TAG */
- XMEMCPY((byte*)in + sz, tag, AES_BLOCK_SIZE);
- if ((wolfssl_word)in % WOLFSSL_XILINX_ALIGN) {
- #ifndef NO_WOLFSSL_ALLOC_ALIGN
- byte* tmp_align;
- tmp = (byte*)XMALLOC(sz + WOLFSSL_XILINX_ALIGN +
- AES_BLOCK_SIZE, aes->heap, DYNAMIC_TYPE_TMP_BUFFER);
- if (tmp == NULL) {
- return MEMORY_E;
- }
- tmp_align = tmp + (WOLFSSL_XILINX_ALIGN -
- ((size_t)tmp % WOLFSSL_XILINX_ALIGN));
- XMEMCPY(tmp_align, in, sz + AES_BLOCK_SIZE);
- iov[0].iov_base = tmp_align;
- #else
- WOLFSSL_MSG("Buffer expected to be word aligned");
- return BAD_ALIGN_E;
- #endif
- }
- else {
- iov[0].iov_base = (byte*)in;
- }
- iov[0].iov_len = sz + AES_BLOCK_SIZE;
-
- msg->msg_iov = iov;
- msg->msg_iovlen = 1;
-
- ret = sendmsg(aes->rdFd, msg, 0);
-#ifndef NO_WOLFSSL_ALLOC_ALIGN
- XFREE(tmp, aes->heap, DYNAMIC_TYPE_TMP_BUFFER);
-#endif
- if (ret < 0) {
- return ret;
- }
-
- ret = read(aes->rdFd, out, sz + AES_BLOCK_SIZE);
- if (ret < 0) {
- return AES_GCM_AUTH_E;
- }
-
- /* check on tag */
- if (authIn != NULL && authInSz > 0) {
- GHASH(aes, authIn, authInSz, in, sz, tag, AES_BLOCK_SIZE);
- wc_AesEncryptDirect(aes, scratch, initalCounter);
- xorbuf(tag, scratch, AES_BLOCK_SIZE);
- if (ConstantCompare(tag, authTag, authTagSz) != 0) {
- return AES_GCM_AUTH_E;
- }
- }
-
-#else
- if (authInSz > 0) {
- cmsg = CMSG_NXTHDR(msg, cmsg);
- ret = wc_Afalg_SetAad(cmsg, authInSz);
- if (ret < 0) {
- return ret;
- }
- }
-
- /* set data to be decrypted*/
- iov[0].iov_base = (byte*)authIn;
- iov[0].iov_len = authInSz;
- iov[1].iov_base = (byte*)in;
- iov[1].iov_len = sz;
- iov[2].iov_base = (byte*)authTag;
- iov[2].iov_len = authTagSz;
-
- msg->msg_iov = iov;
- msg->msg_iovlen = 3; /* # of iov structures */
- ret = (int)sendmsg(aes->rdFd, &(aes->msg), 0);
- if (ret < 0) {
- return ret;
- }
-
- {
- byte* tmp = (byte*)XMALLOC(authInSz, aes->heap, DYNAMIC_TYPE_TMP_BUFFER);
- if (tmp == NULL) {
- return MEMORY_E;
- }
- iov[0].iov_base = tmp;
- iov[0].iov_len = authInSz;
- iov[1].iov_base = out;
- iov[1].iov_len = sz;
- ret = (int)readv(aes->rdFd, iov, 2);
- XFREE(tmp, aes->heap, DYNAMIC_TYPE_TMP_BUFFER);
- }
- if (ret < 0) {
- return AES_GCM_AUTH_E;
- }
- (void)scratch;
-#endif
-
- return 0;
-}
-#endif /* HAVE_AES_DECRYPT || HAVE_AESGCM_DECRYPT */
-#endif /* HAVE_AESGCM */
-
-
-#ifdef HAVE_AES_ECB
-int wc_AesEcbEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
-{
- return wc_Afalg_AesDirect(aes, out, in, sz);
-}
-
-
-int wc_AesEcbDecrypt(Aes* aes, byte* out, const byte* in, word32 sz)
-{
- return wc_Afalg_AesDirect(aes, out, in, sz);
-}
-#endif /* HAVE_AES_ECB */
-#endif /* !NO_AES && WOLFSSL_AFALG */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/af_alg/afalg_hash.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/af_alg/afalg_hash.c
deleted file mode 100644
index 41e57bc80..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/af_alg/afalg_hash.c
+++ /dev/null
@@ -1,339 +0,0 @@
-/* afalg_hash.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#if defined(WOLFSSL_AFALG_HASH) || (defined(WOLFSSL_AFALG_XILINX_SHA3) \
- && defined(WOLFSSL_SHA3))
-
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/logging.h>
-#include <wolfssl/wolfcrypt/port/af_alg/wc_afalg.h>
-#include <wolfssl/wolfcrypt/port/af_alg/afalg_hash.h>
-
-static const char WC_TYPE_HASH[] = "hash";
-
-
-/* generic AF_ALG hash free */
-static void AfalgHashFree(wolfssl_AFALG_Hash* hash)
-{
- if (hash == NULL)
- return;
-
- if (hash->alFd > 0) {
- close(hash->alFd);
- hash->alFd = -1; /* avoid possible double close on socket */
- }
- if (hash->rdFd > 0) {
- close(hash->rdFd);
- hash->rdFd = -1; /* avoid possible double close on socket */
- }
-
- #if defined(WOLFSSL_AFALG_HASH_KEEP)
- if (hash->msg != NULL) {
- XFREE(hash->msg, hash->heap, DYNAMIC_TYPE_TMP_BUFFER);
- hash->msg = NULL;
- }
- #endif
-}
-
-
-/* generic hash init for AF_ALG, returns 0 on success */
-static int AfalgHashInit(wolfssl_AFALG_Hash* hash, void* heap, int devId,
- const char* type)
-{
- if (hash == NULL) {
- return BAD_FUNC_ARG;
- }
-
- (void)devId; /* no async for now */
- XMEMSET(hash, 0, sizeof(wolfssl_AFALG_Hash));
- hash->heap = heap;
-
- hash->len = 0;
- hash->used = 0;
- hash->msg = NULL;
- hash->alFd = -1;
- hash->rdFd = -1;
-
- hash->alFd = wc_Afalg_Socket();
- if (hash->alFd < 0) {
- return WC_AFALG_SOCK_E;
- }
-
- hash->rdFd = wc_Afalg_CreateRead(hash->alFd, WC_TYPE_HASH, type);
- if (hash->rdFd < 0) {
- close(hash->alFd);
- return WC_AFALG_SOCK_E;
- }
-
- return 0;
-
-}
-
-
-/* generic hash update for AF_ALG, returns 0 on success */
-static int AfalgHashUpdate(wolfssl_AFALG_Hash* hash, const byte* in, word32 sz)
-{
- if (hash == NULL || (sz > 0 && in == NULL)) {
- return BAD_FUNC_ARG;
- }
-
-#ifdef WOLFSSL_AFALG_HASH_KEEP
- /* keep full message to hash at end instead of incremental updates */
- if (hash->len < hash->used + sz) {
- if (hash->msg == NULL) {
- hash->msg = (byte*)XMALLOC(hash->used + sz, hash->heap,
- DYNAMIC_TYPE_TMP_BUFFER);
- } else {
- byte* pt = (byte*)XREALLOC(hash->msg, hash->used + sz, hash->heap,
- DYNAMIC_TYPE_TMP_BUFFER);
- if (pt == NULL) {
- return MEMORY_E;
- }
- hash->msg = pt;
- }
- if (hash->msg == NULL) {
- return MEMORY_E;
- }
- hash->len = hash->used + sz;
- }
- XMEMCPY(hash->msg + hash->used, in, sz);
- hash->used += sz;
-#else
- int ret;
-
- if ((ret = (int)send(hash->rdFd, in, sz, MSG_MORE)) < 0) {
- return ret;
- }
-#endif
- return 0;
-}
-
-
-/* generic hash final for AF_ALG, return 0 on success */
-static int AfalgHashFinal(wolfssl_AFALG_Hash* hash, byte* out, word32 outSz,
- const char* type)
-{
- int ret;
- void* heap;
-
- if (hash == NULL || out == NULL) {
- return BAD_FUNC_ARG;
- }
-
- heap = hash->heap; /* keep because AfalgHashInit clears the pointer */
-#ifdef WOLFSSL_AFALG_HASH_KEEP
- /* keep full message to out at end instead of incremental updates */
- if ((ret = (int)send(hash->rdFd, hash->msg, hash->used, 0)) < 0) {
- return ret;
- }
- XFREE(hash->msg, heap, DYNAMIC_TYPE_TMP_BUFFER);
- hash->msg = NULL;
-#else
- if ((ret = (int)send(hash->rdFd, NULL, 0, 0)) < 0) {
- return ret;
- }
-#endif
-
- if ((ret = (int)read(hash->rdFd, out, outSz)) != (int)outSz) {
- return ret;
- }
-
- AfalgHashFree(hash);
- return AfalgHashInit(hash, heap, 0, type);
-}
-
-
-/* generic function to get intermediate hash */
-static int AfalgHashGet(wolfssl_AFALG_Hash* hash, byte* out, word32 outSz)
-{
- int ret;
-
- if (hash == NULL || out == NULL) {
- return BAD_FUNC_ARG;
- }
-
- (void)ret;
-#ifdef WOLFSSL_AFALG_HASH_KEEP
- if ((ret = (int)send(hash->rdFd, hash->msg, hash->used, 0)) < 0) {
- return ret;
- }
-
- if ((ret = (int)read(hash->rdFd, out, outSz)) != (int)outSz) {
- return ret;
- }
- return 0;
-#else
- (void)hash;
- (void)out;
- (void)outSz;
-
- WOLFSSL_MSG("Compile with WOLFSSL_AFALG_HASH_KEEP for this feature");
- return NOT_COMPILED_IN;
-#endif
-}
-
-
-/* generic struct copy for AF_ALG, returns 0 on success */
-static int AfalgHashCopy(wolfssl_AFALG_Hash* src, wolfssl_AFALG_Hash* dst)
-{
- if (src == NULL || dst == NULL) {
- return BAD_FUNC_ARG;
- }
-
- XMEMCPY(dst, src, sizeof(wolfssl_AFALG_Hash));
-
-#ifdef WOLFSSL_AFALG_HASH_KEEP
- dst->msg = (byte*)XMALLOC(src->len, dst->heap, DYNAMIC_TYPE_TMP_BUFFER);
- if (dst->msg == NULL) {
- return MEMORY_E;
- }
- XMEMCPY(dst->msg, src->msg, src->len);
-#endif
-
- dst->rdFd = accept(src->rdFd, NULL, 0);
- dst->alFd = accept(src->alFd, NULL, 0);
-
- if (dst->rdFd == -1 || dst->alFd == -1) {
- AfalgHashFree(dst);
- return -1;
- }
-
- return 0;
-}
-
-
-#if !defined(NO_SHA256) && defined(WOLFSSL_AFALG_HASH)
-#include <wolfssl/wolfcrypt/sha256.h>
-
-static const char WC_NAME_SHA256[] = "sha256";
-
-
-/* create AF_ALG sockets for SHA256 operation */
-int wc_InitSha256_ex(wc_Sha256* sha, void* heap, int devId)
-{
- return AfalgHashInit(sha, heap, devId, WC_NAME_SHA256);
-}
-
-
-int wc_Sha256Update(wc_Sha256* sha, const byte* in, word32 sz)
-{
- return AfalgHashUpdate(sha, in, sz);
-}
-
-
-int wc_Sha256Final(wc_Sha256* sha, byte* hash)
-{
- return AfalgHashFinal(sha, hash, WC_SHA256_DIGEST_SIZE, WC_NAME_SHA256);
-}
-
-
-int wc_Sha256GetHash(wc_Sha256* sha, byte* hash)
-{
- return AfalgHashGet(sha, hash, WC_SHA256_DIGEST_SIZE);
-}
-
-
-int wc_Sha256Copy(wc_Sha256* src, wc_Sha256* dst)
-{
- return AfalgHashCopy(src, dst);
-}
-#endif /* !NO_SHA256 */
-
-
-
-#if defined(WOLFSSL_SHA3) && defined(WOLFSSL_AFALG_XILINX_SHA3)
-#include <wolfssl/wolfcrypt/sha3.h>
-
-static const char WC_NAME_SHA3[] = "xilinx-keccak-384";
-
-void wc_Sha3_384_Free(wc_Sha3* sha)
-{
- AfalgHashFree(sha);
-}
-
-
-/* create AF_ALG sockets for SHA256 operation */
-int wc_InitSha3_384(wc_Sha3* sha, void* heap, int devId)
-{
- return AfalgHashInit(sha, heap, devId, WC_NAME_SHA3);
-}
-
-
-int wc_Sha3_384_Update(wc_Sha3* sha, const byte* in, word32 sz)
-{
-#ifndef WOLFSSL_AFALG_HASH_KEEP
- if (sz % 4) {
- WOLFSSL_MSG("Alignment issue. Message size needs to be divisible by 4")
- return BAD_FUNC_ARG;
- }
-#endif
-
- return AfalgHashUpdate(sha, in, sz);
-}
-
-
-int wc_Sha3_384_Final(wc_Sha3* sha, byte* hash)
-{
- if (sha == NULL || hash == NULL) {
- return BAD_FUNC_ARG;
- }
-
-#ifdef WOLFSSL_AFALG_HASH_KEEP
- if (sha->used % 4) {
- WOLFSSL_MSG("Alignment issue. Message size needs to be divisible by 4");
- return BAD_FUNC_ARG;
- }
-#endif
-
- return AfalgHashFinal(sha, hash, WC_SHA3_384_DIGEST_SIZE, WC_NAME_SHA3);
-}
-
-
-int wc_Sha3_384_GetHash(wc_Sha3* sha, byte* hash)
-{
- if (sha == NULL || hash == NULL) {
- return BAD_FUNC_ARG;
- }
-
-#ifdef WOLFSSL_AFALG_HASH_KEEP
- if (sha->used % 4) {
- WOLFSSL_MSG("Alignment issue. Message size needs to be divisible by 4");
- return BAD_FUNC_ARG;
- }
-#endif
-
- return AfalgHashGet(sha, hash, WC_SHA3_384_DIGEST_SIZE);
-}
-
-int wc_Sha3_384_Copy(wc_Sha3* src, wc_Sha3* dst)
-{
- return AfalgHashCopy(src, dst);
-}
-#endif /* WOLFSSL_SHA3 && WOLFSSL_AFALG_XILINX_SHA3 */
-
-#endif /* WOLFSSL_AFALG */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/af_alg/wc_afalg.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/af_alg/wc_afalg.c
deleted file mode 100644
index 0a91b5180..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/af_alg/wc_afalg.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/* wc_afalg.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/logging.h>
-
-#if defined(WOLFSSL_AFALG) || defined(WOLFSSL_AFALG_XILINX)
-
-#include <wolfssl/wolfcrypt/port/af_alg/wc_afalg.h>
-#include <linux/if_alg.h>
-
-
-/* Sets the type of socket address to use */
-void wc_Afalg_SockAddr(struct sockaddr_alg* in, const char* type, const char* name)
-{
- in->salg_family = AF_ALG;
- XSTRNCPY((char*)in->salg_type, type, XSTRLEN(type));
- in->salg_type[XSTRLEN(type)] = '\0';
- XSTRNCPY((char*)in->salg_name, name, XSTRLEN(name));
- in->salg_name[XSTRLEN(name)] = '\0';
-}
-
-
-/* returns the socket accepting on with success
- * negative values are returned in fail cases */
-int wc_Afalg_Accept(struct sockaddr_alg* in, int inSz, int sock)
-{
- if (bind(sock, (const struct sockaddr*)in, inSz) < 0) {
- WOLFSSL_MSG("Failed to bind with AF_ALG");
- return WC_AFALG_SOCK_E;
- }
-
- return accept(sock, NULL, 0);
-}
-
-
-/* creates a new AF_ALG socket and returns it
- * negative values are returned in fail cases */
-int wc_Afalg_Socket(void)
-{
- int sock;
-
- if ((sock = socket(AF_ALG, SOCK_SEQPACKET, 0)) < 0) {
- WOLFSSL_MSG("Failed to get AF_ALG socket");
- return WC_AFALG_SOCK_E;
- }
-
- return sock;
-}
-
-
-/* binds and creates the read fd */
-int wc_Afalg_CreateRead(int sock, const char* type, const char* name)
-{
- struct sockaddr_alg sa = {0};
- wc_Afalg_SockAddr(&sa, type, name);
- return wc_Afalg_Accept(&sa, sizeof(sa), sock);
-}
-
-
-/* sets the IV in CMSG structure, returns 0 on success */
-int wc_Afalg_SetIv(struct cmsghdr* cmsg, byte* iv, word32 ivSz)
-{
- struct af_alg_iv* afIv;
-
- if (cmsg == NULL || iv == NULL) {
- WOLFSSL_MSG("Null cmsg or iv passed in");
- return BAD_FUNC_ARG;
- }
-
- cmsg->cmsg_level = SOL_ALG;
- cmsg->cmsg_type = ALG_SET_IV;
- cmsg->cmsg_len = CMSG_LEN(sizeof(struct af_alg_iv) + ivSz);
- afIv = (void*)CMSG_DATA(cmsg);
- afIv->ivlen = ivSz;
- XMEMCPY(afIv->iv, iv, ivSz);
-
- return 0;
-}
-
-
-/* sets the AAD size in CMSG structure, returns 0 on success */
-int wc_Afalg_SetAad(struct cmsghdr* cmsg, word32 sz)
-{
- if (cmsg == NULL) {
- WOLFSSL_MSG("Null cmsg passed in");
- return BAD_FUNC_ARG;
- }
-
- cmsg->cmsg_level = SOL_ALG;
- cmsg->cmsg_type = ALG_SET_AEAD_ASSOCLEN;
- cmsg->cmsg_len = CMSG_LEN(sizeof(word32));
- *((word32*)CMSG_DATA(cmsg)) = sz;
-
- return 0;
-}
-
-
-/* sets the operation type in CMSG structure, returns 0 on success
- *
- * dir 0 is encryption 1 is decryption
- */
-int wc_Afalg_SetOp(struct cmsghdr* cmsg, int dir)
-{
- if (cmsg == NULL) {
- return BAD_FUNC_ARG;
- }
-
- cmsg->cmsg_level = SOL_ALG;
- cmsg->cmsg_type = ALG_SET_OP;
- cmsg->cmsg_len = CMSG_LEN(4);
- *((word32*)CMSG_DATA(cmsg)) = (dir == 1)? ALG_OP_DECRYPT : ALG_OP_ENCRYPT;
-
- return 0;
-}
-
-#endif /* !NO_AES && WOLFSSL_AFALG */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-curve25519.S b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-curve25519.S
deleted file mode 100644
index 6fd1ed3f2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-curve25519.S
+++ /dev/null
@@ -1,6012 +0,0 @@
-/* armv8-32-curve25519
- *
- * Copyright (C) 2006-2020 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
- */
-
-/* Generated using (from wolfssl):
- * cd ../scripts
- * ruby ./x25519/x25519.rb arm32 ../wolfssl/wolfcrypt/src/port/arm/armv8-32-curve25519.S
- */
-
-#ifdef WOLFSSL_ARMASM
-#ifndef __aarch64__
- .text
- .align 2
- .globl fe_init
- .type fe_init, %function
-fe_init:
- bx lr
- .size fe_init,.-fe_init
- .text
- .align 2
- .globl fe_frombytes
- .type fe_frombytes, %function
-fe_frombytes:
- push {r4, r5, r6, r7, lr}
- ldrd r2, r3, [r1]
- ldr r12, [r1, #8]
- ldr lr, [r1, #12]
- ldrd r4, r5, [r1, #16]
- ldrd r6, r7, [r1, #24]
- and r7, r7, #0x7fffffff
- strd r2, r3, [r0]
- str r12, [r0, #8]
- str lr, [r0, #12]
- strd r4, r5, [r0, #16]
- strd r6, r7, [r0, #24]
- pop {r4, r5, r6, r7, pc}
- .size fe_frombytes,.-fe_frombytes
- .text
- .align 2
- .globl fe_tobytes
- .type fe_tobytes, %function
-fe_tobytes:
- push {r4, r5, r6, r7, r8, lr}
- ldrd r2, r3, [r1]
- ldr r12, [r1, #8]
- ldr lr, [r1, #12]
- ldrd r4, r5, [r1, #16]
- ldrd r6, r7, [r1, #24]
- adds r8, r2, #19
- adcs r8, r3, #0
- adcs r8, r12, #0
- adcs r8, lr, #0
- adcs r8, r4, #0
- adcs r8, r5, #0
- adcs r8, r6, #0
- adc r8, r7, #0
- asr r8, r8, #31
- and r8, r8, #19
- adds r2, r2, r8
- adcs r3, r3, #0
- adcs r12, r12, #0
- adcs lr, lr, #0
- adcs r4, r4, #0
- adcs r5, r5, #0
- adcs r6, r6, #0
- adc r7, r7, #0
- and r7, r7, #0x7fffffff
- strd r2, r3, [r0]
- str r12, [r0, #8]
- str lr, [r0, #12]
- strd r4, r5, [r0, #16]
- strd r6, r7, [r0, #24]
- pop {r4, r5, r6, r7, r8, pc}
- .size fe_tobytes,.-fe_tobytes
- .text
- .align 2
- .globl fe_1
- .type fe_1, %function
-fe_1:
- # Set one
- mov r2, #1
- mov r1, #0
- str r2, [r0]
- str r1, [r0, #4]
- str r1, [r0, #8]
- str r1, [r0, #12]
- str r1, [r0, #16]
- str r1, [r0, #20]
- str r1, [r0, #24]
- str r1, [r0, #28]
- bx lr
- .size fe_1,.-fe_1
- .text
- .align 2
- .globl fe_0
- .type fe_0, %function
-fe_0:
- # Set zero
- mov r1, #0
- str r1, [r0]
- str r1, [r0, #4]
- str r1, [r0, #8]
- str r1, [r0, #12]
- str r1, [r0, #16]
- str r1, [r0, #20]
- str r1, [r0, #24]
- str r1, [r0, #28]
- bx lr
- .size fe_0,.-fe_0
- .text
- .align 2
- .globl fe_copy
- .type fe_copy, %function
-fe_copy:
- push {lr}
- # Copy
- ldrd r2, r3, [r1]
- ldr r12, [r1, #8]
- ldr lr, [r1, #12]
- strd r2, r3, [r0]
- str r12, [r0, #8]
- str lr, [r0, #12]
- ldrd r2, r3, [r1, #16]
- ldr r12, [r1, #24]
- ldr lr, [r1, #28]
- strd r2, r3, [r0, #16]
- str r12, [r0, #24]
- str lr, [r0, #28]
- pop {pc}
- .size fe_copy,.-fe_copy
- .text
- .align 2
- .globl fe_sub
- .type fe_sub, %function
-fe_sub:
- push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
- # Sub
- ldr r12, [r1]
- ldr lr, [r1, #4]
- ldrd r4, r5, [r1, #8]
- ldrd r6, r7, [r2]
- ldrd r8, r9, [r2, #8]
- subs r6, r12, r6
- sbcs r7, lr, r7
- sbcs r8, r4, r8
- sbcs r9, r5, r9
- strd r6, r7, [r0]
- strd r8, r9, [r0, #8]
- ldr r12, [r1, #16]
- ldr lr, [r1, #20]
- ldrd r4, r5, [r1, #24]
- ldrd r6, r7, [r2, #16]
- ldrd r8, r9, [r2, #24]
- sbcs r6, r12, r6
- sbcs r7, lr, r7
- sbcs r8, r4, r8
- sbc r9, r5, r9
- mov r10, #-19
- asr r3, r9, #31
- # Mask the modulus
- and r10, r3, r10
- and r11, r3, #0x7fffffff
- # Add modulus (if underflow)
- ldr r12, [r0]
- ldr lr, [r0, #4]
- ldrd r4, r5, [r0, #8]
- adds r12, r12, r10
- adcs lr, lr, r3
- adcs r4, r4, r3
- adcs r5, r5, r3
- adcs r6, r6, r3
- adcs r7, r7, r3
- adcs r8, r8, r3
- adc r9, r9, r11
- str r12, [r0]
- str lr, [r0, #4]
- strd r4, r5, [r0, #8]
- strd r6, r7, [r0, #16]
- strd r8, r9, [r0, #24]
- pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}
- .size fe_sub,.-fe_sub
- .text
- .align 2
- .globl fe_add
- .type fe_add, %function
-fe_add:
- push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
- # Add
- ldr r12, [r1]
- ldr lr, [r1, #4]
- ldrd r4, r5, [r1, #8]
- ldrd r6, r7, [r2]
- ldrd r8, r9, [r2, #8]
- adds r6, r12, r6
- adcs r7, lr, r7
- adcs r8, r4, r8
- adcs r9, r5, r9
- strd r6, r7, [r0]
- strd r8, r9, [r0, #8]
- ldr r12, [r1, #16]
- ldr lr, [r1, #20]
- ldrd r4, r5, [r1, #24]
- ldrd r6, r7, [r2, #16]
- ldrd r8, r9, [r2, #24]
- adcs r6, r12, r6
- adcs r7, lr, r7
- adcs r8, r4, r8
- adc r9, r5, r9
- mov r10, #-19
- asr r3, r9, #31
- # Mask the modulus
- and r10, r3, r10
- and r11, r3, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r12, [r0]
- ldr lr, [r0, #4]
- ldrd r4, r5, [r0, #8]
- subs r12, r12, r10
- sbcs lr, lr, r3
- sbcs r4, r4, r3
- sbcs r5, r5, r3
- sbcs r6, r6, r3
- sbcs r7, r7, r3
- sbcs r8, r8, r3
- sbc r9, r9, r11
- str r12, [r0]
- str lr, [r0, #4]
- strd r4, r5, [r0, #8]
- strd r6, r7, [r0, #16]
- strd r8, r9, [r0, #24]
- pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}
- .size fe_add,.-fe_add
- .text
- .align 2
- .globl fe_neg
- .type fe_neg, %function
-fe_neg:
- push {r4, r5, lr}
- mov r5, #-1
- mov r4, #-19
- ldrd r2, r3, [r1]
- ldr r12, [r1, #8]
- ldr lr, [r1, #12]
- subs r2, r4, r2
- sbcs r3, r5, r3
- sbcs r12, r5, r12
- sbcs lr, r5, lr
- strd r2, r3, [r0]
- str r12, [r0, #8]
- str lr, [r0, #12]
- mov r4, #0x7fffffff
- ldrd r2, r3, [r1, #16]
- ldr r12, [r1, #24]
- ldr lr, [r1, #28]
- sbcs r2, r5, r2
- sbcs r3, r5, r3
- sbcs r12, r5, r12
- sbc lr, r4, lr
- strd r2, r3, [r0, #16]
- str r12, [r0, #24]
- str lr, [r0, #28]
- pop {r4, r5, pc}
- .size fe_neg,.-fe_neg
- .text
- .align 2
- .globl fe_isnonzero
- .type fe_isnonzero, %function
-fe_isnonzero:
- push {r4, r5, r6, r7, r8, lr}
- ldrd r2, r3, [r0]
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- ldrd r4, r5, [r0, #16]
- ldrd r6, r7, [r0, #24]
- adds r1, r2, #19
- adcs r1, r3, #0
- adcs r1, r12, #0
- adcs r1, lr, #0
- adcs r1, r4, #0
- adcs r1, r5, #0
- adcs r1, r6, #0
- adc r1, r7, #0
- asr r1, r1, #31
- and r1, r1, #19
- adds r2, r2, r1
- adcs r3, r3, #0
- adcs r12, r12, #0
- adcs lr, lr, #0
- adcs r4, r4, #0
- adcs r5, r5, #0
- adcs r6, r6, #0
- adc r7, r7, #0
- and r7, r7, #0x7fffffff
- orr r2, r2, r3
- orr r12, r12, lr
- orr r4, r4, r5
- orr r6, r6, r7
- orr r12, r12, r4
- orr r2, r2, r6
- orr r0, r2, r12
- pop {r4, r5, r6, r7, r8, pc}
- .size fe_isnonzero,.-fe_isnonzero
- .text
- .align 2
- .globl fe_isnegative
- .type fe_isnegative, %function
-fe_isnegative:
- push {lr}
- ldrd r2, r3, [r0]
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- adds r1, r2, #19
- adcs r1, r3, #0
- adcs r1, r12, #0
- adcs r1, lr, #0
- ldrd r2, r3, [r0, #16]
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- adcs r1, r2, #0
- adcs r1, r3, #0
- adcs r1, r12, #0
- ldr r2, [r0]
- adc r1, lr, #0
- and r0, r2, #1
- lsr r1, r1, #31
- eor r0, r0, r1
- pop {pc}
- .size fe_isnegative,.-fe_isnegative
- .text
- .align 2
- .globl fe_cmov_table
- .type fe_cmov_table, %function
-fe_cmov_table:
- push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
- sxtb r2, r2
- sbfx r7, r2, #7, #1
- eor r10, r2, r7
- sub r10, r10, r7
- mov r3, #1
- mov r12, #0
- mov lr, #1
- mov r4, #0
- mov r5, #0
- mov r6, #0
- mov r7, #0x80000000
- ror r7, r7, #31
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #32]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #64]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #30
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #32]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #64]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #29
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #32]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #64]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #28
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #32]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #64]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #27
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #32]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #64]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #26
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #32]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #64]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #25
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #32]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #64]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #24
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #32]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #64]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- sub r1, r1, #0x2a0
- mov r8, #-19
- mov r9, #-1
- subs r8, r8, r5
- sbcs r9, r9, r6
- sbc r11, r11, r11
- asr r10, r2, #31
- eor r7, r3, lr
- and r7, r7, r10
- eor r3, r3, r7
- eor lr, lr, r7
- eor r7, r12, r4
- and r7, r7, r10
- eor r12, r12, r7
- eor r4, r4, r7
- eor r8, r8, r5
- and r8, r8, r10
- eor r5, r5, r8
- eor r9, r9, r6
- and r9, r9, r10
- eor r6, r6, r9
- str r3, [r0]
- str r12, [r0, #4]
- str lr, [r0, #32]
- str r4, [r0, #36]
- str r5, [r0, #64]
- str r6, [r0, #68]
- sbfx r7, r2, #7, #1
- eor r10, r2, r7
- sub r10, r10, r7
- mov r3, #0
- mov r12, #0
- mov lr, #0
- mov r4, #0
- mov r5, #0
- mov r6, #0
- mov r7, #0x80000000
- ror r7, r7, #31
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #8]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #40]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #72]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #30
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #8]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #40]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #72]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #29
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #8]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #40]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #72]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #28
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #8]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #40]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #72]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #27
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #8]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #40]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #72]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #26
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #8]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #40]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #72]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #25
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #8]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #40]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #72]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #24
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #8]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #40]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #72]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- sub r1, r1, #0x2a0
- mov r8, #-1
- mov r9, #-1
- rsbs r11, r11, #0
- sbcs r8, r8, r5
- sbcs r9, r9, r6
- sbc r11, r11, r11
- asr r10, r2, #31
- eor r7, r3, lr
- and r7, r7, r10
- eor r3, r3, r7
- eor lr, lr, r7
- eor r7, r12, r4
- and r7, r7, r10
- eor r12, r12, r7
- eor r4, r4, r7
- eor r8, r8, r5
- and r8, r8, r10
- eor r5, r5, r8
- eor r9, r9, r6
- and r9, r9, r10
- eor r6, r6, r9
- str r3, [r0, #8]
- str r12, [r0, #12]
- str lr, [r0, #40]
- str r4, [r0, #44]
- str r5, [r0, #72]
- str r6, [r0, #76]
- sbfx r7, r2, #7, #1
- eor r10, r2, r7
- sub r10, r10, r7
- mov r3, #0
- mov r12, #0
- mov lr, #0
- mov r4, #0
- mov r5, #0
- mov r6, #0
- mov r7, #0x80000000
- ror r7, r7, #31
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #16]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #48]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #80]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #30
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #16]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #48]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #80]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #29
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #16]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #48]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #80]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #28
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #16]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #48]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #80]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #27
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #16]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #48]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #80]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #26
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #16]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #48]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #80]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #25
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #16]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #48]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #80]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #24
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #16]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #48]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #80]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- sub r1, r1, #0x2a0
- mov r8, #-1
- mov r9, #-1
- rsbs r11, r11, #0
- sbcs r8, r8, r5
- sbcs r9, r9, r6
- sbc r11, r11, r11
- asr r10, r2, #31
- eor r7, r3, lr
- and r7, r7, r10
- eor r3, r3, r7
- eor lr, lr, r7
- eor r7, r12, r4
- and r7, r7, r10
- eor r12, r12, r7
- eor r4, r4, r7
- eor r8, r8, r5
- and r8, r8, r10
- eor r5, r5, r8
- eor r9, r9, r6
- and r9, r9, r10
- eor r6, r6, r9
- str r3, [r0, #16]
- str r12, [r0, #20]
- str lr, [r0, #48]
- str r4, [r0, #52]
- str r5, [r0, #80]
- str r6, [r0, #84]
- sbfx r7, r2, #7, #1
- eor r10, r2, r7
- sub r10, r10, r7
- mov r3, #0
- mov r12, #0
- mov lr, #0
- mov r4, #0
- mov r5, #0
- mov r6, #0
- mov r7, #0x80000000
- ror r7, r7, #31
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #24]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #56]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #88]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #30
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #24]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #56]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #88]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #29
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #24]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #56]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #88]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #28
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #24]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #56]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #88]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #27
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #24]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #56]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #88]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #26
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #24]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #56]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #88]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #25
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #24]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #56]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #88]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- add r1, r1, #0x60
- mov r7, #0x80000000
- ror r7, r7, #24
- ror r7, r7, r10
- asr r7, r7, #31
- ldrd r8, r9, [r1, #24]
- eor r8, r8, r3
- eor r9, r9, r12
- and r8, r8, r7
- and r9, r9, r7
- eor r3, r3, r8
- eor r12, r12, r9
- ldrd r8, r9, [r1, #56]
- eor r8, r8, lr
- eor r9, r9, r4
- and r8, r8, r7
- and r9, r9, r7
- eor lr, lr, r8
- eor r4, r4, r9
- ldrd r8, r9, [r1, #88]
- eor r8, r8, r5
- eor r9, r9, r6
- and r8, r8, r7
- and r9, r9, r7
- eor r5, r5, r8
- eor r6, r6, r9
- sub r1, r1, #0x2a0
- mov r8, #-1
- mov r9, #0x7fffffff
- rsbs r11, r11, #0
- sbcs r8, r8, r5
- sbc r9, r9, r6
- asr r10, r2, #31
- eor r7, r3, lr
- and r7, r7, r10
- eor r3, r3, r7
- eor lr, lr, r7
- eor r7, r12, r4
- and r7, r7, r10
- eor r12, r12, r7
- eor r4, r4, r7
- eor r8, r8, r5
- and r8, r8, r10
- eor r5, r5, r8
- eor r9, r9, r6
- and r9, r9, r10
- eor r6, r6, r9
- str r3, [r0, #24]
- str r12, [r0, #28]
- str lr, [r0, #56]
- str r4, [r0, #60]
- str r5, [r0, #88]
- str r6, [r0, #92]
- pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}
- .size fe_cmov_table,.-fe_cmov_table
- .text
- .align 2
- .globl fe_mul
- .type fe_mul, %function
-fe_mul:
- push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
- sub sp, sp, #0x40
- # Multiply
- ldr r7, [r1]
- ldr r8, [r1, #4]
- ldr r9, [r2]
- ldr lr, [r2, #4]
- # A[0] * B[0] = 0
- umull r4, r5, r7, r9
- str r4, [sp]
- # A[0] * B[1] = 1
- umull r3, r6, r7, lr
- adds r5, r5, r3
- adc r6, r6, #0
- # A[1] * B[0] = 1
- umull r3, r12, r8, r9
- adds r5, r5, r3
- mov r4, #0
- adcs r6, r6, r12
- adc r4, r4, #0
- str r5, [sp, #4]
- # A[2] * B[0] = 2
- ldr r10, [r1, #8]
- umull r3, r12, r10, r9
- adds r6, r6, r3
- adc r4, r4, r12
- # A[1] * B[1] = 2
- umull r3, r12, r8, lr
- adds r6, r6, r3
- mov r5, #0
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[0] * B[2] = 2
- ldr r11, [r2, #8]
- umull r3, r12, r7, r11
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- str r6, [sp, #8]
- # A[0] * B[3] = 3
- ldr r11, [r2, #12]
- umull r3, r12, r7, r11
- adds r4, r4, r3
- mov r6, #0
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[1] * B[2] = 3
- ldr r11, [r2, #8]
- umull r3, r12, r8, r11
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[2] * B[1] = 3
- umull r3, r12, r10, lr
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[3] * B[0] = 3
- ldr r10, [r1, #12]
- umull r3, r12, r10, r9
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- str r4, [sp, #12]
- # A[4] * B[0] = 4
- ldr r10, [r1, #16]
- umull r3, r12, r10, r9
- adds r5, r5, r3
- mov r4, #0
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[3] * B[1] = 4
- ldr r10, [r1, #12]
- umull r3, r12, r10, lr
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[2] * B[2] = 4
- ldr r10, [r1, #8]
- umull r3, r12, r10, r11
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[1] * B[3] = 4
- ldr r11, [r2, #12]
- umull r3, r12, r8, r11
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[0] * B[4] = 4
- ldr r11, [r2, #16]
- umull r3, r12, r7, r11
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- str r5, [sp, #16]
- # A[0] * B[5] = 5
- ldr r11, [r2, #20]
- umull r3, r12, r7, r11
- adds r6, r6, r3
- mov r5, #0
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[1] * B[4] = 5
- ldr r11, [r2, #16]
- umull r3, r12, r8, r11
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[2] * B[3] = 5
- ldr r11, [r2, #12]
- umull r3, r12, r10, r11
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[3] * B[2] = 5
- ldr r10, [r1, #12]
- ldr r11, [r2, #8]
- umull r3, r12, r10, r11
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[4] * B[1] = 5
- ldr r10, [r1, #16]
- umull r3, r12, r10, lr
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[5] * B[0] = 5
- ldr r10, [r1, #20]
- umull r3, r12, r10, r9
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- str r6, [sp, #20]
- # A[6] * B[0] = 6
- ldr r10, [r1, #24]
- umull r3, r12, r10, r9
- adds r4, r4, r3
- mov r6, #0
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[5] * B[1] = 6
- ldr r10, [r1, #20]
- umull r3, r12, r10, lr
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[4] * B[2] = 6
- ldr r10, [r1, #16]
- umull r3, r12, r10, r11
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[3] * B[3] = 6
- ldr r10, [r1, #12]
- ldr r11, [r2, #12]
- umull r3, r12, r10, r11
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[2] * B[4] = 6
- ldr r10, [r1, #8]
- ldr r11, [r2, #16]
- umull r3, r12, r10, r11
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[1] * B[5] = 6
- ldr r11, [r2, #20]
- umull r3, r12, r8, r11
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[0] * B[6] = 6
- ldr r11, [r2, #24]
- umull r3, r12, r7, r11
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- str r4, [sp, #24]
- # A[0] * B[7] = 7
- ldr r11, [r2, #28]
- umull r3, r12, r7, r11
- adds r5, r5, r3
- mov r4, #0
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[1] * B[6] = 7
- ldr r11, [r2, #24]
- umull r3, r12, r8, r11
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[2] * B[5] = 7
- ldr r11, [r2, #20]
- umull r3, r12, r10, r11
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[3] * B[4] = 7
- ldr r10, [r1, #12]
- ldr r11, [r2, #16]
- umull r3, r12, r10, r11
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[4] * B[3] = 7
- ldr r10, [r1, #16]
- ldr r11, [r2, #12]
- umull r3, r12, r10, r11
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[5] * B[2] = 7
- ldr r10, [r1, #20]
- ldr r11, [r2, #8]
- umull r3, r12, r10, r11
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[6] * B[1] = 7
- ldr r10, [r1, #24]
- umull r3, r12, r10, lr
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[7] * B[0] = 7
- ldr r10, [r1, #28]
- umull r3, r12, r10, r9
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- str r5, [sp, #28]
- ldr r7, [r1, #24]
- ldr r9, [r2, #24]
- # A[7] * B[1] = 8
- umull r3, r12, r10, lr
- adds r6, r6, r3
- mov r5, #0
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[6] * B[2] = 8
- umull r3, r12, r7, r11
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[5] * B[3] = 8
- ldr r10, [r1, #20]
- ldr r11, [r2, #12]
- umull r3, r12, r10, r11
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[4] * B[4] = 8
- ldr r10, [r1, #16]
- ldr r11, [r2, #16]
- umull r3, r12, r10, r11
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[3] * B[5] = 8
- ldr r10, [r1, #12]
- ldr r11, [r2, #20]
- umull r3, r12, r10, r11
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[2] * B[6] = 8
- ldr r10, [r1, #8]
- umull r3, r12, r10, r9
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[1] * B[7] = 8
- ldr r11, [r2, #28]
- umull r3, r12, r8, r11
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- str r6, [sp, #32]
- ldr r8, [r1, #28]
- mov lr, r11
- # A[2] * B[7] = 9
- umull r3, r12, r10, lr
- adds r4, r4, r3
- mov r6, #0
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[3] * B[6] = 9
- ldr r10, [r1, #12]
- umull r3, r12, r10, r9
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[4] * B[5] = 9
- ldr r10, [r1, #16]
- ldr r11, [r2, #20]
- umull r3, r12, r10, r11
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[5] * B[4] = 9
- ldr r10, [r1, #20]
- ldr r11, [r2, #16]
- umull r3, r12, r10, r11
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[6] * B[3] = 9
- ldr r11, [r2, #12]
- umull r3, r12, r7, r11
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[7] * B[2] = 9
- ldr r11, [r2, #8]
- umull r3, r12, r8, r11
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- str r4, [sp, #36]
- # A[7] * B[3] = 10
- ldr r11, [r2, #12]
- umull r3, r12, r8, r11
- adds r5, r5, r3
- mov r4, #0
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[6] * B[4] = 10
- ldr r11, [r2, #16]
- umull r3, r12, r7, r11
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[5] * B[5] = 10
- ldr r11, [r2, #20]
- umull r3, r12, r10, r11
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[4] * B[6] = 10
- ldr r10, [r1, #16]
- umull r3, r12, r10, r9
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[3] * B[7] = 10
- ldr r10, [r1, #12]
- umull r3, r12, r10, lr
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- str r5, [sp, #40]
- # A[4] * B[7] = 11
- ldr r10, [r1, #16]
- umull r3, r12, r10, lr
- adds r6, r6, r3
- mov r5, #0
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[5] * B[6] = 11
- ldr r10, [r1, #20]
- umull r3, r12, r10, r9
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[6] * B[5] = 11
- umull r3, r12, r7, r11
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- # A[7] * B[4] = 11
- ldr r11, [r2, #16]
- umull r3, r12, r8, r11
- adds r6, r6, r3
- adcs r4, r4, r12
- adc r5, r5, #0
- str r6, [sp, #44]
- # A[7] * B[5] = 12
- ldr r11, [r2, #20]
- umull r3, r12, r8, r11
- adds r4, r4, r3
- mov r6, #0
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[6] * B[6] = 12
- umull r3, r12, r7, r9
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- # A[5] * B[7] = 12
- umull r3, r12, r10, lr
- adds r4, r4, r3
- adcs r5, r5, r12
- adc r6, r6, #0
- str r4, [sp, #48]
- # A[6] * B[7] = 13
- umull r3, r12, r7, lr
- adds r5, r5, r3
- mov r4, #0
- adcs r6, r6, r12
- adc r4, r4, #0
- # A[7] * B[6] = 13
- umull r3, r12, r8, r9
- adds r5, r5, r3
- adcs r6, r6, r12
- adc r4, r4, #0
- str r5, [sp, #52]
- # A[7] * B[7] = 14
- umull r3, r12, r8, lr
- adds r6, r6, r3
- adc r4, r4, r12
- str r6, [sp, #56]
- str r4, [sp, #60]
- # Reduce
- # Load bottom half
- ldrd r4, r5, [sp]
- ldrd r6, r7, [sp, #8]
- ldrd r8, r9, [sp, #16]
- ldrd r10, r11, [sp, #24]
- lsr r3, r11, #31
- and r11, r11, #0x7fffffff
- mov lr, #19
- ldr r1, [sp, #32]
- orr r3, r3, r1, lsl #1
- umull r3, r12, lr, r3
- adds r4, r4, r3
- mov r2, #0
- adcs r5, r5, r12
- adc r2, r2, #0
- lsr r3, r1, #31
- ldr r1, [sp, #36]
- orr r3, r3, r1, lsl #1
- umull r3, r12, lr, r3
- add r12, r12, r2
- adds r5, r5, r3
- mov r2, #0
- adcs r6, r6, r12
- adc r2, r2, #0
- lsr r3, r1, #31
- ldr r1, [sp, #40]
- orr r3, r3, r1, lsl #1
- umull r3, r12, lr, r3
- add r12, r12, r2
- adds r6, r6, r3
- mov r2, #0
- adcs r7, r7, r12
- adc r2, r2, #0
- lsr r3, r1, #31
- ldr r1, [sp, #44]
- orr r3, r3, r1, lsl #1
- umull r3, r12, lr, r3
- add r12, r12, r2
- adds r7, r7, r3
- mov r2, #0
- adcs r8, r8, r12
- adc r2, r2, #0
- lsr r3, r1, #31
- ldr r1, [sp, #48]
- orr r3, r3, r1, lsl #1
- umull r3, r12, lr, r3
- add r12, r12, r2
- adds r8, r8, r3
- mov r2, #0
- adcs r9, r9, r12
- adc r2, r2, #0
- lsr r3, r1, #31
- ldr r1, [sp, #52]
- orr r3, r3, r1, lsl #1
- umull r3, r12, lr, r3
- add r12, r12, r2
- adds r9, r9, r3
- mov r2, #0
- adcs r10, r10, r12
- adc r2, r2, #0
- lsr r3, r1, #31
- ldr r1, [sp, #56]
- orr r3, r3, r1, lsl #1
- umull r3, r12, lr, r3
- add r12, r12, r2
- adds r10, r10, r3
- mov r2, #0
- adcs r11, r11, r12
- adc r2, r2, #0
- lsr r3, r1, #31
- ldr r1, [sp, #60]
- orr r3, r3, r1, lsl #1
- umull r3, r12, lr, r3
- adds r11, r11, r3
- adc r3, r12, r2
- # Overflow
- lsl r3, r3, #1
- orr r3, r3, r11, lsr #31
- mul r3, r3, lr
- and r11, r11, #0x7fffffff
- adds r4, r4, r3
- adcs r5, r5, #0
- adcs r6, r6, #0
- adcs r7, r7, #0
- adcs r8, r8, #0
- adcs r9, r9, #0
- adcs r10, r10, #0
- adc r11, r11, #0
- # Reduce if top bit set
- asr r3, r11, #31
- and r3, r3, lr
- and r11, r11, #0x7fffffff
- adds r4, r4, r3
- adcs r5, r5, #0
- adcs r6, r6, #0
- adcs r7, r7, #0
- adcs r8, r8, #0
- adcs r9, r9, #0
- adcs r10, r10, #0
- adc r11, r11, #0
- # Store
- strd r4, r5, [r0]
- strd r6, r7, [r0, #8]
- strd r8, r9, [r0, #16]
- strd r10, r11, [r0, #24]
- add sp, sp, #0x40
- pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}
- .size fe_mul,.-fe_mul
- .text
- .align 2
- .globl fe_sq
- .type fe_sq, %function
-fe_sq:
- push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
- sub sp, sp, #0x40
- # Square
- ldr r7, [r1]
- ldr r8, [r1, #4]
- ldr r9, [r1, #8]
- ldr r10, [r1, #12]
- ldr r12, [r1, #16]
- # A[0] * A[0] = 0
- umull r4, r5, r7, r7
- str r4, [sp]
- # A[0] * A[1] = 1
- umull r2, r3, r7, r8
- mov r6, #0
- adds r5, r5, r2
- adc r6, r6, r3
- adds r5, r5, r2
- mov r4, #0
- adcs r6, r6, r3
- adc r4, r4, #0
- str r5, [sp, #4]
- # A[1] * A[1] = 2
- umull r2, r3, r8, r8
- adds r6, r6, r2
- adc r4, r4, r3
- # A[0] * A[2] = 2
- umull r2, r3, r7, r9
- adds r6, r6, r2
- mov r5, #0
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- str r6, [sp, #8]
- # A[0] * A[3] = 3
- umull r2, r3, r7, r10
- adds r4, r4, r2
- adc r5, r5, r3
- adds r4, r4, r2
- mov r6, #0
- adcs r5, r5, r3
- adc r6, r6, #0
- # A[1] * A[2] = 3
- umull r2, r3, r8, r9
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- str r4, [sp, #12]
- # A[2] * A[2] = 4
- umull r2, r3, r9, r9
- adds r5, r5, r2
- mov r4, #0
- adcs r6, r6, r3
- adc r4, r4, #0
- # A[1] * A[3] = 4
- umull r2, r3, r8, r10
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- # A[0] * A[4] = 4
- umull r2, r3, r7, r12
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- str r5, [sp, #16]
- # A[0] * A[5] = 5
- ldr r11, [r1, #20]
- umull r2, r3, r7, r11
- adds r6, r6, r2
- mov r5, #0
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- # A[1] * A[4] = 5
- umull r2, r3, r8, r12
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- # A[2] * A[3] = 5
- umull r2, r3, r9, r10
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- str r6, [sp, #20]
- # A[3] * A[3] = 6
- umull r2, r3, r10, r10
- adds r4, r4, r2
- mov r6, #0
- adcs r5, r5, r3
- adc r6, r6, #0
- # A[2] * A[4] = 6
- umull r2, r3, r9, r12
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- # A[1] * A[5] = 6
- umull r2, r3, r8, r11
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- # A[0] * A[6] = 6
- ldr r11, [r1, #24]
- umull r2, r3, r7, r11
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- str r4, [sp, #24]
- # A[0] * A[7] = 7
- ldr r11, [r1, #28]
- umull r2, r3, r7, r11
- adds r5, r5, r2
- mov r4, #0
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- # A[1] * A[6] = 7
- ldr r11, [r1, #24]
- umull r2, r3, r8, r11
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- # A[2] * A[5] = 7
- ldr r11, [r1, #20]
- umull r2, r3, r9, r11
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- # A[3] * A[4] = 7
- umull r2, r3, r10, r12
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- str r5, [sp, #28]
- # A[4] * A[4] = 8
- umull r2, r3, r12, r12
- adds r6, r6, r2
- mov r5, #0
- adcs r4, r4, r3
- adc r5, r5, #0
- # A[3] * A[5] = 8
- umull r2, r3, r10, r11
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- # A[2] * A[6] = 8
- ldr r11, [r1, #24]
- umull r2, r3, r9, r11
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- # A[1] * A[7] = 8
- ldr r11, [r1, #28]
- umull r2, r3, r8, r11
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- str r6, [sp, #32]
- ldr r7, [r1, #20]
- # A[2] * A[7] = 9
- umull r2, r3, r9, r11
- adds r4, r4, r2
- mov r6, #0
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- # A[3] * A[6] = 9
- ldr r11, [r1, #24]
- umull r2, r3, r10, r11
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- # A[4] * A[5] = 9
- umull r2, r3, r12, r7
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- str r4, [sp, #36]
- mov r8, r11
- # A[5] * A[5] = 10
- umull r2, r3, r7, r7
- adds r5, r5, r2
- mov r4, #0
- adcs r6, r6, r3
- adc r4, r4, #0
- # A[4] * A[6] = 10
- umull r2, r3, r12, r8
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- # A[3] * A[7] = 10
- ldr r11, [r1, #28]
- umull r2, r3, r10, r11
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- str r5, [sp, #40]
- mov r9, r11
- # A[4] * A[7] = 11
- umull r2, r3, r12, r9
- adds r6, r6, r2
- mov r5, #0
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- # A[5] * A[6] = 11
- umull r2, r3, r7, r8
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- str r6, [sp, #44]
- # A[6] * A[6] = 12
- umull r2, r3, r8, r8
- adds r4, r4, r2
- mov r6, #0
- adcs r5, r5, r3
- adc r6, r6, #0
- # A[5] * A[7] = 12
- umull r2, r3, r7, r9
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- str r4, [sp, #48]
- # A[6] * A[7] = 13
- umull r2, r3, r8, r9
- adds r5, r5, r2
- mov r4, #0
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- str r5, [sp, #52]
- # A[7] * A[7] = 14
- umull r2, r3, r9, r9
- adds r6, r6, r2
- adc r4, r4, r3
- str r6, [sp, #56]
- str r4, [sp, #60]
- # Reduce
- # Load bottom half
- ldrd r4, r5, [sp]
- ldrd r6, r7, [sp, #8]
- ldrd r8, r9, [sp, #16]
- ldrd r10, r11, [sp, #24]
- lsr r2, r11, #31
- and r11, r11, #0x7fffffff
- mov r12, #19
- ldr r1, [sp, #32]
- orr r2, r2, r1, lsl #1
- umull r2, r3, r12, r2
- adds r4, r4, r2
- mov lr, #0
- adcs r5, r5, r3
- adc lr, lr, #0
- lsr r2, r1, #31
- ldr r1, [sp, #36]
- orr r2, r2, r1, lsl #1
- umull r2, r3, r12, r2
- add r3, r3, lr
- adds r5, r5, r2
- mov lr, #0
- adcs r6, r6, r3
- adc lr, lr, #0
- lsr r2, r1, #31
- ldr r1, [sp, #40]
- orr r2, r2, r1, lsl #1
- umull r2, r3, r12, r2
- add r3, r3, lr
- adds r6, r6, r2
- mov lr, #0
- adcs r7, r7, r3
- adc lr, lr, #0
- lsr r2, r1, #31
- ldr r1, [sp, #44]
- orr r2, r2, r1, lsl #1
- umull r2, r3, r12, r2
- add r3, r3, lr
- adds r7, r7, r2
- mov lr, #0
- adcs r8, r8, r3
- adc lr, lr, #0
- lsr r2, r1, #31
- ldr r1, [sp, #48]
- orr r2, r2, r1, lsl #1
- umull r2, r3, r12, r2
- add r3, r3, lr
- adds r8, r8, r2
- mov lr, #0
- adcs r9, r9, r3
- adc lr, lr, #0
- lsr r2, r1, #31
- ldr r1, [sp, #52]
- orr r2, r2, r1, lsl #1
- umull r2, r3, r12, r2
- add r3, r3, lr
- adds r9, r9, r2
- mov lr, #0
- adcs r10, r10, r3
- adc lr, lr, #0
- lsr r2, r1, #31
- ldr r1, [sp, #56]
- orr r2, r2, r1, lsl #1
- umull r2, r3, r12, r2
- add r3, r3, lr
- adds r10, r10, r2
- mov lr, #0
- adcs r11, r11, r3
- adc lr, lr, #0
- lsr r2, r1, #31
- ldr r1, [sp, #60]
- orr r2, r2, r1, lsl #1
- umull r2, r3, r12, r2
- adds r11, r11, r2
- adc r2, r3, lr
- # Overflow
- lsl r2, r2, #1
- orr r2, r2, r11, lsr #31
- mul r2, r2, r12
- and r11, r11, #0x7fffffff
- adds r4, r4, r2
- adcs r5, r5, #0
- adcs r6, r6, #0
- adcs r7, r7, #0
- adcs r8, r8, #0
- adcs r9, r9, #0
- adcs r10, r10, #0
- adc r11, r11, #0
- # Reduce if top bit set
- asr r2, r11, #31
- and r2, r2, r12
- and r11, r11, #0x7fffffff
- adds r4, r4, r2
- adcs r5, r5, #0
- adcs r6, r6, #0
- adcs r7, r7, #0
- adcs r8, r8, #0
- adcs r9, r9, #0
- adcs r10, r10, #0
- adc r11, r11, #0
- # Store
- strd r4, r5, [r0]
- strd r6, r7, [r0, #8]
- strd r8, r9, [r0, #16]
- strd r10, r11, [r0, #24]
- add sp, sp, #0x40
- pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}
- .size fe_sq,.-fe_sq
- .text
- .align 2
- .globl fe_mul121666
- .type fe_mul121666, %function
-fe_mul121666:
- push {r4, r5, r6, r7, r8, r9, r10, lr}
- # Multiply by 121666
- ldrd r2, r3, [r1]
- ldrd r4, r5, [r1, #8]
- ldrd r6, r7, [r1, #16]
- ldrd r8, r9, [r1, #24]
- movw lr, #0xdb42
- movt lr, #1
- umull r2, r10, r2, lr
- umull r3, r12, r3, lr
- adds r3, r3, r10
- adc r10, r12, #0
- umull r4, r12, r4, lr
- adds r4, r4, r10
- adc r10, r12, #0
- umull r5, r12, r5, lr
- adds r5, r5, r10
- adc r10, r12, #0
- umull r6, r12, r6, lr
- adds r6, r6, r10
- adc r10, r12, #0
- umull r7, r12, r7, lr
- adds r7, r7, r10
- adc r10, r12, #0
- umull r8, r12, r8, lr
- adds r8, r8, r10
- adc r10, r12, #0
- umull r9, r12, r9, lr
- adds r9, r9, r10
- adc r10, r12, #0
- mov lr, #19
- lsl r10, r10, #1
- orr r10, r10, r9, lsr #31
- mul r10, r10, lr
- and r9, r9, #0x7fffffff
- adds r2, r2, r10
- adcs r3, r3, #0
- adcs r4, r4, #0
- adcs r5, r5, #0
- adcs r6, r6, #0
- adcs r7, r7, #0
- adcs r8, r8, #0
- adc r9, r9, #0
- strd r2, r3, [r0]
- strd r4, r5, [r0, #8]
- strd r6, r7, [r0, #16]
- strd r8, r9, [r0, #24]
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
- .size fe_mul121666,.-fe_mul121666
- .text
- .align 2
- .globl fe_sq2
- .type fe_sq2, %function
-fe_sq2:
- push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
- sub sp, sp, #0x40
- # Square * 2
- ldr r7, [r1]
- ldr r8, [r1, #4]
- ldr r9, [r1, #8]
- ldr r10, [r1, #12]
- ldr r12, [r1, #16]
- # A[0] * A[0] = 0
- umull r4, r5, r7, r7
- str r4, [sp]
- # A[0] * A[1] = 1
- umull r2, r3, r7, r8
- mov r6, #0
- adds r5, r5, r2
- adc r6, r6, r3
- adds r5, r5, r2
- mov r4, #0
- adcs r6, r6, r3
- adc r4, r4, #0
- str r5, [sp, #4]
- # A[1] * A[1] = 2
- umull r2, r3, r8, r8
- adds r6, r6, r2
- adc r4, r4, r3
- # A[0] * A[2] = 2
- umull r2, r3, r7, r9
- adds r6, r6, r2
- mov r5, #0
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- str r6, [sp, #8]
- # A[0] * A[3] = 3
- umull r2, r3, r7, r10
- adds r4, r4, r2
- adc r5, r5, r3
- adds r4, r4, r2
- mov r6, #0
- adcs r5, r5, r3
- adc r6, r6, #0
- # A[1] * A[2] = 3
- umull r2, r3, r8, r9
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- str r4, [sp, #12]
- # A[2] * A[2] = 4
- umull r2, r3, r9, r9
- adds r5, r5, r2
- mov r4, #0
- adcs r6, r6, r3
- adc r4, r4, #0
- # A[1] * A[3] = 4
- umull r2, r3, r8, r10
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- # A[0] * A[4] = 4
- umull r2, r3, r7, r12
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- str r5, [sp, #16]
- # A[0] * A[5] = 5
- ldr r11, [r1, #20]
- umull r2, r3, r7, r11
- adds r6, r6, r2
- mov r5, #0
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- # A[1] * A[4] = 5
- umull r2, r3, r8, r12
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- # A[2] * A[3] = 5
- umull r2, r3, r9, r10
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- str r6, [sp, #20]
- # A[3] * A[3] = 6
- umull r2, r3, r10, r10
- adds r4, r4, r2
- mov r6, #0
- adcs r5, r5, r3
- adc r6, r6, #0
- # A[2] * A[4] = 6
- umull r2, r3, r9, r12
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- # A[1] * A[5] = 6
- umull r2, r3, r8, r11
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- # A[0] * A[6] = 6
- ldr r11, [r1, #24]
- umull r2, r3, r7, r11
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- str r4, [sp, #24]
- # A[0] * A[7] = 7
- ldr r11, [r1, #28]
- umull r2, r3, r7, r11
- adds r5, r5, r2
- mov r4, #0
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- # A[1] * A[6] = 7
- ldr r11, [r1, #24]
- umull r2, r3, r8, r11
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- # A[2] * A[5] = 7
- ldr r11, [r1, #20]
- umull r2, r3, r9, r11
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- # A[3] * A[4] = 7
- umull r2, r3, r10, r12
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- str r5, [sp, #28]
- # A[4] * A[4] = 8
- umull r2, r3, r12, r12
- adds r6, r6, r2
- mov r5, #0
- adcs r4, r4, r3
- adc r5, r5, #0
- # A[3] * A[5] = 8
- umull r2, r3, r10, r11
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- # A[2] * A[6] = 8
- ldr r11, [r1, #24]
- umull r2, r3, r9, r11
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- # A[1] * A[7] = 8
- ldr r11, [r1, #28]
- umull r2, r3, r8, r11
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- str r6, [sp, #32]
- ldr r7, [r1, #20]
- # A[2] * A[7] = 9
- umull r2, r3, r9, r11
- adds r4, r4, r2
- mov r6, #0
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- # A[3] * A[6] = 9
- ldr r11, [r1, #24]
- umull r2, r3, r10, r11
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- # A[4] * A[5] = 9
- umull r2, r3, r12, r7
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- str r4, [sp, #36]
- mov r8, r11
- # A[5] * A[5] = 10
- umull r2, r3, r7, r7
- adds r5, r5, r2
- mov r4, #0
- adcs r6, r6, r3
- adc r4, r4, #0
- # A[4] * A[6] = 10
- umull r2, r3, r12, r8
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- # A[3] * A[7] = 10
- ldr r11, [r1, #28]
- umull r2, r3, r10, r11
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- str r5, [sp, #40]
- mov r9, r11
- # A[4] * A[7] = 11
- umull r2, r3, r12, r9
- adds r6, r6, r2
- mov r5, #0
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- # A[5] * A[6] = 11
- umull r2, r3, r7, r8
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- adds r6, r6, r2
- adcs r4, r4, r3
- adc r5, r5, #0
- str r6, [sp, #44]
- # A[6] * A[6] = 12
- umull r2, r3, r8, r8
- adds r4, r4, r2
- mov r6, #0
- adcs r5, r5, r3
- adc r6, r6, #0
- # A[5] * A[7] = 12
- umull r2, r3, r7, r9
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- adds r4, r4, r2
- adcs r5, r5, r3
- adc r6, r6, #0
- str r4, [sp, #48]
- # A[6] * A[7] = 13
- umull r2, r3, r8, r9
- adds r5, r5, r2
- mov r4, #0
- adcs r6, r6, r3
- adc r4, r4, #0
- adds r5, r5, r2
- adcs r6, r6, r3
- adc r4, r4, #0
- str r5, [sp, #52]
- # A[7] * A[7] = 14
- umull r2, r3, r9, r9
- adds r6, r6, r2
- adc r4, r4, r3
- str r6, [sp, #56]
- str r4, [sp, #60]
- # Double and Reduce
- # Load bottom half
- ldrd r4, r5, [sp]
- ldrd r6, r7, [sp, #8]
- ldrd r8, r9, [sp, #16]
- ldrd r10, r11, [sp, #24]
- lsr r2, r11, #30
- lsl r11, r11, #1
- orr r11, r11, r10, lsr #31
- lsl r10, r10, #1
- orr r10, r10, r9, lsr #31
- lsl r9, r9, #1
- orr r9, r9, r8, lsr #31
- lsl r8, r8, #1
- orr r8, r8, r7, lsr #31
- lsl r7, r7, #1
- orr r7, r7, r6, lsr #31
- lsl r6, r6, #1
- orr r6, r6, r5, lsr #31
- lsl r5, r5, #1
- orr r5, r5, r4, lsr #31
- lsl r4, r4, #1
- and r11, r11, #0x7fffffff
- mov r12, #19
- ldr r1, [sp, #32]
- orr r2, r2, r1, lsl #2
- umull r2, r3, r12, r2
- adds r4, r4, r2
- mov lr, #0
- adcs r5, r5, r3
- adc lr, lr, #0
- lsr r2, r1, #30
- ldr r1, [sp, #36]
- orr r2, r2, r1, lsl #2
- umull r2, r3, r12, r2
- add r3, r3, lr
- adds r5, r5, r2
- mov lr, #0
- adcs r6, r6, r3
- adc lr, lr, #0
- lsr r2, r1, #30
- ldr r1, [sp, #40]
- orr r2, r2, r1, lsl #2
- umull r2, r3, r12, r2
- add r3, r3, lr
- adds r6, r6, r2
- mov lr, #0
- adcs r7, r7, r3
- adc lr, lr, #0
- lsr r2, r1, #30
- ldr r1, [sp, #44]
- orr r2, r2, r1, lsl #2
- umull r2, r3, r12, r2
- add r3, r3, lr
- adds r7, r7, r2
- mov lr, #0
- adcs r8, r8, r3
- adc lr, lr, #0
- lsr r2, r1, #30
- ldr r1, [sp, #48]
- orr r2, r2, r1, lsl #2
- umull r2, r3, r12, r2
- add r3, r3, lr
- adds r8, r8, r2
- mov lr, #0
- adcs r9, r9, r3
- adc lr, lr, #0
- lsr r2, r1, #30
- ldr r1, [sp, #52]
- orr r2, r2, r1, lsl #2
- umull r2, r3, r12, r2
- add r3, r3, lr
- adds r9, r9, r2
- mov lr, #0
- adcs r10, r10, r3
- adc lr, lr, #0
- lsr r2, r1, #30
- ldr r1, [sp, #56]
- orr r2, r2, r1, lsl #2
- umull r2, r3, r12, r2
- add r3, r3, lr
- adds r10, r10, r2
- mov lr, #0
- adcs r11, r11, r3
- adc lr, lr, #0
- lsr r2, r1, #30
- ldr r1, [sp, #60]
- orr r2, r2, r1, lsl #2
- umull r2, r3, r12, r2
- adds r11, r11, r2
- adc r2, r3, lr
- # Overflow
- lsl r2, r2, #1
- orr r2, r2, r11, lsr #31
- mul r2, r2, r12
- and r11, r11, #0x7fffffff
- adds r4, r4, r2
- adcs r5, r5, #0
- adcs r6, r6, #0
- adcs r7, r7, #0
- adcs r8, r8, #0
- adcs r9, r9, #0
- adcs r10, r10, #0
- adc r11, r11, #0
- # Reduce if top bit set
- asr r2, r11, #31
- and r2, r2, r12
- and r11, r11, #0x7fffffff
- adds r4, r4, r2
- adcs r5, r5, #0
- adcs r6, r6, #0
- adcs r7, r7, #0
- adcs r8, r8, #0
- adcs r9, r9, #0
- adcs r10, r10, #0
- adc r11, r11, #0
- # Store
- strd r4, r5, [r0]
- strd r6, r7, [r0, #8]
- strd r8, r9, [r0, #16]
- strd r10, r11, [r0, #24]
- add sp, sp, #0x40
- pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}
- .size fe_sq2,.-fe_sq2
- .text
- .align 2
- .globl fe_invert
- .type fe_invert, %function
-fe_invert:
- push {r4, lr}
- sub sp, sp, #0x88
- # Invert
- str r0, [sp, #128]
- str r1, [sp, #132]
- mov r0, sp
- ldr r1, [sp, #132]
- bl fe_sq
- add r0, sp, #32
- mov r1, sp
- bl fe_sq
- add r0, sp, #32
- add r1, sp, #32
- bl fe_sq
- add r0, sp, #32
- ldr r1, [sp, #132]
- add r2, sp, #32
- bl fe_mul
- mov r0, sp
- mov r1, sp
- add r2, sp, #32
- bl fe_mul
- add r0, sp, #0x40
- mov r1, sp
- bl fe_sq
- add r0, sp, #32
- add r1, sp, #32
- add r2, sp, #0x40
- bl fe_mul
- add r0, sp, #0x40
- add r1, sp, #32
- bl fe_sq
- mov r4, #4
-L_fe_invert1:
- add r0, sp, #0x40
- add r1, sp, #0x40
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_invert1
- add r0, sp, #32
- add r1, sp, #0x40
- add r2, sp, #32
- bl fe_mul
- add r0, sp, #0x40
- add r1, sp, #32
- bl fe_sq
- mov r4, #9
-L_fe_invert2:
- add r0, sp, #0x40
- add r1, sp, #0x40
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_invert2
- add r0, sp, #0x40
- add r1, sp, #0x40
- add r2, sp, #32
- bl fe_mul
- add r0, sp, #0x60
- add r1, sp, #0x40
- bl fe_sq
- mov r4, #19
-L_fe_invert3:
- add r0, sp, #0x60
- add r1, sp, #0x60
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_invert3
- add r0, sp, #0x40
- add r1, sp, #0x60
- add r2, sp, #0x40
- bl fe_mul
- mov r4, #10
-L_fe_invert4:
- add r0, sp, #0x40
- add r1, sp, #0x40
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_invert4
- add r0, sp, #32
- add r1, sp, #0x40
- add r2, sp, #32
- bl fe_mul
- add r0, sp, #0x40
- add r1, sp, #32
- bl fe_sq
- mov r4, #49
-L_fe_invert5:
- add r0, sp, #0x40
- add r1, sp, #0x40
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_invert5
- add r0, sp, #0x40
- add r1, sp, #0x40
- add r2, sp, #32
- bl fe_mul
- add r0, sp, #0x60
- add r1, sp, #0x40
- bl fe_sq
- mov r4, #0x63
-L_fe_invert6:
- add r0, sp, #0x60
- add r1, sp, #0x60
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_invert6
- add r0, sp, #0x40
- add r1, sp, #0x60
- add r2, sp, #0x40
- bl fe_mul
- mov r4, #50
-L_fe_invert7:
- add r0, sp, #0x40
- add r1, sp, #0x40
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_invert7
- add r0, sp, #32
- add r1, sp, #0x40
- add r2, sp, #32
- bl fe_mul
- mov r4, #5
-L_fe_invert8:
- add r0, sp, #32
- add r1, sp, #32
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_invert8
- ldr r0, [sp, #128]
- add r1, sp, #32
- mov r2, sp
- bl fe_mul
- ldr r1, [sp, #132]
- ldr r0, [sp, #128]
- add sp, sp, #0x88
- pop {r4, pc}
- .size fe_invert,.-fe_invert
- .text
- .align 2
- .globl curve25519
- .type curve25519, %function
-curve25519:
- push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
- sub sp, sp, #0xbc
- str r0, [sp, #160]
- str r1, [sp, #164]
- str r2, [sp, #168]
- mov r1, #0
- str r1, [sp, #172]
- # Set one
- mov r11, #1
- mov r10, #0
- str r11, [r0]
- str r10, [r0, #4]
- str r10, [r0, #8]
- str r10, [r0, #12]
- str r10, [r0, #16]
- str r10, [r0, #20]
- str r10, [r0, #24]
- str r10, [r0, #28]
- # Set zero
- mov r10, #0
- str r10, [sp]
- str r10, [sp, #4]
- str r10, [sp, #8]
- str r10, [sp, #12]
- str r10, [sp, #16]
- str r10, [sp, #20]
- str r10, [sp, #24]
- str r10, [sp, #28]
- # Set one
- mov r11, #1
- mov r10, #0
- str r11, [sp, #32]
- str r10, [sp, #36]
- str r10, [sp, #40]
- str r10, [sp, #44]
- str r10, [sp, #48]
- str r10, [sp, #52]
- str r10, [sp, #56]
- str r10, [sp, #60]
- # Copy
- ldrd r4, r5, [r2]
- ldrd r6, r7, [r2, #8]
- strd r4, r5, [sp, #64]
- strd r6, r7, [sp, #72]
- ldrd r4, r5, [r2, #16]
- ldrd r6, r7, [r2, #24]
- strd r4, r5, [sp, #80]
- strd r6, r7, [sp, #88]
- mov r1, #30
- str r1, [sp, #180]
- mov r2, #28
- str r2, [sp, #176]
-L_curve25519_words:
-L_curve25519_bits:
- ldr r1, [sp, #164]
- ldr r2, [r1, r2]
- ldr r1, [sp, #180]
- lsr r2, r2, r1
- and r2, r2, #1
- str r2, [sp, #184]
- ldr r1, [sp, #172]
- eor r1, r1, r2
- str r1, [sp, #172]
- ldr r0, [sp, #160]
- # Conditional Swap
- neg r1, r1
- ldrd r4, r5, [r0]
- ldrd r6, r7, [sp, #64]
- eor r8, r4, r6
- eor r9, r5, r7
- and r8, r8, r1
- and r9, r9, r1
- eor r4, r4, r8
- eor r5, r5, r9
- eor r6, r6, r8
- eor r7, r7, r9
- strd r4, r5, [r0]
- strd r6, r7, [sp, #64]
- ldrd r4, r5, [r0, #8]
- ldrd r6, r7, [sp, #72]
- eor r8, r4, r6
- eor r9, r5, r7
- and r8, r8, r1
- and r9, r9, r1
- eor r4, r4, r8
- eor r5, r5, r9
- eor r6, r6, r8
- eor r7, r7, r9
- strd r4, r5, [r0, #8]
- strd r6, r7, [sp, #72]
- ldrd r4, r5, [r0, #16]
- ldrd r6, r7, [sp, #80]
- eor r8, r4, r6
- eor r9, r5, r7
- and r8, r8, r1
- and r9, r9, r1
- eor r4, r4, r8
- eor r5, r5, r9
- eor r6, r6, r8
- eor r7, r7, r9
- strd r4, r5, [r0, #16]
- strd r6, r7, [sp, #80]
- ldrd r4, r5, [r0, #24]
- ldrd r6, r7, [sp, #88]
- eor r8, r4, r6
- eor r9, r5, r7
- and r8, r8, r1
- and r9, r9, r1
- eor r4, r4, r8
- eor r5, r5, r9
- eor r6, r6, r8
- eor r7, r7, r9
- strd r4, r5, [r0, #24]
- strd r6, r7, [sp, #88]
- ldr r1, [sp, #172]
- # Conditional Swap
- neg r1, r1
- ldrd r4, r5, [sp]
- ldrd r6, r7, [sp, #32]
- eor r8, r4, r6
- eor r9, r5, r7
- and r8, r8, r1
- and r9, r9, r1
- eor r4, r4, r8
- eor r5, r5, r9
- eor r6, r6, r8
- eor r7, r7, r9
- strd r4, r5, [sp]
- strd r6, r7, [sp, #32]
- ldrd r4, r5, [sp, #8]
- ldrd r6, r7, [sp, #40]
- eor r8, r4, r6
- eor r9, r5, r7
- and r8, r8, r1
- and r9, r9, r1
- eor r4, r4, r8
- eor r5, r5, r9
- eor r6, r6, r8
- eor r7, r7, r9
- strd r4, r5, [sp, #8]
- strd r6, r7, [sp, #40]
- ldrd r4, r5, [sp, #16]
- ldrd r6, r7, [sp, #48]
- eor r8, r4, r6
- eor r9, r5, r7
- and r8, r8, r1
- and r9, r9, r1
- eor r4, r4, r8
- eor r5, r5, r9
- eor r6, r6, r8
- eor r7, r7, r9
- strd r4, r5, [sp, #16]
- strd r6, r7, [sp, #48]
- ldrd r4, r5, [sp, #24]
- ldrd r6, r7, [sp, #56]
- eor r8, r4, r6
- eor r9, r5, r7
- and r8, r8, r1
- and r9, r9, r1
- eor r4, r4, r8
- eor r5, r5, r9
- eor r6, r6, r8
- eor r7, r7, r9
- strd r4, r5, [sp, #24]
- strd r6, r7, [sp, #56]
- ldr r1, [sp, #184]
- str r1, [sp, #172]
- # Add-Sub
- # Add
- ldrd r4, r5, [r0]
- ldrd r6, r7, [sp]
- adds r8, r4, r6
- mov r3, #0
- adcs r9, r5, r7
- adc r3, r3, #0
- strd r8, r9, [r0]
- # Sub
- subs r10, r4, r6
- mov r12, #0
- sbcs r11, r5, r7
- adc r12, r12, #0
- strd r10, r11, [sp, #128]
- # Add
- ldrd r4, r5, [r0, #8]
- ldrd r6, r7, [sp, #8]
- adds r3, r3, #-1
- adcs r8, r4, r6
- mov r3, #0
- adcs r9, r5, r7
- adc r3, r3, #0
- strd r8, r9, [r0, #8]
- # Sub
- adds r12, r12, #-1
- sbcs r10, r4, r6
- mov r12, #0
- sbcs r11, r5, r7
- adc r12, r12, #0
- strd r10, r11, [sp, #136]
- # Add
- ldrd r4, r5, [r0, #16]
- ldrd r6, r7, [sp, #16]
- adds r3, r3, #-1
- adcs r8, r4, r6
- mov r3, #0
- adcs r9, r5, r7
- adc r3, r3, #0
- strd r8, r9, [r0, #16]
- # Sub
- adds r12, r12, #-1
- sbcs r10, r4, r6
- mov r12, #0
- sbcs r11, r5, r7
- adc r12, r12, #0
- strd r10, r11, [sp, #144]
- # Add
- ldrd r4, r5, [r0, #24]
- ldrd r6, r7, [sp, #24]
- adds r3, r3, #-1
- adcs r8, r4, r6
- adc r9, r5, r7
- # Sub
- adds r12, r12, #-1
- sbcs r10, r4, r6
- sbc r11, r5, r7
- mov r3, #-19
- asr r2, r9, #31
- # Mask the modulus
- and r3, r2, r3
- and r12, r2, #0x7fffffff
- # Sub modulus (if overflow)
- ldrd r4, r5, [r0]
- subs r4, r4, r3
- sbcs r5, r5, r2
- strd r4, r5, [r0]
- ldrd r4, r5, [r0, #8]
- sbcs r4, r4, r2
- sbcs r5, r5, r2
- strd r4, r5, [r0, #8]
- ldrd r4, r5, [r0, #16]
- sbcs r4, r4, r2
- sbcs r5, r5, r2
- strd r4, r5, [r0, #16]
- sbcs r8, r8, r2
- sbc r9, r9, r12
- strd r8, r9, [r0, #24]
- mov r3, #-19
- asr r2, r11, #31
- # Mask the modulus
- and r3, r2, r3
- and r12, r2, #0x7fffffff
- # Add modulus (if underflow)
- ldrd r4, r5, [sp, #128]
- adds r4, r4, r3
- adcs r5, r5, r2
- strd r4, r5, [sp, #128]
- ldrd r4, r5, [sp, #136]
- adcs r4, r4, r2
- adcs r5, r5, r2
- strd r4, r5, [sp, #136]
- ldrd r4, r5, [sp, #144]
- adcs r4, r4, r2
- adcs r5, r5, r2
- strd r4, r5, [sp, #144]
- adcs r10, r10, r2
- adc r11, r11, r12
- strd r10, r11, [sp, #152]
- # Add-Sub
- # Add
- ldrd r4, r5, [sp, #64]
- ldrd r6, r7, [sp, #32]
- adds r8, r4, r6
- mov r3, #0
- adcs r9, r5, r7
- adc r3, r3, #0
- strd r8, r9, [sp]
- # Sub
- subs r10, r4, r6
- mov r12, #0
- sbcs r11, r5, r7
- adc r12, r12, #0
- strd r10, r11, [sp, #96]
- # Add
- ldrd r4, r5, [sp, #72]
- ldrd r6, r7, [sp, #40]
- adds r3, r3, #-1
- adcs r8, r4, r6
- mov r3, #0
- adcs r9, r5, r7
- adc r3, r3, #0
- strd r8, r9, [sp, #8]
- # Sub
- adds r12, r12, #-1
- sbcs r10, r4, r6
- mov r12, #0
- sbcs r11, r5, r7
- adc r12, r12, #0
- strd r10, r11, [sp, #104]
- # Add
- ldrd r4, r5, [sp, #80]
- ldrd r6, r7, [sp, #48]
- adds r3, r3, #-1
- adcs r8, r4, r6
- mov r3, #0
- adcs r9, r5, r7
- adc r3, r3, #0
- strd r8, r9, [sp, #16]
- # Sub
- adds r12, r12, #-1
- sbcs r10, r4, r6
- mov r12, #0
- sbcs r11, r5, r7
- adc r12, r12, #0
- strd r10, r11, [sp, #112]
- # Add
- ldrd r4, r5, [sp, #88]
- ldrd r6, r7, [sp, #56]
- adds r3, r3, #-1
- adcs r8, r4, r6
- adc r9, r5, r7
- # Sub
- adds r12, r12, #-1
- sbcs r10, r4, r6
- sbc r11, r5, r7
- mov r3, #-19
- asr r2, r9, #31
- # Mask the modulus
- and r3, r2, r3
- and r12, r2, #0x7fffffff
- # Sub modulus (if overflow)
- ldrd r4, r5, [sp]
- subs r4, r4, r3
- sbcs r5, r5, r2
- strd r4, r5, [sp]
- ldrd r4, r5, [sp, #8]
- sbcs r4, r4, r2
- sbcs r5, r5, r2
- strd r4, r5, [sp, #8]
- ldrd r4, r5, [sp, #16]
- sbcs r4, r4, r2
- sbcs r5, r5, r2
- strd r4, r5, [sp, #16]
- sbcs r8, r8, r2
- sbc r9, r9, r12
- strd r8, r9, [sp, #24]
- mov r3, #-19
- asr r2, r11, #31
- # Mask the modulus
- and r3, r2, r3
- and r12, r2, #0x7fffffff
- # Add modulus (if underflow)
- ldrd r4, r5, [sp, #96]
- adds r4, r4, r3
- adcs r5, r5, r2
- strd r4, r5, [sp, #96]
- ldrd r4, r5, [sp, #104]
- adcs r4, r4, r2
- adcs r5, r5, r2
- strd r4, r5, [sp, #104]
- ldrd r4, r5, [sp, #112]
- adcs r4, r4, r2
- adcs r5, r5, r2
- strd r4, r5, [sp, #112]
- adcs r10, r10, r2
- adc r11, r11, r12
- strd r10, r11, [sp, #120]
- ldr r2, [sp, #160]
- add r1, sp, #0x60
- add r0, sp, #32
- bl fe_mul
- add r2, sp, #0x80
- add r1, sp, #0
- add r0, sp, #0
- bl fe_mul
- add r1, sp, #0x80
- add r0, sp, #0x60
- bl fe_sq
- ldr r1, [sp, #160]
- add r0, sp, #0x80
- bl fe_sq
- # Add-Sub
- # Add
- ldrd r4, r5, [sp, #32]
- ldrd r6, r7, [sp]
- adds r8, r4, r6
- mov r3, #0
- adcs r9, r5, r7
- adc r3, r3, #0
- strd r8, r9, [sp, #64]
- # Sub
- subs r10, r4, r6
- mov r12, #0
- sbcs r11, r5, r7
- adc r12, r12, #0
- strd r10, r11, [sp]
- # Add
- ldrd r4, r5, [sp, #40]
- ldrd r6, r7, [sp, #8]
- adds r3, r3, #-1
- adcs r8, r4, r6
- mov r3, #0
- adcs r9, r5, r7
- adc r3, r3, #0
- strd r8, r9, [sp, #72]
- # Sub
- adds r12, r12, #-1
- sbcs r10, r4, r6
- mov r12, #0
- sbcs r11, r5, r7
- adc r12, r12, #0
- strd r10, r11, [sp, #8]
- # Add
- ldrd r4, r5, [sp, #48]
- ldrd r6, r7, [sp, #16]
- adds r3, r3, #-1
- adcs r8, r4, r6
- mov r3, #0
- adcs r9, r5, r7
- adc r3, r3, #0
- strd r8, r9, [sp, #80]
- # Sub
- adds r12, r12, #-1
- sbcs r10, r4, r6
- mov r12, #0
- sbcs r11, r5, r7
- adc r12, r12, #0
- strd r10, r11, [sp, #16]
- # Add
- ldrd r4, r5, [sp, #56]
- ldrd r6, r7, [sp, #24]
- adds r3, r3, #-1
- adcs r8, r4, r6
- adc r9, r5, r7
- # Sub
- adds r12, r12, #-1
- sbcs r10, r4, r6
- sbc r11, r5, r7
- mov r3, #-19
- asr r2, r9, #31
- # Mask the modulus
- and r3, r2, r3
- and r12, r2, #0x7fffffff
- # Sub modulus (if overflow)
- ldrd r4, r5, [sp, #64]
- subs r4, r4, r3
- sbcs r5, r5, r2
- strd r4, r5, [sp, #64]
- ldrd r4, r5, [sp, #72]
- sbcs r4, r4, r2
- sbcs r5, r5, r2
- strd r4, r5, [sp, #72]
- ldrd r4, r5, [sp, #80]
- sbcs r4, r4, r2
- sbcs r5, r5, r2
- strd r4, r5, [sp, #80]
- sbcs r8, r8, r2
- sbc r9, r9, r12
- strd r8, r9, [sp, #88]
- mov r3, #-19
- asr r2, r11, #31
- # Mask the modulus
- and r3, r2, r3
- and r12, r2, #0x7fffffff
- # Add modulus (if underflow)
- ldrd r4, r5, [sp]
- adds r4, r4, r3
- adcs r5, r5, r2
- strd r4, r5, [sp]
- ldrd r4, r5, [sp, #8]
- adcs r4, r4, r2
- adcs r5, r5, r2
- strd r4, r5, [sp, #8]
- ldrd r4, r5, [sp, #16]
- adcs r4, r4, r2
- adcs r5, r5, r2
- strd r4, r5, [sp, #16]
- adcs r10, r10, r2
- adc r11, r11, r12
- strd r10, r11, [sp, #24]
- add r2, sp, #0x60
- add r1, sp, #0x80
- ldr r0, [sp, #160]
- bl fe_mul
- # Sub
- ldrd r4, r5, [sp, #128]
- ldrd r6, r7, [sp, #136]
- ldrd r8, r9, [sp, #96]
- ldrd r10, r11, [sp, #104]
- subs r8, r4, r8
- sbcs r9, r5, r9
- sbcs r10, r6, r10
- sbcs r11, r7, r11
- strd r8, r9, [sp, #128]
- strd r10, r11, [sp, #136]
- ldrd r4, r5, [sp, #144]
- ldrd r6, r7, [sp, #152]
- ldrd r8, r9, [sp, #112]
- ldrd r10, r11, [sp, #120]
- sbcs r8, r4, r8
- sbcs r9, r5, r9
- sbcs r10, r6, r10
- sbc r11, r7, r11
- mov r3, #-19
- asr r2, r11, #31
- # Mask the modulus
- and r3, r2, r3
- and r12, r2, #0x7fffffff
- # Add modulus (if underflow)
- ldrd r4, r5, [sp, #128]
- ldrd r6, r7, [sp, #136]
- adds r4, r4, r3
- adcs r5, r5, r2
- adcs r6, r6, r2
- adcs r7, r7, r2
- adcs r8, r8, r2
- adcs r9, r9, r2
- adcs r10, r10, r2
- adc r11, r11, r12
- strd r4, r5, [sp, #128]
- strd r6, r7, [sp, #136]
- strd r8, r9, [sp, #144]
- strd r10, r11, [sp, #152]
- add r1, sp, #0
- add r0, sp, #0
- bl fe_sq
- # Multiply by 121666
- ldrd r4, r5, [sp, #128]
- ldrd r6, r7, [sp, #136]
- ldrd r8, r9, [sp, #144]
- ldrd r10, r11, [sp, #152]
- movw r12, #0xdb42
- movt r12, #1
- umull r4, r2, r4, r12
- umull r5, r3, r5, r12
- adds r5, r5, r2
- adc r2, r3, #0
- umull r6, r3, r6, r12
- adds r6, r6, r2
- adc r2, r3, #0
- umull r7, r3, r7, r12
- adds r7, r7, r2
- adc r2, r3, #0
- umull r8, r3, r8, r12
- adds r8, r8, r2
- adc r2, r3, #0
- umull r9, r3, r9, r12
- adds r9, r9, r2
- adc r2, r3, #0
- umull r10, r3, r10, r12
- adds r10, r10, r2
- adc r2, r3, #0
- umull r11, r3, r11, r12
- adds r11, r11, r2
- adc r2, r3, #0
- mov r12, #19
- lsl r2, r2, #1
- orr r2, r2, r11, lsr #31
- mul r2, r2, r12
- and r11, r11, #0x7fffffff
- adds r4, r4, r2
- adcs r5, r5, #0
- adcs r6, r6, #0
- adcs r7, r7, #0
- adcs r8, r8, #0
- adcs r9, r9, #0
- adcs r10, r10, #0
- adc r11, r11, #0
- strd r4, r5, [sp, #32]
- strd r6, r7, [sp, #40]
- strd r8, r9, [sp, #48]
- strd r10, r11, [sp, #56]
- add r1, sp, #0x40
- add r0, sp, #0x40
- bl fe_sq
- # Add
- ldrd r4, r5, [sp, #96]
- ldrd r6, r7, [sp, #104]
- ldrd r8, r9, [sp, #32]
- ldrd r10, r11, [sp, #40]
- adds r8, r4, r8
- adcs r9, r5, r9
- adcs r10, r6, r10
- adcs r11, r7, r11
- strd r8, r9, [sp, #96]
- strd r10, r11, [sp, #104]
- ldrd r4, r5, [sp, #112]
- ldrd r6, r7, [sp, #120]
- ldrd r8, r9, [sp, #48]
- ldrd r10, r11, [sp, #56]
- adcs r8, r4, r8
- adcs r9, r5, r9
- adcs r10, r6, r10
- adc r11, r7, r11
- mov r3, #-19
- asr r2, r11, #31
- # Mask the modulus
- and r3, r2, r3
- and r12, r2, #0x7fffffff
- # Sub modulus (if overflow)
- ldrd r4, r5, [sp, #96]
- ldrd r6, r7, [sp, #104]
- subs r4, r4, r3
- sbcs r5, r5, r2
- sbcs r6, r6, r2
- sbcs r7, r7, r2
- sbcs r8, r8, r2
- sbcs r9, r9, r2
- sbcs r10, r10, r2
- sbc r11, r11, r12
- strd r4, r5, [sp, #96]
- strd r6, r7, [sp, #104]
- strd r8, r9, [sp, #112]
- strd r10, r11, [sp, #120]
- add r2, sp, #0
- ldr r1, [sp, #168]
- add r0, sp, #32
- bl fe_mul
- add r2, sp, #0x60
- add r1, sp, #0x80
- add r0, sp, #0
- bl fe_mul
- ldr r2, [sp, #176]
- ldr r1, [sp, #180]
- subs r1, r1, #1
- str r1, [sp, #180]
- bge L_curve25519_bits
- mov r1, #31
- str r1, [sp, #180]
- subs r2, r2, #4
- str r2, [sp, #176]
- bge L_curve25519_words
- # Invert
- add r0, sp, #32
- add r1, sp, #0
- bl fe_sq
- add r0, sp, #0x40
- add r1, sp, #32
- bl fe_sq
- add r0, sp, #0x40
- add r1, sp, #0x40
- bl fe_sq
- add r0, sp, #0x40
- add r1, sp, #0
- add r2, sp, #0x40
- bl fe_mul
- add r0, sp, #32
- add r1, sp, #32
- add r2, sp, #0x40
- bl fe_mul
- add r0, sp, #0x60
- add r1, sp, #32
- bl fe_sq
- add r0, sp, #0x40
- add r1, sp, #0x40
- add r2, sp, #0x60
- bl fe_mul
- add r0, sp, #0x60
- add r1, sp, #0x40
- bl fe_sq
- mov r4, #4
-L_curve25519_inv_1:
- add r0, sp, #0x60
- add r1, sp, #0x60
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_curve25519_inv_1
- add r0, sp, #0x40
- add r1, sp, #0x60
- add r2, sp, #0x40
- bl fe_mul
- add r0, sp, #0x60
- add r1, sp, #0x40
- bl fe_sq
- mov r4, #9
-L_curve25519_inv_2:
- add r0, sp, #0x60
- add r1, sp, #0x60
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_curve25519_inv_2
- add r0, sp, #0x60
- add r1, sp, #0x60
- add r2, sp, #0x40
- bl fe_mul
- add r0, sp, #0x80
- add r1, sp, #0x60
- bl fe_sq
- mov r4, #19
-L_curve25519_inv_3:
- add r0, sp, #0x80
- add r1, sp, #0x80
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_curve25519_inv_3
- add r0, sp, #0x60
- add r1, sp, #0x80
- add r2, sp, #0x60
- bl fe_mul
- mov r4, #10
-L_curve25519_inv_4:
- add r0, sp, #0x60
- add r1, sp, #0x60
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_curve25519_inv_4
- add r0, sp, #0x40
- add r1, sp, #0x60
- add r2, sp, #0x40
- bl fe_mul
- add r0, sp, #0x60
- add r1, sp, #0x40
- bl fe_sq
- mov r4, #49
-L_curve25519_inv_5:
- add r0, sp, #0x60
- add r1, sp, #0x60
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_curve25519_inv_5
- add r0, sp, #0x60
- add r1, sp, #0x60
- add r2, sp, #0x40
- bl fe_mul
- add r0, sp, #0x80
- add r1, sp, #0x60
- bl fe_sq
- mov r4, #0x63
-L_curve25519_inv_6:
- add r0, sp, #0x80
- add r1, sp, #0x80
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_curve25519_inv_6
- add r0, sp, #0x60
- add r1, sp, #0x80
- add r2, sp, #0x60
- bl fe_mul
- mov r4, #50
-L_curve25519_inv_7:
- add r0, sp, #0x60
- add r1, sp, #0x60
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_curve25519_inv_7
- add r0, sp, #0x40
- add r1, sp, #0x60
- add r2, sp, #0x40
- bl fe_mul
- mov r4, #5
-L_curve25519_inv_8:
- add r0, sp, #0x40
- add r1, sp, #0x40
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_curve25519_inv_8
- add r0, sp, #0
- add r1, sp, #0x40
- add r2, sp, #32
- bl fe_mul
- add r2, sp, #0
- ldr r1, [sp, #160]
- ldr r0, [sp, #160]
- bl fe_mul
- mov r0, #0
- add sp, sp, #0xbc
- pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}
- .size curve25519,.-curve25519
- .text
- .align 2
- .globl fe_pow22523
- .type fe_pow22523, %function
-fe_pow22523:
- push {r4, lr}
- sub sp, sp, #0x68
- # pow22523
- str r0, [sp, #96]
- str r1, [sp, #100]
- mov r0, sp
- ldr r1, [sp, #100]
- bl fe_sq
- add r0, sp, #32
- mov r1, sp
- bl fe_sq
- add r0, sp, #32
- add r1, sp, #32
- bl fe_sq
- add r0, sp, #32
- ldr r1, [sp, #100]
- add r2, sp, #32
- bl fe_mul
- mov r0, sp
- mov r1, sp
- add r2, sp, #32
- bl fe_mul
- mov r0, sp
- mov r1, sp
- bl fe_sq
- mov r0, sp
- add r1, sp, #32
- mov r2, sp
- bl fe_mul
- add r0, sp, #32
- mov r1, sp
- bl fe_sq
- mov r4, #4
-L_fe_pow22523_1:
- add r0, sp, #32
- add r1, sp, #32
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_pow22523_1
- mov r0, sp
- add r1, sp, #32
- mov r2, sp
- bl fe_mul
- add r0, sp, #32
- mov r1, sp
- bl fe_sq
- mov r4, #9
-L_fe_pow22523_2:
- add r0, sp, #32
- add r1, sp, #32
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_pow22523_2
- add r0, sp, #32
- add r1, sp, #32
- mov r2, sp
- bl fe_mul
- add r0, sp, #0x40
- add r1, sp, #32
- bl fe_sq
- mov r4, #19
-L_fe_pow22523_3:
- add r0, sp, #0x40
- add r1, sp, #0x40
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_pow22523_3
- add r0, sp, #32
- add r1, sp, #0x40
- add r2, sp, #32
- bl fe_mul
- mov r4, #10
-L_fe_pow22523_4:
- add r0, sp, #32
- add r1, sp, #32
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_pow22523_4
- mov r0, sp
- add r1, sp, #32
- mov r2, sp
- bl fe_mul
- add r0, sp, #32
- mov r1, sp
- bl fe_sq
- mov r4, #49
-L_fe_pow22523_5:
- add r0, sp, #32
- add r1, sp, #32
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_pow22523_5
- add r0, sp, #32
- add r1, sp, #32
- mov r2, sp
- bl fe_mul
- add r0, sp, #0x40
- add r1, sp, #32
- bl fe_sq
- mov r4, #0x63
-L_fe_pow22523_6:
- add r0, sp, #0x40
- add r1, sp, #0x40
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_pow22523_6
- add r0, sp, #32
- add r1, sp, #0x40
- add r2, sp, #32
- bl fe_mul
- mov r4, #50
-L_fe_pow22523_7:
- add r0, sp, #32
- add r1, sp, #32
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_pow22523_7
- mov r0, sp
- add r1, sp, #32
- mov r2, sp
- bl fe_mul
- mov r4, #2
-L_fe_pow22523_8:
- mov r0, sp
- mov r1, sp
- bl fe_sq
- sub r4, r4, #1
- cmp r4, #0
- bne L_fe_pow22523_8
- ldr r0, [sp, #96]
- mov r1, sp
- ldr r2, [sp, #100]
- bl fe_mul
- ldr r1, [sp, #100]
- ldr r0, [sp, #96]
- add sp, sp, #0x68
- pop {r4, pc}
- .size fe_pow22523,.-fe_pow22523
- .text
- .align 2
- .globl fe_ge_to_p2
- .type fe_ge_to_p2, %function
-fe_ge_to_p2:
- push {lr}
- sub sp, sp, #16
- str r0, [sp]
- str r1, [sp, #4]
- str r2, [sp, #8]
- str r3, [sp, #12]
- ldr r2, [sp, #28]
- ldr r1, [sp, #12]
- ldr r0, [sp]
- bl fe_mul
- ldr r2, [sp, #24]
- ldr r1, [sp, #20]
- ldr r0, [sp, #4]
- bl fe_mul
- ldr r2, [sp, #28]
- ldr r1, [sp, #24]
- ldr r0, [sp, #8]
- bl fe_mul
- add sp, sp, #16
- pop {pc}
- .size fe_ge_to_p2,.-fe_ge_to_p2
- .text
- .align 2
- .globl fe_ge_to_p3
- .type fe_ge_to_p3, %function
-fe_ge_to_p3:
- push {lr}
- sub sp, sp, #16
- str r0, [sp]
- str r1, [sp, #4]
- str r2, [sp, #8]
- str r3, [sp, #12]
- ldr r2, [sp, #32]
- ldr r1, [sp, #20]
- ldr r0, [sp]
- bl fe_mul
- ldr r2, [sp, #28]
- ldr r1, [sp, #24]
- ldr r0, [sp, #4]
- bl fe_mul
- ldr r2, [sp, #32]
- ldr r1, [sp, #28]
- ldr r0, [sp, #8]
- bl fe_mul
- ldr r2, [sp, #24]
- ldr r1, [sp, #20]
- ldr r0, [sp, #12]
- bl fe_mul
- add sp, sp, #16
- pop {pc}
- .size fe_ge_to_p3,.-fe_ge_to_p3
- .text
- .align 2
- .globl fe_ge_dbl
- .type fe_ge_dbl, %function
-fe_ge_dbl:
- push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
- sub sp, sp, #16
- str r0, [sp]
- str r1, [sp, #4]
- str r2, [sp, #8]
- str r3, [sp, #12]
- ldr r1, [sp, #52]
- ldr r0, [sp]
- bl fe_sq
- ldr r1, [sp, #56]
- ldr r0, [sp, #8]
- bl fe_sq
- ldr r0, [sp, #4]
- ldr r1, [sp, #52]
- ldr r2, [sp, #56]
- # Add
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- ldr r7, [r2]
- ldr r8, [r2, #4]
- ldr r9, [r2, #8]
- ldr r10, [r2, #12]
- adds r7, r3, r7
- adcs r8, r4, r8
- adcs r9, r5, r9
- adcs r10, r6, r10
- str r7, [r0]
- str r8, [r0, #4]
- str r9, [r0, #8]
- str r10, [r0, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- ldr r5, [r1, #24]
- ldr r6, [r1, #28]
- ldr r7, [r2, #16]
- ldr r8, [r2, #20]
- ldr r9, [r2, #24]
- ldr r10, [r2, #28]
- adcs r7, r3, r7
- adcs r8, r4, r8
- adcs r9, r5, r9
- adc r10, r6, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- subs r3, r3, r12
- sbcs r4, r4, r11
- sbcs r5, r5, r11
- sbcs r6, r6, r11
- sbcs r7, r7, r11
- sbcs r8, r8, r11
- sbcs r9, r9, r11
- sbc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- ldr r1, [sp, #4]
- ldr r0, [sp, #12]
- bl fe_sq
- ldr r0, [sp, #4]
- ldr r1, [sp, #8]
- ldr r2, [sp]
- # Add-Sub
- # Add
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r2]
- ldr r6, [r2, #4]
- adds r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0]
- str r8, [r0, #4]
- # Sub
- subs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1]
- str r10, [r1, #4]
- # Add
- ldr r3, [r1, #8]
- ldr r4, [r1, #12]
- ldr r5, [r2, #8]
- ldr r6, [r2, #12]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #8]
- str r8, [r0, #12]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #8]
- str r10, [r1, #12]
- # Add
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- ldr r5, [r2, #16]
- ldr r6, [r2, #20]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #16]
- str r8, [r0, #20]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #16]
- str r10, [r1, #20]
- # Add
- ldr r3, [r1, #24]
- ldr r4, [r1, #28]
- ldr r5, [r2, #24]
- ldr r6, [r2, #28]
- adds r12, r12, #-1
- adcs r7, r3, r5
- adc r8, r4, r6
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- sbc r10, r4, r6
- mov r12, #-19
- asr r11, r8, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- subs r3, r3, r12
- sbcs r4, r4, r11
- str r3, [r0]
- str r4, [r0, #4]
- ldr r3, [r0, #8]
- ldr r4, [r0, #12]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #8]
- str r4, [r0, #12]
- ldr r3, [r0, #16]
- ldr r4, [r0, #20]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #16]
- str r4, [r0, #20]
- sbcs r7, r7, r11
- sbc r8, r8, lr
- str r7, [r0, #24]
- str r8, [r0, #28]
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r1]
- ldr r4, [r1, #4]
- adds r3, r3, r12
- adcs r4, r4, r11
- str r3, [r1]
- str r4, [r1, #4]
- ldr r3, [r1, #8]
- ldr r4, [r1, #12]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #8]
- str r4, [r1, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #16]
- str r4, [r1, #20]
- adcs r9, r9, r11
- adc r10, r10, lr
- str r9, [r1, #24]
- str r10, [r1, #28]
- ldr r0, [sp]
- ldr r1, [sp, #12]
- ldr r2, [sp, #4]
- # Sub
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- ldr r7, [r2]
- ldr r8, [r2, #4]
- ldr r9, [r2, #8]
- ldr r10, [r2, #12]
- subs r7, r3, r7
- sbcs r8, r4, r8
- sbcs r9, r5, r9
- sbcs r10, r6, r10
- str r7, [r0]
- str r8, [r0, #4]
- str r9, [r0, #8]
- str r10, [r0, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- ldr r5, [r1, #24]
- ldr r6, [r1, #28]
- ldr r7, [r2, #16]
- ldr r8, [r2, #20]
- ldr r9, [r2, #24]
- ldr r10, [r2, #28]
- sbcs r7, r3, r7
- sbcs r8, r4, r8
- sbcs r9, r5, r9
- sbc r10, r6, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- adds r3, r3, r12
- adcs r4, r4, r11
- adcs r5, r5, r11
- adcs r6, r6, r11
- adcs r7, r7, r11
- adcs r8, r8, r11
- adcs r9, r9, r11
- adc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- ldr r1, [sp, #60]
- ldr r0, [sp, #12]
- bl fe_sq2
- ldr r0, [sp, #12]
- ldr r1, [sp, #8]
- # Sub
- ldr r3, [r0]
- ldr r4, [r0, #4]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- ldr r7, [r1]
- ldr r8, [r1, #4]
- ldr r9, [r1, #8]
- ldr r10, [r1, #12]
- subs r7, r3, r7
- sbcs r8, r4, r8
- sbcs r9, r5, r9
- sbcs r10, r6, r10
- str r7, [r0]
- str r8, [r0, #4]
- str r9, [r0, #8]
- str r10, [r0, #12]
- ldr r3, [r0, #16]
- ldr r4, [r0, #20]
- ldr r5, [r0, #24]
- ldr r6, [r0, #28]
- ldr r7, [r1, #16]
- ldr r8, [r1, #20]
- ldr r9, [r1, #24]
- ldr r10, [r1, #28]
- sbcs r7, r3, r7
- sbcs r8, r4, r8
- sbcs r9, r5, r9
- sbc r10, r6, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- adds r3, r3, r12
- adcs r4, r4, r11
- adcs r5, r5, r11
- adcs r6, r6, r11
- adcs r7, r7, r11
- adcs r8, r8, r11
- adcs r9, r9, r11
- adc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- add sp, sp, #16
- pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}
- .size fe_ge_dbl,.-fe_ge_dbl
- .text
- .align 2
- .globl fe_ge_madd
- .type fe_ge_madd, %function
-fe_ge_madd:
- push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
- sub sp, sp, #32
- str r0, [sp]
- str r1, [sp, #4]
- str r2, [sp, #8]
- str r3, [sp, #12]
- ldr r0, [sp]
- ldr r1, [sp, #72]
- ldr r2, [sp, #68]
- # Add
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- ldr r7, [r2]
- ldr r8, [r2, #4]
- ldr r9, [r2, #8]
- ldr r10, [r2, #12]
- adds r7, r3, r7
- adcs r8, r4, r8
- adcs r9, r5, r9
- adcs r10, r6, r10
- str r7, [r0]
- str r8, [r0, #4]
- str r9, [r0, #8]
- str r10, [r0, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- ldr r5, [r1, #24]
- ldr r6, [r1, #28]
- ldr r7, [r2, #16]
- ldr r8, [r2, #20]
- ldr r9, [r2, #24]
- ldr r10, [r2, #28]
- adcs r7, r3, r7
- adcs r8, r4, r8
- adcs r9, r5, r9
- adc r10, r6, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- subs r3, r3, r12
- sbcs r4, r4, r11
- sbcs r5, r5, r11
- sbcs r6, r6, r11
- sbcs r7, r7, r11
- sbcs r8, r8, r11
- sbcs r9, r9, r11
- sbc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- ldr r0, [sp, #4]
- ldr r1, [sp, #72]
- ldr r2, [sp, #68]
- # Sub
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- ldr r7, [r2]
- ldr r8, [r2, #4]
- ldr r9, [r2, #8]
- ldr r10, [r2, #12]
- subs r7, r3, r7
- sbcs r8, r4, r8
- sbcs r9, r5, r9
- sbcs r10, r6, r10
- str r7, [r0]
- str r8, [r0, #4]
- str r9, [r0, #8]
- str r10, [r0, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- ldr r5, [r1, #24]
- ldr r6, [r1, #28]
- ldr r7, [r2, #16]
- ldr r8, [r2, #20]
- ldr r9, [r2, #24]
- ldr r10, [r2, #28]
- sbcs r7, r3, r7
- sbcs r8, r4, r8
- sbcs r9, r5, r9
- sbc r10, r6, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- adds r3, r3, r12
- adcs r4, r4, r11
- adcs r5, r5, r11
- adcs r6, r6, r11
- adcs r7, r7, r11
- adcs r8, r8, r11
- adcs r9, r9, r11
- adc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- ldr r2, [sp, #88]
- ldr r1, [sp]
- ldr r0, [sp, #8]
- bl fe_mul
- ldr r2, [sp, #92]
- ldr r1, [sp, #4]
- ldr r0, [sp, #4]
- bl fe_mul
- ldr r2, [sp, #80]
- ldr r1, [sp, #84]
- ldr r0, [sp, #12]
- bl fe_mul
- ldr r0, [sp, #4]
- ldr r1, [sp]
- ldr r2, [sp, #8]
- # Add-Sub
- # Add
- ldr r3, [r2]
- ldr r4, [r2, #4]
- ldr r5, [r0]
- ldr r6, [r0, #4]
- adds r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0]
- str r8, [r0, #4]
- # Sub
- subs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1]
- str r10, [r1, #4]
- # Add
- ldr r3, [r2, #8]
- ldr r4, [r2, #12]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #8]
- str r8, [r0, #12]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #8]
- str r10, [r1, #12]
- # Add
- ldr r3, [r2, #16]
- ldr r4, [r2, #20]
- ldr r5, [r0, #16]
- ldr r6, [r0, #20]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #16]
- str r8, [r0, #20]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #16]
- str r10, [r1, #20]
- # Add
- ldr r3, [r2, #24]
- ldr r4, [r2, #28]
- ldr r5, [r0, #24]
- ldr r6, [r0, #28]
- adds r12, r12, #-1
- adcs r7, r3, r5
- adc r8, r4, r6
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- sbc r10, r4, r6
- mov r12, #-19
- asr r11, r8, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- subs r3, r3, r12
- sbcs r4, r4, r11
- str r3, [r0]
- str r4, [r0, #4]
- ldr r3, [r0, #8]
- ldr r4, [r0, #12]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #8]
- str r4, [r0, #12]
- ldr r3, [r0, #16]
- ldr r4, [r0, #20]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #16]
- str r4, [r0, #20]
- sbcs r7, r7, r11
- sbc r8, r8, lr
- str r7, [r0, #24]
- str r8, [r0, #28]
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r1]
- ldr r4, [r1, #4]
- adds r3, r3, r12
- adcs r4, r4, r11
- str r3, [r1]
- str r4, [r1, #4]
- ldr r3, [r1, #8]
- ldr r4, [r1, #12]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #8]
- str r4, [r1, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #16]
- str r4, [r1, #20]
- adcs r9, r9, r11
- adc r10, r10, lr
- str r9, [r1, #24]
- str r10, [r1, #28]
- ldr r0, [sp, #8]
- ldr r1, [sp, #76]
- # Double
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- ldr r7, [r1, #16]
- ldr r8, [r1, #20]
- ldr r9, [r1, #24]
- ldr r10, [r1, #28]
- adds r3, r3, r3
- adcs r4, r4, r4
- adcs r5, r5, r5
- adcs r6, r6, r6
- adcs r7, r7, r7
- adcs r8, r8, r8
- adcs r9, r9, r9
- adc r10, r10, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- subs r3, r3, r12
- sbcs r4, r4, r11
- sbcs r5, r5, r11
- sbcs r6, r6, r11
- sbcs r7, r7, r11
- sbcs r8, r8, r11
- sbcs r9, r9, r11
- sbc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- ldr r0, [sp, #8]
- ldr r1, [sp, #12]
- # Add-Sub
- # Add
- ldr r3, [r0]
- ldr r4, [r0, #4]
- ldr r5, [r1]
- ldr r6, [r1, #4]
- adds r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0]
- str r8, [r0, #4]
- # Sub
- subs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1]
- str r10, [r1, #4]
- # Add
- ldr r3, [r0, #8]
- ldr r4, [r0, #12]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #8]
- str r8, [r0, #12]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #8]
- str r10, [r1, #12]
- # Add
- ldr r3, [r0, #16]
- ldr r4, [r0, #20]
- ldr r5, [r1, #16]
- ldr r6, [r1, #20]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #16]
- str r8, [r0, #20]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #16]
- str r10, [r1, #20]
- # Add
- ldr r3, [r0, #24]
- ldr r4, [r0, #28]
- ldr r5, [r1, #24]
- ldr r6, [r1, #28]
- adds r12, r12, #-1
- adcs r7, r3, r5
- adc r8, r4, r6
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- sbc r10, r4, r6
- mov r12, #-19
- asr r11, r8, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- subs r3, r3, r12
- sbcs r4, r4, r11
- str r3, [r0]
- str r4, [r0, #4]
- ldr r3, [r0, #8]
- ldr r4, [r0, #12]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #8]
- str r4, [r0, #12]
- ldr r3, [r0, #16]
- ldr r4, [r0, #20]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #16]
- str r4, [r0, #20]
- sbcs r7, r7, r11
- sbc r8, r8, lr
- str r7, [r0, #24]
- str r8, [r0, #28]
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r1]
- ldr r4, [r1, #4]
- adds r3, r3, r12
- adcs r4, r4, r11
- str r3, [r1]
- str r4, [r1, #4]
- ldr r3, [r1, #8]
- ldr r4, [r1, #12]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #8]
- str r4, [r1, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #16]
- str r4, [r1, #20]
- adcs r9, r9, r11
- adc r10, r10, lr
- str r9, [r1, #24]
- str r10, [r1, #28]
- add sp, sp, #32
- pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}
- .size fe_ge_madd,.-fe_ge_madd
- .text
- .align 2
- .globl fe_ge_msub
- .type fe_ge_msub, %function
-fe_ge_msub:
- push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
- sub sp, sp, #32
- str r0, [sp]
- str r1, [sp, #4]
- str r2, [sp, #8]
- str r3, [sp, #12]
- ldr r0, [sp]
- ldr r1, [sp, #72]
- ldr r2, [sp, #68]
- # Add
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- ldr r7, [r2]
- ldr r8, [r2, #4]
- ldr r9, [r2, #8]
- ldr r10, [r2, #12]
- adds r7, r3, r7
- adcs r8, r4, r8
- adcs r9, r5, r9
- adcs r10, r6, r10
- str r7, [r0]
- str r8, [r0, #4]
- str r9, [r0, #8]
- str r10, [r0, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- ldr r5, [r1, #24]
- ldr r6, [r1, #28]
- ldr r7, [r2, #16]
- ldr r8, [r2, #20]
- ldr r9, [r2, #24]
- ldr r10, [r2, #28]
- adcs r7, r3, r7
- adcs r8, r4, r8
- adcs r9, r5, r9
- adc r10, r6, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- subs r3, r3, r12
- sbcs r4, r4, r11
- sbcs r5, r5, r11
- sbcs r6, r6, r11
- sbcs r7, r7, r11
- sbcs r8, r8, r11
- sbcs r9, r9, r11
- sbc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- ldr r0, [sp, #4]
- ldr r1, [sp, #72]
- ldr r2, [sp, #68]
- # Sub
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- ldr r7, [r2]
- ldr r8, [r2, #4]
- ldr r9, [r2, #8]
- ldr r10, [r2, #12]
- subs r7, r3, r7
- sbcs r8, r4, r8
- sbcs r9, r5, r9
- sbcs r10, r6, r10
- str r7, [r0]
- str r8, [r0, #4]
- str r9, [r0, #8]
- str r10, [r0, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- ldr r5, [r1, #24]
- ldr r6, [r1, #28]
- ldr r7, [r2, #16]
- ldr r8, [r2, #20]
- ldr r9, [r2, #24]
- ldr r10, [r2, #28]
- sbcs r7, r3, r7
- sbcs r8, r4, r8
- sbcs r9, r5, r9
- sbc r10, r6, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- adds r3, r3, r12
- adcs r4, r4, r11
- adcs r5, r5, r11
- adcs r6, r6, r11
- adcs r7, r7, r11
- adcs r8, r8, r11
- adcs r9, r9, r11
- adc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- ldr r2, [sp, #92]
- ldr r1, [sp]
- ldr r0, [sp, #8]
- bl fe_mul
- ldr r2, [sp, #88]
- ldr r1, [sp, #4]
- ldr r0, [sp, #4]
- bl fe_mul
- ldr r2, [sp, #80]
- ldr r1, [sp, #84]
- ldr r0, [sp, #12]
- bl fe_mul
- ldr r0, [sp, #4]
- ldr r1, [sp]
- ldr r2, [sp, #8]
- # Add-Sub
- # Add
- ldr r3, [r2]
- ldr r4, [r2, #4]
- ldr r5, [r0]
- ldr r6, [r0, #4]
- adds r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0]
- str r8, [r0, #4]
- # Sub
- subs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1]
- str r10, [r1, #4]
- # Add
- ldr r3, [r2, #8]
- ldr r4, [r2, #12]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #8]
- str r8, [r0, #12]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #8]
- str r10, [r1, #12]
- # Add
- ldr r3, [r2, #16]
- ldr r4, [r2, #20]
- ldr r5, [r0, #16]
- ldr r6, [r0, #20]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #16]
- str r8, [r0, #20]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #16]
- str r10, [r1, #20]
- # Add
- ldr r3, [r2, #24]
- ldr r4, [r2, #28]
- ldr r5, [r0, #24]
- ldr r6, [r0, #28]
- adds r12, r12, #-1
- adcs r7, r3, r5
- adc r8, r4, r6
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- sbc r10, r4, r6
- mov r12, #-19
- asr r11, r8, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- subs r3, r3, r12
- sbcs r4, r4, r11
- str r3, [r0]
- str r4, [r0, #4]
- ldr r3, [r0, #8]
- ldr r4, [r0, #12]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #8]
- str r4, [r0, #12]
- ldr r3, [r0, #16]
- ldr r4, [r0, #20]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #16]
- str r4, [r0, #20]
- sbcs r7, r7, r11
- sbc r8, r8, lr
- str r7, [r0, #24]
- str r8, [r0, #28]
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r1]
- ldr r4, [r1, #4]
- adds r3, r3, r12
- adcs r4, r4, r11
- str r3, [r1]
- str r4, [r1, #4]
- ldr r3, [r1, #8]
- ldr r4, [r1, #12]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #8]
- str r4, [r1, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #16]
- str r4, [r1, #20]
- adcs r9, r9, r11
- adc r10, r10, lr
- str r9, [r1, #24]
- str r10, [r1, #28]
- ldr r0, [sp, #8]
- ldr r1, [sp, #76]
- # Double
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- ldr r7, [r1, #16]
- ldr r8, [r1, #20]
- ldr r9, [r1, #24]
- ldr r10, [r1, #28]
- adds r3, r3, r3
- adcs r4, r4, r4
- adcs r5, r5, r5
- adcs r6, r6, r6
- adcs r7, r7, r7
- adcs r8, r8, r8
- adcs r9, r9, r9
- adc r10, r10, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- subs r3, r3, r12
- sbcs r4, r4, r11
- sbcs r5, r5, r11
- sbcs r6, r6, r11
- sbcs r7, r7, r11
- sbcs r8, r8, r11
- sbcs r9, r9, r11
- sbc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- ldr r0, [sp, #12]
- ldr r1, [sp, #8]
- # Add-Sub
- # Add
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r0]
- ldr r6, [r0, #4]
- adds r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0]
- str r8, [r0, #4]
- # Sub
- subs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1]
- str r10, [r1, #4]
- # Add
- ldr r3, [r1, #8]
- ldr r4, [r1, #12]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #8]
- str r8, [r0, #12]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #8]
- str r10, [r1, #12]
- # Add
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- ldr r5, [r0, #16]
- ldr r6, [r0, #20]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #16]
- str r8, [r0, #20]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #16]
- str r10, [r1, #20]
- # Add
- ldr r3, [r1, #24]
- ldr r4, [r1, #28]
- ldr r5, [r0, #24]
- ldr r6, [r0, #28]
- adds r12, r12, #-1
- adcs r7, r3, r5
- adc r8, r4, r6
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- sbc r10, r4, r6
- mov r12, #-19
- asr r11, r8, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- subs r3, r3, r12
- sbcs r4, r4, r11
- str r3, [r0]
- str r4, [r0, #4]
- ldr r3, [r0, #8]
- ldr r4, [r0, #12]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #8]
- str r4, [r0, #12]
- ldr r3, [r0, #16]
- ldr r4, [r0, #20]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #16]
- str r4, [r0, #20]
- sbcs r7, r7, r11
- sbc r8, r8, lr
- str r7, [r0, #24]
- str r8, [r0, #28]
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r1]
- ldr r4, [r1, #4]
- adds r3, r3, r12
- adcs r4, r4, r11
- str r3, [r1]
- str r4, [r1, #4]
- ldr r3, [r1, #8]
- ldr r4, [r1, #12]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #8]
- str r4, [r1, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #16]
- str r4, [r1, #20]
- adcs r9, r9, r11
- adc r10, r10, lr
- str r9, [r1, #24]
- str r10, [r1, #28]
- add sp, sp, #32
- pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}
- .size fe_ge_msub,.-fe_ge_msub
- .text
- .align 2
- .globl fe_ge_add
- .type fe_ge_add, %function
-fe_ge_add:
- push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
- sub sp, sp, #0x60
- str r0, [sp]
- str r1, [sp, #4]
- str r2, [sp, #8]
- str r3, [sp, #12]
- ldr r0, [sp]
- ldr r1, [sp, #136]
- ldr r2, [sp, #132]
- # Add
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- ldr r7, [r2]
- ldr r8, [r2, #4]
- ldr r9, [r2, #8]
- ldr r10, [r2, #12]
- adds r7, r3, r7
- adcs r8, r4, r8
- adcs r9, r5, r9
- adcs r10, r6, r10
- str r7, [r0]
- str r8, [r0, #4]
- str r9, [r0, #8]
- str r10, [r0, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- ldr r5, [r1, #24]
- ldr r6, [r1, #28]
- ldr r7, [r2, #16]
- ldr r8, [r2, #20]
- ldr r9, [r2, #24]
- ldr r10, [r2, #28]
- adcs r7, r3, r7
- adcs r8, r4, r8
- adcs r9, r5, r9
- adc r10, r6, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- subs r3, r3, r12
- sbcs r4, r4, r11
- sbcs r5, r5, r11
- sbcs r6, r6, r11
- sbcs r7, r7, r11
- sbcs r8, r8, r11
- sbcs r9, r9, r11
- sbc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- ldr r0, [sp, #4]
- ldr r1, [sp, #136]
- ldr r2, [sp, #132]
- # Sub
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- ldr r7, [r2]
- ldr r8, [r2, #4]
- ldr r9, [r2, #8]
- ldr r10, [r2, #12]
- subs r7, r3, r7
- sbcs r8, r4, r8
- sbcs r9, r5, r9
- sbcs r10, r6, r10
- str r7, [r0]
- str r8, [r0, #4]
- str r9, [r0, #8]
- str r10, [r0, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- ldr r5, [r1, #24]
- ldr r6, [r1, #28]
- ldr r7, [r2, #16]
- ldr r8, [r2, #20]
- ldr r9, [r2, #24]
- ldr r10, [r2, #28]
- sbcs r7, r3, r7
- sbcs r8, r4, r8
- sbcs r9, r5, r9
- sbc r10, r6, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- adds r3, r3, r12
- adcs r4, r4, r11
- adcs r5, r5, r11
- adcs r6, r6, r11
- adcs r7, r7, r11
- adcs r8, r8, r11
- adcs r9, r9, r11
- adc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- ldr r2, [sp, #156]
- ldr r1, [sp]
- ldr r0, [sp, #8]
- bl fe_mul
- ldr r2, [sp, #160]
- ldr r1, [sp, #4]
- ldr r0, [sp, #4]
- bl fe_mul
- ldr r2, [sp, #144]
- ldr r1, [sp, #152]
- ldr r0, [sp, #12]
- bl fe_mul
- ldr r2, [sp, #148]
- ldr r1, [sp, #140]
- ldr r0, [sp]
- bl fe_mul
- add r0, sp, #16
- ldr r1, [sp]
- # Double
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- ldr r7, [r1, #16]
- ldr r8, [r1, #20]
- ldr r9, [r1, #24]
- ldr r10, [r1, #28]
- adds r3, r3, r3
- adcs r4, r4, r4
- adcs r5, r5, r5
- adcs r6, r6, r6
- adcs r7, r7, r7
- adcs r8, r8, r8
- adcs r9, r9, r9
- adc r10, r10, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- subs r3, r3, r12
- sbcs r4, r4, r11
- sbcs r5, r5, r11
- sbcs r6, r6, r11
- sbcs r7, r7, r11
- sbcs r8, r8, r11
- sbcs r9, r9, r11
- sbc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- ldr r0, [sp, #4]
- ldr r1, [sp]
- ldr r2, [sp, #8]
- # Add-Sub
- # Add
- ldr r3, [r2]
- ldr r4, [r2, #4]
- ldr r5, [r0]
- ldr r6, [r0, #4]
- adds r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0]
- str r8, [r0, #4]
- # Sub
- subs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1]
- str r10, [r1, #4]
- # Add
- ldr r3, [r2, #8]
- ldr r4, [r2, #12]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #8]
- str r8, [r0, #12]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #8]
- str r10, [r1, #12]
- # Add
- ldr r3, [r2, #16]
- ldr r4, [r2, #20]
- ldr r5, [r0, #16]
- ldr r6, [r0, #20]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #16]
- str r8, [r0, #20]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #16]
- str r10, [r1, #20]
- # Add
- ldr r3, [r2, #24]
- ldr r4, [r2, #28]
- ldr r5, [r0, #24]
- ldr r6, [r0, #28]
- adds r12, r12, #-1
- adcs r7, r3, r5
- adc r8, r4, r6
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- sbc r10, r4, r6
- mov r12, #-19
- asr r11, r8, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- subs r3, r3, r12
- sbcs r4, r4, r11
- str r3, [r0]
- str r4, [r0, #4]
- ldr r3, [r0, #8]
- ldr r4, [r0, #12]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #8]
- str r4, [r0, #12]
- ldr r3, [r0, #16]
- ldr r4, [r0, #20]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #16]
- str r4, [r0, #20]
- sbcs r7, r7, r11
- sbc r8, r8, lr
- str r7, [r0, #24]
- str r8, [r0, #28]
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r1]
- ldr r4, [r1, #4]
- adds r3, r3, r12
- adcs r4, r4, r11
- str r3, [r1]
- str r4, [r1, #4]
- ldr r3, [r1, #8]
- ldr r4, [r1, #12]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #8]
- str r4, [r1, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #16]
- str r4, [r1, #20]
- adcs r9, r9, r11
- adc r10, r10, lr
- str r9, [r1, #24]
- str r10, [r1, #28]
- ldr r0, [sp, #8]
- ldr r1, [sp, #12]
- add r2, sp, #16
- # Add-Sub
- # Add
- ldr r3, [r2]
- ldr r4, [r2, #4]
- ldr r5, [r1]
- ldr r6, [r1, #4]
- adds r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0]
- str r8, [r0, #4]
- # Sub
- subs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1]
- str r10, [r1, #4]
- # Add
- ldr r3, [r2, #8]
- ldr r4, [r2, #12]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #8]
- str r8, [r0, #12]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #8]
- str r10, [r1, #12]
- # Add
- ldr r3, [r2, #16]
- ldr r4, [r2, #20]
- ldr r5, [r1, #16]
- ldr r6, [r1, #20]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #16]
- str r8, [r0, #20]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #16]
- str r10, [r1, #20]
- # Add
- ldr r3, [r2, #24]
- ldr r4, [r2, #28]
- ldr r5, [r1, #24]
- ldr r6, [r1, #28]
- adds r12, r12, #-1
- adcs r7, r3, r5
- adc r8, r4, r6
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- sbc r10, r4, r6
- mov r12, #-19
- asr r11, r8, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- subs r3, r3, r12
- sbcs r4, r4, r11
- str r3, [r0]
- str r4, [r0, #4]
- ldr r3, [r0, #8]
- ldr r4, [r0, #12]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #8]
- str r4, [r0, #12]
- ldr r3, [r0, #16]
- ldr r4, [r0, #20]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #16]
- str r4, [r0, #20]
- sbcs r7, r7, r11
- sbc r8, r8, lr
- str r7, [r0, #24]
- str r8, [r0, #28]
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r1]
- ldr r4, [r1, #4]
- adds r3, r3, r12
- adcs r4, r4, r11
- str r3, [r1]
- str r4, [r1, #4]
- ldr r3, [r1, #8]
- ldr r4, [r1, #12]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #8]
- str r4, [r1, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #16]
- str r4, [r1, #20]
- adcs r9, r9, r11
- adc r10, r10, lr
- str r9, [r1, #24]
- str r10, [r1, #28]
- add sp, sp, #0x60
- pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}
- .size fe_ge_add,.-fe_ge_add
- .text
- .align 2
- .globl fe_ge_sub
- .type fe_ge_sub, %function
-fe_ge_sub:
- push {r4, r5, r6, r7, r8, r9, r10, r11, lr}
- sub sp, sp, #0x60
- str r0, [sp]
- str r1, [sp, #4]
- str r2, [sp, #8]
- str r3, [sp, #12]
- ldr r0, [sp]
- ldr r1, [sp, #136]
- ldr r2, [sp, #132]
- # Add
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- ldr r7, [r2]
- ldr r8, [r2, #4]
- ldr r9, [r2, #8]
- ldr r10, [r2, #12]
- adds r7, r3, r7
- adcs r8, r4, r8
- adcs r9, r5, r9
- adcs r10, r6, r10
- str r7, [r0]
- str r8, [r0, #4]
- str r9, [r0, #8]
- str r10, [r0, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- ldr r5, [r1, #24]
- ldr r6, [r1, #28]
- ldr r7, [r2, #16]
- ldr r8, [r2, #20]
- ldr r9, [r2, #24]
- ldr r10, [r2, #28]
- adcs r7, r3, r7
- adcs r8, r4, r8
- adcs r9, r5, r9
- adc r10, r6, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- subs r3, r3, r12
- sbcs r4, r4, r11
- sbcs r5, r5, r11
- sbcs r6, r6, r11
- sbcs r7, r7, r11
- sbcs r8, r8, r11
- sbcs r9, r9, r11
- sbc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- ldr r0, [sp, #4]
- ldr r1, [sp, #136]
- ldr r2, [sp, #132]
- # Sub
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- ldr r7, [r2]
- ldr r8, [r2, #4]
- ldr r9, [r2, #8]
- ldr r10, [r2, #12]
- subs r7, r3, r7
- sbcs r8, r4, r8
- sbcs r9, r5, r9
- sbcs r10, r6, r10
- str r7, [r0]
- str r8, [r0, #4]
- str r9, [r0, #8]
- str r10, [r0, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- ldr r5, [r1, #24]
- ldr r6, [r1, #28]
- ldr r7, [r2, #16]
- ldr r8, [r2, #20]
- ldr r9, [r2, #24]
- ldr r10, [r2, #28]
- sbcs r7, r3, r7
- sbcs r8, r4, r8
- sbcs r9, r5, r9
- sbc r10, r6, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- adds r3, r3, r12
- adcs r4, r4, r11
- adcs r5, r5, r11
- adcs r6, r6, r11
- adcs r7, r7, r11
- adcs r8, r8, r11
- adcs r9, r9, r11
- adc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- ldr r2, [sp, #160]
- ldr r1, [sp]
- ldr r0, [sp, #8]
- bl fe_mul
- ldr r2, [sp, #156]
- ldr r1, [sp, #4]
- ldr r0, [sp, #4]
- bl fe_mul
- ldr r2, [sp, #144]
- ldr r1, [sp, #152]
- ldr r0, [sp, #12]
- bl fe_mul
- ldr r2, [sp, #148]
- ldr r1, [sp, #140]
- ldr r0, [sp]
- bl fe_mul
- add r0, sp, #16
- ldr r1, [sp]
- # Double
- ldr r3, [r1]
- ldr r4, [r1, #4]
- ldr r5, [r1, #8]
- ldr r6, [r1, #12]
- ldr r7, [r1, #16]
- ldr r8, [r1, #20]
- ldr r9, [r1, #24]
- ldr r10, [r1, #28]
- adds r3, r3, r3
- adcs r4, r4, r4
- adcs r5, r5, r5
- adcs r6, r6, r6
- adcs r7, r7, r7
- adcs r8, r8, r8
- adcs r9, r9, r9
- adc r10, r10, r10
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- subs r3, r3, r12
- sbcs r4, r4, r11
- sbcs r5, r5, r11
- sbcs r6, r6, r11
- sbcs r7, r7, r11
- sbcs r8, r8, r11
- sbcs r9, r9, r11
- sbc r10, r10, lr
- str r3, [r0]
- str r4, [r0, #4]
- str r5, [r0, #8]
- str r6, [r0, #12]
- str r7, [r0, #16]
- str r8, [r0, #20]
- str r9, [r0, #24]
- str r10, [r0, #28]
- ldr r0, [sp, #4]
- ldr r1, [sp]
- ldr r2, [sp, #8]
- # Add-Sub
- # Add
- ldr r3, [r2]
- ldr r4, [r2, #4]
- ldr r5, [r0]
- ldr r6, [r0, #4]
- adds r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0]
- str r8, [r0, #4]
- # Sub
- subs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1]
- str r10, [r1, #4]
- # Add
- ldr r3, [r2, #8]
- ldr r4, [r2, #12]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #8]
- str r8, [r0, #12]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #8]
- str r10, [r1, #12]
- # Add
- ldr r3, [r2, #16]
- ldr r4, [r2, #20]
- ldr r5, [r0, #16]
- ldr r6, [r0, #20]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #16]
- str r8, [r0, #20]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #16]
- str r10, [r1, #20]
- # Add
- ldr r3, [r2, #24]
- ldr r4, [r2, #28]
- ldr r5, [r0, #24]
- ldr r6, [r0, #28]
- adds r12, r12, #-1
- adcs r7, r3, r5
- adc r8, r4, r6
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- sbc r10, r4, r6
- mov r12, #-19
- asr r11, r8, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- subs r3, r3, r12
- sbcs r4, r4, r11
- str r3, [r0]
- str r4, [r0, #4]
- ldr r3, [r0, #8]
- ldr r4, [r0, #12]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #8]
- str r4, [r0, #12]
- ldr r3, [r0, #16]
- ldr r4, [r0, #20]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #16]
- str r4, [r0, #20]
- sbcs r7, r7, r11
- sbc r8, r8, lr
- str r7, [r0, #24]
- str r8, [r0, #28]
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r1]
- ldr r4, [r1, #4]
- adds r3, r3, r12
- adcs r4, r4, r11
- str r3, [r1]
- str r4, [r1, #4]
- ldr r3, [r1, #8]
- ldr r4, [r1, #12]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #8]
- str r4, [r1, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #16]
- str r4, [r1, #20]
- adcs r9, r9, r11
- adc r10, r10, lr
- str r9, [r1, #24]
- str r10, [r1, #28]
- ldr r0, [sp, #12]
- ldr r1, [sp, #8]
- add r2, sp, #16
- # Add-Sub
- # Add
- ldr r3, [r2]
- ldr r4, [r2, #4]
- ldr r5, [r0]
- ldr r6, [r0, #4]
- adds r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0]
- str r8, [r0, #4]
- # Sub
- subs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1]
- str r10, [r1, #4]
- # Add
- ldr r3, [r2, #8]
- ldr r4, [r2, #12]
- ldr r5, [r0, #8]
- ldr r6, [r0, #12]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #8]
- str r8, [r0, #12]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #8]
- str r10, [r1, #12]
- # Add
- ldr r3, [r2, #16]
- ldr r4, [r2, #20]
- ldr r5, [r0, #16]
- ldr r6, [r0, #20]
- adds r12, r12, #-1
- adcs r7, r3, r5
- mov r12, #0
- adcs r8, r4, r6
- adc r12, r12, #0
- str r7, [r0, #16]
- str r8, [r0, #20]
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- mov lr, #0
- sbcs r10, r4, r6
- adc lr, lr, #0
- str r9, [r1, #16]
- str r10, [r1, #20]
- # Add
- ldr r3, [r2, #24]
- ldr r4, [r2, #28]
- ldr r5, [r0, #24]
- ldr r6, [r0, #28]
- adds r12, r12, #-1
- adcs r7, r3, r5
- adc r8, r4, r6
- # Sub
- adds lr, lr, #-1
- sbcs r9, r3, r5
- sbc r10, r4, r6
- mov r12, #-19
- asr r11, r8, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Sub modulus (if overflow)
- ldr r3, [r0]
- ldr r4, [r0, #4]
- subs r3, r3, r12
- sbcs r4, r4, r11
- str r3, [r0]
- str r4, [r0, #4]
- ldr r3, [r0, #8]
- ldr r4, [r0, #12]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #8]
- str r4, [r0, #12]
- ldr r3, [r0, #16]
- ldr r4, [r0, #20]
- sbcs r3, r3, r11
- sbcs r4, r4, r11
- str r3, [r0, #16]
- str r4, [r0, #20]
- sbcs r7, r7, r11
- sbc r8, r8, lr
- str r7, [r0, #24]
- str r8, [r0, #28]
- mov r12, #-19
- asr r11, r10, #31
- # Mask the modulus
- and r12, r11, r12
- and lr, r11, #0x7fffffff
- # Add modulus (if underflow)
- ldr r3, [r1]
- ldr r4, [r1, #4]
- adds r3, r3, r12
- adcs r4, r4, r11
- str r3, [r1]
- str r4, [r1, #4]
- ldr r3, [r1, #8]
- ldr r4, [r1, #12]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #8]
- str r4, [r1, #12]
- ldr r3, [r1, #16]
- ldr r4, [r1, #20]
- adcs r3, r3, r11
- adcs r4, r4, r11
- str r3, [r1, #16]
- str r4, [r1, #20]
- adcs r9, r9, r11
- adc r10, r10, lr
- str r9, [r1, #24]
- str r10, [r1, #28]
- add sp, sp, #0x60
- pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}
- .size fe_ge_sub,.-fe_ge_sub
-#endif /* !__aarch64__ */
-#endif /* WOLFSSL_ARMASM */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-curve25519.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-curve25519.c
deleted file mode 100644
index f7ef3795c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-curve25519.c
+++ /dev/null
@@ -1,5581 +0,0 @@
-/* armv8-32-curve25519
- *
- * Copyright (C) 2006-2020 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
- */
-
-/* Generated using (from wolfssl):
- * cd ../scripts
- * ruby ./x25519/x25519.rb arm32 ../wolfssl/wolfcrypt/src/port/arm/armv8-32-curve25519.c
- */
-
-#ifndef __aarch64__
-
-#include <stdint.h>
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifdef WOLFSSL_ARMASM
-#include <wolfssl/wolfcrypt/fe_operations.h>
-#include <stdint.h>
-
-void fe_init()
-{
- __asm__ __volatile__ (
- "\n\t"
- :
- :
- : "memory"
- );
-}
-
-void fe_frombytes(fe out, const unsigned char* in)
-{
- __asm__ __volatile__ (
- "ldrd r2, r3, [%[in]]\n\t"
- "ldrd r12, lr, [%[in], #8]\n\t"
- "ldrd r4, r5, [%[in], #16]\n\t"
- "ldrd r6, r7, [%[in], #24]\n\t"
- "and r7, r7, #0x7fffffff\n\t"
- "strd r2, r3, [%[out]]\n\t"
- "strd r12, lr, [%[out], #8]\n\t"
- "strd r4, r5, [%[out], #16]\n\t"
- "strd r6, r7, [%[out], #24]\n\t"
- : [out] "+r" (out), [in] "+r" (in)
- :
- : "memory", "r2", "r3", "r12", "lr", "r4", "r5", "r6", "r7"
- );
-}
-
-void fe_tobytes(unsigned char* out, const fe n)
-{
- __asm__ __volatile__ (
- "ldrd r2, r3, [%[in]]\n\t"
- "ldrd r12, lr, [%[in], #8]\n\t"
- "ldrd r4, r5, [%[in], #16]\n\t"
- "ldrd r6, r7, [%[in], #24]\n\t"
- "adds r8, r2, #19\n\t"
- "adcs r8, r3, #0\n\t"
- "adcs r8, r12, #0\n\t"
- "adcs r8, lr, #0\n\t"
- "adcs r8, r4, #0\n\t"
- "adcs r8, r5, #0\n\t"
- "adcs r8, r6, #0\n\t"
- "adc r8, r7, #0\n\t"
- "asr r8, r8, #31\n\t"
- "and r8, r8, #19\n\t"
- "adds r2, r2, r8\n\t"
- "adcs r3, r3, #0\n\t"
- "adcs r12, r12, #0\n\t"
- "adcs lr, lr, #0\n\t"
- "adcs r4, r4, #0\n\t"
- "adcs r5, r5, #0\n\t"
- "adcs r6, r6, #0\n\t"
- "adc r7, r7, #0\n\t"
- "and r7, r7, #0x7fffffff\n\t"
- "strd r2, r3, [%[out]]\n\t"
- "strd r12, lr, [%[out], #8]\n\t"
- "strd r4, r5, [%[out], #16]\n\t"
- "strd r6, r7, [%[out], #24]\n\t"
- : [out] "+r" (out), [n] "+r" (n)
- :
- : "memory", "r2", "r3", "r12", "lr", "r4", "r5", "r6", "r7", "r8"
- );
-}
-
-void fe_1(fe n)
-{
- __asm__ __volatile__ (
- /* Set one */
- "mov r2, #1\n\t"
- "mov r1, #0\n\t"
- "strd r2, r1, [%[n]]\n\t"
- "strd r1, r1, [%[n], #8]\n\t"
- "strd r1, r1, [%[n], #16]\n\t"
- "strd r1, r1, [%[n], #24]\n\t"
- : [n] "+r" (n)
- :
- : "memory", "r1", "r2"
- );
-}
-
-void fe_0(fe n)
-{
- __asm__ __volatile__ (
- /* Set zero */
- "mov r1, #0\n\t"
- "strd r1, r1, [%[n]]\n\t"
- "strd r1, r1, [%[n], #8]\n\t"
- "strd r1, r1, [%[n], #16]\n\t"
- "strd r1, r1, [%[n], #24]\n\t"
- : [n] "+r" (n)
- :
- : "memory", "r1"
- );
-}
-
-void fe_copy(fe r, const fe a)
-{
- __asm__ __volatile__ (
- /* Copy */
- "ldrd r2, r3, [%[a]]\n\t"
- "ldrd r12, lr, [%[a], #8]\n\t"
- "strd r2, r3, [%[r]]\n\t"
- "strd r12, lr, [%[r], #8]\n\t"
- "ldrd r2, r3, [%[a], #16]\n\t"
- "ldrd r12, lr, [%[a], #24]\n\t"
- "strd r2, r3, [%[r], #16]\n\t"
- "strd r12, lr, [%[r], #24]\n\t"
- : [r] "+r" (r), [a] "+r" (a)
- :
- : "memory", "r2", "r3", "r12", "lr"
- );
-}
-
-void fe_sub(fe r, const fe a, const fe b)
-{
- __asm__ __volatile__ (
- /* Sub */
- "ldrd r12, lr, [%[a]]\n\t"
- "ldrd r4, r5, [%[a], #8]\n\t"
- "ldrd r6, r7, [%[b]]\n\t"
- "ldrd r8, r9, [%[b], #8]\n\t"
- "subs r6, r12, r6\n\t"
- "sbcs r7, lr, r7\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "strd r6, r7, [%[r]]\n\t"
- "strd r8, r9, [%[r], #8]\n\t"
- "ldrd r12, lr, [%[a], #16]\n\t"
- "ldrd r4, r5, [%[a], #24]\n\t"
- "ldrd r6, r7, [%[b], #16]\n\t"
- "ldrd r8, r9, [%[b], #24]\n\t"
- "sbcs r6, r12, r6\n\t"
- "sbcs r7, lr, r7\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbc r9, r5, r9\n\t"
- "mov r10, #-19\n\t"
- "asr r3, r9, #31\n\t"
- /* Mask the modulus */
- "and r10, r3, r10\n\t"
- "and r11, r3, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd r12, lr, [%[r]]\n\t"
- "ldrd r4, r5, [%[r], #8]\n\t"
- "adds r12, r12, r10\n\t"
- "adcs lr, lr, r3\n\t"
- "adcs r4, r4, r3\n\t"
- "adcs r5, r5, r3\n\t"
- "adcs r6, r6, r3\n\t"
- "adcs r7, r7, r3\n\t"
- "adcs r8, r8, r3\n\t"
- "adc r9, r9, r11\n\t"
- "strd r12, lr, [%[r]]\n\t"
- "strd r4, r5, [%[r], #8]\n\t"
- "strd r6, r7, [%[r], #16]\n\t"
- "strd r8, r9, [%[r], #24]\n\t"
- : [r] "+r" (r), [a] "+r" (a), [b] "+r" (b)
- :
- : "memory", "r3", "r12", "lr", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
- );
-}
-
-void fe_add(fe r, const fe a, const fe b)
-{
- __asm__ __volatile__ (
- /* Add */
- "ldrd r12, lr, [%[a]]\n\t"
- "ldrd r4, r5, [%[a], #8]\n\t"
- "ldrd r6, r7, [%[b]]\n\t"
- "ldrd r8, r9, [%[b], #8]\n\t"
- "adds r6, r12, r6\n\t"
- "adcs r7, lr, r7\n\t"
- "adcs r8, r4, r8\n\t"
- "adcs r9, r5, r9\n\t"
- "strd r6, r7, [%[r]]\n\t"
- "strd r8, r9, [%[r], #8]\n\t"
- "ldrd r12, lr, [%[a], #16]\n\t"
- "ldrd r4, r5, [%[a], #24]\n\t"
- "ldrd r6, r7, [%[b], #16]\n\t"
- "ldrd r8, r9, [%[b], #24]\n\t"
- "adcs r6, r12, r6\n\t"
- "adcs r7, lr, r7\n\t"
- "adcs r8, r4, r8\n\t"
- "adc r9, r5, r9\n\t"
- "mov r10, #-19\n\t"
- "asr r3, r9, #31\n\t"
- /* Mask the modulus */
- "and r10, r3, r10\n\t"
- "and r11, r3, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd r12, lr, [%[r]]\n\t"
- "ldrd r4, r5, [%[r], #8]\n\t"
- "subs r12, r12, r10\n\t"
- "sbcs lr, lr, r3\n\t"
- "sbcs r4, r4, r3\n\t"
- "sbcs r5, r5, r3\n\t"
- "sbcs r6, r6, r3\n\t"
- "sbcs r7, r7, r3\n\t"
- "sbcs r8, r8, r3\n\t"
- "sbc r9, r9, r11\n\t"
- "strd r12, lr, [%[r]]\n\t"
- "strd r4, r5, [%[r], #8]\n\t"
- "strd r6, r7, [%[r], #16]\n\t"
- "strd r8, r9, [%[r], #24]\n\t"
- : [r] "+r" (r), [a] "+r" (a), [b] "+r" (b)
- :
- : "memory", "r3", "r12", "lr", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
- );
-}
-
-void fe_neg(fe r, const fe a)
-{
- __asm__ __volatile__ (
- "mov r5, #-1\n\t"
- "mov r4, #-19\n\t"
- "ldrd r2, r3, [%[a]]\n\t"
- "ldrd r12, lr, [%[a], #8]\n\t"
- "subs r2, r4, r2\n\t"
- "sbcs r3, r5, r3\n\t"
- "sbcs r12, r5, r12\n\t"
- "sbcs lr, r5, lr\n\t"
- "strd r2, r3, [%[r]]\n\t"
- "strd r12, lr, [%[r], #8]\n\t"
- "mov r4, #0x7fffffff\n\t"
- "ldrd r2, r3, [%[a], #16]\n\t"
- "ldrd r12, lr, [%[a], #24]\n\t"
- "sbcs r2, r5, r2\n\t"
- "sbcs r3, r5, r3\n\t"
- "sbcs r12, r5, r12\n\t"
- "sbc lr, r4, lr\n\t"
- "strd r2, r3, [%[r], #16]\n\t"
- "strd r12, lr, [%[r], #24]\n\t"
- : [r] "+r" (r), [a] "+r" (a)
- :
- : "memory", "r2", "r3", "r12", "lr", "r4", "r5"
- );
-}
-
-int fe_isnonzero(const fe a)
-{
- __asm__ __volatile__ (
- "ldrd r2, r3, [%[a]]\n\t"
- "ldrd r12, lr, [%[a], #8]\n\t"
- "ldrd r4, r5, [%[a], #16]\n\t"
- "ldrd r6, r7, [%[a], #24]\n\t"
- "adds r1, r2, #19\n\t"
- "adcs r1, r3, #0\n\t"
- "adcs r1, r12, #0\n\t"
- "adcs r1, lr, #0\n\t"
- "adcs r1, r4, #0\n\t"
- "adcs r1, r5, #0\n\t"
- "adcs r1, r6, #0\n\t"
- "adc r1, r7, #0\n\t"
- "asr r1, r1, #31\n\t"
- "and r1, r1, #19\n\t"
- "adds r2, r2, r1\n\t"
- "adcs r3, r3, #0\n\t"
- "adcs r12, r12, #0\n\t"
- "adcs lr, lr, #0\n\t"
- "adcs r4, r4, #0\n\t"
- "adcs r5, r5, #0\n\t"
- "adcs r6, r6, #0\n\t"
- "adc r7, r7, #0\n\t"
- "and r7, r7, #0x7fffffff\n\t"
- "orr r2, r2, r3\n\t"
- "orr r12, r12, lr\n\t"
- "orr r4, r4, r5\n\t"
- "orr r6, r6, r7\n\t"
- "orr r12, r12, r4\n\t"
- "orr r2, r2, r6\n\t"
- "orr %[a], r2, r12\n\t"
- : [a] "+r" (a)
- :
- : "memory", "r1", "r2", "r3", "r12", "lr", "r4", "r5", "r6", "r7", "r8"
- );
- return (uint32_t)(size_t)a;
-}
-
-int fe_isnegative(const fe a)
-{
- __asm__ __volatile__ (
- "ldrd r2, r3, [%[a]]\n\t"
- "ldrd r12, lr, [%[a], #8]\n\t"
- "adds r1, r2, #19\n\t"
- "adcs r1, r3, #0\n\t"
- "adcs r1, r12, #0\n\t"
- "adcs r1, lr, #0\n\t"
- "ldrd r2, r3, [%[a], #16]\n\t"
- "ldrd r12, lr, [%[a], #24]\n\t"
- "adcs r1, r2, #0\n\t"
- "adcs r1, r3, #0\n\t"
- "adcs r1, r12, #0\n\t"
- "ldr r2, [%[a]]\n\t"
- "adc r1, lr, #0\n\t"
- "and %[a], r2, #1\n\t"
- "lsr r1, r1, #31\n\t"
- "eor %[a], %[a], r1\n\t"
- : [a] "+r" (a)
- :
- : "memory", "r1", "r2", "r3", "r12", "lr"
- );
- return (uint32_t)(size_t)a;
-}
-
-void fe_cmov_table(fe* r, fe* base, signed char b)
-{
- __asm__ __volatile__ (
- "sxtb %[b], %[b]\n\t"
- "sbfx r7, %[b], #7, #1\n\t"
- "eor r10, %[b], r7\n\t"
- "sub r10, r10, r7\n\t"
- "mov r3, #1\n\t"
- "mov r12, #0\n\t"
- "mov lr, #1\n\t"
- "mov r4, #0\n\t"
- "mov r5, #0\n\t"
- "mov r6, #0\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #31\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base]]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #32]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #64]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #30\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base]]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #32]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #64]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #29\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base]]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #32]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #64]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #28\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base]]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #32]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #64]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #27\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base]]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #32]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #64]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #26\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base]]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #32]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #64]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #25\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base]]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #32]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #64]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #24\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base]]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #32]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #64]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "sub %[base], %[base], #0x2a0\n\t"
- "mov r8, #-19\n\t"
- "mov r9, #-1\n\t"
- "subs r8, r8, r5\n\t"
- "sbcs r9, r9, r6\n\t"
- "sbc r11, r11, r11\n\t"
- "asr r10, %[b], #31\n\t"
- "eor r7, r3, lr\n\t"
- "and r7, r7, r10\n\t"
- "eor r3, r3, r7\n\t"
- "eor lr, lr, r7\n\t"
- "eor r7, r12, r4\n\t"
- "and r7, r7, r10\n\t"
- "eor r12, r12, r7\n\t"
- "eor r4, r4, r7\n\t"
- "eor r8, r8, r5\n\t"
- "and r8, r8, r10\n\t"
- "eor r5, r5, r8\n\t"
- "eor r9, r9, r6\n\t"
- "and r9, r9, r10\n\t"
- "eor r6, r6, r9\n\t"
- "strd r3, r12, [%[r]]\n\t"
- "strd lr, r4, [%[r], #32]\n\t"
- "strd r5, r6, [%[r], #64]\n\t"
- "sbfx r7, %[b], #7, #1\n\t"
- "eor r10, %[b], r7\n\t"
- "sub r10, r10, r7\n\t"
- "mov r3, #0\n\t"
- "mov r12, #0\n\t"
- "mov lr, #0\n\t"
- "mov r4, #0\n\t"
- "mov r5, #0\n\t"
- "mov r6, #0\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #31\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #8]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #40]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #72]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #30\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #8]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #40]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #72]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #29\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #8]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #40]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #72]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #28\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #8]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #40]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #72]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #27\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #8]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #40]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #72]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #26\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #8]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #40]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #72]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #25\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #8]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #40]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #72]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #24\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #8]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #40]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #72]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "sub %[base], %[base], #0x2a0\n\t"
- "mov r8, #-1\n\t"
- "mov r9, #-1\n\t"
- "rsbs r11, r11, #0\n\t"
- "sbcs r8, r8, r5\n\t"
- "sbcs r9, r9, r6\n\t"
- "sbc r11, r11, r11\n\t"
- "asr r10, %[b], #31\n\t"
- "eor r7, r3, lr\n\t"
- "and r7, r7, r10\n\t"
- "eor r3, r3, r7\n\t"
- "eor lr, lr, r7\n\t"
- "eor r7, r12, r4\n\t"
- "and r7, r7, r10\n\t"
- "eor r12, r12, r7\n\t"
- "eor r4, r4, r7\n\t"
- "eor r8, r8, r5\n\t"
- "and r8, r8, r10\n\t"
- "eor r5, r5, r8\n\t"
- "eor r9, r9, r6\n\t"
- "and r9, r9, r10\n\t"
- "eor r6, r6, r9\n\t"
- "strd r3, r12, [%[r], #8]\n\t"
- "strd lr, r4, [%[r], #40]\n\t"
- "strd r5, r6, [%[r], #72]\n\t"
- "sbfx r7, %[b], #7, #1\n\t"
- "eor r10, %[b], r7\n\t"
- "sub r10, r10, r7\n\t"
- "mov r3, #0\n\t"
- "mov r12, #0\n\t"
- "mov lr, #0\n\t"
- "mov r4, #0\n\t"
- "mov r5, #0\n\t"
- "mov r6, #0\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #31\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #16]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #48]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #80]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #30\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #16]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #48]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #80]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #29\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #16]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #48]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #80]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #28\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #16]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #48]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #80]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #27\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #16]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #48]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #80]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #26\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #16]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #48]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #80]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #25\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #16]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #48]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #80]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #24\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #16]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #48]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #80]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "sub %[base], %[base], #0x2a0\n\t"
- "mov r8, #-1\n\t"
- "mov r9, #-1\n\t"
- "rsbs r11, r11, #0\n\t"
- "sbcs r8, r8, r5\n\t"
- "sbcs r9, r9, r6\n\t"
- "sbc r11, r11, r11\n\t"
- "asr r10, %[b], #31\n\t"
- "eor r7, r3, lr\n\t"
- "and r7, r7, r10\n\t"
- "eor r3, r3, r7\n\t"
- "eor lr, lr, r7\n\t"
- "eor r7, r12, r4\n\t"
- "and r7, r7, r10\n\t"
- "eor r12, r12, r7\n\t"
- "eor r4, r4, r7\n\t"
- "eor r8, r8, r5\n\t"
- "and r8, r8, r10\n\t"
- "eor r5, r5, r8\n\t"
- "eor r9, r9, r6\n\t"
- "and r9, r9, r10\n\t"
- "eor r6, r6, r9\n\t"
- "strd r3, r12, [%[r], #16]\n\t"
- "strd lr, r4, [%[r], #48]\n\t"
- "strd r5, r6, [%[r], #80]\n\t"
- "sbfx r7, %[b], #7, #1\n\t"
- "eor r10, %[b], r7\n\t"
- "sub r10, r10, r7\n\t"
- "mov r3, #0\n\t"
- "mov r12, #0\n\t"
- "mov lr, #0\n\t"
- "mov r4, #0\n\t"
- "mov r5, #0\n\t"
- "mov r6, #0\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #31\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #24]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #56]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #88]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #30\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #24]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #56]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #88]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #29\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #24]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #56]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #88]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #28\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #24]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #56]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #88]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #27\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #24]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #56]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #88]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #26\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #24]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #56]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #88]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #25\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #24]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #56]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #88]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "add %[base], %[base], #0x60\n\t"
- "mov r7, #0x80000000\n\t"
- "ror r7, r7, #24\n\t"
- "ror r7, r7, r10\n\t"
- "asr r7, r7, #31\n\t"
- "ldrd r8, r9, [%[base], #24]\n\t"
- "eor r8, r8, r3\n\t"
- "eor r9, r9, r12\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r3, r3, r8\n\t"
- "eor r12, r12, r9\n\t"
- "ldrd r8, r9, [%[base], #56]\n\t"
- "eor r8, r8, lr\n\t"
- "eor r9, r9, r4\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor lr, lr, r8\n\t"
- "eor r4, r4, r9\n\t"
- "ldrd r8, r9, [%[base], #88]\n\t"
- "eor r8, r8, r5\n\t"
- "eor r9, r9, r6\n\t"
- "and r8, r8, r7\n\t"
- "and r9, r9, r7\n\t"
- "eor r5, r5, r8\n\t"
- "eor r6, r6, r9\n\t"
- "sub %[base], %[base], #0x2a0\n\t"
- "mov r8, #-1\n\t"
- "mov r9, #0x7fffffff\n\t"
- "rsbs r11, r11, #0\n\t"
- "sbcs r8, r8, r5\n\t"
- "sbc r9, r9, r6\n\t"
- "asr r10, %[b], #31\n\t"
- "eor r7, r3, lr\n\t"
- "and r7, r7, r10\n\t"
- "eor r3, r3, r7\n\t"
- "eor lr, lr, r7\n\t"
- "eor r7, r12, r4\n\t"
- "and r7, r7, r10\n\t"
- "eor r12, r12, r7\n\t"
- "eor r4, r4, r7\n\t"
- "eor r8, r8, r5\n\t"
- "and r8, r8, r10\n\t"
- "eor r5, r5, r8\n\t"
- "eor r9, r9, r6\n\t"
- "and r9, r9, r10\n\t"
- "eor r6, r6, r9\n\t"
- "strd r3, r12, [%[r], #24]\n\t"
- "strd lr, r4, [%[r], #56]\n\t"
- "strd r5, r6, [%[r], #88]\n\t"
- : [r] "+r" (r), [base] "+r" (base), [b] "+r" (b)
- :
- : "memory", "r3", "r12", "lr", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
- );
-}
-
-void fe_mul(fe r, const fe a, const fe b)
-{
- __asm__ __volatile__ (
- "sub sp, sp, #0x40\n\t"
- /* Multiply */
- "ldr r7, [%[a]]\n\t"
- "ldr r8, [%[a], #4]\n\t"
- "ldr r9, [%[b]]\n\t"
- "ldr lr, [%[b], #4]\n\t"
- /* A[0] * B[0] = 0 */
- "umull r4, r5, r7, r9\n\t"
- "str r4, [sp]\n\t"
- /* A[0] * B[1] = 1 */
- "umull r3, r6, r7, lr\n\t"
- "adds r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[1] * B[0] = 1 */
- "umull r3, r12, r8, r9\n\t"
- "adds r5, r5, r3\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #4]\n\t"
- /* A[2] * B[0] = 2 */
- "ldr r10, [%[a], #8]\n\t"
- "umull r3, r12, r10, r9\n\t"
- "adds r6, r6, r3\n\t"
- "adc r4, r4, r12\n\t"
- /* A[1] * B[1] = 2 */
- "umull r3, r12, r8, lr\n\t"
- "adds r6, r6, r3\n\t"
- "mov r5, #0\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[0] * B[2] = 2 */
- "ldr r11, [%[b], #8]\n\t"
- "umull r3, r12, r7, r11\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- "str r6, [sp, #8]\n\t"
- /* A[0] * B[3] = 3 */
- "ldr r11, [%[b], #12]\n\t"
- "umull r3, r12, r7, r11\n\t"
- "adds r4, r4, r3\n\t"
- "mov r6, #0\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[1] * B[2] = 3 */
- "ldr r11, [%[b], #8]\n\t"
- "umull r3, r12, r8, r11\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[2] * B[1] = 3 */
- "umull r3, r12, r10, lr\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[3] * B[0] = 3 */
- "ldr r10, [%[a], #12]\n\t"
- "umull r3, r12, r10, r9\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- "str r4, [sp, #12]\n\t"
- /* A[4] * B[0] = 4 */
- "ldr r10, [%[a], #16]\n\t"
- "umull r3, r12, r10, r9\n\t"
- "adds r5, r5, r3\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[3] * B[1] = 4 */
- "ldr r10, [%[a], #12]\n\t"
- "umull r3, r12, r10, lr\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[2] * B[2] = 4 */
- "ldr r10, [%[a], #8]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[1] * B[3] = 4 */
- "ldr r11, [%[b], #12]\n\t"
- "umull r3, r12, r8, r11\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[0] * B[4] = 4 */
- "ldr r11, [%[b], #16]\n\t"
- "umull r3, r12, r7, r11\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #16]\n\t"
- /* A[0] * B[5] = 5 */
- "ldr r11, [%[b], #20]\n\t"
- "umull r3, r12, r7, r11\n\t"
- "adds r6, r6, r3\n\t"
- "mov r5, #0\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[1] * B[4] = 5 */
- "ldr r11, [%[b], #16]\n\t"
- "umull r3, r12, r8, r11\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[2] * B[3] = 5 */
- "ldr r11, [%[b], #12]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[3] * B[2] = 5 */
- "ldr r10, [%[a], #12]\n\t"
- "ldr r11, [%[b], #8]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[4] * B[1] = 5 */
- "ldr r10, [%[a], #16]\n\t"
- "umull r3, r12, r10, lr\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[5] * B[0] = 5 */
- "ldr r10, [%[a], #20]\n\t"
- "umull r3, r12, r10, r9\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- "str r6, [sp, #20]\n\t"
- /* A[6] * B[0] = 6 */
- "ldr r10, [%[a], #24]\n\t"
- "umull r3, r12, r10, r9\n\t"
- "adds r4, r4, r3\n\t"
- "mov r6, #0\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[5] * B[1] = 6 */
- "ldr r10, [%[a], #20]\n\t"
- "umull r3, r12, r10, lr\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[4] * B[2] = 6 */
- "ldr r10, [%[a], #16]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[3] * B[3] = 6 */
- "ldr r10, [%[a], #12]\n\t"
- "ldr r11, [%[b], #12]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[2] * B[4] = 6 */
- "ldr r10, [%[a], #8]\n\t"
- "ldr r11, [%[b], #16]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[1] * B[5] = 6 */
- "ldr r11, [%[b], #20]\n\t"
- "umull r3, r12, r8, r11\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[0] * B[6] = 6 */
- "ldr r11, [%[b], #24]\n\t"
- "umull r3, r12, r7, r11\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- "str r4, [sp, #24]\n\t"
- /* A[0] * B[7] = 7 */
- "ldr r11, [%[b], #28]\n\t"
- "umull r3, r12, r7, r11\n\t"
- "adds r5, r5, r3\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[1] * B[6] = 7 */
- "ldr r11, [%[b], #24]\n\t"
- "umull r3, r12, r8, r11\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[2] * B[5] = 7 */
- "ldr r11, [%[b], #20]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[3] * B[4] = 7 */
- "ldr r10, [%[a], #12]\n\t"
- "ldr r11, [%[b], #16]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[4] * B[3] = 7 */
- "ldr r10, [%[a], #16]\n\t"
- "ldr r11, [%[b], #12]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[5] * B[2] = 7 */
- "ldr r10, [%[a], #20]\n\t"
- "ldr r11, [%[b], #8]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[6] * B[1] = 7 */
- "ldr r10, [%[a], #24]\n\t"
- "umull r3, r12, r10, lr\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[7] * B[0] = 7 */
- "ldr r10, [%[a], #28]\n\t"
- "umull r3, r12, r10, r9\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #28]\n\t"
- "ldr r7, [%[a], #24]\n\t"
- "ldr r9, [%[b], #24]\n\t"
- /* A[7] * B[1] = 8 */
- "umull r3, r12, r10, lr\n\t"
- "adds r6, r6, r3\n\t"
- "mov r5, #0\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[6] * B[2] = 8 */
- "umull r3, r12, r7, r11\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[5] * B[3] = 8 */
- "ldr r10, [%[a], #20]\n\t"
- "ldr r11, [%[b], #12]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[4] * B[4] = 8 */
- "ldr r10, [%[a], #16]\n\t"
- "ldr r11, [%[b], #16]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[3] * B[5] = 8 */
- "ldr r10, [%[a], #12]\n\t"
- "ldr r11, [%[b], #20]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[2] * B[6] = 8 */
- "ldr r10, [%[a], #8]\n\t"
- "umull r3, r12, r10, r9\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[1] * B[7] = 8 */
- "ldr r11, [%[b], #28]\n\t"
- "umull r3, r12, r8, r11\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- "str r6, [sp, #32]\n\t"
- "ldr r8, [%[a], #28]\n\t"
- "mov lr, r11\n\t"
- /* A[2] * B[7] = 9 */
- "umull r3, r12, r10, lr\n\t"
- "adds r4, r4, r3\n\t"
- "mov r6, #0\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[3] * B[6] = 9 */
- "ldr r10, [%[a], #12]\n\t"
- "umull r3, r12, r10, r9\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[4] * B[5] = 9 */
- "ldr r10, [%[a], #16]\n\t"
- "ldr r11, [%[b], #20]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[5] * B[4] = 9 */
- "ldr r10, [%[a], #20]\n\t"
- "ldr r11, [%[b], #16]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[6] * B[3] = 9 */
- "ldr r11, [%[b], #12]\n\t"
- "umull r3, r12, r7, r11\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[7] * B[2] = 9 */
- "ldr r11, [%[b], #8]\n\t"
- "umull r3, r12, r8, r11\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- "str r4, [sp, #36]\n\t"
- /* A[7] * B[3] = 10 */
- "ldr r11, [%[b], #12]\n\t"
- "umull r3, r12, r8, r11\n\t"
- "adds r5, r5, r3\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[6] * B[4] = 10 */
- "ldr r11, [%[b], #16]\n\t"
- "umull r3, r12, r7, r11\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[5] * B[5] = 10 */
- "ldr r11, [%[b], #20]\n\t"
- "umull r3, r12, r10, r11\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[4] * B[6] = 10 */
- "ldr r10, [%[a], #16]\n\t"
- "umull r3, r12, r10, r9\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[3] * B[7] = 10 */
- "ldr r10, [%[a], #12]\n\t"
- "umull r3, r12, r10, lr\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #40]\n\t"
- /* A[4] * B[7] = 11 */
- "ldr r10, [%[a], #16]\n\t"
- "umull r3, r12, r10, lr\n\t"
- "adds r6, r6, r3\n\t"
- "mov r5, #0\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[5] * B[6] = 11 */
- "ldr r10, [%[a], #20]\n\t"
- "umull r3, r12, r10, r9\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[6] * B[5] = 11 */
- "umull r3, r12, r7, r11\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- /* A[7] * B[4] = 11 */
- "ldr r11, [%[b], #16]\n\t"
- "umull r3, r12, r8, r11\n\t"
- "adds r6, r6, r3\n\t"
- "adcs r4, r4, r12\n\t"
- "adc r5, r5, #0\n\t"
- "str r6, [sp, #44]\n\t"
- /* A[7] * B[5] = 12 */
- "ldr r11, [%[b], #20]\n\t"
- "umull r3, r12, r8, r11\n\t"
- "adds r4, r4, r3\n\t"
- "mov r6, #0\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[6] * B[6] = 12 */
- "umull r3, r12, r7, r9\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- /* A[5] * B[7] = 12 */
- "umull r3, r12, r10, lr\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, r12\n\t"
- "adc r6, r6, #0\n\t"
- "str r4, [sp, #48]\n\t"
- /* A[6] * B[7] = 13 */
- "umull r3, r12, r7, lr\n\t"
- "adds r5, r5, r3\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- /* A[7] * B[6] = 13 */
- "umull r3, r12, r8, r9\n\t"
- "adds r5, r5, r3\n\t"
- "adcs r6, r6, r12\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #52]\n\t"
- /* A[7] * B[7] = 14 */
- "umull r3, r12, r8, lr\n\t"
- "adds r6, r6, r3\n\t"
- "adc r4, r4, r12\n\t"
- "str r6, [sp, #56]\n\t"
- "str r4, [sp, #60]\n\t"
- /* Reduce */
- /* Load bottom half */
- "ldrd r4, r5, [sp]\n\t"
- "ldrd r6, r7, [sp, #8]\n\t"
- "ldrd r8, r9, [sp, #16]\n\t"
- "ldrd r10, r11, [sp, #24]\n\t"
- "lsr r3, r11, #31\n\t"
- "and r11, r11, #0x7fffffff\n\t"
- "mov lr, #19\n\t"
- "ldr %[a], [sp, #32]\n\t"
- "orr r3, r3, %[a], lsl #1\n\t"
- "umull r3, r12, lr, r3\n\t"
- "adds r4, r4, r3\n\t"
- "mov %[b], #0\n\t"
- "adcs r5, r5, r12\n\t"
- "adc %[b], %[b], #0\n\t"
- "lsr r3, %[a], #31\n\t"
- "ldr %[a], [sp, #36]\n\t"
- "orr r3, r3, %[a], lsl #1\n\t"
- "umull r3, r12, lr, r3\n\t"
- "add r12, r12, %[b]\n\t"
- "adds r5, r5, r3\n\t"
- "mov %[b], #0\n\t"
- "adcs r6, r6, r12\n\t"
- "adc %[b], %[b], #0\n\t"
- "lsr r3, %[a], #31\n\t"
- "ldr %[a], [sp, #40]\n\t"
- "orr r3, r3, %[a], lsl #1\n\t"
- "umull r3, r12, lr, r3\n\t"
- "add r12, r12, %[b]\n\t"
- "adds r6, r6, r3\n\t"
- "mov %[b], #0\n\t"
- "adcs r7, r7, r12\n\t"
- "adc %[b], %[b], #0\n\t"
- "lsr r3, %[a], #31\n\t"
- "ldr %[a], [sp, #44]\n\t"
- "orr r3, r3, %[a], lsl #1\n\t"
- "umull r3, r12, lr, r3\n\t"
- "add r12, r12, %[b]\n\t"
- "adds r7, r7, r3\n\t"
- "mov %[b], #0\n\t"
- "adcs r8, r8, r12\n\t"
- "adc %[b], %[b], #0\n\t"
- "lsr r3, %[a], #31\n\t"
- "ldr %[a], [sp, #48]\n\t"
- "orr r3, r3, %[a], lsl #1\n\t"
- "umull r3, r12, lr, r3\n\t"
- "add r12, r12, %[b]\n\t"
- "adds r8, r8, r3\n\t"
- "mov %[b], #0\n\t"
- "adcs r9, r9, r12\n\t"
- "adc %[b], %[b], #0\n\t"
- "lsr r3, %[a], #31\n\t"
- "ldr %[a], [sp, #52]\n\t"
- "orr r3, r3, %[a], lsl #1\n\t"
- "umull r3, r12, lr, r3\n\t"
- "add r12, r12, %[b]\n\t"
- "adds r9, r9, r3\n\t"
- "mov %[b], #0\n\t"
- "adcs r10, r10, r12\n\t"
- "adc %[b], %[b], #0\n\t"
- "lsr r3, %[a], #31\n\t"
- "ldr %[a], [sp, #56]\n\t"
- "orr r3, r3, %[a], lsl #1\n\t"
- "umull r3, r12, lr, r3\n\t"
- "add r12, r12, %[b]\n\t"
- "adds r10, r10, r3\n\t"
- "mov %[b], #0\n\t"
- "adcs r11, r11, r12\n\t"
- "adc %[b], %[b], #0\n\t"
- "lsr r3, %[a], #31\n\t"
- "ldr %[a], [sp, #60]\n\t"
- "orr r3, r3, %[a], lsl #1\n\t"
- "umull r3, r12, lr, r3\n\t"
- "adds r11, r11, r3\n\t"
- "adc r3, r12, %[b]\n\t"
- /* Overflow */
- "lsl r3, r3, #1\n\t"
- "orr r3, r3, r11, lsr #31\n\t"
- "mul r3, r3, lr\n\t"
- "and r11, r11, #0x7fffffff\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, #0\n\t"
- "adcs r6, r6, #0\n\t"
- "adcs r7, r7, #0\n\t"
- "adcs r8, r8, #0\n\t"
- "adcs r9, r9, #0\n\t"
- "adcs r10, r10, #0\n\t"
- "adc r11, r11, #0\n\t"
- /* Reduce if top bit set */
- "asr r3, r11, #31\n\t"
- "and r3, r3, lr\n\t"
- "and r11, r11, #0x7fffffff\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, #0\n\t"
- "adcs r6, r6, #0\n\t"
- "adcs r7, r7, #0\n\t"
- "adcs r8, r8, #0\n\t"
- "adcs r9, r9, #0\n\t"
- "adcs r10, r10, #0\n\t"
- "adc r11, r11, #0\n\t"
- /* Store */
- "strd r4, r5, [%[r]]\n\t"
- "strd r6, r7, [%[r], #8]\n\t"
- "strd r8, r9, [%[r], #16]\n\t"
- "strd r10, r11, [%[r], #24]\n\t"
- "add sp, sp, #0x40\n\t"
- : [r] "+r" (r), [a] "+r" (a), [b] "+r" (b)
- :
- : "memory", "r3", "r12", "lr", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
- );
-}
-
-void fe_sq(fe r, const fe a)
-{
- __asm__ __volatile__ (
- "sub sp, sp, #0x40\n\t"
- /* Square */
- "ldr r7, [%[a]]\n\t"
- "ldr r8, [%[a], #4]\n\t"
- "ldr r9, [%[a], #8]\n\t"
- "ldr r10, [%[a], #12]\n\t"
- "ldr r12, [%[a], #16]\n\t"
- /* A[0] * A[0] = 0 */
- "umull r4, r5, r7, r7\n\t"
- "str r4, [sp]\n\t"
- /* A[0] * A[1] = 1 */
- "umull r2, r3, r7, r8\n\t"
- "mov r6, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adc r6, r6, r3\n\t"
- "adds r5, r5, r2\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #4]\n\t"
- /* A[1] * A[1] = 2 */
- "umull r2, r3, r8, r8\n\t"
- "adds r6, r6, r2\n\t"
- "adc r4, r4, r3\n\t"
- /* A[0] * A[2] = 2 */
- "umull r2, r3, r7, r9\n\t"
- "adds r6, r6, r2\n\t"
- "mov r5, #0\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "str r6, [sp, #8]\n\t"
- /* A[0] * A[3] = 3 */
- "umull r2, r3, r7, r10\n\t"
- "adds r4, r4, r2\n\t"
- "adc r5, r5, r3\n\t"
- "adds r4, r4, r2\n\t"
- "mov r6, #0\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[1] * A[2] = 3 */
- "umull r2, r3, r8, r9\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "str r4, [sp, #12]\n\t"
- /* A[2] * A[2] = 4 */
- "umull r2, r3, r9, r9\n\t"
- "adds r5, r5, r2\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- /* A[1] * A[3] = 4 */
- "umull r2, r3, r8, r10\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- /* A[0] * A[4] = 4 */
- "umull r2, r3, r7, r12\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #16]\n\t"
- /* A[0] * A[5] = 5 */
- "ldr r11, [%[a], #20]\n\t"
- "umull r2, r3, r7, r11\n\t"
- "adds r6, r6, r2\n\t"
- "mov r5, #0\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- /* A[1] * A[4] = 5 */
- "umull r2, r3, r8, r12\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- /* A[2] * A[3] = 5 */
- "umull r2, r3, r9, r10\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "str r6, [sp, #20]\n\t"
- /* A[3] * A[3] = 6 */
- "umull r2, r3, r10, r10\n\t"
- "adds r4, r4, r2\n\t"
- "mov r6, #0\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[2] * A[4] = 6 */
- "umull r2, r3, r9, r12\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[1] * A[5] = 6 */
- "umull r2, r3, r8, r11\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[0] * A[6] = 6 */
- "ldr r11, [%[a], #24]\n\t"
- "umull r2, r3, r7, r11\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "str r4, [sp, #24]\n\t"
- /* A[0] * A[7] = 7 */
- "ldr r11, [%[a], #28]\n\t"
- "umull r2, r3, r7, r11\n\t"
- "adds r5, r5, r2\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- /* A[1] * A[6] = 7 */
- "ldr r11, [%[a], #24]\n\t"
- "umull r2, r3, r8, r11\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- /* A[2] * A[5] = 7 */
- "ldr r11, [%[a], #20]\n\t"
- "umull r2, r3, r9, r11\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- /* A[3] * A[4] = 7 */
- "umull r2, r3, r10, r12\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #28]\n\t"
- /* A[4] * A[4] = 8 */
- "umull r2, r3, r12, r12\n\t"
- "adds r6, r6, r2\n\t"
- "mov r5, #0\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- /* A[3] * A[5] = 8 */
- "umull r2, r3, r10, r11\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- /* A[2] * A[6] = 8 */
- "ldr r11, [%[a], #24]\n\t"
- "umull r2, r3, r9, r11\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- /* A[1] * A[7] = 8 */
- "ldr r11, [%[a], #28]\n\t"
- "umull r2, r3, r8, r11\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "str r6, [sp, #32]\n\t"
- "ldr r7, [%[a], #20]\n\t"
- /* A[2] * A[7] = 9 */
- "umull r2, r3, r9, r11\n\t"
- "adds r4, r4, r2\n\t"
- "mov r6, #0\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[3] * A[6] = 9 */
- "ldr r11, [%[a], #24]\n\t"
- "umull r2, r3, r10, r11\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[4] * A[5] = 9 */
- "umull r2, r3, r12, r7\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "str r4, [sp, #36]\n\t"
- "mov r8, r11\n\t"
- /* A[5] * A[5] = 10 */
- "umull r2, r3, r7, r7\n\t"
- "adds r5, r5, r2\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- /* A[4] * A[6] = 10 */
- "umull r2, r3, r12, r8\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- /* A[3] * A[7] = 10 */
- "ldr r11, [%[a], #28]\n\t"
- "umull r2, r3, r10, r11\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #40]\n\t"
- "mov r9, r11\n\t"
- /* A[4] * A[7] = 11 */
- "umull r2, r3, r12, r9\n\t"
- "adds r6, r6, r2\n\t"
- "mov r5, #0\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- /* A[5] * A[6] = 11 */
- "umull r2, r3, r7, r8\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "str r6, [sp, #44]\n\t"
- /* A[6] * A[6] = 12 */
- "umull r2, r3, r8, r8\n\t"
- "adds r4, r4, r2\n\t"
- "mov r6, #0\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[5] * A[7] = 12 */
- "umull r2, r3, r7, r9\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "str r4, [sp, #48]\n\t"
- /* A[6] * A[7] = 13 */
- "umull r2, r3, r8, r9\n\t"
- "adds r5, r5, r2\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #52]\n\t"
- /* A[7] * A[7] = 14 */
- "umull r2, r3, r9, r9\n\t"
- "adds r6, r6, r2\n\t"
- "adc r4, r4, r3\n\t"
- "str r6, [sp, #56]\n\t"
- "str r4, [sp, #60]\n\t"
- /* Reduce */
- /* Load bottom half */
- "ldrd r4, r5, [sp]\n\t"
- "ldrd r6, r7, [sp, #8]\n\t"
- "ldrd r8, r9, [sp, #16]\n\t"
- "ldrd r10, r11, [sp, #24]\n\t"
- "lsr r2, r11, #31\n\t"
- "and r11, r11, #0x7fffffff\n\t"
- "mov r12, #19\n\t"
- "ldr %[a], [sp, #32]\n\t"
- "orr r2, r2, %[a], lsl #1\n\t"
- "umull r2, r3, r12, r2\n\t"
- "adds r4, r4, r2\n\t"
- "mov lr, #0\n\t"
- "adcs r5, r5, r3\n\t"
- "adc lr, lr, #0\n\t"
- "lsr r2, %[a], #31\n\t"
- "ldr %[a], [sp, #36]\n\t"
- "orr r2, r2, %[a], lsl #1\n\t"
- "umull r2, r3, r12, r2\n\t"
- "add r3, r3, lr\n\t"
- "adds r5, r5, r2\n\t"
- "mov lr, #0\n\t"
- "adcs r6, r6, r3\n\t"
- "adc lr, lr, #0\n\t"
- "lsr r2, %[a], #31\n\t"
- "ldr %[a], [sp, #40]\n\t"
- "orr r2, r2, %[a], lsl #1\n\t"
- "umull r2, r3, r12, r2\n\t"
- "add r3, r3, lr\n\t"
- "adds r6, r6, r2\n\t"
- "mov lr, #0\n\t"
- "adcs r7, r7, r3\n\t"
- "adc lr, lr, #0\n\t"
- "lsr r2, %[a], #31\n\t"
- "ldr %[a], [sp, #44]\n\t"
- "orr r2, r2, %[a], lsl #1\n\t"
- "umull r2, r3, r12, r2\n\t"
- "add r3, r3, lr\n\t"
- "adds r7, r7, r2\n\t"
- "mov lr, #0\n\t"
- "adcs r8, r8, r3\n\t"
- "adc lr, lr, #0\n\t"
- "lsr r2, %[a], #31\n\t"
- "ldr %[a], [sp, #48]\n\t"
- "orr r2, r2, %[a], lsl #1\n\t"
- "umull r2, r3, r12, r2\n\t"
- "add r3, r3, lr\n\t"
- "adds r8, r8, r2\n\t"
- "mov lr, #0\n\t"
- "adcs r9, r9, r3\n\t"
- "adc lr, lr, #0\n\t"
- "lsr r2, %[a], #31\n\t"
- "ldr %[a], [sp, #52]\n\t"
- "orr r2, r2, %[a], lsl #1\n\t"
- "umull r2, r3, r12, r2\n\t"
- "add r3, r3, lr\n\t"
- "adds r9, r9, r2\n\t"
- "mov lr, #0\n\t"
- "adcs r10, r10, r3\n\t"
- "adc lr, lr, #0\n\t"
- "lsr r2, %[a], #31\n\t"
- "ldr %[a], [sp, #56]\n\t"
- "orr r2, r2, %[a], lsl #1\n\t"
- "umull r2, r3, r12, r2\n\t"
- "add r3, r3, lr\n\t"
- "adds r10, r10, r2\n\t"
- "mov lr, #0\n\t"
- "adcs r11, r11, r3\n\t"
- "adc lr, lr, #0\n\t"
- "lsr r2, %[a], #31\n\t"
- "ldr %[a], [sp, #60]\n\t"
- "orr r2, r2, %[a], lsl #1\n\t"
- "umull r2, r3, r12, r2\n\t"
- "adds r11, r11, r2\n\t"
- "adc r2, r3, lr\n\t"
- /* Overflow */
- "lsl r2, r2, #1\n\t"
- "orr r2, r2, r11, lsr #31\n\t"
- "mul r2, r2, r12\n\t"
- "and r11, r11, #0x7fffffff\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, #0\n\t"
- "adcs r6, r6, #0\n\t"
- "adcs r7, r7, #0\n\t"
- "adcs r8, r8, #0\n\t"
- "adcs r9, r9, #0\n\t"
- "adcs r10, r10, #0\n\t"
- "adc r11, r11, #0\n\t"
- /* Reduce if top bit set */
- "asr r2, r11, #31\n\t"
- "and r2, r2, r12\n\t"
- "and r11, r11, #0x7fffffff\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, #0\n\t"
- "adcs r6, r6, #0\n\t"
- "adcs r7, r7, #0\n\t"
- "adcs r8, r8, #0\n\t"
- "adcs r9, r9, #0\n\t"
- "adcs r10, r10, #0\n\t"
- "adc r11, r11, #0\n\t"
- /* Store */
- "strd r4, r5, [%[r]]\n\t"
- "strd r6, r7, [%[r], #8]\n\t"
- "strd r8, r9, [%[r], #16]\n\t"
- "strd r10, r11, [%[r], #24]\n\t"
- "add sp, sp, #0x40\n\t"
- : [r] "+r" (r), [a] "+r" (a)
- :
- : "memory", "r2", "r3", "r12", "lr", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
- );
-}
-
-void fe_mul121666(fe r, fe a)
-{
- __asm__ __volatile__ (
- /* Multiply by 121666 */
- "ldrd r2, r3, [%[a]]\n\t"
- "ldrd r4, r5, [%[a], #8]\n\t"
- "ldrd r6, r7, [%[a], #16]\n\t"
- "ldrd r8, r9, [%[a], #24]\n\t"
- "movw lr, #0xdb42\n\t"
- "movt lr, #1\n\t"
- "umull r2, r10, r2, lr\n\t"
- "umull r3, r12, r3, lr\n\t"
- "adds r3, r3, r10\n\t"
- "adc r10, r12, #0\n\t"
- "umull r4, r12, r4, lr\n\t"
- "adds r4, r4, r10\n\t"
- "adc r10, r12, #0\n\t"
- "umull r5, r12, r5, lr\n\t"
- "adds r5, r5, r10\n\t"
- "adc r10, r12, #0\n\t"
- "umull r6, r12, r6, lr\n\t"
- "adds r6, r6, r10\n\t"
- "adc r10, r12, #0\n\t"
- "umull r7, r12, r7, lr\n\t"
- "adds r7, r7, r10\n\t"
- "adc r10, r12, #0\n\t"
- "umull r8, r12, r8, lr\n\t"
- "adds r8, r8, r10\n\t"
- "adc r10, r12, #0\n\t"
- "umull r9, r12, r9, lr\n\t"
- "adds r9, r9, r10\n\t"
- "adc r10, r12, #0\n\t"
- "mov lr, #19\n\t"
- "lsl r10, r10, #1\n\t"
- "orr r10, r10, r9, lsr #31\n\t"
- "mul r10, r10, lr\n\t"
- "and r9, r9, #0x7fffffff\n\t"
- "adds r2, r2, r10\n\t"
- "adcs r3, r3, #0\n\t"
- "adcs r4, r4, #0\n\t"
- "adcs r5, r5, #0\n\t"
- "adcs r6, r6, #0\n\t"
- "adcs r7, r7, #0\n\t"
- "adcs r8, r8, #0\n\t"
- "adc r9, r9, #0\n\t"
- "strd r2, r3, [%[r]]\n\t"
- "strd r4, r5, [%[r], #8]\n\t"
- "strd r6, r7, [%[r], #16]\n\t"
- "strd r8, r9, [%[r], #24]\n\t"
- : [r] "+r" (r), [a] "+r" (a)
- :
- : "memory", "r2", "r3", "r12", "lr", "r4", "r5", "r6", "r7", "r8", "r9", "r10"
- );
-}
-
-void fe_sq2(fe r, const fe a)
-{
- __asm__ __volatile__ (
- "sub sp, sp, #0x40\n\t"
- /* Square * 2 */
- "ldr r7, [%[a]]\n\t"
- "ldr r8, [%[a], #4]\n\t"
- "ldr r9, [%[a], #8]\n\t"
- "ldr r10, [%[a], #12]\n\t"
- "ldr r12, [%[a], #16]\n\t"
- /* A[0] * A[0] = 0 */
- "umull r4, r5, r7, r7\n\t"
- "str r4, [sp]\n\t"
- /* A[0] * A[1] = 1 */
- "umull r2, r3, r7, r8\n\t"
- "mov r6, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adc r6, r6, r3\n\t"
- "adds r5, r5, r2\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #4]\n\t"
- /* A[1] * A[1] = 2 */
- "umull r2, r3, r8, r8\n\t"
- "adds r6, r6, r2\n\t"
- "adc r4, r4, r3\n\t"
- /* A[0] * A[2] = 2 */
- "umull r2, r3, r7, r9\n\t"
- "adds r6, r6, r2\n\t"
- "mov r5, #0\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "str r6, [sp, #8]\n\t"
- /* A[0] * A[3] = 3 */
- "umull r2, r3, r7, r10\n\t"
- "adds r4, r4, r2\n\t"
- "adc r5, r5, r3\n\t"
- "adds r4, r4, r2\n\t"
- "mov r6, #0\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[1] * A[2] = 3 */
- "umull r2, r3, r8, r9\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "str r4, [sp, #12]\n\t"
- /* A[2] * A[2] = 4 */
- "umull r2, r3, r9, r9\n\t"
- "adds r5, r5, r2\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- /* A[1] * A[3] = 4 */
- "umull r2, r3, r8, r10\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- /* A[0] * A[4] = 4 */
- "umull r2, r3, r7, r12\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #16]\n\t"
- /* A[0] * A[5] = 5 */
- "ldr r11, [%[a], #20]\n\t"
- "umull r2, r3, r7, r11\n\t"
- "adds r6, r6, r2\n\t"
- "mov r5, #0\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- /* A[1] * A[4] = 5 */
- "umull r2, r3, r8, r12\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- /* A[2] * A[3] = 5 */
- "umull r2, r3, r9, r10\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "str r6, [sp, #20]\n\t"
- /* A[3] * A[3] = 6 */
- "umull r2, r3, r10, r10\n\t"
- "adds r4, r4, r2\n\t"
- "mov r6, #0\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[2] * A[4] = 6 */
- "umull r2, r3, r9, r12\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[1] * A[5] = 6 */
- "umull r2, r3, r8, r11\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[0] * A[6] = 6 */
- "ldr r11, [%[a], #24]\n\t"
- "umull r2, r3, r7, r11\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "str r4, [sp, #24]\n\t"
- /* A[0] * A[7] = 7 */
- "ldr r11, [%[a], #28]\n\t"
- "umull r2, r3, r7, r11\n\t"
- "adds r5, r5, r2\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- /* A[1] * A[6] = 7 */
- "ldr r11, [%[a], #24]\n\t"
- "umull r2, r3, r8, r11\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- /* A[2] * A[5] = 7 */
- "ldr r11, [%[a], #20]\n\t"
- "umull r2, r3, r9, r11\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- /* A[3] * A[4] = 7 */
- "umull r2, r3, r10, r12\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #28]\n\t"
- /* A[4] * A[4] = 8 */
- "umull r2, r3, r12, r12\n\t"
- "adds r6, r6, r2\n\t"
- "mov r5, #0\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- /* A[3] * A[5] = 8 */
- "umull r2, r3, r10, r11\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- /* A[2] * A[6] = 8 */
- "ldr r11, [%[a], #24]\n\t"
- "umull r2, r3, r9, r11\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- /* A[1] * A[7] = 8 */
- "ldr r11, [%[a], #28]\n\t"
- "umull r2, r3, r8, r11\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "str r6, [sp, #32]\n\t"
- "ldr r7, [%[a], #20]\n\t"
- /* A[2] * A[7] = 9 */
- "umull r2, r3, r9, r11\n\t"
- "adds r4, r4, r2\n\t"
- "mov r6, #0\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[3] * A[6] = 9 */
- "ldr r11, [%[a], #24]\n\t"
- "umull r2, r3, r10, r11\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[4] * A[5] = 9 */
- "umull r2, r3, r12, r7\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "str r4, [sp, #36]\n\t"
- "mov r8, r11\n\t"
- /* A[5] * A[5] = 10 */
- "umull r2, r3, r7, r7\n\t"
- "adds r5, r5, r2\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- /* A[4] * A[6] = 10 */
- "umull r2, r3, r12, r8\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- /* A[3] * A[7] = 10 */
- "ldr r11, [%[a], #28]\n\t"
- "umull r2, r3, r10, r11\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #40]\n\t"
- "mov r9, r11\n\t"
- /* A[4] * A[7] = 11 */
- "umull r2, r3, r12, r9\n\t"
- "adds r6, r6, r2\n\t"
- "mov r5, #0\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- /* A[5] * A[6] = 11 */
- "umull r2, r3, r7, r8\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "adds r6, r6, r2\n\t"
- "adcs r4, r4, r3\n\t"
- "adc r5, r5, #0\n\t"
- "str r6, [sp, #44]\n\t"
- /* A[6] * A[6] = 12 */
- "umull r2, r3, r8, r8\n\t"
- "adds r4, r4, r2\n\t"
- "mov r6, #0\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- /* A[5] * A[7] = 12 */
- "umull r2, r3, r7, r9\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, r3\n\t"
- "adc r6, r6, #0\n\t"
- "str r4, [sp, #48]\n\t"
- /* A[6] * A[7] = 13 */
- "umull r2, r3, r8, r9\n\t"
- "adds r5, r5, r2\n\t"
- "mov r4, #0\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "adds r5, r5, r2\n\t"
- "adcs r6, r6, r3\n\t"
- "adc r4, r4, #0\n\t"
- "str r5, [sp, #52]\n\t"
- /* A[7] * A[7] = 14 */
- "umull r2, r3, r9, r9\n\t"
- "adds r6, r6, r2\n\t"
- "adc r4, r4, r3\n\t"
- "str r6, [sp, #56]\n\t"
- "str r4, [sp, #60]\n\t"
- /* Double and Reduce */
- /* Load bottom half */
- "ldrd r4, r5, [sp]\n\t"
- "ldrd r6, r7, [sp, #8]\n\t"
- "ldrd r8, r9, [sp, #16]\n\t"
- "ldrd r10, r11, [sp, #24]\n\t"
- "lsr r2, r11, #30\n\t"
- "lsl r11, r11, #1\n\t"
- "orr r11, r11, r10, lsr #31\n\t"
- "lsl r10, r10, #1\n\t"
- "orr r10, r10, r9, lsr #31\n\t"
- "lsl r9, r9, #1\n\t"
- "orr r9, r9, r8, lsr #31\n\t"
- "lsl r8, r8, #1\n\t"
- "orr r8, r8, r7, lsr #31\n\t"
- "lsl r7, r7, #1\n\t"
- "orr r7, r7, r6, lsr #31\n\t"
- "lsl r6, r6, #1\n\t"
- "orr r6, r6, r5, lsr #31\n\t"
- "lsl r5, r5, #1\n\t"
- "orr r5, r5, r4, lsr #31\n\t"
- "lsl r4, r4, #1\n\t"
- "and r11, r11, #0x7fffffff\n\t"
- "mov r12, #19\n\t"
- "ldr %[a], [sp, #32]\n\t"
- "orr r2, r2, %[a], lsl #2\n\t"
- "umull r2, r3, r12, r2\n\t"
- "adds r4, r4, r2\n\t"
- "mov lr, #0\n\t"
- "adcs r5, r5, r3\n\t"
- "adc lr, lr, #0\n\t"
- "lsr r2, %[a], #30\n\t"
- "ldr %[a], [sp, #36]\n\t"
- "orr r2, r2, %[a], lsl #2\n\t"
- "umull r2, r3, r12, r2\n\t"
- "add r3, r3, lr\n\t"
- "adds r5, r5, r2\n\t"
- "mov lr, #0\n\t"
- "adcs r6, r6, r3\n\t"
- "adc lr, lr, #0\n\t"
- "lsr r2, %[a], #30\n\t"
- "ldr %[a], [sp, #40]\n\t"
- "orr r2, r2, %[a], lsl #2\n\t"
- "umull r2, r3, r12, r2\n\t"
- "add r3, r3, lr\n\t"
- "adds r6, r6, r2\n\t"
- "mov lr, #0\n\t"
- "adcs r7, r7, r3\n\t"
- "adc lr, lr, #0\n\t"
- "lsr r2, %[a], #30\n\t"
- "ldr %[a], [sp, #44]\n\t"
- "orr r2, r2, %[a], lsl #2\n\t"
- "umull r2, r3, r12, r2\n\t"
- "add r3, r3, lr\n\t"
- "adds r7, r7, r2\n\t"
- "mov lr, #0\n\t"
- "adcs r8, r8, r3\n\t"
- "adc lr, lr, #0\n\t"
- "lsr r2, %[a], #30\n\t"
- "ldr %[a], [sp, #48]\n\t"
- "orr r2, r2, %[a], lsl #2\n\t"
- "umull r2, r3, r12, r2\n\t"
- "add r3, r3, lr\n\t"
- "adds r8, r8, r2\n\t"
- "mov lr, #0\n\t"
- "adcs r9, r9, r3\n\t"
- "adc lr, lr, #0\n\t"
- "lsr r2, %[a], #30\n\t"
- "ldr %[a], [sp, #52]\n\t"
- "orr r2, r2, %[a], lsl #2\n\t"
- "umull r2, r3, r12, r2\n\t"
- "add r3, r3, lr\n\t"
- "adds r9, r9, r2\n\t"
- "mov lr, #0\n\t"
- "adcs r10, r10, r3\n\t"
- "adc lr, lr, #0\n\t"
- "lsr r2, %[a], #30\n\t"
- "ldr %[a], [sp, #56]\n\t"
- "orr r2, r2, %[a], lsl #2\n\t"
- "umull r2, r3, r12, r2\n\t"
- "add r3, r3, lr\n\t"
- "adds r10, r10, r2\n\t"
- "mov lr, #0\n\t"
- "adcs r11, r11, r3\n\t"
- "adc lr, lr, #0\n\t"
- "lsr r2, %[a], #30\n\t"
- "ldr %[a], [sp, #60]\n\t"
- "orr r2, r2, %[a], lsl #2\n\t"
- "umull r2, r3, r12, r2\n\t"
- "adds r11, r11, r2\n\t"
- "adc r2, r3, lr\n\t"
- /* Overflow */
- "lsl r2, r2, #1\n\t"
- "orr r2, r2, r11, lsr #31\n\t"
- "mul r2, r2, r12\n\t"
- "and r11, r11, #0x7fffffff\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, #0\n\t"
- "adcs r6, r6, #0\n\t"
- "adcs r7, r7, #0\n\t"
- "adcs r8, r8, #0\n\t"
- "adcs r9, r9, #0\n\t"
- "adcs r10, r10, #0\n\t"
- "adc r11, r11, #0\n\t"
- /* Reduce if top bit set */
- "asr r2, r11, #31\n\t"
- "and r2, r2, r12\n\t"
- "and r11, r11, #0x7fffffff\n\t"
- "adds r4, r4, r2\n\t"
- "adcs r5, r5, #0\n\t"
- "adcs r6, r6, #0\n\t"
- "adcs r7, r7, #0\n\t"
- "adcs r8, r8, #0\n\t"
- "adcs r9, r9, #0\n\t"
- "adcs r10, r10, #0\n\t"
- "adc r11, r11, #0\n\t"
- /* Store */
- "strd r4, r5, [%[r]]\n\t"
- "strd r6, r7, [%[r], #8]\n\t"
- "strd r8, r9, [%[r], #16]\n\t"
- "strd r10, r11, [%[r], #24]\n\t"
- "add sp, sp, #0x40\n\t"
- : [r] "+r" (r), [a] "+r" (a)
- :
- : "memory", "r2", "r3", "r12", "lr", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
- );
-}
-
-void fe_invert(fe r, const fe a)
-{
- __asm__ __volatile__ (
- "sub sp, sp, #0x88\n\t"
- /* Invert */
- "str %[r], [sp, #128]\n\t"
- "str %[a], [sp, #132]\n\t"
- "mov r0, sp\n\t"
- "ldr r1, [sp, #132]\n\t"
- "bl fe_sq\n\t"
- "add r0, sp, #32\n\t"
- "mov r1, sp\n\t"
- "bl fe_sq\n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "add r0, sp, #32\n\t"
- "ldr r1, [sp, #132]\n\t"
- "add r2, sp, #32\n\t"
- "bl fe_mul\n\t"
- "mov r0, sp\n\t"
- "mov r1, sp\n\t"
- "add r2, sp, #32\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #0x40\n\t"
- "mov r1, sp\n\t"
- "bl fe_sq\n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #32\n\t"
- "add r2, sp, #0x40\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "mov r4, #4\n\t"
- "\n"
- "L_fe_invert1_%=: \n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_invert1_%=\n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #0x40\n\t"
- "add r2, sp, #32\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "mov r4, #9\n\t"
- "\n"
- "L_fe_invert2_%=: \n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_invert2_%=\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x40\n\t"
- "add r2, sp, #32\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- "mov r4, #19\n\t"
- "\n"
- "L_fe_invert3_%=: \n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x60\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_invert3_%=\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x60\n\t"
- "add r2, sp, #0x40\n\t"
- "bl fe_mul\n\t"
- "mov r4, #10\n\t"
- "\n"
- "L_fe_invert4_%=: \n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_invert4_%=\n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #0x40\n\t"
- "add r2, sp, #32\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "mov r4, #49\n\t"
- "\n"
- "L_fe_invert5_%=: \n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_invert5_%=\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x40\n\t"
- "add r2, sp, #32\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- "mov r4, #0x63\n\t"
- "\n"
- "L_fe_invert6_%=: \n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x60\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_invert6_%=\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x60\n\t"
- "add r2, sp, #0x40\n\t"
- "bl fe_mul\n\t"
- "mov r4, #50\n\t"
- "\n"
- "L_fe_invert7_%=: \n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_invert7_%=\n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #0x40\n\t"
- "add r2, sp, #32\n\t"
- "bl fe_mul\n\t"
- "mov r4, #5\n\t"
- "\n"
- "L_fe_invert8_%=: \n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_invert8_%=\n\t"
- "ldr r0, [sp, #128]\n\t"
- "add r1, sp, #32\n\t"
- "mov r2, sp\n\t"
- "bl fe_mul\n\t"
- "ldr %[a], [sp, #132]\n\t"
- "ldr %[r], [sp, #128]\n\t"
- "add sp, sp, #0x88\n\t"
- : [r] "+r" (r), [a] "+r" (a)
- :
- : "memory", "lr", "r4"
- );
-}
-
-int curve25519(byte* r, byte* n, byte* a)
-{
- __asm__ __volatile__ (
- "sub sp, sp, #0xbc\n\t"
- "str %[r], [sp, #160]\n\t"
- "str %[n], [sp, #164]\n\t"
- "str %[a], [sp, #168]\n\t"
- "mov %[n], #0\n\t"
- "str %[n], [sp, #172]\n\t"
- /* Set one */
- "mov r11, #1\n\t"
- "mov r10, #0\n\t"
- "strd r11, r10, [%[r]]\n\t"
- "strd r10, r10, [%[r], #8]\n\t"
- "strd r10, r10, [%[r], #16]\n\t"
- "strd r10, r10, [%[r], #24]\n\t"
- /* Set zero */
- "mov r10, #0\n\t"
- "strd r10, r10, [sp]\n\t"
- "strd r10, r10, [sp, #8]\n\t"
- "strd r10, r10, [sp, #16]\n\t"
- "strd r10, r10, [sp, #24]\n\t"
- /* Set one */
- "mov r11, #1\n\t"
- "mov r10, #0\n\t"
- "strd r11, r10, [sp, #32]\n\t"
- "strd r10, r10, [sp, #40]\n\t"
- "strd r10, r10, [sp, #48]\n\t"
- "strd r10, r10, [sp, #56]\n\t"
- /* Copy */
- "ldrd r4, r5, [%[a]]\n\t"
- "ldrd r6, r7, [%[a], #8]\n\t"
- "strd r4, r5, [sp, #64]\n\t"
- "strd r6, r7, [sp, #72]\n\t"
- "ldrd r4, r5, [%[a], #16]\n\t"
- "ldrd r6, r7, [%[a], #24]\n\t"
- "strd r4, r5, [sp, #80]\n\t"
- "strd r6, r7, [sp, #88]\n\t"
- "mov %[n], #30\n\t"
- "str %[n], [sp, #180]\n\t"
- "mov %[a], #28\n\t"
- "str %[a], [sp, #176]\n\t"
- "\n"
- "L_curve25519_words_%=: \n\t"
- "\n"
- "L_curve25519_bits_%=: \n\t"
- "ldr %[n], [sp, #164]\n\t"
- "ldr %[a], [%[n], r2]\n\t"
- "ldr %[n], [sp, #180]\n\t"
- "lsr %[a], %[a], %[n]\n\t"
- "and %[a], %[a], #1\n\t"
- "str %[a], [sp, #184]\n\t"
- "ldr %[n], [sp, #172]\n\t"
- "eor %[n], %[n], %[a]\n\t"
- "str %[n], [sp, #172]\n\t"
- "ldr %[r], [sp, #160]\n\t"
- /* Conditional Swap */
- "neg %[n], %[n]\n\t"
- "ldrd r4, r5, [%[r]]\n\t"
- "ldrd r6, r7, [sp, #64]\n\t"
- "eor r8, r4, r6\n\t"
- "eor r9, r5, r7\n\t"
- "and r8, r8, %[n]\n\t"
- "and r9, r9, %[n]\n\t"
- "eor r4, r4, r8\n\t"
- "eor r5, r5, r9\n\t"
- "eor r6, r6, r8\n\t"
- "eor r7, r7, r9\n\t"
- "strd r4, r5, [%[r]]\n\t"
- "strd r6, r7, [sp, #64]\n\t"
- "ldrd r4, r5, [%[r], #8]\n\t"
- "ldrd r6, r7, [sp, #72]\n\t"
- "eor r8, r4, r6\n\t"
- "eor r9, r5, r7\n\t"
- "and r8, r8, %[n]\n\t"
- "and r9, r9, %[n]\n\t"
- "eor r4, r4, r8\n\t"
- "eor r5, r5, r9\n\t"
- "eor r6, r6, r8\n\t"
- "eor r7, r7, r9\n\t"
- "strd r4, r5, [%[r], #8]\n\t"
- "strd r6, r7, [sp, #72]\n\t"
- "ldrd r4, r5, [%[r], #16]\n\t"
- "ldrd r6, r7, [sp, #80]\n\t"
- "eor r8, r4, r6\n\t"
- "eor r9, r5, r7\n\t"
- "and r8, r8, %[n]\n\t"
- "and r9, r9, %[n]\n\t"
- "eor r4, r4, r8\n\t"
- "eor r5, r5, r9\n\t"
- "eor r6, r6, r8\n\t"
- "eor r7, r7, r9\n\t"
- "strd r4, r5, [%[r], #16]\n\t"
- "strd r6, r7, [sp, #80]\n\t"
- "ldrd r4, r5, [%[r], #24]\n\t"
- "ldrd r6, r7, [sp, #88]\n\t"
- "eor r8, r4, r6\n\t"
- "eor r9, r5, r7\n\t"
- "and r8, r8, %[n]\n\t"
- "and r9, r9, %[n]\n\t"
- "eor r4, r4, r8\n\t"
- "eor r5, r5, r9\n\t"
- "eor r6, r6, r8\n\t"
- "eor r7, r7, r9\n\t"
- "strd r4, r5, [%[r], #24]\n\t"
- "strd r6, r7, [sp, #88]\n\t"
- "ldr %[n], [sp, #172]\n\t"
- /* Conditional Swap */
- "neg %[n], %[n]\n\t"
- "ldrd r4, r5, [sp]\n\t"
- "ldrd r6, r7, [sp, #32]\n\t"
- "eor r8, r4, r6\n\t"
- "eor r9, r5, r7\n\t"
- "and r8, r8, %[n]\n\t"
- "and r9, r9, %[n]\n\t"
- "eor r4, r4, r8\n\t"
- "eor r5, r5, r9\n\t"
- "eor r6, r6, r8\n\t"
- "eor r7, r7, r9\n\t"
- "strd r4, r5, [sp]\n\t"
- "strd r6, r7, [sp, #32]\n\t"
- "ldrd r4, r5, [sp, #8]\n\t"
- "ldrd r6, r7, [sp, #40]\n\t"
- "eor r8, r4, r6\n\t"
- "eor r9, r5, r7\n\t"
- "and r8, r8, %[n]\n\t"
- "and r9, r9, %[n]\n\t"
- "eor r4, r4, r8\n\t"
- "eor r5, r5, r9\n\t"
- "eor r6, r6, r8\n\t"
- "eor r7, r7, r9\n\t"
- "strd r4, r5, [sp, #8]\n\t"
- "strd r6, r7, [sp, #40]\n\t"
- "ldrd r4, r5, [sp, #16]\n\t"
- "ldrd r6, r7, [sp, #48]\n\t"
- "eor r8, r4, r6\n\t"
- "eor r9, r5, r7\n\t"
- "and r8, r8, %[n]\n\t"
- "and r9, r9, %[n]\n\t"
- "eor r4, r4, r8\n\t"
- "eor r5, r5, r9\n\t"
- "eor r6, r6, r8\n\t"
- "eor r7, r7, r9\n\t"
- "strd r4, r5, [sp, #16]\n\t"
- "strd r6, r7, [sp, #48]\n\t"
- "ldrd r4, r5, [sp, #24]\n\t"
- "ldrd r6, r7, [sp, #56]\n\t"
- "eor r8, r4, r6\n\t"
- "eor r9, r5, r7\n\t"
- "and r8, r8, %[n]\n\t"
- "and r9, r9, %[n]\n\t"
- "eor r4, r4, r8\n\t"
- "eor r5, r5, r9\n\t"
- "eor r6, r6, r8\n\t"
- "eor r7, r7, r9\n\t"
- "strd r4, r5, [sp, #24]\n\t"
- "strd r6, r7, [sp, #56]\n\t"
- "ldr %[n], [sp, #184]\n\t"
- "str %[n], [sp, #172]\n\t"
- /* Add-Sub */
- /* Add */
- "ldrd r4, r5, [%[r]]\n\t"
- "ldrd r6, r7, [sp]\n\t"
- "adds r8, r4, r6\n\t"
- "mov r3, #0\n\t"
- "adcs r9, r5, r7\n\t"
- "adc r3, r3, #0\n\t"
- "strd r8, r9, [%[r]]\n\t"
- /* Sub */
- "subs r10, r4, r6\n\t"
- "mov r12, #0\n\t"
- "sbcs r11, r5, r7\n\t"
- "adc r12, r12, #0\n\t"
- "strd r10, r11, [sp, #128]\n\t"
- /* Add */
- "ldrd r4, r5, [%[r], #8]\n\t"
- "ldrd r6, r7, [sp, #8]\n\t"
- "adds r3, r3, #-1\n\t"
- "adcs r8, r4, r6\n\t"
- "mov r3, #0\n\t"
- "adcs r9, r5, r7\n\t"
- "adc r3, r3, #0\n\t"
- "strd r8, r9, [%[r], #8]\n\t"
- /* Sub */
- "adds r12, r12, #-1\n\t"
- "sbcs r10, r4, r6\n\t"
- "mov r12, #0\n\t"
- "sbcs r11, r5, r7\n\t"
- "adc r12, r12, #0\n\t"
- "strd r10, r11, [sp, #136]\n\t"
- /* Add */
- "ldrd r4, r5, [%[r], #16]\n\t"
- "ldrd r6, r7, [sp, #16]\n\t"
- "adds r3, r3, #-1\n\t"
- "adcs r8, r4, r6\n\t"
- "mov r3, #0\n\t"
- "adcs r9, r5, r7\n\t"
- "adc r3, r3, #0\n\t"
- "strd r8, r9, [%[r], #16]\n\t"
- /* Sub */
- "adds r12, r12, #-1\n\t"
- "sbcs r10, r4, r6\n\t"
- "mov r12, #0\n\t"
- "sbcs r11, r5, r7\n\t"
- "adc r12, r12, #0\n\t"
- "strd r10, r11, [sp, #144]\n\t"
- /* Add */
- "ldrd r4, r5, [%[r], #24]\n\t"
- "ldrd r6, r7, [sp, #24]\n\t"
- "adds r3, r3, #-1\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r9, r5, r7\n\t"
- /* Sub */
- "adds r12, r12, #-1\n\t"
- "sbcs r10, r4, r6\n\t"
- "sbc r11, r5, r7\n\t"
- "mov r3, #-19\n\t"
- "asr %[a], r9, #31\n\t"
- /* Mask the modulus */
- "and r3, %[a], r3\n\t"
- "and r12, %[a], #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd r4, r5, [%[r]]\n\t"
- "subs r4, r4, r3\n\t"
- "sbcs r5, r5, %[a]\n\t"
- "strd r4, r5, [%[r]]\n\t"
- "ldrd r4, r5, [%[r], #8]\n\t"
- "sbcs r4, r4, %[a]\n\t"
- "sbcs r5, r5, %[a]\n\t"
- "strd r4, r5, [%[r], #8]\n\t"
- "ldrd r4, r5, [%[r], #16]\n\t"
- "sbcs r4, r4, %[a]\n\t"
- "sbcs r5, r5, %[a]\n\t"
- "strd r4, r5, [%[r], #16]\n\t"
- "sbcs r8, r8, %[a]\n\t"
- "sbc r9, r9, r12\n\t"
- "strd r8, r9, [%[r], #24]\n\t"
- "mov r3, #-19\n\t"
- "asr %[a], r11, #31\n\t"
- /* Mask the modulus */
- "and r3, %[a], r3\n\t"
- "and r12, %[a], #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd r4, r5, [sp, #128]\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp, #128]\n\t"
- "ldrd r4, r5, [sp, #136]\n\t"
- "adcs r4, r4, %[a]\n\t"
- "adcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp, #136]\n\t"
- "ldrd r4, r5, [sp, #144]\n\t"
- "adcs r4, r4, %[a]\n\t"
- "adcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp, #144]\n\t"
- "adcs r10, r10, %[a]\n\t"
- "adc r11, r11, r12\n\t"
- "strd r10, r11, [sp, #152]\n\t"
- /* Add-Sub */
- /* Add */
- "ldrd r4, r5, [sp, #64]\n\t"
- "ldrd r6, r7, [sp, #32]\n\t"
- "adds r8, r4, r6\n\t"
- "mov r3, #0\n\t"
- "adcs r9, r5, r7\n\t"
- "adc r3, r3, #0\n\t"
- "strd r8, r9, [sp]\n\t"
- /* Sub */
- "subs r10, r4, r6\n\t"
- "mov r12, #0\n\t"
- "sbcs r11, r5, r7\n\t"
- "adc r12, r12, #0\n\t"
- "strd r10, r11, [sp, #96]\n\t"
- /* Add */
- "ldrd r4, r5, [sp, #72]\n\t"
- "ldrd r6, r7, [sp, #40]\n\t"
- "adds r3, r3, #-1\n\t"
- "adcs r8, r4, r6\n\t"
- "mov r3, #0\n\t"
- "adcs r9, r5, r7\n\t"
- "adc r3, r3, #0\n\t"
- "strd r8, r9, [sp, #8]\n\t"
- /* Sub */
- "adds r12, r12, #-1\n\t"
- "sbcs r10, r4, r6\n\t"
- "mov r12, #0\n\t"
- "sbcs r11, r5, r7\n\t"
- "adc r12, r12, #0\n\t"
- "strd r10, r11, [sp, #104]\n\t"
- /* Add */
- "ldrd r4, r5, [sp, #80]\n\t"
- "ldrd r6, r7, [sp, #48]\n\t"
- "adds r3, r3, #-1\n\t"
- "adcs r8, r4, r6\n\t"
- "mov r3, #0\n\t"
- "adcs r9, r5, r7\n\t"
- "adc r3, r3, #0\n\t"
- "strd r8, r9, [sp, #16]\n\t"
- /* Sub */
- "adds r12, r12, #-1\n\t"
- "sbcs r10, r4, r6\n\t"
- "mov r12, #0\n\t"
- "sbcs r11, r5, r7\n\t"
- "adc r12, r12, #0\n\t"
- "strd r10, r11, [sp, #112]\n\t"
- /* Add */
- "ldrd r4, r5, [sp, #88]\n\t"
- "ldrd r6, r7, [sp, #56]\n\t"
- "adds r3, r3, #-1\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r9, r5, r7\n\t"
- /* Sub */
- "adds r12, r12, #-1\n\t"
- "sbcs r10, r4, r6\n\t"
- "sbc r11, r5, r7\n\t"
- "mov r3, #-19\n\t"
- "asr %[a], r9, #31\n\t"
- /* Mask the modulus */
- "and r3, %[a], r3\n\t"
- "and r12, %[a], #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd r4, r5, [sp]\n\t"
- "subs r4, r4, r3\n\t"
- "sbcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp]\n\t"
- "ldrd r4, r5, [sp, #8]\n\t"
- "sbcs r4, r4, %[a]\n\t"
- "sbcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp, #8]\n\t"
- "ldrd r4, r5, [sp, #16]\n\t"
- "sbcs r4, r4, %[a]\n\t"
- "sbcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp, #16]\n\t"
- "sbcs r8, r8, %[a]\n\t"
- "sbc r9, r9, r12\n\t"
- "strd r8, r9, [sp, #24]\n\t"
- "mov r3, #-19\n\t"
- "asr %[a], r11, #31\n\t"
- /* Mask the modulus */
- "and r3, %[a], r3\n\t"
- "and r12, %[a], #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd r4, r5, [sp, #96]\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp, #96]\n\t"
- "ldrd r4, r5, [sp, #104]\n\t"
- "adcs r4, r4, %[a]\n\t"
- "adcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp, #104]\n\t"
- "ldrd r4, r5, [sp, #112]\n\t"
- "adcs r4, r4, %[a]\n\t"
- "adcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp, #112]\n\t"
- "adcs r10, r10, %[a]\n\t"
- "adc r11, r11, r12\n\t"
- "strd r10, r11, [sp, #120]\n\t"
- "ldr r2, [sp, #160]\n\t"
- "add r1, sp, #0x60\n\t"
- "add r0, sp, #32\n\t"
- "bl fe_mul\n\t"
- "add r2, sp, #0x80\n\t"
- "add r1, sp, #0\n\t"
- "add r0, sp, #0\n\t"
- "bl fe_mul\n\t"
- "add r1, sp, #0x80\n\t"
- "add r0, sp, #0x60\n\t"
- "bl fe_sq\n\t"
- "ldr r1, [sp, #160]\n\t"
- "add r0, sp, #0x80\n\t"
- "bl fe_sq\n\t"
- /* Add-Sub */
- /* Add */
- "ldrd r4, r5, [sp, #32]\n\t"
- "ldrd r6, r7, [sp]\n\t"
- "adds r8, r4, r6\n\t"
- "mov r3, #0\n\t"
- "adcs r9, r5, r7\n\t"
- "adc r3, r3, #0\n\t"
- "strd r8, r9, [sp, #64]\n\t"
- /* Sub */
- "subs r10, r4, r6\n\t"
- "mov r12, #0\n\t"
- "sbcs r11, r5, r7\n\t"
- "adc r12, r12, #0\n\t"
- "strd r10, r11, [sp]\n\t"
- /* Add */
- "ldrd r4, r5, [sp, #40]\n\t"
- "ldrd r6, r7, [sp, #8]\n\t"
- "adds r3, r3, #-1\n\t"
- "adcs r8, r4, r6\n\t"
- "mov r3, #0\n\t"
- "adcs r9, r5, r7\n\t"
- "adc r3, r3, #0\n\t"
- "strd r8, r9, [sp, #72]\n\t"
- /* Sub */
- "adds r12, r12, #-1\n\t"
- "sbcs r10, r4, r6\n\t"
- "mov r12, #0\n\t"
- "sbcs r11, r5, r7\n\t"
- "adc r12, r12, #0\n\t"
- "strd r10, r11, [sp, #8]\n\t"
- /* Add */
- "ldrd r4, r5, [sp, #48]\n\t"
- "ldrd r6, r7, [sp, #16]\n\t"
- "adds r3, r3, #-1\n\t"
- "adcs r8, r4, r6\n\t"
- "mov r3, #0\n\t"
- "adcs r9, r5, r7\n\t"
- "adc r3, r3, #0\n\t"
- "strd r8, r9, [sp, #80]\n\t"
- /* Sub */
- "adds r12, r12, #-1\n\t"
- "sbcs r10, r4, r6\n\t"
- "mov r12, #0\n\t"
- "sbcs r11, r5, r7\n\t"
- "adc r12, r12, #0\n\t"
- "strd r10, r11, [sp, #16]\n\t"
- /* Add */
- "ldrd r4, r5, [sp, #56]\n\t"
- "ldrd r6, r7, [sp, #24]\n\t"
- "adds r3, r3, #-1\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r9, r5, r7\n\t"
- /* Sub */
- "adds r12, r12, #-1\n\t"
- "sbcs r10, r4, r6\n\t"
- "sbc r11, r5, r7\n\t"
- "mov r3, #-19\n\t"
- "asr %[a], r9, #31\n\t"
- /* Mask the modulus */
- "and r3, %[a], r3\n\t"
- "and r12, %[a], #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd r4, r5, [sp, #64]\n\t"
- "subs r4, r4, r3\n\t"
- "sbcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp, #64]\n\t"
- "ldrd r4, r5, [sp, #72]\n\t"
- "sbcs r4, r4, %[a]\n\t"
- "sbcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp, #72]\n\t"
- "ldrd r4, r5, [sp, #80]\n\t"
- "sbcs r4, r4, %[a]\n\t"
- "sbcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp, #80]\n\t"
- "sbcs r8, r8, %[a]\n\t"
- "sbc r9, r9, r12\n\t"
- "strd r8, r9, [sp, #88]\n\t"
- "mov r3, #-19\n\t"
- "asr %[a], r11, #31\n\t"
- /* Mask the modulus */
- "and r3, %[a], r3\n\t"
- "and r12, %[a], #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd r4, r5, [sp]\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp]\n\t"
- "ldrd r4, r5, [sp, #8]\n\t"
- "adcs r4, r4, %[a]\n\t"
- "adcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp, #8]\n\t"
- "ldrd r4, r5, [sp, #16]\n\t"
- "adcs r4, r4, %[a]\n\t"
- "adcs r5, r5, %[a]\n\t"
- "strd r4, r5, [sp, #16]\n\t"
- "adcs r10, r10, %[a]\n\t"
- "adc r11, r11, r12\n\t"
- "strd r10, r11, [sp, #24]\n\t"
- "add r2, sp, #0x60\n\t"
- "add r1, sp, #0x80\n\t"
- "ldr r0, [sp, #160]\n\t"
- "bl fe_mul\n\t"
- /* Sub */
- "ldrd r4, r5, [sp, #128]\n\t"
- "ldrd r6, r7, [sp, #136]\n\t"
- "ldrd r8, r9, [sp, #96]\n\t"
- "ldrd r10, r11, [sp, #104]\n\t"
- "subs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "sbcs r10, r6, r10\n\t"
- "sbcs r11, r7, r11\n\t"
- "strd r8, r9, [sp, #128]\n\t"
- "strd r10, r11, [sp, #136]\n\t"
- "ldrd r4, r5, [sp, #144]\n\t"
- "ldrd r6, r7, [sp, #152]\n\t"
- "ldrd r8, r9, [sp, #112]\n\t"
- "ldrd r10, r11, [sp, #120]\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "sbcs r10, r6, r10\n\t"
- "sbc r11, r7, r11\n\t"
- "mov r3, #-19\n\t"
- "asr %[a], r11, #31\n\t"
- /* Mask the modulus */
- "and r3, %[a], r3\n\t"
- "and r12, %[a], #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd r4, r5, [sp, #128]\n\t"
- "ldrd r6, r7, [sp, #136]\n\t"
- "adds r4, r4, r3\n\t"
- "adcs r5, r5, %[a]\n\t"
- "adcs r6, r6, %[a]\n\t"
- "adcs r7, r7, %[a]\n\t"
- "adcs r8, r8, %[a]\n\t"
- "adcs r9, r9, %[a]\n\t"
- "adcs r10, r10, %[a]\n\t"
- "adc r11, r11, r12\n\t"
- "strd r4, r5, [sp, #128]\n\t"
- "strd r6, r7, [sp, #136]\n\t"
- "strd r8, r9, [sp, #144]\n\t"
- "strd r10, r11, [sp, #152]\n\t"
- "add r1, sp, #0\n\t"
- "add r0, sp, #0\n\t"
- "bl fe_sq\n\t"
- /* Multiply by 121666 */
- "ldrd r4, r5, [sp, #128]\n\t"
- "ldrd r6, r7, [sp, #136]\n\t"
- "ldrd r8, r9, [sp, #144]\n\t"
- "ldrd r10, r11, [sp, #152]\n\t"
- "movw r12, #0xdb42\n\t"
- "movt r12, #1\n\t"
- "umull r4, %[a], r4, r12\n\t"
- "umull r5, r3, r5, r12\n\t"
- "adds r5, r5, %[a]\n\t"
- "adc %[a], r3, #0\n\t"
- "umull r6, r3, r6, r12\n\t"
- "adds r6, r6, %[a]\n\t"
- "adc %[a], r3, #0\n\t"
- "umull r7, r3, r7, r12\n\t"
- "adds r7, r7, %[a]\n\t"
- "adc %[a], r3, #0\n\t"
- "umull r8, r3, r8, r12\n\t"
- "adds r8, r8, %[a]\n\t"
- "adc %[a], r3, #0\n\t"
- "umull r9, r3, r9, r12\n\t"
- "adds r9, r9, %[a]\n\t"
- "adc %[a], r3, #0\n\t"
- "umull r10, r3, r10, r12\n\t"
- "adds r10, r10, %[a]\n\t"
- "adc %[a], r3, #0\n\t"
- "umull r11, r3, r11, r12\n\t"
- "adds r11, r11, %[a]\n\t"
- "adc %[a], r3, #0\n\t"
- "mov r12, #19\n\t"
- "lsl %[a], %[a], #1\n\t"
- "orr %[a], %[a], r11, lsr #31\n\t"
- "mul %[a], %[a], r12\n\t"
- "and r11, r11, #0x7fffffff\n\t"
- "adds r4, r4, %[a]\n\t"
- "adcs r5, r5, #0\n\t"
- "adcs r6, r6, #0\n\t"
- "adcs r7, r7, #0\n\t"
- "adcs r8, r8, #0\n\t"
- "adcs r9, r9, #0\n\t"
- "adcs r10, r10, #0\n\t"
- "adc r11, r11, #0\n\t"
- "strd r4, r5, [sp, #32]\n\t"
- "strd r6, r7, [sp, #40]\n\t"
- "strd r8, r9, [sp, #48]\n\t"
- "strd r10, r11, [sp, #56]\n\t"
- "add r1, sp, #0x40\n\t"
- "add r0, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- /* Add */
- "ldrd r4, r5, [sp, #96]\n\t"
- "ldrd r6, r7, [sp, #104]\n\t"
- "ldrd r8, r9, [sp, #32]\n\t"
- "ldrd r10, r11, [sp, #40]\n\t"
- "adds r8, r4, r8\n\t"
- "adcs r9, r5, r9\n\t"
- "adcs r10, r6, r10\n\t"
- "adcs r11, r7, r11\n\t"
- "strd r8, r9, [sp, #96]\n\t"
- "strd r10, r11, [sp, #104]\n\t"
- "ldrd r4, r5, [sp, #112]\n\t"
- "ldrd r6, r7, [sp, #120]\n\t"
- "ldrd r8, r9, [sp, #48]\n\t"
- "ldrd r10, r11, [sp, #56]\n\t"
- "adcs r8, r4, r8\n\t"
- "adcs r9, r5, r9\n\t"
- "adcs r10, r6, r10\n\t"
- "adc r11, r7, r11\n\t"
- "mov r3, #-19\n\t"
- "asr %[a], r11, #31\n\t"
- /* Mask the modulus */
- "and r3, %[a], r3\n\t"
- "and r12, %[a], #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd r4, r5, [sp, #96]\n\t"
- "ldrd r6, r7, [sp, #104]\n\t"
- "subs r4, r4, r3\n\t"
- "sbcs r5, r5, %[a]\n\t"
- "sbcs r6, r6, %[a]\n\t"
- "sbcs r7, r7, %[a]\n\t"
- "sbcs r8, r8, %[a]\n\t"
- "sbcs r9, r9, %[a]\n\t"
- "sbcs r10, r10, %[a]\n\t"
- "sbc r11, r11, r12\n\t"
- "strd r4, r5, [sp, #96]\n\t"
- "strd r6, r7, [sp, #104]\n\t"
- "strd r8, r9, [sp, #112]\n\t"
- "strd r10, r11, [sp, #120]\n\t"
- "add r2, sp, #0\n\t"
- "ldr r1, [sp, #168]\n\t"
- "add r0, sp, #32\n\t"
- "bl fe_mul\n\t"
- "add r2, sp, #0x60\n\t"
- "add r1, sp, #0x80\n\t"
- "add r0, sp, #0\n\t"
- "bl fe_mul\n\t"
- "ldr %[a], [sp, #176]\n\t"
- "ldr %[n], [sp, #180]\n\t"
- "subs %[n], %[n], #1\n\t"
- "str %[n], [sp, #180]\n\t"
- "bge L_curve25519_bits_%=\n\t"
- "mov %[n], #31\n\t"
- "str %[n], [sp, #180]\n\t"
- "subs %[a], %[a], #4\n\t"
- "str %[a], [sp, #176]\n\t"
- "bge L_curve25519_words_%=\n\t"
- /* Invert */
- "add r0, sp, #32\n\t"
- "add r1, sp, #0\n\t"
- "bl fe_sq\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0\n\t"
- "add r2, sp, #0x40\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #32\n\t"
- "add r2, sp, #0x40\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x40\n\t"
- "add r2, sp, #0x60\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- "mov r4, #4\n\t"
- "\n"
- "L_curve25519_inv_1_%=: \n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x60\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_curve25519_inv_1_%=\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x60\n\t"
- "add r2, sp, #0x40\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- "mov r4, #9\n\t"
- "\n"
- "L_curve25519_inv_2_%=: \n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x60\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_curve25519_inv_2_%=\n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x60\n\t"
- "add r2, sp, #0x40\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #0x80\n\t"
- "add r1, sp, #0x60\n\t"
- "bl fe_sq\n\t"
- "mov r4, #19\n\t"
- "\n"
- "L_curve25519_inv_3_%=: \n\t"
- "add r0, sp, #0x80\n\t"
- "add r1, sp, #0x80\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_curve25519_inv_3_%=\n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x80\n\t"
- "add r2, sp, #0x60\n\t"
- "bl fe_mul\n\t"
- "mov r4, #10\n\t"
- "\n"
- "L_curve25519_inv_4_%=: \n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x60\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_curve25519_inv_4_%=\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x60\n\t"
- "add r2, sp, #0x40\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- "mov r4, #49\n\t"
- "\n"
- "L_curve25519_inv_5_%=: \n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x60\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_curve25519_inv_5_%=\n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x60\n\t"
- "add r2, sp, #0x40\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #0x80\n\t"
- "add r1, sp, #0x60\n\t"
- "bl fe_sq\n\t"
- "mov r4, #0x63\n\t"
- "\n"
- "L_curve25519_inv_6_%=: \n\t"
- "add r0, sp, #0x80\n\t"
- "add r1, sp, #0x80\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_curve25519_inv_6_%=\n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x80\n\t"
- "add r2, sp, #0x60\n\t"
- "bl fe_mul\n\t"
- "mov r4, #50\n\t"
- "\n"
- "L_curve25519_inv_7_%=: \n\t"
- "add r0, sp, #0x60\n\t"
- "add r1, sp, #0x60\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_curve25519_inv_7_%=\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x60\n\t"
- "add r2, sp, #0x40\n\t"
- "bl fe_mul\n\t"
- "mov r4, #5\n\t"
- "\n"
- "L_curve25519_inv_8_%=: \n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_curve25519_inv_8_%=\n\t"
- "add r0, sp, #0\n\t"
- "add r1, sp, #0x40\n\t"
- "add r2, sp, #32\n\t"
- "bl fe_mul\n\t"
- "add r2, sp, #0\n\t"
- "ldr r1, [sp, #160]\n\t"
- "ldr r0, [sp, #160]\n\t"
- "bl fe_mul\n\t"
- "mov r0, #0\n\t"
- "add sp, sp, #0xbc\n\t"
- : [r] "+r" (r), [n] "+r" (n), [a] "+r" (a)
- :
- : "memory", "r3", "r12", "lr", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
- );
- return (uint32_t)(size_t)r;
-}
-
-void fe_pow22523(fe r, const fe a)
-{
- __asm__ __volatile__ (
- "sub sp, sp, #0x68\n\t"
- /* pow22523 */
- "str %[r], [sp, #96]\n\t"
- "str %[a], [sp, #100]\n\t"
- "mov r0, sp\n\t"
- "ldr r1, [sp, #100]\n\t"
- "bl fe_sq\n\t"
- "add r0, sp, #32\n\t"
- "mov r1, sp\n\t"
- "bl fe_sq\n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "add r0, sp, #32\n\t"
- "ldr r1, [sp, #100]\n\t"
- "add r2, sp, #32\n\t"
- "bl fe_mul\n\t"
- "mov r0, sp\n\t"
- "mov r1, sp\n\t"
- "add r2, sp, #32\n\t"
- "bl fe_mul\n\t"
- "mov r0, sp\n\t"
- "mov r1, sp\n\t"
- "bl fe_sq\n\t"
- "mov r0, sp\n\t"
- "add r1, sp, #32\n\t"
- "mov r2, sp\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #32\n\t"
- "mov r1, sp\n\t"
- "bl fe_sq\n\t"
- "mov r4, #4\n\t"
- "\n"
- "L_fe_pow22523_1_%=: \n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_pow22523_1_%=\n\t"
- "mov r0, sp\n\t"
- "add r1, sp, #32\n\t"
- "mov r2, sp\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #32\n\t"
- "mov r1, sp\n\t"
- "bl fe_sq\n\t"
- "mov r4, #9\n\t"
- "\n"
- "L_fe_pow22523_2_%=: \n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_pow22523_2_%=\n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #32\n\t"
- "mov r2, sp\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "mov r4, #19\n\t"
- "\n"
- "L_fe_pow22523_3_%=: \n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_pow22523_3_%=\n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #0x40\n\t"
- "add r2, sp, #32\n\t"
- "bl fe_mul\n\t"
- "mov r4, #10\n\t"
- "\n"
- "L_fe_pow22523_4_%=: \n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_pow22523_4_%=\n\t"
- "mov r0, sp\n\t"
- "add r1, sp, #32\n\t"
- "mov r2, sp\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #32\n\t"
- "mov r1, sp\n\t"
- "bl fe_sq\n\t"
- "mov r4, #49\n\t"
- "\n"
- "L_fe_pow22523_5_%=: \n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_pow22523_5_%=\n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #32\n\t"
- "mov r2, sp\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "mov r4, #0x63\n\t"
- "\n"
- "L_fe_pow22523_6_%=: \n\t"
- "add r0, sp, #0x40\n\t"
- "add r1, sp, #0x40\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_pow22523_6_%=\n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #0x40\n\t"
- "add r2, sp, #32\n\t"
- "bl fe_mul\n\t"
- "mov r4, #50\n\t"
- "\n"
- "L_fe_pow22523_7_%=: \n\t"
- "add r0, sp, #32\n\t"
- "add r1, sp, #32\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_pow22523_7_%=\n\t"
- "mov r0, sp\n\t"
- "add r1, sp, #32\n\t"
- "mov r2, sp\n\t"
- "bl fe_mul\n\t"
- "mov r4, #2\n\t"
- "\n"
- "L_fe_pow22523_8_%=: \n\t"
- "mov r0, sp\n\t"
- "mov r1, sp\n\t"
- "bl fe_sq\n\t"
- "sub r4, r4, #1\n\t"
- "cmp r4, #0\n\t"
- "bne L_fe_pow22523_8_%=\n\t"
- "ldr r0, [sp, #96]\n\t"
- "mov r1, sp\n\t"
- "ldr r2, [sp, #100]\n\t"
- "bl fe_mul\n\t"
- "ldr %[a], [sp, #100]\n\t"
- "ldr %[r], [sp, #96]\n\t"
- "add sp, sp, #0x68\n\t"
- : [r] "+r" (r), [a] "+r" (a)
- :
- : "memory", "lr", "r4"
- );
-}
-
-void fe_ge_to_p2(fe rx, fe ry, fe rz, const fe px, const fe py, const fe pz, const fe pt)
-{
- __asm__ __volatile__ (
- "sub sp, sp, #16\n\t"
- "str %[rx], [sp]\n\t"
- "str %[ry], [sp, #4]\n\t"
- "str %[rz], [sp, #8]\n\t"
- "str %[px], [sp, #12]\n\t"
- "ldr r2, [sp, #32]\n\t"
- "ldr r1, [sp, #12]\n\t"
- "ldr r0, [sp]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #28]\n\t"
- "ldr r1, [sp, #24]\n\t"
- "ldr r0, [sp, #4]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #32]\n\t"
- "ldr r1, [sp, #28]\n\t"
- "ldr r0, [sp, #8]\n\t"
- "bl fe_mul\n\t"
- "add sp, sp, #16\n\t"
- : [rx] "+r" (rx), [ry] "+r" (ry), [rz] "+r" (rz), [px] "+r" (px), [py] "+r" (py), [pz] "+r" (pz), [pt] "+r" (pt)
- :
- : "memory", "lr"
- );
-}
-
-void fe_ge_to_p3(fe rx, fe ry, fe rz, fe rt, const fe px, const fe py, const fe pz, const fe pt)
-{
- __asm__ __volatile__ (
- "sub sp, sp, #16\n\t"
- "str %[rx], [sp]\n\t"
- "str %[ry], [sp, #4]\n\t"
- "str %[rz], [sp, #8]\n\t"
- "str %[rt], [sp, #12]\n\t"
- "ldr r2, [sp, #36]\n\t"
- "ldr r1, [sp, #24]\n\t"
- "ldr r0, [sp]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #32]\n\t"
- "ldr r1, [sp, #28]\n\t"
- "ldr r0, [sp, #4]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #36]\n\t"
- "ldr r1, [sp, #32]\n\t"
- "ldr r0, [sp, #8]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #28]\n\t"
- "ldr r1, [sp, #24]\n\t"
- "ldr r0, [sp, #12]\n\t"
- "bl fe_mul\n\t"
- "add sp, sp, #16\n\t"
- : [rx] "+r" (rx), [ry] "+r" (ry), [rz] "+r" (rz), [rt] "+r" (rt), [px] "+r" (px), [py] "+r" (py), [pz] "+r" (pz), [pt] "+r" (pt)
- :
- : "memory", "lr"
- );
-}
-
-void fe_ge_dbl(fe rx, fe ry, fe rz, fe rt, const fe px, const fe py, const fe pz)
-{
- __asm__ __volatile__ (
- "sub sp, sp, #16\n\t"
- "str %[rx], [sp]\n\t"
- "str %[ry], [sp, #4]\n\t"
- "str %[rz], [sp, #8]\n\t"
- "str %[rt], [sp, #12]\n\t"
- "ldr r1, [sp, #88]\n\t"
- "ldr r0, [sp]\n\t"
- "bl fe_sq\n\t"
- "ldr r1, [sp, #92]\n\t"
- "ldr r0, [sp, #8]\n\t"
- "bl fe_sq\n\t"
- "ldr r0, [sp, #4]\n\t"
- "ldr r1, [sp, #88]\n\t"
- "ldr r2, [sp, #92]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "ldrd r7, r8, [r2]\n\t"
- "ldrd r9, r10, [r2, #8]\n\t"
- "adds r7, %[rt], r7\n\t"
- "adcs r8, r4, r8\n\t"
- "adcs r9, r5, r9\n\t"
- "adcs r10, r6, r10\n\t"
- "strd r7, r8, [r0]\n\t"
- "strd r9, r10, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "ldrd r5, r6, [r1, #24]\n\t"
- "ldrd r7, r8, [r2, #16]\n\t"
- "ldrd r9, r10, [r2, #24]\n\t"
- "adcs r7, %[rt], r7\n\t"
- "adcs r8, r4, r8\n\t"
- "adcs r9, r5, r9\n\t"
- "adc r10, r6, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "sbcs r5, r5, r11\n\t"
- "sbcs r6, r6, r11\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbcs r8, r8, r11\n\t"
- "sbcs r9, r9, r11\n\t"
- "sbc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "ldr r1, [sp, #4]\n\t"
- "ldr r0, [sp, #12]\n\t"
- "bl fe_sq\n\t"
- "ldr r0, [sp, #4]\n\t"
- "ldr r1, [sp, #8]\n\t"
- "ldr r2, [sp]\n\t"
- /* Add-Sub */
- /* Add */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r2]\n\t"
- "adds r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0]\n\t"
- /* Sub */
- "subs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r1, #8]\n\t"
- "ldrd r5, r6, [r2, #8]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #8]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #8]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "ldrd r5, r6, [r2, #16]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #16]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r1, #24]\n\t"
- "ldrd r5, r6, [r2, #24]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "adc r8, r4, r6\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "sbc r10, r4, r6\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r8, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "ldrd %[rt], r4, [r0, #8]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r0, #16]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #16]\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbc r8, r8, lr\n\t"
- "strd r7, r8, [r0, #24]\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r1]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1]\n\t"
- "ldrd %[rt], r4, [r1, #8]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #16]\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd r9, r10, [r1, #24]\n\t"
- "ldr r0, [sp]\n\t"
- "ldr r1, [sp, #12]\n\t"
- "ldr r2, [sp, #4]\n\t"
- /* Sub */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "ldrd r7, r8, [r2]\n\t"
- "ldrd r9, r10, [r2, #8]\n\t"
- "subs r7, %[rt], r7\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "sbcs r10, r6, r10\n\t"
- "strd r7, r8, [r0]\n\t"
- "strd r9, r10, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "ldrd r5, r6, [r1, #24]\n\t"
- "ldrd r7, r8, [r2, #16]\n\t"
- "ldrd r9, r10, [r2, #24]\n\t"
- "sbcs r7, %[rt], r7\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "sbc r10, r6, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "adcs r5, r5, r11\n\t"
- "adcs r6, r6, r11\n\t"
- "adcs r7, r7, r11\n\t"
- "adcs r8, r8, r11\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "ldr r1, [sp, #96]\n\t"
- "ldr r0, [sp, #12]\n\t"
- "bl fe_sq2\n\t"
- "ldr r0, [sp, #12]\n\t"
- "ldr r1, [sp, #8]\n\t"
- /* Sub */
- "ldrd %[rt], r4, [r0]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "ldrd r7, r8, [r1]\n\t"
- "ldrd r9, r10, [r1, #8]\n\t"
- "subs r7, %[rt], r7\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "sbcs r10, r6, r10\n\t"
- "strd r7, r8, [r0]\n\t"
- "strd r9, r10, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r0, #16]\n\t"
- "ldrd r5, r6, [r0, #24]\n\t"
- "ldrd r7, r8, [r1, #16]\n\t"
- "ldrd r9, r10, [r1, #24]\n\t"
- "sbcs r7, %[rt], r7\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "sbc r10, r6, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "adcs r5, r5, r11\n\t"
- "adcs r6, r6, r11\n\t"
- "adcs r7, r7, r11\n\t"
- "adcs r8, r8, r11\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "add sp, sp, #16\n\t"
- : [rx] "+r" (rx), [ry] "+r" (ry), [rz] "+r" (rz), [rt] "+r" (rt), [px] "+r" (px), [py] "+r" (py), [pz] "+r" (pz)
- :
- : "memory", "r12", "lr", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
- );
-}
-
-void fe_ge_madd(fe rx, fe ry, fe rz, fe rt, const fe px, const fe py, const fe pz, const fe pt, const fe qxy2d, const fe qyplusx, const fe qyminusx)
-{
- __asm__ __volatile__ (
- "sub sp, sp, #32\n\t"
- "str %[rx], [sp]\n\t"
- "str %[ry], [sp, #4]\n\t"
- "str %[rz], [sp, #8]\n\t"
- "str %[rt], [sp, #12]\n\t"
- "ldr r0, [sp]\n\t"
- "ldr r1, [sp, #108]\n\t"
- "ldr r2, [sp, #104]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "ldrd r7, r8, [r2]\n\t"
- "ldrd r9, r10, [r2, #8]\n\t"
- "adds r7, %[rt], r7\n\t"
- "adcs r8, r4, r8\n\t"
- "adcs r9, r5, r9\n\t"
- "adcs r10, r6, r10\n\t"
- "strd r7, r8, [r0]\n\t"
- "strd r9, r10, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "ldrd r5, r6, [r1, #24]\n\t"
- "ldrd r7, r8, [r2, #16]\n\t"
- "ldrd r9, r10, [r2, #24]\n\t"
- "adcs r7, %[rt], r7\n\t"
- "adcs r8, r4, r8\n\t"
- "adcs r9, r5, r9\n\t"
- "adc r10, r6, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "sbcs r5, r5, r11\n\t"
- "sbcs r6, r6, r11\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbcs r8, r8, r11\n\t"
- "sbcs r9, r9, r11\n\t"
- "sbc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "ldr r0, [sp, #4]\n\t"
- "ldr r1, [sp, #108]\n\t"
- "ldr r2, [sp, #104]\n\t"
- /* Sub */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "ldrd r7, r8, [r2]\n\t"
- "ldrd r9, r10, [r2, #8]\n\t"
- "subs r7, %[rt], r7\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "sbcs r10, r6, r10\n\t"
- "strd r7, r8, [r0]\n\t"
- "strd r9, r10, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "ldrd r5, r6, [r1, #24]\n\t"
- "ldrd r7, r8, [r2, #16]\n\t"
- "ldrd r9, r10, [r2, #24]\n\t"
- "sbcs r7, %[rt], r7\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "sbc r10, r6, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "adcs r5, r5, r11\n\t"
- "adcs r6, r6, r11\n\t"
- "adcs r7, r7, r11\n\t"
- "adcs r8, r8, r11\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "ldr r2, [sp, #124]\n\t"
- "ldr r1, [sp]\n\t"
- "ldr r0, [sp, #8]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #128]\n\t"
- "ldr r1, [sp, #4]\n\t"
- "ldr r0, [sp, #4]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #116]\n\t"
- "ldr r1, [sp, #120]\n\t"
- "ldr r0, [sp, #12]\n\t"
- "bl fe_mul\n\t"
- "ldr r0, [sp, #4]\n\t"
- "ldr r1, [sp]\n\t"
- "ldr r2, [sp, #8]\n\t"
- /* Add-Sub */
- /* Add */
- "ldrd %[rt], r4, [r2]\n\t"
- "ldrd r5, r6, [r0]\n\t"
- "adds r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0]\n\t"
- /* Sub */
- "subs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #8]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #8]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #8]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #16]\n\t"
- "ldrd r5, r6, [r0, #16]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #16]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #24]\n\t"
- "ldrd r5, r6, [r0, #24]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "adc r8, r4, r6\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "sbc r10, r4, r6\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r8, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "ldrd %[rt], r4, [r0, #8]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r0, #16]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #16]\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbc r8, r8, lr\n\t"
- "strd r7, r8, [r0, #24]\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r1]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1]\n\t"
- "ldrd %[rt], r4, [r1, #8]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #16]\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd r9, r10, [r1, #24]\n\t"
- "ldr r0, [sp, #8]\n\t"
- "ldr r1, [sp, #112]\n\t"
- /* Double */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "ldrd r7, r8, [r1, #16]\n\t"
- "ldrd r9, r10, [r1, #24]\n\t"
- "adds %[rt], %[rt], %[rt]\n\t"
- "adcs r4, r4, r4\n\t"
- "adcs r5, r5, r5\n\t"
- "adcs r6, r6, r6\n\t"
- "adcs r7, r7, r7\n\t"
- "adcs r8, r8, r8\n\t"
- "adcs r9, r9, r9\n\t"
- "adc r10, r10, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "sbcs r5, r5, r11\n\t"
- "sbcs r6, r6, r11\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbcs r8, r8, r11\n\t"
- "sbcs r9, r9, r11\n\t"
- "sbc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "ldr r0, [sp, #8]\n\t"
- "ldr r1, [sp, #12]\n\t"
- /* Add-Sub */
- /* Add */
- "ldrd %[rt], r4, [r0]\n\t"
- "ldrd r5, r6, [r1]\n\t"
- "adds r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0]\n\t"
- /* Sub */
- "subs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r0, #8]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #8]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #8]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r0, #16]\n\t"
- "ldrd r5, r6, [r1, #16]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #16]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r0, #24]\n\t"
- "ldrd r5, r6, [r1, #24]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "adc r8, r4, r6\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "sbc r10, r4, r6\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r8, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "ldrd %[rt], r4, [r0, #8]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r0, #16]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #16]\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbc r8, r8, lr\n\t"
- "strd r7, r8, [r0, #24]\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r1]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1]\n\t"
- "ldrd %[rt], r4, [r1, #8]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #16]\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd r9, r10, [r1, #24]\n\t"
- "add sp, sp, #32\n\t"
- : [rx] "+r" (rx), [ry] "+r" (ry), [rz] "+r" (rz), [rt] "+r" (rt), [px] "+r" (px), [py] "+r" (py), [pz] "+r" (pz), [pt] "+r" (pt)
- :
- : "memory", "r12", "lr", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
- );
- (void)qxy2d;
- (void)qyplusx;
- (void)qyminusx;
-}
-
-void fe_ge_msub(fe rx, fe ry, fe rz, fe rt, const fe px, const fe py, const fe pz, const fe pt, const fe qxy2d, const fe qyplusx, const fe qyminusx)
-{
- __asm__ __volatile__ (
- "sub sp, sp, #32\n\t"
- "str %[rx], [sp]\n\t"
- "str %[ry], [sp, #4]\n\t"
- "str %[rz], [sp, #8]\n\t"
- "str %[rt], [sp, #12]\n\t"
- "ldr r0, [sp]\n\t"
- "ldr r1, [sp, #108]\n\t"
- "ldr r2, [sp, #104]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "ldrd r7, r8, [r2]\n\t"
- "ldrd r9, r10, [r2, #8]\n\t"
- "adds r7, %[rt], r7\n\t"
- "adcs r8, r4, r8\n\t"
- "adcs r9, r5, r9\n\t"
- "adcs r10, r6, r10\n\t"
- "strd r7, r8, [r0]\n\t"
- "strd r9, r10, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "ldrd r5, r6, [r1, #24]\n\t"
- "ldrd r7, r8, [r2, #16]\n\t"
- "ldrd r9, r10, [r2, #24]\n\t"
- "adcs r7, %[rt], r7\n\t"
- "adcs r8, r4, r8\n\t"
- "adcs r9, r5, r9\n\t"
- "adc r10, r6, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "sbcs r5, r5, r11\n\t"
- "sbcs r6, r6, r11\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbcs r8, r8, r11\n\t"
- "sbcs r9, r9, r11\n\t"
- "sbc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "ldr r0, [sp, #4]\n\t"
- "ldr r1, [sp, #108]\n\t"
- "ldr r2, [sp, #104]\n\t"
- /* Sub */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "ldrd r7, r8, [r2]\n\t"
- "ldrd r9, r10, [r2, #8]\n\t"
- "subs r7, %[rt], r7\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "sbcs r10, r6, r10\n\t"
- "strd r7, r8, [r0]\n\t"
- "strd r9, r10, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "ldrd r5, r6, [r1, #24]\n\t"
- "ldrd r7, r8, [r2, #16]\n\t"
- "ldrd r9, r10, [r2, #24]\n\t"
- "sbcs r7, %[rt], r7\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "sbc r10, r6, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "adcs r5, r5, r11\n\t"
- "adcs r6, r6, r11\n\t"
- "adcs r7, r7, r11\n\t"
- "adcs r8, r8, r11\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "ldr r2, [sp, #128]\n\t"
- "ldr r1, [sp]\n\t"
- "ldr r0, [sp, #8]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #124]\n\t"
- "ldr r1, [sp, #4]\n\t"
- "ldr r0, [sp, #4]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #116]\n\t"
- "ldr r1, [sp, #120]\n\t"
- "ldr r0, [sp, #12]\n\t"
- "bl fe_mul\n\t"
- "ldr r0, [sp, #4]\n\t"
- "ldr r1, [sp]\n\t"
- "ldr r2, [sp, #8]\n\t"
- /* Add-Sub */
- /* Add */
- "ldrd %[rt], r4, [r2]\n\t"
- "ldrd r5, r6, [r0]\n\t"
- "adds r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0]\n\t"
- /* Sub */
- "subs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #8]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #8]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #8]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #16]\n\t"
- "ldrd r5, r6, [r0, #16]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #16]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #24]\n\t"
- "ldrd r5, r6, [r0, #24]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "adc r8, r4, r6\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "sbc r10, r4, r6\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r8, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "ldrd %[rt], r4, [r0, #8]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r0, #16]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #16]\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbc r8, r8, lr\n\t"
- "strd r7, r8, [r0, #24]\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r1]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1]\n\t"
- "ldrd %[rt], r4, [r1, #8]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #16]\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd r9, r10, [r1, #24]\n\t"
- "ldr r0, [sp, #8]\n\t"
- "ldr r1, [sp, #112]\n\t"
- /* Double */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "ldrd r7, r8, [r1, #16]\n\t"
- "ldrd r9, r10, [r1, #24]\n\t"
- "adds %[rt], %[rt], %[rt]\n\t"
- "adcs r4, r4, r4\n\t"
- "adcs r5, r5, r5\n\t"
- "adcs r6, r6, r6\n\t"
- "adcs r7, r7, r7\n\t"
- "adcs r8, r8, r8\n\t"
- "adcs r9, r9, r9\n\t"
- "adc r10, r10, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "sbcs r5, r5, r11\n\t"
- "sbcs r6, r6, r11\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbcs r8, r8, r11\n\t"
- "sbcs r9, r9, r11\n\t"
- "sbc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "ldr r0, [sp, #12]\n\t"
- "ldr r1, [sp, #8]\n\t"
- /* Add-Sub */
- /* Add */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r0]\n\t"
- "adds r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0]\n\t"
- /* Sub */
- "subs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r1, #8]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #8]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #8]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "ldrd r5, r6, [r0, #16]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #16]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r1, #24]\n\t"
- "ldrd r5, r6, [r0, #24]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "adc r8, r4, r6\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "sbc r10, r4, r6\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r8, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "ldrd %[rt], r4, [r0, #8]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r0, #16]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #16]\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbc r8, r8, lr\n\t"
- "strd r7, r8, [r0, #24]\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r1]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1]\n\t"
- "ldrd %[rt], r4, [r1, #8]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #16]\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd r9, r10, [r1, #24]\n\t"
- "add sp, sp, #32\n\t"
- : [rx] "+r" (rx), [ry] "+r" (ry), [rz] "+r" (rz), [rt] "+r" (rt), [px] "+r" (px), [py] "+r" (py), [pz] "+r" (pz), [pt] "+r" (pt)
- :
- : "memory", "r12", "lr", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
- );
- (void)qxy2d;
- (void)qyplusx;
- (void)qyminusx;
-}
-
-void fe_ge_add(fe rx, fe ry, fe rz, fe rt, const fe px, const fe py, const fe pz, const fe pt, const fe qz, const fe qt2d, const fe qyplusx, const fe qyminusx)
-{
- __asm__ __volatile__ (
- "sub sp, sp, #0x60\n\t"
- "str %[rx], [sp]\n\t"
- "str %[ry], [sp, #4]\n\t"
- "str %[rz], [sp, #8]\n\t"
- "str %[rt], [sp, #12]\n\t"
- "ldr r0, [sp]\n\t"
- "ldr r1, [sp, #172]\n\t"
- "ldr r2, [sp, #168]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "ldrd r7, r8, [r2]\n\t"
- "ldrd r9, r10, [r2, #8]\n\t"
- "adds r7, %[rt], r7\n\t"
- "adcs r8, r4, r8\n\t"
- "adcs r9, r5, r9\n\t"
- "adcs r10, r6, r10\n\t"
- "strd r7, r8, [r0]\n\t"
- "strd r9, r10, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "ldrd r5, r6, [r1, #24]\n\t"
- "ldrd r7, r8, [r2, #16]\n\t"
- "ldrd r9, r10, [r2, #24]\n\t"
- "adcs r7, %[rt], r7\n\t"
- "adcs r8, r4, r8\n\t"
- "adcs r9, r5, r9\n\t"
- "adc r10, r6, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "sbcs r5, r5, r11\n\t"
- "sbcs r6, r6, r11\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbcs r8, r8, r11\n\t"
- "sbcs r9, r9, r11\n\t"
- "sbc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "ldr r0, [sp, #4]\n\t"
- "ldr r1, [sp, #172]\n\t"
- "ldr r2, [sp, #168]\n\t"
- /* Sub */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "ldrd r7, r8, [r2]\n\t"
- "ldrd r9, r10, [r2, #8]\n\t"
- "subs r7, %[rt], r7\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "sbcs r10, r6, r10\n\t"
- "strd r7, r8, [r0]\n\t"
- "strd r9, r10, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "ldrd r5, r6, [r1, #24]\n\t"
- "ldrd r7, r8, [r2, #16]\n\t"
- "ldrd r9, r10, [r2, #24]\n\t"
- "sbcs r7, %[rt], r7\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "sbc r10, r6, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "adcs r5, r5, r11\n\t"
- "adcs r6, r6, r11\n\t"
- "adcs r7, r7, r11\n\t"
- "adcs r8, r8, r11\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "ldr r2, [sp, #192]\n\t"
- "ldr r1, [sp]\n\t"
- "ldr r0, [sp, #8]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #196]\n\t"
- "ldr r1, [sp, #4]\n\t"
- "ldr r0, [sp, #4]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #180]\n\t"
- "ldr r1, [sp, #188]\n\t"
- "ldr r0, [sp, #12]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #184]\n\t"
- "ldr r1, [sp, #176]\n\t"
- "ldr r0, [sp]\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #16\n\t"
- "ldr r1, [sp]\n\t"
- /* Double */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "ldrd r7, r8, [r1, #16]\n\t"
- "ldrd r9, r10, [r1, #24]\n\t"
- "adds %[rt], %[rt], %[rt]\n\t"
- "adcs r4, r4, r4\n\t"
- "adcs r5, r5, r5\n\t"
- "adcs r6, r6, r6\n\t"
- "adcs r7, r7, r7\n\t"
- "adcs r8, r8, r8\n\t"
- "adcs r9, r9, r9\n\t"
- "adc r10, r10, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "sbcs r5, r5, r11\n\t"
- "sbcs r6, r6, r11\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbcs r8, r8, r11\n\t"
- "sbcs r9, r9, r11\n\t"
- "sbc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "ldr r0, [sp, #4]\n\t"
- "ldr r1, [sp]\n\t"
- "ldr r2, [sp, #8]\n\t"
- /* Add-Sub */
- /* Add */
- "ldrd %[rt], r4, [r2]\n\t"
- "ldrd r5, r6, [r0]\n\t"
- "adds r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0]\n\t"
- /* Sub */
- "subs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #8]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #8]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #8]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #16]\n\t"
- "ldrd r5, r6, [r0, #16]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #16]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #24]\n\t"
- "ldrd r5, r6, [r0, #24]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "adc r8, r4, r6\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "sbc r10, r4, r6\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r8, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "ldrd %[rt], r4, [r0, #8]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r0, #16]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #16]\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbc r8, r8, lr\n\t"
- "strd r7, r8, [r0, #24]\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r1]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1]\n\t"
- "ldrd %[rt], r4, [r1, #8]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #16]\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd r9, r10, [r1, #24]\n\t"
- "ldr r0, [sp, #8]\n\t"
- "ldr r1, [sp, #12]\n\t"
- "add r2, sp, #16\n\t"
- /* Add-Sub */
- /* Add */
- "ldrd %[rt], r4, [r2]\n\t"
- "ldrd r5, r6, [r1]\n\t"
- "adds r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0]\n\t"
- /* Sub */
- "subs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #8]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #8]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #8]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #16]\n\t"
- "ldrd r5, r6, [r1, #16]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #16]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #24]\n\t"
- "ldrd r5, r6, [r1, #24]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "adc r8, r4, r6\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "sbc r10, r4, r6\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r8, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "ldrd %[rt], r4, [r0, #8]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r0, #16]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #16]\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbc r8, r8, lr\n\t"
- "strd r7, r8, [r0, #24]\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r1]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1]\n\t"
- "ldrd %[rt], r4, [r1, #8]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #16]\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd r9, r10, [r1, #24]\n\t"
- "add sp, sp, #0x60\n\t"
- : [rx] "+r" (rx), [ry] "+r" (ry), [rz] "+r" (rz), [rt] "+r" (rt), [px] "+r" (px), [py] "+r" (py), [pz] "+r" (pz), [pt] "+r" (pt)
- :
- : "memory", "r12", "lr", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
- );
- (void)qz;
- (void)qt2d;
- (void)qyplusx;
- (void)qyminusx;
-}
-
-void fe_ge_sub(fe rx, fe ry, fe rz, fe rt, const fe px, const fe py, const fe pz, const fe pt, const fe qz, const fe qt2d, const fe qyplusx, const fe qyminusx)
-{
- __asm__ __volatile__ (
- "sub sp, sp, #0x60\n\t"
- "str %[rx], [sp]\n\t"
- "str %[ry], [sp, #4]\n\t"
- "str %[rz], [sp, #8]\n\t"
- "str %[rt], [sp, #12]\n\t"
- "ldr r0, [sp]\n\t"
- "ldr r1, [sp, #172]\n\t"
- "ldr r2, [sp, #168]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "ldrd r7, r8, [r2]\n\t"
- "ldrd r9, r10, [r2, #8]\n\t"
- "adds r7, %[rt], r7\n\t"
- "adcs r8, r4, r8\n\t"
- "adcs r9, r5, r9\n\t"
- "adcs r10, r6, r10\n\t"
- "strd r7, r8, [r0]\n\t"
- "strd r9, r10, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "ldrd r5, r6, [r1, #24]\n\t"
- "ldrd r7, r8, [r2, #16]\n\t"
- "ldrd r9, r10, [r2, #24]\n\t"
- "adcs r7, %[rt], r7\n\t"
- "adcs r8, r4, r8\n\t"
- "adcs r9, r5, r9\n\t"
- "adc r10, r6, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "sbcs r5, r5, r11\n\t"
- "sbcs r6, r6, r11\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbcs r8, r8, r11\n\t"
- "sbcs r9, r9, r11\n\t"
- "sbc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "ldr r0, [sp, #4]\n\t"
- "ldr r1, [sp, #172]\n\t"
- "ldr r2, [sp, #168]\n\t"
- /* Sub */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "ldrd r7, r8, [r2]\n\t"
- "ldrd r9, r10, [r2, #8]\n\t"
- "subs r7, %[rt], r7\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "sbcs r10, r6, r10\n\t"
- "strd r7, r8, [r0]\n\t"
- "strd r9, r10, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "ldrd r5, r6, [r1, #24]\n\t"
- "ldrd r7, r8, [r2, #16]\n\t"
- "ldrd r9, r10, [r2, #24]\n\t"
- "sbcs r7, %[rt], r7\n\t"
- "sbcs r8, r4, r8\n\t"
- "sbcs r9, r5, r9\n\t"
- "sbc r10, r6, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "adcs r5, r5, r11\n\t"
- "adcs r6, r6, r11\n\t"
- "adcs r7, r7, r11\n\t"
- "adcs r8, r8, r11\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "ldr r2, [sp, #196]\n\t"
- "ldr r1, [sp]\n\t"
- "ldr r0, [sp, #8]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #192]\n\t"
- "ldr r1, [sp, #4]\n\t"
- "ldr r0, [sp, #4]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #180]\n\t"
- "ldr r1, [sp, #188]\n\t"
- "ldr r0, [sp, #12]\n\t"
- "bl fe_mul\n\t"
- "ldr r2, [sp, #184]\n\t"
- "ldr r1, [sp, #176]\n\t"
- "ldr r0, [sp]\n\t"
- "bl fe_mul\n\t"
- "add r0, sp, #16\n\t"
- "ldr r1, [sp]\n\t"
- /* Double */
- "ldrd %[rt], r4, [r1]\n\t"
- "ldrd r5, r6, [r1, #8]\n\t"
- "ldrd r7, r8, [r1, #16]\n\t"
- "ldrd r9, r10, [r1, #24]\n\t"
- "adds %[rt], %[rt], %[rt]\n\t"
- "adcs r4, r4, r4\n\t"
- "adcs r5, r5, r5\n\t"
- "adcs r6, r6, r6\n\t"
- "adcs r7, r7, r7\n\t"
- "adcs r8, r8, r8\n\t"
- "adcs r9, r9, r9\n\t"
- "adc r10, r10, r10\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "sbcs r5, r5, r11\n\t"
- "sbcs r6, r6, r11\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbcs r8, r8, r11\n\t"
- "sbcs r9, r9, r11\n\t"
- "sbc r10, r10, lr\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "strd r5, r6, [r0, #8]\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- "strd r9, r10, [r0, #24]\n\t"
- "ldr r0, [sp, #4]\n\t"
- "ldr r1, [sp]\n\t"
- "ldr r2, [sp, #8]\n\t"
- /* Add-Sub */
- /* Add */
- "ldrd %[rt], r4, [r2]\n\t"
- "ldrd r5, r6, [r0]\n\t"
- "adds r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0]\n\t"
- /* Sub */
- "subs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #8]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #8]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #8]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #16]\n\t"
- "ldrd r5, r6, [r0, #16]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #16]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #24]\n\t"
- "ldrd r5, r6, [r0, #24]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "adc r8, r4, r6\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "sbc r10, r4, r6\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r8, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "ldrd %[rt], r4, [r0, #8]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r0, #16]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #16]\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbc r8, r8, lr\n\t"
- "strd r7, r8, [r0, #24]\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r1]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1]\n\t"
- "ldrd %[rt], r4, [r1, #8]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #16]\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd r9, r10, [r1, #24]\n\t"
- "ldr r0, [sp, #12]\n\t"
- "ldr r1, [sp, #8]\n\t"
- "add r2, sp, #16\n\t"
- /* Add-Sub */
- /* Add */
- "ldrd %[rt], r4, [r2]\n\t"
- "ldrd r5, r6, [r0]\n\t"
- "adds r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0]\n\t"
- /* Sub */
- "subs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #8]\n\t"
- "ldrd r5, r6, [r0, #8]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #8]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #8]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #16]\n\t"
- "ldrd r5, r6, [r0, #16]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "mov r12, #0\n\t"
- "adcs r8, r4, r6\n\t"
- "adc r12, r12, #0\n\t"
- "strd r7, r8, [r0, #16]\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "mov lr, #0\n\t"
- "sbcs r10, r4, r6\n\t"
- "adc lr, lr, #0\n\t"
- "strd r9, r10, [r1, #16]\n\t"
- /* Add */
- "ldrd %[rt], r4, [r2, #24]\n\t"
- "ldrd r5, r6, [r0, #24]\n\t"
- "adds r12, r12, #-1\n\t"
- "adcs r7, %[rt], r5\n\t"
- "adc r8, r4, r6\n\t"
- /* Sub */
- "adds lr, lr, #-1\n\t"
- "sbcs r9, %[rt], r5\n\t"
- "sbc r10, r4, r6\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r8, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Sub modulus (if overflow) */
- "ldrd %[rt], r4, [r0]\n\t"
- "subs %[rt], %[rt], r12\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0]\n\t"
- "ldrd %[rt], r4, [r0, #8]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #8]\n\t"
- "ldrd %[rt], r4, [r0, #16]\n\t"
- "sbcs %[rt], %[rt], r11\n\t"
- "sbcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r0, #16]\n\t"
- "sbcs r7, r7, r11\n\t"
- "sbc r8, r8, lr\n\t"
- "strd r7, r8, [r0, #24]\n\t"
- "mov r12, #-19\n\t"
- "asr r11, r10, #31\n\t"
- /* Mask the modulus */
- "and r12, r11, r12\n\t"
- "and lr, r11, #0x7fffffff\n\t"
- /* Add modulus (if underflow) */
- "ldrd %[rt], r4, [r1]\n\t"
- "adds %[rt], %[rt], r12\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1]\n\t"
- "ldrd %[rt], r4, [r1, #8]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #8]\n\t"
- "ldrd %[rt], r4, [r1, #16]\n\t"
- "adcs %[rt], %[rt], r11\n\t"
- "adcs r4, r4, r11\n\t"
- "strd %[rt], r4, [r1, #16]\n\t"
- "adcs r9, r9, r11\n\t"
- "adc r10, r10, lr\n\t"
- "strd r9, r10, [r1, #24]\n\t"
- "add sp, sp, #0x60\n\t"
- : [rx] "+r" (rx), [ry] "+r" (ry), [rz] "+r" (rz), [rt] "+r" (rt), [px] "+r" (px), [py] "+r" (py), [pz] "+r" (pz), [pt] "+r" (pt)
- :
- : "memory", "r12", "lr", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
- );
- (void)qz;
- (void)qt2d;
- (void)qyplusx;
- (void)qyminusx;
-}
-
-#endif /* WOLFSSL_ARMASM */
-#endif /* !__aarch64__ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-sha512-asm.S b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-sha512-asm.S
deleted file mode 100644
index d2b899c12..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-sha512-asm.S
+++ /dev/null
@@ -1,5335 +0,0 @@
-/* armv8-32-sha512-asm
- *
- * Copyright (C) 2006-2020 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
- */
-
-/* Generated using (from wolfssl):
- * cd ../scripts
- * ruby ./sha2/sha512.rb arm32 ../wolfssl/wolfcrypt/src/port/arm/armv8-32-sha512-asm.S
- */
-
-#ifdef WOLFSSL_ARMASM
-#ifndef __aarch64__
-#ifdef WOLFSSL_ARMASM_NO_NEON
- .text
- .type L_SHA512_transform_len_k, %object
- .size L_SHA512_transform_len_k, 640
- .align 3
-L_SHA512_transform_len_k:
- .word 0xd728ae22
- .word 0x428a2f98
- .word 0x23ef65cd
- .word 0x71374491
- .word 0xec4d3b2f
- .word 0xb5c0fbcf
- .word 0x8189dbbc
- .word 0xe9b5dba5
- .word 0xf348b538
- .word 0x3956c25b
- .word 0xb605d019
- .word 0x59f111f1
- .word 0xaf194f9b
- .word 0x923f82a4
- .word 0xda6d8118
- .word 0xab1c5ed5
- .word 0xa3030242
- .word 0xd807aa98
- .word 0x45706fbe
- .word 0x12835b01
- .word 0x4ee4b28c
- .word 0x243185be
- .word 0xd5ffb4e2
- .word 0x550c7dc3
- .word 0xf27b896f
- .word 0x72be5d74
- .word 0x3b1696b1
- .word 0x80deb1fe
- .word 0x25c71235
- .word 0x9bdc06a7
- .word 0xcf692694
- .word 0xc19bf174
- .word 0x9ef14ad2
- .word 0xe49b69c1
- .word 0x384f25e3
- .word 0xefbe4786
- .word 0x8b8cd5b5
- .word 0xfc19dc6
- .word 0x77ac9c65
- .word 0x240ca1cc
- .word 0x592b0275
- .word 0x2de92c6f
- .word 0x6ea6e483
- .word 0x4a7484aa
- .word 0xbd41fbd4
- .word 0x5cb0a9dc
- .word 0x831153b5
- .word 0x76f988da
- .word 0xee66dfab
- .word 0x983e5152
- .word 0x2db43210
- .word 0xa831c66d
- .word 0x98fb213f
- .word 0xb00327c8
- .word 0xbeef0ee4
- .word 0xbf597fc7
- .word 0x3da88fc2
- .word 0xc6e00bf3
- .word 0x930aa725
- .word 0xd5a79147
- .word 0xe003826f
- .word 0x6ca6351
- .word 0xa0e6e70
- .word 0x14292967
- .word 0x46d22ffc
- .word 0x27b70a85
- .word 0x5c26c926
- .word 0x2e1b2138
- .word 0x5ac42aed
- .word 0x4d2c6dfc
- .word 0x9d95b3df
- .word 0x53380d13
- .word 0x8baf63de
- .word 0x650a7354
- .word 0x3c77b2a8
- .word 0x766a0abb
- .word 0x47edaee6
- .word 0x81c2c92e
- .word 0x1482353b
- .word 0x92722c85
- .word 0x4cf10364
- .word 0xa2bfe8a1
- .word 0xbc423001
- .word 0xa81a664b
- .word 0xd0f89791
- .word 0xc24b8b70
- .word 0x654be30
- .word 0xc76c51a3
- .word 0xd6ef5218
- .word 0xd192e819
- .word 0x5565a910
- .word 0xd6990624
- .word 0x5771202a
- .word 0xf40e3585
- .word 0x32bbd1b8
- .word 0x106aa070
- .word 0xb8d2d0c8
- .word 0x19a4c116
- .word 0x5141ab53
- .word 0x1e376c08
- .word 0xdf8eeb99
- .word 0x2748774c
- .word 0xe19b48a8
- .word 0x34b0bcb5
- .word 0xc5c95a63
- .word 0x391c0cb3
- .word 0xe3418acb
- .word 0x4ed8aa4a
- .word 0x7763e373
- .word 0x5b9cca4f
- .word 0xd6b2b8a3
- .word 0x682e6ff3
- .word 0x5defb2fc
- .word 0x748f82ee
- .word 0x43172f60
- .word 0x78a5636f
- .word 0xa1f0ab72
- .word 0x84c87814
- .word 0x1a6439ec
- .word 0x8cc70208
- .word 0x23631e28
- .word 0x90befffa
- .word 0xde82bde9
- .word 0xa4506ceb
- .word 0xb2c67915
- .word 0xbef9a3f7
- .word 0xe372532b
- .word 0xc67178f2
- .word 0xea26619c
- .word 0xca273ece
- .word 0x21c0c207
- .word 0xd186b8c7
- .word 0xcde0eb1e
- .word 0xeada7dd6
- .word 0xee6ed178
- .word 0xf57d4f7f
- .word 0x72176fba
- .word 0x6f067aa
- .word 0xa2c898a6
- .word 0xa637dc5
- .word 0xbef90dae
- .word 0x113f9804
- .word 0x131c471b
- .word 0x1b710b35
- .word 0x23047d84
- .word 0x28db77f5
- .word 0x40c72493
- .word 0x32caab7b
- .word 0x15c9bebc
- .word 0x3c9ebe0a
- .word 0x9c100d4c
- .word 0x431d67c4
- .word 0xcb3e42b6
- .word 0x4cc5d4be
- .word 0xfc657e2a
- .word 0x597f299c
- .word 0x3ad6faec
- .word 0x5fcb6fab
- .word 0x4a475817
- .word 0x6c44198c
- .text
- .align 2
- .globl Transform_Sha512_Len
- .type Transform_Sha512_Len, %function
-Transform_Sha512_Len:
- push {r4, r5, r6, r7, r8, r9, r10, lr}
- sub sp, sp, #0xc0
- adr r3, L_SHA512_transform_len_k
- # Copy digest to add in at end
- ldr r12, [r0]
- ldr lr, [r0, #4]
- ldrd r4, r5, [r0, #8]
- ldrd r6, r7, [r0, #16]
- ldrd r8, r9, [r0, #24]
- str r12, [sp, #128]
- str lr, [sp, #132]
- strd r4, r5, [sp, #136]
- strd r6, r7, [sp, #144]
- strd r8, r9, [sp, #152]
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- ldrd r4, r5, [r0, #40]
- ldrd r6, r7, [r0, #48]
- ldrd r8, r9, [r0, #56]
- str r12, [sp, #160]
- str lr, [sp, #164]
- strd r4, r5, [sp, #168]
- strd r6, r7, [sp, #176]
- strd r8, r9, [sp, #184]
- # Start of loop processing a block
-L_sha512_len_neon_begin:
- # Load, Reverse and Store W
- ldr r12, [r1]
- ldr lr, [r1, #4]
- ldrd r4, r5, [r1, #8]
- ldrd r6, r7, [r1, #16]
- ldrd r8, r9, [r1, #24]
- rev r12, r12
- rev lr, lr
- rev r4, r4
- rev r5, r5
- rev r6, r6
- rev r7, r7
- rev r8, r8
- rev r9, r9
- str lr, [sp]
- str r12, [sp, #4]
- str r5, [sp, #8]
- str r4, [sp, #12]
- str r7, [sp, #16]
- str r6, [sp, #20]
- str r9, [sp, #24]
- str r8, [sp, #28]
- ldr r12, [r1, #32]
- ldr lr, [r1, #36]
- ldrd r4, r5, [r1, #40]
- ldrd r6, r7, [r1, #48]
- ldrd r8, r9, [r1, #56]
- rev r12, r12
- rev lr, lr
- rev r4, r4
- rev r5, r5
- rev r6, r6
- rev r7, r7
- rev r8, r8
- rev r9, r9
- str lr, [sp, #32]
- str r12, [sp, #36]
- str r5, [sp, #40]
- str r4, [sp, #44]
- str r7, [sp, #48]
- str r6, [sp, #52]
- str r9, [sp, #56]
- str r8, [sp, #60]
- ldr r12, [r1, #64]
- ldr lr, [r1, #68]
- ldrd r4, r5, [r1, #72]
- ldrd r6, r7, [r1, #80]
- ldrd r8, r9, [r1, #88]
- rev r12, r12
- rev lr, lr
- rev r4, r4
- rev r5, r5
- rev r6, r6
- rev r7, r7
- rev r8, r8
- rev r9, r9
- str lr, [sp, #64]
- str r12, [sp, #68]
- str r5, [sp, #72]
- str r4, [sp, #76]
- str r7, [sp, #80]
- str r6, [sp, #84]
- str r9, [sp, #88]
- str r8, [sp, #92]
- ldr r12, [r1, #96]
- ldr lr, [r1, #100]
- ldrd r4, r5, [r1, #104]
- ldrd r6, r7, [r1, #112]
- ldrd r8, r9, [r1, #120]
- rev r12, r12
- rev lr, lr
- rev r4, r4
- rev r5, r5
- rev r6, r6
- rev r7, r7
- rev r8, r8
- rev r9, r9
- str lr, [sp, #96]
- str r12, [sp, #100]
- str r5, [sp, #104]
- str r4, [sp, #108]
- str r7, [sp, #112]
- str r6, [sp, #116]
- str r9, [sp, #120]
- str r8, [sp, #124]
- # Pre-calc: b ^ c
- ldrd r8, r9, [r0, #8]
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- eor r8, r8, r12
- eor r9, r9, lr
- mov r10, #4
- # Start of 16 rounds
-L_sha512_len_neon_start:
- # Round 0
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #56]
- str lr, [r0, #60]
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- ldrd r4, r5, [r0, #40]
- ldrd r6, r7, [r0, #48]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- ldrd r6, r7, [sp]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #24]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #56]
- str lr, [r0, #60]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0]
- ldr lr, [r0, #4]
- strd r6, r7, [r0, #24]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0]
- ldrd r4, r5, [r0, #8]
- str r12, [r0, #56]
- str lr, [r0, #60]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #56]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #56]
- mov r8, r6
- mov r9, r7
- # Calc new W[0]
- ldr r12, [sp, #112]
- ldr lr, [sp, #116]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp]
- ldr lr, [sp, #4]
- ldrd r6, r7, [sp, #72]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp]
- str lr, [sp, #4]
- ldr r12, [sp, #8]
- ldr lr, [sp, #12]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp]
- ldr lr, [sp, #4]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp]
- str lr, [sp, #4]
- # Round 1
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #48]
- str lr, [r0, #52]
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- ldrd r4, r5, [r0, #32]
- ldrd r6, r7, [r0, #40]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- ldrd r6, r7, [sp, #8]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #8]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #16]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #48]
- str lr, [r0, #52]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- strd r6, r7, [r0, #16]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #56]
- ldrd r4, r5, [r0]
- str r12, [r0, #48]
- str lr, [r0, #52]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #48]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #48]
- mov r8, r6
- mov r9, r7
- # Calc new W[1]
- ldr r12, [sp, #120]
- ldr lr, [sp, #124]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #8]
- ldr lr, [sp, #12]
- ldrd r6, r7, [sp, #80]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #8]
- str lr, [sp, #12]
- ldr r12, [sp, #16]
- ldr lr, [sp, #20]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #8]
- ldr lr, [sp, #12]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #8]
- str lr, [sp, #12]
- # Round 2
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #40]
- str lr, [r0, #44]
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- ldrd r4, r5, [r0, #24]
- ldrd r6, r7, [r0, #32]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- ldrd r6, r7, [sp, #16]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #16]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #8]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #40]
- str lr, [r0, #44]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- strd r6, r7, [r0, #8]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #48]
- ldrd r4, r5, [r0, #56]
- str r12, [r0, #40]
- str lr, [r0, #44]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #40]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #40]
- mov r8, r6
- mov r9, r7
- # Calc new W[2]
- ldr r12, [sp]
- ldr lr, [sp, #4]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #16]
- ldr lr, [sp, #20]
- ldrd r6, r7, [sp, #88]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #16]
- str lr, [sp, #20]
- ldr r12, [sp, #24]
- ldr lr, [sp, #28]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #16]
- ldr lr, [sp, #20]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #16]
- str lr, [sp, #20]
- # Round 3
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #32]
- str lr, [r0, #36]
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- ldrd r4, r5, [r0, #16]
- ldrd r6, r7, [r0, #24]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- ldrd r6, r7, [sp, #24]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #24]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #32]
- str lr, [r0, #36]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- strd r6, r7, [r0]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #40]
- ldrd r4, r5, [r0, #48]
- str r12, [r0, #32]
- str lr, [r0, #36]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #32]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #32]
- mov r8, r6
- mov r9, r7
- # Calc new W[3]
- ldr r12, [sp, #8]
- ldr lr, [sp, #12]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #24]
- ldr lr, [sp, #28]
- ldrd r6, r7, [sp, #96]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #24]
- str lr, [sp, #28]
- ldr r12, [sp, #32]
- ldr lr, [sp, #36]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #24]
- ldr lr, [sp, #28]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #24]
- str lr, [sp, #28]
- # Round 4
- ldr r12, [r0]
- ldr lr, [r0, #4]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #24]
- str lr, [r0, #28]
- ldr r12, [r0]
- ldr lr, [r0, #4]
- ldrd r4, r5, [r0, #8]
- ldrd r6, r7, [r0, #16]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- ldrd r6, r7, [sp, #32]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #32]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #56]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #24]
- str lr, [r0, #28]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- strd r6, r7, [r0, #56]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #32]
- ldrd r4, r5, [r0, #40]
- str r12, [r0, #24]
- str lr, [r0, #28]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #24]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #24]
- mov r8, r6
- mov r9, r7
- # Calc new W[4]
- ldr r12, [sp, #16]
- ldr lr, [sp, #20]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #32]
- ldr lr, [sp, #36]
- ldrd r6, r7, [sp, #104]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #32]
- str lr, [sp, #36]
- ldr r12, [sp, #40]
- ldr lr, [sp, #44]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #32]
- ldr lr, [sp, #36]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #32]
- str lr, [sp, #36]
- # Round 5
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #16]
- str lr, [r0, #20]
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- ldrd r4, r5, [r0]
- ldrd r6, r7, [r0, #8]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- ldrd r6, r7, [sp, #40]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #40]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #48]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #16]
- str lr, [r0, #20]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- strd r6, r7, [r0, #48]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #24]
- ldrd r4, r5, [r0, #32]
- str r12, [r0, #16]
- str lr, [r0, #20]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #16]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #16]
- mov r8, r6
- mov r9, r7
- # Calc new W[5]
- ldr r12, [sp, #24]
- ldr lr, [sp, #28]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #40]
- ldr lr, [sp, #44]
- ldrd r6, r7, [sp, #112]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #40]
- str lr, [sp, #44]
- ldr r12, [sp, #48]
- ldr lr, [sp, #52]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #40]
- ldr lr, [sp, #44]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #40]
- str lr, [sp, #44]
- # Round 6
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #8]
- str lr, [r0, #12]
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- ldrd r4, r5, [r0, #56]
- ldrd r6, r7, [r0]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- ldrd r6, r7, [sp, #48]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #48]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #40]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #8]
- str lr, [r0, #12]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- strd r6, r7, [r0, #40]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #16]
- ldrd r4, r5, [r0, #24]
- str r12, [r0, #8]
- str lr, [r0, #12]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #8]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #8]
- mov r8, r6
- mov r9, r7
- # Calc new W[6]
- ldr r12, [sp, #32]
- ldr lr, [sp, #36]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #48]
- ldr lr, [sp, #52]
- ldrd r6, r7, [sp, #120]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #48]
- str lr, [sp, #52]
- ldr r12, [sp, #56]
- ldr lr, [sp, #60]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #48]
- ldr lr, [sp, #52]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #48]
- str lr, [sp, #52]
- # Round 7
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0]
- ldr lr, [r0, #4]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0]
- str lr, [r0, #4]
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- ldrd r4, r5, [r0, #48]
- ldrd r6, r7, [r0, #56]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0]
- ldr lr, [r0, #4]
- ldrd r6, r7, [sp, #56]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #56]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #32]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0]
- str lr, [r0, #4]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- strd r6, r7, [r0, #32]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0]
- ldr lr, [r0, #4]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #8]
- ldrd r4, r5, [r0, #16]
- str r12, [r0]
- str lr, [r0, #4]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0]
- mov r8, r6
- mov r9, r7
- # Calc new W[7]
- ldr r12, [sp, #40]
- ldr lr, [sp, #44]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #56]
- ldr lr, [sp, #60]
- ldrd r6, r7, [sp]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #56]
- str lr, [sp, #60]
- ldr r12, [sp, #64]
- ldr lr, [sp, #68]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #56]
- ldr lr, [sp, #60]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #56]
- str lr, [sp, #60]
- # Round 8
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #56]
- str lr, [r0, #60]
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- ldrd r4, r5, [r0, #40]
- ldrd r6, r7, [r0, #48]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- ldrd r6, r7, [sp, #64]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #64]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #24]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #56]
- str lr, [r0, #60]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0]
- ldr lr, [r0, #4]
- strd r6, r7, [r0, #24]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0]
- ldrd r4, r5, [r0, #8]
- str r12, [r0, #56]
- str lr, [r0, #60]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #56]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #56]
- mov r8, r6
- mov r9, r7
- # Calc new W[8]
- ldr r12, [sp, #48]
- ldr lr, [sp, #52]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #64]
- ldr lr, [sp, #68]
- ldrd r6, r7, [sp, #8]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #64]
- str lr, [sp, #68]
- ldr r12, [sp, #72]
- ldr lr, [sp, #76]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #64]
- ldr lr, [sp, #68]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #64]
- str lr, [sp, #68]
- # Round 9
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #48]
- str lr, [r0, #52]
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- ldrd r4, r5, [r0, #32]
- ldrd r6, r7, [r0, #40]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- ldrd r6, r7, [sp, #72]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #72]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #16]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #48]
- str lr, [r0, #52]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- strd r6, r7, [r0, #16]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #56]
- ldrd r4, r5, [r0]
- str r12, [r0, #48]
- str lr, [r0, #52]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #48]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #48]
- mov r8, r6
- mov r9, r7
- # Calc new W[9]
- ldr r12, [sp, #56]
- ldr lr, [sp, #60]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #72]
- ldr lr, [sp, #76]
- ldrd r6, r7, [sp, #16]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #72]
- str lr, [sp, #76]
- ldr r12, [sp, #80]
- ldr lr, [sp, #84]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #72]
- ldr lr, [sp, #76]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #72]
- str lr, [sp, #76]
- # Round 10
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #40]
- str lr, [r0, #44]
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- ldrd r4, r5, [r0, #24]
- ldrd r6, r7, [r0, #32]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- ldrd r6, r7, [sp, #80]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #80]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #8]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #40]
- str lr, [r0, #44]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- strd r6, r7, [r0, #8]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #48]
- ldrd r4, r5, [r0, #56]
- str r12, [r0, #40]
- str lr, [r0, #44]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #40]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #40]
- mov r8, r6
- mov r9, r7
- # Calc new W[10]
- ldr r12, [sp, #64]
- ldr lr, [sp, #68]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #80]
- ldr lr, [sp, #84]
- ldrd r6, r7, [sp, #24]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #80]
- str lr, [sp, #84]
- ldr r12, [sp, #88]
- ldr lr, [sp, #92]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #80]
- ldr lr, [sp, #84]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #80]
- str lr, [sp, #84]
- # Round 11
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #32]
- str lr, [r0, #36]
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- ldrd r4, r5, [r0, #16]
- ldrd r6, r7, [r0, #24]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- ldrd r6, r7, [sp, #88]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #88]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #32]
- str lr, [r0, #36]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- strd r6, r7, [r0]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #40]
- ldrd r4, r5, [r0, #48]
- str r12, [r0, #32]
- str lr, [r0, #36]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #32]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #32]
- mov r8, r6
- mov r9, r7
- # Calc new W[11]
- ldr r12, [sp, #72]
- ldr lr, [sp, #76]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #88]
- ldr lr, [sp, #92]
- ldrd r6, r7, [sp, #32]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #88]
- str lr, [sp, #92]
- ldr r12, [sp, #96]
- ldr lr, [sp, #100]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #88]
- ldr lr, [sp, #92]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #88]
- str lr, [sp, #92]
- # Round 12
- ldr r12, [r0]
- ldr lr, [r0, #4]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #24]
- str lr, [r0, #28]
- ldr r12, [r0]
- ldr lr, [r0, #4]
- ldrd r4, r5, [r0, #8]
- ldrd r6, r7, [r0, #16]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- ldrd r6, r7, [sp, #96]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #96]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #56]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #24]
- str lr, [r0, #28]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- strd r6, r7, [r0, #56]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #32]
- ldrd r4, r5, [r0, #40]
- str r12, [r0, #24]
- str lr, [r0, #28]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #24]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #24]
- mov r8, r6
- mov r9, r7
- # Calc new W[12]
- ldr r12, [sp, #80]
- ldr lr, [sp, #84]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #96]
- ldr lr, [sp, #100]
- ldrd r6, r7, [sp, #40]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #96]
- str lr, [sp, #100]
- ldr r12, [sp, #104]
- ldr lr, [sp, #108]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #96]
- ldr lr, [sp, #100]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #96]
- str lr, [sp, #100]
- # Round 13
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #16]
- str lr, [r0, #20]
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- ldrd r4, r5, [r0]
- ldrd r6, r7, [r0, #8]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- ldrd r6, r7, [sp, #104]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #104]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #48]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #16]
- str lr, [r0, #20]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- strd r6, r7, [r0, #48]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #24]
- ldrd r4, r5, [r0, #32]
- str r12, [r0, #16]
- str lr, [r0, #20]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #16]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #16]
- mov r8, r6
- mov r9, r7
- # Calc new W[13]
- ldr r12, [sp, #88]
- ldr lr, [sp, #92]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #104]
- ldr lr, [sp, #108]
- ldrd r6, r7, [sp, #48]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #104]
- str lr, [sp, #108]
- ldr r12, [sp, #112]
- ldr lr, [sp, #116]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #104]
- ldr lr, [sp, #108]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #104]
- str lr, [sp, #108]
- # Round 14
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #8]
- str lr, [r0, #12]
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- ldrd r4, r5, [r0, #56]
- ldrd r6, r7, [r0]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- ldrd r6, r7, [sp, #112]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #112]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #40]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #8]
- str lr, [r0, #12]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- strd r6, r7, [r0, #40]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #16]
- ldrd r4, r5, [r0, #24]
- str r12, [r0, #8]
- str lr, [r0, #12]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #8]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #8]
- mov r8, r6
- mov r9, r7
- # Calc new W[14]
- ldr r12, [sp, #96]
- ldr lr, [sp, #100]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #112]
- ldr lr, [sp, #116]
- ldrd r6, r7, [sp, #56]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #112]
- str lr, [sp, #116]
- ldr r12, [sp, #120]
- ldr lr, [sp, #124]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #112]
- ldr lr, [sp, #116]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #112]
- str lr, [sp, #116]
- # Round 15
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0]
- ldr lr, [r0, #4]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0]
- str lr, [r0, #4]
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- ldrd r4, r5, [r0, #48]
- ldrd r6, r7, [r0, #56]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0]
- ldr lr, [r0, #4]
- ldrd r6, r7, [sp, #120]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #120]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #32]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0]
- str lr, [r0, #4]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- strd r6, r7, [r0, #32]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0]
- ldr lr, [r0, #4]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #8]
- ldrd r4, r5, [r0, #16]
- str r12, [r0]
- str lr, [r0, #4]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0]
- mov r8, r6
- mov r9, r7
- # Calc new W[15]
- ldr r12, [sp, #104]
- ldr lr, [sp, #108]
- lsrs r4, r12, #19
- lsrs r5, lr, #19
- orr r5, r5, r12, lsl #13
- orr r4, r4, lr, lsl #13
- lsls r6, r12, #3
- lsls r7, lr, #3
- orr r7, r7, r12, lsr #29
- orr r6, r6, lr, lsr #29
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #6
- lsrs r7, lr, #6
- orr r6, r6, lr, lsl #26
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #120]
- ldr lr, [sp, #124]
- ldrd r6, r7, [sp, #64]
- adds r12, r12, r4
- adc lr, lr, r5
- adds r12, r12, r6
- adc lr, lr, r7
- str r12, [sp, #120]
- str lr, [sp, #124]
- ldr r12, [sp]
- ldr lr, [sp, #4]
- lsrs r4, r12, #1
- lsrs r5, lr, #1
- orr r5, r5, r12, lsl #31
- orr r4, r4, lr, lsl #31
- lsrs r6, r12, #8
- lsrs r7, lr, #8
- orr r7, r7, r12, lsl #24
- orr r6, r6, lr, lsl #24
- eor r5, r5, r7
- eor r4, r4, r6
- lsrs r6, r12, #7
- lsrs r7, lr, #7
- orr r6, r6, lr, lsl #25
- eor r5, r5, r7
- eor r4, r4, r6
- ldr r12, [sp, #120]
- ldr lr, [sp, #124]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [sp, #120]
- str lr, [sp, #124]
- add r3, r3, #0x80
- subs r10, r10, #1
- bne L_sha512_len_neon_start
- # Round 0
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #56]
- str lr, [r0, #60]
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- ldrd r4, r5, [r0, #40]
- ldrd r6, r7, [r0, #48]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- ldrd r6, r7, [sp]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #24]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #56]
- str lr, [r0, #60]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0]
- ldr lr, [r0, #4]
- strd r6, r7, [r0, #24]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0]
- ldrd r4, r5, [r0, #8]
- str r12, [r0, #56]
- str lr, [r0, #60]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #56]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #56]
- mov r8, r6
- mov r9, r7
- # Round 1
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #48]
- str lr, [r0, #52]
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- ldrd r4, r5, [r0, #32]
- ldrd r6, r7, [r0, #40]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- ldrd r6, r7, [sp, #8]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #8]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #16]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #48]
- str lr, [r0, #52]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- strd r6, r7, [r0, #16]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #56]
- ldrd r4, r5, [r0]
- str r12, [r0, #48]
- str lr, [r0, #52]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #48]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #48]
- mov r8, r6
- mov r9, r7
- # Round 2
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #40]
- str lr, [r0, #44]
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- ldrd r4, r5, [r0, #24]
- ldrd r6, r7, [r0, #32]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- ldrd r6, r7, [sp, #16]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #16]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #8]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #40]
- str lr, [r0, #44]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- strd r6, r7, [r0, #8]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #48]
- ldrd r4, r5, [r0, #56]
- str r12, [r0, #40]
- str lr, [r0, #44]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #40]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #40]
- mov r8, r6
- mov r9, r7
- # Round 3
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #32]
- str lr, [r0, #36]
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- ldrd r4, r5, [r0, #16]
- ldrd r6, r7, [r0, #24]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- ldrd r6, r7, [sp, #24]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #24]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #32]
- str lr, [r0, #36]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- strd r6, r7, [r0]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #40]
- ldrd r4, r5, [r0, #48]
- str r12, [r0, #32]
- str lr, [r0, #36]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #32]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #32]
- mov r8, r6
- mov r9, r7
- # Round 4
- ldr r12, [r0]
- ldr lr, [r0, #4]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #24]
- str lr, [r0, #28]
- ldr r12, [r0]
- ldr lr, [r0, #4]
- ldrd r4, r5, [r0, #8]
- ldrd r6, r7, [r0, #16]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- ldrd r6, r7, [sp, #32]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #32]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #56]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #24]
- str lr, [r0, #28]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- strd r6, r7, [r0, #56]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #32]
- ldrd r4, r5, [r0, #40]
- str r12, [r0, #24]
- str lr, [r0, #28]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #24]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #24]
- mov r8, r6
- mov r9, r7
- # Round 5
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #16]
- str lr, [r0, #20]
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- ldrd r4, r5, [r0]
- ldrd r6, r7, [r0, #8]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- ldrd r6, r7, [sp, #40]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #40]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #48]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #16]
- str lr, [r0, #20]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- strd r6, r7, [r0, #48]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #24]
- ldrd r4, r5, [r0, #32]
- str r12, [r0, #16]
- str lr, [r0, #20]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #16]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #16]
- mov r8, r6
- mov r9, r7
- # Round 6
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #8]
- str lr, [r0, #12]
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- ldrd r4, r5, [r0, #56]
- ldrd r6, r7, [r0]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- ldrd r6, r7, [sp, #48]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #48]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #40]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #8]
- str lr, [r0, #12]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- strd r6, r7, [r0, #40]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #16]
- ldrd r4, r5, [r0, #24]
- str r12, [r0, #8]
- str lr, [r0, #12]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #8]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #8]
- mov r8, r6
- mov r9, r7
- # Round 7
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0]
- ldr lr, [r0, #4]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0]
- str lr, [r0, #4]
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- ldrd r4, r5, [r0, #48]
- ldrd r6, r7, [r0, #56]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0]
- ldr lr, [r0, #4]
- ldrd r6, r7, [sp, #56]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #56]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #32]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0]
- str lr, [r0, #4]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- strd r6, r7, [r0, #32]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0]
- ldr lr, [r0, #4]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #8]
- ldrd r4, r5, [r0, #16]
- str r12, [r0]
- str lr, [r0, #4]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0]
- mov r8, r6
- mov r9, r7
- # Round 8
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #56]
- str lr, [r0, #60]
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- ldrd r4, r5, [r0, #40]
- ldrd r6, r7, [r0, #48]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- ldrd r6, r7, [sp, #64]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #64]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #24]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #56]
- str lr, [r0, #60]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0]
- ldr lr, [r0, #4]
- strd r6, r7, [r0, #24]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0]
- ldrd r4, r5, [r0, #8]
- str r12, [r0, #56]
- str lr, [r0, #60]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #56]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #56]
- mov r8, r6
- mov r9, r7
- # Round 9
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #48]
- str lr, [r0, #52]
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- ldrd r4, r5, [r0, #32]
- ldrd r6, r7, [r0, #40]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- ldrd r6, r7, [sp, #72]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #72]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #16]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #48]
- str lr, [r0, #52]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- strd r6, r7, [r0, #16]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #56]
- ldrd r4, r5, [r0]
- str r12, [r0, #48]
- str lr, [r0, #52]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #48]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #48]
- mov r8, r6
- mov r9, r7
- # Round 10
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #40]
- str lr, [r0, #44]
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- ldrd r4, r5, [r0, #24]
- ldrd r6, r7, [r0, #32]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- ldrd r6, r7, [sp, #80]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #80]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #8]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #40]
- str lr, [r0, #44]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- strd r6, r7, [r0, #8]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #48]
- ldrd r4, r5, [r0, #56]
- str r12, [r0, #40]
- str lr, [r0, #44]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #40]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #40]
- mov r8, r6
- mov r9, r7
- # Round 11
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #32]
- str lr, [r0, #36]
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- ldrd r4, r5, [r0, #16]
- ldrd r6, r7, [r0, #24]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- ldrd r6, r7, [sp, #88]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #88]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #32]
- str lr, [r0, #36]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- strd r6, r7, [r0]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #40]
- ldrd r4, r5, [r0, #48]
- str r12, [r0, #32]
- str lr, [r0, #36]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #32]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #32]
- mov r8, r6
- mov r9, r7
- # Round 12
- ldr r12, [r0]
- ldr lr, [r0, #4]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #24]
- str lr, [r0, #28]
- ldr r12, [r0]
- ldr lr, [r0, #4]
- ldrd r4, r5, [r0, #8]
- ldrd r6, r7, [r0, #16]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- ldrd r6, r7, [sp, #96]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #96]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #56]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #24]
- str lr, [r0, #28]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- strd r6, r7, [r0, #56]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #32]
- ldrd r4, r5, [r0, #40]
- str r12, [r0, #24]
- str lr, [r0, #28]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #24]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #24]
- mov r8, r6
- mov r9, r7
- # Round 13
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #16]
- str lr, [r0, #20]
- ldr r12, [r0, #56]
- ldr lr, [r0, #60]
- ldrd r4, r5, [r0]
- ldrd r6, r7, [r0, #8]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- ldrd r6, r7, [sp, #104]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #104]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #48]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #16]
- str lr, [r0, #20]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #24]
- ldr lr, [r0, #28]
- strd r6, r7, [r0, #48]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #24]
- ldrd r4, r5, [r0, #32]
- str r12, [r0, #16]
- str lr, [r0, #20]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #16]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #16]
- mov r8, r6
- mov r9, r7
- # Round 14
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #8]
- str lr, [r0, #12]
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- ldrd r4, r5, [r0, #56]
- ldrd r6, r7, [r0]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- ldrd r6, r7, [sp, #112]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #112]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #40]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0, #8]
- str lr, [r0, #12]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- strd r6, r7, [r0, #40]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #16]
- ldrd r4, r5, [r0, #24]
- str r12, [r0, #8]
- str lr, [r0, #12]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0, #8]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0, #8]
- mov r8, r6
- mov r9, r7
- # Round 15
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- lsrs r4, r12, #14
- lsrs r5, lr, #14
- orr r5, r5, r12, lsl #18
- orr r4, r4, lr, lsl #18
- lsrs r6, r12, #18
- lsrs r7, lr, #18
- orr r7, r7, r12, lsl #14
- orr r6, r6, lr, lsl #14
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #23
- lsls r7, lr, #23
- orr r7, r7, r12, lsr #9
- orr r6, r6, lr, lsr #9
- ldr r12, [r0]
- ldr lr, [r0, #4]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0]
- str lr, [r0, #4]
- ldr r12, [r0, #40]
- ldr lr, [r0, #44]
- ldrd r4, r5, [r0, #48]
- ldrd r6, r7, [r0, #56]
- eor r4, r4, r6
- eor r5, r5, r7
- and r4, r4, r12
- and r5, r5, lr
- eor r4, r4, r6
- eor r5, r5, r7
- ldr r12, [r0]
- ldr lr, [r0, #4]
- ldrd r6, r7, [sp, #120]
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r4, r5, [r3, #120]
- adds r12, r12, r6
- adc lr, lr, r7
- ldrd r6, r7, [r0, #32]
- adds r12, r12, r4
- adc lr, lr, r5
- str r12, [r0]
- str lr, [r0, #4]
- adds r6, r6, r12
- adc r7, r7, lr
- ldr r12, [r0, #8]
- ldr lr, [r0, #12]
- strd r6, r7, [r0, #32]
- lsrs r4, r12, #28
- lsrs r5, lr, #28
- orr r5, r5, r12, lsl #4
- orr r4, r4, lr, lsl #4
- lsls r6, r12, #30
- lsls r7, lr, #30
- orr r7, r7, r12, lsr #2
- orr r6, r6, lr, lsr #2
- eor r4, r4, r6
- eor r5, r5, r7
- lsls r6, r12, #25
- lsls r7, lr, #25
- orr r7, r7, r12, lsr #7
- orr r6, r6, lr, lsr #7
- ldr r12, [r0]
- ldr lr, [r0, #4]
- eor r4, r4, r6
- eor r5, r5, r7
- adds r12, r12, r4
- adc lr, lr, r5
- ldrd r6, r7, [r0, #8]
- ldrd r4, r5, [r0, #16]
- str r12, [r0]
- str lr, [r0, #4]
- eor r6, r6, r4
- eor r7, r7, r5
- and r8, r8, r6
- and r9, r9, r7
- eor r8, r8, r4
- eor r9, r9, r5
- ldrd r4, r5, [r0]
- adds r4, r4, r8
- adc r5, r5, r9
- strd r4, r5, [r0]
- mov r8, r6
- mov r9, r7
- # Add in digest from start
- ldr r12, [r0]
- ldr lr, [r0, #4]
- ldrd r4, r5, [r0, #8]
- ldrd r6, r7, [sp, #128]
- ldrd r8, r9, [sp, #136]
- adds r12, r12, r6
- adc lr, lr, r7
- adds r4, r4, r8
- adc r5, r5, r9
- str r12, [r0]
- str lr, [r0, #4]
- strd r4, r5, [r0, #8]
- str r12, [sp, #128]
- str lr, [sp, #132]
- strd r4, r5, [sp, #136]
- ldr r12, [r0, #16]
- ldr lr, [r0, #20]
- ldrd r4, r5, [r0, #24]
- ldrd r6, r7, [sp, #144]
- ldrd r8, r9, [sp, #152]
- adds r12, r12, r6
- adc lr, lr, r7
- adds r4, r4, r8
- adc r5, r5, r9
- str r12, [r0, #16]
- str lr, [r0, #20]
- strd r4, r5, [r0, #24]
- str r12, [sp, #144]
- str lr, [sp, #148]
- strd r4, r5, [sp, #152]
- ldr r12, [r0, #32]
- ldr lr, [r0, #36]
- ldrd r4, r5, [r0, #40]
- ldrd r6, r7, [sp, #160]
- ldrd r8, r9, [sp, #168]
- adds r12, r12, r6
- adc lr, lr, r7
- adds r4, r4, r8
- adc r5, r5, r9
- str r12, [r0, #32]
- str lr, [r0, #36]
- strd r4, r5, [r0, #40]
- str r12, [sp, #160]
- str lr, [sp, #164]
- strd r4, r5, [sp, #168]
- ldr r12, [r0, #48]
- ldr lr, [r0, #52]
- ldrd r4, r5, [r0, #56]
- ldrd r6, r7, [sp, #176]
- ldrd r8, r9, [sp, #184]
- adds r12, r12, r6
- adc lr, lr, r7
- adds r4, r4, r8
- adc r5, r5, r9
- str r12, [r0, #48]
- str lr, [r0, #52]
- strd r4, r5, [r0, #56]
- str r12, [sp, #176]
- str lr, [sp, #180]
- strd r4, r5, [sp, #184]
- subs r2, r2, #0x80
- sub r3, r3, #0x200
- add r1, r1, #0x80
- bne L_sha512_len_neon_begin
- eor r0, r0, r0
- add sp, sp, #0xc0
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
- .size Transform_Sha512_Len,.-Transform_Sha512_Len
-#endif /* WOLFSSL_ARMASM_NO_NEON */
-#ifndef WOLFSSL_ARMASM_NO_NEON
- .text
- .type L_SHA512_transform_neon_len_k, %object
- .size L_SHA512_transform_neon_len_k, 640
- .align 3
-L_SHA512_transform_neon_len_k:
- .word 0xd728ae22
- .word 0x428a2f98
- .word 0x23ef65cd
- .word 0x71374491
- .word 0xec4d3b2f
- .word 0xb5c0fbcf
- .word 0x8189dbbc
- .word 0xe9b5dba5
- .word 0xf348b538
- .word 0x3956c25b
- .word 0xb605d019
- .word 0x59f111f1
- .word 0xaf194f9b
- .word 0x923f82a4
- .word 0xda6d8118
- .word 0xab1c5ed5
- .word 0xa3030242
- .word 0xd807aa98
- .word 0x45706fbe
- .word 0x12835b01
- .word 0x4ee4b28c
- .word 0x243185be
- .word 0xd5ffb4e2
- .word 0x550c7dc3
- .word 0xf27b896f
- .word 0x72be5d74
- .word 0x3b1696b1
- .word 0x80deb1fe
- .word 0x25c71235
- .word 0x9bdc06a7
- .word 0xcf692694
- .word 0xc19bf174
- .word 0x9ef14ad2
- .word 0xe49b69c1
- .word 0x384f25e3
- .word 0xefbe4786
- .word 0x8b8cd5b5
- .word 0xfc19dc6
- .word 0x77ac9c65
- .word 0x240ca1cc
- .word 0x592b0275
- .word 0x2de92c6f
- .word 0x6ea6e483
- .word 0x4a7484aa
- .word 0xbd41fbd4
- .word 0x5cb0a9dc
- .word 0x831153b5
- .word 0x76f988da
- .word 0xee66dfab
- .word 0x983e5152
- .word 0x2db43210
- .word 0xa831c66d
- .word 0x98fb213f
- .word 0xb00327c8
- .word 0xbeef0ee4
- .word 0xbf597fc7
- .word 0x3da88fc2
- .word 0xc6e00bf3
- .word 0x930aa725
- .word 0xd5a79147
- .word 0xe003826f
- .word 0x6ca6351
- .word 0xa0e6e70
- .word 0x14292967
- .word 0x46d22ffc
- .word 0x27b70a85
- .word 0x5c26c926
- .word 0x2e1b2138
- .word 0x5ac42aed
- .word 0x4d2c6dfc
- .word 0x9d95b3df
- .word 0x53380d13
- .word 0x8baf63de
- .word 0x650a7354
- .word 0x3c77b2a8
- .word 0x766a0abb
- .word 0x47edaee6
- .word 0x81c2c92e
- .word 0x1482353b
- .word 0x92722c85
- .word 0x4cf10364
- .word 0xa2bfe8a1
- .word 0xbc423001
- .word 0xa81a664b
- .word 0xd0f89791
- .word 0xc24b8b70
- .word 0x654be30
- .word 0xc76c51a3
- .word 0xd6ef5218
- .word 0xd192e819
- .word 0x5565a910
- .word 0xd6990624
- .word 0x5771202a
- .word 0xf40e3585
- .word 0x32bbd1b8
- .word 0x106aa070
- .word 0xb8d2d0c8
- .word 0x19a4c116
- .word 0x5141ab53
- .word 0x1e376c08
- .word 0xdf8eeb99
- .word 0x2748774c
- .word 0xe19b48a8
- .word 0x34b0bcb5
- .word 0xc5c95a63
- .word 0x391c0cb3
- .word 0xe3418acb
- .word 0x4ed8aa4a
- .word 0x7763e373
- .word 0x5b9cca4f
- .word 0xd6b2b8a3
- .word 0x682e6ff3
- .word 0x5defb2fc
- .word 0x748f82ee
- .word 0x43172f60
- .word 0x78a5636f
- .word 0xa1f0ab72
- .word 0x84c87814
- .word 0x1a6439ec
- .word 0x8cc70208
- .word 0x23631e28
- .word 0x90befffa
- .word 0xde82bde9
- .word 0xa4506ceb
- .word 0xb2c67915
- .word 0xbef9a3f7
- .word 0xe372532b
- .word 0xc67178f2
- .word 0xea26619c
- .word 0xca273ece
- .word 0x21c0c207
- .word 0xd186b8c7
- .word 0xcde0eb1e
- .word 0xeada7dd6
- .word 0xee6ed178
- .word 0xf57d4f7f
- .word 0x72176fba
- .word 0x6f067aa
- .word 0xa2c898a6
- .word 0xa637dc5
- .word 0xbef90dae
- .word 0x113f9804
- .word 0x131c471b
- .word 0x1b710b35
- .word 0x23047d84
- .word 0x28db77f5
- .word 0x40c72493
- .word 0x32caab7b
- .word 0x15c9bebc
- .word 0x3c9ebe0a
- .word 0x9c100d4c
- .word 0x431d67c4
- .word 0xcb3e42b6
- .word 0x4cc5d4be
- .word 0xfc657e2a
- .word 0x597f299c
- .word 0x3ad6faec
- .word 0x5fcb6fab
- .word 0x4a475817
- .word 0x6c44198c
- .text
- .align 2
- .globl Transform_Sha512_Len
- .type Transform_Sha512_Len, %function
-Transform_Sha512_Len:
- vpush {d8-d15}
- # Load digest into working vars
- vldm.64 r0, {d0-d7}
- # Start of loop processing a block
-L_sha512_len_neon_begin:
- # Load W
- vldm.64 r1!, {d16-d31}
- vrev64.8 q8, q8
- vrev64.8 q9, q9
- vrev64.8 q10, q10
- vrev64.8 q11, q11
- vrev64.8 q12, q12
- vrev64.8 q13, q13
- vrev64.8 q14, q14
- vrev64.8 q15, q15
- adr r3, L_SHA512_transform_neon_len_k
- mov r12, #4
- # Start of 16 rounds
-L_sha512_len_neon_start:
- # Round 0
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d4, #50
- vsri.u64 d8, d4, #14
- vshl.u64 d9, d0, #36
- vsri.u64 d9, d0, #28
- vshl.u64 d10, d4, #46
- vsri.u64 d10, d4, #18
- vshl.u64 d11, d0, #30
- vsri.u64 d11, d0, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d4, #23
- vsri.u64 d10, d4, #41
- vshl.u64 d11, d0, #25
- vsri.u64 d11, d0, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d7, d8
- vadd.i64 d12, d16
- vmov d8, d4
- veor d10, d1, d2
- vadd.i64 d7, d12
- vbsl d8, d5, d6
- vbsl d10, d0, d2
- vadd.i64 d7, d8
- vadd.i64 d10, d9
- vadd.i64 d3, d7
- vadd.i64 d7, d10
- # Round 1
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d3, #50
- vsri.u64 d8, d3, #14
- vshl.u64 d9, d7, #36
- vsri.u64 d9, d7, #28
- vshl.u64 d10, d3, #46
- vsri.u64 d10, d3, #18
- vshl.u64 d11, d7, #30
- vsri.u64 d11, d7, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d3, #23
- vsri.u64 d10, d3, #41
- vshl.u64 d11, d7, #25
- vsri.u64 d11, d7, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d6, d8
- vadd.i64 d12, d17
- vmov d8, d3
- veor d10, d0, d1
- vadd.i64 d6, d12
- vbsl d8, d4, d5
- vbsl d10, d7, d1
- vadd.i64 d6, d8
- vadd.i64 d10, d9
- vadd.i64 d2, d6
- vadd.i64 d6, d10
- # Calc new W[0]-W[1]
- vext.8 q6, q8, q9, #8
- vshl.u64 q4, q15, #45
- vsri.u64 q4, q15, #19
- vshl.u64 q5, q15, #3
- vsri.u64 q5, q15, #61
- veor q5, q4
- vshr.u64 q4, q15, #6
- veor q5, q4
- vadd.i64 q8, q5
- vext.8 q7, q12, q13, #8
- vadd.i64 q8, q7
- vshl.u64 q4, q6, #63
- vsri.u64 q4, q6, #1
- vshl.u64 q5, q6, #56
- vsri.u64 q5, q6, #8
- veor q5, q4
- vshr.u64 q6, #7
- veor q5, q6
- vadd.i64 q8, q5
- # Round 2
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d2, #50
- vsri.u64 d8, d2, #14
- vshl.u64 d9, d6, #36
- vsri.u64 d9, d6, #28
- vshl.u64 d10, d2, #46
- vsri.u64 d10, d2, #18
- vshl.u64 d11, d6, #30
- vsri.u64 d11, d6, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d2, #23
- vsri.u64 d10, d2, #41
- vshl.u64 d11, d6, #25
- vsri.u64 d11, d6, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d5, d8
- vadd.i64 d12, d18
- vmov d8, d2
- veor d10, d7, d0
- vadd.i64 d5, d12
- vbsl d8, d3, d4
- vbsl d10, d6, d0
- vadd.i64 d5, d8
- vadd.i64 d10, d9
- vadd.i64 d1, d5
- vadd.i64 d5, d10
- # Round 3
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d1, #50
- vsri.u64 d8, d1, #14
- vshl.u64 d9, d5, #36
- vsri.u64 d9, d5, #28
- vshl.u64 d10, d1, #46
- vsri.u64 d10, d1, #18
- vshl.u64 d11, d5, #30
- vsri.u64 d11, d5, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d1, #23
- vsri.u64 d10, d1, #41
- vshl.u64 d11, d5, #25
- vsri.u64 d11, d5, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d4, d8
- vadd.i64 d12, d19
- vmov d8, d1
- veor d10, d6, d7
- vadd.i64 d4, d12
- vbsl d8, d2, d3
- vbsl d10, d5, d7
- vadd.i64 d4, d8
- vadd.i64 d10, d9
- vadd.i64 d0, d4
- vadd.i64 d4, d10
- # Calc new W[2]-W[3]
- vext.8 q6, q9, q10, #8
- vshl.u64 q4, q8, #45
- vsri.u64 q4, q8, #19
- vshl.u64 q5, q8, #3
- vsri.u64 q5, q8, #61
- veor q5, q4
- vshr.u64 q4, q8, #6
- veor q5, q4
- vadd.i64 q9, q5
- vext.8 q7, q13, q14, #8
- vadd.i64 q9, q7
- vshl.u64 q4, q6, #63
- vsri.u64 q4, q6, #1
- vshl.u64 q5, q6, #56
- vsri.u64 q5, q6, #8
- veor q5, q4
- vshr.u64 q6, #7
- veor q5, q6
- vadd.i64 q9, q5
- # Round 4
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d0, #50
- vsri.u64 d8, d0, #14
- vshl.u64 d9, d4, #36
- vsri.u64 d9, d4, #28
- vshl.u64 d10, d0, #46
- vsri.u64 d10, d0, #18
- vshl.u64 d11, d4, #30
- vsri.u64 d11, d4, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d0, #23
- vsri.u64 d10, d0, #41
- vshl.u64 d11, d4, #25
- vsri.u64 d11, d4, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d3, d8
- vadd.i64 d12, d20
- vmov d8, d0
- veor d10, d5, d6
- vadd.i64 d3, d12
- vbsl d8, d1, d2
- vbsl d10, d4, d6
- vadd.i64 d3, d8
- vadd.i64 d10, d9
- vadd.i64 d7, d3
- vadd.i64 d3, d10
- # Round 5
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d7, #50
- vsri.u64 d8, d7, #14
- vshl.u64 d9, d3, #36
- vsri.u64 d9, d3, #28
- vshl.u64 d10, d7, #46
- vsri.u64 d10, d7, #18
- vshl.u64 d11, d3, #30
- vsri.u64 d11, d3, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d7, #23
- vsri.u64 d10, d7, #41
- vshl.u64 d11, d3, #25
- vsri.u64 d11, d3, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d2, d8
- vadd.i64 d12, d21
- vmov d8, d7
- veor d10, d4, d5
- vadd.i64 d2, d12
- vbsl d8, d0, d1
- vbsl d10, d3, d5
- vadd.i64 d2, d8
- vadd.i64 d10, d9
- vadd.i64 d6, d2
- vadd.i64 d2, d10
- # Calc new W[4]-W[5]
- vext.8 q6, q10, q11, #8
- vshl.u64 q4, q9, #45
- vsri.u64 q4, q9, #19
- vshl.u64 q5, q9, #3
- vsri.u64 q5, q9, #61
- veor q5, q4
- vshr.u64 q4, q9, #6
- veor q5, q4
- vadd.i64 q10, q5
- vext.8 q7, q14, q15, #8
- vadd.i64 q10, q7
- vshl.u64 q4, q6, #63
- vsri.u64 q4, q6, #1
- vshl.u64 q5, q6, #56
- vsri.u64 q5, q6, #8
- veor q5, q4
- vshr.u64 q6, #7
- veor q5, q6
- vadd.i64 q10, q5
- # Round 6
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d6, #50
- vsri.u64 d8, d6, #14
- vshl.u64 d9, d2, #36
- vsri.u64 d9, d2, #28
- vshl.u64 d10, d6, #46
- vsri.u64 d10, d6, #18
- vshl.u64 d11, d2, #30
- vsri.u64 d11, d2, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d6, #23
- vsri.u64 d10, d6, #41
- vshl.u64 d11, d2, #25
- vsri.u64 d11, d2, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d1, d8
- vadd.i64 d12, d22
- vmov d8, d6
- veor d10, d3, d4
- vadd.i64 d1, d12
- vbsl d8, d7, d0
- vbsl d10, d2, d4
- vadd.i64 d1, d8
- vadd.i64 d10, d9
- vadd.i64 d5, d1
- vadd.i64 d1, d10
- # Round 7
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d5, #50
- vsri.u64 d8, d5, #14
- vshl.u64 d9, d1, #36
- vsri.u64 d9, d1, #28
- vshl.u64 d10, d5, #46
- vsri.u64 d10, d5, #18
- vshl.u64 d11, d1, #30
- vsri.u64 d11, d1, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d5, #23
- vsri.u64 d10, d5, #41
- vshl.u64 d11, d1, #25
- vsri.u64 d11, d1, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d0, d8
- vadd.i64 d12, d23
- vmov d8, d5
- veor d10, d2, d3
- vadd.i64 d0, d12
- vbsl d8, d6, d7
- vbsl d10, d1, d3
- vadd.i64 d0, d8
- vadd.i64 d10, d9
- vadd.i64 d4, d0
- vadd.i64 d0, d10
- # Calc new W[6]-W[7]
- vext.8 q6, q11, q12, #8
- vshl.u64 q4, q10, #45
- vsri.u64 q4, q10, #19
- vshl.u64 q5, q10, #3
- vsri.u64 q5, q10, #61
- veor q5, q4
- vshr.u64 q4, q10, #6
- veor q5, q4
- vadd.i64 q11, q5
- vext.8 q7, q15, q8, #8
- vadd.i64 q11, q7
- vshl.u64 q4, q6, #63
- vsri.u64 q4, q6, #1
- vshl.u64 q5, q6, #56
- vsri.u64 q5, q6, #8
- veor q5, q4
- vshr.u64 q6, #7
- veor q5, q6
- vadd.i64 q11, q5
- # Round 8
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d4, #50
- vsri.u64 d8, d4, #14
- vshl.u64 d9, d0, #36
- vsri.u64 d9, d0, #28
- vshl.u64 d10, d4, #46
- vsri.u64 d10, d4, #18
- vshl.u64 d11, d0, #30
- vsri.u64 d11, d0, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d4, #23
- vsri.u64 d10, d4, #41
- vshl.u64 d11, d0, #25
- vsri.u64 d11, d0, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d7, d8
- vadd.i64 d12, d24
- vmov d8, d4
- veor d10, d1, d2
- vadd.i64 d7, d12
- vbsl d8, d5, d6
- vbsl d10, d0, d2
- vadd.i64 d7, d8
- vadd.i64 d10, d9
- vadd.i64 d3, d7
- vadd.i64 d7, d10
- # Round 9
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d3, #50
- vsri.u64 d8, d3, #14
- vshl.u64 d9, d7, #36
- vsri.u64 d9, d7, #28
- vshl.u64 d10, d3, #46
- vsri.u64 d10, d3, #18
- vshl.u64 d11, d7, #30
- vsri.u64 d11, d7, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d3, #23
- vsri.u64 d10, d3, #41
- vshl.u64 d11, d7, #25
- vsri.u64 d11, d7, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d6, d8
- vadd.i64 d12, d25
- vmov d8, d3
- veor d10, d0, d1
- vadd.i64 d6, d12
- vbsl d8, d4, d5
- vbsl d10, d7, d1
- vadd.i64 d6, d8
- vadd.i64 d10, d9
- vadd.i64 d2, d6
- vadd.i64 d6, d10
- # Calc new W[8]-W[9]
- vext.8 q6, q12, q13, #8
- vshl.u64 q4, q11, #45
- vsri.u64 q4, q11, #19
- vshl.u64 q5, q11, #3
- vsri.u64 q5, q11, #61
- veor q5, q4
- vshr.u64 q4, q11, #6
- veor q5, q4
- vadd.i64 q12, q5
- vext.8 q7, q8, q9, #8
- vadd.i64 q12, q7
- vshl.u64 q4, q6, #63
- vsri.u64 q4, q6, #1
- vshl.u64 q5, q6, #56
- vsri.u64 q5, q6, #8
- veor q5, q4
- vshr.u64 q6, #7
- veor q5, q6
- vadd.i64 q12, q5
- # Round 10
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d2, #50
- vsri.u64 d8, d2, #14
- vshl.u64 d9, d6, #36
- vsri.u64 d9, d6, #28
- vshl.u64 d10, d2, #46
- vsri.u64 d10, d2, #18
- vshl.u64 d11, d6, #30
- vsri.u64 d11, d6, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d2, #23
- vsri.u64 d10, d2, #41
- vshl.u64 d11, d6, #25
- vsri.u64 d11, d6, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d5, d8
- vadd.i64 d12, d26
- vmov d8, d2
- veor d10, d7, d0
- vadd.i64 d5, d12
- vbsl d8, d3, d4
- vbsl d10, d6, d0
- vadd.i64 d5, d8
- vadd.i64 d10, d9
- vadd.i64 d1, d5
- vadd.i64 d5, d10
- # Round 11
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d1, #50
- vsri.u64 d8, d1, #14
- vshl.u64 d9, d5, #36
- vsri.u64 d9, d5, #28
- vshl.u64 d10, d1, #46
- vsri.u64 d10, d1, #18
- vshl.u64 d11, d5, #30
- vsri.u64 d11, d5, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d1, #23
- vsri.u64 d10, d1, #41
- vshl.u64 d11, d5, #25
- vsri.u64 d11, d5, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d4, d8
- vadd.i64 d12, d27
- vmov d8, d1
- veor d10, d6, d7
- vadd.i64 d4, d12
- vbsl d8, d2, d3
- vbsl d10, d5, d7
- vadd.i64 d4, d8
- vadd.i64 d10, d9
- vadd.i64 d0, d4
- vadd.i64 d4, d10
- # Calc new W[10]-W[11]
- vext.8 q6, q13, q14, #8
- vshl.u64 q4, q12, #45
- vsri.u64 q4, q12, #19
- vshl.u64 q5, q12, #3
- vsri.u64 q5, q12, #61
- veor q5, q4
- vshr.u64 q4, q12, #6
- veor q5, q4
- vadd.i64 q13, q5
- vext.8 q7, q9, q10, #8
- vadd.i64 q13, q7
- vshl.u64 q4, q6, #63
- vsri.u64 q4, q6, #1
- vshl.u64 q5, q6, #56
- vsri.u64 q5, q6, #8
- veor q5, q4
- vshr.u64 q6, #7
- veor q5, q6
- vadd.i64 q13, q5
- # Round 12
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d0, #50
- vsri.u64 d8, d0, #14
- vshl.u64 d9, d4, #36
- vsri.u64 d9, d4, #28
- vshl.u64 d10, d0, #46
- vsri.u64 d10, d0, #18
- vshl.u64 d11, d4, #30
- vsri.u64 d11, d4, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d0, #23
- vsri.u64 d10, d0, #41
- vshl.u64 d11, d4, #25
- vsri.u64 d11, d4, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d3, d8
- vadd.i64 d12, d28
- vmov d8, d0
- veor d10, d5, d6
- vadd.i64 d3, d12
- vbsl d8, d1, d2
- vbsl d10, d4, d6
- vadd.i64 d3, d8
- vadd.i64 d10, d9
- vadd.i64 d7, d3
- vadd.i64 d3, d10
- # Round 13
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d7, #50
- vsri.u64 d8, d7, #14
- vshl.u64 d9, d3, #36
- vsri.u64 d9, d3, #28
- vshl.u64 d10, d7, #46
- vsri.u64 d10, d7, #18
- vshl.u64 d11, d3, #30
- vsri.u64 d11, d3, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d7, #23
- vsri.u64 d10, d7, #41
- vshl.u64 d11, d3, #25
- vsri.u64 d11, d3, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d2, d8
- vadd.i64 d12, d29
- vmov d8, d7
- veor d10, d4, d5
- vadd.i64 d2, d12
- vbsl d8, d0, d1
- vbsl d10, d3, d5
- vadd.i64 d2, d8
- vadd.i64 d10, d9
- vadd.i64 d6, d2
- vadd.i64 d2, d10
- # Calc new W[12]-W[13]
- vext.8 q6, q14, q15, #8
- vshl.u64 q4, q13, #45
- vsri.u64 q4, q13, #19
- vshl.u64 q5, q13, #3
- vsri.u64 q5, q13, #61
- veor q5, q4
- vshr.u64 q4, q13, #6
- veor q5, q4
- vadd.i64 q14, q5
- vext.8 q7, q10, q11, #8
- vadd.i64 q14, q7
- vshl.u64 q4, q6, #63
- vsri.u64 q4, q6, #1
- vshl.u64 q5, q6, #56
- vsri.u64 q5, q6, #8
- veor q5, q4
- vshr.u64 q6, #7
- veor q5, q6
- vadd.i64 q14, q5
- # Round 14
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d6, #50
- vsri.u64 d8, d6, #14
- vshl.u64 d9, d2, #36
- vsri.u64 d9, d2, #28
- vshl.u64 d10, d6, #46
- vsri.u64 d10, d6, #18
- vshl.u64 d11, d2, #30
- vsri.u64 d11, d2, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d6, #23
- vsri.u64 d10, d6, #41
- vshl.u64 d11, d2, #25
- vsri.u64 d11, d2, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d1, d8
- vadd.i64 d12, d30
- vmov d8, d6
- veor d10, d3, d4
- vadd.i64 d1, d12
- vbsl d8, d7, d0
- vbsl d10, d2, d4
- vadd.i64 d1, d8
- vadd.i64 d10, d9
- vadd.i64 d5, d1
- vadd.i64 d1, d10
- # Round 15
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d5, #50
- vsri.u64 d8, d5, #14
- vshl.u64 d9, d1, #36
- vsri.u64 d9, d1, #28
- vshl.u64 d10, d5, #46
- vsri.u64 d10, d5, #18
- vshl.u64 d11, d1, #30
- vsri.u64 d11, d1, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d5, #23
- vsri.u64 d10, d5, #41
- vshl.u64 d11, d1, #25
- vsri.u64 d11, d1, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d0, d8
- vadd.i64 d12, d31
- vmov d8, d5
- veor d10, d2, d3
- vadd.i64 d0, d12
- vbsl d8, d6, d7
- vbsl d10, d1, d3
- vadd.i64 d0, d8
- vadd.i64 d10, d9
- vadd.i64 d4, d0
- vadd.i64 d0, d10
- # Calc new W[14]-W[15]
- vext.8 q6, q15, q8, #8
- vshl.u64 q4, q14, #45
- vsri.u64 q4, q14, #19
- vshl.u64 q5, q14, #3
- vsri.u64 q5, q14, #61
- veor q5, q4
- vshr.u64 q4, q14, #6
- veor q5, q4
- vadd.i64 q15, q5
- vext.8 q7, q11, q12, #8
- vadd.i64 q15, q7
- vshl.u64 q4, q6, #63
- vsri.u64 q4, q6, #1
- vshl.u64 q5, q6, #56
- vsri.u64 q5, q6, #8
- veor q5, q4
- vshr.u64 q6, #7
- veor q5, q6
- vadd.i64 q15, q5
- subs r12, r12, #1
- bne L_sha512_len_neon_start
- # Round 0
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d4, #50
- vsri.u64 d8, d4, #14
- vshl.u64 d9, d0, #36
- vsri.u64 d9, d0, #28
- vshl.u64 d10, d4, #46
- vsri.u64 d10, d4, #18
- vshl.u64 d11, d0, #30
- vsri.u64 d11, d0, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d4, #23
- vsri.u64 d10, d4, #41
- vshl.u64 d11, d0, #25
- vsri.u64 d11, d0, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d7, d8
- vadd.i64 d12, d16
- vmov d8, d4
- veor d10, d1, d2
- vadd.i64 d7, d12
- vbsl d8, d5, d6
- vbsl d10, d0, d2
- vadd.i64 d7, d8
- vadd.i64 d10, d9
- vadd.i64 d3, d7
- vadd.i64 d7, d10
- # Round 1
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d3, #50
- vsri.u64 d8, d3, #14
- vshl.u64 d9, d7, #36
- vsri.u64 d9, d7, #28
- vshl.u64 d10, d3, #46
- vsri.u64 d10, d3, #18
- vshl.u64 d11, d7, #30
- vsri.u64 d11, d7, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d3, #23
- vsri.u64 d10, d3, #41
- vshl.u64 d11, d7, #25
- vsri.u64 d11, d7, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d6, d8
- vadd.i64 d12, d17
- vmov d8, d3
- veor d10, d0, d1
- vadd.i64 d6, d12
- vbsl d8, d4, d5
- vbsl d10, d7, d1
- vadd.i64 d6, d8
- vadd.i64 d10, d9
- vadd.i64 d2, d6
- vadd.i64 d6, d10
- # Round 2
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d2, #50
- vsri.u64 d8, d2, #14
- vshl.u64 d9, d6, #36
- vsri.u64 d9, d6, #28
- vshl.u64 d10, d2, #46
- vsri.u64 d10, d2, #18
- vshl.u64 d11, d6, #30
- vsri.u64 d11, d6, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d2, #23
- vsri.u64 d10, d2, #41
- vshl.u64 d11, d6, #25
- vsri.u64 d11, d6, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d5, d8
- vadd.i64 d12, d18
- vmov d8, d2
- veor d10, d7, d0
- vadd.i64 d5, d12
- vbsl d8, d3, d4
- vbsl d10, d6, d0
- vadd.i64 d5, d8
- vadd.i64 d10, d9
- vadd.i64 d1, d5
- vadd.i64 d5, d10
- # Round 3
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d1, #50
- vsri.u64 d8, d1, #14
- vshl.u64 d9, d5, #36
- vsri.u64 d9, d5, #28
- vshl.u64 d10, d1, #46
- vsri.u64 d10, d1, #18
- vshl.u64 d11, d5, #30
- vsri.u64 d11, d5, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d1, #23
- vsri.u64 d10, d1, #41
- vshl.u64 d11, d5, #25
- vsri.u64 d11, d5, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d4, d8
- vadd.i64 d12, d19
- vmov d8, d1
- veor d10, d6, d7
- vadd.i64 d4, d12
- vbsl d8, d2, d3
- vbsl d10, d5, d7
- vadd.i64 d4, d8
- vadd.i64 d10, d9
- vadd.i64 d0, d4
- vadd.i64 d4, d10
- # Round 4
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d0, #50
- vsri.u64 d8, d0, #14
- vshl.u64 d9, d4, #36
- vsri.u64 d9, d4, #28
- vshl.u64 d10, d0, #46
- vsri.u64 d10, d0, #18
- vshl.u64 d11, d4, #30
- vsri.u64 d11, d4, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d0, #23
- vsri.u64 d10, d0, #41
- vshl.u64 d11, d4, #25
- vsri.u64 d11, d4, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d3, d8
- vadd.i64 d12, d20
- vmov d8, d0
- veor d10, d5, d6
- vadd.i64 d3, d12
- vbsl d8, d1, d2
- vbsl d10, d4, d6
- vadd.i64 d3, d8
- vadd.i64 d10, d9
- vadd.i64 d7, d3
- vadd.i64 d3, d10
- # Round 5
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d7, #50
- vsri.u64 d8, d7, #14
- vshl.u64 d9, d3, #36
- vsri.u64 d9, d3, #28
- vshl.u64 d10, d7, #46
- vsri.u64 d10, d7, #18
- vshl.u64 d11, d3, #30
- vsri.u64 d11, d3, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d7, #23
- vsri.u64 d10, d7, #41
- vshl.u64 d11, d3, #25
- vsri.u64 d11, d3, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d2, d8
- vadd.i64 d12, d21
- vmov d8, d7
- veor d10, d4, d5
- vadd.i64 d2, d12
- vbsl d8, d0, d1
- vbsl d10, d3, d5
- vadd.i64 d2, d8
- vadd.i64 d10, d9
- vadd.i64 d6, d2
- vadd.i64 d2, d10
- # Round 6
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d6, #50
- vsri.u64 d8, d6, #14
- vshl.u64 d9, d2, #36
- vsri.u64 d9, d2, #28
- vshl.u64 d10, d6, #46
- vsri.u64 d10, d6, #18
- vshl.u64 d11, d2, #30
- vsri.u64 d11, d2, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d6, #23
- vsri.u64 d10, d6, #41
- vshl.u64 d11, d2, #25
- vsri.u64 d11, d2, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d1, d8
- vadd.i64 d12, d22
- vmov d8, d6
- veor d10, d3, d4
- vadd.i64 d1, d12
- vbsl d8, d7, d0
- vbsl d10, d2, d4
- vadd.i64 d1, d8
- vadd.i64 d10, d9
- vadd.i64 d5, d1
- vadd.i64 d1, d10
- # Round 7
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d5, #50
- vsri.u64 d8, d5, #14
- vshl.u64 d9, d1, #36
- vsri.u64 d9, d1, #28
- vshl.u64 d10, d5, #46
- vsri.u64 d10, d5, #18
- vshl.u64 d11, d1, #30
- vsri.u64 d11, d1, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d5, #23
- vsri.u64 d10, d5, #41
- vshl.u64 d11, d1, #25
- vsri.u64 d11, d1, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d0, d8
- vadd.i64 d12, d23
- vmov d8, d5
- veor d10, d2, d3
- vadd.i64 d0, d12
- vbsl d8, d6, d7
- vbsl d10, d1, d3
- vadd.i64 d0, d8
- vadd.i64 d10, d9
- vadd.i64 d4, d0
- vadd.i64 d0, d10
- # Round 8
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d4, #50
- vsri.u64 d8, d4, #14
- vshl.u64 d9, d0, #36
- vsri.u64 d9, d0, #28
- vshl.u64 d10, d4, #46
- vsri.u64 d10, d4, #18
- vshl.u64 d11, d0, #30
- vsri.u64 d11, d0, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d4, #23
- vsri.u64 d10, d4, #41
- vshl.u64 d11, d0, #25
- vsri.u64 d11, d0, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d7, d8
- vadd.i64 d12, d24
- vmov d8, d4
- veor d10, d1, d2
- vadd.i64 d7, d12
- vbsl d8, d5, d6
- vbsl d10, d0, d2
- vadd.i64 d7, d8
- vadd.i64 d10, d9
- vadd.i64 d3, d7
- vadd.i64 d7, d10
- # Round 9
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d3, #50
- vsri.u64 d8, d3, #14
- vshl.u64 d9, d7, #36
- vsri.u64 d9, d7, #28
- vshl.u64 d10, d3, #46
- vsri.u64 d10, d3, #18
- vshl.u64 d11, d7, #30
- vsri.u64 d11, d7, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d3, #23
- vsri.u64 d10, d3, #41
- vshl.u64 d11, d7, #25
- vsri.u64 d11, d7, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d6, d8
- vadd.i64 d12, d25
- vmov d8, d3
- veor d10, d0, d1
- vadd.i64 d6, d12
- vbsl d8, d4, d5
- vbsl d10, d7, d1
- vadd.i64 d6, d8
- vadd.i64 d10, d9
- vadd.i64 d2, d6
- vadd.i64 d6, d10
- # Round 10
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d2, #50
- vsri.u64 d8, d2, #14
- vshl.u64 d9, d6, #36
- vsri.u64 d9, d6, #28
- vshl.u64 d10, d2, #46
- vsri.u64 d10, d2, #18
- vshl.u64 d11, d6, #30
- vsri.u64 d11, d6, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d2, #23
- vsri.u64 d10, d2, #41
- vshl.u64 d11, d6, #25
- vsri.u64 d11, d6, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d5, d8
- vadd.i64 d12, d26
- vmov d8, d2
- veor d10, d7, d0
- vadd.i64 d5, d12
- vbsl d8, d3, d4
- vbsl d10, d6, d0
- vadd.i64 d5, d8
- vadd.i64 d10, d9
- vadd.i64 d1, d5
- vadd.i64 d5, d10
- # Round 11
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d1, #50
- vsri.u64 d8, d1, #14
- vshl.u64 d9, d5, #36
- vsri.u64 d9, d5, #28
- vshl.u64 d10, d1, #46
- vsri.u64 d10, d1, #18
- vshl.u64 d11, d5, #30
- vsri.u64 d11, d5, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d1, #23
- vsri.u64 d10, d1, #41
- vshl.u64 d11, d5, #25
- vsri.u64 d11, d5, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d4, d8
- vadd.i64 d12, d27
- vmov d8, d1
- veor d10, d6, d7
- vadd.i64 d4, d12
- vbsl d8, d2, d3
- vbsl d10, d5, d7
- vadd.i64 d4, d8
- vadd.i64 d10, d9
- vadd.i64 d0, d4
- vadd.i64 d4, d10
- # Round 12
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d0, #50
- vsri.u64 d8, d0, #14
- vshl.u64 d9, d4, #36
- vsri.u64 d9, d4, #28
- vshl.u64 d10, d0, #46
- vsri.u64 d10, d0, #18
- vshl.u64 d11, d4, #30
- vsri.u64 d11, d4, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d0, #23
- vsri.u64 d10, d0, #41
- vshl.u64 d11, d4, #25
- vsri.u64 d11, d4, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d3, d8
- vadd.i64 d12, d28
- vmov d8, d0
- veor d10, d5, d6
- vadd.i64 d3, d12
- vbsl d8, d1, d2
- vbsl d10, d4, d6
- vadd.i64 d3, d8
- vadd.i64 d10, d9
- vadd.i64 d7, d3
- vadd.i64 d3, d10
- # Round 13
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d7, #50
- vsri.u64 d8, d7, #14
- vshl.u64 d9, d3, #36
- vsri.u64 d9, d3, #28
- vshl.u64 d10, d7, #46
- vsri.u64 d10, d7, #18
- vshl.u64 d11, d3, #30
- vsri.u64 d11, d3, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d7, #23
- vsri.u64 d10, d7, #41
- vshl.u64 d11, d3, #25
- vsri.u64 d11, d3, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d2, d8
- vadd.i64 d12, d29
- vmov d8, d7
- veor d10, d4, d5
- vadd.i64 d2, d12
- vbsl d8, d0, d1
- vbsl d10, d3, d5
- vadd.i64 d2, d8
- vadd.i64 d10, d9
- vadd.i64 d6, d2
- vadd.i64 d2, d10
- # Round 14
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d6, #50
- vsri.u64 d8, d6, #14
- vshl.u64 d9, d2, #36
- vsri.u64 d9, d2, #28
- vshl.u64 d10, d6, #46
- vsri.u64 d10, d6, #18
- vshl.u64 d11, d2, #30
- vsri.u64 d11, d2, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d6, #23
- vsri.u64 d10, d6, #41
- vshl.u64 d11, d2, #25
- vsri.u64 d11, d2, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d1, d8
- vadd.i64 d12, d30
- vmov d8, d6
- veor d10, d3, d4
- vadd.i64 d1, d12
- vbsl d8, d7, d0
- vbsl d10, d2, d4
- vadd.i64 d1, d8
- vadd.i64 d10, d9
- vadd.i64 d5, d1
- vadd.i64 d1, d10
- # Round 15
- vld1.64 {d12}, [r3:64]!
- vshl.u64 d8, d5, #50
- vsri.u64 d8, d5, #14
- vshl.u64 d9, d1, #36
- vsri.u64 d9, d1, #28
- vshl.u64 d10, d5, #46
- vsri.u64 d10, d5, #18
- vshl.u64 d11, d1, #30
- vsri.u64 d11, d1, #34
- veor d8, d10
- veor d9, d11
- vshl.u64 d10, d5, #23
- vsri.u64 d10, d5, #41
- vshl.u64 d11, d1, #25
- vsri.u64 d11, d1, #39
- veor d8, d10
- veor d9, d11
- vadd.i64 d0, d8
- vadd.i64 d12, d31
- vmov d8, d5
- veor d10, d2, d3
- vadd.i64 d0, d12
- vbsl d8, d6, d7
- vbsl d10, d1, d3
- vadd.i64 d0, d8
- vadd.i64 d10, d9
- vadd.i64 d4, d0
- vadd.i64 d0, d10
- # Add in digest from start
- vldm.64 r0, {d8-d15}
- vadd.i64 q0, q0, q4
- vadd.i64 q1, q1, q5
- vadd.i64 q2, q2, q6
- vadd.i64 q3, q3, q7
- vstm.64 r0, {d0-d7}
- subs r2, r2, #0x80
- bne L_sha512_len_neon_begin
- vpop {d8-d15}
- bx lr
- .size Transform_Sha512_Len,.-Transform_Sha512_Len
-#endif /* !WOLFSSL_ARMASM_NO_NEON */
-#endif /* !__aarch64__ */
-#endif /* WOLFSSL_ARMASM */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-sha512-asm.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-sha512-asm.c
deleted file mode 100644
index c502a3997..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-32-sha512-asm.c
+++ /dev/null
@@ -1,4783 +0,0 @@
-/* armv8-32-sha512-asm
- *
- * Copyright (C) 2006-2020 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
- */
-
-/* Generated using (from wolfssl):
- * cd ../scripts
- * ruby ./sha2/sha512.rb arm32 ../wolfssl/wolfcrypt/src/port/arm/armv8-32-sha512-asm.c
- */
-
-#ifndef __aarch64__
-#include <stdint.h>
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifdef WOLFSSL_ARMASM
-#include <wolfssl/wolfcrypt/sha512.h>
-
-#ifdef WOLFSSL_ARMASM_NO_NEON
-static const uint64_t L_SHA512_transform_len_k[] = {
- 0x428a2f98d728ae22UL,
- 0x7137449123ef65cdUL,
- 0xb5c0fbcfec4d3b2fUL,
- 0xe9b5dba58189dbbcUL,
- 0x3956c25bf348b538UL,
- 0x59f111f1b605d019UL,
- 0x923f82a4af194f9bUL,
- 0xab1c5ed5da6d8118UL,
- 0xd807aa98a3030242UL,
- 0x12835b0145706fbeUL,
- 0x243185be4ee4b28cUL,
- 0x550c7dc3d5ffb4e2UL,
- 0x72be5d74f27b896fUL,
- 0x80deb1fe3b1696b1UL,
- 0x9bdc06a725c71235UL,
- 0xc19bf174cf692694UL,
- 0xe49b69c19ef14ad2UL,
- 0xefbe4786384f25e3UL,
- 0xfc19dc68b8cd5b5UL,
- 0x240ca1cc77ac9c65UL,
- 0x2de92c6f592b0275UL,
- 0x4a7484aa6ea6e483UL,
- 0x5cb0a9dcbd41fbd4UL,
- 0x76f988da831153b5UL,
- 0x983e5152ee66dfabUL,
- 0xa831c66d2db43210UL,
- 0xb00327c898fb213fUL,
- 0xbf597fc7beef0ee4UL,
- 0xc6e00bf33da88fc2UL,
- 0xd5a79147930aa725UL,
- 0x6ca6351e003826fUL,
- 0x142929670a0e6e70UL,
- 0x27b70a8546d22ffcUL,
- 0x2e1b21385c26c926UL,
- 0x4d2c6dfc5ac42aedUL,
- 0x53380d139d95b3dfUL,
- 0x650a73548baf63deUL,
- 0x766a0abb3c77b2a8UL,
- 0x81c2c92e47edaee6UL,
- 0x92722c851482353bUL,
- 0xa2bfe8a14cf10364UL,
- 0xa81a664bbc423001UL,
- 0xc24b8b70d0f89791UL,
- 0xc76c51a30654be30UL,
- 0xd192e819d6ef5218UL,
- 0xd69906245565a910UL,
- 0xf40e35855771202aUL,
- 0x106aa07032bbd1b8UL,
- 0x19a4c116b8d2d0c8UL,
- 0x1e376c085141ab53UL,
- 0x2748774cdf8eeb99UL,
- 0x34b0bcb5e19b48a8UL,
- 0x391c0cb3c5c95a63UL,
- 0x4ed8aa4ae3418acbUL,
- 0x5b9cca4f7763e373UL,
- 0x682e6ff3d6b2b8a3UL,
- 0x748f82ee5defb2fcUL,
- 0x78a5636f43172f60UL,
- 0x84c87814a1f0ab72UL,
- 0x8cc702081a6439ecUL,
- 0x90befffa23631e28UL,
- 0xa4506cebde82bde9UL,
- 0xbef9a3f7b2c67915UL,
- 0xc67178f2e372532bUL,
- 0xca273eceea26619cUL,
- 0xd186b8c721c0c207UL,
- 0xeada7dd6cde0eb1eUL,
- 0xf57d4f7fee6ed178UL,
- 0x6f067aa72176fbaUL,
- 0xa637dc5a2c898a6UL,
- 0x113f9804bef90daeUL,
- 0x1b710b35131c471bUL,
- 0x28db77f523047d84UL,
- 0x32caab7b40c72493UL,
- 0x3c9ebe0a15c9bebcUL,
- 0x431d67c49c100d4cUL,
- 0x4cc5d4becb3e42b6UL,
- 0x597f299cfc657e2aUL,
- 0x5fcb6fab3ad6faecUL,
- 0x6c44198c4a475817UL,
-};
-
-void Transform_Sha512_Len(wc_Sha512* sha512, const byte* data, word32 len)
-{
- __asm__ __volatile__ (
- "sub sp, sp, #0xc0\n\t"
- "mov r3, %[L_SHA512_transform_len_k]\n\t"
- /* Copy digest to add in at end */
- "ldrd r12, lr, [%[sha512]]\n\t"
- "ldrd r4, r5, [%[sha512], #8]\n\t"
- "ldrd r6, r7, [%[sha512], #16]\n\t"
- "ldrd r8, r9, [%[sha512], #24]\n\t"
- "strd r12, lr, [sp, #128]\n\t"
- "strd r4, r5, [sp, #136]\n\t"
- "strd r6, r7, [sp, #144]\n\t"
- "strd r8, r9, [sp, #152]\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "ldrd r4, r5, [%[sha512], #40]\n\t"
- "ldrd r6, r7, [%[sha512], #48]\n\t"
- "ldrd r8, r9, [%[sha512], #56]\n\t"
- "strd r12, lr, [sp, #160]\n\t"
- "strd r4, r5, [sp, #168]\n\t"
- "strd r6, r7, [sp, #176]\n\t"
- "strd r8, r9, [sp, #184]\n\t"
- /* Start of loop processing a block */
- "\n"
- "L_sha512_len_neon_begin_%=: \n\t"
- /* Load, Reverse and Store W */
- "ldrd r12, lr, [%[data]]\n\t"
- "ldrd r4, r5, [%[data], #8]\n\t"
- "ldrd r6, r7, [%[data], #16]\n\t"
- "ldrd r8, r9, [%[data], #24]\n\t"
- "rev r12, r12\n\t"
- "rev lr, lr\n\t"
- "rev r4, r4\n\t"
- "rev r5, r5\n\t"
- "rev r6, r6\n\t"
- "rev r7, r7\n\t"
- "rev r8, r8\n\t"
- "rev r9, r9\n\t"
- "str lr, [sp]\n\t"
- "str r12, [sp, #4]\n\t"
- "str r5, [sp, #8]\n\t"
- "str r4, [sp, #12]\n\t"
- "str r7, [sp, #16]\n\t"
- "str r6, [sp, #20]\n\t"
- "str r9, [sp, #24]\n\t"
- "str r8, [sp, #28]\n\t"
- "ldrd r12, lr, [%[data], #32]\n\t"
- "ldrd r4, r5, [%[data], #40]\n\t"
- "ldrd r6, r7, [%[data], #48]\n\t"
- "ldrd r8, r9, [%[data], #56]\n\t"
- "rev r12, r12\n\t"
- "rev lr, lr\n\t"
- "rev r4, r4\n\t"
- "rev r5, r5\n\t"
- "rev r6, r6\n\t"
- "rev r7, r7\n\t"
- "rev r8, r8\n\t"
- "rev r9, r9\n\t"
- "str lr, [sp, #32]\n\t"
- "str r12, [sp, #36]\n\t"
- "str r5, [sp, #40]\n\t"
- "str r4, [sp, #44]\n\t"
- "str r7, [sp, #48]\n\t"
- "str r6, [sp, #52]\n\t"
- "str r9, [sp, #56]\n\t"
- "str r8, [sp, #60]\n\t"
- "ldrd r12, lr, [%[data], #64]\n\t"
- "ldrd r4, r5, [%[data], #72]\n\t"
- "ldrd r6, r7, [%[data], #80]\n\t"
- "ldrd r8, r9, [%[data], #88]\n\t"
- "rev r12, r12\n\t"
- "rev lr, lr\n\t"
- "rev r4, r4\n\t"
- "rev r5, r5\n\t"
- "rev r6, r6\n\t"
- "rev r7, r7\n\t"
- "rev r8, r8\n\t"
- "rev r9, r9\n\t"
- "str lr, [sp, #64]\n\t"
- "str r12, [sp, #68]\n\t"
- "str r5, [sp, #72]\n\t"
- "str r4, [sp, #76]\n\t"
- "str r7, [sp, #80]\n\t"
- "str r6, [sp, #84]\n\t"
- "str r9, [sp, #88]\n\t"
- "str r8, [sp, #92]\n\t"
- "ldrd r12, lr, [%[data], #96]\n\t"
- "ldrd r4, r5, [%[data], #104]\n\t"
- "ldrd r6, r7, [%[data], #112]\n\t"
- "ldrd r8, r9, [%[data], #120]\n\t"
- "rev r12, r12\n\t"
- "rev lr, lr\n\t"
- "rev r4, r4\n\t"
- "rev r5, r5\n\t"
- "rev r6, r6\n\t"
- "rev r7, r7\n\t"
- "rev r8, r8\n\t"
- "rev r9, r9\n\t"
- "str lr, [sp, #96]\n\t"
- "str r12, [sp, #100]\n\t"
- "str r5, [sp, #104]\n\t"
- "str r4, [sp, #108]\n\t"
- "str r7, [sp, #112]\n\t"
- "str r6, [sp, #116]\n\t"
- "str r9, [sp, #120]\n\t"
- "str r8, [sp, #124]\n\t"
- /* Pre-calc: b ^ c */
- "ldrd r8, r9, [%[sha512], #8]\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "eor r8, r8, r12\n\t"
- "eor r9, r9, lr\n\t"
- "mov r10, #4\n\t"
- /* Start of 16 rounds */
- "\n"
- "L_sha512_len_neon_start_%=: \n\t"
- /* Round 0 */
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #56]\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "ldrd r4, r5, [%[sha512], #40]\n\t"
- "ldrd r6, r7, [%[sha512], #48]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "ldrd r6, r7, [sp]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #24]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #56]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "strd r6, r7, [%[sha512], #24]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512]]\n\t"
- "ldrd r4, r5, [%[sha512], #8]\n\t"
- "strd r12, lr, [%[sha512], #56]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #56]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #56]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[0] */
- "ldrd r12, lr, [sp, #112]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp]\n\t"
- "ldrd r6, r7, [sp, #72]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp]\n\t"
- "ldrd r12, lr, [sp, #8]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp]\n\t"
- /* Round 1 */
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #48]\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "ldrd r4, r5, [%[sha512], #32]\n\t"
- "ldrd r6, r7, [%[sha512], #40]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "ldrd r6, r7, [sp, #8]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #8]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #16]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #48]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "strd r6, r7, [%[sha512], #16]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #56]\n\t"
- "ldrd r4, r5, [%[sha512]]\n\t"
- "strd r12, lr, [%[sha512], #48]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #48]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #48]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[1] */
- "ldrd r12, lr, [sp, #120]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #8]\n\t"
- "ldrd r6, r7, [sp, #80]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #8]\n\t"
- "ldrd r12, lr, [sp, #16]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #8]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #8]\n\t"
- /* Round 2 */
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #40]\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "ldrd r4, r5, [%[sha512], #24]\n\t"
- "ldrd r6, r7, [%[sha512], #32]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "ldrd r6, r7, [sp, #16]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #16]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #8]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #40]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "strd r6, r7, [%[sha512], #8]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #48]\n\t"
- "ldrd r4, r5, [%[sha512], #56]\n\t"
- "strd r12, lr, [%[sha512], #40]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #40]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #40]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[2] */
- "ldrd r12, lr, [sp]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #16]\n\t"
- "ldrd r6, r7, [sp, #88]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #16]\n\t"
- "ldrd r12, lr, [sp, #24]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #16]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #16]\n\t"
- /* Round 3 */
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #32]\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "ldrd r4, r5, [%[sha512], #16]\n\t"
- "ldrd r6, r7, [%[sha512], #24]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "ldrd r6, r7, [sp, #24]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #24]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512]]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #32]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "strd r6, r7, [%[sha512]]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #40]\n\t"
- "ldrd r4, r5, [%[sha512], #48]\n\t"
- "strd r12, lr, [%[sha512], #32]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #32]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #32]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[3] */
- "ldrd r12, lr, [sp, #8]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #24]\n\t"
- "ldrd r6, r7, [sp, #96]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #24]\n\t"
- "ldrd r12, lr, [sp, #32]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #24]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #24]\n\t"
- /* Round 4 */
- "ldrd r12, lr, [%[sha512]]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #24]\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "ldrd r4, r5, [%[sha512], #8]\n\t"
- "ldrd r6, r7, [%[sha512], #16]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "ldrd r6, r7, [sp, #32]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #32]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #56]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #24]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "strd r6, r7, [%[sha512], #56]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #32]\n\t"
- "ldrd r4, r5, [%[sha512], #40]\n\t"
- "strd r12, lr, [%[sha512], #24]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #24]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #24]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[4] */
- "ldrd r12, lr, [sp, #16]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #32]\n\t"
- "ldrd r6, r7, [sp, #104]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #32]\n\t"
- "ldrd r12, lr, [sp, #40]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #32]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #32]\n\t"
- /* Round 5 */
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #16]\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "ldrd r4, r5, [%[sha512]]\n\t"
- "ldrd r6, r7, [%[sha512], #8]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "ldrd r6, r7, [sp, #40]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #40]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #48]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #16]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "strd r6, r7, [%[sha512], #48]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #24]\n\t"
- "ldrd r4, r5, [%[sha512], #32]\n\t"
- "strd r12, lr, [%[sha512], #16]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #16]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #16]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[5] */
- "ldrd r12, lr, [sp, #24]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #40]\n\t"
- "ldrd r6, r7, [sp, #112]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #40]\n\t"
- "ldrd r12, lr, [sp, #48]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #40]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #40]\n\t"
- /* Round 6 */
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #8]\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "ldrd r4, r5, [%[sha512], #56]\n\t"
- "ldrd r6, r7, [%[sha512]]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "ldrd r6, r7, [sp, #48]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #48]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #40]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #8]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "strd r6, r7, [%[sha512], #40]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #16]\n\t"
- "ldrd r4, r5, [%[sha512], #24]\n\t"
- "strd r12, lr, [%[sha512], #8]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #8]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #8]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[6] */
- "ldrd r12, lr, [sp, #32]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #48]\n\t"
- "ldrd r6, r7, [sp, #120]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #48]\n\t"
- "ldrd r12, lr, [sp, #56]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #48]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #48]\n\t"
- /* Round 7 */
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512]]\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "ldrd r4, r5, [%[sha512], #48]\n\t"
- "ldrd r6, r7, [%[sha512], #56]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "ldrd r6, r7, [sp, #56]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #56]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #32]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512]]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "strd r6, r7, [%[sha512], #32]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #8]\n\t"
- "ldrd r4, r5, [%[sha512], #16]\n\t"
- "strd r12, lr, [%[sha512]]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512]]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512]]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[7] */
- "ldrd r12, lr, [sp, #40]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #56]\n\t"
- "ldrd r6, r7, [sp]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #56]\n\t"
- "ldrd r12, lr, [sp, #64]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #56]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #56]\n\t"
- /* Round 8 */
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #56]\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "ldrd r4, r5, [%[sha512], #40]\n\t"
- "ldrd r6, r7, [%[sha512], #48]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "ldrd r6, r7, [sp, #64]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #64]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #24]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #56]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "strd r6, r7, [%[sha512], #24]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512]]\n\t"
- "ldrd r4, r5, [%[sha512], #8]\n\t"
- "strd r12, lr, [%[sha512], #56]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #56]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #56]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[8] */
- "ldrd r12, lr, [sp, #48]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #64]\n\t"
- "ldrd r6, r7, [sp, #8]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #64]\n\t"
- "ldrd r12, lr, [sp, #72]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #64]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #64]\n\t"
- /* Round 9 */
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #48]\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "ldrd r4, r5, [%[sha512], #32]\n\t"
- "ldrd r6, r7, [%[sha512], #40]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "ldrd r6, r7, [sp, #72]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #72]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #16]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #48]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "strd r6, r7, [%[sha512], #16]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #56]\n\t"
- "ldrd r4, r5, [%[sha512]]\n\t"
- "strd r12, lr, [%[sha512], #48]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #48]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #48]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[9] */
- "ldrd r12, lr, [sp, #56]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #72]\n\t"
- "ldrd r6, r7, [sp, #16]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #72]\n\t"
- "ldrd r12, lr, [sp, #80]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #72]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #72]\n\t"
- /* Round 10 */
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #40]\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "ldrd r4, r5, [%[sha512], #24]\n\t"
- "ldrd r6, r7, [%[sha512], #32]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "ldrd r6, r7, [sp, #80]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #80]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #8]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #40]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "strd r6, r7, [%[sha512], #8]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #48]\n\t"
- "ldrd r4, r5, [%[sha512], #56]\n\t"
- "strd r12, lr, [%[sha512], #40]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #40]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #40]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[10] */
- "ldrd r12, lr, [sp, #64]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #80]\n\t"
- "ldrd r6, r7, [sp, #24]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #80]\n\t"
- "ldrd r12, lr, [sp, #88]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #80]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #80]\n\t"
- /* Round 11 */
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #32]\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "ldrd r4, r5, [%[sha512], #16]\n\t"
- "ldrd r6, r7, [%[sha512], #24]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "ldrd r6, r7, [sp, #88]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #88]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512]]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #32]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "strd r6, r7, [%[sha512]]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #40]\n\t"
- "ldrd r4, r5, [%[sha512], #48]\n\t"
- "strd r12, lr, [%[sha512], #32]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #32]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #32]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[11] */
- "ldrd r12, lr, [sp, #72]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #88]\n\t"
- "ldrd r6, r7, [sp, #32]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #88]\n\t"
- "ldrd r12, lr, [sp, #96]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #88]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #88]\n\t"
- /* Round 12 */
- "ldrd r12, lr, [%[sha512]]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #24]\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "ldrd r4, r5, [%[sha512], #8]\n\t"
- "ldrd r6, r7, [%[sha512], #16]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "ldrd r6, r7, [sp, #96]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #96]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #56]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #24]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "strd r6, r7, [%[sha512], #56]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #32]\n\t"
- "ldrd r4, r5, [%[sha512], #40]\n\t"
- "strd r12, lr, [%[sha512], #24]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #24]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #24]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[12] */
- "ldrd r12, lr, [sp, #80]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #96]\n\t"
- "ldrd r6, r7, [sp, #40]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #96]\n\t"
- "ldrd r12, lr, [sp, #104]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #96]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #96]\n\t"
- /* Round 13 */
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #16]\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "ldrd r4, r5, [%[sha512]]\n\t"
- "ldrd r6, r7, [%[sha512], #8]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "ldrd r6, r7, [sp, #104]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #104]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #48]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #16]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "strd r6, r7, [%[sha512], #48]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #24]\n\t"
- "ldrd r4, r5, [%[sha512], #32]\n\t"
- "strd r12, lr, [%[sha512], #16]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #16]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #16]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[13] */
- "ldrd r12, lr, [sp, #88]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #104]\n\t"
- "ldrd r6, r7, [sp, #48]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #104]\n\t"
- "ldrd r12, lr, [sp, #112]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #104]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #104]\n\t"
- /* Round 14 */
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #8]\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "ldrd r4, r5, [%[sha512], #56]\n\t"
- "ldrd r6, r7, [%[sha512]]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "ldrd r6, r7, [sp, #112]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #112]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #40]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #8]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "strd r6, r7, [%[sha512], #40]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #16]\n\t"
- "ldrd r4, r5, [%[sha512], #24]\n\t"
- "strd r12, lr, [%[sha512], #8]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #8]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #8]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[14] */
- "ldrd r12, lr, [sp, #96]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #112]\n\t"
- "ldrd r6, r7, [sp, #56]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #112]\n\t"
- "ldrd r12, lr, [sp, #120]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #112]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #112]\n\t"
- /* Round 15 */
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512]]\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "ldrd r4, r5, [%[sha512], #48]\n\t"
- "ldrd r6, r7, [%[sha512], #56]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "ldrd r6, r7, [sp, #120]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #120]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #32]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512]]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "strd r6, r7, [%[sha512], #32]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #8]\n\t"
- "ldrd r4, r5, [%[sha512], #16]\n\t"
- "strd r12, lr, [%[sha512]]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512]]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512]]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Calc new W[15] */
- "ldrd r12, lr, [sp, #104]\n\t"
- "lsrs r4, r12, #19\n\t"
- "lsrs r5, lr, #19\n\t"
- "orr r5, r5, r12, lsl 13\n\t"
- "orr r4, r4, lr, lsl 13\n\t"
- "lsls r6, r12, #3\n\t"
- "lsls r7, lr, #3\n\t"
- "orr r7, r7, r12, lsr 29\n\t"
- "orr r6, r6, lr, lsr 29\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #6\n\t"
- "lsrs r7, lr, #6\n\t"
- "orr r6, r6, lr, lsl 26\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #120]\n\t"
- "ldrd r6, r7, [sp, #64]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "strd r12, lr, [sp, #120]\n\t"
- "ldrd r12, lr, [sp]\n\t"
- "lsrs r4, r12, #1\n\t"
- "lsrs r5, lr, #1\n\t"
- "orr r5, r5, r12, lsl 31\n\t"
- "orr r4, r4, lr, lsl 31\n\t"
- "lsrs r6, r12, #8\n\t"
- "lsrs r7, lr, #8\n\t"
- "orr r7, r7, r12, lsl 24\n\t"
- "orr r6, r6, lr, lsl 24\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "lsrs r6, r12, #7\n\t"
- "lsrs r7, lr, #7\n\t"
- "orr r6, r6, lr, lsl 25\n\t"
- "eor r5, r5, r7\n\t"
- "eor r4, r4, r6\n\t"
- "ldrd r12, lr, [sp, #120]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [sp, #120]\n\t"
- "add r3, r3, #0x80\n\t"
- "subs r10, r10, #1\n\t"
- "bne L_sha512_len_neon_start_%=\n\t"
- /* Round 0 */
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #56]\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "ldrd r4, r5, [%[sha512], #40]\n\t"
- "ldrd r6, r7, [%[sha512], #48]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "ldrd r6, r7, [sp]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #24]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #56]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "strd r6, r7, [%[sha512], #24]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512]]\n\t"
- "ldrd r4, r5, [%[sha512], #8]\n\t"
- "strd r12, lr, [%[sha512], #56]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #56]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #56]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 1 */
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #48]\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "ldrd r4, r5, [%[sha512], #32]\n\t"
- "ldrd r6, r7, [%[sha512], #40]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "ldrd r6, r7, [sp, #8]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #8]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #16]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #48]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "strd r6, r7, [%[sha512], #16]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #56]\n\t"
- "ldrd r4, r5, [%[sha512]]\n\t"
- "strd r12, lr, [%[sha512], #48]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #48]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #48]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 2 */
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #40]\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "ldrd r4, r5, [%[sha512], #24]\n\t"
- "ldrd r6, r7, [%[sha512], #32]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "ldrd r6, r7, [sp, #16]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #16]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #8]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #40]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "strd r6, r7, [%[sha512], #8]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #48]\n\t"
- "ldrd r4, r5, [%[sha512], #56]\n\t"
- "strd r12, lr, [%[sha512], #40]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #40]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #40]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 3 */
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #32]\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "ldrd r4, r5, [%[sha512], #16]\n\t"
- "ldrd r6, r7, [%[sha512], #24]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "ldrd r6, r7, [sp, #24]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #24]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512]]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #32]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "strd r6, r7, [%[sha512]]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #40]\n\t"
- "ldrd r4, r5, [%[sha512], #48]\n\t"
- "strd r12, lr, [%[sha512], #32]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #32]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #32]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 4 */
- "ldrd r12, lr, [%[sha512]]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #24]\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "ldrd r4, r5, [%[sha512], #8]\n\t"
- "ldrd r6, r7, [%[sha512], #16]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "ldrd r6, r7, [sp, #32]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #32]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #56]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #24]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "strd r6, r7, [%[sha512], #56]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #32]\n\t"
- "ldrd r4, r5, [%[sha512], #40]\n\t"
- "strd r12, lr, [%[sha512], #24]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #24]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #24]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 5 */
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #16]\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "ldrd r4, r5, [%[sha512]]\n\t"
- "ldrd r6, r7, [%[sha512], #8]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "ldrd r6, r7, [sp, #40]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #40]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #48]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #16]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "strd r6, r7, [%[sha512], #48]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #24]\n\t"
- "ldrd r4, r5, [%[sha512], #32]\n\t"
- "strd r12, lr, [%[sha512], #16]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #16]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #16]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 6 */
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #8]\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "ldrd r4, r5, [%[sha512], #56]\n\t"
- "ldrd r6, r7, [%[sha512]]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "ldrd r6, r7, [sp, #48]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #48]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #40]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #8]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "strd r6, r7, [%[sha512], #40]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #16]\n\t"
- "ldrd r4, r5, [%[sha512], #24]\n\t"
- "strd r12, lr, [%[sha512], #8]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #8]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #8]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 7 */
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512]]\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "ldrd r4, r5, [%[sha512], #48]\n\t"
- "ldrd r6, r7, [%[sha512], #56]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "ldrd r6, r7, [sp, #56]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #56]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #32]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512]]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "strd r6, r7, [%[sha512], #32]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #8]\n\t"
- "ldrd r4, r5, [%[sha512], #16]\n\t"
- "strd r12, lr, [%[sha512]]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512]]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512]]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 8 */
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #56]\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "ldrd r4, r5, [%[sha512], #40]\n\t"
- "ldrd r6, r7, [%[sha512], #48]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "ldrd r6, r7, [sp, #64]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #64]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #24]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #56]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "strd r6, r7, [%[sha512], #24]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512]]\n\t"
- "ldrd r4, r5, [%[sha512], #8]\n\t"
- "strd r12, lr, [%[sha512], #56]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #56]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #56]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 9 */
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #48]\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "ldrd r4, r5, [%[sha512], #32]\n\t"
- "ldrd r6, r7, [%[sha512], #40]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "ldrd r6, r7, [sp, #72]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #72]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #16]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #48]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "strd r6, r7, [%[sha512], #16]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #56]\n\t"
- "ldrd r4, r5, [%[sha512]]\n\t"
- "strd r12, lr, [%[sha512], #48]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #48]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #48]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 10 */
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #40]\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "ldrd r4, r5, [%[sha512], #24]\n\t"
- "ldrd r6, r7, [%[sha512], #32]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "ldrd r6, r7, [sp, #80]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #80]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #8]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #40]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "strd r6, r7, [%[sha512], #8]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #48]\n\t"
- "ldrd r4, r5, [%[sha512], #56]\n\t"
- "strd r12, lr, [%[sha512], #40]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #40]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #40]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 11 */
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #32]\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "ldrd r4, r5, [%[sha512], #16]\n\t"
- "ldrd r6, r7, [%[sha512], #24]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "ldrd r6, r7, [sp, #88]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #88]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512]]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #32]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "strd r6, r7, [%[sha512]]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #40]\n\t"
- "ldrd r4, r5, [%[sha512], #48]\n\t"
- "strd r12, lr, [%[sha512], #32]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #32]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #32]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 12 */
- "ldrd r12, lr, [%[sha512]]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #24]\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "ldrd r4, r5, [%[sha512], #8]\n\t"
- "ldrd r6, r7, [%[sha512], #16]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "ldrd r6, r7, [sp, #96]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #96]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #56]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #24]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "strd r6, r7, [%[sha512], #56]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #32]\n\t"
- "ldrd r4, r5, [%[sha512], #40]\n\t"
- "strd r12, lr, [%[sha512], #24]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #24]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #24]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 13 */
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #16]\n\t"
- "ldrd r12, lr, [%[sha512], #56]\n\t"
- "ldrd r4, r5, [%[sha512]]\n\t"
- "ldrd r6, r7, [%[sha512], #8]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "ldrd r6, r7, [sp, #104]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #104]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #48]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #16]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #24]\n\t"
- "strd r6, r7, [%[sha512], #48]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #24]\n\t"
- "ldrd r4, r5, [%[sha512], #32]\n\t"
- "strd r12, lr, [%[sha512], #16]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #16]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #16]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 14 */
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #8]\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "ldrd r4, r5, [%[sha512], #56]\n\t"
- "ldrd r6, r7, [%[sha512]]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "ldrd r6, r7, [sp, #112]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #112]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #40]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512], #8]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "strd r6, r7, [%[sha512], #40]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #16]\n\t"
- "ldrd r4, r5, [%[sha512], #24]\n\t"
- "strd r12, lr, [%[sha512], #8]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512], #8]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512], #8]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Round 15 */
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "lsrs r4, r12, #14\n\t"
- "lsrs r5, lr, #14\n\t"
- "orr r5, r5, r12, lsl 18\n\t"
- "orr r4, r4, lr, lsl 18\n\t"
- "lsrs r6, r12, #18\n\t"
- "lsrs r7, lr, #18\n\t"
- "orr r7, r7, r12, lsl 14\n\t"
- "orr r6, r6, lr, lsl 14\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #23\n\t"
- "lsls r7, lr, #23\n\t"
- "orr r7, r7, r12, lsr 9\n\t"
- "orr r6, r6, lr, lsr 9\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512]]\n\t"
- "ldrd r12, lr, [%[sha512], #40]\n\t"
- "ldrd r4, r5, [%[sha512], #48]\n\t"
- "ldrd r6, r7, [%[sha512], #56]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "and r4, r4, r12\n\t"
- "and r5, r5, lr\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "ldrd r6, r7, [sp, #120]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r4, r5, [r3, #120]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "ldrd r6, r7, [%[sha512], #32]\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "strd r12, lr, [%[sha512]]\n\t"
- "adds r6, r6, r12\n\t"
- "adc r7, r7, lr\n\t"
- "ldrd r12, lr, [%[sha512], #8]\n\t"
- "strd r6, r7, [%[sha512], #32]\n\t"
- "lsrs r4, r12, #28\n\t"
- "lsrs r5, lr, #28\n\t"
- "orr r5, r5, r12, lsl 4\n\t"
- "orr r4, r4, lr, lsl 4\n\t"
- "lsls r6, r12, #30\n\t"
- "lsls r7, lr, #30\n\t"
- "orr r7, r7, r12, lsr 2\n\t"
- "orr r6, r6, lr, lsr 2\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "lsls r6, r12, #25\n\t"
- "lsls r7, lr, #25\n\t"
- "orr r7, r7, r12, lsr 7\n\t"
- "orr r6, r6, lr, lsr 7\n\t"
- "ldrd r12, lr, [%[sha512]]\n\t"
- "eor r4, r4, r6\n\t"
- "eor r5, r5, r7\n\t"
- "adds r12, r12, r4\n\t"
- "adc lr, lr, r5\n\t"
- "ldrd r6, r7, [%[sha512], #8]\n\t"
- "ldrd r4, r5, [%[sha512], #16]\n\t"
- "strd r12, lr, [%[sha512]]\n\t"
- "eor r6, r6, r4\n\t"
- "eor r7, r7, r5\n\t"
- "and r8, r8, r6\n\t"
- "and r9, r9, r7\n\t"
- "eor r8, r8, r4\n\t"
- "eor r9, r9, r5\n\t"
- "ldrd r4, r5, [%[sha512]]\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r4, r5, [%[sha512]]\n\t"
- "mov r8, r6\n\t"
- "mov r9, r7\n\t"
- /* Add in digest from start */
- "ldrd r12, lr, [%[sha512]]\n\t"
- "ldrd r4, r5, [%[sha512], #8]\n\t"
- "ldrd r6, r7, [sp, #128]\n\t"
- "ldrd r8, r9, [sp, #136]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r12, lr, [%[sha512]]\n\t"
- "strd r4, r5, [%[sha512], #8]\n\t"
- "strd r12, lr, [sp, #128]\n\t"
- "strd r4, r5, [sp, #136]\n\t"
- "ldrd r12, lr, [%[sha512], #16]\n\t"
- "ldrd r4, r5, [%[sha512], #24]\n\t"
- "ldrd r6, r7, [sp, #144]\n\t"
- "ldrd r8, r9, [sp, #152]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r12, lr, [%[sha512], #16]\n\t"
- "strd r4, r5, [%[sha512], #24]\n\t"
- "strd r12, lr, [sp, #144]\n\t"
- "strd r4, r5, [sp, #152]\n\t"
- "ldrd r12, lr, [%[sha512], #32]\n\t"
- "ldrd r4, r5, [%[sha512], #40]\n\t"
- "ldrd r6, r7, [sp, #160]\n\t"
- "ldrd r8, r9, [sp, #168]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r12, lr, [%[sha512], #32]\n\t"
- "strd r4, r5, [%[sha512], #40]\n\t"
- "strd r12, lr, [sp, #160]\n\t"
- "strd r4, r5, [sp, #168]\n\t"
- "ldrd r12, lr, [%[sha512], #48]\n\t"
- "ldrd r4, r5, [%[sha512], #56]\n\t"
- "ldrd r6, r7, [sp, #176]\n\t"
- "ldrd r8, r9, [sp, #184]\n\t"
- "adds r12, r12, r6\n\t"
- "adc lr, lr, r7\n\t"
- "adds r4, r4, r8\n\t"
- "adc r5, r5, r9\n\t"
- "strd r12, lr, [%[sha512], #48]\n\t"
- "strd r4, r5, [%[sha512], #56]\n\t"
- "strd r12, lr, [sp, #176]\n\t"
- "strd r4, r5, [sp, #184]\n\t"
- "subs %[len], %[len], #0x80\n\t"
- "sub r3, r3, #0x200\n\t"
- "add %[data], %[data], #0x80\n\t"
- "bne L_sha512_len_neon_begin_%=\n\t"
- "eor r0, r0, r0\n\t"
- "add sp, sp, #0xc0\n\t"
- : [sha512] "+r" (sha512), [data] "+r" (data), [len] "+r" (len)
- : [L_SHA512_transform_len_k] "r" (L_SHA512_transform_len_k)
- : "memory", "r3", "r12", "lr", "r4", "r5", "r6", "r7", "r8", "r9", "r10"
- );
-}
-
-#endif /* WOLFSSL_ARMASM_NO_NEON */
-#include <wolfssl/wolfcrypt/sha512.h>
-
-#ifndef WOLFSSL_ARMASM_NO_NEON
-static const uint64_t L_SHA512_transform_neon_len_k[] = {
- 0x428a2f98d728ae22UL,
- 0x7137449123ef65cdUL,
- 0xb5c0fbcfec4d3b2fUL,
- 0xe9b5dba58189dbbcUL,
- 0x3956c25bf348b538UL,
- 0x59f111f1b605d019UL,
- 0x923f82a4af194f9bUL,
- 0xab1c5ed5da6d8118UL,
- 0xd807aa98a3030242UL,
- 0x12835b0145706fbeUL,
- 0x243185be4ee4b28cUL,
- 0x550c7dc3d5ffb4e2UL,
- 0x72be5d74f27b896fUL,
- 0x80deb1fe3b1696b1UL,
- 0x9bdc06a725c71235UL,
- 0xc19bf174cf692694UL,
- 0xe49b69c19ef14ad2UL,
- 0xefbe4786384f25e3UL,
- 0xfc19dc68b8cd5b5UL,
- 0x240ca1cc77ac9c65UL,
- 0x2de92c6f592b0275UL,
- 0x4a7484aa6ea6e483UL,
- 0x5cb0a9dcbd41fbd4UL,
- 0x76f988da831153b5UL,
- 0x983e5152ee66dfabUL,
- 0xa831c66d2db43210UL,
- 0xb00327c898fb213fUL,
- 0xbf597fc7beef0ee4UL,
- 0xc6e00bf33da88fc2UL,
- 0xd5a79147930aa725UL,
- 0x6ca6351e003826fUL,
- 0x142929670a0e6e70UL,
- 0x27b70a8546d22ffcUL,
- 0x2e1b21385c26c926UL,
- 0x4d2c6dfc5ac42aedUL,
- 0x53380d139d95b3dfUL,
- 0x650a73548baf63deUL,
- 0x766a0abb3c77b2a8UL,
- 0x81c2c92e47edaee6UL,
- 0x92722c851482353bUL,
- 0xa2bfe8a14cf10364UL,
- 0xa81a664bbc423001UL,
- 0xc24b8b70d0f89791UL,
- 0xc76c51a30654be30UL,
- 0xd192e819d6ef5218UL,
- 0xd69906245565a910UL,
- 0xf40e35855771202aUL,
- 0x106aa07032bbd1b8UL,
- 0x19a4c116b8d2d0c8UL,
- 0x1e376c085141ab53UL,
- 0x2748774cdf8eeb99UL,
- 0x34b0bcb5e19b48a8UL,
- 0x391c0cb3c5c95a63UL,
- 0x4ed8aa4ae3418acbUL,
- 0x5b9cca4f7763e373UL,
- 0x682e6ff3d6b2b8a3UL,
- 0x748f82ee5defb2fcUL,
- 0x78a5636f43172f60UL,
- 0x84c87814a1f0ab72UL,
- 0x8cc702081a6439ecUL,
- 0x90befffa23631e28UL,
- 0xa4506cebde82bde9UL,
- 0xbef9a3f7b2c67915UL,
- 0xc67178f2e372532bUL,
- 0xca273eceea26619cUL,
- 0xd186b8c721c0c207UL,
- 0xeada7dd6cde0eb1eUL,
- 0xf57d4f7fee6ed178UL,
- 0x6f067aa72176fbaUL,
- 0xa637dc5a2c898a6UL,
- 0x113f9804bef90daeUL,
- 0x1b710b35131c471bUL,
- 0x28db77f523047d84UL,
- 0x32caab7b40c72493UL,
- 0x3c9ebe0a15c9bebcUL,
- 0x431d67c49c100d4cUL,
- 0x4cc5d4becb3e42b6UL,
- 0x597f299cfc657e2aUL,
- 0x5fcb6fab3ad6faecUL,
- 0x6c44198c4a475817UL,
-};
-
-void Transform_Sha512_Len(wc_Sha512* sha512, const byte* data, word32 len)
-{
- __asm__ __volatile__ (
- /* Load digest into working vars */
- "vldm.64 %[sha512], {d0-d7}\n\t"
- /* Start of loop processing a block */
- "\n"
- "L_sha512_len_neon_begin_%=: \n\t"
- /* Load W */
- "vldm.64 %[data]!, {d16-d31}\n\t"
- "vrev64.8 q8, q8\n\t"
- "vrev64.8 q9, q9\n\t"
- "vrev64.8 q10, q10\n\t"
- "vrev64.8 q11, q11\n\t"
- "vrev64.8 q12, q12\n\t"
- "vrev64.8 q13, q13\n\t"
- "vrev64.8 q14, q14\n\t"
- "vrev64.8 q15, q15\n\t"
- "mov r3, %[L_SHA512_transform_neon_len_k]\n\t"
- "mov r12, #4\n\t"
- /* Start of 16 rounds */
- "\n"
- "L_sha512_len_neon_start_%=: \n\t"
- /* Round 0 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d4, #50\n\t"
- "vsri.u64 d8, d4, #14\n\t"
- "vshl.u64 d9, d0, #36\n\t"
- "vsri.u64 d9, d0, #28\n\t"
- "vshl.u64 d10, d4, #46\n\t"
- "vsri.u64 d10, d4, #18\n\t"
- "vshl.u64 d11, d0, #30\n\t"
- "vsri.u64 d11, d0, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d4, #23\n\t"
- "vsri.u64 d10, d4, #41\n\t"
- "vshl.u64 d11, d0, #25\n\t"
- "vsri.u64 d11, d0, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d7, d8\n\t"
- "vadd.i64 d12, d16\n\t"
- "vmov d8, d4\n\t"
- "veor d10, d1, d2\n\t"
- "vadd.i64 d7, d12\n\t"
- "vbsl d8, d5, d6\n\t"
- "vbsl d10, d0, d2\n\t"
- "vadd.i64 d7, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d3, d7\n\t"
- "vadd.i64 d7, d10\n\t"
- /* Round 1 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d3, #50\n\t"
- "vsri.u64 d8, d3, #14\n\t"
- "vshl.u64 d9, d7, #36\n\t"
- "vsri.u64 d9, d7, #28\n\t"
- "vshl.u64 d10, d3, #46\n\t"
- "vsri.u64 d10, d3, #18\n\t"
- "vshl.u64 d11, d7, #30\n\t"
- "vsri.u64 d11, d7, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d3, #23\n\t"
- "vsri.u64 d10, d3, #41\n\t"
- "vshl.u64 d11, d7, #25\n\t"
- "vsri.u64 d11, d7, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d6, d8\n\t"
- "vadd.i64 d12, d17\n\t"
- "vmov d8, d3\n\t"
- "veor d10, d0, d1\n\t"
- "vadd.i64 d6, d12\n\t"
- "vbsl d8, d4, d5\n\t"
- "vbsl d10, d7, d1\n\t"
- "vadd.i64 d6, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d2, d6\n\t"
- "vadd.i64 d6, d10\n\t"
- /* Calc new W[0]-W[1] */
- "vext.8 q6, q8, q9, #8\n\t"
- "vshl.u64 q4, q15, #45\n\t"
- "vsri.u64 q4, q15, #19\n\t"
- "vshl.u64 q5, q15, #3\n\t"
- "vsri.u64 q5, q15, #61\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q4, q15, #6\n\t"
- "veor q5, q4\n\t"
- "vadd.i64 q8, q5\n\t"
- "vext.8 q7, q12, q13, #8\n\t"
- "vadd.i64 q8, q7\n\t"
- "vshl.u64 q4, q6, #63\n\t"
- "vsri.u64 q4, q6, #1\n\t"
- "vshl.u64 q5, q6, #56\n\t"
- "vsri.u64 q5, q6, #8\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q6, #7\n\t"
- "veor q5, q6\n\t"
- "vadd.i64 q8, q5\n\t"
- /* Round 2 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d2, #50\n\t"
- "vsri.u64 d8, d2, #14\n\t"
- "vshl.u64 d9, d6, #36\n\t"
- "vsri.u64 d9, d6, #28\n\t"
- "vshl.u64 d10, d2, #46\n\t"
- "vsri.u64 d10, d2, #18\n\t"
- "vshl.u64 d11, d6, #30\n\t"
- "vsri.u64 d11, d6, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d2, #23\n\t"
- "vsri.u64 d10, d2, #41\n\t"
- "vshl.u64 d11, d6, #25\n\t"
- "vsri.u64 d11, d6, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d5, d8\n\t"
- "vadd.i64 d12, d18\n\t"
- "vmov d8, d2\n\t"
- "veor d10, d7, d0\n\t"
- "vadd.i64 d5, d12\n\t"
- "vbsl d8, d3, d4\n\t"
- "vbsl d10, d6, d0\n\t"
- "vadd.i64 d5, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d1, d5\n\t"
- "vadd.i64 d5, d10\n\t"
- /* Round 3 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d1, #50\n\t"
- "vsri.u64 d8, d1, #14\n\t"
- "vshl.u64 d9, d5, #36\n\t"
- "vsri.u64 d9, d5, #28\n\t"
- "vshl.u64 d10, d1, #46\n\t"
- "vsri.u64 d10, d1, #18\n\t"
- "vshl.u64 d11, d5, #30\n\t"
- "vsri.u64 d11, d5, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d1, #23\n\t"
- "vsri.u64 d10, d1, #41\n\t"
- "vshl.u64 d11, d5, #25\n\t"
- "vsri.u64 d11, d5, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d4, d8\n\t"
- "vadd.i64 d12, d19\n\t"
- "vmov d8, d1\n\t"
- "veor d10, d6, d7\n\t"
- "vadd.i64 d4, d12\n\t"
- "vbsl d8, d2, d3\n\t"
- "vbsl d10, d5, d7\n\t"
- "vadd.i64 d4, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d0, d4\n\t"
- "vadd.i64 d4, d10\n\t"
- /* Calc new W[2]-W[3] */
- "vext.8 q6, q9, q10, #8\n\t"
- "vshl.u64 q4, q8, #45\n\t"
- "vsri.u64 q4, q8, #19\n\t"
- "vshl.u64 q5, q8, #3\n\t"
- "vsri.u64 q5, q8, #61\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q4, q8, #6\n\t"
- "veor q5, q4\n\t"
- "vadd.i64 q9, q5\n\t"
- "vext.8 q7, q13, q14, #8\n\t"
- "vadd.i64 q9, q7\n\t"
- "vshl.u64 q4, q6, #63\n\t"
- "vsri.u64 q4, q6, #1\n\t"
- "vshl.u64 q5, q6, #56\n\t"
- "vsri.u64 q5, q6, #8\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q6, #7\n\t"
- "veor q5, q6\n\t"
- "vadd.i64 q9, q5\n\t"
- /* Round 4 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d0, #50\n\t"
- "vsri.u64 d8, d0, #14\n\t"
- "vshl.u64 d9, d4, #36\n\t"
- "vsri.u64 d9, d4, #28\n\t"
- "vshl.u64 d10, d0, #46\n\t"
- "vsri.u64 d10, d0, #18\n\t"
- "vshl.u64 d11, d4, #30\n\t"
- "vsri.u64 d11, d4, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d0, #23\n\t"
- "vsri.u64 d10, d0, #41\n\t"
- "vshl.u64 d11, d4, #25\n\t"
- "vsri.u64 d11, d4, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d3, d8\n\t"
- "vadd.i64 d12, d20\n\t"
- "vmov d8, d0\n\t"
- "veor d10, d5, d6\n\t"
- "vadd.i64 d3, d12\n\t"
- "vbsl d8, d1, d2\n\t"
- "vbsl d10, d4, d6\n\t"
- "vadd.i64 d3, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d7, d3\n\t"
- "vadd.i64 d3, d10\n\t"
- /* Round 5 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d7, #50\n\t"
- "vsri.u64 d8, d7, #14\n\t"
- "vshl.u64 d9, d3, #36\n\t"
- "vsri.u64 d9, d3, #28\n\t"
- "vshl.u64 d10, d7, #46\n\t"
- "vsri.u64 d10, d7, #18\n\t"
- "vshl.u64 d11, d3, #30\n\t"
- "vsri.u64 d11, d3, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d7, #23\n\t"
- "vsri.u64 d10, d7, #41\n\t"
- "vshl.u64 d11, d3, #25\n\t"
- "vsri.u64 d11, d3, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d2, d8\n\t"
- "vadd.i64 d12, d21\n\t"
- "vmov d8, d7\n\t"
- "veor d10, d4, d5\n\t"
- "vadd.i64 d2, d12\n\t"
- "vbsl d8, d0, d1\n\t"
- "vbsl d10, d3, d5\n\t"
- "vadd.i64 d2, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d6, d2\n\t"
- "vadd.i64 d2, d10\n\t"
- /* Calc new W[4]-W[5] */
- "vext.8 q6, q10, q11, #8\n\t"
- "vshl.u64 q4, q9, #45\n\t"
- "vsri.u64 q4, q9, #19\n\t"
- "vshl.u64 q5, q9, #3\n\t"
- "vsri.u64 q5, q9, #61\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q4, q9, #6\n\t"
- "veor q5, q4\n\t"
- "vadd.i64 q10, q5\n\t"
- "vext.8 q7, q14, q15, #8\n\t"
- "vadd.i64 q10, q7\n\t"
- "vshl.u64 q4, q6, #63\n\t"
- "vsri.u64 q4, q6, #1\n\t"
- "vshl.u64 q5, q6, #56\n\t"
- "vsri.u64 q5, q6, #8\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q6, #7\n\t"
- "veor q5, q6\n\t"
- "vadd.i64 q10, q5\n\t"
- /* Round 6 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d6, #50\n\t"
- "vsri.u64 d8, d6, #14\n\t"
- "vshl.u64 d9, d2, #36\n\t"
- "vsri.u64 d9, d2, #28\n\t"
- "vshl.u64 d10, d6, #46\n\t"
- "vsri.u64 d10, d6, #18\n\t"
- "vshl.u64 d11, d2, #30\n\t"
- "vsri.u64 d11, d2, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d6, #23\n\t"
- "vsri.u64 d10, d6, #41\n\t"
- "vshl.u64 d11, d2, #25\n\t"
- "vsri.u64 d11, d2, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d1, d8\n\t"
- "vadd.i64 d12, d22\n\t"
- "vmov d8, d6\n\t"
- "veor d10, d3, d4\n\t"
- "vadd.i64 d1, d12\n\t"
- "vbsl d8, d7, d0\n\t"
- "vbsl d10, d2, d4\n\t"
- "vadd.i64 d1, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d5, d1\n\t"
- "vadd.i64 d1, d10\n\t"
- /* Round 7 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d5, #50\n\t"
- "vsri.u64 d8, d5, #14\n\t"
- "vshl.u64 d9, d1, #36\n\t"
- "vsri.u64 d9, d1, #28\n\t"
- "vshl.u64 d10, d5, #46\n\t"
- "vsri.u64 d10, d5, #18\n\t"
- "vshl.u64 d11, d1, #30\n\t"
- "vsri.u64 d11, d1, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d5, #23\n\t"
- "vsri.u64 d10, d5, #41\n\t"
- "vshl.u64 d11, d1, #25\n\t"
- "vsri.u64 d11, d1, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d0, d8\n\t"
- "vadd.i64 d12, d23\n\t"
- "vmov d8, d5\n\t"
- "veor d10, d2, d3\n\t"
- "vadd.i64 d0, d12\n\t"
- "vbsl d8, d6, d7\n\t"
- "vbsl d10, d1, d3\n\t"
- "vadd.i64 d0, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d4, d0\n\t"
- "vadd.i64 d0, d10\n\t"
- /* Calc new W[6]-W[7] */
- "vext.8 q6, q11, q12, #8\n\t"
- "vshl.u64 q4, q10, #45\n\t"
- "vsri.u64 q4, q10, #19\n\t"
- "vshl.u64 q5, q10, #3\n\t"
- "vsri.u64 q5, q10, #61\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q4, q10, #6\n\t"
- "veor q5, q4\n\t"
- "vadd.i64 q11, q5\n\t"
- "vext.8 q7, q15, q8, #8\n\t"
- "vadd.i64 q11, q7\n\t"
- "vshl.u64 q4, q6, #63\n\t"
- "vsri.u64 q4, q6, #1\n\t"
- "vshl.u64 q5, q6, #56\n\t"
- "vsri.u64 q5, q6, #8\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q6, #7\n\t"
- "veor q5, q6\n\t"
- "vadd.i64 q11, q5\n\t"
- /* Round 8 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d4, #50\n\t"
- "vsri.u64 d8, d4, #14\n\t"
- "vshl.u64 d9, d0, #36\n\t"
- "vsri.u64 d9, d0, #28\n\t"
- "vshl.u64 d10, d4, #46\n\t"
- "vsri.u64 d10, d4, #18\n\t"
- "vshl.u64 d11, d0, #30\n\t"
- "vsri.u64 d11, d0, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d4, #23\n\t"
- "vsri.u64 d10, d4, #41\n\t"
- "vshl.u64 d11, d0, #25\n\t"
- "vsri.u64 d11, d0, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d7, d8\n\t"
- "vadd.i64 d12, d24\n\t"
- "vmov d8, d4\n\t"
- "veor d10, d1, d2\n\t"
- "vadd.i64 d7, d12\n\t"
- "vbsl d8, d5, d6\n\t"
- "vbsl d10, d0, d2\n\t"
- "vadd.i64 d7, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d3, d7\n\t"
- "vadd.i64 d7, d10\n\t"
- /* Round 9 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d3, #50\n\t"
- "vsri.u64 d8, d3, #14\n\t"
- "vshl.u64 d9, d7, #36\n\t"
- "vsri.u64 d9, d7, #28\n\t"
- "vshl.u64 d10, d3, #46\n\t"
- "vsri.u64 d10, d3, #18\n\t"
- "vshl.u64 d11, d7, #30\n\t"
- "vsri.u64 d11, d7, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d3, #23\n\t"
- "vsri.u64 d10, d3, #41\n\t"
- "vshl.u64 d11, d7, #25\n\t"
- "vsri.u64 d11, d7, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d6, d8\n\t"
- "vadd.i64 d12, d25\n\t"
- "vmov d8, d3\n\t"
- "veor d10, d0, d1\n\t"
- "vadd.i64 d6, d12\n\t"
- "vbsl d8, d4, d5\n\t"
- "vbsl d10, d7, d1\n\t"
- "vadd.i64 d6, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d2, d6\n\t"
- "vadd.i64 d6, d10\n\t"
- /* Calc new W[8]-W[9] */
- "vext.8 q6, q12, q13, #8\n\t"
- "vshl.u64 q4, q11, #45\n\t"
- "vsri.u64 q4, q11, #19\n\t"
- "vshl.u64 q5, q11, #3\n\t"
- "vsri.u64 q5, q11, #61\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q4, q11, #6\n\t"
- "veor q5, q4\n\t"
- "vadd.i64 q12, q5\n\t"
- "vext.8 q7, q8, q9, #8\n\t"
- "vadd.i64 q12, q7\n\t"
- "vshl.u64 q4, q6, #63\n\t"
- "vsri.u64 q4, q6, #1\n\t"
- "vshl.u64 q5, q6, #56\n\t"
- "vsri.u64 q5, q6, #8\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q6, #7\n\t"
- "veor q5, q6\n\t"
- "vadd.i64 q12, q5\n\t"
- /* Round 10 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d2, #50\n\t"
- "vsri.u64 d8, d2, #14\n\t"
- "vshl.u64 d9, d6, #36\n\t"
- "vsri.u64 d9, d6, #28\n\t"
- "vshl.u64 d10, d2, #46\n\t"
- "vsri.u64 d10, d2, #18\n\t"
- "vshl.u64 d11, d6, #30\n\t"
- "vsri.u64 d11, d6, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d2, #23\n\t"
- "vsri.u64 d10, d2, #41\n\t"
- "vshl.u64 d11, d6, #25\n\t"
- "vsri.u64 d11, d6, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d5, d8\n\t"
- "vadd.i64 d12, d26\n\t"
- "vmov d8, d2\n\t"
- "veor d10, d7, d0\n\t"
- "vadd.i64 d5, d12\n\t"
- "vbsl d8, d3, d4\n\t"
- "vbsl d10, d6, d0\n\t"
- "vadd.i64 d5, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d1, d5\n\t"
- "vadd.i64 d5, d10\n\t"
- /* Round 11 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d1, #50\n\t"
- "vsri.u64 d8, d1, #14\n\t"
- "vshl.u64 d9, d5, #36\n\t"
- "vsri.u64 d9, d5, #28\n\t"
- "vshl.u64 d10, d1, #46\n\t"
- "vsri.u64 d10, d1, #18\n\t"
- "vshl.u64 d11, d5, #30\n\t"
- "vsri.u64 d11, d5, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d1, #23\n\t"
- "vsri.u64 d10, d1, #41\n\t"
- "vshl.u64 d11, d5, #25\n\t"
- "vsri.u64 d11, d5, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d4, d8\n\t"
- "vadd.i64 d12, d27\n\t"
- "vmov d8, d1\n\t"
- "veor d10, d6, d7\n\t"
- "vadd.i64 d4, d12\n\t"
- "vbsl d8, d2, d3\n\t"
- "vbsl d10, d5, d7\n\t"
- "vadd.i64 d4, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d0, d4\n\t"
- "vadd.i64 d4, d10\n\t"
- /* Calc new W[10]-W[11] */
- "vext.8 q6, q13, q14, #8\n\t"
- "vshl.u64 q4, q12, #45\n\t"
- "vsri.u64 q4, q12, #19\n\t"
- "vshl.u64 q5, q12, #3\n\t"
- "vsri.u64 q5, q12, #61\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q4, q12, #6\n\t"
- "veor q5, q4\n\t"
- "vadd.i64 q13, q5\n\t"
- "vext.8 q7, q9, q10, #8\n\t"
- "vadd.i64 q13, q7\n\t"
- "vshl.u64 q4, q6, #63\n\t"
- "vsri.u64 q4, q6, #1\n\t"
- "vshl.u64 q5, q6, #56\n\t"
- "vsri.u64 q5, q6, #8\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q6, #7\n\t"
- "veor q5, q6\n\t"
- "vadd.i64 q13, q5\n\t"
- /* Round 12 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d0, #50\n\t"
- "vsri.u64 d8, d0, #14\n\t"
- "vshl.u64 d9, d4, #36\n\t"
- "vsri.u64 d9, d4, #28\n\t"
- "vshl.u64 d10, d0, #46\n\t"
- "vsri.u64 d10, d0, #18\n\t"
- "vshl.u64 d11, d4, #30\n\t"
- "vsri.u64 d11, d4, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d0, #23\n\t"
- "vsri.u64 d10, d0, #41\n\t"
- "vshl.u64 d11, d4, #25\n\t"
- "vsri.u64 d11, d4, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d3, d8\n\t"
- "vadd.i64 d12, d28\n\t"
- "vmov d8, d0\n\t"
- "veor d10, d5, d6\n\t"
- "vadd.i64 d3, d12\n\t"
- "vbsl d8, d1, d2\n\t"
- "vbsl d10, d4, d6\n\t"
- "vadd.i64 d3, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d7, d3\n\t"
- "vadd.i64 d3, d10\n\t"
- /* Round 13 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d7, #50\n\t"
- "vsri.u64 d8, d7, #14\n\t"
- "vshl.u64 d9, d3, #36\n\t"
- "vsri.u64 d9, d3, #28\n\t"
- "vshl.u64 d10, d7, #46\n\t"
- "vsri.u64 d10, d7, #18\n\t"
- "vshl.u64 d11, d3, #30\n\t"
- "vsri.u64 d11, d3, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d7, #23\n\t"
- "vsri.u64 d10, d7, #41\n\t"
- "vshl.u64 d11, d3, #25\n\t"
- "vsri.u64 d11, d3, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d2, d8\n\t"
- "vadd.i64 d12, d29\n\t"
- "vmov d8, d7\n\t"
- "veor d10, d4, d5\n\t"
- "vadd.i64 d2, d12\n\t"
- "vbsl d8, d0, d1\n\t"
- "vbsl d10, d3, d5\n\t"
- "vadd.i64 d2, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d6, d2\n\t"
- "vadd.i64 d2, d10\n\t"
- /* Calc new W[12]-W[13] */
- "vext.8 q6, q14, q15, #8\n\t"
- "vshl.u64 q4, q13, #45\n\t"
- "vsri.u64 q4, q13, #19\n\t"
- "vshl.u64 q5, q13, #3\n\t"
- "vsri.u64 q5, q13, #61\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q4, q13, #6\n\t"
- "veor q5, q4\n\t"
- "vadd.i64 q14, q5\n\t"
- "vext.8 q7, q10, q11, #8\n\t"
- "vadd.i64 q14, q7\n\t"
- "vshl.u64 q4, q6, #63\n\t"
- "vsri.u64 q4, q6, #1\n\t"
- "vshl.u64 q5, q6, #56\n\t"
- "vsri.u64 q5, q6, #8\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q6, #7\n\t"
- "veor q5, q6\n\t"
- "vadd.i64 q14, q5\n\t"
- /* Round 14 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d6, #50\n\t"
- "vsri.u64 d8, d6, #14\n\t"
- "vshl.u64 d9, d2, #36\n\t"
- "vsri.u64 d9, d2, #28\n\t"
- "vshl.u64 d10, d6, #46\n\t"
- "vsri.u64 d10, d6, #18\n\t"
- "vshl.u64 d11, d2, #30\n\t"
- "vsri.u64 d11, d2, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d6, #23\n\t"
- "vsri.u64 d10, d6, #41\n\t"
- "vshl.u64 d11, d2, #25\n\t"
- "vsri.u64 d11, d2, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d1, d8\n\t"
- "vadd.i64 d12, d30\n\t"
- "vmov d8, d6\n\t"
- "veor d10, d3, d4\n\t"
- "vadd.i64 d1, d12\n\t"
- "vbsl d8, d7, d0\n\t"
- "vbsl d10, d2, d4\n\t"
- "vadd.i64 d1, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d5, d1\n\t"
- "vadd.i64 d1, d10\n\t"
- /* Round 15 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d5, #50\n\t"
- "vsri.u64 d8, d5, #14\n\t"
- "vshl.u64 d9, d1, #36\n\t"
- "vsri.u64 d9, d1, #28\n\t"
- "vshl.u64 d10, d5, #46\n\t"
- "vsri.u64 d10, d5, #18\n\t"
- "vshl.u64 d11, d1, #30\n\t"
- "vsri.u64 d11, d1, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d5, #23\n\t"
- "vsri.u64 d10, d5, #41\n\t"
- "vshl.u64 d11, d1, #25\n\t"
- "vsri.u64 d11, d1, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d0, d8\n\t"
- "vadd.i64 d12, d31\n\t"
- "vmov d8, d5\n\t"
- "veor d10, d2, d3\n\t"
- "vadd.i64 d0, d12\n\t"
- "vbsl d8, d6, d7\n\t"
- "vbsl d10, d1, d3\n\t"
- "vadd.i64 d0, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d4, d0\n\t"
- "vadd.i64 d0, d10\n\t"
- /* Calc new W[14]-W[15] */
- "vext.8 q6, q15, q8, #8\n\t"
- "vshl.u64 q4, q14, #45\n\t"
- "vsri.u64 q4, q14, #19\n\t"
- "vshl.u64 q5, q14, #3\n\t"
- "vsri.u64 q5, q14, #61\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q4, q14, #6\n\t"
- "veor q5, q4\n\t"
- "vadd.i64 q15, q5\n\t"
- "vext.8 q7, q11, q12, #8\n\t"
- "vadd.i64 q15, q7\n\t"
- "vshl.u64 q4, q6, #63\n\t"
- "vsri.u64 q4, q6, #1\n\t"
- "vshl.u64 q5, q6, #56\n\t"
- "vsri.u64 q5, q6, #8\n\t"
- "veor q5, q4\n\t"
- "vshr.u64 q6, #7\n\t"
- "veor q5, q6\n\t"
- "vadd.i64 q15, q5\n\t"
- "subs r12, r12, #1\n\t"
- "bne L_sha512_len_neon_start_%=\n\t"
- /* Round 0 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d4, #50\n\t"
- "vsri.u64 d8, d4, #14\n\t"
- "vshl.u64 d9, d0, #36\n\t"
- "vsri.u64 d9, d0, #28\n\t"
- "vshl.u64 d10, d4, #46\n\t"
- "vsri.u64 d10, d4, #18\n\t"
- "vshl.u64 d11, d0, #30\n\t"
- "vsri.u64 d11, d0, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d4, #23\n\t"
- "vsri.u64 d10, d4, #41\n\t"
- "vshl.u64 d11, d0, #25\n\t"
- "vsri.u64 d11, d0, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d7, d8\n\t"
- "vadd.i64 d12, d16\n\t"
- "vmov d8, d4\n\t"
- "veor d10, d1, d2\n\t"
- "vadd.i64 d7, d12\n\t"
- "vbsl d8, d5, d6\n\t"
- "vbsl d10, d0, d2\n\t"
- "vadd.i64 d7, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d3, d7\n\t"
- "vadd.i64 d7, d10\n\t"
- /* Round 1 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d3, #50\n\t"
- "vsri.u64 d8, d3, #14\n\t"
- "vshl.u64 d9, d7, #36\n\t"
- "vsri.u64 d9, d7, #28\n\t"
- "vshl.u64 d10, d3, #46\n\t"
- "vsri.u64 d10, d3, #18\n\t"
- "vshl.u64 d11, d7, #30\n\t"
- "vsri.u64 d11, d7, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d3, #23\n\t"
- "vsri.u64 d10, d3, #41\n\t"
- "vshl.u64 d11, d7, #25\n\t"
- "vsri.u64 d11, d7, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d6, d8\n\t"
- "vadd.i64 d12, d17\n\t"
- "vmov d8, d3\n\t"
- "veor d10, d0, d1\n\t"
- "vadd.i64 d6, d12\n\t"
- "vbsl d8, d4, d5\n\t"
- "vbsl d10, d7, d1\n\t"
- "vadd.i64 d6, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d2, d6\n\t"
- "vadd.i64 d6, d10\n\t"
- /* Round 2 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d2, #50\n\t"
- "vsri.u64 d8, d2, #14\n\t"
- "vshl.u64 d9, d6, #36\n\t"
- "vsri.u64 d9, d6, #28\n\t"
- "vshl.u64 d10, d2, #46\n\t"
- "vsri.u64 d10, d2, #18\n\t"
- "vshl.u64 d11, d6, #30\n\t"
- "vsri.u64 d11, d6, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d2, #23\n\t"
- "vsri.u64 d10, d2, #41\n\t"
- "vshl.u64 d11, d6, #25\n\t"
- "vsri.u64 d11, d6, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d5, d8\n\t"
- "vadd.i64 d12, d18\n\t"
- "vmov d8, d2\n\t"
- "veor d10, d7, d0\n\t"
- "vadd.i64 d5, d12\n\t"
- "vbsl d8, d3, d4\n\t"
- "vbsl d10, d6, d0\n\t"
- "vadd.i64 d5, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d1, d5\n\t"
- "vadd.i64 d5, d10\n\t"
- /* Round 3 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d1, #50\n\t"
- "vsri.u64 d8, d1, #14\n\t"
- "vshl.u64 d9, d5, #36\n\t"
- "vsri.u64 d9, d5, #28\n\t"
- "vshl.u64 d10, d1, #46\n\t"
- "vsri.u64 d10, d1, #18\n\t"
- "vshl.u64 d11, d5, #30\n\t"
- "vsri.u64 d11, d5, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d1, #23\n\t"
- "vsri.u64 d10, d1, #41\n\t"
- "vshl.u64 d11, d5, #25\n\t"
- "vsri.u64 d11, d5, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d4, d8\n\t"
- "vadd.i64 d12, d19\n\t"
- "vmov d8, d1\n\t"
- "veor d10, d6, d7\n\t"
- "vadd.i64 d4, d12\n\t"
- "vbsl d8, d2, d3\n\t"
- "vbsl d10, d5, d7\n\t"
- "vadd.i64 d4, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d0, d4\n\t"
- "vadd.i64 d4, d10\n\t"
- /* Round 4 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d0, #50\n\t"
- "vsri.u64 d8, d0, #14\n\t"
- "vshl.u64 d9, d4, #36\n\t"
- "vsri.u64 d9, d4, #28\n\t"
- "vshl.u64 d10, d0, #46\n\t"
- "vsri.u64 d10, d0, #18\n\t"
- "vshl.u64 d11, d4, #30\n\t"
- "vsri.u64 d11, d4, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d0, #23\n\t"
- "vsri.u64 d10, d0, #41\n\t"
- "vshl.u64 d11, d4, #25\n\t"
- "vsri.u64 d11, d4, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d3, d8\n\t"
- "vadd.i64 d12, d20\n\t"
- "vmov d8, d0\n\t"
- "veor d10, d5, d6\n\t"
- "vadd.i64 d3, d12\n\t"
- "vbsl d8, d1, d2\n\t"
- "vbsl d10, d4, d6\n\t"
- "vadd.i64 d3, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d7, d3\n\t"
- "vadd.i64 d3, d10\n\t"
- /* Round 5 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d7, #50\n\t"
- "vsri.u64 d8, d7, #14\n\t"
- "vshl.u64 d9, d3, #36\n\t"
- "vsri.u64 d9, d3, #28\n\t"
- "vshl.u64 d10, d7, #46\n\t"
- "vsri.u64 d10, d7, #18\n\t"
- "vshl.u64 d11, d3, #30\n\t"
- "vsri.u64 d11, d3, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d7, #23\n\t"
- "vsri.u64 d10, d7, #41\n\t"
- "vshl.u64 d11, d3, #25\n\t"
- "vsri.u64 d11, d3, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d2, d8\n\t"
- "vadd.i64 d12, d21\n\t"
- "vmov d8, d7\n\t"
- "veor d10, d4, d5\n\t"
- "vadd.i64 d2, d12\n\t"
- "vbsl d8, d0, d1\n\t"
- "vbsl d10, d3, d5\n\t"
- "vadd.i64 d2, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d6, d2\n\t"
- "vadd.i64 d2, d10\n\t"
- /* Round 6 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d6, #50\n\t"
- "vsri.u64 d8, d6, #14\n\t"
- "vshl.u64 d9, d2, #36\n\t"
- "vsri.u64 d9, d2, #28\n\t"
- "vshl.u64 d10, d6, #46\n\t"
- "vsri.u64 d10, d6, #18\n\t"
- "vshl.u64 d11, d2, #30\n\t"
- "vsri.u64 d11, d2, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d6, #23\n\t"
- "vsri.u64 d10, d6, #41\n\t"
- "vshl.u64 d11, d2, #25\n\t"
- "vsri.u64 d11, d2, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d1, d8\n\t"
- "vadd.i64 d12, d22\n\t"
- "vmov d8, d6\n\t"
- "veor d10, d3, d4\n\t"
- "vadd.i64 d1, d12\n\t"
- "vbsl d8, d7, d0\n\t"
- "vbsl d10, d2, d4\n\t"
- "vadd.i64 d1, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d5, d1\n\t"
- "vadd.i64 d1, d10\n\t"
- /* Round 7 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d5, #50\n\t"
- "vsri.u64 d8, d5, #14\n\t"
- "vshl.u64 d9, d1, #36\n\t"
- "vsri.u64 d9, d1, #28\n\t"
- "vshl.u64 d10, d5, #46\n\t"
- "vsri.u64 d10, d5, #18\n\t"
- "vshl.u64 d11, d1, #30\n\t"
- "vsri.u64 d11, d1, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d5, #23\n\t"
- "vsri.u64 d10, d5, #41\n\t"
- "vshl.u64 d11, d1, #25\n\t"
- "vsri.u64 d11, d1, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d0, d8\n\t"
- "vadd.i64 d12, d23\n\t"
- "vmov d8, d5\n\t"
- "veor d10, d2, d3\n\t"
- "vadd.i64 d0, d12\n\t"
- "vbsl d8, d6, d7\n\t"
- "vbsl d10, d1, d3\n\t"
- "vadd.i64 d0, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d4, d0\n\t"
- "vadd.i64 d0, d10\n\t"
- /* Round 8 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d4, #50\n\t"
- "vsri.u64 d8, d4, #14\n\t"
- "vshl.u64 d9, d0, #36\n\t"
- "vsri.u64 d9, d0, #28\n\t"
- "vshl.u64 d10, d4, #46\n\t"
- "vsri.u64 d10, d4, #18\n\t"
- "vshl.u64 d11, d0, #30\n\t"
- "vsri.u64 d11, d0, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d4, #23\n\t"
- "vsri.u64 d10, d4, #41\n\t"
- "vshl.u64 d11, d0, #25\n\t"
- "vsri.u64 d11, d0, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d7, d8\n\t"
- "vadd.i64 d12, d24\n\t"
- "vmov d8, d4\n\t"
- "veor d10, d1, d2\n\t"
- "vadd.i64 d7, d12\n\t"
- "vbsl d8, d5, d6\n\t"
- "vbsl d10, d0, d2\n\t"
- "vadd.i64 d7, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d3, d7\n\t"
- "vadd.i64 d7, d10\n\t"
- /* Round 9 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d3, #50\n\t"
- "vsri.u64 d8, d3, #14\n\t"
- "vshl.u64 d9, d7, #36\n\t"
- "vsri.u64 d9, d7, #28\n\t"
- "vshl.u64 d10, d3, #46\n\t"
- "vsri.u64 d10, d3, #18\n\t"
- "vshl.u64 d11, d7, #30\n\t"
- "vsri.u64 d11, d7, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d3, #23\n\t"
- "vsri.u64 d10, d3, #41\n\t"
- "vshl.u64 d11, d7, #25\n\t"
- "vsri.u64 d11, d7, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d6, d8\n\t"
- "vadd.i64 d12, d25\n\t"
- "vmov d8, d3\n\t"
- "veor d10, d0, d1\n\t"
- "vadd.i64 d6, d12\n\t"
- "vbsl d8, d4, d5\n\t"
- "vbsl d10, d7, d1\n\t"
- "vadd.i64 d6, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d2, d6\n\t"
- "vadd.i64 d6, d10\n\t"
- /* Round 10 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d2, #50\n\t"
- "vsri.u64 d8, d2, #14\n\t"
- "vshl.u64 d9, d6, #36\n\t"
- "vsri.u64 d9, d6, #28\n\t"
- "vshl.u64 d10, d2, #46\n\t"
- "vsri.u64 d10, d2, #18\n\t"
- "vshl.u64 d11, d6, #30\n\t"
- "vsri.u64 d11, d6, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d2, #23\n\t"
- "vsri.u64 d10, d2, #41\n\t"
- "vshl.u64 d11, d6, #25\n\t"
- "vsri.u64 d11, d6, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d5, d8\n\t"
- "vadd.i64 d12, d26\n\t"
- "vmov d8, d2\n\t"
- "veor d10, d7, d0\n\t"
- "vadd.i64 d5, d12\n\t"
- "vbsl d8, d3, d4\n\t"
- "vbsl d10, d6, d0\n\t"
- "vadd.i64 d5, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d1, d5\n\t"
- "vadd.i64 d5, d10\n\t"
- /* Round 11 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d1, #50\n\t"
- "vsri.u64 d8, d1, #14\n\t"
- "vshl.u64 d9, d5, #36\n\t"
- "vsri.u64 d9, d5, #28\n\t"
- "vshl.u64 d10, d1, #46\n\t"
- "vsri.u64 d10, d1, #18\n\t"
- "vshl.u64 d11, d5, #30\n\t"
- "vsri.u64 d11, d5, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d1, #23\n\t"
- "vsri.u64 d10, d1, #41\n\t"
- "vshl.u64 d11, d5, #25\n\t"
- "vsri.u64 d11, d5, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d4, d8\n\t"
- "vadd.i64 d12, d27\n\t"
- "vmov d8, d1\n\t"
- "veor d10, d6, d7\n\t"
- "vadd.i64 d4, d12\n\t"
- "vbsl d8, d2, d3\n\t"
- "vbsl d10, d5, d7\n\t"
- "vadd.i64 d4, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d0, d4\n\t"
- "vadd.i64 d4, d10\n\t"
- /* Round 12 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d0, #50\n\t"
- "vsri.u64 d8, d0, #14\n\t"
- "vshl.u64 d9, d4, #36\n\t"
- "vsri.u64 d9, d4, #28\n\t"
- "vshl.u64 d10, d0, #46\n\t"
- "vsri.u64 d10, d0, #18\n\t"
- "vshl.u64 d11, d4, #30\n\t"
- "vsri.u64 d11, d4, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d0, #23\n\t"
- "vsri.u64 d10, d0, #41\n\t"
- "vshl.u64 d11, d4, #25\n\t"
- "vsri.u64 d11, d4, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d3, d8\n\t"
- "vadd.i64 d12, d28\n\t"
- "vmov d8, d0\n\t"
- "veor d10, d5, d6\n\t"
- "vadd.i64 d3, d12\n\t"
- "vbsl d8, d1, d2\n\t"
- "vbsl d10, d4, d6\n\t"
- "vadd.i64 d3, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d7, d3\n\t"
- "vadd.i64 d3, d10\n\t"
- /* Round 13 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d7, #50\n\t"
- "vsri.u64 d8, d7, #14\n\t"
- "vshl.u64 d9, d3, #36\n\t"
- "vsri.u64 d9, d3, #28\n\t"
- "vshl.u64 d10, d7, #46\n\t"
- "vsri.u64 d10, d7, #18\n\t"
- "vshl.u64 d11, d3, #30\n\t"
- "vsri.u64 d11, d3, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d7, #23\n\t"
- "vsri.u64 d10, d7, #41\n\t"
- "vshl.u64 d11, d3, #25\n\t"
- "vsri.u64 d11, d3, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d2, d8\n\t"
- "vadd.i64 d12, d29\n\t"
- "vmov d8, d7\n\t"
- "veor d10, d4, d5\n\t"
- "vadd.i64 d2, d12\n\t"
- "vbsl d8, d0, d1\n\t"
- "vbsl d10, d3, d5\n\t"
- "vadd.i64 d2, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d6, d2\n\t"
- "vadd.i64 d2, d10\n\t"
- /* Round 14 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d6, #50\n\t"
- "vsri.u64 d8, d6, #14\n\t"
- "vshl.u64 d9, d2, #36\n\t"
- "vsri.u64 d9, d2, #28\n\t"
- "vshl.u64 d10, d6, #46\n\t"
- "vsri.u64 d10, d6, #18\n\t"
- "vshl.u64 d11, d2, #30\n\t"
- "vsri.u64 d11, d2, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d6, #23\n\t"
- "vsri.u64 d10, d6, #41\n\t"
- "vshl.u64 d11, d2, #25\n\t"
- "vsri.u64 d11, d2, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d1, d8\n\t"
- "vadd.i64 d12, d30\n\t"
- "vmov d8, d6\n\t"
- "veor d10, d3, d4\n\t"
- "vadd.i64 d1, d12\n\t"
- "vbsl d8, d7, d0\n\t"
- "vbsl d10, d2, d4\n\t"
- "vadd.i64 d1, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d5, d1\n\t"
- "vadd.i64 d1, d10\n\t"
- /* Round 15 */
- "vld1.64 {d12}, [r3]!\n\t"
- "vshl.u64 d8, d5, #50\n\t"
- "vsri.u64 d8, d5, #14\n\t"
- "vshl.u64 d9, d1, #36\n\t"
- "vsri.u64 d9, d1, #28\n\t"
- "vshl.u64 d10, d5, #46\n\t"
- "vsri.u64 d10, d5, #18\n\t"
- "vshl.u64 d11, d1, #30\n\t"
- "vsri.u64 d11, d1, #34\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vshl.u64 d10, d5, #23\n\t"
- "vsri.u64 d10, d5, #41\n\t"
- "vshl.u64 d11, d1, #25\n\t"
- "vsri.u64 d11, d1, #39\n\t"
- "veor d8, d10\n\t"
- "veor d9, d11\n\t"
- "vadd.i64 d0, d8\n\t"
- "vadd.i64 d12, d31\n\t"
- "vmov d8, d5\n\t"
- "veor d10, d2, d3\n\t"
- "vadd.i64 d0, d12\n\t"
- "vbsl d8, d6, d7\n\t"
- "vbsl d10, d1, d3\n\t"
- "vadd.i64 d0, d8\n\t"
- "vadd.i64 d10, d9\n\t"
- "vadd.i64 d4, d0\n\t"
- "vadd.i64 d0, d10\n\t"
- /* Add in digest from start */
- "vldm.64 %[sha512], {d8-d15}\n\t"
- "vadd.i64 q0, q0, q4\n\t"
- "vadd.i64 q1, q1, q5\n\t"
- "vadd.i64 q2, q2, q6\n\t"
- "vadd.i64 q3, q3, q7\n\t"
- "vstm.64 %[sha512], {d0-d7}\n\t"
- "subs %[len], %[len], #0x80\n\t"
- "bne L_sha512_len_neon_begin_%=\n\t"
- : [sha512] "+r" (sha512), [data] "+r" (data), [len] "+r" (len)
- : [L_SHA512_transform_len_k] "r" (L_SHA512_transform_len_k), [L_SHA512_transform_neon_len_k] "r" (L_SHA512_transform_neon_len_k)
- : "memory", "r3", "r12", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "d10", "d11", "d12", "d13", "d14", "d15", "q8", "q9", "q10", "q11", "q12", "q13", "q14", "q15"
- );
-}
-
-#endif /* !WOLFSSL_ARMASM_NO_NEON */
-#endif /* WOLFSSL_ARMASM */
-#endif /* !__aarch64__ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-aes.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-aes.c
deleted file mode 100644
index d0f8a9c5c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-aes.c
+++ /dev/null
@@ -1,4653 +0,0 @@
-/* armv8-aes.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/*
- * There are two versions one for 64 (Aarch64) and one for 32 bit (Aarch32).
- * If changing one check the other.
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#if !defined(NO_AES) && defined(WOLFSSL_ARMASM)
-
-#include <wolfssl/wolfcrypt/aes.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/logging.h>
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-#ifdef _MSC_VER
- /* 4127 warning constant while(1) */
- #pragma warning(disable: 4127)
-#endif
-
-
-static const byte rcon[] = {
- 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,0x1B, 0x36
- /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */
-};
-
-/* get table value from hardware */
-#ifdef __aarch64__
- #define SBOX(x) \
- do { \
- __asm__ volatile ( \
- "DUP v1.4s, %w[in] \n" \
- "MOVI v0.16b, #0 \n" \
- "AESE v0.16b, v1.16b \n" \
- "UMOV %w[out], v0.s[0] \n" \
- : [out] "=r"((x)) \
- : [in] "r" ((x)) \
- : "cc", "memory", "v0", "v1"\
- ); \
- } while(0)
-
- #define IMIX(x) \
- do { \
- __asm__ volatile ( \
- "LD1 {v0.16b}, [%[in]] \n" \
- "AESIMC v0.16b, v0.16b \n" \
- "ST1 {v0.16b}, [%[out]]\n" \
- : [out] "=r" ((x)) \
- : [in] "0" ((x)) \
- : "cc", "memory", "v0" \
- ); \
- } while(0)
-#else /* if not defined __aarch64__ then use 32 bit version */
- #define SBOX(x) \
- do { \
- __asm__ volatile ( \
- "VDUP.32 q1, %[in] \n" \
- "VMOV.i32 q0, #0 \n" \
- "AESE.8 q0, q1 \n" \
- "VMOV.32 %[out], d0[0] \n" \
- : [out] "=r"((x)) \
- : [in] "r" ((x)) \
- : "cc", "memory", "q0", "q1"\
- ); \
- } while(0)
-
- #define IMIX(x) \
- do { \
- __asm__ volatile ( \
- "VLD1.32 {q0}, [%[in]] \n" \
- "AESIMC.8 q0, q0 \n" \
- "VST1.32 {q0}, [%[out]] \n" \
- : [out] "=r" ((x)) \
- : [in] "0" ((x)) \
- : "cc", "memory", "q0" \
- ); \
- } while(0)
-#endif /* aarch64 */
-
-
-#ifdef HAVE_AESGCM
-
-static WC_INLINE void IncrementGcmCounter(byte* inOutCtr)
-{
- int i;
-
- /* in network byte order so start at end and work back */
- for (i = AES_BLOCK_SIZE - 1; i >= AES_BLOCK_SIZE - CTR_SZ; i--) {
- if (++inOutCtr[i]) /* we're done unless we overflow */
- return;
- }
-}
-
-
-static WC_INLINE void FlattenSzInBits(byte* buf, word32 sz)
-{
- /* Multiply the sz by 8 */
- word32 szHi = (sz >> (8*sizeof(sz) - 3));
- sz <<= 3;
-
- /* copy over the words of the sz into the destination buffer */
- buf[0] = (szHi >> 24) & 0xff;
- buf[1] = (szHi >> 16) & 0xff;
- buf[2] = (szHi >> 8) & 0xff;
- buf[3] = szHi & 0xff;
- buf[4] = (sz >> 24) & 0xff;
- buf[5] = (sz >> 16) & 0xff;
- buf[6] = (sz >> 8) & 0xff;
- buf[7] = sz & 0xff;
-}
-
-#endif /* HAVE_AESGCM */
-
-/* Similar to wolfSSL software implementation of expanding the AES key.
- * Changed out the locations of where table look ups where made to
- * use hardware instruction. Also altered decryption key to match. */
-int wc_AesSetKey(Aes* aes, const byte* userKey, word32 keylen,
- const byte* iv, int dir)
-{
- word32 temp;
- word32 *rk;
- unsigned int i = 0;
-
-#if defined(AES_MAX_KEY_SIZE)
- const word32 max_key_len = (AES_MAX_KEY_SIZE / 8);
-#endif
-
- if (!((keylen == 16) || (keylen == 24) || (keylen == 32)) ||
- aes == NULL || userKey == NULL)
- return BAD_FUNC_ARG;
-
- rk = aes->key;
-#if defined(AES_MAX_KEY_SIZE)
- /* Check key length */
- if (keylen > max_key_len) {
- return BAD_FUNC_ARG;
- }
-#endif
-
- #ifdef WOLFSSL_AES_COUNTER
- aes->left = 0;
- #endif /* WOLFSSL_AES_COUNTER */
-
- aes->rounds = keylen/4 + 6;
- XMEMCPY(rk, userKey, keylen);
-
- switch(keylen)
- {
-#if defined(AES_MAX_KEY_SIZE) && AES_MAX_KEY_SIZE >= 128 && \
- defined(WOLFSSL_AES_128)
- case 16:
- while (1)
- {
- temp = rk[3];
- SBOX(temp);
- temp = rotrFixed(temp, 8);
- rk[4] = rk[0] ^ temp ^ rcon[i];
- rk[5] = rk[4] ^ rk[1];
- rk[6] = rk[5] ^ rk[2];
- rk[7] = rk[6] ^ rk[3];
- if (++i == 10)
- break;
- rk += 4;
- }
- break;
-#endif /* 128 */
-
-#if defined(AES_MAX_KEY_SIZE) && AES_MAX_KEY_SIZE >= 192 && \
- defined(WOLFSSL_AES_192)
- case 24:
- /* for (;;) here triggers a bug in VC60 SP4 w/ Pro Pack */
- while (1)
- {
- temp = rk[5];
- SBOX(temp);
- temp = rotrFixed(temp, 8);
- rk[ 6] = rk[ 0] ^ temp ^ rcon[i];
- rk[ 7] = rk[ 1] ^ rk[ 6];
- rk[ 8] = rk[ 2] ^ rk[ 7];
- rk[ 9] = rk[ 3] ^ rk[ 8];
- if (++i == 8)
- break;
- rk[10] = rk[ 4] ^ rk[ 9];
- rk[11] = rk[ 5] ^ rk[10];
- rk += 6;
- }
- break;
-#endif /* 192 */
-
-#if defined(AES_MAX_KEY_SIZE) && AES_MAX_KEY_SIZE >= 256 && \
- defined(WOLFSSL_AES_256)
- case 32:
- while (1)
- {
- temp = rk[7];
- SBOX(temp);
- temp = rotrFixed(temp, 8);
- rk[8] = rk[0] ^ temp ^ rcon[i];
- rk[ 9] = rk[ 1] ^ rk[ 8];
- rk[10] = rk[ 2] ^ rk[ 9];
- rk[11] = rk[ 3] ^ rk[10];
- if (++i == 7)
- break;
- temp = rk[11];
- SBOX(temp);
- rk[12] = rk[ 4] ^ temp;
- rk[13] = rk[ 5] ^ rk[12];
- rk[14] = rk[ 6] ^ rk[13];
- rk[15] = rk[ 7] ^ rk[14];
-
- rk += 8;
- }
- break;
-#endif /* 256 */
-
- default:
- return BAD_FUNC_ARG;
- }
-
- if (dir == AES_DECRYPTION)
- {
-#ifdef HAVE_AES_DECRYPT
- unsigned int j;
- rk = aes->key;
-
- /* invert the order of the round keys: */
- for (i = 0, j = 4* aes->rounds; i < j; i += 4, j -= 4) {
- temp = rk[i ]; rk[i ] = rk[j ]; rk[j ] = temp;
- temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp;
- temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp;
- temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp;
- }
- /* apply the inverse MixColumn transform to all round keys but the
- first and the last: */
- for (i = 1; i < aes->rounds; i++) {
- rk += 4;
- IMIX(rk);
- }
-#else
- WOLFSSL_MSG("AES Decryption not compiled in");
- return BAD_FUNC_ARG;
-#endif /* HAVE_AES_DECRYPT */
- }
-
- return wc_AesSetIV(aes, iv);
-}
-
-#if defined(WOLFSSL_AES_DIRECT) || defined(WOLFSSL_AES_COUNTER)
- int wc_AesSetKeyDirect(Aes* aes, const byte* userKey, word32 keylen,
- const byte* iv, int dir)
- {
- return wc_AesSetKey(aes, userKey, keylen, iv, dir);
- }
-#endif
-
-/* wc_AesSetIV is shared between software and hardware */
-int wc_AesSetIV(Aes* aes, const byte* iv)
-{
- if (aes == NULL)
- return BAD_FUNC_ARG;
-
- if (iv)
- XMEMCPY(aes->reg, iv, AES_BLOCK_SIZE);
- else
- XMEMSET(aes->reg, 0, AES_BLOCK_SIZE);
-
- return 0;
-}
-
-
-#ifdef __aarch64__
-/* AES CCM/GCM use encrypt direct but not decrypt */
-#if defined(HAVE_AESCCM) || defined(HAVE_AESGCM) || \
- defined(WOLFSSL_AES_DIRECT) || defined(WOLFSSL_AES_COUNTER)
- static int wc_AesEncrypt(Aes* aes, const byte* inBlock, byte* outBlock)
- {
- word32* keyPt = aes->key;
-
- /*
- AESE exor's input with round key
- shift rows of exor'ed result
- sub bytes for shifted rows
- */
-
- __asm__ __volatile__ (
- "LD1 {v0.16b}, [%[CtrIn]] \n"
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
-
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
-
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
-
- "LD1 {v1.2d-v2.2d}, [%[Key]], #32 \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v2.16b \n"
-
- "#subtract rounds done so far and see if should continue\n"
- "MOV w12, %w[R] \n"
- "SUB w12, w12, #10 \n"
- "CBZ w12, 1f \n"
- "LD1 {v1.2d-v2.2d}, [%[Key]], #32 \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v2.16b \n"
-
- "SUB w12, w12, #2 \n"
- "CBZ w12, 1f \n"
- "LD1 {v1.2d-v2.2d}, [%[Key]], #32 \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v2.16b \n"
-
- "#Final AddRoundKey then store result \n"
- "1: \n"
- "LD1 {v1.2d}, [%[Key]], #16 \n"
- "EOR v0.16b, v0.16b, v1.16b \n"
- "ST1 {v0.16b}, [%[CtrOut]] \n"
-
- :[CtrOut] "=r" (outBlock), "=r" (keyPt), "=r" (aes->rounds),
- "=r" (inBlock)
- :"0" (outBlock), [Key] "1" (keyPt), [R] "2" (aes->rounds),
- [CtrIn] "3" (inBlock)
- : "cc", "memory", "w12", "v0", "v1", "v2", "v3", "v4"
- );
-
- return 0;
- }
-#endif /* AES_GCM, AES_CCM, DIRECT or COUNTER */
-#if defined(WOLFSSL_AES_DIRECT) || defined(WOLFSSL_AES_COUNTER)
- #ifdef HAVE_AES_DECRYPT
- static int wc_AesDecrypt(Aes* aes, const byte* inBlock, byte* outBlock)
- {
- word32* keyPt = aes->key;
-
- /*
- AESE exor's input with round key
- shift rows of exor'ed result
- sub bytes for shifted rows
- */
-
- __asm__ __volatile__ (
- "LD1 {v0.16b}, [%[CtrIn]] \n"
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
-
- "AESD v0.16b, v1.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v2.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v3.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v4.16b \n"
- "AESIMC v0.16b, v0.16b \n"
-
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
- "AESD v0.16b, v1.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v2.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v3.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v4.16b \n"
- "AESIMC v0.16b, v0.16b \n"
-
- "LD1 {v1.2d-v2.2d}, [%[Key]], #32 \n"
- "AESD v0.16b, v1.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v2.16b \n"
-
- "#subtract rounds done so far and see if should continue\n"
- "MOV w12, %w[R] \n"
- "SUB w12, w12, #10 \n"
- "CBZ w12, 1f \n"
- "LD1 {v1.2d-v2.2d}, [%[Key]], #32 \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v1.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v2.16b \n"
-
- "SUB w12, w12, #2 \n"
- "CBZ w12, 1f \n"
- "LD1 {v1.2d-v2.2d}, [%[Key]], #32 \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v1.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v2.16b \n"
-
- "#Final AddRoundKey then store result \n"
- "1: \n"
- "LD1 {v1.2d}, [%[Key]], #16 \n"
- "EOR v0.16b, v0.16b, v1.16b \n"
- "ST1 {v0.4s}, [%[CtrOut]] \n"
-
- :[CtrOut] "=r" (outBlock), "=r" (keyPt), "=r" (aes->rounds),
- "=r" (inBlock)
- :[Key] "1" (aes->key), "0" (outBlock), [R] "2" (aes->rounds),
- [CtrIn] "3" (inBlock)
- : "cc", "memory", "w12", "v0", "v1", "v2", "v3", "v4"
- );
-
- return 0;
-}
- #endif /* HAVE_AES_DECRYPT */
-#endif /* DIRECT or COUNTER */
-
-/* AES-CBC */
-#ifdef HAVE_AES_CBC
- int wc_AesCbcEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
- {
- word32 numBlocks = sz / AES_BLOCK_SIZE;
-
- if (aes == NULL || out == NULL || (in == NULL && sz > 0)) {
- return BAD_FUNC_ARG;
- }
-
- /* do as many block size ops as possible */
- if (numBlocks > 0) {
- word32* key = aes->key;
- word32* reg = aes->reg;
- /*
- AESE exor's input with round key
- shift rows of exor'ed result
- sub bytes for shifted rows
-
- note: grouping AESE & AESMC together as pairs reduces latency
- */
- switch(aes->rounds) {
-#ifdef WOLFSSL_AES_128
- case 10: /* AES 128 BLOCK */
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "LD1 {v9.2d-v11.2d},[%[Key]], #48 \n"
- "LD1 {v0.2d}, [%[reg]] \n"
-
- "LD1 {v12.2d}, [%[input]], #16 \n"
- "1:\n"
- "#CBC operations, xorbuf in with current aes->reg \n"
- "EOR v0.16b, v0.16b, v12.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "SUB w11, w11, #1 \n"
- "EOR v0.16b, v0.16b, v11.16b \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
-
- "CBZ w11, 2f \n"
- "LD1 {v12.2d}, [%[input]], #16 \n"
- "B 1b \n"
-
- "2:\n"
- "#store current counter value at the end \n"
- "ST1 {v0.2d}, [%[regOut]] \n"
-
- :[out] "=r" (out), [regOut] "=r" (reg), "=r" (in)
- :"0" (out), [Key] "r" (key), [input] "2" (in),
- [blocks] "r" (numBlocks), [reg] "1" (reg)
- : "cc", "memory", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10", "v11", "v12", "v13"
- );
- break;
-#endif /* WOLFSSL_AES_128 */
-#ifdef WOLFSSL_AES_192
- case 12: /* AES 192 BLOCK */
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v1.2d-v4.2d}, %[Key], #64 \n"
- "LD1 {v5.2d-v8.2d}, %[Key], #64 \n"
- "LD1 {v9.2d-v12.2d},%[Key], #64 \n"
- "LD1 {v13.2d}, %[Key], #16 \n"
- "LD1 {v0.2d}, %[reg] \n"
-
- "LD1 {v14.2d}, [%[input]], #16 \n"
- "1:\n"
- "#CBC operations, xorbuf in with current aes->reg \n"
- "EOR v0.16b, v0.16b, v14.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v11.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v12.16b \n"
- "EOR v0.16b, v0.16b, v13.16b \n"
- "SUB w11, w11, #1 \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
-
- "CBZ w11, 2f \n"
- "LD1 {v14.2d}, [%[input]], #16\n"
- "B 1b \n"
-
- "2:\n"
- "#store current counter value at the end \n"
- "ST1 {v0.2d}, %[regOut] \n"
-
-
- :[out] "=r" (out), [regOut] "=m" (aes->reg), "=r" (in)
- :"0" (out), [Key] "m" (aes->key), [input] "2" (in),
- [blocks] "r" (numBlocks), [reg] "m" (aes->reg)
- : "cc", "memory", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10", "v11", "v12", "v13", "v14"
- );
- break;
-#endif /* WOLFSSL_AES_192*/
-#ifdef WOLFSSL_AES_256
- case 14: /* AES 256 BLOCK */
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v1.2d-v4.2d}, %[Key], #64 \n"
-
- "LD1 {v5.2d-v8.2d}, %[Key], #64 \n"
- "LD1 {v9.2d-v12.2d}, %[Key], #64 \n"
- "LD1 {v13.2d-v15.2d}, %[Key], #48 \n"
- "LD1 {v0.2d}, %[reg] \n"
-
- "LD1 {v16.2d}, [%[input]], #16 \n"
- "1: \n"
- "#CBC operations, xorbuf in with current aes->reg \n"
- "EOR v0.16b, v0.16b, v16.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v11.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v12.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v13.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v14.16b \n"
- "EOR v0.16b, v0.16b, v15.16b \n"
- "SUB w11, w11, #1 \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
-
- "CBZ w11, 2f \n"
- "LD1 {v16.2d}, [%[input]], #16 \n"
- "B 1b \n"
-
- "2: \n"
- "#store current counter value at the end \n"
- "ST1 {v0.2d}, %[regOut] \n"
-
-
- :[out] "=r" (out), [regOut] "=m" (aes->reg), "=r" (in)
- :"0" (out), [Key] "m" (aes->key), [input] "2" (in),
- [blocks] "r" (numBlocks), [reg] "m" (aes->reg)
- : "cc", "memory", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10", "v11", "v12", "v13", "v14","v15",
- "v16"
- );
- break;
-#endif /* WOLFSSL_AES_256 */
- default:
- WOLFSSL_MSG("Bad AES-CBC round value");
- return BAD_FUNC_ARG;
- }
- }
-
- return 0;
- }
-
- #ifdef HAVE_AES_DECRYPT
- int wc_AesCbcDecrypt(Aes* aes, byte* out, const byte* in, word32 sz)
- {
- word32 numBlocks = sz / AES_BLOCK_SIZE;
-
- if (aes == NULL || out == NULL || (in == NULL && sz > 0)
- || sz % AES_BLOCK_SIZE != 0) {
- return BAD_FUNC_ARG;
- }
-
- /* do as many block size ops as possible */
- if (numBlocks > 0) {
- word32* key = aes->key;
- word32* reg = aes->reg;
-
- switch(aes->rounds) {
-#ifdef WOLFSSL_AES_128
- case 10: /* AES 128 BLOCK */
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "LD1 {v9.2d-v11.2d},[%[Key]], #48 \n"
- "LD1 {v13.2d}, [%[reg]] \n"
-
- "1:\n"
- "LD1 {v0.2d}, [%[input]], #16 \n"
- "MOV v12.16b, v0.16b \n"
- "AESD v0.16b, v1.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v2.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v3.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v4.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v5.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v6.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v7.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v8.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v9.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v10.16b \n"
- "EOR v0.16b, v0.16b, v11.16b \n"
-
- "EOR v0.16b, v0.16b, v13.16b \n"
- "SUB w11, w11, #1 \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
- "MOV v13.16b, v12.16b \n"
-
- "CBZ w11, 2f \n"
- "B 1b \n"
-
- "2: \n"
- "#store current counter value at the end \n"
- "ST1 {v13.2d}, [%[regOut]] \n"
-
- :[out] "=r" (out), [regOut] "=r" (reg), "=r" (in)
- :"0" (out), [Key] "r" (key), [input] "2" (in),
- [blocks] "r" (numBlocks), [reg] "1" (reg)
- : "cc", "memory", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10", "v11", "v12", "v13"
- );
- break;
-#endif /* WOLFSSL_AES_128 */
-#ifdef WOLFSSL_AES_192
- case 12: /* AES 192 BLOCK */
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "LD1 {v9.2d-v12.2d},[%[Key]], #64 \n"
- "LD1 {v13.16b}, [%[Key]], #16 \n"
- "LD1 {v15.2d}, [%[reg]] \n"
-
- "LD1 {v0.2d}, [%[input]], #16 \n"
- "1: \n"
- "MOV v14.16b, v0.16b \n"
- "AESD v0.16b, v1.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v2.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v3.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v4.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v5.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v6.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v7.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v8.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v9.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v10.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v11.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v12.16b \n"
- "EOR v0.16b, v0.16b, v13.16b \n"
-
- "EOR v0.16b, v0.16b, v15.16b \n"
- "SUB w11, w11, #1 \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
- "MOV v15.16b, v14.16b \n"
-
- "CBZ w11, 2f \n"
- "LD1 {v0.2d}, [%[input]], #16 \n"
- "B 1b \n"
-
- "2:\n"
- "#store current counter value at the end \n"
- "ST1 {v15.2d}, [%[regOut]] \n"
-
- :[out] "=r" (out), [regOut] "=r" (reg), "=r" (in)
- :"0" (out), [Key] "r" (key), [input] "2" (in),
- [blocks] "r" (numBlocks), [reg] "1" (reg)
- : "cc", "memory", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10", "v11", "v12", "v13", "v14", "v15"
- );
- break;
-#endif /* WOLFSSL_AES_192 */
-#ifdef WOLFSSL_AES_256
- case 14: /* AES 256 BLOCK */
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "LD1 {v9.2d-v12.2d}, [%[Key]], #64 \n"
- "LD1 {v13.2d-v15.2d}, [%[Key]], #48 \n"
- "LD1 {v17.2d}, [%[reg]] \n"
-
- "LD1 {v0.2d}, [%[input]], #16 \n"
- "1: \n"
- "MOV v16.16b, v0.16b \n"
- "AESD v0.16b, v1.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v2.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v3.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v4.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v5.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v6.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v7.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v8.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v9.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v10.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v11.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v12.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v13.16b \n"
- "AESIMC v0.16b, v0.16b \n"
- "AESD v0.16b, v14.16b \n"
- "EOR v0.16b, v0.16b, v15.16b \n"
-
- "EOR v0.16b, v0.16b, v17.16b \n"
- "SUB w11, w11, #1 \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
- "MOV v17.16b, v16.16b \n"
-
- "CBZ w11, 2f \n"
- "LD1 {v0.2d}, [%[input]], #16 \n"
- "B 1b \n"
-
- "2:\n"
- "#store current counter value at the end \n"
- "ST1 {v17.2d}, [%[regOut]] \n"
-
- :[out] "=r" (out), [regOut] "=r" (reg), "=r" (in)
- :"0" (out), [Key] "r" (key), [input] "2" (in),
- [blocks] "r" (numBlocks), [reg] "1" (reg)
- : "cc", "memory", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10", "v11", "v12", "v13", "v14","v15",
- "v16", "v17"
- );
- break;
-#endif /* WOLFSSL_AES_256 */
- default:
- WOLFSSL_MSG("Bad AES-CBC round value");
- return BAD_FUNC_ARG;
- }
- }
-
- return 0;
- }
- #endif
-
-#endif /* HAVE_AES_CBC */
-
-/* AES-CTR */
-#ifdef WOLFSSL_AES_COUNTER
-
- /* Increment AES counter */
- static WC_INLINE void IncrementAesCounter(byte* inOutCtr)
- {
- int i;
-
- /* in network byte order so start at end and work back */
- for (i = AES_BLOCK_SIZE - 1; i >= 0; i--) {
- if (++inOutCtr[i]) /* we're done unless we overflow */
- return;
- }
- }
-
- int wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
- {
- byte* tmp;
- word32 numBlocks;
-
- if (aes == NULL || out == NULL || in == NULL) {
- return BAD_FUNC_ARG;
- }
-
- tmp = (byte*)aes->tmp + AES_BLOCK_SIZE - aes->left;
-
- /* consume any unused bytes left in aes->tmp */
- while (aes->left && sz) {
- *(out++) = *(in++) ^ *(tmp++);
- aes->left--;
- sz--;
- }
-
- /* do as many block size ops as possible */
- numBlocks = sz/AES_BLOCK_SIZE;
- if (numBlocks > 0) {
- /* pointer needed because it is incremented when read, causing
- * an issue with call to encrypt/decrypt leftovers */
- byte* keyPt = (byte*)aes->key;
- sz -= numBlocks * AES_BLOCK_SIZE;
- switch(aes->rounds) {
-#ifdef WOLFSSL_AES_128
- case 10: /* AES 128 BLOCK */
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
-
- "#Create vector with the value 1 \n"
- "MOVI v15.16b, #1 \n"
- "USHR v15.2d, v15.2d, #56 \n"
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "EOR v14.16b, v14.16b, v14.16b \n"
- "EXT v14.16b, v15.16b, v14.16b, #8\n"
-
- "LD1 {v9.2d-v11.2d}, [%[Key]], #48\n"
- "LD1 {v13.2d}, %[reg] \n"
-
- /* double block */
- "1: \n"
- "CMP w11, #1 \n"
- "BEQ 2f \n"
- "CMP w11, #0 \n"
- "BEQ 3f \n"
-
- "MOV v0.16b, v13.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "REV64 v13.16b, v13.16b \n" /* network order */
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "SUB w11, w11, #2 \n"
- "ADD v15.2d, v13.2d, v14.2d \n" /* add 1 to counter */
- "ADD v13.2d, v15.2d, v14.2d \n" /* add 1 to counter */
-
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v15.16b, v15.16b, v15.16b, #8 \n"
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
-
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "REV64 v15.16b, v15.16b \n" /* revert from network order */
- "REV64 v13.16b, v13.16b \n" /* revert from network order */
-
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v15.16b, v1.16b \n"
- "AESMC v15.16b, v15.16b \n"
-
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v15.16b, v2.16b \n"
- "AESMC v15.16b, v15.16b \n"
-
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v15.16b, v3.16b \n"
- "AESMC v15.16b, v15.16b \n"
-
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v15.16b, v4.16b \n"
- "AESMC v15.16b, v15.16b \n"
-
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v15.16b, v5.16b \n"
- "AESMC v15.16b, v15.16b \n"
-
- "AESE v0.16b, v10.16b \n"
- "AESE v15.16b, v6.16b \n"
- "AESMC v15.16b, v15.16b \n"
-
- "EOR v0.16b, v0.16b, v11.16b \n"
- "AESE v15.16b, v7.16b \n"
- "AESMC v15.16b, v15.16b \n"
-
- "LD1 {v12.2d}, [%[input]], #16 \n"
- "AESE v15.16b, v8.16b \n"
- "AESMC v15.16b, v15.16b \n"
-
- "EOR v0.16b, v0.16b, v12.16b \n"
- "AESE v15.16b, v9.16b \n"
- "AESMC v15.16b, v15.16b \n"
-
- "LD1 {v12.2d}, [%[input]], #16 \n"
- "AESE v15.16b, v10.16b \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
- "EOR v15.16b, v15.16b, v11.16b \n"
- "EOR v15.16b, v15.16b, v12.16b \n"
- "ST1 {v15.2d}, [%[out]], #16 \n"
-
- "B 1b \n"
-
- /* single block */
- "2: \n"
- "MOV v0.16b, v13.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "REV64 v13.16b, v13.16b \n" /* network order */
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "ADD v13.2d, v13.2d, v14.2d \n" /* add 1 to counter */
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "SUB w11, w11, #1 \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "REV64 v13.16b, v13.16b \n" /* revert from network order */
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "EOR v0.16b, v0.16b, v11.16b \n"
- "#CTR operations, increment counter and xorbuf \n"
- "LD1 {v12.2d}, [%[input]], #16 \n"
- "EOR v0.16b, v0.16b, v12.16b \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
-
- "3: \n"
- "#store current counter value at the end \n"
- "ST1 {v13.2d}, %[regOut] \n"
-
- :[out] "=r" (out), "=r" (keyPt), [regOut] "=m" (aes->reg),
- "=r" (in)
- :"0" (out), [Key] "1" (keyPt), [input] "3" (in),
- [blocks] "r" (numBlocks), [reg] "m" (aes->reg)
- : "cc", "memory", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10","v11","v12","v13","v14","v15"
- );
- break;
-#endif /* WOLFSSL_AES_128 */
-#ifdef WOLFSSL_AES_192
- case 12: /* AES 192 BLOCK */
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
-
- "#Create vector with the value 1 \n"
- "MOVI v16.16b, #1 \n"
- "USHR v16.2d, v16.2d, #56 \n"
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "EOR v14.16b, v14.16b, v14.16b \n"
- "EXT v16.16b, v16.16b, v14.16b, #8\n"
-
- "LD1 {v9.2d-v12.2d}, [%[Key]], #64\n"
- "LD1 {v15.2d}, %[reg] \n"
- "LD1 {v13.16b}, [%[Key]], #16 \n"
-
- /* double block */
- "1: \n"
- "CMP w11, #1 \n"
- "BEQ 2f \n"
- "CMP w11, #0 \n"
- "BEQ 3f \n"
-
- "MOV v0.16b, v15.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "REV64 v15.16b, v15.16b \n" /* network order */
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v15.16b, v15.16b, v15.16b, #8 \n"
- "SUB w11, w11, #2 \n"
- "ADD v17.2d, v15.2d, v16.2d \n" /* add 1 to counter */
- "ADD v15.2d, v17.2d, v16.2d \n" /* add 1 to counter */
-
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v17.16b, v17.16b, v17.16b, #8 \n"
- "EXT v15.16b, v15.16b, v15.16b, #8 \n"
-
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "REV64 v17.16b, v17.16b \n" /* revert from network order */
- "REV64 v15.16b, v15.16b \n" /* revert from network order */
-
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v17.16b, v1.16b \n"
- "AESMC v17.16b, v17.16b \n"
-
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v17.16b, v2.16b \n"
- "AESMC v17.16b, v17.16b \n"
-
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v17.16b, v3.16b \n"
- "AESMC v17.16b, v17.16b \n"
-
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v17.16b, v4.16b \n"
- "AESMC v17.16b, v17.16b \n"
-
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v17.16b, v5.16b \n"
- "AESMC v17.16b, v17.16b \n"
-
- "AESE v0.16b, v10.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v17.16b, v6.16b \n"
- "AESMC v17.16b, v17.16b \n"
-
- "AESE v0.16b, v11.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v17.16b, v7.16b \n"
- "AESMC v17.16b, v17.16b \n"
-
- "AESE v0.16b, v12.16b \n"
- "AESE v17.16b, v8.16b \n"
- "AESMC v17.16b, v17.16b \n"
-
- "EOR v0.16b, v0.16b, v13.16b \n"
- "AESE v17.16b, v9.16b \n"
- "AESMC v17.16b, v17.16b \n"
-
- "LD1 {v14.2d}, [%[input]], #16 \n"
- "AESE v17.16b, v10.16b \n"
- "AESMC v17.16b, v17.16b \n"
-
- "EOR v0.16b, v0.16b, v14.16b \n"
- "AESE v17.16b, v11.16b \n"
- "AESMC v17.16b, v17.16b \n"
-
- "LD1 {v14.2d}, [%[input]], #16 \n"
- "AESE v17.16b, v12.16b \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
- "EOR v17.16b, v17.16b, v13.16b \n"
- "EOR v17.16b, v17.16b, v14.16b \n"
- "ST1 {v17.2d}, [%[out]], #16 \n"
-
- "B 1b \n"
-
- "2: \n"
- "LD1 {v14.2d}, [%[input]], #16 \n"
- "MOV v0.16b, v15.16b \n"
-
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "REV64 v15.16b, v15.16b \n" /* network order */
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v15.16b, v15.16b, v15.16b, #8 \n"
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "ADD v15.2d, v15.2d, v16.2d \n" /* add 1 to counter */
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "SUB w11, w11, #1 \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v15.16b, v15.16b, v15.16b, #8 \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "REV64 v15.16b, v15.16b \n" /* revert from network order */
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v11.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v12.16b \n"
- "EOR v0.16b, v0.16b, v13.16b \n"
- "#CTR operations, increment counter and xorbuf \n"
- "EOR v0.16b, v0.16b, v14.16b \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
-
- "3: \n"
- "#store current counter value at the end \n"
- "ST1 {v15.2d}, %[regOut] \n"
-
- :[out] "=r" (out), "=r" (keyPt), [regOut] "=m" (aes->reg),
- "=r" (in)
- :"0" (out), [Key] "1" (keyPt), [input] "3" (in),
- [blocks] "r" (numBlocks), [reg] "m" (aes->reg)
- : "cc", "memory", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10","v11","v12","v13","v14","v15",
- "v16", "v17"
- );
- break;
-#endif /* WOLFSSL_AES_192 */
-#ifdef WOLFSSL_AES_256
- case 14: /* AES 256 BLOCK */
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
-
- "#Create vector with the value 1 \n"
- "MOVI v18.16b, #1 \n"
- "USHR v18.2d, v18.2d, #56 \n"
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "EOR v19.16b, v19.16b, v19.16b \n"
- "EXT v18.16b, v18.16b, v19.16b, #8\n"
-
- "LD1 {v9.2d-v12.2d}, [%[Key]], #64 \n"
- "LD1 {v13.2d-v15.2d}, [%[Key]], #48 \n"
- "LD1 {v17.2d}, %[reg] \n"
-
- /* double block */
- "1: \n"
- "CMP w11, #1 \n"
- "BEQ 2f \n"
- "CMP w11, #0 \n"
- "BEQ 3f \n"
-
- "MOV v0.16b, v17.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "REV64 v17.16b, v17.16b \n" /* network order */
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v17.16b, v17.16b, v17.16b, #8 \n"
- "SUB w11, w11, #2 \n"
- "ADD v19.2d, v17.2d, v18.2d \n" /* add 1 to counter */
- "ADD v17.2d, v19.2d, v18.2d \n" /* add 1 to counter */
-
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v19.16b, v19.16b, v19.16b, #8 \n"
- "EXT v17.16b, v17.16b, v17.16b, #8 \n"
-
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "REV64 v19.16b, v19.16b \n" /* revert from network order */
- "REV64 v17.16b, v17.16b \n" /* revert from network order */
-
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v19.16b, v1.16b \n"
- "AESMC v19.16b, v19.16b \n"
-
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v19.16b, v2.16b \n"
- "AESMC v19.16b, v19.16b \n"
-
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v19.16b, v3.16b \n"
- "AESMC v19.16b, v19.16b \n"
-
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v19.16b, v4.16b \n"
- "AESMC v19.16b, v19.16b \n"
-
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v19.16b, v5.16b \n"
- "AESMC v19.16b, v19.16b \n"
-
- "AESE v0.16b, v10.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v19.16b, v6.16b \n"
- "AESMC v19.16b, v19.16b \n"
-
- "AESE v0.16b, v11.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v19.16b, v7.16b \n"
- "AESMC v19.16b, v19.16b \n"
-
- "AESE v0.16b, v12.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v19.16b, v8.16b \n"
- "AESMC v19.16b, v19.16b \n"
-
- "AESE v0.16b, v13.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v19.16b, v9.16b \n"
- "AESMC v19.16b, v19.16b \n"
-
- "AESE v0.16b, v14.16b \n"
- "AESE v19.16b, v10.16b \n"
- "AESMC v19.16b, v19.16b \n"
-
- "EOR v0.16b, v0.16b, v15.16b \n"
- "AESE v19.16b, v11.16b \n"
- "AESMC v19.16b, v19.16b \n"
-
- "LD1 {v16.2d}, [%[input]], #16 \n"
- "AESE v19.16b, v12.16b \n"
- "AESMC v19.16b, v19.16b \n"
-
- "EOR v0.16b, v0.16b, v16.16b \n"
- "AESE v19.16b, v13.16b \n"
- "AESMC v19.16b, v19.16b \n"
-
- "LD1 {v16.2d}, [%[input]], #16 \n"
- "AESE v19.16b, v14.16b \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
- "EOR v19.16b, v19.16b, v15.16b \n"
- "EOR v19.16b, v19.16b, v16.16b \n"
- "ST1 {v19.2d}, [%[out]], #16 \n"
-
- "B 1b \n"
-
- "2: \n"
- "LD1 {v16.2d}, [%[input]], #16 \n"
- "MOV v0.16b, v17.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "REV64 v17.16b, v17.16b \n" /* network order */
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v17.16b, v17.16b, v17.16b, #8 \n"
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "ADD v17.2d, v17.2d, v18.2d \n" /* add 1 to counter */
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v17.16b, v17.16b, v17.16b, #8 \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "REV64 v17.16b, v17.16b \n" /* revert from network order */
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v11.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v12.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v13.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v14.16b \n"
- "EOR v0.16b, v0.16b, v15.16b \n"
- "#CTR operations, increment counter and xorbuf \n"
- "EOR v0.16b, v0.16b, v16.16b \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
-
- "3: \n"
- "#store current counter value at the end \n"
- "ST1 {v17.2d}, %[regOut] \n"
-
-
- :[out] "=r" (out), "=r" (keyPt), [regOut] "=m" (aes->reg),
- "=r" (in)
- :"0" (out), [Key] "1" (keyPt), [input] "3" (in),
- [blocks] "r" (numBlocks), [reg] "m" (aes->reg)
- : "cc", "memory", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10","v11","v12","v13","v14","v15",
- "v16", "v17", "v18", "v19"
- );
- break;
-#endif /* WOLFSSL_AES_256 */
- default:
- WOLFSSL_MSG("Bad AES-CTR round value");
- return BAD_FUNC_ARG;
- }
-
- aes->left = 0;
- }
-
- /* handle non block size remaining */
- if (sz) {
- wc_AesEncrypt(aes, (byte*)aes->reg, (byte*)aes->tmp);
- IncrementAesCounter((byte*)aes->reg);
-
- aes->left = AES_BLOCK_SIZE;
- tmp = (byte*)aes->tmp;
-
- while (sz--) {
- *(out++) = *(in++) ^ *(tmp++);
- aes->left--;
- }
- }
- return 0;
- }
-
-#endif /* WOLFSSL_AES_COUNTER */
-
-#ifdef HAVE_AESGCM
-
-/*
- * Based from GCM implementation in wolfcrypt/src/aes.c
- */
-
-/* PMULL and RBIT only with AArch64 */
-/* Use ARM hardware for polynomial multiply */
-static void GMULT(byte* X, byte* Y)
-{
- __asm__ volatile (
- "LD1 {v0.16b}, [%[inX]] \n"
- "LD1 {v1.16b}, [%[inY]] \n" /* v1 already reflected from set key */
- "RBIT v0.16b, v0.16b \n"
-
-
- /* Algorithm 1 from Intel GCM white paper.
- "Carry-Less Multiplication and Its Usage for Computing the GCM Mode"
- */
- "PMULL v3.1q, v0.1d, v1.1d \n" /* a0 * b0 = C */
- "PMULL2 v4.1q, v0.2d, v1.2d \n" /* a1 * b1 = D */
- "EXT v5.16b, v1.16b, v1.16b, #8 \n" /* b0b1 -> b1b0 */
- "PMULL v6.1q, v0.1d, v5.1d \n" /* a0 * b1 = E */
- "PMULL2 v5.1q, v0.2d, v5.2d \n" /* a1 * b0 = F */
-
- "#Set a register to all 0s using EOR \n"
- "EOR v7.16b, v7.16b, v7.16b \n"
- "EOR v5.16b, v5.16b, v6.16b \n" /* F ^ E */
- "EXT v6.16b, v7.16b, v5.16b, #8 \n" /* get (F^E)[0] */
- "EOR v3.16b, v3.16b, v6.16b \n" /* low 128 bits in v3 */
- "EXT v6.16b, v5.16b, v7.16b, #8 \n" /* get (F^E)[1] */
- "EOR v4.16b, v4.16b, v6.16b \n" /* high 128 bits in v4 */
-
-
- /* Based from White Paper "Implementing GCM on ARMv8"
- by Conrado P.L. Gouvea and Julio Lopez
- reduction on 256bit value using Algorithm 5 */
- "MOVI v8.16b, #0x87 \n"
- "USHR v8.2d, v8.2d, #56 \n"
- /* v8 is now 0x00000000000000870000000000000087 reflected 0xe1....*/
- "PMULL2 v5.1q, v4.2d, v8.2d \n"
- "EXT v6.16b, v5.16b, v7.16b, #8 \n" /* v7 is all 0's */
- "EOR v4.16b, v4.16b, v6.16b \n"
- "EXT v6.16b, v7.16b, v5.16b, #8 \n"
- "EOR v3.16b, v3.16b, v6.16b \n"
- "PMULL v5.1q, v4.1d, v8.1d \n"
- "EOR v4.16b, v3.16b, v5.16b \n"
-
- "RBIT v4.16b, v4.16b \n"
- "STR q4, [%[out]] \n"
- : [out] "=r" (X), "=r" (Y)
- : [inX] "0" (X), [inY] "1" (Y)
- : "cc", "memory", "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v8"
- );
-}
-
-
-void GHASH(Aes* aes, const byte* a, word32 aSz,
- const byte* c, word32 cSz, byte* s, word32 sSz)
-{
- byte x[AES_BLOCK_SIZE];
- byte scratch[AES_BLOCK_SIZE];
- word32 blocks, partial;
- byte* h = aes->H;
-
- XMEMSET(x, 0, AES_BLOCK_SIZE);
-
- /* Hash in A, the Additional Authentication Data */
- if (aSz != 0 && a != NULL) {
- blocks = aSz / AES_BLOCK_SIZE;
- partial = aSz % AES_BLOCK_SIZE;
- /* do as many blocks as possible */
- while (blocks--) {
- xorbuf(x, a, AES_BLOCK_SIZE);
- GMULT(x, h);
- a += AES_BLOCK_SIZE;
- }
- if (partial != 0) {
- XMEMSET(scratch, 0, AES_BLOCK_SIZE);
- XMEMCPY(scratch, a, partial);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
- GMULT(x, h);
- }
- }
-
- /* Hash in C, the Ciphertext */
- if (cSz != 0 && c != NULL) {
- blocks = cSz / AES_BLOCK_SIZE;
- partial = cSz % AES_BLOCK_SIZE;
- while (blocks--) {
- xorbuf(x, c, AES_BLOCK_SIZE);
- GMULT(x, h);
- c += AES_BLOCK_SIZE;
- }
- if (partial != 0) {
- XMEMSET(scratch, 0, AES_BLOCK_SIZE);
- XMEMCPY(scratch, c, partial);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
- GMULT(x, h);
- }
- }
-
- /* Hash in the lengths of A and C in bits */
- FlattenSzInBits(&scratch[0], aSz);
- FlattenSzInBits(&scratch[8], cSz);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
-
- /* Copy the result (minus last GMULT) into s. */
- XMEMCPY(s, x, sSz);
-}
-
-
-#ifdef WOLFSSL_AES_128
-/* internal function : see wc_AesGcmEncrypt */
-static int Aes128GcmEncrypt(Aes* aes, byte* out, const byte* in, word32 sz,
- const byte* iv, word32 ivSz,
- byte* authTag, word32 authTagSz,
- const byte* authIn, word32 authInSz)
-{
- word32 blocks;
- word32 partial;
- byte counter[AES_BLOCK_SIZE];
- byte initialCounter[AES_BLOCK_SIZE];
- byte x[AES_BLOCK_SIZE];
- byte scratch[AES_BLOCK_SIZE];
-
- /* Noticed different optimization levels treated head of array different.
- Some cases was stack pointer plus offset others was a regester containing
- address. To make uniform for passing in to inline assembly code am using
- pointers to the head of each local array.
- */
- byte* ctr = counter;
- byte* iCtr = initialCounter;
- byte* xPt = x;
- byte* sPt = scratch;
- byte* keyPt; /* pointer to handle pointer advencment */
-
- XMEMSET(initialCounter, 0, AES_BLOCK_SIZE);
- if (ivSz == GCM_NONCE_MID_SZ) {
- XMEMCPY(initialCounter, iv, ivSz);
- initialCounter[AES_BLOCK_SIZE - 1] = 1;
- }
- else {
- GHASH(aes, NULL, 0, iv, ivSz, initialCounter, AES_BLOCK_SIZE);
- GMULT(initialCounter, aes->H);
- }
- XMEMCPY(counter, initialCounter, AES_BLOCK_SIZE);
-
-
- /* Hash in the Additional Authentication Data */
- XMEMSET(x, 0, AES_BLOCK_SIZE);
- if (authInSz != 0 && authIn != NULL) {
- blocks = authInSz / AES_BLOCK_SIZE;
- partial = authInSz % AES_BLOCK_SIZE;
- /* do as many blocks as possible */
- while (blocks--) {
- xorbuf(x, authIn, AES_BLOCK_SIZE);
- GMULT(x, aes->H);
- authIn += AES_BLOCK_SIZE;
- }
- if (partial != 0) {
- XMEMSET(scratch, 0, AES_BLOCK_SIZE);
- XMEMCPY(scratch, authIn, partial);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
- GMULT(x, aes->H);
- }
- }
-
- /* do as many blocks as possible */
- blocks = sz / AES_BLOCK_SIZE;
- partial = sz % AES_BLOCK_SIZE;
- if (blocks > 0) {
- keyPt = (byte*)aes->key;
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v13.2d}, [%[ctr]] \n"
-
- "#Create vector with the value 1 \n"
- "MOVI v14.16b, #1 \n"
- "USHR v14.2d, v14.2d, #56 \n"
- "EOR v22.16b, v22.16b, v22.16b \n"
- "EXT v14.16b, v14.16b, v22.16b, #8\n"
-
-
- /***************************************************
- Get first out block for GHASH using AES encrypt
- ***************************************************/
- "REV64 v13.16b, v13.16b \n" /* network order */
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "ADD v13.2d, v13.2d, v14.2d \n" /* add 1 to counter */
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "REV64 v13.16b, v13.16b \n" /* revert from network order */
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "MOV v0.16b, v13.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "LD1 {v16.2d}, %[inY] \n"
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "SUB w11, w11, #1 \n"
- "LD1 {v9.2d-v11.2d}, [%[Key]], #48\n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "MOVI v23.16b, #0x87 \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "LD1 {v17.2d}, [%[inX]] \n" /* account for additional data */
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "USHR v23.2d, v23.2d, #56 \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "LD1 {v12.2d}, [%[input]], #16 \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "EOR v0.16b, v0.16b, v11.16b \n"
-
- "EOR v0.16b, v0.16b, v12.16b \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
- "MOV v15.16b, v0.16b \n"
-
- "CBZ w11, 1f \n" /* only one block jump to final GHASH */
-
- "LD1 {v12.2d}, [%[input]], #16 \n"
-
- /***************************************************
- Interweave GHASH and encrypt if more then 1 block
- ***************************************************/
- "2: \n"
- "REV64 v13.16b, v13.16b \n" /* network order */
- "EOR v15.16b, v17.16b, v15.16b \n"
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "ADD v13.2d, v13.2d, v14.2d \n" /* add 1 to counter */
- "RBIT v15.16b, v15.16b \n" /* v15 is encrypted out block (c) */
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "REV64 v13.16b, v13.16b \n" /* revert from network order */
- "PMULL v18.1q, v15.1d, v16.1d \n" /* a0 * b0 = C */
- "MOV v0.16b, v13.16b \n"
- "PMULL2 v19.1q, v15.2d, v16.2d \n" /* a1 * b1 = D */
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v20.16b, v16.16b, v16.16b, #8 \n" /* b0b1 -> b1b0 */
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "PMULL v21.1q, v15.1d, v20.1d \n" /* a0 * b1 = E */
- "PMULL2 v20.1q, v15.2d, v20.2d \n" /* a1 * b0 = F */
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v20.16b, v20.16b, v21.16b \n" /* F ^ E */
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n" /* get (F^E)[0] */
- "SUB w11, w11, #1 \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v18.16b, v18.16b, v21.16b \n" /* low 128 bits in v3 */
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* get (F^E)[1] */
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v19.16b, v19.16b, v21.16b \n" /* high 128 bits in v4 */
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "PMULL2 v20.1q, v19.2d, v23.2d \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* v22 is all 0's */
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v19.16b, v19.16b, v21.16b \n"
- "AESE v0.16b, v10.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n"
- "EOR v0.16b, v0.16b, v11.16b \n"
- "EOR v18.16b, v18.16b, v21.16b \n"
-
- "EOR v0.16b, v0.16b, v12.16b \n"
- "PMULL v20.1q, v19.1d, v23.1d \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
- "EOR v19.16b, v18.16b, v20.16b \n"
- "MOV v15.16b, v0.16b \n"
- "RBIT v17.16b, v19.16b \n"
-
- "CBZ w11, 1f \n"
- "LD1 {v12.2d}, [%[input]], #16 \n"
- "B 2b \n"
-
- /***************************************************
- GHASH on last block
- ***************************************************/
- "1: \n"
- "EOR v15.16b, v17.16b, v15.16b \n"
- "RBIT v15.16b, v15.16b \n" /* v15 is encrypted out block */
-
- "#store current AES counter value \n"
- "ST1 {v13.2d}, [%[ctrOut]] \n"
- "PMULL v18.1q, v15.1d, v16.1d \n" /* a0 * b0 = C */
- "PMULL2 v19.1q, v15.2d, v16.2d \n" /* a1 * b1 = D */
- "EXT v20.16b, v16.16b, v16.16b, #8 \n" /* b0b1 -> b1b0 */
- "PMULL v21.1q, v15.1d, v20.1d \n" /* a0 * b1 = E */
- "PMULL2 v20.1q, v15.2d, v20.2d \n" /* a1 * b0 = F */
- "EOR v20.16b, v20.16b, v21.16b \n" /* F ^ E */
- "EXT v21.16b, v22.16b, v20.16b, #8 \n" /* get (F^E)[0] */
- "EOR v18.16b, v18.16b, v21.16b \n" /* low 128 bits in v3 */
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* get (F^E)[1] */
- "EOR v19.16b, v19.16b, v21.16b \n" /* high 128 bits in v4 */
-
- "#Reduce product from multiplication \n"
- "PMULL2 v20.1q, v19.2d, v23.2d \n"
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* v22 is all 0's */
- "EOR v19.16b, v19.16b, v21.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n"
- "EOR v18.16b, v18.16b, v21.16b \n"
- "PMULL v20.1q, v19.1d, v23.1d \n"
- "EOR v19.16b, v18.16b, v20.16b \n"
- "RBIT v17.16b, v19.16b \n"
- "STR q17, [%[xOut]] \n" /* GHASH x value for partial blocks */
-
- :[out] "=r" (out), "=r" (keyPt), [ctrOut] "=r" (ctr), "=r" (in)
- ,[xOut] "=r" (xPt),"=m" (aes->H)
- :"0" (out), [Key] "1" (keyPt), [ctr] "2" (ctr), [blocks] "r" (blocks),
- [input] "3" (in)
- ,[inX] "4" (xPt), [inY] "m" (aes->H)
- : "cc", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10", "v11", "v12", "v13", "v14"
- ,"v15", "v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23", "v24"
- );
- }
-
- /* take care of partial block sizes leftover */
- if (partial != 0) {
- IncrementGcmCounter(counter);
- wc_AesEncrypt(aes, counter, scratch);
- xorbuf(scratch, in, partial);
- XMEMCPY(out, scratch, partial);
-
- XMEMSET(scratch, 0, AES_BLOCK_SIZE);
- XMEMCPY(scratch, out, partial);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
- GMULT(x, aes->H);
- }
-
- /* Hash in the lengths of A and C in bits */
- XMEMSET(scratch, 0, AES_BLOCK_SIZE);
- FlattenSzInBits(&scratch[0], authInSz);
- FlattenSzInBits(&scratch[8], sz);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
- XMEMCPY(scratch, x, AES_BLOCK_SIZE);
-
- keyPt = (byte*)aes->key;
- __asm__ __volatile__ (
-
- "LD1 {v16.16b}, [%[tag]] \n"
- "LD1 {v17.16b}, %[h] \n"
- "RBIT v16.16b, v16.16b \n"
-
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
- "PMULL v18.1q, v16.1d, v17.1d \n" /* a0 * b0 = C */
- "PMULL2 v19.1q, v16.2d, v17.2d \n" /* a1 * b1 = D */
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "EXT v20.16b, v17.16b, v17.16b, #8 \n" /* b0b1 -> b1b0 */
- "LD1 {v9.2d-v11.2d}, [%[Key]], #48\n"
- "PMULL v21.1q, v16.1d, v20.1d \n" /* a0 * b1 = E */
- "PMULL2 v20.1q, v16.2d, v20.2d \n" /* a1 * b0 = F */
- "LD1 {v0.2d}, [%[ctr]] \n"
-
- "#Set a register to all 0s using EOR \n"
- "EOR v22.16b, v22.16b, v22.16b \n"
- "EOR v20.16b, v20.16b, v21.16b \n" /* F ^ E */
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n" /* get (F^E)[0] */
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v18.16b, v18.16b, v21.16b \n" /* low 128 bits in v3 */
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* get (F^E)[1] */
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v19.16b, v19.16b, v21.16b \n" /* high 128 bits in v4 */
- "MOVI v23.16b, #0x87 \n"
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "USHR v23.2d, v23.2d, #56 \n"
- "PMULL2 v20.1q, v19.2d, v23.2d \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v20.16b, v22.16b, #8 \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v19.16b, v19.16b, v21.16b \n"
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v18.16b, v18.16b, v21.16b \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "PMULL v20.1q, v19.1d, v23.1d \n"
- "EOR v19.16b, v18.16b, v20.16b \n"
- "AESE v0.16b, v10.16b \n"
- "RBIT v19.16b, v19.16b \n"
- "EOR v0.16b, v0.16b, v11.16b \n"
- "EOR v19.16b, v19.16b, v0.16b \n"
- "STR q19, [%[out]] \n"
-
- :[out] "=r" (sPt), "=r" (keyPt), "=r" (iCtr)
- :[tag] "0" (sPt), [Key] "1" (keyPt),
- [ctr] "2" (iCtr) , [h] "m" (aes->H)
- : "cc", "memory", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10","v11","v12","v13","v14",
- "v15", "v16", "v17","v18", "v19", "v20","v21","v22","v23","v24"
- );
-
-
- if (authTagSz > AES_BLOCK_SIZE) {
- XMEMCPY(authTag, scratch, AES_BLOCK_SIZE);
- }
- else {
- /* authTagSz can be smaller than AES_BLOCK_SIZE */
- XMEMCPY(authTag, scratch, authTagSz);
- }
- return 0;
-}
-#endif /* WOLFSSL_AES_128 */
-
-#ifdef WOLFSSL_AES_192
-/* internal function : see wc_AesGcmEncrypt */
-static int Aes192GcmEncrypt(Aes* aes, byte* out, const byte* in, word32 sz,
- const byte* iv, word32 ivSz,
- byte* authTag, word32 authTagSz,
- const byte* authIn, word32 authInSz)
-{
- word32 blocks;
- word32 partial;
- byte counter[AES_BLOCK_SIZE];
- byte initialCounter[AES_BLOCK_SIZE];
- byte x[AES_BLOCK_SIZE];
- byte scratch[AES_BLOCK_SIZE];
-
- /* Noticed different optimization levels treated head of array different.
- Some cases was stack pointer plus offset others was a regester containing
- address. To make uniform for passing in to inline assembly code am using
- pointers to the head of each local array.
- */
- byte* ctr = counter;
- byte* iCtr = initialCounter;
- byte* xPt = x;
- byte* sPt = scratch;
- byte* keyPt; /* pointer to handle pointer advencment */
-
- XMEMSET(initialCounter, 0, AES_BLOCK_SIZE);
- if (ivSz == GCM_NONCE_MID_SZ) {
- XMEMCPY(initialCounter, iv, ivSz);
- initialCounter[AES_BLOCK_SIZE - 1] = 1;
- }
- else {
- GHASH(aes, NULL, 0, iv, ivSz, initialCounter, AES_BLOCK_SIZE);
- GMULT(initialCounter, aes->H);
- }
- XMEMCPY(counter, initialCounter, AES_BLOCK_SIZE);
-
-
- /* Hash in the Additional Authentication Data */
- XMEMSET(x, 0, AES_BLOCK_SIZE);
- if (authInSz != 0 && authIn != NULL) {
- blocks = authInSz / AES_BLOCK_SIZE;
- partial = authInSz % AES_BLOCK_SIZE;
- /* do as many blocks as possible */
- while (blocks--) {
- xorbuf(x, authIn, AES_BLOCK_SIZE);
- GMULT(x, aes->H);
- authIn += AES_BLOCK_SIZE;
- }
- if (partial != 0) {
- XMEMSET(scratch, 0, AES_BLOCK_SIZE);
- XMEMCPY(scratch, authIn, partial);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
- GMULT(x, aes->H);
- }
- }
-
- /* do as many blocks as possible */
- blocks = sz / AES_BLOCK_SIZE;
- partial = sz % AES_BLOCK_SIZE;
- if (blocks > 0) {
- keyPt = (byte*)aes->key;
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v13.2d}, [%[ctr]] \n"
-
- "#Create vector with the value 1 \n"
- "MOVI v14.16b, #1 \n"
- "USHR v14.2d, v14.2d, #56 \n"
- "EOR v22.16b, v22.16b, v22.16b \n"
- "EXT v14.16b, v14.16b, v22.16b, #8\n"
-
-
- /***************************************************
- Get first out block for GHASH using AES encrypt
- ***************************************************/
- "REV64 v13.16b, v13.16b \n" /* network order */
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "ADD v13.2d, v13.2d, v14.2d \n" /* add 1 to counter */
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "REV64 v13.16b, v13.16b \n" /* revert from network order */
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "MOV v0.16b, v13.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "LD1 {v16.2d}, %[inY] \n"
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "SUB w11, w11, #1 \n"
- "LD1 {v9.2d-v11.2d}, [%[Key]], #48\n"
- "LD1 {v30.2d-v31.2d}, [%[Key]], #32\n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "MOVI v23.16b, #0x87 \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "LD1 {v17.2d}, [%[inX]] \n" /* account for additional data */
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "USHR v23.2d, v23.2d, #56 \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "LD1 {v12.2d}, [%[input]], #16 \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v11.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v30.16b \n"
- "EOR v0.16b, v0.16b, v31.16b \n"
-
- "EOR v0.16b, v0.16b, v12.16b \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
- "MOV v15.16b, v0.16b \n"
-
- "CBZ w11, 1f \n" /* only one block jump to final GHASH */
- "LD1 {v12.2d}, [%[input]], #16 \n"
-
- /***************************************************
- Interweave GHASH and encrypt if more then 1 block
- ***************************************************/
- "2: \n"
- "REV64 v13.16b, v13.16b \n" /* network order */
- "EOR v15.16b, v17.16b, v15.16b \n"
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "ADD v13.2d, v13.2d, v14.2d \n" /* add 1 to counter */
- "RBIT v15.16b, v15.16b \n" /* v15 is encrypted out block (c) */
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "REV64 v13.16b, v13.16b \n" /* revert from network order */
- "PMULL v18.1q, v15.1d, v16.1d \n" /* a0 * b0 = C */
- "MOV v0.16b, v13.16b \n"
- "PMULL2 v19.1q, v15.2d, v16.2d \n" /* a1 * b1 = D */
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v20.16b, v16.16b, v16.16b, #8 \n" /* b0b1 -> b1b0 */
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "PMULL v21.1q, v15.1d, v20.1d \n" /* a0 * b1 = E */
- "PMULL2 v20.1q, v15.2d, v20.2d \n" /* a1 * b0 = F */
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v20.16b, v20.16b, v21.16b \n" /* F ^ E */
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n" /* get (F^E)[0] */
- "SUB w11, w11, #1 \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v18.16b, v18.16b, v21.16b \n" /* low 128 bits in v3 */
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* get (F^E)[1] */
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v19.16b, v19.16b, v21.16b \n" /* high 128 bits in v4 */
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "PMULL2 v20.1q, v19.2d, v23.2d \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* v22 is all 0's */
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v11.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v19.16b, v19.16b, v21.16b \n"
- "AESE v0.16b, v30.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n"
- "EOR v0.16b, v0.16b, v31.16b \n"
- "EOR v18.16b, v18.16b, v21.16b \n"
-
- "EOR v0.16b, v0.16b, v12.16b \n"
- "PMULL v20.1q, v19.1d, v23.1d \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
- "EOR v19.16b, v18.16b, v20.16b \n"
- "MOV v15.16b, v0.16b \n"
- "RBIT v17.16b, v19.16b \n"
-
- "CBZ w11, 1f \n"
- "LD1 {v12.2d}, [%[input]], #16 \n"
- "B 2b \n"
-
- /***************************************************
- GHASH on last block
- ***************************************************/
- "1: \n"
- "EOR v15.16b, v17.16b, v15.16b \n"
- "RBIT v15.16b, v15.16b \n" /* v15 is encrypted out block */
-
- "#store current AES counter value \n"
- "ST1 {v13.2d}, [%[ctrOut]] \n"
- "PMULL v18.1q, v15.1d, v16.1d \n" /* a0 * b0 = C */
- "PMULL2 v19.1q, v15.2d, v16.2d \n" /* a1 * b1 = D */
- "EXT v20.16b, v16.16b, v16.16b, #8 \n" /* b0b1 -> b1b0 */
- "PMULL v21.1q, v15.1d, v20.1d \n" /* a0 * b1 = E */
- "PMULL2 v20.1q, v15.2d, v20.2d \n" /* a1 * b0 = F */
- "EOR v20.16b, v20.16b, v21.16b \n" /* F ^ E */
- "EXT v21.16b, v22.16b, v20.16b, #8 \n" /* get (F^E)[0] */
- "EOR v18.16b, v18.16b, v21.16b \n" /* low 128 bits in v3 */
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* get (F^E)[1] */
- "EOR v19.16b, v19.16b, v21.16b \n" /* high 128 bits in v4 */
-
- "#Reduce product from multiplication \n"
- "PMULL2 v20.1q, v19.2d, v23.2d \n"
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* v22 is all 0's */
- "EOR v19.16b, v19.16b, v21.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n"
- "EOR v18.16b, v18.16b, v21.16b \n"
- "PMULL v20.1q, v19.1d, v23.1d \n"
- "EOR v19.16b, v18.16b, v20.16b \n"
- "RBIT v17.16b, v19.16b \n"
- "STR q17, [%[xOut]] \n" /* GHASH x value for partial blocks */
-
- :[out] "=r" (out), "=r" (keyPt), [ctrOut] "=r" (ctr), "=r" (in)
- ,[xOut] "=r" (xPt),"=m" (aes->H)
- :"0" (out), [Key] "1" (keyPt), [ctr] "2" (ctr), [blocks] "r" (blocks),
- [input] "3" (in)
- ,[inX] "4" (xPt), [inY] "m" (aes->H)
- : "cc", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10", "v11", "v12", "v13", "v14"
- ,"v15", "v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23",
- "v24","v25","v26","v27","v28","v29","v30","v31"
- );
- }
-
- /* take care of partial block sizes leftover */
- if (partial != 0) {
- IncrementGcmCounter(counter);
- wc_AesEncrypt(aes, counter, scratch);
- xorbuf(scratch, in, partial);
- XMEMCPY(out, scratch, partial);
-
- XMEMSET(scratch, 0, AES_BLOCK_SIZE);
- XMEMCPY(scratch, out, partial);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
- GMULT(x, aes->H);
- }
-
- /* Hash in the lengths of A and C in bits */
- XMEMSET(scratch, 0, AES_BLOCK_SIZE);
- FlattenSzInBits(&scratch[0], authInSz);
- FlattenSzInBits(&scratch[8], sz);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
- XMEMCPY(scratch, x, AES_BLOCK_SIZE);
-
- keyPt = (byte*)aes->key;
- __asm__ __volatile__ (
-
- "LD1 {v16.16b}, [%[tag]] \n"
- "LD1 {v17.16b}, %[h] \n"
- "RBIT v16.16b, v16.16b \n"
-
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
- "PMULL v18.1q, v16.1d, v17.1d \n" /* a0 * b0 = C */
- "PMULL2 v19.1q, v16.2d, v17.2d \n" /* a1 * b1 = D */
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "EXT v20.16b, v17.16b, v17.16b, #8 \n" /* b0b1 -> b1b0 */
- "LD1 {v9.2d-v11.2d}, [%[Key]], #48\n"
- "LD1 {v30.2d-v31.2d}, [%[Key]], #32\n"
- "PMULL v21.1q, v16.1d, v20.1d \n" /* a0 * b1 = E */
- "PMULL2 v20.1q, v16.2d, v20.2d \n" /* a1 * b0 = F */
- "LD1 {v0.2d}, [%[ctr]] \n"
-
- "#Set a register to all 0s using EOR \n"
- "EOR v22.16b, v22.16b, v22.16b \n"
- "EOR v20.16b, v20.16b, v21.16b \n" /* F ^ E */
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n" /* get (F^E)[0] */
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v18.16b, v18.16b, v21.16b \n" /* low 128 bits in v3 */
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* get (F^E)[1] */
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v19.16b, v19.16b, v21.16b \n" /* high 128 bits in v4 */
- "MOVI v23.16b, #0x87 \n"
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "USHR v23.2d, v23.2d, #56 \n"
- "PMULL2 v20.1q, v19.2d, v23.2d \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v20.16b, v22.16b, #8 \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v19.16b, v19.16b, v21.16b \n"
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v18.16b, v18.16b, v21.16b \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v11.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "PMULL v20.1q, v19.1d, v23.1d \n"
- "EOR v19.16b, v18.16b, v20.16b \n"
- "AESE v0.16b, v30.16b \n"
- "RBIT v19.16b, v19.16b \n"
- "EOR v0.16b, v0.16b, v31.16b \n"
- "EOR v19.16b, v19.16b, v0.16b \n"
- "STR q19, [%[out]] \n"
-
- :[out] "=r" (sPt), "=r" (keyPt), "=r" (iCtr)
- :[tag] "0" (sPt), [Key] "1" (keyPt),
- [ctr] "2" (iCtr) , [h] "m" (aes->H)
- : "cc", "memory", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10","v11","v12","v13","v14",
- "v15", "v16", "v17","v18", "v19", "v20","v21","v22","v23","v24"
- );
-
-
- if (authTagSz > AES_BLOCK_SIZE) {
- XMEMCPY(authTag, scratch, AES_BLOCK_SIZE);
- }
- else {
- /* authTagSz can be smaller than AES_BLOCK_SIZE */
- XMEMCPY(authTag, scratch, authTagSz);
- }
-
- return 0;
-}
-#endif /* WOLFSSL_AES_192 */
-
-#ifdef WOLFSSL_AES_256
-/* internal function : see wc_AesGcmEncrypt */
-static int Aes256GcmEncrypt(Aes* aes, byte* out, const byte* in, word32 sz,
- const byte* iv, word32 ivSz,
- byte* authTag, word32 authTagSz,
- const byte* authIn, word32 authInSz)
-{
- word32 blocks;
- word32 partial;
- byte counter[AES_BLOCK_SIZE];
- byte initialCounter[AES_BLOCK_SIZE];
- byte x[AES_BLOCK_SIZE];
- byte scratch[AES_BLOCK_SIZE];
-
- /* Noticed different optimization levels treated head of array different.
- Some cases was stack pointer plus offset others was a regester containing
- address. To make uniform for passing in to inline assembly code am using
- pointers to the head of each local array.
- */
- byte* ctr = counter;
- byte* iCtr = initialCounter;
- byte* xPt = x;
- byte* sPt = scratch;
- byte* keyPt; /* pointer to handle pointer advencment */
-
- XMEMSET(initialCounter, 0, AES_BLOCK_SIZE);
- if (ivSz == GCM_NONCE_MID_SZ) {
- XMEMCPY(initialCounter, iv, ivSz);
- initialCounter[AES_BLOCK_SIZE - 1] = 1;
- }
- else {
- GHASH(aes, NULL, 0, iv, ivSz, initialCounter, AES_BLOCK_SIZE);
- GMULT(initialCounter, aes->H);
- }
- XMEMCPY(counter, initialCounter, AES_BLOCK_SIZE);
-
-
- /* Hash in the Additional Authentication Data */
- XMEMSET(x, 0, AES_BLOCK_SIZE);
- if (authInSz != 0 && authIn != NULL) {
- blocks = authInSz / AES_BLOCK_SIZE;
- partial = authInSz % AES_BLOCK_SIZE;
- /* do as many blocks as possible */
- while (blocks--) {
- xorbuf(x, authIn, AES_BLOCK_SIZE);
- GMULT(x, aes->H);
- authIn += AES_BLOCK_SIZE;
- }
- if (partial != 0) {
- XMEMSET(scratch, 0, AES_BLOCK_SIZE);
- XMEMCPY(scratch, authIn, partial);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
- GMULT(x, aes->H);
- }
- }
-
- /* do as many blocks as possible */
- blocks = sz / AES_BLOCK_SIZE;
- partial = sz % AES_BLOCK_SIZE;
- if (blocks > 0) {
- keyPt = (byte*)aes->key;
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v13.2d}, [%[ctr]] \n"
-
- "#Create vector with the value 1 \n"
- "MOVI v14.16b, #1 \n"
- "USHR v14.2d, v14.2d, #56 \n"
- "EOR v22.16b, v22.16b, v22.16b \n"
- "EXT v14.16b, v14.16b, v22.16b, #8\n"
-
-
- /***************************************************
- Get first out block for GHASH using AES encrypt
- ***************************************************/
- "REV64 v13.16b, v13.16b \n" /* network order */
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "ADD v13.2d, v13.2d, v14.2d \n" /* add 1 to counter */
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "REV64 v13.16b, v13.16b \n" /* revert from network order */
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "MOV v0.16b, v13.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "LD1 {v16.2d}, %[inY] \n"
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "SUB w11, w11, #1 \n"
- "LD1 {v9.2d-v11.2d}, [%[Key]], #48\n"
- "LD1 {v28.2d-v31.2d}, [%[Key]], #64\n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "MOVI v23.16b, #0x87 \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "LD1 {v17.2d}, [%[inX]] \n" /* account for additional data */
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "USHR v23.2d, v23.2d, #56 \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "LD1 {v12.2d}, [%[input]], #16 \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v11.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v28.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v29.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v30.16b \n"
- "EOR v0.16b, v0.16b, v31.16b \n"
-
- "EOR v0.16b, v0.16b, v12.16b \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
- "MOV v15.16b, v0.16b \n"
-
- "CBZ w11, 1f \n" /* only one block jump to final GHASH */
- "LD1 {v12.2d}, [%[input]], #16 \n"
-
- /***************************************************
- Interweave GHASH and encrypt if more then 1 block
- ***************************************************/
- "2: \n"
- "REV64 v13.16b, v13.16b \n" /* network order */
- "EOR v15.16b, v17.16b, v15.16b \n"
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "ADD v13.2d, v13.2d, v14.2d \n" /* add 1 to counter */
- "RBIT v15.16b, v15.16b \n" /* v15 is encrypted out block (c) */
- "EXT v13.16b, v13.16b, v13.16b, #8 \n"
- "REV64 v13.16b, v13.16b \n" /* revert from network order */
- "PMULL v18.1q, v15.1d, v16.1d \n" /* a0 * b0 = C */
- "MOV v0.16b, v13.16b \n"
- "PMULL2 v19.1q, v15.2d, v16.2d \n" /* a1 * b1 = D */
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v20.16b, v16.16b, v16.16b, #8 \n" /* b0b1 -> b1b0 */
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "PMULL v21.1q, v15.1d, v20.1d \n" /* a0 * b1 = E */
- "PMULL2 v20.1q, v15.2d, v20.2d \n" /* a1 * b0 = F */
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v20.16b, v20.16b, v21.16b \n" /* F ^ E */
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n" /* get (F^E)[0] */
- "SUB w11, w11, #1 \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v18.16b, v18.16b, v21.16b \n" /* low 128 bits in v3 */
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* get (F^E)[1] */
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v19.16b, v19.16b, v21.16b \n" /* high 128 bits in v4 */
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "PMULL2 v20.1q, v19.2d, v23.2d \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* v22 is all 0's */
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v11.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v28.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v29.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v19.16b, v19.16b, v21.16b \n"
- "AESE v0.16b, v30.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n"
- "EOR v0.16b, v0.16b, v31.16b \n"
- "EOR v18.16b, v18.16b, v21.16b \n"
-
- "EOR v0.16b, v0.16b, v12.16b \n"
- "PMULL v20.1q, v19.1d, v23.1d \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
- "EOR v19.16b, v18.16b, v20.16b \n"
- "MOV v15.16b, v0.16b \n"
- "RBIT v17.16b, v19.16b \n"
-
- "CBZ w11, 1f \n"
- "LD1 {v12.2d}, [%[input]], #16 \n"
- "B 2b \n"
-
- /***************************************************
- GHASH on last block
- ***************************************************/
- "1: \n"
- "EOR v15.16b, v17.16b, v15.16b \n"
- "RBIT v15.16b, v15.16b \n" /* v15 is encrypted out block */
-
- "#store current AES counter value \n"
- "ST1 {v13.2d}, [%[ctrOut]] \n"
- "PMULL v18.1q, v15.1d, v16.1d \n" /* a0 * b0 = C */
- "PMULL2 v19.1q, v15.2d, v16.2d \n" /* a1 * b1 = D */
- "EXT v20.16b, v16.16b, v16.16b, #8 \n" /* b0b1 -> b1b0 */
- "PMULL v21.1q, v15.1d, v20.1d \n" /* a0 * b1 = E */
- "PMULL2 v20.1q, v15.2d, v20.2d \n" /* a1 * b0 = F */
- "EOR v20.16b, v20.16b, v21.16b \n" /* F ^ E */
- "EXT v21.16b, v22.16b, v20.16b, #8 \n" /* get (F^E)[0] */
- "EOR v18.16b, v18.16b, v21.16b \n" /* low 128 bits in v3 */
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* get (F^E)[1] */
- "EOR v19.16b, v19.16b, v21.16b \n" /* high 128 bits in v4 */
-
- "#Reduce product from multiplication \n"
- "PMULL2 v20.1q, v19.2d, v23.2d \n"
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* v22 is all 0's */
- "EOR v19.16b, v19.16b, v21.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n"
- "EOR v18.16b, v18.16b, v21.16b \n"
- "PMULL v20.1q, v19.1d, v23.1d \n"
- "EOR v19.16b, v18.16b, v20.16b \n"
- "RBIT v17.16b, v19.16b \n"
- "STR q17, [%[xOut]] \n" /* GHASH x value for partial blocks */
-
- :[out] "=r" (out), "=r" (keyPt), [ctrOut] "=r" (ctr), "=r" (in)
- ,[xOut] "=r" (xPt),"=m" (aes->H)
- :"0" (out), [Key] "1" (keyPt), [ctr] "2" (ctr), [blocks] "r" (blocks),
- [input] "3" (in)
- ,[inX] "4" (xPt), [inY] "m" (aes->H)
- : "cc", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10", "v11", "v12", "v13", "v14"
- ,"v15", "v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23", "v24"
- );
- }
-
- /* take care of partial block sizes leftover */
- if (partial != 0) {
- IncrementGcmCounter(counter);
- wc_AesEncrypt(aes, counter, scratch);
- xorbuf(scratch, in, partial);
- XMEMCPY(out, scratch, partial);
-
- XMEMSET(scratch, 0, AES_BLOCK_SIZE);
- XMEMCPY(scratch, out, partial);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
- GMULT(x, aes->H);
- }
-
- /* Hash in the lengths of A and C in bits */
- XMEMSET(scratch, 0, AES_BLOCK_SIZE);
- FlattenSzInBits(&scratch[0], authInSz);
- FlattenSzInBits(&scratch[8], sz);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
- XMEMCPY(scratch, x, AES_BLOCK_SIZE);
-
- keyPt = (byte*)aes->key;
- __asm__ __volatile__ (
-
- "LD1 {v16.16b}, [%[tag]] \n"
- "LD1 {v17.16b}, %[h] \n"
- "RBIT v16.16b, v16.16b \n"
-
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
- "PMULL v18.1q, v16.1d, v17.1d \n" /* a0 * b0 = C */
- "PMULL2 v19.1q, v16.2d, v17.2d \n" /* a1 * b1 = D */
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "EXT v20.16b, v17.16b, v17.16b, #8 \n" /* b0b1 -> b1b0 */
- "LD1 {v9.2d-v11.2d}, [%[Key]], #48\n"
- "LD1 {v28.2d-v31.2d}, [%[Key]], #64\n"
- "PMULL v21.1q, v16.1d, v20.1d \n" /* a0 * b1 = E */
- "PMULL2 v20.1q, v16.2d, v20.2d \n" /* a1 * b0 = F */
- "LD1 {v0.2d}, [%[ctr]] \n"
-
- "#Set a register to all 0s using EOR \n"
- "EOR v22.16b, v22.16b, v22.16b \n"
- "EOR v20.16b, v20.16b, v21.16b \n" /* F ^ E */
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n" /* get (F^E)[0] */
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v18.16b, v18.16b, v21.16b \n" /* low 128 bits in v3 */
- "EXT v21.16b, v20.16b, v22.16b, #8 \n" /* get (F^E)[1] */
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v19.16b, v19.16b, v21.16b \n" /* high 128 bits in v4 */
- "MOVI v23.16b, #0x87 \n"
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "USHR v23.2d, v23.2d, #56 \n"
- "PMULL2 v20.1q, v19.2d, v23.2d \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v20.16b, v22.16b, #8 \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v19.16b, v19.16b, v21.16b \n"
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EXT v21.16b, v22.16b, v20.16b, #8 \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "EOR v18.16b, v18.16b, v21.16b \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v11.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v28.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v29.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "PMULL v20.1q, v19.1d, v23.1d \n"
- "EOR v19.16b, v18.16b, v20.16b \n"
- "AESE v0.16b, v30.16b \n"
- "RBIT v19.16b, v19.16b \n"
- "EOR v0.16b, v0.16b, v31.16b \n"
- "EOR v19.16b, v19.16b, v0.16b \n"
- "STR q19, [%[out]] \n"
-
- :[out] "=r" (sPt), "=r" (keyPt), "=r" (iCtr)
- :[tag] "0" (sPt), [Key] "1" (keyPt),
- [ctr] "2" (iCtr) , [h] "m" (aes->H)
- : "cc", "memory", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10","v11","v12","v13","v14",
- "v15", "v16", "v17","v18", "v19", "v20","v21","v22","v23",
- "v24","v25","v26","v27","v28","v29","v30","v31"
- );
-
-
- if (authTagSz > AES_BLOCK_SIZE) {
- XMEMCPY(authTag, scratch, AES_BLOCK_SIZE);
- }
- else {
- /* authTagSz can be smaller than AES_BLOCK_SIZE */
- XMEMCPY(authTag, scratch, authTagSz);
- }
-
- return 0;
-}
-#endif /* WOLFSSL_AES_256 */
-
-
-/* aarch64 with PMULL and PMULL2
- * Encrypt and tag data using AES with GCM mode.
- * aes: Aes structure having already been set with set key function
- * out: encrypted data output buffer
- * in: plain text input buffer
- * sz: size of plain text and out buffer
- * iv: initialization vector
- * ivSz: size of iv buffer
- * authTag: buffer to hold tag
- * authTagSz: size of tag buffer
- * authIn: additional data buffer
- * authInSz: size of additional data buffer
- *
- * Notes:
- * GHASH multiplication based from Algorithm 1 from Intel GCM white paper.
- * "Carry-Less Multiplication and Its Usage for Computing the GCM Mode"
- *
- * GHASH reduction Based from White Paper "Implementing GCM on ARMv8"
- * by Conrado P.L. Gouvea and Julio Lopez reduction on 256bit value using
- * Algorithm 5
- */
-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)
-{
- /* sanity checks */
- if (aes == NULL || (iv == NULL && ivSz > 0) ||
- (authTag == NULL) ||
- (authIn == NULL && authInSz > 0) ||
- (in == NULL && sz > 0) ||
- (out == NULL && sz > 0)) {
- WOLFSSL_MSG("a NULL parameter passed in when size is larger than 0");
- return BAD_FUNC_ARG;
- }
-
- if (authTagSz < WOLFSSL_MIN_AUTH_TAG_SZ || authTagSz > AES_BLOCK_SIZE) {
- WOLFSSL_MSG("GcmEncrypt authTagSz error");
- return BAD_FUNC_ARG;
- }
-
- switch (aes->rounds) {
-#ifdef WOLFSSL_AES_128
- case 10:
- return Aes128GcmEncrypt(aes, out, in, sz, iv, ivSz,
- authTag, authTagSz, authIn, authInSz);
-#endif
-#ifdef WOLFSSL_AES_192
- case 12:
- return Aes192GcmEncrypt(aes, out, in, sz, iv, ivSz,
- authTag, authTagSz, authIn, authInSz);
-#endif
-#ifdef WOLFSSL_AES_256
- case 14:
- return Aes256GcmEncrypt(aes, out, in, sz, iv, ivSz,
- authTag, authTagSz, authIn, authInSz);
-#endif
- default:
- WOLFSSL_MSG("AES-GCM invalid round number");
- return BAD_FUNC_ARG;
- }
-}
-
-
-#ifdef HAVE_AES_DECRYPT
-/*
- * Check tag and decrypt data using AES with GCM mode.
- * aes: Aes structure having already been set with set key function
- * out: decrypted data output buffer
- * in: cipher text buffer
- * sz: size of plain text and out buffer
- * iv: initialization vector
- * ivSz: size of iv buffer
- * authTag: buffer holding tag
- * authTagSz: size of tag buffer
- * authIn: additional data buffer
- * authInSz: size of additional data buffer
- */
-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)
-{
- word32 blocks = sz / AES_BLOCK_SIZE;
- word32 partial = sz % AES_BLOCK_SIZE;
- const byte* c = in;
- byte* p = out;
- byte counter[AES_BLOCK_SIZE];
- byte initialCounter[AES_BLOCK_SIZE];
- byte *ctr ;
- byte scratch[AES_BLOCK_SIZE];
-
- ctr = counter ;
-
- /* sanity checks */
- if (aes == NULL || (iv == NULL && ivSz > 0) ||
- (authTag == NULL) ||
- (authIn == NULL && authInSz > 0) ||
- (in == NULL && sz > 0) ||
- (out == NULL && sz > 0)) {
- WOLFSSL_MSG("a NULL parameter passed in when size is larger than 0");
- return BAD_FUNC_ARG;
- }
-
- XMEMSET(initialCounter, 0, AES_BLOCK_SIZE);
- if (ivSz == GCM_NONCE_MID_SZ) {
- XMEMCPY(initialCounter, iv, ivSz);
- initialCounter[AES_BLOCK_SIZE - 1] = 1;
- }
- else {
- GHASH(aes, NULL, 0, iv, ivSz, initialCounter, AES_BLOCK_SIZE);
- GMULT(initialCounter, aes->H);
- }
- XMEMCPY(ctr, initialCounter, AES_BLOCK_SIZE);
-
- /* Calculate the authTag again using the received auth data and the
- * cipher text. */
- {
- byte Tprime[AES_BLOCK_SIZE];
- byte EKY0[AES_BLOCK_SIZE];
-
- GHASH(aes, authIn, authInSz, in, sz, Tprime, sizeof(Tprime));
- GMULT(Tprime, aes->H);
- wc_AesEncrypt(aes, ctr, EKY0);
- xorbuf(Tprime, EKY0, sizeof(Tprime));
-
- if (ConstantCompare(authTag, Tprime, authTagSz) != 0) {
- return AES_GCM_AUTH_E;
- }
- }
-
- /* do as many blocks as possible */
- if (blocks > 0) {
- /* pointer needed because it is incremented when read, causing
- * an issue with call to encrypt/decrypt leftovers */
- byte* keyPt = (byte*)aes->key;
- switch(aes->rounds) {
-#ifdef WOLFSSL_AES_128
- case 10: /* AES 128 BLOCK */
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
-
- "#Create vector with the value 1 \n"
- "MOVI v14.16b, #1 \n"
- "USHR v14.2d, v14.2d, #56 \n"
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "EOR v13.16b, v13.16b, v13.16b \n"
- "EXT v14.16b, v14.16b, v13.16b, #8 \n"
-
- "LD1 {v9.2d-v11.2d}, [%[Key]], #48 \n"
- "LD1 {v12.2d}, [%[ctr]] \n"
- "LD1 {v13.2d}, [%[input]], #16 \n"
-
- "1: \n"
- "REV64 v12.16b, v12.16b \n" /* network order */
- "EXT v12.16b, v12.16b, v12.16b, #8 \n"
- "ADD v12.2d, v12.2d, v14.2d \n" /* add 1 to counter */
- "EXT v12.16b, v12.16b, v12.16b, #8 \n"
- "REV64 v12.16b, v12.16b \n" /* revert from network order */
- "MOV v0.16b, v12.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "SUB w11, w11, #1 \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "EOR v0.16b, v0.16b, v11.16b \n"
-
- "EOR v0.16b, v0.16b, v13.16b \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
-
- "CBZ w11, 2f \n"
- "LD1 {v13.2d}, [%[input]], #16 \n"
- "B 1b \n"
-
- "2: \n"
- "#store current counter value at the end \n"
- "ST1 {v12.16b}, [%[ctrOut]] \n"
-
- :[out] "=r" (p), "=r" (keyPt), [ctrOut] "=r" (ctr), "=r" (c)
- :"0" (p), [Key] "1" (keyPt), [ctr] "2" (ctr), [blocks] "r" (blocks),
- [input] "3" (c)
- : "cc", "memory", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10", "v11", "v12", "v13", "v14"
- );
- break;
-#endif
-#ifdef WOLFSSL_AES_192
- case 12: /* AES 192 BLOCK */
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
-
- "#Create vector with the value 1 \n"
- "MOVI v16.16b, #1 \n"
- "USHR v16.2d, v16.2d, #56 \n"
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "EOR v14.16b, v14.16b, v14.16b \n"
- "EXT v16.16b, v16.16b, v14.16b, #8 \n"
-
- "LD1 {v9.2d-v12.2d}, [%[Key]], #64 \n"
- "LD1 {v13.2d}, [%[Key]], #16 \n"
- "LD1 {v14.2d}, [%[ctr]] \n"
- "LD1 {v15.2d}, [%[input]], #16 \n"
-
- "1: \n"
- "REV64 v14.16b, v14.16b \n" /* network order */
- "EXT v14.16b, v14.16b, v14.16b, #8 \n"
- "ADD v14.2d, v14.2d, v16.2d \n" /* add 1 to counter */
- "EXT v14.16b, v14.16b, v14.16b, #8 \n"
- "REV64 v14.16b, v14.16b \n" /* revert from network order */
- "MOV v0.16b, v14.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "SUB w11, w11, #1 \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v11.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v12.16b \n"
- "EOR v0.16b, v0.16b, v13.16b \n"
-
- "EOR v0.16b, v0.16b, v15.16b \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
-
- "CBZ w11, 2f \n"
- "LD1 {v15.2d}, [%[input]], #16 \n"
- "B 1b \n"
-
- "2: \n"
- "#store current counter value at the end \n"
- "ST1 {v14.2d}, [%[ctrOut]] \n"
-
- :[out] "=r" (p), "=r" (keyPt), [ctrOut] "=r" (ctr), "=r" (c)
- :"0" (p), [Key] "1" (keyPt), [ctr] "2" (ctr), [blocks] "r" (blocks),
- [input] "3" (c)
- : "cc", "memory", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10", "v11", "v12", "v13", "v14", "v15",
- "v16"
- );
- break;
-#endif /* WOLFSSL_AES_192 */
-#ifdef WOLFSSL_AES_256
- case 14: /* AES 256 BLOCK */
- __asm__ __volatile__ (
- "MOV w11, %w[blocks] \n"
- "LD1 {v1.2d-v4.2d}, [%[Key]], #64 \n"
-
- "#Create vector with the value 1 \n"
- "MOVI v18.16b, #1 \n"
- "USHR v18.2d, v18.2d, #56 \n"
- "LD1 {v5.2d-v8.2d}, [%[Key]], #64 \n"
- "EOR v19.16b, v19.16b, v19.16b \n"
- "EXT v18.16b, v18.16b, v19.16b, #8 \n"
-
- "LD1 {v9.2d-v12.2d}, [%[Key]], #64 \n"
- "LD1 {v13.2d-v15.2d}, [%[Key]], #48 \n"
- "LD1 {v17.2d}, [%[ctr]] \n"
- "LD1 {v16.2d}, [%[input]], #16 \n"
-
- "1: \n"
- "REV64 v17.16b, v17.16b \n" /* network order */
- "EXT v17.16b, v17.16b, v17.16b, #8 \n"
- "ADD v17.2d, v17.2d, v18.2d \n" /* add 1 to counter */
- "EXT v17.16b, v17.16b, v17.16b, #8 \n"
- "REV64 v17.16b, v17.16b \n" /* revert from network order */
- "MOV v0.16b, v17.16b \n"
- "AESE v0.16b, v1.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v2.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v3.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v4.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "SUB w11, w11, #1 \n"
- "AESE v0.16b, v5.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v6.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v7.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v8.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v9.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v10.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v11.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v12.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v13.16b \n"
- "AESMC v0.16b, v0.16b \n"
- "AESE v0.16b, v14.16b \n"
- "EOR v0.16b, v0.16b, v15.16b \n"
-
- "EOR v0.16b, v0.16b, v16.16b \n"
- "ST1 {v0.2d}, [%[out]], #16 \n"
-
- "CBZ w11, 2f \n"
- "LD1 {v16.2d}, [%[input]], #16 \n"
- "B 1b \n"
-
- "2: \n"
- "#store current counter value at the end \n"
- "ST1 {v17.2d}, [%[ctrOut]] \n"
-
- :[out] "=r" (p), "=r" (keyPt), [ctrOut] "=r" (ctr), "=r" (c)
- :"0" (p), [Key] "1" (keyPt), [ctr] "2" (ctr), [blocks] "r" (blocks),
- [input] "3" (c)
- : "cc", "memory", "w11", "v0", "v1", "v2", "v3", "v4", "v5",
- "v6", "v7", "v8", "v9", "v10", "v11", "v12", "v13", "v14", "v15",
- "v16", "v17", "v18", "v19"
- );
- break;
-#endif /* WOLFSSL_AES_256 */
- default:
- WOLFSSL_MSG("Bad AES-GCM round value");
- return BAD_FUNC_ARG;
- }
- }
- if (partial != 0) {
- IncrementGcmCounter(ctr);
- wc_AesEncrypt(aes, ctr, scratch);
-
- /* check if pointer is null after main AES-GCM blocks
- * helps static analysis */
- if (p == NULL || c == NULL) {
- return BAD_STATE_E;
- }
- xorbuf(scratch, c, partial);
- XMEMCPY(p, scratch, partial);
- }
- return 0;
-}
-
-#endif /* HAVE_AES_DECRYPT */
-#endif /* HAVE_AESGCM */
-
-
-/***************************************
- * not 64 bit so use 32 bit mode
-****************************************/
-#else
-
-/* AES CCM/GCM use encrypt direct but not decrypt */
-#if defined(HAVE_AESCCM) || defined(HAVE_AESGCM) || \
- defined(WOLFSSL_AES_DIRECT) || defined(WOLFSSL_AES_COUNTER)
- static int wc_AesEncrypt(Aes* aes, const byte* inBlock, byte* outBlock)
- {
- /*
- AESE exor's input with round key
- shift rows of exor'ed result
- sub bytes for shifted rows
- */
-
- word32* keyPt = aes->key;
- __asm__ __volatile__ (
- "VLD1.32 {q0}, [%[CtrIn]] \n"
- "VLDM %[Key]!, {q1-q4} \n"
-
- "AESE.8 q0, q1\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q2\n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "AESE.8 q0, q3\n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q2}, [%[Key]]! \n"
- "AESE.8 q0, q4\n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q3}, [%[Key]]! \n"
- "AESE.8 q0, q1\n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q4}, [%[Key]]! \n"
- "AESE.8 q0, q2\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q3\n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "AESE.8 q0, q4\n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q2}, [%[Key]]! \n"
- "AESE.8 q0, q1\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q2\n"
-
- "MOV r12, %[R] \n"
- "CMP r12, #10 \n"
- "BEQ 1f \n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q2}, [%[Key]]! \n"
- "AESE.8 q0, q1\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q2\n"
-
- "CMP r12, #12 \n"
- "BEQ 1f \n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q2}, [%[Key]]! \n"
- "AESE.8 q0, q1\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q2\n"
-
- "#Final AddRoundKey then store result \n"
- "1: \n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "VEOR.32 q0, q0, q1\n"
- "VST1.32 {q0}, [%[CtrOut]] \n"
-
- :[CtrOut] "=r" (outBlock), "=r" (keyPt), "=r" (aes->rounds),
- "=r" (inBlock)
- :"0" (outBlock), [Key] "1" (keyPt), [R] "2" (aes->rounds),
- [CtrIn] "3" (inBlock)
- : "cc", "memory", "r12", "q0", "q1", "q2", "q3", "q4"
- );
-
- return 0;
- }
-#endif /* AES_GCM, AES_CCM, DIRECT or COUNTER */
-#if defined(WOLFSSL_AES_DIRECT) || defined(WOLFSSL_AES_COUNTER)
- #ifdef HAVE_AES_DECRYPT
- static int wc_AesDecrypt(Aes* aes, const byte* inBlock, byte* outBlock)
- {
- /*
- AESE exor's input with round key
- shift rows of exor'ed result
- sub bytes for shifted rows
- */
-
- word32* keyPt = aes->key;
- __asm__ __volatile__ (
- "VLD1.32 {q0}, [%[CtrIn]] \n"
- "VLDM %[Key]!, {q1-q4} \n"
-
- "AESD.8 q0, q1\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q2\n"
- "AESIMC.8 q0, q0\n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "AESD.8 q0, q3\n"
- "AESIMC.8 q0, q0\n"
- "VLD1.32 {q2}, [%[Key]]! \n"
- "AESD.8 q0, q4\n"
- "AESIMC.8 q0, q0\n"
- "VLD1.32 {q3}, [%[Key]]! \n"
- "AESD.8 q0, q1\n"
- "AESIMC.8 q0, q0\n"
- "VLD1.32 {q4}, [%[Key]]! \n"
- "AESD.8 q0, q2\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q3\n"
- "AESIMC.8 q0, q0\n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "AESD.8 q0, q4\n"
- "AESIMC.8 q0, q0\n"
- "VLD1.32 {q2}, [%[Key]]! \n"
- "AESD.8 q0, q1\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q2\n"
-
- "MOV r12, %[R] \n"
- "CMP r12, #10 \n"
- "BEQ 1f \n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "AESIMC.8 q0, q0\n"
- "VLD1.32 {q2}, [%[Key]]! \n"
- "AESD.8 q0, q1\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q2\n"
-
- "CMP r12, #12 \n"
- "BEQ 1f \n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "AESIMC.8 q0, q0\n"
- "VLD1.32 {q2}, [%[Key]]! \n"
- "AESD.8 q0, q1\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q2\n"
-
- "#Final AddRoundKey then store result \n"
- "1: \n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "VEOR.32 q0, q0, q1\n"
- "VST1.32 {q0}, [%[CtrOut]] \n"
-
- :[CtrOut] "=r" (outBlock), "=r" (keyPt), "=r" (aes->rounds),
- "=r" (inBlock)
- :"0" (outBlock), [Key] "1" (keyPt), [R] "2" (aes->rounds),
- [CtrIn] "3" (inBlock)
- : "cc", "memory", "r12", "q0", "q1", "q2", "q3", "q4"
- );
-
- return 0;
-}
- #endif /* HAVE_AES_DECRYPT */
-#endif /* DIRECT or COUNTER */
-
-/* AES-CBC */
-#ifdef HAVE_AES_CBC
- int wc_AesCbcEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
- {
- word32 numBlocks = sz / AES_BLOCK_SIZE;
-
- if (aes == NULL || out == NULL || (in == NULL && sz > 0)) {
- return BAD_FUNC_ARG;
- }
-
- /* do as many block size ops as possible */
- if (numBlocks > 0) {
- word32* keyPt = aes->key;
- word32* regPt = aes->reg;
- /*
- AESE exor's input with round key
- shift rows of exor'ed result
- sub bytes for shifted rows
-
- note: grouping AESE & AESMC together as pairs reduces latency
- */
- switch(aes->rounds) {
-#ifdef WOLFSSL_AES_128
- case 10: /* AES 128 BLOCK */
- __asm__ __volatile__ (
- "MOV r11, %[blocks] \n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "VLD1.32 {q2}, [%[Key]]! \n"
- "VLD1.32 {q3}, [%[Key]]! \n"
- "VLD1.32 {q4}, [%[Key]]! \n"
- "VLD1.32 {q5}, [%[Key]]! \n"
- "VLD1.32 {q6}, [%[Key]]! \n"
- "VLD1.32 {q7}, [%[Key]]! \n"
- "VLD1.32 {q8}, [%[Key]]! \n"
- "VLD1.32 {q9}, [%[Key]]! \n"
- "VLD1.32 {q10}, [%[Key]]! \n"
- "VLD1.32 {q11}, [%[Key]]! \n"
- "VLD1.32 {q0}, [%[reg]] \n"
- "VLD1.32 {q12}, [%[input]]!\n"
-
- "1:\n"
- "#CBC operations, xorbuf in with current aes->reg \n"
- "VEOR.32 q0, q0, q12 \n"
- "AESE.8 q0, q1 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q2 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q3 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q4 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q5 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q6 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q7 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q8 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q9 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q10\n"
- "VEOR.32 q0, q0, q11 \n"
- "SUB r11, r11, #1 \n"
- "VST1.32 {q0}, [%[out]]! \n"
-
- "CMP r11, #0 \n"
- "BEQ 2f \n"
- "VLD1.32 {q12}, [%[input]]! \n"
- "B 1b \n"
-
- "2:\n"
- "#store current counter value at the end \n"
- "VST1.32 {q0}, [%[regOut]] \n"
-
- :[out] "=r" (out), [regOut] "=r" (regPt)
- :"0" (out), [Key] "r" (keyPt), [input] "r" (in),
- [blocks] "r" (numBlocks), [reg] "1" (regPt)
- : "cc", "memory", "r11", "q0", "q1", "q2", "q3", "q4", "q5",
- "q6", "q7", "q8", "q9", "q10", "q11", "q12"
- );
- break;
-#endif /* WOLFSSL_AES_128 */
-#ifdef WOLFSSL_AES_192
- case 12: /* AES 192 BLOCK */
- __asm__ __volatile__ (
- "MOV r11, %[blocks] \n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "VLD1.32 {q2}, [%[Key]]! \n"
- "VLD1.32 {q3}, [%[Key]]! \n"
- "VLD1.32 {q4}, [%[Key]]! \n"
- "VLD1.32 {q5}, [%[Key]]! \n"
- "VLD1.32 {q6}, [%[Key]]! \n"
- "VLD1.32 {q7}, [%[Key]]! \n"
- "VLD1.32 {q8}, [%[Key]]! \n"
- "VLD1.32 {q9}, [%[Key]]! \n"
- "VLD1.32 {q10}, [%[Key]]! \n"
- "VLD1.32 {q11}, [%[Key]]! \n"
- "VLD1.32 {q0}, [%[reg]] \n"
- "VLD1.32 {q12}, [%[input]]!\n"
- "VLD1.32 {q13}, [%[Key]]! \n"
- "VLD1.32 {q14}, [%[Key]]! \n"
-
- "1:\n"
- "#CBC operations, xorbuf in with current aes->reg \n"
- "VEOR.32 q0, q0, q12 \n"
- "AESE.8 q0, q1 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q2 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q3 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q4 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q5 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q6 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q7 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q8 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q9 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q10 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q11 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q13\n"
- "VEOR.32 q0, q0, q14 \n"
- "SUB r11, r11, #1 \n"
- "VST1.32 {q0}, [%[out]]! \n"
-
- "CMP r11, #0 \n"
- "BEQ 2f \n"
- "VLD1.32 {q12}, [%[input]]! \n"
- "B 1b \n"
-
- "2:\n"
- "#store current counter qalue at the end \n"
- "VST1.32 {q0}, [%[regOut]] \n"
-
- :[out] "=r" (out), [regOut] "=r" (regPt)
- :"0" (out), [Key] "r" (keyPt), [input] "r" (in),
- [blocks] "r" (numBlocks), [reg] "1" (regPt)
- : "cc", "memory", "r11", "q0", "q1", "q2", "q3", "q4", "q5",
- "q6", "q7", "q8", "q9", "q10", "q11", "q12", "q13", "q14"
- );
- break;
-#endif /* WOLFSSL_AES_192 */
-#ifdef WOLFSSL_AES_256
- case 14: /* AES 256 BLOCK */
- __asm__ __volatile__ (
- "MOV r11, %[blocks] \n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "VLD1.32 {q2}, [%[Key]]! \n"
- "VLD1.32 {q3}, [%[Key]]! \n"
- "VLD1.32 {q4}, [%[Key]]! \n"
- "VLD1.32 {q5}, [%[Key]]! \n"
- "VLD1.32 {q6}, [%[Key]]! \n"
- "VLD1.32 {q7}, [%[Key]]! \n"
- "VLD1.32 {q8}, [%[Key]]! \n"
- "VLD1.32 {q9}, [%[Key]]! \n"
- "VLD1.32 {q10}, [%[Key]]! \n"
- "VLD1.32 {q11}, [%[Key]]! \n"
- "VLD1.32 {q0}, [%[reg]] \n"
- "VLD1.32 {q12}, [%[input]]!\n"
- "VLD1.32 {q13}, [%[Key]]! \n"
- "VLD1.32 {q14}, [%[Key]]! \n"
-
- "1:\n"
- "#CBC operations, xorbuf in with current aes->reg \n"
- "VEOR.32 q0, q0, q12 \n"
- "AESE.8 q0, q1 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q2 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q3 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q4 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q5 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q6 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q7 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q8 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q9 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q10 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q11 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q13 \n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q15}, [%[Key]]! \n"
- "AESE.8 q0, q14 \n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q15\n"
- "VLD1.32 {q15}, [%[Key]] \n"
- "VEOR.32 q0, q0, q15 \n"
- "SUB r11, r11, #1 \n"
- "VST1.32 {q0}, [%[out]]! \n"
- "SUB %[Key], %[Key], #16 \n"
-
- "CMP r11, #0 \n"
- "BEQ 2f \n"
- "VLD1.32 {q12}, [%[input]]! \n"
- "B 1b \n"
-
- "2:\n"
- "#store current counter qalue at the end \n"
- "VST1.32 {q0}, [%[regOut]] \n"
-
- :[out] "=r" (out), [regOut] "=r" (regPt), "=r" (keyPt)
- :"0" (out), [Key] "2" (keyPt), [input] "r" (in),
- [blocks] "r" (numBlocks), [reg] "1" (regPt)
- : "cc", "memory", "r11", "q0", "q1", "q2", "q3", "q4", "q5",
- "q6", "q7", "q8", "q9", "q10", "q11", "q12", "q13", "q14", "q15"
- );
- break;
-#endif /* WOLFSSL_AES_256 */
- default:
- WOLFSSL_MSG("Bad AES-CBC round value");
- return BAD_FUNC_ARG;
- }
- }
-
- return 0;
- }
-
- #ifdef HAVE_AES_DECRYPT
- int wc_AesCbcDecrypt(Aes* aes, byte* out, const byte* in, word32 sz)
- {
- word32 numBlocks = sz / AES_BLOCK_SIZE;
-
- if (aes == NULL || out == NULL || (in == NULL && sz > 0)
- || sz % AES_BLOCK_SIZE != 0) {
- return BAD_FUNC_ARG;
- }
-
- /* do as many block size ops as possible */
- if (numBlocks > 0) {
- word32* keyPt = aes->key;
- word32* regPt = aes->reg;
- switch(aes->rounds) {
-#ifdef WOLFSSL_AES_128
- case 10: /* AES 128 BLOCK */
- __asm__ __volatile__ (
- "MOV r11, %[blocks] \n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "VLD1.32 {q2}, [%[Key]]! \n"
- "VLD1.32 {q3}, [%[Key]]! \n"
- "VLD1.32 {q4}, [%[Key]]! \n"
- "VLD1.32 {q5}, [%[Key]]! \n"
- "VLD1.32 {q6}, [%[Key]]! \n"
- "VLD1.32 {q7}, [%[Key]]! \n"
- "VLD1.32 {q8}, [%[Key]]! \n"
- "VLD1.32 {q9}, [%[Key]]! \n"
- "VLD1.32 {q10}, [%[Key]]! \n"
- "VLD1.32 {q11}, [%[Key]]! \n"
- "VLD1.32 {q13}, [%[reg]] \n"
- "VLD1.32 {q0}, [%[input]]!\n"
-
- "1:\n"
- "VMOV.32 q12, q0 \n"
- "AESD.8 q0, q1\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q2\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q3\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q4\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q5\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q6\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q7\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q8\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q9\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q10\n"
- "VEOR.32 q0, q0, q11\n"
-
- "VEOR.32 q0, q0, q13\n"
- "SUB r11, r11, #1 \n"
- "VST1.32 {q0}, [%[out]]! \n"
- "VMOV.32 q13, q12 \n"
-
- "CMP r11, #0 \n"
- "BEQ 2f \n"
- "VLD1.32 {q0}, [%[input]]! \n"
- "B 1b \n"
-
- "2: \n"
- "#store current counter qalue at the end \n"
- "VST1.32 {q13}, [%[regOut]] \n"
-
- :[out] "=r" (out), [regOut] "=r" (regPt)
- :"0" (out), [Key] "r" (keyPt), [input] "r" (in),
- [blocks] "r" (numBlocks), [reg] "1" (regPt)
- : "cc", "memory", "r11", "q0", "q1", "q2", "q3", "q4", "q5",
- "q6", "q7", "q8", "q9", "q10", "q11", "q12", "q13"
- );
- break;
-#endif /* WOLFSSL_AES_128 */
-#ifdef WOLFSSL_AES_192
- case 12: /* AES 192 BLOCK */
- __asm__ __volatile__ (
- "MOV r11, %[blocks] \n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "VLD1.32 {q2}, [%[Key]]! \n"
- "VLD1.32 {q3}, [%[Key]]! \n"
- "VLD1.32 {q4}, [%[Key]]! \n"
- "VLD1.32 {q5}, [%[Key]]! \n"
- "VLD1.32 {q6}, [%[Key]]! \n"
- "VLD1.32 {q7}, [%[Key]]! \n"
- "VLD1.32 {q8}, [%[Key]]! \n"
- "VLD1.32 {q9}, [%[Key]]! \n"
- "VLD1.32 {q10}, [%[Key]]! \n"
- "VLD1.32 {q11}, [%[Key]]! \n"
- "VLD1.32 {q12}, [%[Key]]! \n"
- "VLD1.32 {q13}, [%[Key]]! \n"
- "VLD1.32 {q14}, [%[reg]] \n"
- "VLD1.32 {q0}, [%[input]]!\n"
-
- "1: \n"
- "VMOV.32 q15, q0 \n"
- "AESD.8 q0, q1\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q2\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q3\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q4\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q5\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q6\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q7\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q8\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q9\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q10\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q11\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q12\n"
- "VEOR.32 q0, q0, q13\n"
-
- "VEOR.32 q0, q0, q14\n"
- "SUB r11, r11, #1 \n"
- "VST1.32 {q0}, [%[out]]! \n"
- "VMOV.32 q14, q15 \n"
-
- "CMP r11, #0 \n"
- "BEQ 2f \n"
- "VLD1.32 {q0}, [%[input]]! \n"
- "B 1b \n"
-
- "2:\n"
- "#store current counter value at the end \n"
- "VST1.32 {q15}, [%[regOut]] \n"
-
- :[out] "=r" (out), [regOut] "=r" (regPt)
- :"0" (out), [Key] "r" (keyPt), [input] "r" (in),
- [blocks] "r" (numBlocks), [reg] "1" (regPt)
- : "cc", "memory", "r11", "q0", "q1", "q2", "q3", "q4", "q5",
- "q6", "q7", "q8", "q9", "q10", "q11", "q12", "q13", "q14", "q15"
- );
- break;
-#endif /* WOLFSSL_AES_192 */
-#ifdef WOLFSSL_AES_256
- case 14: /* AES 256 BLOCK */
- __asm__ __volatile__ (
- "MOV r11, %[blocks] \n"
- "VLD1.32 {q1}, [%[Key]]! \n"
- "VLD1.32 {q2}, [%[Key]]! \n"
- "VLD1.32 {q3}, [%[Key]]! \n"
- "VLD1.32 {q4}, [%[Key]]! \n"
- "VLD1.32 {q5}, [%[Key]]! \n"
- "VLD1.32 {q6}, [%[Key]]! \n"
- "VLD1.32 {q7}, [%[Key]]! \n"
- "VLD1.32 {q8}, [%[Key]]! \n"
- "VLD1.32 {q9}, [%[Key]]! \n"
- "VLD1.32 {q10}, [%[Key]]! \n"
- "VLD1.32 {q11}, [%[Key]]! \n"
- "VLD1.32 {q12}, [%[Key]]! \n"
- "VLD1.32 {q14}, [%[reg]] \n"
- "VLD1.32 {q0}, [%[input]]!\n"
-
- "1:\n"
- "VMOV.32 q15, q0 \n"
- "AESD.8 q0, q1\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q2\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q3\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q4\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q5\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q6\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q7\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q8\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q9\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q10\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q11\n"
- "AESIMC.8 q0, q0\n"
- "VLD1.32 {q13}, [%[Key]]! \n"
- "AESD.8 q0, q12\n"
- "AESIMC.8 q0, q0\n"
- "AESD.8 q0, q13\n"
- "AESIMC.8 q0, q0\n"
- "VLD1.32 {q13}, [%[Key]]! \n"
- "AESD.8 q0, q13\n"
- "VLD1.32 {q13}, [%[Key]] \n"
- "VEOR.32 q0, q0, q13\n"
- "SUB %[Key], %[Key], #32 \n"
-
- "VEOR.32 q0, q0, q14\n"
- "SUB r11, r11, #1 \n"
- "VST1.32 {q0}, [%[out]]! \n"
- "VMOV.32 q14, q15 \n"
-
- "CMP r11, #0 \n"
- "BEQ 2f \n"
- "VLD1.32 {q0}, [%[input]]! \n"
- "B 1b \n"
-
- "2:\n"
- "#store current counter value at the end \n"
- "VST1.32 {q15}, [%[regOut]] \n"
-
- :[out] "=r" (out), [regOut] "=r" (regPt)
- :"0" (out), [Key] "r" (keyPt), [input] "r" (in),
- [blocks] "r" (numBlocks), [reg] "1" (regPt)
- : "cc", "memory", "r11", "q0", "q1", "q2", "q3", "q4", "q5",
- "q6", "q7", "q8", "q9", "q10", "q11", "q12", "q13", "q14", "q15"
- );
- break;
-#endif /* WOLFSSL_AES_256 */
- default:
- WOLFSSL_MSG("Bad AES-CBC round value");
- return BAD_FUNC_ARG;
- }
- }
-
- return 0;
- }
- #endif
-
-#endif /* HAVE_AES_CBC */
-
-/* AES-CTR */
-#ifdef WOLFSSL_AES_COUNTER
-
- /* Increment AES counter */
- static WC_INLINE void IncrementAesCounter(byte* inOutCtr)
- {
- int i;
-
- /* in network byte order so start at end and work back */
- for (i = AES_BLOCK_SIZE - 1; i >= 0; i--) {
- if (++inOutCtr[i]) /* we're done unless we overflow */
- return;
- }
- }
-
- int wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
- {
- byte* tmp;
- word32 numBlocks;
-
- if (aes == NULL || out == NULL || in == NULL) {
- return BAD_FUNC_ARG;
- }
-
- tmp = (byte*)aes->tmp + AES_BLOCK_SIZE - aes->left;
-
- /* consume any unused bytes left in aes->tmp */
- while (aes->left && sz) {
- *(out++) = *(in++) ^ *(tmp++);
- aes->left--;
- sz--;
- }
-
- /* do as many block size ops as possible */
- numBlocks = sz/AES_BLOCK_SIZE;
- if (numBlocks > 0) {
- /* pointer needed because it is incremented when read, causing
- * an issue with call to encrypt/decrypt leftovers */
- word32* keyPt = aes->key;
- word32* regPt = aes->reg;
- sz -= numBlocks * AES_BLOCK_SIZE;
- switch(aes->rounds) {
-#ifdef WOLFSSL_AES_128
- case 10: /* AES 128 BLOCK */
- __asm__ __volatile__ (
- "MOV r11, %[blocks] \n"
- "VLDM %[Key]!, {q1-q4} \n"
-
- "#Create vector with the value 1 \n"
- "VMOV.u32 q15, #1 \n"
- "VSHR.u64 q15, q15, #32 \n"
- "VLDM %[Key]!, {q5-q8} \n"
- "VEOR.32 q14, q14, q14 \n"
- "VLDM %[Key]!, {q9-q11} \n"
- "VEXT.8 q14, q15, q14, #8\n"
-
- "VLD1.32 {q13}, [%[reg]]\n"
-
- /* double block */
- "1: \n"
- "CMP r11, #1 \n"
- "BEQ 2f \n"
- "CMP r11, #0 \n"
- "BEQ 3f \n"
-
- "VMOV.32 q0, q13 \n"
- "AESE.8 q0, q1\n"
- "AESMC.8 q0, q0\n"
- "VREV64.8 q13, q13 \n" /* network order */
- "AESE.8 q0, q2\n"
- "AESMC.8 q0, q0\n"
- "VEXT.8 q13, q13, q13, #8 \n"
- "SUB r11, r11, #2 \n"
- "VADD.i32 q15, q13, q14 \n" /* add 1 to counter */
- "VADD.i32 q13, q15, q14 \n" /* add 1 to counter */
- "AESE.8 q0, q3\n"
- "AESMC.8 q0, q0\n"
- "VEXT.8 q15, q15, q15, #8 \n"
- "VEXT.8 q13, q13, q13, #8 \n"
- "AESE.8 q0, q4\n"
- "AESMC.8 q0, q0\n"
- "VREV64.8 q15, q15\n" /* revert from network order */
- "VREV64.8 q13, q13\n" /* revert from network order */
- "AESE.8 q0, q5\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q1\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q6\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q2\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q7\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q3\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q8\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q4\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q9\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q5\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q10\n"
- "AESE.8 q15, q6\n"
- "AESMC.8 q15, q15\n"
- "VEOR.32 q0, q0, q11\n"
-
- "AESE.8 q15, q7\n"
- "AESMC.8 q15, q15\n"
- "VLD1.32 {q12}, [%[input]]! \n"
- "AESE.8 q15, q8\n"
- "AESMC.8 q15, q15\n"
-
- "VEOR.32 q0, q0, q12\n"
- "AESE.8 q15, q9\n"
- "AESMC.8 q15, q15\n"
-
- "VLD1.32 {q12}, [%[input]]! \n"
- "AESE.8 q15, q10\n"
- "VST1.32 {q0}, [%[out]]! \n"
- "VEOR.32 q15, q15, q11\n"
- "VEOR.32 q15, q15, q12\n"
- "VST1.32 {q15}, [%[out]]! \n"
-
- "B 1b \n"
-
- /* single block */
- "2: \n"
- "VMOV.32 q0, q13 \n"
- "AESE.8 q0, q1\n"
- "AESMC.8 q0, q0\n"
- "VREV64.8 q13, q13 \n" /* network order */
- "AESE.8 q0, q2\n"
- "AESMC.8 q0, q0\n"
- "VEXT.8 q13, q13, q13, #8 \n"
- "AESE.8 q0, q3\n"
- "AESMC.8 q0, q0\n"
- "VADD.i32 q13, q13, q14 \n" /* add 1 to counter */
- "AESE.8 q0, q4\n"
- "AESMC.8 q0, q0\n"
- "SUB r11, r11, #1 \n"
- "AESE.8 q0, q5\n"
- "AESMC.8 q0, q0\n"
- "VEXT.8 q13, q13, q13, #8 \n"
- "AESE.8 q0, q6\n"
- "AESMC.8 q0, q0\n"
- "VREV64.8 q13, q13\n" /* revert from network order */
- "AESE.8 q0, q7\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q8\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q9\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q10\n"
- "VLD1.32 {q12}, [%[input]]! \n"
- "VEOR.32 q0, q0, q11\n"
- "#CTR operations, increment counter and xorbuf \n"
- "VEOR.32 q0, q0, q12\n"
- "VST1.32 {q0}, [%[out]]! \n"
-
- "3: \n"
- "#store current counter qalue at the end \n"
- "VST1.32 {q13}, [%[regOut]] \n"
-
- :[out] "=r" (out), "=r" (keyPt), [regOut] "=r" (regPt),
- "=r" (in)
- :"0" (out), [Key] "1" (keyPt), [input] "3" (in),
- [blocks] "r" (numBlocks), [reg] "2" (regPt)
- : "cc", "memory", "r11", "q0", "q1", "q2", "q3", "q4", "q5",
- "q6", "q7", "q8", "q9", "q10","q11","q12","q13","q14", "q15"
- );
- break;
-#endif /* WOLFSSL_AES_128 */
-#ifdef WOLFSSL_AES_192
- case 12: /* AES 192 BLOCK */
- __asm__ __volatile__ (
- "MOV r11, %[blocks] \n"
- "VLDM %[Key]!, {q1-q4} \n"
-
- "#Create vector with the value 1 \n"
- "VMOV.u32 q15, #1 \n"
- "VSHR.u64 q15, q15, #32 \n"
- "VLDM %[Key]!, {q5-q8} \n"
- "VEOR.32 q14, q14, q14 \n"
- "VEXT.8 q14, q15, q14, #8\n"
-
- "VLDM %[Key]!, {q9-q10} \n"
- "VLD1.32 {q13}, [%[reg]]\n"
-
- /* double block */
- "1: \n"
- "CMP r11, #1 \n"
- "BEQ 2f \n"
- "CMP r11, #0 \n"
- "BEQ 3f \n"
-
- "VMOV.32 q0, q13\n"
- "AESE.8 q0, q1\n"
- "AESMC.8 q0, q0\n"
- "VREV64.8 q13, q13 \n" /* network order */
- "AESE.8 q0, q2\n"
- "AESMC.8 q0, q0\n"
- "VEXT.8 q13, q13, q13, #8 \n"
- "SUB r11, r11, #2 \n"
- "VADD.i32 q15, q13, q14 \n" /* add 1 to counter */
- "VADD.i32 q13, q15, q14 \n" /* add 1 to counter */
- "AESE.8 q0, q3\n"
- "AESMC.8 q0, q0\n"
- "VEXT.8 q15, q15, q15, #8 \n"
- "VEXT.8 q13, q13, q13, #8 \n"
- "AESE.8 q0, q4\n"
- "AESMC.8 q0, q0\n"
- "VREV64.8 q15, q15\n" /* revert from network order */
- "VREV64.8 q13, q13\n" /* revert from network order */
- "AESE.8 q0, q5\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q1\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q6\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q2\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q7\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q3\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q8\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q4\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q9\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q5\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q10\n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q11}, [%[Key]]! \n"
- "AESE.8 q15, q6\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q11\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q7\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q15, q8\n"
- "AESMC.8 q15, q15\n"
-
- "VLD1.32 {q12}, [%[Key]]! \n"
- "AESE.8 q15, q9\n"
- "AESMC.8 q15, q15\n"
- "AESE.8 q15, q10\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q15, q11\n"
- "AESMC.8 q15, q15\n"
- "VLD1.32 {q11}, [%[Key]] \n"
- "AESE.8 q0, q12\n"
- "AESE.8 q15, q12\n"
-
- "VLD1.32 {q12}, [%[input]]! \n"
- "VEOR.32 q0, q0, q11\n"
- "VEOR.32 q15, q15, q11\n"
- "VEOR.32 q0, q0, q12\n"
-
- "VLD1.32 {q12}, [%[input]]! \n"
- "VST1.32 {q0}, [%[out]]! \n"
- "VEOR.32 q15, q15, q12\n"
- "VST1.32 {q15}, [%[out]]! \n"
- "SUB %[Key], %[Key], #32 \n"
-
- "B 1b \n"
-
-
- /* single block */
- "2: \n"
- "VLD1.32 {q11}, [%[Key]]! \n"
- "VMOV.32 q0, q13 \n"
- "AESE.8 q0, q1\n"
- "AESMC.8 q0, q0\n"
- "VREV64.8 q13, q13 \n" /* network order */
- "AESE.8 q0, q2\n"
- "AESMC.8 q0, q0\n"
- "VEXT.8 q13, q13, q13, #8 \n"
- "AESE.8 q0, q3\n"
- "AESMC.8 q0, q0\n"
- "VADD.i32 q13, q13, q14 \n" /* add 1 to counter */
- "AESE.8 q0, q4\n"
- "AESMC.8 q0, q0\n"
- "SUB r11, r11, #1 \n"
- "AESE.8 q0, q5\n"
- "AESMC.8 q0, q0\n"
- "VEXT.8 q13, q13, q13, #8 \n"
- "AESE.8 q0, q6\n"
- "AESMC.8 q0, q0\n"
- "VREV64.8 q13, q13\n" /* revert from network order */
- "AESE.8 q0, q7\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q8\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q9\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q10\n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q12}, [%[Key]]! \n"
- "AESE.8 q0, q11\n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q11}, [%[Key]] \n"
- "AESE.8 q0, q12\n"
- "VLD1.32 {q12}, [%[input]]! \n"
- "VEOR.32 q0, q0, q11\n"
- "#CTR operations, increment counter and xorbuf \n"
- "VEOR.32 q0, q0, q12\n"
- "VST1.32 {q0}, [%[out]]! \n"
-
- "3: \n"
- "#store current counter qalue at the end \n"
- "VST1.32 {q13}, [%[regOut]] \n"
-
- :[out] "=r" (out), "=r" (keyPt), [regOut] "=r" (regPt),
- "=r" (in)
- :"0" (out), [Key] "1" (keyPt), [input] "3" (in),
- [blocks] "r" (numBlocks), [reg] "2" (regPt)
- : "cc", "memory", "r11", "q0", "q1", "q2", "q3", "q4", "q5",
- "q6", "q7", "q8", "q9", "q10","q11","q12","q13","q14"
- );
- break;
-#endif /* WOLFSSL_AES_192 */
-#ifdef WOLFSSL_AES_256
- case 14: /* AES 256 BLOCK */
- __asm__ __volatile__ (
- "MOV r11, %[blocks] \n"
- "VLDM %[Key]!, {q1-q4} \n"
-
- "#Create vector with the value 1 \n"
- "VMOV.u32 q15, #1 \n"
- "VSHR.u64 q15, q15, #32 \n"
- "VLDM %[Key]!, {q5-q8} \n"
- "VEOR.32 q14, q14, q14 \n"
- "VEXT.8 q14, q15, q14, #8\n"
-
- "VLDM %[Key]!, {q9-q10} \n"
- "VLD1.32 {q13}, [%[reg]]\n"
-
- /* double block */
- "1: \n"
- "CMP r11, #1 \n"
- "BEQ 2f \n"
- "CMP r11, #0 \n"
- "BEQ 3f \n"
-
- "VMOV.32 q0, q13 \n"
- "AESE.8 q0, q1\n"
- "AESMC.8 q0, q0\n"
- "VREV64.8 q13, q13 \n" /* network order */
- "AESE.8 q0, q2\n"
- "AESMC.8 q0, q0\n"
- "VEXT.8 q13, q13, q13, #8 \n"
- "SUB r11, r11, #2 \n"
- "VADD.i32 q15, q13, q14 \n" /* add 1 to counter */
- "VADD.i32 q13, q15, q14 \n" /* add 1 to counter */
- "AESE.8 q0, q3\n"
- "AESMC.8 q0, q0\n"
- "VEXT.8 q15, q15, q15, #8 \n"
- "VEXT.8 q13, q13, q13, #8 \n"
- "AESE.8 q0, q4\n"
- "AESMC.8 q0, q0\n"
- "VREV64.8 q15, q15\n" /* revert from network order */
- "AESE.8 q0, q5\n"
- "AESMC.8 q0, q0\n"
- "VREV64.8 q13, q13\n" /* revert from network order */
- "AESE.8 q15, q1\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q6\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q2\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q7\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q3\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q8\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q4\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q9\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q5\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q10\n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q11}, [%[Key]]! \n"
- "AESE.8 q15, q6\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q0, q11\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q7\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q15, q8\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q15, q9\n"
- "AESMC.8 q15, q15\n"
- "VLD1.32 {q12}, [%[Key]]! \n"
- "AESE.8 q15, q10\n"
- "AESMC.8 q15, q15\n"
-
- "AESE.8 q15, q11\n"
- "AESMC.8 q15, q15\n"
-
- "VLD1.32 {q11}, [%[Key]]! \n"
- "AESE.8 q0, q12\n" /* rnd 12*/
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q12\n" /* rnd 12 */
- "AESMC.8 q15, q15\n"
-
- "VLD1.32 {q12}, [%[Key]]! \n"
- "AESE.8 q0, q11\n" /* rnd 13 */
- "AESMC.8 q0, q0\n"
- "AESE.8 q15, q11\n" /* rnd 13 */
- "AESMC.8 q15, q15\n"
-
- "VLD1.32 {q11}, [%[Key]] \n"
- "AESE.8 q0, q12\n" /* rnd 14 */
- "AESE.8 q15, q12\n" /* rnd 14 */
-
- "VLD1.32 {q12}, [%[input]]! \n"
- "VEOR.32 q0, q0, q11\n" /* rnd 15 */
- "VEOR.32 q15, q15, q11\n" /* rnd 15 */
- "VEOR.32 q0, q0, q12\n"
-
- "VLD1.32 {q12}, [%[input]]! \n"
- "VST1.32 {q0}, [%[out]]! \n"
- "VEOR.32 q15, q15, q12\n"
- "VST1.32 {q15}, [%[out]]! \n"
- "SUB %[Key], %[Key], #64 \n"
-
- /* single block */
- "B 1b \n"
-
- "2: \n"
- "VLD1.32 {q11}, [%[Key]]! \n"
- "VMOV.32 q0, q13 \n"
- "AESE.8 q0, q1\n"
- "AESMC.8 q0, q0\n"
- "VREV64.8 q13, q13 \n" /* network order */
- "AESE.8 q0, q2\n"
- "AESMC.8 q0, q0\n"
- "VEXT.8 q13, q13, q13, #8 \n"
- "AESE.8 q0, q3\n"
- "AESMC.8 q0, q0\n"
- "VADD.i32 q13, q13, q14 \n" /* add 1 to counter */
- "AESE.8 q0, q4\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q5\n"
- "AESMC.8 q0, q0\n"
- "VEXT.8 q13, q13, q13, #8 \n"
- "AESE.8 q0, q6\n"
- "AESMC.8 q0, q0\n"
- "VREV64.8 q13, q13\n" /* revert from network order */
- "AESE.8 q0, q7\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q8\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q9\n"
- "AESMC.8 q0, q0\n"
- "AESE.8 q0, q10\n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q12}, [%[Key]]! \n"
- "AESE.8 q0, q11\n"
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q11}, [%[Key]]! \n"
- "AESE.8 q0, q12\n" /* rnd 12 */
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q12}, [%[Key]]! \n"
- "AESE.8 q0, q11\n" /* rnd 13 */
- "AESMC.8 q0, q0\n"
- "VLD1.32 {q11}, [%[Key]] \n"
- "AESE.8 q0, q12\n" /* rnd 14 */
- "VLD1.32 {q12}, [%[input]]! \n"
- "VEOR.32 q0, q0, q11\n" /* rnd 15 */
- "#CTR operations, increment counter and xorbuf \n"
- "VEOR.32 q0, q0, q12\n"
- "VST1.32 {q0}, [%[out]]! \n"
-
- "3: \n"
- "#store current counter qalue at the end \n"
- "VST1.32 {q13}, [%[regOut]] \n"
-
- :[out] "=r" (out), "=r" (keyPt), [regOut] "=r" (regPt),
- "=r" (in)
- :"0" (out), [Key] "1" (keyPt), [input] "3" (in),
- [blocks] "r" (numBlocks), [reg] "2" (regPt)
- : "cc", "memory", "r11", "q0", "q1", "q2", "q3", "q4", "q5",
- "q6", "q7", "q8", "q9", "q10","q11","q12","q13","q14"
- );
- break;
-#endif /* WOLFSSL_AES_256 */
- default:
- WOLFSSL_MSG("Bad AES-CTR round qalue");
- return BAD_FUNC_ARG;
- }
-
- aes->left = 0;
- }
-
- /* handle non block size remaining */
- if (sz) {
- wc_AesEncrypt(aes, (byte*)aes->reg, (byte*)aes->tmp);
- IncrementAesCounter((byte*)aes->reg);
-
- aes->left = AES_BLOCK_SIZE;
- tmp = (byte*)aes->tmp;
-
- while (sz--) {
- *(out++) = *(in++) ^ *(tmp++);
- aes->left--;
- }
- }
-
- return 0;
- }
-
-#endif /* WOLFSSL_AES_COUNTER */
-
-#ifdef HAVE_AESGCM
-/*
- * Uses Karatsuba algorithm. Reduction algorithm is based on "Implementing GCM
- * on ARMv8". Shifting left to account for bit reflection is based on
- * "Carry-Less Multiplication and Its Usage for Computing the GCM mode"
- */
-static void GMULT(byte* X, byte* Y)
-{
- __asm__ __volatile__ (
- "VLD1.32 {q0}, [%[x]] \n"
-
- /* In GCM format bits are big endian, switch location of bytes to
- * allow for logical shifts and carries.
- */
- "VREV64.8 q0, q0 \n"
- "VLD1.32 {q1}, [%[y]] \n" /* converted on set key */
- "VSWP.8 d0, d1 \n"
-
- "VMULL.p64 q5, d0, d2 \n"
- "VMULL.p64 q6, d1, d3 \n"
- "VEOR d15, d2, d3 \n"
- "VEOR d14, d0, d1 \n"
- "VMULL.p64 q7, d15, d14 \n"
- "VEOR q7, q5 \n"
- "VEOR q7, q6 \n"
- "VEOR d11, d14 \n"
- "VEOR d12, d15\n"
-
- /* shift to left by 1 to account for reflection */
- "VMOV q7, q6 \n"
- "VSHL.u64 q6, q6, #1 \n"
- "VSHR.u64 q7, q7, #63 \n"
- "VEOR d13, d14 \n"
- "VMOV q8, q5 \n"
- "VSHL.u64 q5, q5, #1 \n"
- "VSHR.u64 q8, q8, #63 \n"
- "VEOR d12, d17 \n"
- "VEOR d11, d16 \n"
-
- /* create constant 0xc200000000000000 */
- "VMOV.i32 d16, 0xc2000000 \n"
- "VSHL.u64 d16, d16, #32 \n"
-
- /* reduce product of multiplication */
- "VMULL.p64 q9, d10, d16 \n"
- "VEOR d11, d18 \n"
- "VEOR d12, d19 \n"
- "VMULL.p64 q9, d11, d16 \n"
- "VEOR q6, q9 \n"
- "VEOR q10, q5, q6 \n"
-
- /* convert to GCM format */
- "VREV64.8 q10, q10 \n"
- "VSWP.8 d20, d21 \n"
-
- "VST1.32 {q10}, [%[xOut]] \n"
-
- : [xOut] "=r" (X), [yOut] "=r" (Y)
- : [x] "0" (X), [y] "1" (Y)
- : "cc", "memory", "q0", "q1", "q2", "q3", "q4", "q5", "q6" ,"q7", "q8",
- "q9", "q10", "q11" ,"q12", "q13", "q14", "q15"
- );
-}
-
-
-void GHASH(Aes* aes, const byte* a, word32 aSz,
- const byte* c, word32 cSz, byte* s, word32 sSz)
-{
- byte x[AES_BLOCK_SIZE];
- byte scratch[AES_BLOCK_SIZE];
- word32 blocks, partial;
- byte* h = aes->H;
-
- XMEMSET(x, 0, AES_BLOCK_SIZE);
-
- /* Hash in A, the Additional Authentication Data */
- if (aSz != 0 && a != NULL) {
- blocks = aSz / AES_BLOCK_SIZE;
- partial = aSz % AES_BLOCK_SIZE;
- while (blocks--) {
- xorbuf(x, a, AES_BLOCK_SIZE);
- GMULT(x, h);
- a += AES_BLOCK_SIZE;
- }
- if (partial != 0) {
- XMEMSET(scratch, 0, AES_BLOCK_SIZE);
- XMEMCPY(scratch, a, partial);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
- GMULT(x, h);
- }
- }
-
- /* Hash in C, the Ciphertext */
- if (cSz != 0 && c != NULL) {
- blocks = cSz / AES_BLOCK_SIZE;
- partial = cSz % AES_BLOCK_SIZE;
- while (blocks--) {
- xorbuf(x, c, AES_BLOCK_SIZE);
- GMULT(x, h);
- c += AES_BLOCK_SIZE;
- }
- if (partial != 0) {
- XMEMSET(scratch, 0, AES_BLOCK_SIZE);
- XMEMCPY(scratch, c, partial);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
- GMULT(x, h);
- }
- }
-
- /* Hash in the lengths of A and C in bits */
- FlattenSzInBits(&scratch[0], aSz);
- FlattenSzInBits(&scratch[8], cSz);
- xorbuf(x, scratch, AES_BLOCK_SIZE);
- GMULT(x, h);
-
- /* Copy the result into s. */
- XMEMCPY(s, x, sSz);
-}
-
-
-/* Aarch32
- * Encrypt and tag data using AES with GCM mode.
- * aes: Aes structure having already been set with set key function
- * out: encrypted data output buffer
- * in: plain text input buffer
- * sz: size of plain text and out buffer
- * iv: initialization vector
- * ivSz: size of iv buffer
- * authTag: buffer to hold tag
- * authTagSz: size of tag buffer
- * authIn: additional data buffer
- * authInSz: size of additional data buffer
- */
-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)
-{
- word32 blocks = sz / AES_BLOCK_SIZE;
- word32 partial = sz % AES_BLOCK_SIZE;
- const byte* p = in;
- byte* c = out;
- byte counter[AES_BLOCK_SIZE];
- byte initialCounter[AES_BLOCK_SIZE];
- byte *ctr ;
- byte scratch[AES_BLOCK_SIZE];
- ctr = counter ;
-
- /* sanity checks */
- if (aes == NULL || (iv == NULL && ivSz > 0) ||
- (authTag == NULL) ||
- (authIn == NULL && authInSz > 0) ||
- (in == NULL && sz > 0) ||
- (out == NULL && sz > 0)) {
- WOLFSSL_MSG("a NULL parameter passed in when size is larger than 0");
- return BAD_FUNC_ARG;
- }
-
- if (authTagSz < WOLFSSL_MIN_AUTH_TAG_SZ || authTagSz > AES_BLOCK_SIZE) {
- WOLFSSL_MSG("GcmEncrypt authTagSz error");
- return BAD_FUNC_ARG;
- }
-
- XMEMSET(initialCounter, 0, AES_BLOCK_SIZE);
- if (ivSz == GCM_NONCE_MID_SZ) {
- XMEMCPY(initialCounter, iv, ivSz);
- initialCounter[AES_BLOCK_SIZE - 1] = 1;
- }
- else {
- GHASH(aes, NULL, 0, iv, ivSz, initialCounter, AES_BLOCK_SIZE);
- }
- XMEMCPY(ctr, initialCounter, AES_BLOCK_SIZE);
-
- while (blocks--) {
- IncrementGcmCounter(ctr);
- wc_AesEncrypt(aes, ctr, scratch);
- xorbuf(scratch, p, AES_BLOCK_SIZE);
- XMEMCPY(c, scratch, AES_BLOCK_SIZE);
- p += AES_BLOCK_SIZE;
- c += AES_BLOCK_SIZE;
- }
-
- if (partial != 0) {
- IncrementGcmCounter(ctr);
- wc_AesEncrypt(aes, ctr, scratch);
- xorbuf(scratch, p, partial);
- XMEMCPY(c, scratch, partial);
-
- }
-
- GHASH(aes, authIn, authInSz, out, sz, authTag, authTagSz);
- wc_AesEncrypt(aes, initialCounter, scratch);
- if (authTagSz > AES_BLOCK_SIZE) {
- xorbuf(authTag, scratch, AES_BLOCK_SIZE);
- }
- else {
- xorbuf(authTag, scratch, authTagSz);
- }
-
- return 0;
-}
-
-
-#ifdef HAVE_AES_DECRYPT
-/*
- * Check tag and decrypt data using AES with GCM mode.
- * aes: Aes structure having already been set with set key function
- * out: decrypted data output buffer
- * in: cipher text buffer
- * sz: size of plain text and out buffer
- * iv: initialization vector
- * ivSz: size of iv buffer
- * authTag: buffer holding tag
- * authTagSz: size of tag buffer
- * authIn: additional data buffer
- * authInSz: size of additional data buffer
- */
-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)
-{
- word32 blocks = sz / AES_BLOCK_SIZE;
- word32 partial = sz % AES_BLOCK_SIZE;
- const byte* c = in;
- byte* p = out;
- byte counter[AES_BLOCK_SIZE];
- byte initialCounter[AES_BLOCK_SIZE];
- byte *ctr ;
- byte scratch[AES_BLOCK_SIZE];
- ctr = counter ;
-
- /* sanity checks */
- if (aes == NULL || (iv == NULL && ivSz > 0) ||
- (authTag == NULL) ||
- (authIn == NULL && authInSz > 0) ||
- (in == NULL && sz > 0) ||
- (out == NULL && sz > 0)) {
- WOLFSSL_MSG("a NULL parameter passed in when size is larger than 0");
- return BAD_FUNC_ARG;
- }
-
- XMEMSET(initialCounter, 0, AES_BLOCK_SIZE);
- if (ivSz == GCM_NONCE_MID_SZ) {
- XMEMCPY(initialCounter, iv, ivSz);
- initialCounter[AES_BLOCK_SIZE - 1] = 1;
- }
- else {
- GHASH(aes, NULL, 0, iv, ivSz, initialCounter, AES_BLOCK_SIZE);
- }
- XMEMCPY(ctr, initialCounter, AES_BLOCK_SIZE);
-
- /* Calculate the authTag again using the received auth data and the
- * cipher text. */
- {
- byte Tprime[AES_BLOCK_SIZE];
- byte EKY0[AES_BLOCK_SIZE];
-
- GHASH(aes, authIn, authInSz, in, sz, Tprime, sizeof(Tprime));
- wc_AesEncrypt(aes, ctr, EKY0);
- xorbuf(Tprime, EKY0, sizeof(Tprime));
-
- if (ConstantCompare(authTag, Tprime, authTagSz) != 0) {
- return AES_GCM_AUTH_E;
- }
- }
-
- while (blocks--) {
- IncrementGcmCounter(ctr);
- wc_AesEncrypt(aes, ctr, scratch);
- xorbuf(scratch, c, AES_BLOCK_SIZE);
- XMEMCPY(p, scratch, AES_BLOCK_SIZE);
- p += AES_BLOCK_SIZE;
- c += AES_BLOCK_SIZE;
- }
- if (partial != 0) {
- IncrementGcmCounter(ctr);
- wc_AesEncrypt(aes, ctr, scratch);
-
- /* check if pointer is null after main AES-GCM blocks
- * helps static analysis */
- if (p == NULL || c == NULL) {
- return BAD_STATE_E;
- }
- xorbuf(scratch, c, partial);
- XMEMCPY(p, scratch, partial);
- }
- return 0;
-}
-#endif /* HAVE_AES_DECRYPT */
-#endif /* HAVE_AESGCM */
-
-#endif /* aarch64 */
-
-
-#ifdef HAVE_AESCCM
-/* Software version of AES-CCM from wolfcrypt/src/aes.c
- * Gets some speed up from hardware acceleration of wc_AesEncrypt */
-
-static void roll_x(Aes* aes, const byte* in, word32 inSz, byte* out)
-{
- /* process the bulk of the data */
- while (inSz >= AES_BLOCK_SIZE) {
- xorbuf(out, in, AES_BLOCK_SIZE);
- in += AES_BLOCK_SIZE;
- inSz -= AES_BLOCK_SIZE;
-
- wc_AesEncrypt(aes, out, out);
- }
-
- /* process remainder of the data */
- if (inSz > 0) {
- xorbuf(out, in, inSz);
- wc_AesEncrypt(aes, out, out);
- }
-}
-
-
-static void roll_auth(Aes* aes, const byte* in, word32 inSz, byte* out)
-{
- word32 authLenSz;
- word32 remainder;
-
- /* encode the length in */
- if (inSz <= 0xFEFF) {
- authLenSz = 2;
- out[0] ^= ((inSz & 0xFF00) >> 8);
- out[1] ^= (inSz & 0x00FF);
- }
- else if (inSz <= 0xFFFFFFFF) {
- authLenSz = 6;
- out[0] ^= 0xFF; out[1] ^= 0xFE;
- out[2] ^= ((inSz & 0xFF000000) >> 24);
- out[3] ^= ((inSz & 0x00FF0000) >> 16);
- out[4] ^= ((inSz & 0x0000FF00) >> 8);
- out[5] ^= (inSz & 0x000000FF);
- }
- /* Note, the protocol handles auth data up to 2^64, but we are
- * using 32-bit sizes right now, so the bigger data isn't handled
- * else if (inSz <= 0xFFFFFFFFFFFFFFFF) {} */
- else
- return;
-
- /* start fill out the rest of the first block */
- remainder = AES_BLOCK_SIZE - authLenSz;
- if (inSz >= remainder) {
- /* plenty of bulk data to fill the remainder of this block */
- xorbuf(out + authLenSz, in, remainder);
- inSz -= remainder;
- in += remainder;
- }
- else {
- /* not enough bulk data, copy what is available, and pad zero */
- xorbuf(out + authLenSz, in, inSz);
- inSz = 0;
- }
- wc_AesEncrypt(aes, out, out);
-
- if (inSz > 0)
- roll_x(aes, in, inSz, out);
-}
-
-
-static WC_INLINE void AesCcmCtrInc(byte* B, word32 lenSz)
-{
- word32 i;
-
- for (i = 0; i < lenSz; i++) {
- if (++B[AES_BLOCK_SIZE - 1 - i] != 0) return;
- }
-}
-
-
-/* return 0 on success */
-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)
-{
- byte A[AES_BLOCK_SIZE];
- byte B[AES_BLOCK_SIZE];
- byte lenSz;
- word32 i;
- byte mask = 0xFF;
- word32 wordSz = (word32)sizeof(word32);
-
- /* sanity check on arguments */
- if (aes == NULL || out == NULL || in == NULL || nonce == NULL
- || authTag == NULL || nonceSz < 7 || nonceSz > 13)
- return BAD_FUNC_ARG;
-
- XMEMCPY(B+1, nonce, nonceSz);
- lenSz = AES_BLOCK_SIZE - 1 - (byte)nonceSz;
- B[0] = (authInSz > 0 ? 64 : 0)
- + (8 * (((byte)authTagSz - 2) / 2))
- + (lenSz - 1);
- for (i = 0; i < lenSz; i++) {
- if (mask && i >= wordSz)
- mask = 0x00;
- B[AES_BLOCK_SIZE - 1 - i] = (inSz >> ((8 * i) & mask)) & mask;
- }
-
- wc_AesEncrypt(aes, B, A);
-
- if (authInSz > 0)
- roll_auth(aes, authIn, authInSz, A);
- if (inSz > 0)
- roll_x(aes, in, inSz, A);
- XMEMCPY(authTag, A, authTagSz);
-
- B[0] = lenSz - 1;
- for (i = 0; i < lenSz; i++)
- B[AES_BLOCK_SIZE - 1 - i] = 0;
- wc_AesEncrypt(aes, B, A);
- xorbuf(authTag, A, authTagSz);
-
- B[15] = 1;
- while (inSz >= AES_BLOCK_SIZE) {
- wc_AesEncrypt(aes, B, A);
- xorbuf(A, in, AES_BLOCK_SIZE);
- XMEMCPY(out, A, AES_BLOCK_SIZE);
-
- AesCcmCtrInc(B, lenSz);
- inSz -= AES_BLOCK_SIZE;
- in += AES_BLOCK_SIZE;
- out += AES_BLOCK_SIZE;
- }
- if (inSz > 0) {
- wc_AesEncrypt(aes, B, A);
- xorbuf(A, in, inSz);
- XMEMCPY(out, A, inSz);
- }
-
- ForceZero(A, AES_BLOCK_SIZE);
- ForceZero(B, AES_BLOCK_SIZE);
-
- return 0;
-}
-
-#ifdef HAVE_AES_DECRYPT
-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)
-{
- byte A[AES_BLOCK_SIZE];
- byte B[AES_BLOCK_SIZE];
- byte* o;
- byte lenSz;
- word32 i, oSz;
- int result = 0;
- byte mask = 0xFF;
- word32 wordSz = (word32)sizeof(word32);
-
- /* sanity check on arguments */
- if (aes == NULL || out == NULL || in == NULL || nonce == NULL
- || authTag == NULL || nonceSz < 7 || nonceSz > 13)
- return BAD_FUNC_ARG;
-
- o = out;
- oSz = inSz;
- XMEMCPY(B+1, nonce, nonceSz);
- lenSz = AES_BLOCK_SIZE - 1 - (byte)nonceSz;
-
- B[0] = lenSz - 1;
- for (i = 0; i < lenSz; i++)
- B[AES_BLOCK_SIZE - 1 - i] = 0;
- B[15] = 1;
-
- while (oSz >= AES_BLOCK_SIZE) {
- wc_AesEncrypt(aes, B, A);
- xorbuf(A, in, AES_BLOCK_SIZE);
- XMEMCPY(o, A, AES_BLOCK_SIZE);
-
- AesCcmCtrInc(B, lenSz);
- oSz -= AES_BLOCK_SIZE;
- in += AES_BLOCK_SIZE;
- o += AES_BLOCK_SIZE;
- }
- if (inSz > 0) {
- wc_AesEncrypt(aes, B, A);
- xorbuf(A, in, oSz);
- XMEMCPY(o, A, oSz);
- }
-
- for (i = 0; i < lenSz; i++)
- B[AES_BLOCK_SIZE - 1 - i] = 0;
- wc_AesEncrypt(aes, B, A);
-
- o = out;
- oSz = inSz;
-
- B[0] = (authInSz > 0 ? 64 : 0)
- + (8 * (((byte)authTagSz - 2) / 2))
- + (lenSz - 1);
- for (i = 0; i < lenSz; i++) {
- if (mask && i >= wordSz)
- mask = 0x00;
- B[AES_BLOCK_SIZE - 1 - i] = (inSz >> ((8 * i) & mask)) & mask;
- }
-
- wc_AesEncrypt(aes, B, A);
-
- if (authInSz > 0)
- roll_auth(aes, authIn, authInSz, A);
- if (inSz > 0)
- roll_x(aes, o, oSz, A);
-
- B[0] = lenSz - 1;
- for (i = 0; i < lenSz; i++)
- B[AES_BLOCK_SIZE - 1 - i] = 0;
- wc_AesEncrypt(aes, B, B);
- xorbuf(A, B, authTagSz);
-
- if (ConstantCompare(A, authTag, authTagSz) != 0) {
- /* If the authTag check fails, don't keep the decrypted data.
- * Unfortunately, you need the decrypted data to calculate the
- * check value. */
- XMEMSET(out, 0, inSz);
- result = AES_CCM_AUTH_E;
- }
-
- ForceZero(A, AES_BLOCK_SIZE);
- ForceZero(B, AES_BLOCK_SIZE);
- o = NULL;
-
- return result;
-}
-#endif /* HAVE_AES_DECRYPT */
-#endif /* HAVE_AESCCM */
-
-
-
-#ifdef HAVE_AESGCM /* common GCM functions 32 and 64 bit */
-int wc_AesGcmSetKey(Aes* aes, const byte* key, word32 len)
-{
- int ret;
- byte iv[AES_BLOCK_SIZE];
-
- if (!((len == 16) || (len == 24) || (len == 32)))
- return BAD_FUNC_ARG;
-
- XMEMSET(iv, 0, AES_BLOCK_SIZE);
- ret = wc_AesSetKey(aes, key, len, iv, AES_ENCRYPTION);
-
- if (ret == 0) {
- wc_AesEncrypt(aes, iv, aes->H);
- #if defined(__aarch64__)
- {
- word32* pt = (word32*)aes->H;
- __asm__ volatile (
- "LD1 {v0.16b}, [%[h]] \n"
- "RBIT v0.16b, v0.16b \n"
- "ST1 {v0.16b}, [%[out]] \n"
- : [out] "=r" (pt)
- : [h] "0" (pt)
- : "cc", "memory", "v0"
- );
- }
- #else
- {
- word32* pt = (word32*)aes->H;
- __asm__ volatile (
- "VLD1.32 {q0}, [%[h]] \n"
- "VREV64.8 q0, q0 \n"
- "VSWP.8 d0, d1 \n"
- "VST1.32 {q0}, [%[out]] \n"
- : [out] "=r" (pt)
- : [h] "0" (pt)
- : "cc", "memory", "q0"
- );
- }
- #endif
- }
-
- return ret;
-}
-
-#endif /* HAVE_AESGCM */
-
-/* AES-DIRECT */
-#if defined(WOLFSSL_AES_DIRECT)
- /* Allow direct access to one block encrypt */
- void wc_AesEncryptDirect(Aes* aes, byte* out, const byte* in)
- {
- if (aes == NULL || out == NULL || in == NULL) {
- WOLFSSL_MSG("Invalid input to wc_AesEncryptDirect");
- return;
- }
- wc_AesEncrypt(aes, in, out);
- }
- #ifdef HAVE_AES_DECRYPT
- /* Allow direct access to one block decrypt */
- void wc_AesDecryptDirect(Aes* aes, byte* out, const byte* in)
- {
- if (aes == NULL || out == NULL || in == NULL) {
- WOLFSSL_MSG("Invalid input to wc_AesDecryptDirect");
- return;
- }
- wc_AesDecrypt(aes, in, out);
- }
- #endif /* HAVE_AES_DECRYPT */
-#endif /* WOLFSSL_AES_DIRECT */
-#endif /* !NO_AES && WOLFSSL_ARMASM */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-chacha.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-chacha.c
deleted file mode 100644
index df76bece0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-chacha.c
+++ /dev/null
@@ -1,2857 +0,0 @@
-/* armv8-chacha.c
- *
- * Copyright (C) 2006-2020 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
- *
- */
-
-/* The paper NEON crypto by Daniel J. Bernstein and Peter Schwabe was used to optimize for ARM
- * https://cryptojedi.org/papers/neoncrypto-20120320.pdf
- */
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifdef WOLFSSL_ARMASM
-#ifdef HAVE_CHACHA
-
-#include <wolfssl/wolfcrypt/chacha.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/logging.h>
-#include <wolfssl/wolfcrypt/cpuid.h>
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-#ifdef CHACHA_AEAD_TEST
- #include <stdio.h>
-#endif
-
-#ifdef CHACHA_TEST
- #include <stdio.h>
-#endif
-
-#ifdef BIG_ENDIAN_ORDER
- #define LITTLE32(x) ByteReverseWord32(x)
-#else
- #define LITTLE32(x) (x)
-#endif
-
-/* Number of rounds */
-#define ROUNDS 20
-
-#define U32C(v) (v##U)
-#define U32V(v) ((word32)(v) & U32C(0xFFFFFFFF))
-#define U8TO32_LITTLE(p) LITTLE32(((word32*)(p))[0])
-
-#define PLUS(v,w) (U32V((v) + (w)))
-#define PLUSONE(v) (PLUS((v),1))
-
-#define ARM_SIMD_LEN_BYTES 16
-
-/**
- * Set up iv(nonce). Earlier versions used 64 bits instead of 96, this version
- * uses the typical AEAD 96 bit nonce and can do record sizes of 256 GB.
- */
-int wc_Chacha_SetIV(ChaCha* ctx, const byte* inIv, word32 counter)
-{
- word32 temp[CHACHA_IV_WORDS];/* used for alignment of memory */
-
-#ifdef CHACHA_AEAD_TEST
- word32 i;
- printf("NONCE : ");
- for (i = 0; i < CHACHA_IV_BYTES; i++) {
- printf("%02x", inIv[i]);
- }
- printf("\n\n");
-#endif
-
- if (ctx == NULL)
- return BAD_FUNC_ARG;
-
- XMEMCPY(temp, inIv, CHACHA_IV_BYTES);
-
- ctx->X[CHACHA_IV_BYTES+0] = counter; /* block counter */
- ctx->X[CHACHA_IV_BYTES+1] = LITTLE32(temp[0]); /* fixed variable from nonce */
- ctx->X[CHACHA_IV_BYTES+2] = LITTLE32(temp[1]); /* counter from nonce */
- ctx->X[CHACHA_IV_BYTES+3] = LITTLE32(temp[2]); /* counter from nonce */
-
- return 0;
-}
-
-/* "expand 32-byte k" as unsigned 32 byte */
-static const word32 sigma[4] = {0x61707865, 0x3320646e, 0x79622d32, 0x6b206574};
-/* "expand 16-byte k" as unsigned 16 byte */
-static const word32 tau[4] = {0x61707865, 0x3120646e, 0x79622d36, 0x6b206574};
-
-/**
- * Key setup. 8 word iv (nonce)
- */
-int wc_Chacha_SetKey(ChaCha* ctx, const byte* key, word32 keySz)
-{
- const word32* constants;
- const byte* k;
-
-#ifdef XSTREAM_ALIGN
- word32 alignKey[8];
-#endif
-
- if (ctx == NULL)
- return BAD_FUNC_ARG;
-
- if (keySz != (CHACHA_MAX_KEY_SZ/2) && keySz != CHACHA_MAX_KEY_SZ)
- return BAD_FUNC_ARG;
-
-#ifdef XSTREAM_ALIGN
- if ((wolfssl_word)key % 4) {
- WOLFSSL_MSG("wc_ChachaSetKey unaligned key");
- XMEMCPY(alignKey, key, keySz);
- k = (byte*)alignKey;
- }
- else {
- k = key;
- }
-#else
- k = key;
-#endif /* XSTREAM_ALIGN */
-
-#ifdef CHACHA_AEAD_TEST
- word32 i;
- printf("ChaCha key used :\n");
- for (i = 0; i < keySz; i++) {
- printf("%02x", key[i]);
- if ((i + 1) % 8 == 0)
- printf("\n");
- }
- printf("\n\n");
-#endif
-
- ctx->X[4] = U8TO32_LITTLE(k + 0);
- ctx->X[5] = U8TO32_LITTLE(k + 4);
- ctx->X[6] = U8TO32_LITTLE(k + 8);
- ctx->X[7] = U8TO32_LITTLE(k + 12);
- if (keySz == CHACHA_MAX_KEY_SZ) {
- k += 16;
- constants = sigma;
- }
- else {
- constants = tau;
- }
- ctx->X[ 8] = U8TO32_LITTLE(k + 0);
- ctx->X[ 9] = U8TO32_LITTLE(k + 4);
- ctx->X[10] = U8TO32_LITTLE(k + 8);
- ctx->X[11] = U8TO32_LITTLE(k + 12);
- ctx->X[ 0] = constants[0];
- ctx->X[ 1] = constants[1];
- ctx->X[ 2] = constants[2];
- ctx->X[ 3] = constants[3];
-
- return 0;
-}
-
-static const word32 L_chacha20_neon_inc_first_word[] = {
- 0x1,
- 0x0,
- 0x0,
- 0x0,
-};
-
-#ifdef __aarch64__
-
-static const word32 L_chacha20_neon_add_all_counters[] = {
- 0x0,
- 0x1,
- 0x2,
- 0x3,
-};
-
-static const word32 L_chacha20_neon_rol8[] = {
- 0x2010003,
- 0x6050407,
- 0xa09080b,
- 0xe0d0c0f,
-};
-
-static WC_INLINE void wc_Chacha_encrypt_320(const word32* input, const byte* m, byte* c, word32 bytes)
-{
-#ifdef CHACHA_TEST
- printf("Entering wc_Chacha_encrypt_320 with %d bytes\n", bytes);
-#endif /*CHACHA_TEST */
- word64 bytes64 = (word64) bytes;
- __asm__ __volatile__ (
- /*
- * The layout of used registers is:
- * ARM
- * w4-w19: these registers hold the fifth Chacha block for calculation in regular ARM
- * w20: loop counter for how many even-odd rounds need to be executed
- * w21: the counter offset for the block in ARM registers
- * NEON
- * v0-v15: the vi'th register holds the i'th word of four blocks during the quarter rounds.
- * these registers are later transposed make ADDing the input and XORing the message easier.
- * v16-v19: these are helper registers that are used as temporary location to store data
- * v20-v23: load the next message block
- * v24-v27: the 64 byte initial Chacha block
- * v28: vector to increment the counter words of each block
- * v29: vector of 5's to increment counters between L_chacha20_arm64_outer_%= loops
- * v30: table lookup indices to rotate values by 8
- */
-
- /* Load counter-add values for each block */
- "LD1 {v28.4s}, [%[L_chacha20_neon_add_all_counters]] \n\t"
- /* Load index look-up for rotating left 8 bits */
- "LD1 {v30.16b}, [%[L_chacha20_neon_rol8]] \n\t"
- /* For adding 5 to each counter-add for next 320-byte chunk */
- "MOVI v29.4s, #5 \n\t"
- /* Counter for 5th block in regular registers */
- "MOV w21, #4 \n\t"
- /* Load state to encrypt */
- "LD1 {v24.4s-v27.4s}, [%[input]] \n\t"
- "\n"
- "L_chacha20_arm64_outer_%=: \n\t"
- /* Move state into regular registers */
- "MOV x4, v24.d[0] \n\t"
- "MOV x6, v24.d[1] \n\t"
- "MOV x8, v25.d[0] \n\t"
- "MOV x10, v25.d[1] \n\t"
- "MOV x12, v26.d[0] \n\t"
- "MOV x14, v26.d[1] \n\t"
- "MOV x16, v27.d[0] \n\t"
- "MOV x22, v27.d[1] \n\t"
- /* Move state into vector registers (x4) */
- "DUP v0.4s, v24.s[0] \n\t"
- "DUP v1.4s, v24.s[1] \n\t"
- "LSR x5, x4, #32 \n\t"
- "DUP v2.4s, v24.s[2] \n\t"
- "DUP v3.4s, v24.s[3] \n\t"
- "LSR x7, x6, #32 \n\t"
- "DUP v4.4s, v25.s[0] \n\t"
- "DUP v5.4s, v25.s[1] \n\t"
- "LSR x9, x8, #32 \n\t"
- "DUP v6.4s, v25.s[2] \n\t"
- "DUP v7.4s, v25.s[3] \n\t"
- "LSR x11, x10, #32 \n\t"
- "DUP v8.4s, v26.s[0] \n\t"
- "DUP v9.4s, v26.s[1] \n\t"
- "LSR x13, x12, #32 \n\t"
- "DUP v10.4s, v26.s[2] \n\t"
- "DUP v11.4s, v26.s[3] \n\t"
- "LSR x15, x14, #32 \n\t"
- "DUP v12.4s, v27.s[0] \n\t"
- "DUP v13.4s, v27.s[1] \n\t"
- "LSR x17, x16, #32 \n\t"
- "DUP v14.4s, v27.s[2] \n\t"
- "DUP v15.4s, v27.s[3] \n\t"
- "LSR x19, x22, #32 \n\t"
- /* Add to counter word */
- "ADD v12.4s, v12.4s, v28.4s \n\t"
- "ADD w16, w16, w21 \n\t"
- /* Set number of odd+even rounds to perform */
- "MOV w20, #10 \n\t"
- "\n"
- "L_chacha20_arm64_inner_%=: \n\t"
- "SUBS w20, w20, #1 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4s, v0.4s, v4.4s \n\t"
- "ADD w4, w4, w8 \n\t"
- "ADD v1.4s, v1.4s, v5.4s \n\t"
- "ADD w5, w5, w9 \n\t"
- "ADD v2.4s, v2.4s, v6.4s \n\t"
- "ADD w6, w6, w10 \n\t"
- "ADD v3.4s, v3.4s, v7.4s \n\t"
- "ADD w7, w7, w11 \n\t"
- "EOR v12.16b, v12.16b, v0.16b \n\t"
- "EOR w16, w16, w4 \n\t"
- "EOR v13.16b, v13.16b, v1.16b \n\t"
- "EOR w17, w17, w5 \n\t"
- "EOR v14.16b, v14.16b, v2.16b \n\t"
- "EOR w22, w22, w6 \n\t"
- "EOR v15.16b, v15.16b, v3.16b \n\t"
- "EOR w19, w19, w7 \n\t"
- "REV32 v12.8h, v12.8h \n\t"
- "ROR w16, w16, #16 \n\t"
- "REV32 v13.8h, v13.8h \n\t"
- "ROR w17, w17, #16 \n\t"
- "REV32 v14.8h, v14.8h \n\t"
- "ROR w22, w22, #16 \n\t"
- "REV32 v15.8h, v15.8h \n\t"
- "ROR w19, w19, #16 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v8.4s, v8.4s, v12.4s \n\t"
- "ADD w12, w12, w16 \n\t"
- "ADD v9.4s, v9.4s, v13.4s \n\t"
- "ADD w13, w13, w17 \n\t"
- "ADD v10.4s, v10.4s, v14.4s \n\t"
- "ADD w14, w14, w22 \n\t"
- "ADD v11.4s, v11.4s, v15.4s \n\t"
- "ADD w15, w15, w19 \n\t"
- "EOR v16.16b, v4.16b, v8.16b \n\t"
- "EOR w8, w8, w12 \n\t"
- "EOR v17.16b, v5.16b, v9.16b \n\t"
- "EOR w9, w9, w13 \n\t"
- "EOR v18.16b, v6.16b, v10.16b \n\t"
- "EOR w10, w10, w14 \n\t"
- "EOR v19.16b, v7.16b, v11.16b \n\t"
- "EOR w11, w11, w15 \n\t"
- "SHL v4.4s, v16.4s, #12 \n\t"
- "ROR w8, w8, #20 \n\t"
- "SHL v5.4s, v17.4s, #12 \n\t"
- "ROR w9, w9, #20 \n\t"
- "SHL v6.4s, v18.4s, #12 \n\t"
- "ROR w10, w10, #20 \n\t"
- "SHL v7.4s, v19.4s, #12 \n\t"
- "ROR w11, w11, #20 \n\t"
- "SRI v4.4s, v16.4s, #20 \n\t"
- "SRI v5.4s, v17.4s, #20 \n\t"
- "SRI v6.4s, v18.4s, #20 \n\t"
- "SRI v7.4s, v19.4s, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4s, v0.4s, v4.4s \n\t"
- "ADD w4, w4, w8 \n\t"
- "ADD v1.4s, v1.4s, v5.4s \n\t"
- "ADD w5, w5, w9 \n\t"
- "ADD v2.4s, v2.4s, v6.4s \n\t"
- "ADD w6, w6, w10 \n\t"
- "ADD v3.4s, v3.4s, v7.4s \n\t"
- "ADD w7, w7, w11 \n\t"
- "EOR v12.16b, v12.16b, v0.16b \n\t"
- "EOR w16, w16, w4 \n\t"
- "EOR v13.16b, v13.16b, v1.16b \n\t"
- "EOR w17, w17, w5 \n\t"
- "EOR v14.16b, v14.16b, v2.16b \n\t"
- "EOR w22, w22, w6 \n\t"
- "EOR v15.16b, v15.16b, v3.16b \n\t"
- "EOR w19, w19, w7 \n\t"
- "TBL v12.16b, { v12.16b }, v30.16b \n\t"
- "ROR w16, w16, #24 \n\t"
- "TBL v13.16b, { v13.16b }, v30.16b \n\t"
- "ROR w17, w17, #24 \n\t"
- "TBL v14.16b, { v14.16b }, v30.16b \n\t"
- "ROR w22, w22, #24 \n\t"
- "TBL v15.16b, { v15.16b }, v30.16b \n\t"
- "ROR w19, w19, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v8.4s, v8.4s, v12.4s \n\t"
- "ADD w12, w12, w16 \n\t"
- "ADD v9.4s, v9.4s, v13.4s \n\t"
- "ADD w13, w13, w17 \n\t"
- "ADD v10.4s, v10.4s, v14.4s \n\t"
- "ADD w14, w14, w22 \n\t"
- "ADD v11.4s, v11.4s, v15.4s \n\t"
- "ADD w15, w15, w19 \n\t"
- "EOR v16.16b, v4.16b, v8.16b \n\t"
- "EOR w8, w8, w12 \n\t"
- "EOR v17.16b, v5.16b, v9.16b \n\t"
- "EOR w9, w9, w13 \n\t"
- "EOR v18.16b, v6.16b, v10.16b \n\t"
- "EOR w10, w10, w14 \n\t"
- "EOR v19.16b, v7.16b, v11.16b \n\t"
- "EOR w11, w11, w15 \n\t"
- "SHL v4.4s, v16.4s, #7 \n\t"
- "ROR w8, w8, #25 \n\t"
- "SHL v5.4s, v17.4s, #7 \n\t"
- "ROR w9, w9, #25 \n\t"
- "SHL v6.4s, v18.4s, #7 \n\t"
- "ROR w10, w10, #25 \n\t"
- "SHL v7.4s, v19.4s, #7 \n\t"
- "ROR w11, w11, #25 \n\t"
- "SRI v4.4s, v16.4s, #25 \n\t"
- "SRI v5.4s, v17.4s, #25 \n\t"
- "SRI v6.4s, v18.4s, #25 \n\t"
- "SRI v7.4s, v19.4s, #25 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4s, v0.4s, v5.4s \n\t"
- "ADD w4, w4, w9 \n\t"
- "ADD v1.4s, v1.4s, v6.4s \n\t"
- "ADD w5, w5, w10 \n\t"
- "ADD v2.4s, v2.4s, v7.4s \n\t"
- "ADD w6, w6, w11 \n\t"
- "ADD v3.4s, v3.4s, v4.4s \n\t"
- "ADD w7, w7, w8 \n\t"
- "EOR v15.16b, v15.16b, v0.16b \n\t"
- "EOR w19, w19, w4 \n\t"
- "EOR v12.16b, v12.16b, v1.16b \n\t"
- "EOR w16, w16, w5 \n\t"
- "EOR v13.16b, v13.16b, v2.16b \n\t"
- "EOR w17, w17, w6 \n\t"
- "EOR v14.16b, v14.16b, v3.16b \n\t"
- "EOR w22, w22, w7 \n\t"
- "REV32 v15.8h, v15.8h \n\t"
- "ROR w19, w19, #16 \n\t"
- "REV32 v12.8h, v12.8h \n\t"
- "ROR w16, w16, #16 \n\t"
- "REV32 v13.8h, v13.8h \n\t"
- "ROR w17, w17, #16 \n\t"
- "REV32 v14.8h, v14.8h \n\t"
- "ROR w22, w22, #16 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v10.4s, v10.4s, v15.4s \n\t"
- "ADD w14, w14, w19 \n\t"
- "ADD v11.4s, v11.4s, v12.4s \n\t"
- "ADD w15, w15, w16 \n\t"
- "ADD v8.4s, v8.4s, v13.4s \n\t"
- "ADD w12, w12, w17 \n\t"
- "ADD v9.4s, v9.4s, v14.4s \n\t"
- "ADD w13, w13, w22 \n\t"
- "EOR v16.16b, v5.16b, v10.16b \n\t"
- "EOR w9, w9, w14 \n\t"
- "EOR v17.16b, v6.16b, v11.16b \n\t"
- "EOR w10, w10, w15 \n\t"
- "EOR v18.16b, v7.16b, v8.16b \n\t"
- "EOR w11, w11, w12 \n\t"
- "EOR v19.16b, v4.16b, v9.16b \n\t"
- "EOR w8, w8, w13 \n\t"
- "SHL v5.4s, v16.4s, #12 \n\t"
- "ROR w9, w9, #20 \n\t"
- "SHL v6.4s, v17.4s, #12 \n\t"
- "ROR w10, w10, #20 \n\t"
- "SHL v7.4s, v18.4s, #12 \n\t"
- "ROR w11, w11, #20 \n\t"
- "SHL v4.4s, v19.4s, #12 \n\t"
- "ROR w8, w8, #20 \n\t"
- "SRI v5.4s, v16.4s, #20 \n\t"
- "SRI v6.4s, v17.4s, #20 \n\t"
- "SRI v7.4s, v18.4s, #20 \n\t"
- "SRI v4.4s, v19.4s, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4s, v0.4s, v5.4s \n\t"
- "ADD w4, w4, w9 \n\t"
- "ADD v1.4s, v1.4s, v6.4s \n\t"
- "ADD w5, w5, w10 \n\t"
- "ADD v2.4s, v2.4s, v7.4s \n\t"
- "ADD w6, w6, w11 \n\t"
- "ADD v3.4s, v3.4s, v4.4s \n\t"
- "ADD w7, w7, w8 \n\t"
- "EOR v15.16b, v15.16b, v0.16b \n\t"
- "EOR w19, w19, w4 \n\t"
- "EOR v12.16b, v12.16b, v1.16b \n\t"
- "EOR w16, w16, w5 \n\t"
- "EOR v13.16b, v13.16b, v2.16b \n\t"
- "EOR w17, w17, w6 \n\t"
- "EOR v14.16b, v14.16b, v3.16b \n\t"
- "EOR w22, w22, w7 \n\t"
- "TBL v15.16b, { v15.16b }, v30.16b \n\t"
- "ROR w19, w19, #24 \n\t"
- "TBL v12.16b, { v12.16b }, v30.16b \n\t"
- "ROR w16, w16, #24 \n\t"
- "TBL v13.16b, { v13.16b }, v30.16b \n\t"
- "ROR w17, w17, #24 \n\t"
- "TBL v14.16b, { v14.16b }, v30.16b \n\t"
- "ROR w22, w22, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v10.4s, v10.4s, v15.4s \n\t"
- "ADD w14, w14, w19 \n\t"
- "ADD v11.4s, v11.4s, v12.4s \n\t"
- "ADD w15, w15, w16 \n\t"
- "ADD v8.4s, v8.4s, v13.4s \n\t"
- "ADD w12, w12, w17 \n\t"
- "ADD v9.4s, v9.4s, v14.4s \n\t"
- "ADD w13, w13, w22 \n\t"
- "EOR v16.16b, v5.16b, v10.16b \n\t"
- "EOR w9, w9, w14 \n\t"
- "EOR v17.16b, v6.16b, v11.16b \n\t"
- "EOR w10, w10, w15 \n\t"
- "EOR v18.16b, v7.16b, v8.16b \n\t"
- "EOR w11, w11, w12 \n\t"
- "EOR v19.16b, v4.16b, v9.16b \n\t"
- "EOR w8, w8, w13 \n\t"
- "SHL v5.4s, v16.4s, #7 \n\t"
- "ROR w9, w9, #25 \n\t"
- "SHL v6.4s, v17.4s, #7 \n\t"
- "ROR w10, w10, #25 \n\t"
- "SHL v7.4s, v18.4s, #7 \n\t"
- "ROR w11, w11, #25 \n\t"
- "SHL v4.4s, v19.4s, #7 \n\t"
- "ROR w8, w8, #25 \n\t"
- "SRI v5.4s, v16.4s, #25 \n\t"
- "SRI v6.4s, v17.4s, #25 \n\t"
- "SRI v7.4s, v18.4s, #25 \n\t"
- "SRI v4.4s, v19.4s, #25 \n\t"
- "BNE L_chacha20_arm64_inner_%= \n\t"
- /* Add counter now rather than after transposed */
- "ADD v12.4s, v12.4s, v28.4s \n\t"
- "ADD w16, w16, w21 \n\t"
- /* Load message */
- "LD1 {v20.4s-v23.4s}, [%[m]], #64 \n\t"
- /* Transpose vectors */
- "TRN1 v16.4s, v0.4s, v1.4s \n\t"
- "TRN1 v18.4s, v2.4s, v3.4s \n\t"
- "TRN2 v17.4s, v0.4s, v1.4s \n\t"
- "TRN2 v19.4s, v2.4s, v3.4s \n\t"
- "TRN1 v0.2d, v16.2d, v18.2d \n\t"
- "TRN1 v1.2d, v17.2d, v19.2d \n\t"
- "TRN2 v2.2d, v16.2d, v18.2d \n\t"
- "TRN2 v3.2d, v17.2d, v19.2d \n\t"
- "TRN1 v16.4s, v4.4s, v5.4s \n\t"
- "TRN1 v18.4s, v6.4s, v7.4s \n\t"
- "TRN2 v17.4s, v4.4s, v5.4s \n\t"
- "TRN2 v19.4s, v6.4s, v7.4s \n\t"
- "TRN1 v4.2d, v16.2d, v18.2d \n\t"
- "TRN1 v5.2d, v17.2d, v19.2d \n\t"
- "TRN2 v6.2d, v16.2d, v18.2d \n\t"
- "TRN2 v7.2d, v17.2d, v19.2d \n\t"
- "TRN1 v16.4s, v8.4s, v9.4s \n\t"
- "TRN1 v18.4s, v10.4s, v11.4s \n\t"
- "TRN2 v17.4s, v8.4s, v9.4s \n\t"
- "TRN2 v19.4s, v10.4s, v11.4s \n\t"
- "TRN1 v8.2d, v16.2d, v18.2d \n\t"
- "TRN1 v9.2d, v17.2d, v19.2d \n\t"
- "TRN2 v10.2d, v16.2d, v18.2d \n\t"
- "TRN2 v11.2d, v17.2d, v19.2d \n\t"
- "TRN1 v16.4s, v12.4s, v13.4s \n\t"
- "TRN1 v18.4s, v14.4s, v15.4s \n\t"
- "TRN2 v17.4s, v12.4s, v13.4s \n\t"
- "TRN2 v19.4s, v14.4s, v15.4s \n\t"
- "TRN1 v12.2d, v16.2d, v18.2d \n\t"
- "TRN1 v13.2d, v17.2d, v19.2d \n\t"
- "TRN2 v14.2d, v16.2d, v18.2d \n\t"
- "TRN2 v15.2d, v17.2d, v19.2d \n\t"
- /* Add back state, XOR in message and store (load next block) */
- "ADD v16.4s, v0.4s, v24.4s \n\t"
- "ADD v17.4s, v4.4s, v25.4s \n\t"
- "ADD v18.4s, v8.4s, v26.4s \n\t"
- "ADD v19.4s, v12.4s, v27.4s \n\t"
- "EOR v16.16b, v16.16b, v20.16b \n\t"
- "EOR v17.16b, v17.16b, v21.16b \n\t"
- "EOR v18.16b, v18.16b, v22.16b \n\t"
- "EOR v19.16b, v19.16b, v23.16b \n\t"
- "LD1 {v20.4s-v23.4s}, [%[m]], #64 \n\t"
- "ST1 {v16.4s-v19.4s}, [%[c]], #64 \n\t"
- "ADD v16.4s, v1.4s, v24.4s \n\t"
- "ADD v17.4s, v5.4s, v25.4s \n\t"
- "ADD v18.4s, v9.4s, v26.4s \n\t"
- "ADD v19.4s, v13.4s, v27.4s \n\t"
- "EOR v16.16b, v16.16b, v20.16b \n\t"
- "EOR v17.16b, v17.16b, v21.16b \n\t"
- "EOR v18.16b, v18.16b, v22.16b \n\t"
- "EOR v19.16b, v19.16b, v23.16b \n\t"
- "LD1 {v20.4s-v23.4s}, [%[m]], #64 \n\t"
- "ST1 {v16.4s-v19.4s}, [%[c]], #64 \n\t"
- "ADD v16.4s, v2.4s, v24.4s \n\t"
- "ADD v17.4s, v6.4s, v25.4s \n\t"
- "ADD v18.4s, v10.4s, v26.4s \n\t"
- "ADD v19.4s, v14.4s, v27.4s \n\t"
- "EOR v16.16b, v16.16b, v20.16b \n\t"
- "EOR v17.16b, v17.16b, v21.16b \n\t"
- "EOR v18.16b, v18.16b, v22.16b \n\t"
- "EOR v19.16b, v19.16b, v23.16b \n\t"
- "LD1 {v20.4s-v23.4s}, [%[m]], #64 \n\t"
- "ST1 {v16.4s-v19.4s}, [%[c]], #64 \n\t"
- "ADD v16.4s, v3.4s, v24.4s \n\t"
- "ADD v17.4s, v7.4s, v25.4s \n\t"
- "ADD v18.4s, v11.4s, v26.4s \n\t"
- "ADD v19.4s, v15.4s, v27.4s \n\t"
- "EOR v16.16b, v16.16b, v20.16b \n\t"
- "EOR v17.16b, v17.16b, v21.16b \n\t"
- "EOR v18.16b, v18.16b, v22.16b \n\t"
- "EOR v19.16b, v19.16b, v23.16b \n\t"
- "LD1 {v20.4s-v23.4s}, [%[m]], #64 \n\t"
- "ST1 {v16.4s-v19.4s}, [%[c]], #64 \n\t"
- /* Move regular registers into vector registers for adding and xor */
- "ORR x4, x4, x5, LSL #32 \n\t"
- "ORR x6, x6, x7, LSL #32 \n\t"
- "ORR x8, x8, x9, LSL #32 \n\t"
- "MOV v16.d[0], x4 \n\t"
- "ORR x10, x10, x11, LSL #32 \n\t"
- "MOV v16.d[1], x6 \n\t"
- "ORR x12, x12, x13, LSL #32 \n\t"
- "MOV v17.d[0], x8 \n\t"
- "ORR x14, x14, x15, LSL #32 \n\t"
- "MOV v17.d[1], x10 \n\t"
- "ORR x16, x16, x17, LSL #32 \n\t"
- "MOV v18.d[0], x12 \n\t"
- "ORR x22, x22, x19, LSL #32 \n\t"
- "MOV v18.d[1], x14 \n\t"
- "MOV v19.d[0], x16 \n\t"
- "MOV v19.d[1], x22 \n\t"
- /* Add back state, XOR in message and store */
- "ADD v16.4s, v16.4s, v24.4s \n\t"
- "ADD v17.4s, v17.4s, v25.4s \n\t"
- "ADD v18.4s, v18.4s, v26.4s \n\t"
- "ADD v19.4s, v19.4s, v27.4s \n\t"
- "EOR v16.16b, v16.16b, v20.16b \n\t"
- "EOR v17.16b, v17.16b, v21.16b \n\t"
- "EOR v18.16b, v18.16b, v22.16b \n\t"
- "EOR v19.16b, v19.16b, v23.16b \n\t"
- "ADD w21, w21, #5 \n\t"
- "ST1 {v16.4s-v19.4s}, [%[c]], #64 \n\t"
- "SUBS %[bytes], %[bytes], #320 \n\t"
- "ADD v28.4s, v28.4s, v29.4s \n\t"
- "BNE L_chacha20_arm64_outer_%= \n\t"
- : [input] "+r" (input), [m] "+r" (m), [c] "+r" (c),
- [bytes] "+r" (bytes64)
- : [L_chacha20_neon_add_all_counters] "r" (L_chacha20_neon_add_all_counters),
- [L_chacha20_neon_rol8] "r" (L_chacha20_neon_rol8)
- : "memory", "cc",
- "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12",
- "x13", "x14", "x15", "x16", "x17", "x22", "x19", "x20", "x21",
- "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v8", "v9",
- "v10", "v11", "v12", "v13", "v14", "v15", "v16", "v17", "v18",
- "v19", "v20", "v21", "v22", "v23", "v24", "v25", "v26", "v27"
- );
-}
-#endif /* __aarch64__ */
-
-/**
- * Converts word into bytes with rotations having been done.
- */
-static WC_INLINE int wc_Chacha_encrypt_256(const word32 input[CHACHA_CHUNK_WORDS], const byte* m, byte* c)
-{
-#ifdef CHACHA_TEST
- printf("Entering wc_Chacha_encrypt_256\n");
-#endif /*CHACHA_TEST */
-
-#ifdef __aarch64__
- __asm__ __volatile__ (
- // v0-v3 - first block
- // v12 first block helper
- // v4-v7 - second block
- // v13 second block helper
- // v8-v11 - third block
- // v14 third block helper
- // w4-w19 - fourth block
-
- // v0 0 1 2 3
- // v1 4 5 6 7
- // v2 8 9 10 11
- // v3 12 13 14 15
- // load CHACHA state with indices placed as shown above
- /* Load state to encrypt */
- "LD1 {v20.4S-v23.4S}, [%[input]] \n\t"
- /* Load index look-up for rotating left 8 bits */
- "LD1 {v24.16B}, [%[L_chacha20_neon_rol8]] \n\t"
- /* Move state into regular registers */
- "MOV x4, v20.D[0] \n\t"
- "MOV x6, v20.D[1] \n\t"
- "MOV x8, v21.D[0] \n\t"
- "MOV x10, v21.D[1] \n\t"
- "MOV x12, v22.D[0] \n\t"
- "MOV x14, v22.D[1] \n\t"
- "MOV x16, v23.D[0] \n\t"
- "MOV x22, v23.D[1] \n\t"
- /* Move state into vector registers (x3) */
- "MOV v0.16B, v20.16B \n\t"
- "MOV v1.16B, v21.16B \n\t"
- "LSR x19, x22, #32 \n\t"
- "MOV v2.16B, v22.16B \n\t"
- "ADD w20, w16, #1 \n\t"
- "MOV v3.16B, v23.16B \n\t"
- "LSR x17, x16, #32 \n\t"
- "MOV v4.16B, v20.16B \n\t"
- "MOV v5.16B, v21.16B \n\t"
- "LSR x15, x14, #32 \n\t"
- "MOV v6.16B, v22.16B \n\t"
- "ADD w21, w16, #2 \n\t"
- "MOV v7.16B, v23.16B \n\t"
- "LSR x13, x12, #32 \n\t"
- "MOV v8.16B, v20.16B \n\t"
- "MOV v9.16B, v21.16B \n\t"
- "LSR x11, x10, #32 \n\t"
- "MOV v10.16B, v22.16B \n\t"
- "ADD w16, w16, #3 \n\t"
- "MOV v11.16B, v23.16B \n\t"
- "LSR x9, x8, #32 \n\t"
- /* Set counter word */
- "MOV v7.S[0], w20 \n\t"
- "LSR x7, x6, #32 \n\t"
- "MOV v11.S[0], w21 \n\t"
- "LSR x5, x4, #32 \n\t"
- /* Set number of odd+even rounds to perform */
- "MOV w3, #10 \n\t"
- "\n"
- "L_chacha20_arm64_256_loop_%=: \n\t"
- "SUBS w3, w3, #1 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD w4, w4, w8 \n\t"
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "ADD w5, w5, w9 \n\t"
- "ADD v4.4S, v4.4S, v5.4S \n\t"
- "ADD w6, w6, w10 \n\t"
- "ADD v8.4S, v8.4S, v9.4S \n\t"
- "ADD w7, w7, w11 \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "EOR w16, w16, w4 \n\t"
- "EOR v7.16B, v7.16B, v4.16B \n\t"
- "EOR w17, w17, w5 \n\t"
- "EOR v11.16B, v11.16B, v8.16B \n\t"
- "EOR w22, w22, w6 \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- "EOR w19, w19, w7 \n\t"
- "REV32 v7.8H, v7.8H \n\t"
- "ROR w16, w16, #16 \n\t"
- "REV32 v11.8H, v11.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ROR w17, w17, #16 \n\t"
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "ROR w22, w22, #16 \n\t"
- "ADD v6.4S, v6.4S, v7.4S \n\t"
- "ROR w19, w19, #16 \n\t"
- "ADD v10.4S, v10.4S, v11.4S \n\t"
- "ADD w12, w12, w16 \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "ADD w13, w13, w17 \n\t"
- "EOR v13.16B, v5.16B, v6.16B \n\t"
- "ADD w14, w14, w22 \n\t"
- "EOR v14.16B, v9.16B, v10.16B \n\t"
- "ADD w15, w15, w19 \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "EOR w8, w8, w12 \n\t"
- "SHL v5.4S, v13.4S, #12 \n\t"
- "EOR w9, w9, w13 \n\t"
- "SHL v9.4S, v14.4S, #12 \n\t"
- "EOR w10, w10, w14 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- "EOR w11, w11, w15 \n\t"
- "SRI v5.4S, v13.4S, #20 \n\t"
- "ROR w8, w8, #20 \n\t"
- "SRI v9.4S, v14.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ROR w9, w9, #20 \n\t"
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "ROR w10, w10, #20 \n\t"
- "ADD v4.4S, v4.4S, v5.4S \n\t"
- "ROR w11, w11, #20 \n\t"
- "ADD v8.4S, v8.4S, v9.4S \n\t"
- "ADD w4, w4, w8 \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "ADD w5, w5, w9 \n\t"
- "EOR v7.16B, v7.16B, v4.16B \n\t"
- "ADD w6, w6, w10 \n\t"
- "EOR v11.16B, v11.16B, v8.16B \n\t"
- "ADD w7, w7, w11 \n\t"
- "TBL v3.16B, { v3.16B }, v24.16B \n\t"
- "EOR w16, w16, w4 \n\t"
- "TBL v7.16B, { v7.16B }, v24.16B \n\t"
- "EOR w17, w17, w5 \n\t"
- "TBL v11.16B, { v11.16B }, v24.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "EOR w22, w22, w6 \n\t"
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR w19, w19, w7 \n\t"
- "ADD v6.4S, v6.4S, v7.4S \n\t"
- "ROR w16, w16, #24 \n\t"
- "ADD v10.4S, v10.4S, v11.4S \n\t"
- "ROR w17, w17, #24 \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "ROR w22, w22, #24 \n\t"
- "EOR v13.16B, v5.16B, v6.16B \n\t"
- "ROR w19, w19, #24 \n\t"
- "EOR v14.16B, v9.16B, v10.16B \n\t"
- "ADD w12, w12, w16 \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "ADD w13, w13, w17 \n\t"
- "SHL v5.4S, v13.4S, #7 \n\t"
- "ADD w14, w14, w22 \n\t"
- "SHL v9.4S, v14.4S, #7 \n\t"
- "ADD w15, w15, w19 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EOR w8, w8, w12 \n\t"
- "SRI v5.4S, v13.4S, #25 \n\t"
- "EOR w9, w9, w13 \n\t"
- "SRI v9.4S, v14.4S, #25 \n\t"
- "EOR w10, w10, w14 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #4 \n\t"
- "EOR w11, w11, w15 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- "ROR w8, w8, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #12 \n\t"
- "ROR w9, w9, #25 \n\t"
- "EXT v5.16B, v5.16B, v5.16B, #4 \n\t"
- "ROR w10, w10, #25 \n\t"
- "EXT v6.16B, v6.16B, v6.16B, #8 \n\t"
- "ROR w11, w11, #25 \n\t"
- "EXT v7.16B, v7.16B, v7.16B, #12 \n\t"
- "EXT v9.16B, v9.16B, v9.16B, #4 \n\t"
- "EXT v10.16B, v10.16B, v10.16B, #8 \n\t"
- "EXT v11.16B, v11.16B, v11.16B, #12 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD w4, w4, w9 \n\t"
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "ADD w5, w5, w10 \n\t"
- "ADD v4.4S, v4.4S, v5.4S \n\t"
- "ADD w6, w6, w11 \n\t"
- "ADD v8.4S, v8.4S, v9.4S \n\t"
- "ADD w7, w7, w8 \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "EOR w19, w19, w4 \n\t"
- "EOR v7.16B, v7.16B, v4.16B \n\t"
- "EOR w16, w16, w5 \n\t"
- "EOR v11.16B, v11.16B, v8.16B \n\t"
- "EOR w17, w17, w6 \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- "EOR w22, w22, w7 \n\t"
- "REV32 v7.8H, v7.8H \n\t"
- "ROR w19, w19, #16 \n\t"
- "REV32 v11.8H, v11.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ROR w16, w16, #16 \n\t"
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "ROR w17, w17, #16 \n\t"
- "ADD v6.4S, v6.4S, v7.4S \n\t"
- "ROR w22, w22, #16 \n\t"
- "ADD v10.4S, v10.4S, v11.4S \n\t"
- "ADD w14, w14, w19 \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "ADD w15, w15, w16 \n\t"
- "EOR v13.16B, v5.16B, v6.16B \n\t"
- "ADD w12, w12, w17 \n\t"
- "EOR v14.16B, v9.16B, v10.16B \n\t"
- "ADD w13, w13, w22 \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "EOR w9, w9, w14 \n\t"
- "SHL v5.4S, v13.4S, #12 \n\t"
- "EOR w10, w10, w15 \n\t"
- "SHL v9.4S, v14.4S, #12 \n\t"
- "EOR w11, w11, w12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- "EOR w8, w8, w13 \n\t"
- "SRI v5.4S, v13.4S, #20 \n\t"
- "ROR w9, w9, #20 \n\t"
- "SRI v9.4S, v14.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ROR w10, w10, #20 \n\t"
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "ROR w11, w11, #20 \n\t"
- "ADD v4.4S, v4.4S, v5.4S \n\t"
- "ROR w8, w8, #20 \n\t"
- "ADD v8.4S, v8.4S, v9.4S \n\t"
- "ADD w4, w4, w9 \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "ADD w5, w5, w10 \n\t"
- "EOR v7.16B, v7.16B, v4.16B \n\t"
- "ADD w6, w6, w11 \n\t"
- "EOR v11.16B, v11.16B, v8.16B \n\t"
- "ADD w7, w7, w8 \n\t"
- "TBL v3.16B, { v3.16B }, v24.16B \n\t"
- "EOR w19, w19, w4 \n\t"
- "TBL v7.16B, { v7.16B }, v24.16B \n\t"
- "EOR w16, w16, w5 \n\t"
- "TBL v11.16B, { v11.16B }, v24.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "EOR w17, w17, w6 \n\t"
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR w22, w22, w7 \n\t"
- "ADD v6.4S, v6.4S, v7.4S \n\t"
- "ROR w19, w19, #24 \n\t"
- "ADD v10.4S, v10.4S, v11.4S \n\t"
- "ROR w16, w16, #24 \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "ROR w17, w17, #24 \n\t"
- "EOR v13.16B, v5.16B, v6.16B \n\t"
- "ROR w22, w22, #24 \n\t"
- "EOR v14.16B, v9.16B, v10.16B \n\t"
- "ADD w14, w14, w19 \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "ADD w15, w15, w16 \n\t"
- "SHL v5.4S, v13.4S, #7 \n\t"
- "ADD w12, w12, w17 \n\t"
- "SHL v9.4S, v14.4S, #7 \n\t"
- "ADD w13, w13, w22 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EOR w9, w9, w14 \n\t"
- "SRI v5.4S, v13.4S, #25 \n\t"
- "EOR w10, w10, w15 \n\t"
- "SRI v9.4S, v14.4S, #25 \n\t"
- "EOR w11, w11, w12 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #12 \n\t"
- "EOR w8, w8, w13 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- "ROR w9, w9, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #4 \n\t"
- "ROR w10, w10, #25 \n\t"
- "EXT v5.16B, v5.16B, v5.16B, #12 \n\t"
- "ROR w11, w11, #25 \n\t"
- "EXT v6.16B, v6.16B, v6.16B, #8 \n\t"
- "ROR w8, w8, #25 \n\t"
- "EXT v7.16B, v7.16B, v7.16B, #4 \n\t"
- "EXT v9.16B, v9.16B, v9.16B, #12 \n\t"
- "EXT v10.16B, v10.16B, v10.16B, #8 \n\t"
- "EXT v11.16B, v11.16B, v11.16B, #4 \n\t"
- "BNE L_chacha20_arm64_256_loop_%= \n\t"
- /* Load message */
- "LD1 {v16.4S-v19.4S}, [%[m]], #64 \n\t"
- /* Add one (2 added during calculating vector results) */
- "ADD w16, w16, #1 \n\t"
- /* Add back state, XOR in message and store (load next block) */
- "ADD v0.4S, v0.4S, v20.4S \n\t"
- "ADD v1.4S, v1.4S, v21.4S \n\t"
- "ADD v2.4S, v2.4S, v22.4S \n\t"
- "ADD v3.4S, v3.4S, v23.4S \n\t"
- "EOR v0.16B, v0.16B, v16.16B \n\t"
- "EOR v1.16B, v1.16B, v17.16B \n\t"
- "EOR v2.16B, v2.16B, v18.16B \n\t"
- "EOR v3.16B, v3.16B, v19.16B \n\t"
- "LD1 {v16.4S-v19.4S}, [%[m]], #64 \n\t"
- "ST1 {v0.4S-v3.4S}, [%[c]], #64 \n\t"
- "MOV v23.S[0], w20 \n\t"
- "ADD v4.4S, v4.4S, v20.4S \n\t"
- "ADD v5.4S, v5.4S, v21.4S \n\t"
- "ADD v6.4S, v6.4S, v22.4S \n\t"
- "ADD v7.4S, v7.4S, v23.4S \n\t"
- "EOR v4.16B, v4.16B, v16.16B \n\t"
- "EOR v5.16B, v5.16B, v17.16B \n\t"
- "EOR v6.16B, v6.16B, v18.16B \n\t"
- "EOR v7.16B, v7.16B, v19.16B \n\t"
- "LD1 {v16.4S-v19.4S}, [%[m]], #64 \n\t"
- "ST1 {v4.4S-v7.4S}, [%[c]], #64 \n\t"
- "MOV v23.S[0], w21 \n\t"
- "ADD v8.4S, v8.4S, v20.4S \n\t"
- "ADD v9.4S, v9.4S, v21.4S \n\t"
- "ADD v10.4S, v10.4S, v22.4S \n\t"
- "ADD v11.4S, v11.4S, v23.4S \n\t"
- "EOR v8.16B, v8.16B, v16.16B \n\t"
- "EOR v9.16B, v9.16B, v17.16B \n\t"
- "EOR v10.16B, v10.16B, v18.16B \n\t"
- "EOR v11.16B, v11.16B, v19.16B \n\t"
- "LD1 {v16.4S-v19.4S}, [%[m]], #64 \n\t"
- "ST1 {v8.4S-v11.4S}, [%[c]], #64 \n\t"
- /* Move regular registers into vector registers for adding and xor */
- "ORR x4, x4, x5, lsl #32 \n\t"
- "ORR x6, x6, x7, lsl #32 \n\t"
- "ORR x8, x8, x9, lsl #32 \n\t"
- "MOV v12.D[0], x4 \n\t"
- "ORR x10, x10, x11, lsl #32 \n\t"
- "MOV v12.D[1], x6 \n\t"
- "ORR x12, x12, x13, lsl #32 \n\t"
- "MOV v13.D[0], x8 \n\t"
- "ORR x14, x14, x15, lsl #32 \n\t"
- "MOV v13.D[1], x10 \n\t"
- "ORR x16, x16, x17, lsl #32 \n\t"
- "MOV v14.D[0], x12 \n\t"
- "ORR x22, x22, x19, lsl #32 \n\t"
- "MOV v14.D[1], x14 \n\t"
- "MOV v15.D[0], x16 \n\t"
- "MOV v15.D[1], x22 \n\t"
- /* Add back state, XOR in message and store */
- "ADD v12.4S, v12.4S, v20.4S \n\t"
- "ADD v13.4S, v13.4S, v21.4S \n\t"
- "ADD v14.4S, v14.4S, v22.4S \n\t"
- "ADD v15.4S, v15.4S, v23.4S \n\t"
- "EOR v12.16B, v12.16B, v16.16B \n\t"
- "EOR v13.16B, v13.16B, v17.16B \n\t"
- "EOR v14.16B, v14.16B, v18.16B \n\t"
- "EOR v15.16B, v15.16B, v19.16B \n\t"
- "ST1 {v12.4S-v15.4S}, [%[c]], #64 \n\t"
- : [input] "+r" (input), [m] "+r" (m), [c] "+r" (c)
- : [L_chacha20_neon_rol8] "r" (L_chacha20_neon_rol8)
- : "memory", "x3", "x4", "x5", "x6", "x7", "x8", "x9",
- "x10", "x11", "x12", "x13", "x14", "x15", "x16",
- "x17", "x22", "x19", "x20", "x21", "v0", "v1",
- "v2", "v3", "v4", "v5", "v6", "v7", "v8",
- "v9", "v10", "v11", "v12", "v13", "v14",
- "v15", "v16", "v17", "v18", "v19", "v20",
- "v21", "v22", "v23"
- );
-#else
- word32 x[CHACHA_CHUNK_WORDS];
- word32* x_addr = x;
- __asm__ __volatile__ (
- // The paper NEON crypto by Daniel J. Bernstein and Peter Schwabe was used to optimize for ARM
- // https://cryptojedi.org/papers/neoncrypto-20120320.pdf
-
- ".align 2 \n\t"
- "LDR r14, %[input] \n\t" // load input address
-
- "LDM r14, { r0-r12 } \n\t"
- // r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12
- // 0 1 2 3 4 5 6 7 8 9 10 11 12
- "VMOV d0, r0, r1 \n\t"
- "VMOV d1, r2, r3 \n\t"
- "VMOV d2, r4, r5 \n\t"
- "VMOV d3, r6, r7 \n\t"
- "VMOV d4, r8, r9 \n\t"
- "STRD r10, r11, %[x_10] \n\t"
- "VMOV d5, r10, r11 \n\t"
- "LDRD r11, r10, [r14, #4*14] \n\t"
- "VMOV q4, q0 \n\t"
- "VMOV q5, q1 \n\t"
- "VMOV q6, q2 \n\t"
- "VMOV q8, q0 \n\t"
- "VMOV q9, q1 \n\t"
- "VMOV q10, q2 \n\t"
- // r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12
- // 0 1 2 3 4 5 6 7 8 9 15 14 12
- "VMOV d7, r11, r10 \n\t"
- "STR r10, %[x_15] \n\t"
- "VMOV d15, r11, r10 \n\t"
- "VMOV d23, r11, r10 \n\t"
- "MOV r10, r12 \n\t"
- "MOV r12, r11 \n\t"
- "LDR r11, [r14, #4*13] \n\t"
- // r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12
- // 0 1 2 3 4 5 6 7 8 9 12 13 14
-
- "MOV r14, %[rounds] \n\t"
-
- "VMOV d6, r10, r11 \n\t"
- "ADD r10, r10, #1 \n\t"
- "VMOV d14, r10, r11 \n\t"
- "ADD r10, r10, #1 \n\t"
- "VMOV d22, r10, r11 \n\t"
- "ADD r10, r10, #1 \n\t" // ARM calculates the fourth block (two was already added earlier)
- "\n"
- "L_chacha20_arm32_256_loop_%=: \n\t"
- "SUBS r14, r14, #1 \n\t"
-
- // 0, 4, 8, 12
- // 1, 5, 9, 13
-
- // ODD ROUND
- "ADD r0, r0, r4 \n\t" // 0 0 4
- "VADD.I32 q0, q0, q1 \n\t"
- "ADD r1, r1, r5 \n\t" // 1 1 5
- "VADD.I32 q4, q4, q5 \n\t"
- "EOR r10, r10, r0 \n\t" // 12 12 0
- "VADD.I32 q8, q8, q9 \n\t"
- "EOR r11, r11, r1 \n\t" // 13 13 1
- "VEOR q12, q3, q0 \n\t"
- "ROR r10, r10, #16 \n\t" // 12 12
- "VEOR q13, q7, q4 \n\t"
- "ROR r11, r11, #16 \n\t" // 13 13
- "VEOR q14, q11, q8 \n\t"
- "ADD r8, r8, r10 \n\t" // 8 8 12
- // rotation by 16 bits may be done by reversing the 16 bit elements in 32 bit words
- "VREV32.16 q3, q12 \n\t"
- "ADD r9, r9, r11 \n\t" // 9 9 13
- "VREV32.16 q7, q13 \n\t"
- "EOR r4, r4, r8 \n\t" // 4 4 8
- "VREV32.16 q11, q14 \n\t"
-
- "EOR r5, r5, r9 \n\t" // 5 5 9
- "VADD.I32 q2, q2, q3 \n\t"
- "ROR r4, r4, #20 \n\t" // 4 4
- "VADD.I32 q6, q6, q7 \n\t"
- "ROR r5, r5, #20 \n\t" // 5 5
- "VADD.I32 q10, q10, q11 \n\t"
- "ADD r0, r0, r4 \n\t" // 0 0 4
- "VEOR q12, q1, q2 \n\t"
- "ADD r1, r1, r5 \n\t" // 1 1 5
- "VEOR q13, q5, q6 \n\t"
- "EOR r10, r10, r0 \n\t" // 12 12 0
- "VEOR q14, q9, q10 \n\t"
- "EOR r11, r11, r1 \n\t" // 13 13 1
- // SIMD instructions don't support rotation so we have to cheat using shifts and a help register
- "VSHL.I32 q1, q12, #12 \n\t"
- "ROR r10, r10, #24 \n\t" // 12 12
- "VSHL.I32 q5, q13, #12 \n\t"
- "ROR r11, r11, #24 \n\t" // 13 13
- "VSHL.I32 q9, q14, #12 \n\t"
- "ADD r8, r8, r10 \n\t" // 8 8 12
- "VSRI.I32 q1, q12, #20 \n\t"
- "ADD r9, r9, r11 \n\t" // 9 9 13
- "VSRI.I32 q5, q13, #20 \n\t"
- "STR r11, %[x_13] \n\t"
- "VSRI.I32 q9, q14, #20 \n\t"
-
- "LDR r11, %[x_15] \n\t"
- "VADD.I32 q0, q0, q1 \n\t"
- "EOR r4, r4, r8 \n\t" // 4 4 8
- "VADD.I32 q4, q4, q5 \n\t"
- "STR r8, %[x_8] \n\t"
- "VADD.I32 q8, q8, q9 \n\t"
- "LDR r8, %[x_10] \n\t"
- "VEOR q12, q3, q0 \n\t"
- "EOR r5, r5, r9 \n\t" // 5 5 9
- "VEOR q13, q7, q4 \n\t"
- "STR r9, %[x_9] \n\t"
- "VEOR q14, q11, q8 \n\t"
- "LDR r9, %[x_11] \n\t"
- // SIMD instructions don't support rotation so we have to cheat using shifts and a help register
- "VSHL.I32 q3, q12, #8 \n\t"
- "ROR r4, r4, #25 \n\t" // 4 4
- "VSHL.I32 q7, q13, #8 \n\t"
- "ROR r5, r5, #25 \n\t" // 5 5
- "VSHL.I32 q11, q14, #8 \n\t"
-
- // r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12
- // 0 1 2 3 4 5 6 7 10 11 12 15 14
-
- // 2, 6, 10, 14
- // 3, 7, 11, 15
-
- "ADD r2, r2, r6 \n\t" // 2 2 6
- "VSRI.I32 q3, q12, #24 \n\t"
- "ADD r3, r3, r7 \n\t" // 3 3 7
- "VSRI.I32 q7, q13, #24 \n\t"
- "EOR r12, r12, r2 \n\t" // 14 14 2
- "VSRI.I32 q11, q14, #24 \n\t"
-
- "EOR r11, r11, r3 \n\t" // 15 15 3
- "VADD.I32 q2, q2, q3 \n\t"
- "ROR r12, r12, #16 \n\t" // 14 14
- "VADD.I32 q6, q6, q7 \n\t"
- "ROR r11, r11, #16 \n\t" // 15 15
- "VADD.I32 q10, q10, q11 \n\t"
- "ADD r8, r8, r12 \n\t" // 10 10 14
- "VEOR q12, q1, q2 \n\t"
- "ADD r9, r9, r11 \n\t" // 11 11 15
- "VEOR q13, q5, q6 \n\t"
- "EOR r6, r6, r8 \n\t" // 6 6 10
- "VEOR q14, q9, q10 \n\t"
- "EOR r7, r7, r9 \n\t" // 7 7 11
- // SIMD instructions don't support rotation so we have to cheat using shifts and a help register
- "VSHL.I32 q1, q12, #7 \n\t"
- "ROR r6, r6, #20 \n\t" // 6 6
- "VSHL.I32 q5, q13, #7 \n\t"
- "ROR r7, r7, #20 \n\t" // 7 7
- "VSHL.I32 q9, q14, #7 \n\t"
- "ADD r2, r2, r6 \n\t" // 2 2 6
- "VSRI.I32 q1, q12, #25 \n\t"
- "ADD r3, r3, r7 \n\t" // 3 3 7
- "VSRI.I32 q5, q13, #25 \n\t"
- "EOR r12, r12, r2 \n\t" // 14 14 2
- "VSRI.I32 q9, q14, #25 \n\t"
-
- // EVEN ROUND
-
- "EOR r11, r11, r3 \n\t" // 15 15 3
- "VEXT.8 q1, q1, q1, #4 \n\t" // permute elements left by one
- "ROR r12, r12, #24 \n\t" // 14 14
- "VEXT.8 q2, q2, q2, #8 \n\t" // permute elements left by two
- "ROR r11, r11, #24 \n\t" // 15 15
- "VEXT.8 q3, q3, q3, #12 \n\t" // permute elements left by three
-
- "ADD r8, r8, r12 \n\t" // 10 10 14
- "VEXT.8 q5, q5, q5, #4 \n\t" // permute elements left by one
- "ADD r9, r9, r11 \n\t" // 11 11 15
- "VEXT.8 q6, q6, q6, #8 \n\t" // permute elements left by two
- "EOR r6, r6, r8 \n\t" // 6 6 10
- "VEXT.8 q7, q7, q7, #12 \n\t" // permute elements left by three
-
- "EOR r7, r7, r9 \n\t" // 7 7 11
- "VEXT.8 q9, q9, q9, #4 \n\t" // permute elements left by one
- "ROR r6, r6, #25 \n\t" // 6 6
- "VEXT.8 q10, q10, q10, #8 \n\t" // permute elements left by two
- "ROR r7, r7, #25 \n\t" // 7 7
- "VEXT.8 q11, q11, q11, #12 \n\t" // permute elements left by three
-
- // 0, 5, 10, 15
- // 1, 6, 11, 12
-
- "ADD r0, r0, r5 \n\t" // 0 0 5
- "VADD.I32 q0, q0, q1 \n\t"
- "ADD r1, r1, r6 \n\t" // 1 1 6
- "VADD.I32 q4, q4, q5 \n\t"
- "EOR r11, r11, r0 \n\t" // 15 15 0
- "VADD.I32 q8, q8, q9 \n\t"
- "EOR r10, r10, r1 \n\t" // 12 12 1
- "VEOR q12, q3, q0 \n\t"
- "ROR r11, r11, #16 \n\t" // 15 15
- "VEOR q13, q7, q4 \n\t"
- "ROR r10, r10, #16 \n\t" // 12 12
- "VEOR q14, q11, q8 \n\t"
- "ADD r8, r8, r11 \n\t" // 10 10 15
- // rotation by 16 bits may be done by reversing the 16 bit elements in 32 bit words
- "VREV32.16 q3, q12 \n\t"
- "ADD r9, r9, r10 \n\t" // 11 11 12
- "VREV32.16 q7, q13 \n\t"
- "EOR r5, r5, r8 \n\t" // 5 5 10
- "VREV32.16 q11, q14 \n\t"
-
- "EOR r6, r6, r9 \n\t" // 6 6 11
- "VADD.I32 q2, q2, q3 \n\t"
- "ROR r5, r5, #20 \n\t" // 5 5
- "VADD.I32 q6, q6, q7 \n\t"
- "ROR r6, r6, #20 \n\t" // 6 6
- "VADD.I32 q10, q10, q11 \n\t"
- "ADD r0, r0, r5 \n\t" // 0 0 5
- "VEOR q12, q1, q2 \n\t"
- "ADD r1, r1, r6 \n\t" // 1 1 6
- "VEOR q13, q5, q6 \n\t"
- "EOR r11, r11, r0 \n\t" // 15 15 0
- "VEOR q14, q9, q10 \n\t"
- "EOR r10, r10, r1 \n\t" // 12 12 1
- // SIMD instructions don't support rotation so we have to cheat using shifts and a help register
- "VSHL.I32 q1, q12, #12 \n\t"
- "ROR r11, r11, #24 \n\t" // 15 15
- "VSHL.I32 q5, q13, #12 \n\t"
- "ROR r10, r10, #24 \n\t" // 12 12
- "VSHL.I32 q9, q14, #12 \n\t"
- "ADD r8, r8, r11 \n\t" // 10 10 15
- "VSRI.I32 q1, q12, #20 \n\t"
- "STR r11, %[x_15] \n\t"
- "VSRI.I32 q5, q13, #20 \n\t"
- "LDR r11, %[x_13] \n\t"
- "VSRI.I32 q9, q14, #20 \n\t"
-
- "ADD r9, r9, r10 \n\t" // 11 11 12
- "VADD.I32 q0, q0, q1 \n\t"
- "EOR r5, r5, r8 \n\t" // 5 5 10
- "VADD.I32 q4, q4, q5 \n\t"
- "STR r8, %[x_10] \n\t"
- "VADD.I32 q8, q8, q9 \n\t"
- "LDR r8, %[x_8] \n\t"
- "VEOR q12, q3, q0 \n\t"
- "EOR r6, r6, r9 \n\t" // 6 6 11
- "VEOR q13, q7, q4 \n\t"
- "STR r9, %[x_11] \n\t"
- "VEOR q14, q11, q8 \n\t"
- "LDR r9, %[x_9] \n\t"
- // SIMD instructions don't support rotation so we have to cheat using shifts and a help register
- "VSHL.I32 q3, q12, #8 \n\t"
- "ROR r5, r5, #25 \n\t" // 5 5
- "VSHL.I32 q7, q13, #8 \n\t"
- "ROR r6, r6, #25 \n\t" // 6 6
- "VSHL.I32 q11, q14, #8 \n\t"
-
- // r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12
- // 0 1 2 3 4 5 6 7 8 9 12 13 14
-
- // 2, 7, 8, 13
- // 3, 4, 9, 14
-
- "ADD r2, r2, r7 \n\t" // 2 2 7
- "VSRI.I32 q3, q12, #24 \n\t"
- "ADD r3, r3, r4 \n\t" // 3 3 4
- "VSRI.I32 q7, q13, #24 \n\t"
- "EOR r11, r11, r2 \n\t" // 13 13 2
- "VSRI.I32 q11, q14, #24 \n\t"
-
- "EOR r12, r12, r3 \n\t" // 14 14 3
- "VADD.I32 q2, q2, q3 \n\t"
- "ROR r11, r11, #16 \n\t" // 13 13
- "VADD.I32 q6, q6, q7 \n\t"
- "ROR r12, r12, #16 \n\t" // 14 14
- "VADD.I32 q10, q10, q11 \n\t"
- "ADD r8, r8, r11 \n\t" // 8 8 13
- "VEOR q12, q1, q2 \n\t"
- "ADD r9, r9, r12 \n\t" // 9 9 14
- "VEOR q13, q5, q6 \n\t"
- "EOR r7, r7, r8 \n\t" // 7 7 8
- "VEOR q14, q9, q10 \n\t"
- "EOR r4, r4, r9 \n\t" // 4 4 9
- // SIMD instructions don't support rotation so we have to cheat using shifts and a help register
- "VSHL.I32 q1, q12, #7 \n\t"
- "ROR r7, r7, #20 \n\t" // 7 7
- "VSHL.I32 q5, q13, #7 \n\t"
- "ROR r4, r4, #20 \n\t" // 4 4
- "VSHL.I32 q9, q14, #7 \n\t"
- "ADD r2, r2, r7 \n\t" // 2 2 7
- "VSRI.I32 q1, q12, #25 \n\t"
- "ADD r3, r3, r4 \n\t" // 3 3 4
- "VSRI.I32 q5, q13, #25 \n\t"
- "EOR r11, r11, r2 \n\t" // 13 13 2
- "VSRI.I32 q9, q14, #25 \n\t"
-
- "EOR r12, r12, r3 \n\t" // 14 14 3
- "VEXT.8 q1, q1, q1, #12 \n\t" // permute elements left by three
- "ROR r11, r11, #24 \n\t" // 13 13
- "VEXT.8 q2, q2, q2, #8 \n\t" // permute elements left by two
- "ROR r12, r12, #24 \n\t" // 14 14
- "VEXT.8 q3, q3, q3, #4 \n\t" // permute elements left by one
-
- "ADD r8, r8, r11 \n\t" // 8 8 13
- "VEXT.8 q5, q5, q5, #12 \n\t" // permute elements left by three
- "ADD r9, r9, r12 \n\t" // 9 9 14
- "VEXT.8 q6, q6, q6, #8 \n\t" // permute elements left by two
- "EOR r7, r7, r8 \n\t" // 7 7 8
- "VEXT.8 q7, q7, q7, #4 \n\t" // permute elements left by one
-
- "EOR r4, r4, r9 \n\t" // 4 4 9
- "VEXT.8 q9, q9, q9, #12 \n\t" // permute elements left by three
- "ROR r7, r7, #25 \n\t" // 7 7
- "VEXT.8 q10, q10, q10, #8 \n\t" // permute elements left by two
- "ROR r4, r4, #25 \n\t" // 4 4
- "VEXT.8 q11, q11, q11, #4 \n\t" // permute elements left by one
-
- "BNE L_chacha20_arm32_256_loop_%= \n\t"
-
- "LDR r14, %[x_addr] \n\t" // load address of x to r14
- // r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12
- // 0 1 2 3 4 5 6 7 8 9 12 13 14
- "ADD r10, r10, #3 \n\t" // add three here to make later NEON easier
- "STM r14, { r0-r9 } \n\t"
- "STRD r10, r11, [r14, #4*12] \n\t"
- "LDR r9, %[input] \n\t" // load input address
- "STR r12, [r14, #4*14] \n\t"
- "LDR r10, %[c] \n\t" // load c address
-
- "VLDM r9, { q12-q15 } \n\t"
- "LDR r12, %[m] \n\t" // load m address
-
- "VADD.I32 q0, q0, q12 \n\t"
- "VADD.I32 q1, q1, q13 \n\t"
- "VADD.I32 q2, q2, q14 \n\t"
- "VADD.I32 q3, q3, q15 \n\t"
-
- "VADD.I32 q4, q4, q12 \n\t"
- "VADD.I32 q5, q5, q13 \n\t"
- "VADD.I32 q6, q6, q14 \n\t"
- "VADD.I32 q7, q7, q15 \n\t"
-
- "MOV r11, #1 \n\t"
-
- "VADD.I32 q8, q8, q12 \n\t"
- "VMOV.I32 q12, #0 \n\t"
- "VADD.I32 q9, q9, q13 \n\t"
- "VMOV.I32 d24[0], r11 \n\t"
- "VADD.I32 q10, q10, q14 \n\t"
- "VADD.I32 q11, q11, q15 \n\t"
-
- "VADD.I32 q11, q11, q12 \n\t" // add one to counter
- "VADD.I32 q7, q7, q12 \n\t" // add one to counter
- "VADD.I32 q11, q11, q12 \n\t" // add one to counter
-
- "VLDM r12!, { q12-q15 } \n\t" // load m
- "VEOR q0, q0, q12 \n\t"
- "VEOR q1, q1, q13 \n\t"
- "VEOR q2, q2, q14 \n\t"
- "VEOR q3, q3, q15 \n\t"
- "VSTM r10!, { q0-q3 } \n\t" // store to c
-
- "VLDM r14, { q0-q3 } \n\t " // load final block from x
-
- "VLDM r12!, { q12-q15 } \n\t" // load m
- "VEOR q4, q4, q12 \n\t"
- "VEOR q5, q5, q13 \n\t"
- "VEOR q6, q6, q14 \n\t"
- "VEOR q7, q7, q15 \n\t"
- "VSTM r10!, { q4-q7 } \n\t" // store to c
-
- "VLDM r9, { q4-q7 } \n\t" // load input
-
- "VLDM r12!, { q12-q15 } \n\t" // load m
- "VEOR q8, q8, q12 \n\t"
- "VEOR q9, q9, q13 \n\t"
- "VEOR q10, q10, q14 \n\t"
- "VEOR q11, q11, q15 \n\t"
- "VSTM r10!, { q8-q11 } \n\t" // store to c
-
- "VLDM r12!, { q12-q15 } \n\t" // load m
- "VADD.I32 q0, q0, q4 \n\t"
- "VADD.I32 q1, q1, q5 \n\t"
- "VADD.I32 q2, q2, q6 \n\t"
- "VADD.I32 q3, q3, q7 \n\t" // three was added earlier
- "VEOR q0, q0, q12 \n\t"
- "VEOR q1, q1, q13 \n\t"
- "VEOR q2, q2, q14 \n\t"
- "VEOR q3, q3, q15 \n\t"
- "VSTM r10!, { q0-q3 } \n\t" // store to c
-
- : [c] "+m" (c),
- [x_0] "=m" (x),
- [x_8] "=m" (x[8]),
- [x_9] "=m" (x[9]),
- [x_10] "=m" (x[10]),
- [x_11] "=m" (x[11]),
- [x_13] "=m" (x[13]),
- [x_15] "=m" (x[15])
- : [rounds] "I" (ROUNDS/2), [input] "m" (input),
- [chacha_chunk_bytes] "I" (CHACHA_CHUNK_BYTES),
- [m] "m" (m), [x_addr] "m" (x_addr)
- : "memory", "cc",
- "r0", "r1", "r2", "r3",
- "r4", "r5", "r6", "r7",
- "r8", "r9", "r10", "r11", "r12", "r14",
- "q0", "q1", "q2", "q3", "q4",
- "q5", "q6", "q7", "q8", "q9",
- "q10", "q11", "q12", "q13", "q14", "q15"
- );
-
-#endif /* __aarch64__ */
- return CHACHA_CHUNK_BYTES * 4;
-}
-
-
-static WC_INLINE int wc_Chacha_encrypt_128(const word32 input[CHACHA_CHUNK_WORDS], const byte* m, byte* c)
-{
-#ifdef CHACHA_TEST
- printf("Entering wc_Chacha_encrypt_128\n");
-#endif /*CHACHA_TEST */
-
-#ifdef __aarch64__
- __asm__ __volatile__ (
- /* Load incrementer register to modify counter */
- "LD1 {v22.16B}, [%[L_chacha20_neon_inc_first_word]] \n\t"
- /* Load index look-up for rotating left 8 bits */
- "LD1 {v23.16B}, [%[L_chacha20_neon_rol8]] \n\t"
- /* Load state to encrypt */
- "LD1 {v18.4S-v21.4S}, [%[input]] \n\t"
- /* Load message */
- "LD1 {v14.4S-v17.4S}, [%[m]], #64 \n\t"
- /* Move state into vector registers (x3) */
- "MOV v0.16B, v18.16B \n\t"
- "MOV v1.16B, v19.16B \n\t"
- "MOV v2.16B, v20.16B \n\t"
- "MOV v3.16B, v21.16B \n\t"
- "MOV v4.16B, v18.16B \n\t"
- "MOV v5.16B, v19.16B \n\t"
- "MOV v6.16B, v20.16B \n\t"
- "MOV v7.16B, v21.16B \n\t"
- /* Add counter word */
- "ADD v7.4S, v7.4S, v22.4S \n\t"
- /* Set number of odd+even rounds to perform */
- "MOV w3, #10 \n\t"
- "\n"
- "L_chacha20_arm64_128_loop_%=: \n\t"
- "SUBS w3, w3, #1 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "ADD v4.4S, v4.4S, v5.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "EOR v7.16B, v7.16B, v4.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- "REV32 v7.8H, v7.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "ADD v6.4S, v6.4S, v7.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "EOR v13.16B, v5.16B, v6.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SHL v5.4S, v13.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- "SRI v5.4S, v13.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "ADD v4.4S, v4.4S, v5.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "EOR v7.16B, v7.16B, v4.16B \n\t"
- "TBL v3.16B, { v3.16B }, v23.16B \n\t"
- "TBL v7.16B, { v7.16B }, v23.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "ADD v6.4S, v6.4S, v7.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "EOR v13.16B, v5.16B, v6.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SHL v5.4S, v13.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "SRI v5.4S, v13.4S, #25 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #4 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #12 \n\t"
- "EXT v5.16B, v5.16B, v5.16B, #4 \n\t"
- "EXT v6.16B, v6.16B, v6.16B, #8 \n\t"
- "EXT v7.16B, v7.16B, v7.16B, #12 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "ADD v4.4S, v4.4S, v5.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "EOR v7.16B, v7.16B, v4.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- "REV32 v7.8H, v7.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "ADD v6.4S, v6.4S, v7.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "EOR v13.16B, v5.16B, v6.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SHL v5.4S, v13.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- "SRI v5.4S, v13.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "ADD v4.4S, v4.4S, v5.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "EOR v7.16B, v7.16B, v4.16B \n\t"
- "TBL v3.16B, { v3.16B }, v23.16B \n\t"
- "TBL v7.16B, { v7.16B }, v23.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "ADD v6.4S, v6.4S, v7.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "EOR v13.16B, v5.16B, v6.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SHL v5.4S, v13.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "SRI v5.4S, v13.4S, #25 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #12 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #4 \n\t"
- "EXT v5.16B, v5.16B, v5.16B, #12 \n\t"
- "EXT v6.16B, v6.16B, v6.16B, #8 \n\t"
- "EXT v7.16B, v7.16B, v7.16B, #4 \n\t"
- "BNE L_chacha20_arm64_128_loop_%= \n\t"
- /* Add back state, XOR in message and store (load next block) */
- "ADD v0.4S, v0.4S, v18.4S \n\t"
- "ADD v1.4S, v1.4S, v19.4S \n\t"
- "ADD v2.4S, v2.4S, v20.4S \n\t"
- "ADD v3.4S, v3.4S, v21.4S \n\t"
- "EOR v0.16B, v0.16B, v14.16B \n\t"
- "EOR v1.16B, v1.16B, v15.16B \n\t"
- "EOR v2.16B, v2.16B, v16.16B \n\t"
- "EOR v3.16B, v3.16B, v17.16B \n\t"
- "LD1 {v14.4S-v17.4S}, [%[m]], #64 \n\t"
- "ST1 {v0.4S-v3.4S}, [%[c]], #64 \n\t"
- "ADD v21.4S, v21.4S, v22.4S \n\t"
- "ADD v4.4S, v4.4S, v18.4S \n\t"
- "ADD v5.4S, v5.4S, v19.4S \n\t"
- "ADD v6.4S, v6.4S, v20.4S \n\t"
- "ADD v7.4S, v7.4S, v21.4S \n\t"
- "EOR v4.16B, v4.16B, v14.16B \n\t"
- "EOR v5.16B, v5.16B, v15.16B \n\t"
- "EOR v6.16B, v6.16B, v16.16B \n\t"
- "EOR v7.16B, v7.16B, v17.16B \n\t"
- "ST1 {v4.4S-v7.4S}, [%[c]], #64 \n\t"
- : [input] "+r" (input), [m] "+r" (m), [c] "+r" (c)
- : [L_chacha20_neon_rol8] "r" (L_chacha20_neon_rol8),
- [L_chacha20_neon_inc_first_word] "r" (L_chacha20_neon_inc_first_word)
- : "memory", "x3", "v0", "v1", "v2", "v3", "v4", "v5", "v6",
- "v7", "v8", "v9", "v10", "v11", "v12", "v13", "v14", "v15",
- "v16", "v17", "v18", "v19", "v20", "v21"
- );
-#else
- __asm__ __volatile__ (
- "MOV r11, %[rounds] \n\t"
- "MOV r12, #1 \n\t"
- "VLDM %[input], { q0-q3 } \n\t"
- "VMOV.I32 q8, #0 \n\t"
- "VMOV q4, q0 \n\t"
- "VMOV.I32 d16[0], r12 \n\t"
- "VMOV q5, q1 \n\t"
- "VMOV q6, q2 \n\t"
- "VADD.I32 q7, q3, q8 \n\t" // add one to counter
-
- // store input
- "VMOV q10, q0 \n\t"
- "VMOV q11, q1 \n\t"
- "VMOV q12, q2 \n\t"
- "VMOV q13, q3 \n\t"
- "\n"
- "L_chacha20_arm32_128_loop_%=: \n\t"
- "SUBS r11, r11, #1 \n\t"
-
- // ODD ROUND
- "VADD.I32 q0, q0, q1 \n\t"
- "VADD.I32 q4, q4, q5 \n\t"
- "VEOR q8, q3, q0 \n\t"
- "VEOR q9, q7, q4 \n\t"
- // rotation by 16 bits may be done by reversing the 16 bit elements in 32 bit words
- "VREV32.16 q3, q8 \n\t"
- "VREV32.16 q7, q9 \n\t"
-
- "VADD.I32 q2, q2, q3 \n\t"
- "VADD.I32 q6, q6, q7 \n\t"
- "VEOR q8, q1, q2 \n\t"
- "VEOR q9, q5, q6 \n\t"
- // SIMD instructions don't support rotation so we have to cheat using shifts and a help register
- "VSHL.I32 q1, q8, #12 \n\t"
- "VSHL.I32 q5, q9, #12 \n\t"
- "VSRI.I32 q1, q8, #20 \n\t"
- "VSRI.I32 q5, q9, #20 \n\t"
-
- "VADD.I32 q0, q0, q1 \n\t"
- "VADD.I32 q4, q4, q5 \n\t"
- "VEOR q8, q3, q0 \n\t"
- "VEOR q9, q7, q4 \n\t"
- // SIMD instructions don't support rotation so we have to cheat using shifts and a help register
- "VSHL.I32 q3, q8, #8 \n\t"
- "VSHL.I32 q7, q9, #8 \n\t"
- "VSRI.I32 q3, q8, #24 \n\t"
- "VSRI.I32 q7, q9, #24 \n\t"
-
- "VADD.I32 q2, q2, q3 \n\t"
- "VADD.I32 q6, q6, q7 \n\t"
- "VEOR q8, q1, q2 \n\t"
- "VEOR q9, q5, q6 \n\t"
- // SIMD instructions don't support rotation so we have to cheat using shifts and a help register
- "VSHL.I32 q1, q8, #7 \n\t"
- "VSHL.I32 q5, q9, #7 \n\t"
- "VSRI.I32 q1, q8, #25 \n\t"
- "VSRI.I32 q5, q9, #25 \n\t"
-
- // EVEN ROUND
-
- "VEXT.8 q1, q1, q1, #4 \n\t" // permute elements left by one
- "VEXT.8 q2, q2, q2, #8 \n\t" // permute elements left by two
- "VEXT.8 q3, q3, q3, #12 \n\t" // permute elements left by three
-
- "VEXT.8 q5, q5, q5, #4 \n\t" // permute elements left by one
- "VEXT.8 q6, q6, q6, #8 \n\t" // permute elements left by two
- "VEXT.8 q7, q7, q7, #12 \n\t" // permute elements left by three
-
- "VADD.I32 q0, q0, q1 \n\t"
- "VADD.I32 q4, q4, q5 \n\t"
- "VEOR q8, q3, q0 \n\t"
- "VEOR q9, q7, q4 \n\t"
- // rotation by 16 bits may be done by reversing the 16 bit elements in 32 bit words
- "VREV32.16 q3, q8 \n\t"
- "VREV32.16 q7, q9 \n\t"
-
- "VADD.I32 q2, q2, q3 \n\t"
- "VADD.I32 q6, q6, q7 \n\t"
- "VEOR q8, q1, q2 \n\t"
- "VEOR q9, q5, q6 \n\t"
- // SIMD instructions don't support rotation so we have to cheat using shifts and a help register
- "VSHL.I32 q1, q8, #12 \n\t"
- "VSHL.I32 q5, q9, #12 \n\t"
- "VSRI.I32 q1, q8, #20 \n\t"
- "VSRI.I32 q5, q9, #20 \n\t"
-
- "VADD.I32 q0, q0, q1 \n\t"
- "VADD.I32 q4, q4, q5 \n\t"
- "VEOR q8, q3, q0 \n\t"
- "VEOR q9, q7, q4 \n\t"
- // SIMD instructions don't support rotation so we have to cheat using shifts and a help register
- "VSHL.I32 q3, q8, #8 \n\t"
- "VSHL.I32 q7, q9, #8 \n\t"
- "VSRI.I32 q3, q8, #24 \n\t"
- "VSRI.I32 q7, q9, #24 \n\t"
-
- "VADD.I32 q2, q2, q3 \n\t"
- "VADD.I32 q6, q6, q7 \n\t"
- "VEOR q8, q1, q2 \n\t"
- "VEOR q9, q5, q6 \n\t"
- // SIMD instructions don't support rotation so we have to cheat using shifts and a help register
- "VSHL.I32 q1, q8, #7 \n\t"
- "VSHL.I32 q5, q9, #7 \n\t"
- "VSRI.I32 q1, q8, #25 \n\t"
- "VSRI.I32 q5, q9, #25 \n\t"
-
- "VEXT.8 q1, q1, q1, #12 \n\t" // permute elements left by three
- "VEXT.8 q2, q2, q2, #8 \n\t" // permute elements left by two
- "VEXT.8 q3, q3, q3, #4 \n\t" // permute elements left by one
-
- "VEXT.8 q5, q5, q5, #12 \n\t" // permute elements left by three
- "VEXT.8 q6, q6, q6, #8 \n\t" // permute elements left by two
- "VEXT.8 q7, q7, q7, #4 \n\t" // permute elements left by one
-
- "BNE L_chacha20_arm32_128_loop_%= \n\t"
-
- "VMOV.I32 q8, #0 \n\t"
- "VADD.I32 q0, q0, q10 \n\t"
- "VADD.I32 q1, q1, q11 \n\t"
- "VMOV.I32 d16[0], r12 \n\t"
- "VADD.I32 q2, q2, q12 \n\t"
- "VADD.I32 q3, q3, q13 \n\t"
-
- "VADD.I32 q13, q13, q8 \n\t" // add one to counter
-
- "VADD.I32 q4, q4, q10 \n\t"
- "VADD.I32 q5, q5, q11 \n\t"
- "VADD.I32 q6, q6, q12 \n\t"
- "VADD.I32 q7, q7, q13 \n\t"
-
- "VLDM %[m], { q8-q15 } \n\t"
- "VEOR q0, q0, q8 \n\t"
- "VEOR q1, q1, q9 \n\t"
- "VEOR q2, q2, q10 \n\t"
- "VEOR q3, q3, q11 \n\t"
- "VEOR q4, q4, q12 \n\t"
- "VEOR q5, q5, q13 \n\t"
- "VEOR q6, q6, q14 \n\t"
- "VEOR q7, q7, q15 \n\t"
- "VSTM %[c], { q0-q7 } \n\t"
-
- : [c] "+r" (c), [m] "+r" (m)
- : [rounds] "I" (ROUNDS/2), [input] "r" (input),
- [chacha_chunk_bytes] "I" (CHACHA_CHUNK_BYTES)
- : "memory", "cc",
- "r11", "r12",
- "q0", "q1", "q2", "q3", "q4",
- "q5", "q6", "q7", "q8", "q9",
- "q10", "q11", "q12", "q13", "q14", "q15"
- );
-#endif /* __aarch64__ */
- return CHACHA_CHUNK_BYTES * 2;
-}
-
-static WC_INLINE void wc_Chacha_encrypt_64(const word32* input, const byte* m,
- byte* c, word32 bytes)
-{
-#ifdef CHACHA_TEST
- printf("Entering wc_Chacha_encrypt_64 with %d bytes\n", bytes);
-#endif /*CHACHA_TEST */
-
-#ifdef __aarch64__
- word64 bytes64 = (word64) bytes;
- __asm__ __volatile__ (
- /* Load index look-up for rotating left 8 bits */
- "LD1 {v13.16B}, [%[L_chacha20_neon_rol8]] \n\t"
- "LD1 {v14.4S}, [%[L_chacha20_neon_inc_first_word]] \n\t"
- /* Load state to encrypt */
- "LD1 {v8.4S-v11.4S}, [%[input]] \n\t"
- "\n"
- "L_chacha20_arm64_64_loop_%=: \n\t"
- /* Move state into vector registers (x3) */
- "MOV v0.16B, v8.16B \n\t"
- "MOV v1.16B, v9.16B \n\t"
- "MOV v2.16B, v10.16B \n\t"
- "MOV v3.16B, v11.16B \n\t"
- /* Add counter word */
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #12 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #4 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #4 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #12 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #12 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #4 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #4 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #12 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #12 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #4 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #4 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #12 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #12 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #4 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #4 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #12 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #12 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #4 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #4 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #12 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #12 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #4 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #4 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #12 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #12 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #4 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #4 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #12 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #12 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #4 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #4 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #12 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #12 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #4 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #4 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #12 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #12 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #4 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "REV32 v3.8H, v3.8H \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #12 \n\t"
- "SRI v1.4S, v12.4S, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "ADD v0.4S, v0.4S, v1.4S \n\t"
- "EOR v3.16B, v3.16B, v0.16B \n\t"
- "TBL v3.16B, { v3.16B }, v13.16B \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "ADD v2.4S, v2.4S, v3.4S \n\t"
- "EOR v12.16B, v1.16B, v2.16B \n\t"
- "SHL v1.4S, v12.4S, #7 \n\t"
- "SRI v1.4S, v12.4S, #25 \n\t"
- "EXT v3.16B, v3.16B, v3.16B, #4 \n\t"
- "EXT v1.16B, v1.16B, v1.16B, #12 \n\t"
- "EXT v2.16B, v2.16B, v2.16B, #8 \n\t"
- /* Add back state */
- "ADD v0.4S, v0.4S, v8.4S \n\t"
- "ADD v1.4S, v1.4S, v9.4S \n\t"
- "ADD v2.4S, v2.4S, v10.4S \n\t"
- "ADD v3.4S, v3.4S, v11.4S \n\t"
- "CMP %[bytes], #64 \n\t"
- "BLT L_chacha20_arm64_64_lt_64_%= \n\t"
- "LD1 {v4.4S-v7.4S}, [%[m]], #64 \n\t"
- "EOR v4.16B, v4.16B, v0.16B \n\t"
- "EOR v5.16B, v5.16B, v1.16B \n\t"
- "EOR v6.16B, v6.16B, v2.16B \n\t"
- "EOR v7.16B, v7.16B, v3.16B \n\t"
- "ST1 {v4.4S-v7.4S}, [%[c]], #64 \n\t"
- "SUBS %[bytes], %[bytes], #64 \n\t"
- "ADD v11.4S, v11.4S, v14.4S \n\t"
- "BNE L_chacha20_arm64_64_loop_%= \n\t"
- "B L_chacha20_arm64_64_done_%= \n\t"
- "\n"
- "L_chacha20_arm64_64_lt_64_%=: \n\t"
- "CMP %[bytes], #32 \n\t"
- "BLT L_chacha20_arm64_64_lt_32_%= \n\t"
- "LD1 {v4.4S, v5.4S}, [%[m]], #32 \n\t"
- "EOR v4.16B, v4.16B, v0.16B \n\t"
- "EOR v5.16B, v5.16B, v1.16B \n\t"
- "ST1 {v4.4S, v5.4S}, [%[c]], #32 \n\t"
- "SUBS %[bytes], %[bytes], #32 \n\t"
- "MOV v0.16B, v2.16B \n\t"
- "MOV v1.16B, v3.16B \n\t"
- "BEQ L_chacha20_arm64_64_done_%= \n\t"
- "\n"
- "L_chacha20_arm64_64_lt_32_%=: \n\t"
- "CMP %[bytes], #16 \n\t"
- "BLT L_chacha20_arm64_64_lt_16_%= \n\t"
- "LD1 {v4.4S}, [%[m]], #16 \n\t"
- "EOR v4.16B, v4.16B, v0.16B \n\t"
- "ST1 {v4.4S}, [%[c]], #16 \n\t"
- "SUBS %[bytes], %[bytes], #16 \n\t"
- "MOV v0.16B, v1.16B \n\t"
- "BEQ L_chacha20_arm64_64_done_%= \n\t"
- "\n"
- "L_chacha20_arm64_64_lt_16_%=: \n\t"
- "CMP %[bytes], #8 \n\t"
- "BLT L_chacha20_arm64_64_lt_8_%= \n\t"
- "LD1 {v4.2S}, [%[m]], #8 \n\t"
- "EOR v4.8B, v4.8B, v0.8B \n\t"
- "ST1 {v4.2S}, [%[c]], #8 \n\t"
- "SUBS %[bytes], %[bytes], #8 \n\t"
- "MOV v0.D[0], v0.D[1] \n\t"
- "BEQ L_chacha20_arm64_64_done_%= \n\t"
- "\n"
- "L_chacha20_arm64_64_lt_8_%=: \n\t"
- "MOV x4, v0.D[0] \n\t"
- "LSL x5, %[bytes], #3 \n\t"
- "\n"
- "L_chacha20_arm64_64_loop_lt_8_%=: \n\t"
- "LDRB w6, [%[m], %[bytes]] \n\t"
- "ROR x7, x4, x5 \n\t"
- "EOR w6, w6, w7 \n\t"
- "STRB w6, [%[c], %[bytes]] \n\t"
- "SUBS %[bytes], %[bytes], #1 \n\t"
- "SUB x5, x5, #8 \n\t"
- "BGE L_chacha20_arm64_64_loop_lt_8_%= \n\t"
- "\n"
- "L_chacha20_arm64_64_done_%=: \n\t"
- : [input] "+r" (input), [m] "+r" (m), [c] "+r" (c), [bytes] "+r" (bytes64)
- : [L_chacha20_neon_rol8] "r" (L_chacha20_neon_rol8),
- [L_chacha20_neon_inc_first_word] "r" (L_chacha20_neon_inc_first_word)
- : "memory", "x4", "x5", "x6", "x7", "v0", "v1", "v2", "v3",
- "v4", "v5", "v6", "v7", "v8", "v9", "v10", "v11"
- );
-#else
- __asm__ __volatile__ (
- /* Get the input state */
- "VLDM %[input], { q8-q11 } \n\t"
- /* Get the incrementer register */
- "VLDM %[L_chacha20_neon_inc_first_word], { q14 } \n\t"
- "\n"
- "L_chacha20_arm32_64_outer_loop_%=: \n\t"
- /* Copy over the input state */
- "VMOV q0, q8 \n\t"
- "VMOV q1, q9 \n\t"
- "VMOV q2, q10 \n\t"
- "VMOV q3, q11 \n\t"
- /* Compute quarter rounds */
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Odd->Even */
- "VEXT.8 q1, q1, q1, #4 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #12 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Even->Odd */
- "VEXT.8 q1, q1, q1, #12 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #4 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Odd->Even */
- "VEXT.8 q1, q1, q1, #4 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #12 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Even->Odd */
- "VEXT.8 q1, q1, q1, #12 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #4 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Odd->Even */
- "VEXT.8 q1, q1, q1, #4 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #12 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Even->Odd */
- "VEXT.8 q1, q1, q1, #12 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #4 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Odd->Even */
- "VEXT.8 q1, q1, q1, #4 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #12 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Even->Odd */
- "VEXT.8 q1, q1, q1, #12 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #4 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Odd->Even */
- "VEXT.8 q1, q1, q1, #4 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #12 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Even->Odd */
- "VEXT.8 q1, q1, q1, #12 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #4 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Odd->Even */
- "VEXT.8 q1, q1, q1, #4 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #12 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Even->Odd */
- "VEXT.8 q1, q1, q1, #12 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #4 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Odd->Even */
- "VEXT.8 q1, q1, q1, #4 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #12 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Even->Odd */
- "VEXT.8 q1, q1, q1, #12 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #4 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Odd->Even */
- "VEXT.8 q1, q1, q1, #4 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #12 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Even->Odd */
- "VEXT.8 q1, q1, q1, #12 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #4 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Odd->Even */
- "VEXT.8 q1, q1, q1, #4 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #12 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Even->Odd */
- "VEXT.8 q1, q1, q1, #12 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #4 \n\t"
- /* Odd Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Odd->Even */
- "VEXT.8 q1, q1, q1, #4 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #12 \n\t"
- /* Even Round */
- /* a += b; d ^= a; d <<<= 16; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VREV32.16 q3, q4 \n\t"
- /* c += d; b ^= c; b <<<= 12; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #12 \n\t"
- "VSRI.I32 q1, q4, #20 \n\t"
- /* a += b; d ^= a; d <<<= 8; */
- "VADD.I32 q0, q0, q1 \n\t"
- "VEOR q4, q3, q0 \n\t"
- "VSHL.I32 q3, q4, #8 \n\t"
- "VSRI.I32 q3, q4, #24 \n\t"
- /* c += d; b ^= c; b <<<= 7; */
- "VADD.I32 q2, q2, q3 \n\t"
- "VEOR q4, q1, q2 \n\t"
- "VSHL.I32 q1, q4, #7 \n\t"
- "VSRI.I32 q1, q4, #25 \n\t"
- /* Permute Even->Odd */
- "VEXT.8 q1, q1, q1, #12 \n\t"
- "VEXT.8 q2, q2, q2, #8 \n\t"
- "VEXT.8 q3, q3, q3, #4 \n\t"
- /* Add back state */
- "VADD.I32 q0, q0, q8 \n\t"
- "VADD.I32 q1, q1, q9 \n\t"
- "VADD.I32 q2, q2, q10 \n\t"
- "VADD.I32 q3, q3, q11 \n\t"
- "CMP %[bytes], #64 \n\t"
- "BLT L_chacha20_arm32_64_lt_64_%= \n\t"
- /* XOR full 64 byte block */
- "VLDM %[m], { q4-q7 } \n\t"
- "ADD %[m], %[m], #64 \n\t"
- "VEOR q0, q0, q4 \n\t"
- "VEOR q1, q1, q5 \n\t"
- "VEOR q2, q2, q6 \n\t"
- "VEOR q3, q3, q7 \n\t"
- "VSTM %[c], { q0-q3 } \n\t"
- "ADD %[c], %[c], #64 \n\t"
- "SUBS %[bytes], %[bytes], #64 \n\t"
- "VADD.I32 q11, q11, q14 \n\t"
- "BNE L_chacha20_arm32_64_outer_loop_%= \n\t"
- "B L_chacha20_arm32_64_done_%= \n\t"
- "\n"
- "L_chacha20_arm32_64_lt_64_%=: \n\t"
- /* XOR 32 bytes */
- "CMP %[bytes], #32 \n\t"
- "BLT L_chacha20_arm32_64_lt_32_%= \n\t"
- "VLDM %[m], { q4-q5 } \n\t"
- "ADD %[m], %[m], #32 \n\t"
- "VEOR q4, q4, q0 \n\t"
- "VEOR q5, q5, q1 \n\t"
- "VSTM %[c], { q4-q5 } \n\t"
- "ADD %[c], %[c], #32 \n\t"
- "SUBS %[bytes], %[bytes], #32 \n\t"
- "VMOV q0, q2 \n\t"
- "VMOV q1, q3 \n\t"
- "BEQ L_chacha20_arm32_64_done_%= \n\t"
- "\n"
- "L_chacha20_arm32_64_lt_32_%=: \n\t"
- /* XOR 16 bytes */
- "CMP %[bytes], #16 \n\t"
- "BLT L_chacha20_arm32_64_lt_16_%= \n\t"
- "VLDM %[m], { q4 } \n\t"
- "ADD %[m], %[m], #16 \n\t"
- "VEOR q4, q4, q0 \n\t"
- "VSTM %[c], { q4 } \n\t"
- "ADD %[c], %[c], #16 \n\t"
- "SUBS %[bytes], %[bytes], #16 \n\t"
- "VMOV q0, q1 \n\t"
- "BEQ L_chacha20_arm32_64_done_%= \n\t"
- "\n"
- "L_chacha20_arm32_64_lt_16_%=: \n\t"
- /* XOR 8 bytes */
- "CMP %[bytes], #8 \n\t"
- "BLT L_chacha20_arm32_64_lt_8_%= \n\t"
- "VLDR d8, [%[m], #0] \n\t"
- "ADD %[m], %[m], #8 \n\t"
- "VEOR d8, d8, d0 \n\t"
- "VSTR d8, [%[c], #0] \n\t"
- "ADD %[c], %[c], #8 \n\t"
- "SUBS %[bytes], %[bytes], #8 \n\t"
- "VMOV d0, d1 \n\t"
- "BEQ L_chacha20_arm32_64_done_%= \n\t"
- "\n"
- "L_chacha20_arm32_64_lt_8_%=: \n\t"
- /* XOR 4 bytes */
- "CMP %[bytes], #4 \n\t"
- "BLT L_chacha20_arm32_64_lt_4_%= \n\t"
- "LDR r12, [%[m]], #4 \n\t"
- "VMOV r14, d0[0] \n\t"
- "EOR r12, r12, r14 \n\t"
- "STR r12, [%[c]], #4 \n\t"
- "SUBS %[bytes], %[bytes], #4 \n\t"
- "VTRN.32 d0, d0 \n\t"
- "BEQ L_chacha20_arm32_64_done_%= \n\t"
- "\n"
- "L_chacha20_arm32_64_lt_4_%=: \n\t"
- /* XOR remaining bytes */
- "VMOV r14, d0[0] \n\t"
- "\n"
- "L_chacha20_arm32_64_lt_4_loop_%=: \n\t"
- "LDRB r12, [%[m]], #1 \n\t"
- "EOR r12, r12, r14 \n\t"
- "STRB r12, [%[c]], #1 \n\t"
- "SUBS %[bytes], %[bytes], #1 \n\t"
- "LSR r14, r14, #8 \n\t"
- "BGT L_chacha20_arm32_64_lt_4_loop_%= \n\t"
- "\n"
- "L_chacha20_arm32_64_done_%=: \n\t"
- : [input] "+r" (input), [m] "+r" (m), [c] "+r" (c), [bytes] "+r" (bytes)
- : [L_chacha20_neon_inc_first_word] "r" (L_chacha20_neon_inc_first_word)
- : "memory", "cc",
- "q0", "q1", "q2", "q3", "q4", "q5", "q6", "q7", "q8", "q9", "q10", "q11", "q14", "r12", "r14"
- );
-#endif /* __aarch64__ */
-}
-
-/**
- * Encrypt a stream of bytes
- */
-static void wc_Chacha_encrypt_bytes(ChaCha* ctx, const byte* m, byte* c,
- word32 bytes)
-{
- int processed;
-
-#ifdef __aarch64__
- if (bytes >= CHACHA_CHUNK_BYTES * 5) {
- processed = (bytes / (CHACHA_CHUNK_BYTES * 5)) * CHACHA_CHUNK_BYTES * 5;
- wc_Chacha_encrypt_320(ctx->X, m, c, processed);
-
- bytes -= processed;
- c += processed;
- m += processed;
- ctx->X[CHACHA_IV_BYTES] = PLUS(ctx->X[CHACHA_IV_BYTES], processed / CHACHA_CHUNK_BYTES);
- }
- if (bytes >= CHACHA_CHUNK_BYTES * 4) {
-#else
- while (bytes >= CHACHA_CHUNK_BYTES * 4) {
-#endif /*__aarch64__ */
- processed = wc_Chacha_encrypt_256(ctx->X, m, c);
-
- bytes -= processed;
- c += processed;
- m += processed;
- ctx->X[CHACHA_IV_BYTES] = PLUS(ctx->X[CHACHA_IV_BYTES], processed / CHACHA_CHUNK_BYTES);
- }
- if (bytes >= CHACHA_CHUNK_BYTES * 2) {
- processed = wc_Chacha_encrypt_128(ctx->X, m, c);
-
- bytes -= processed;
- c += processed;
- m += processed;
- ctx->X[CHACHA_IV_BYTES] = PLUS(ctx->X[CHACHA_IV_BYTES], processed / CHACHA_CHUNK_BYTES);
- }
- if (bytes > 0) {
- wc_Chacha_encrypt_64(ctx->X, m, c, bytes);
- if (bytes > 64)
- ctx->X[CHACHA_IV_BYTES] = PLUSONE(ctx->X[CHACHA_IV_BYTES]);
- ctx->X[CHACHA_IV_BYTES] = PLUSONE(ctx->X[CHACHA_IV_BYTES]);
- }
-}
-
-/**
- * API to encrypt/decrypt a message of any size.
- */
-int wc_Chacha_Process(ChaCha* ctx, byte* output, const byte* input,
- word32 msglen)
-{
- if (ctx == NULL || output == NULL || input == NULL)
- return BAD_FUNC_ARG;
-
- wc_Chacha_encrypt_bytes(ctx, input, output, msglen);
-
- return 0;
-}
-
-#endif /* HAVE_CHACHA */
-#endif /* WOLFSSL_ARMASM */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-curve25519.S b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-curve25519.S
deleted file mode 100644
index 891c6d815..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-curve25519.S
+++ /dev/null
@@ -1,6715 +0,0 @@
-/* armv8-curve25519
- *
- * Copyright (C) 2006-2020 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
- */
-
-/* Generated using (from wolfssl):
- * cd ../scripts
- * ruby ./x25519/x25519.rb arm64 ../wolfssl/wolfcrypt/src/port/arm/armv8-curve25519.S
- */
-#ifdef __aarch64__
- .text
- .align 2
- .globl fe_init
- .type fe_init, %function
-fe_init:
- ret
- .size fe_init,.-fe_init
- .text
- .align 2
- .globl fe_frombytes
- .type fe_frombytes, %function
-fe_frombytes:
- ldp x2, x3, [x1]
- ldp x4, x5, [x1, #16]
- and x5, x5, #0x7fffffffffffffff
- stp x2, x3, [x0]
- stp x4, x5, [x0, #16]
- ret
- .size fe_frombytes,.-fe_frombytes
- .text
- .align 2
- .globl fe_tobytes
- .type fe_tobytes, %function
-fe_tobytes:
- mov x7, #19
- ldp x2, x3, [x1]
- ldp x4, x5, [x1, #16]
- adds x6, x2, x7
- adcs x6, x3, xzr
- adcs x6, x4, xzr
- adc x6, x5, xzr
- and x6, x7, x6, asr 63
- adds x2, x2, x6
- adcs x3, x3, xzr
- adcs x4, x4, xzr
- adc x5, x5, xzr
- and x5, x5, #0x7fffffffffffffff
- stp x2, x3, [x0]
- stp x4, x5, [x0, #16]
- ret
- .size fe_tobytes,.-fe_tobytes
- .text
- .align 2
- .globl fe_1
- .type fe_1, %function
-fe_1:
- # Set one
- mov x1, #1
- stp x1, xzr, [x0]
- stp xzr, xzr, [x0, #16]
- ret
- .size fe_1,.-fe_1
- .text
- .align 2
- .globl fe_0
- .type fe_0, %function
-fe_0:
- # Set zero
- stp xzr, xzr, [x0]
- stp xzr, xzr, [x0, #16]
- ret
- .size fe_0,.-fe_0
- .text
- .align 2
- .globl fe_copy
- .type fe_copy, %function
-fe_copy:
- # Copy
- ldp x2, x3, [x1]
- ldp x4, x5, [x1, #16]
- stp x2, x3, [x0]
- stp x4, x5, [x0, #16]
- ret
- .size fe_copy,.-fe_copy
- .text
- .align 2
- .globl fe_sub
- .type fe_sub, %function
-fe_sub:
- # Sub
- ldp x3, x4, [x1]
- ldp x5, x6, [x1, #16]
- ldp x7, x8, [x2]
- ldp x9, x10, [x2, #16]
- subs x3, x3, x7
- sbcs x4, x4, x8
- sbcs x5, x5, x9
- sbcs x6, x6, x10
- mov x12, #-19
- csetm x11, cc
- # Mask the modulus
- and x12, x11, x12
- and x13, x11, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x3, x3, x12
- adcs x4, x4, x11
- adcs x5, x5, x11
- adc x6, x6, x13
- stp x3, x4, [x0]
- stp x5, x6, [x0, #16]
- ret
- .size fe_sub,.-fe_sub
- .text
- .align 2
- .globl fe_add
- .type fe_add, %function
-fe_add:
- # Add
- ldp x3, x4, [x1]
- ldp x5, x6, [x1, #16]
- ldp x7, x8, [x2]
- ldp x9, x10, [x2, #16]
- adds x3, x3, x7
- adcs x4, x4, x8
- adcs x5, x5, x9
- adc x6, x6, x10
- mov x12, #-19
- asr x11, x6, #63
- # Mask the modulus
- and x12, x11, x12
- and x13, x11, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x3, x3, x12
- sbcs x4, x4, x11
- sbcs x5, x5, x11
- sbc x6, x6, x13
- stp x3, x4, [x0]
- stp x5, x6, [x0, #16]
- ret
- .size fe_add,.-fe_add
- .text
- .align 2
- .globl fe_neg
- .type fe_neg, %function
-fe_neg:
- ldp x2, x3, [x1]
- ldp x4, x5, [x1, #16]
- mov x6, #-19
- mov x7, #-1
- mov x8, #-1
- mov x9, #0x7fffffffffffffff
- subs x6, x6, x2
- sbcs x7, x7, x3
- sbcs x8, x8, x4
- sbc x9, x9, x5
- stp x6, x7, [x0]
- stp x8, x9, [x0, #16]
- ret
- .size fe_neg,.-fe_neg
- .text
- .align 2
- .globl fe_isnonzero
- .type fe_isnonzero, %function
-fe_isnonzero:
- mov x6, #19
- ldp x1, x2, [x0]
- ldp x3, x4, [x0, #16]
- adds x5, x1, x6
- adcs x5, x2, xzr
- adcs x5, x3, xzr
- adc x5, x4, xzr
- and x5, x6, x5, asr 63
- adds x1, x1, x5
- adcs x2, x2, xzr
- adcs x3, x3, xzr
- adc x4, x4, xzr
- and x4, x4, #0x7fffffffffffffff
- orr x0, x1, x2
- orr x3, x3, x4
- orr x0, x0, x3
- ret
- .size fe_isnonzero,.-fe_isnonzero
- .text
- .align 2
- .globl fe_isnegative
- .type fe_isnegative, %function
-fe_isnegative:
- mov x6, #19
- ldp x1, x2, [x0]
- ldp x3, x4, [x0, #16]
- adds x5, x1, x6
- adcs x5, x2, xzr
- adcs x5, x3, xzr
- adc x5, x4, xzr
- and x0, x1, #1
- eor x0, x0, x5, lsr 63
- ret
- .size fe_isnegative,.-fe_isnegative
- .text
- .align 2
- .globl fe_cmov_table
- .type fe_cmov_table, %function
-fe_cmov_table:
- stp x29, x30, [sp, #-128]!
- add x29, sp, #0
- str x17, [x29, #40]
- str x19, [x29, #48]
- stp x20, x21, [x29, #56]
- stp x22, x23, [x29, #72]
- stp x24, x25, [x29, #88]
- stp x26, x27, [x29, #104]
- str x28, [x29, #120]
- str x0, [x29, #16]
- sxtb x2, w2
- sbfx x3, x2, #7, #1
- eor x0, x2, x3
- sub x0, x0, x3
- mov x4, #1
- mov x5, xzr
- mov x6, xzr
- mov x7, xzr
- mov x8, #1
- mov x9, xzr
- mov x10, xzr
- mov x11, xzr
- mov x12, xzr
- mov x13, xzr
- mov x14, xzr
- mov x15, xzr
- cmp x0, #1
- ldp x16, x17, [x1]
- ldp x19, x20, [x1, #16]
- ldp x21, x22, [x1, #32]
- ldp x23, x24, [x1, #48]
- ldp x25, x26, [x1, #64]
- ldp x27, x28, [x1, #80]
- csel x4, x16, x4, eq
- csel x5, x17, x5, eq
- csel x6, x19, x6, eq
- csel x7, x20, x7, eq
- csel x8, x21, x8, eq
- csel x9, x22, x9, eq
- csel x10, x23, x10, eq
- csel x11, x24, x11, eq
- csel x12, x25, x12, eq
- csel x13, x26, x13, eq
- csel x14, x27, x14, eq
- csel x15, x28, x15, eq
- cmp x0, #2
- ldp x16, x17, [x1, #96]
- ldp x19, x20, [x1, #112]
- ldp x21, x22, [x1, #128]
- ldp x23, x24, [x1, #144]
- ldp x25, x26, [x1, #160]
- ldp x27, x28, [x1, #176]
- csel x4, x16, x4, eq
- csel x5, x17, x5, eq
- csel x6, x19, x6, eq
- csel x7, x20, x7, eq
- csel x8, x21, x8, eq
- csel x9, x22, x9, eq
- csel x10, x23, x10, eq
- csel x11, x24, x11, eq
- csel x12, x25, x12, eq
- csel x13, x26, x13, eq
- csel x14, x27, x14, eq
- csel x15, x28, x15, eq
- cmp x0, #3
- ldp x16, x17, [x1, #192]
- ldp x19, x20, [x1, #208]
- ldp x21, x22, [x1, #224]
- ldp x23, x24, [x1, #240]
- ldp x25, x26, [x1, #256]
- ldp x27, x28, [x1, #272]
- csel x4, x16, x4, eq
- csel x5, x17, x5, eq
- csel x6, x19, x6, eq
- csel x7, x20, x7, eq
- csel x8, x21, x8, eq
- csel x9, x22, x9, eq
- csel x10, x23, x10, eq
- csel x11, x24, x11, eq
- csel x12, x25, x12, eq
- csel x13, x26, x13, eq
- csel x14, x27, x14, eq
- csel x15, x28, x15, eq
- cmp x0, #4
- ldp x16, x17, [x1, #288]
- ldp x19, x20, [x1, #304]
- ldp x21, x22, [x1, #320]
- ldp x23, x24, [x1, #336]
- ldp x25, x26, [x1, #352]
- ldp x27, x28, [x1, #368]
- csel x4, x16, x4, eq
- csel x5, x17, x5, eq
- csel x6, x19, x6, eq
- csel x7, x20, x7, eq
- csel x8, x21, x8, eq
- csel x9, x22, x9, eq
- csel x10, x23, x10, eq
- csel x11, x24, x11, eq
- csel x12, x25, x12, eq
- csel x13, x26, x13, eq
- csel x14, x27, x14, eq
- csel x15, x28, x15, eq
- add x1, x1, #0x180
- cmp x0, #5
- ldp x16, x17, [x1]
- ldp x19, x20, [x1, #16]
- ldp x21, x22, [x1, #32]
- ldp x23, x24, [x1, #48]
- ldp x25, x26, [x1, #64]
- ldp x27, x28, [x1, #80]
- csel x4, x16, x4, eq
- csel x5, x17, x5, eq
- csel x6, x19, x6, eq
- csel x7, x20, x7, eq
- csel x8, x21, x8, eq
- csel x9, x22, x9, eq
- csel x10, x23, x10, eq
- csel x11, x24, x11, eq
- csel x12, x25, x12, eq
- csel x13, x26, x13, eq
- csel x14, x27, x14, eq
- csel x15, x28, x15, eq
- cmp x0, #6
- ldp x16, x17, [x1, #96]
- ldp x19, x20, [x1, #112]
- ldp x21, x22, [x1, #128]
- ldp x23, x24, [x1, #144]
- ldp x25, x26, [x1, #160]
- ldp x27, x28, [x1, #176]
- csel x4, x16, x4, eq
- csel x5, x17, x5, eq
- csel x6, x19, x6, eq
- csel x7, x20, x7, eq
- csel x8, x21, x8, eq
- csel x9, x22, x9, eq
- csel x10, x23, x10, eq
- csel x11, x24, x11, eq
- csel x12, x25, x12, eq
- csel x13, x26, x13, eq
- csel x14, x27, x14, eq
- csel x15, x28, x15, eq
- cmp x0, #7
- ldp x16, x17, [x1, #192]
- ldp x19, x20, [x1, #208]
- ldp x21, x22, [x1, #224]
- ldp x23, x24, [x1, #240]
- ldp x25, x26, [x1, #256]
- ldp x27, x28, [x1, #272]
- csel x4, x16, x4, eq
- csel x5, x17, x5, eq
- csel x6, x19, x6, eq
- csel x7, x20, x7, eq
- csel x8, x21, x8, eq
- csel x9, x22, x9, eq
- csel x10, x23, x10, eq
- csel x11, x24, x11, eq
- csel x12, x25, x12, eq
- csel x13, x26, x13, eq
- csel x14, x27, x14, eq
- csel x15, x28, x15, eq
- cmp x0, #8
- ldp x16, x17, [x1, #288]
- ldp x19, x20, [x1, #304]
- ldp x21, x22, [x1, #320]
- ldp x23, x24, [x1, #336]
- ldp x25, x26, [x1, #352]
- ldp x27, x28, [x1, #368]
- csel x4, x16, x4, eq
- csel x5, x17, x5, eq
- csel x6, x19, x6, eq
- csel x7, x20, x7, eq
- csel x8, x21, x8, eq
- csel x9, x22, x9, eq
- csel x10, x23, x10, eq
- csel x11, x24, x11, eq
- csel x12, x25, x12, eq
- csel x13, x26, x13, eq
- csel x14, x27, x14, eq
- csel x15, x28, x15, eq
- mov x16, #-19
- mov x17, #-1
- mov x19, #-1
- mov x20, #0x7fffffffffffffff
- subs x16, x16, x12
- sbcs x17, x17, x13
- sbcs x19, x19, x14
- sbc x20, x20, x15
- cmp x2, #0
- mov x3, x4
- csel x4, x8, x4, lt
- csel x8, x3, x8, lt
- mov x3, x5
- csel x5, x9, x5, lt
- csel x9, x3, x9, lt
- mov x3, x6
- csel x6, x10, x6, lt
- csel x10, x3, x10, lt
- mov x3, x7
- csel x7, x11, x7, lt
- csel x11, x3, x11, lt
- csel x12, x16, x12, lt
- csel x13, x17, x13, lt
- csel x14, x19, x14, lt
- csel x15, x20, x15, lt
- ldr x0, [x29, #16]
- stp x4, x5, [x0]
- stp x6, x7, [x0, #16]
- stp x8, x9, [x0, #32]
- stp x10, x11, [x0, #48]
- stp x12, x13, [x0, #64]
- stp x14, x15, [x0, #80]
- ldr x17, [x29, #40]
- ldr x19, [x29, #48]
- ldp x20, x21, [x29, #56]
- ldp x22, x23, [x29, #72]
- ldp x24, x25, [x29, #88]
- ldp x26, x27, [x29, #104]
- ldr x28, [x29, #120]
- ldp x29, x30, [sp], #0x80
- ret
- .size fe_cmov_table,.-fe_cmov_table
- .text
- .align 2
- .globl fe_mul
- .type fe_mul, %function
-fe_mul:
- stp x29, x30, [sp, #-64]!
- add x29, sp, #0
- str x17, [x29, #24]
- str x19, [x29, #32]
- stp x20, x21, [x29, #40]
- str x22, [x29, #56]
- # Multiply
- ldp x14, x15, [x1]
- ldp x16, x17, [x1, #16]
- ldp x19, x20, [x2]
- ldp x21, x22, [x2, #16]
- # A[0] * B[0]
- mul x6, x14, x19
- umulh x7, x14, x19
- # A[0] * B[1]
- mul x3, x14, x20
- umulh x8, x14, x20
- adds x7, x7, x3
- adc x8, x8, xzr
- # A[1] * B[0]
- mul x3, x15, x19
- umulh x4, x15, x19
- adds x7, x7, x3
- adcs x8, x8, x4
- adc x9, xzr, xzr
- # A[0] * B[2]
- mul x3, x14, x21
- umulh x4, x14, x21
- adds x8, x8, x3
- adc x9, x9, x4
- # A[1] * B[1]
- mul x3, x15, x20
- umulh x4, x15, x20
- adds x8, x8, x3
- adcs x9, x9, x4
- adc x10, xzr, xzr
- # A[2] * B[0]
- mul x3, x16, x19
- umulh x4, x16, x19
- adds x8, x8, x3
- adcs x9, x9, x4
- adc x10, x10, xzr
- # A[0] * B[3]
- mul x3, x14, x22
- umulh x4, x14, x22
- adds x9, x9, x3
- adcs x10, x10, x4
- adc x11, xzr, xzr
- # A[1] * B[2]
- mul x3, x15, x21
- umulh x4, x15, x21
- adds x9, x9, x3
- adcs x10, x10, x4
- adc x11, x11, xzr
- # A[2] * B[1]
- mul x3, x16, x20
- umulh x4, x16, x20
- adds x9, x9, x3
- adcs x10, x10, x4
- adc x11, x11, xzr
- # A[3] * B[0]
- mul x3, x17, x19
- umulh x4, x17, x19
- adds x9, x9, x3
- adcs x10, x10, x4
- adc x11, x11, xzr
- # A[1] * B[3]
- mul x3, x15, x22
- umulh x4, x15, x22
- adds x10, x10, x3
- adcs x11, x11, x4
- adc x12, xzr, xzr
- # A[2] * B[2]
- mul x3, x16, x21
- umulh x4, x16, x21
- adds x10, x10, x3
- adcs x11, x11, x4
- adc x12, x12, xzr
- # A[3] * B[1]
- mul x3, x17, x20
- umulh x4, x17, x20
- adds x10, x10, x3
- adcs x11, x11, x4
- adc x12, x12, xzr
- # A[2] * B[3]
- mul x3, x16, x22
- umulh x4, x16, x22
- adds x11, x11, x3
- adcs x12, x12, x4
- adc x13, xzr, xzr
- # A[3] * B[2]
- mul x3, x17, x21
- umulh x4, x17, x21
- adds x11, x11, x3
- adcs x12, x12, x4
- adc x13, x13, xzr
- # A[3] * B[3]
- mul x3, x17, x22
- umulh x4, x17, x22
- adds x12, x12, x3
- adc x13, x13, x4
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x13, x13, x12, #63
- extr x12, x12, x11, #63
- extr x11, x11, x10, #63
- extr x10, x10, x9, #63
- and x9, x9, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x3, #19
- mul x4, x3, x10
- umulh x10, x3, x10
- adds x6, x6, x4
- mul x4, x3, x11
- umulh x11, x3, x11
- adcs x7, x7, x4
- mul x4, x3, x12
- umulh x12, x3, x12
- adcs x8, x8, x4
- mul x4, x3, x13
- umulh x5, x3, x13
- adcs x9, x9, x4
- adc x5, x5, xzr
- # Add remaining product results in
- adds x7, x7, x10
- adcs x8, x8, x11
- adcs x9, x9, x12
- adc x5, x5, xzr
- # Overflow
- extr x5, x5, x9, #63
- mul x5, x5, x3
- and x9, x9, #0x7fffffffffffffff
- adds x6, x6, x5
- adcs x7, x7, xzr
- adcs x8, x8, xzr
- adc x9, x9, xzr
- # Reduce if top bit set
- and x5, x3, x9, asr 63
- and x9, x9, #0x7fffffffffffffff
- adds x6, x6, x5
- adcs x7, x7, xzr
- adcs x8, x8, xzr
- adc x9, x9, xzr
- # Store
- stp x6, x7, [x0]
- stp x8, x9, [x0, #16]
- ldr x17, [x29, #24]
- ldr x19, [x29, #32]
- ldp x20, x21, [x29, #40]
- ldr x22, [x29, #56]
- ldp x29, x30, [sp], #0x40
- ret
- .size fe_mul,.-fe_mul
- .text
- .align 2
- .globl fe_sq
- .type fe_sq, %function
-fe_sq:
- # Square
- ldp x13, x14, [x1]
- ldp x15, x16, [x1, #16]
- # A[0] * A[1]
- mul x6, x13, x14
- umulh x7, x13, x14
- # A[0] * A[2]
- mul x2, x13, x15
- umulh x8, x13, x15
- adds x7, x7, x2
- adc x8, x8, xzr
- # A[0] * A[3]
- mul x2, x13, x16
- umulh x9, x13, x16
- adds x8, x8, x2
- adc x9, x9, xzr
- # A[1] * A[2]
- mul x2, x14, x15
- umulh x3, x14, x15
- adds x8, x8, x2
- adcs x9, x9, x3
- adc x10, xzr, xzr
- # A[1] * A[3]
- mul x2, x14, x16
- umulh x3, x14, x16
- adds x9, x9, x2
- adc x10, x10, x3
- # A[2] * A[3]
- mul x2, x15, x16
- umulh x11, x15, x16
- adds x10, x10, x2
- adc x11, x11, xzr
- # Double
- adds x6, x6, x6
- adcs x7, x7, x7
- adcs x8, x8, x8
- adcs x9, x9, x9
- adcs x10, x10, x10
- adcs x11, x11, x11
- adc x12, xzr, xzr
- # A[0] * A[0]
- mul x5, x13, x13
- umulh x4, x13, x13
- # A[1] * A[1]
- mul x2, x14, x14
- umulh x3, x14, x14
- adds x6, x6, x4
- adcs x7, x7, x2
- adc x4, x3, xzr
- # A[2] * A[2]
- mul x2, x15, x15
- umulh x3, x15, x15
- adds x8, x8, x4
- adcs x9, x9, x2
- adc x4, x3, xzr
- # A[3] * A[3]
- mul x2, x16, x16
- umulh x3, x16, x16
- adds x10, x10, x4
- adcs x11, x11, x2
- adc x12, x12, x3
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x12, x12, x11, #63
- extr x11, x11, x10, #63
- extr x10, x10, x9, #63
- extr x9, x9, x8, #63
- and x8, x8, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x2, #19
- mul x3, x2, x9
- umulh x9, x2, x9
- adds x5, x5, x3
- mul x3, x2, x10
- umulh x10, x2, x10
- adcs x6, x6, x3
- mul x3, x2, x11
- umulh x11, x2, x11
- adcs x7, x7, x3
- mul x3, x2, x12
- umulh x4, x2, x12
- adcs x8, x8, x3
- adc x4, x4, xzr
- # Add remaining product results in
- adds x6, x6, x9
- adcs x7, x7, x10
- adcs x8, x8, x11
- adc x4, x4, xzr
- # Overflow
- extr x4, x4, x8, #63
- mul x4, x4, x2
- and x8, x8, #0x7fffffffffffffff
- adds x5, x5, x4
- adcs x6, x6, xzr
- adcs x7, x7, xzr
- adc x8, x8, xzr
- # Reduce if top bit set
- and x4, x2, x8, asr 63
- and x8, x8, #0x7fffffffffffffff
- adds x5, x5, x4
- adcs x6, x6, xzr
- adcs x7, x7, xzr
- adc x8, x8, xzr
- # Store
- stp x5, x6, [x0]
- stp x7, x8, [x0, #16]
- ret
- .size fe_sq,.-fe_sq
- .text
- .align 2
- .globl fe_invert
- .type fe_invert, %function
-fe_invert:
- stp x29, x30, [sp, #-176]!
- add x29, sp, #0
- str x20, [x29, #168]
- # Invert
- str x0, [x29, #144]
- str x1, [x29, #152]
- add x0, x29, #16
- bl fe_sq
- add x0, x29, #48
- add x1, x29, #16
- bl fe_sq
- add x1, x29, #48
- bl fe_sq
- ldr x1, [x29, #152]
- add x2, x29, #48
- bl fe_mul
- add x0, x29, #16
- add x1, x29, #16
- add x2, x29, #48
- bl fe_mul
- add x0, x29, #0x50
- bl fe_sq
- add x0, x29, #48
- add x1, x29, #48
- add x2, x29, #0x50
- bl fe_mul
- add x0, x29, #0x50
- bl fe_sq
- mov x20, #4
- add x1, x29, #0x50
-L_fe_invert1:
- bl fe_sq
- sub x20, x20, #1
- cmp x20, #0
- bne L_fe_invert1
- add x0, x29, #48
- add x2, x29, #48
- bl fe_mul
- add x0, x29, #0x50
- add x1, x29, #48
- bl fe_sq
- mov x20, #9
- add x1, x29, #0x50
-L_fe_invert2:
- bl fe_sq
- sub x20, x20, #1
- cmp x20, #0
- bne L_fe_invert2
- add x2, x29, #48
- bl fe_mul
- add x0, x29, #0x70
- bl fe_sq
- mov x20, #19
- add x1, x29, #0x70
-L_fe_invert3:
- bl fe_sq
- sub x20, x20, #1
- cmp x20, #0
- bne L_fe_invert3
- add x0, x29, #0x50
- add x2, x29, #0x50
- bl fe_mul
- mov x20, #10
- add x1, x29, #0x50
-L_fe_invert4:
- bl fe_sq
- sub x20, x20, #1
- cmp x20, #0
- bne L_fe_invert4
- add x0, x29, #48
- add x2, x29, #48
- bl fe_mul
- add x0, x29, #0x50
- add x1, x29, #48
- bl fe_sq
- mov x20, #49
- add x1, x29, #0x50
-L_fe_invert5:
- bl fe_sq
- sub x20, x20, #1
- cmp x20, #0
- bne L_fe_invert5
- add x2, x29, #48
- bl fe_mul
- add x0, x29, #0x70
- bl fe_sq
- mov x20, #0x63
- add x1, x29, #0x70
-L_fe_invert6:
- bl fe_sq
- sub x20, x20, #1
- cmp x20, #0
- bne L_fe_invert6
- add x0, x29, #0x50
- add x2, x29, #0x50
- bl fe_mul
- mov x20, #50
- add x1, x29, #0x50
-L_fe_invert7:
- bl fe_sq
- sub x20, x20, #1
- cmp x20, #0
- bne L_fe_invert7
- add x0, x29, #48
- add x2, x29, #48
- bl fe_mul
- mov x20, #5
- add x1, x29, #48
-L_fe_invert8:
- bl fe_sq
- sub x20, x20, #1
- cmp x20, #0
- bne L_fe_invert8
- ldr x0, [x29, #144]
- add x2, x29, #16
- bl fe_mul
- ldr x20, [x29, #168]
- ldp x29, x30, [sp], #0xb0
- ret
- .size fe_invert,.-fe_invert
- .text
- .align 2
- .globl curve25519
- .type curve25519, %function
-curve25519:
- stp x29, x30, [sp, #-288]!
- add x29, sp, #0
- str x17, [x29, #200]
- str x19, [x29, #208]
- stp x20, x21, [x29, #216]
- stp x22, x23, [x29, #232]
- stp x24, x25, [x29, #248]
- stp x26, x27, [x29, #264]
- str x28, [x29, #280]
- mov x23, xzr
- str x0, [x29, #176]
- str x2, [x29, #184]
- # Copy
- ldp x6, x7, [x2]
- ldp x8, x9, [x2, #16]
- stp x6, x7, [x29, #80]
- stp x8, x9, [x29, #96]
- # Set one
- mov x2, #1
- stp x2, xzr, [x0]
- stp xzr, xzr, [x0, #16]
- # Set zero
- stp xzr, xzr, [x29, #16]
- stp xzr, xzr, [x29, #32]
- # Set one
- mov x2, #1
- stp x2, xzr, [x29, #48]
- stp xzr, xzr, [x29, #64]
- mov x25, #62
- mov x24, #24
-L_curve25519_words:
-L_curve25519_bits:
- ldr x2, [x1, x24]
- lsr x2, x2, x25
- and x2, x2, #1
- eor x23, x23, x2
- # Conditional Swap
- cmp x23, #1
- ldp x10, x11, [x0]
- ldp x12, x13, [x0, #16]
- ldp x6, x7, [x29, #80]
- ldp x8, x9, [x29, #96]
- csel x14, x10, x6, eq
- csel x10, x6, x10, eq
- csel x15, x11, x7, eq
- csel x11, x7, x11, eq
- csel x16, x12, x8, eq
- csel x12, x8, x12, eq
- csel x17, x13, x9, eq
- csel x13, x9, x13, eq
- # Conditional Swap
- cmp x23, #1
- ldp x19, x20, [x29, #16]
- ldp x21, x22, [x29, #32]
- ldp x6, x7, [x29, #48]
- ldp x8, x9, [x29, #64]
- csel x5, x19, x6, eq
- csel x19, x6, x19, eq
- csel x26, x20, x7, eq
- csel x20, x7, x20, eq
- csel x27, x21, x8, eq
- csel x21, x8, x21, eq
- csel x28, x22, x9, eq
- csel x22, x9, x22, eq
- mov x23, x2
- # Add
- adds x6, x10, x19
- adcs x7, x11, x20
- adcs x8, x12, x21
- adc x9, x13, x22
- mov x3, #-19
- asr x2, x9, #63
- # Mask the modulus
- and x3, x2, x3
- and x4, x2, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x6, x6, x3
- sbcs x7, x7, x2
- sbcs x8, x8, x2
- sbc x9, x9, x4
- # Sub
- subs x19, x10, x19
- sbcs x20, x11, x20
- sbcs x21, x12, x21
- sbcs x22, x13, x22
- mov x3, #-19
- csetm x2, cc
- # Mask the modulus
- and x3, x2, x3
- and x4, x2, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x19, x19, x3
- adcs x20, x20, x2
- adcs x21, x21, x2
- adc x22, x22, x4
- stp x19, x20, [x29, #144]
- stp x21, x22, [x29, #160]
- # Add
- adds x10, x14, x5
- adcs x11, x15, x26
- adcs x12, x16, x27
- adc x13, x17, x28
- mov x3, #-19
- asr x2, x13, #63
- # Mask the modulus
- and x3, x2, x3
- and x4, x2, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x10, x10, x3
- sbcs x11, x11, x2
- sbcs x12, x12, x2
- sbc x13, x13, x4
- # Sub
- subs x14, x14, x5
- sbcs x15, x15, x26
- sbcs x16, x16, x27
- sbcs x17, x17, x28
- mov x3, #-19
- csetm x2, cc
- # Mask the modulus
- and x3, x2, x3
- and x4, x2, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x14, x14, x3
- adcs x15, x15, x2
- adcs x16, x16, x2
- adc x17, x17, x4
- # Multiply
- # A[0] * B[0]
- mul x19, x14, x6
- umulh x20, x14, x6
- # A[0] * B[1]
- mul x3, x14, x7
- umulh x21, x14, x7
- adds x20, x20, x3
- adc x21, x21, xzr
- # A[1] * B[0]
- mul x3, x15, x6
- umulh x4, x15, x6
- adds x20, x20, x3
- adcs x21, x21, x4
- adc x22, xzr, xzr
- # A[0] * B[2]
- mul x3, x14, x8
- umulh x4, x14, x8
- adds x21, x21, x3
- adc x22, x22, x4
- # A[1] * B[1]
- mul x3, x15, x7
- umulh x4, x15, x7
- adds x21, x21, x3
- adcs x22, x22, x4
- adc x2, xzr, xzr
- # A[2] * B[0]
- mul x3, x16, x6
- umulh x4, x16, x6
- adds x21, x21, x3
- adcs x22, x22, x4
- adc x2, x2, xzr
- # A[0] * B[3]
- mul x3, x14, x9
- umulh x4, x14, x9
- adds x22, x22, x3
- adcs x2, x2, x4
- adc x26, xzr, xzr
- # A[1] * B[2]
- mul x3, x15, x8
- umulh x4, x15, x8
- adds x22, x22, x3
- adcs x2, x2, x4
- adc x26, x26, xzr
- # A[2] * B[1]
- mul x3, x16, x7
- umulh x4, x16, x7
- adds x22, x22, x3
- adcs x2, x2, x4
- adc x26, x26, xzr
- # A[3] * B[0]
- mul x3, x17, x6
- umulh x4, x17, x6
- adds x22, x22, x3
- adcs x2, x2, x4
- adc x26, x26, xzr
- # A[1] * B[3]
- mul x3, x15, x9
- umulh x4, x15, x9
- adds x2, x2, x3
- adcs x26, x26, x4
- adc x27, xzr, xzr
- # A[2] * B[2]
- mul x3, x16, x8
- umulh x4, x16, x8
- adds x2, x2, x3
- adcs x26, x26, x4
- adc x27, x27, xzr
- # A[3] * B[1]
- mul x3, x17, x7
- umulh x4, x17, x7
- adds x2, x2, x3
- adcs x26, x26, x4
- adc x27, x27, xzr
- # A[2] * B[3]
- mul x3, x16, x9
- umulh x4, x16, x9
- adds x26, x26, x3
- adcs x27, x27, x4
- adc x28, xzr, xzr
- # A[3] * B[2]
- mul x3, x17, x8
- umulh x4, x17, x8
- adds x26, x26, x3
- adcs x27, x27, x4
- adc x28, x28, xzr
- # A[3] * B[3]
- mul x3, x17, x9
- umulh x4, x17, x9
- adds x27, x27, x3
- adc x28, x28, x4
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x28, x28, x27, #63
- extr x27, x27, x26, #63
- extr x26, x26, x2, #63
- extr x2, x2, x22, #63
- and x22, x22, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x3, #19
- mul x4, x3, x2
- umulh x2, x3, x2
- adds x19, x19, x4
- mul x4, x3, x26
- umulh x26, x3, x26
- adcs x20, x20, x4
- mul x4, x3, x27
- umulh x27, x3, x27
- adcs x21, x21, x4
- mul x4, x3, x28
- umulh x5, x3, x28
- adcs x22, x22, x4
- adc x5, x5, xzr
- # Add remaining product results in
- adds x20, x20, x2
- adcs x21, x21, x26
- adcs x22, x22, x27
- adc x5, x5, xzr
- # Overflow
- extr x5, x5, x22, #63
- mul x5, x5, x3
- and x22, x22, #0x7fffffffffffffff
- adds x19, x19, x5
- adcs x20, x20, xzr
- adcs x21, x21, xzr
- adc x22, x22, xzr
- # Reduce if top bit set
- and x5, x3, x22, asr 63
- and x22, x22, #0x7fffffffffffffff
- adds x19, x19, x5
- adcs x20, x20, xzr
- adcs x21, x21, xzr
- adc x22, x22, xzr
- # Store
- stp x19, x20, [x29, #112]
- stp x21, x22, [x29, #128]
- # Multiply
- ldp x2, x26, [x29, #144]
- ldp x27, x28, [x29, #160]
- # A[0] * B[0]
- mul x19, x10, x2
- umulh x20, x10, x2
- # A[0] * B[1]
- mul x3, x10, x26
- umulh x21, x10, x26
- adds x20, x20, x3
- adc x21, x21, xzr
- # A[1] * B[0]
- mul x3, x11, x2
- umulh x4, x11, x2
- adds x20, x20, x3
- adcs x21, x21, x4
- adc x22, xzr, xzr
- # A[0] * B[2]
- mul x3, x10, x27
- umulh x4, x10, x27
- adds x21, x21, x3
- adc x22, x22, x4
- # A[1] * B[1]
- mul x3, x11, x26
- umulh x4, x11, x26
- adds x21, x21, x3
- adcs x22, x22, x4
- adc x14, xzr, xzr
- # A[2] * B[0]
- mul x3, x12, x2
- umulh x4, x12, x2
- adds x21, x21, x3
- adcs x22, x22, x4
- adc x14, x14, xzr
- # A[0] * B[3]
- mul x3, x10, x28
- umulh x4, x10, x28
- adds x22, x22, x3
- adcs x14, x14, x4
- adc x15, xzr, xzr
- # A[1] * B[2]
- mul x3, x11, x27
- umulh x4, x11, x27
- adds x22, x22, x3
- adcs x14, x14, x4
- adc x15, x15, xzr
- # A[2] * B[1]
- mul x3, x12, x26
- umulh x4, x12, x26
- adds x22, x22, x3
- adcs x14, x14, x4
- adc x15, x15, xzr
- # A[3] * B[0]
- mul x3, x13, x2
- umulh x4, x13, x2
- adds x22, x22, x3
- adcs x14, x14, x4
- adc x15, x15, xzr
- # A[1] * B[3]
- mul x3, x11, x28
- umulh x4, x11, x28
- adds x14, x14, x3
- adcs x15, x15, x4
- adc x16, xzr, xzr
- # A[2] * B[2]
- mul x3, x12, x27
- umulh x4, x12, x27
- adds x14, x14, x3
- adcs x15, x15, x4
- adc x16, x16, xzr
- # A[3] * B[1]
- mul x3, x13, x26
- umulh x4, x13, x26
- adds x14, x14, x3
- adcs x15, x15, x4
- adc x16, x16, xzr
- # A[2] * B[3]
- mul x3, x12, x28
- umulh x4, x12, x28
- adds x15, x15, x3
- adcs x16, x16, x4
- adc x17, xzr, xzr
- # A[3] * B[2]
- mul x3, x13, x27
- umulh x4, x13, x27
- adds x15, x15, x3
- adcs x16, x16, x4
- adc x17, x17, xzr
- # A[3] * B[3]
- mul x3, x13, x28
- umulh x4, x13, x28
- adds x16, x16, x3
- adc x17, x17, x4
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x17, x17, x16, #63
- extr x16, x16, x15, #63
- extr x15, x15, x14, #63
- extr x14, x14, x22, #63
- and x22, x22, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x3, #19
- mul x4, x3, x14
- umulh x14, x3, x14
- adds x19, x19, x4
- mul x4, x3, x15
- umulh x15, x3, x15
- adcs x20, x20, x4
- mul x4, x3, x16
- umulh x16, x3, x16
- adcs x21, x21, x4
- mul x4, x3, x17
- umulh x5, x3, x17
- adcs x22, x22, x4
- adc x5, x5, xzr
- # Add remaining product results in
- adds x20, x20, x14
- adcs x21, x21, x15
- adcs x22, x22, x16
- adc x5, x5, xzr
- # Overflow
- extr x5, x5, x22, #63
- mul x5, x5, x3
- and x22, x22, #0x7fffffffffffffff
- adds x19, x19, x5
- adcs x20, x20, xzr
- adcs x21, x21, xzr
- adc x22, x22, xzr
- # Reduce if top bit set
- and x5, x3, x22, asr 63
- and x22, x22, #0x7fffffffffffffff
- adds x19, x19, x5
- adcs x20, x20, xzr
- adcs x21, x21, xzr
- adc x22, x22, xzr
- # Store
- # Square
- # A[0] * A[1]
- mul x11, x2, x26
- umulh x12, x2, x26
- # A[0] * A[2]
- mul x3, x2, x27
- umulh x13, x2, x27
- adds x12, x12, x3
- adc x13, x13, xzr
- # A[0] * A[3]
- mul x3, x2, x28
- umulh x14, x2, x28
- adds x13, x13, x3
- adc x14, x14, xzr
- # A[1] * A[2]
- mul x3, x26, x27
- umulh x4, x26, x27
- adds x13, x13, x3
- adcs x14, x14, x4
- adc x15, xzr, xzr
- # A[1] * A[3]
- mul x3, x26, x28
- umulh x4, x26, x28
- adds x14, x14, x3
- adc x15, x15, x4
- # A[2] * A[3]
- mul x3, x27, x28
- umulh x16, x27, x28
- adds x15, x15, x3
- adc x16, x16, xzr
- # Double
- adds x11, x11, x11
- adcs x12, x12, x12
- adcs x13, x13, x13
- adcs x14, x14, x14
- adcs x15, x15, x15
- adcs x16, x16, x16
- adc x17, xzr, xzr
- # A[0] * A[0]
- mul x10, x2, x2
- umulh x5, x2, x2
- # A[1] * A[1]
- mul x3, x26, x26
- umulh x4, x26, x26
- adds x11, x11, x5
- adcs x12, x12, x3
- adc x5, x4, xzr
- # A[2] * A[2]
- mul x3, x27, x27
- umulh x4, x27, x27
- adds x13, x13, x5
- adcs x14, x14, x3
- adc x5, x4, xzr
- # A[3] * A[3]
- mul x3, x28, x28
- umulh x4, x28, x28
- adds x15, x15, x5
- adcs x16, x16, x3
- adc x17, x17, x4
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x17, x17, x16, #63
- extr x16, x16, x15, #63
- extr x15, x15, x14, #63
- extr x14, x14, x13, #63
- and x13, x13, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x3, #19
- mul x4, x3, x14
- umulh x14, x3, x14
- adds x10, x10, x4
- mul x4, x3, x15
- umulh x15, x3, x15
- adcs x11, x11, x4
- mul x4, x3, x16
- umulh x16, x3, x16
- adcs x12, x12, x4
- mul x4, x3, x17
- umulh x5, x3, x17
- adcs x13, x13, x4
- adc x5, x5, xzr
- # Add remaining product results in
- adds x11, x11, x14
- adcs x12, x12, x15
- adcs x13, x13, x16
- adc x5, x5, xzr
- # Overflow
- extr x5, x5, x13, #63
- mul x5, x5, x3
- and x13, x13, #0x7fffffffffffffff
- adds x10, x10, x5
- adcs x11, x11, xzr
- adcs x12, x12, xzr
- adc x13, x13, xzr
- # Reduce if top bit set
- and x5, x3, x13, asr 63
- and x13, x13, #0x7fffffffffffffff
- adds x10, x10, x5
- adcs x11, x11, xzr
- adcs x12, x12, xzr
- adc x13, x13, xzr
- # Store
- # Square
- # A[0] * A[1]
- mul x15, x6, x7
- umulh x16, x6, x7
- # A[0] * A[2]
- mul x3, x6, x8
- umulh x17, x6, x8
- adds x16, x16, x3
- adc x17, x17, xzr
- # A[0] * A[3]
- mul x3, x6, x9
- umulh x2, x6, x9
- adds x17, x17, x3
- adc x2, x2, xzr
- # A[1] * A[2]
- mul x3, x7, x8
- umulh x4, x7, x8
- adds x17, x17, x3
- adcs x2, x2, x4
- adc x26, xzr, xzr
- # A[1] * A[3]
- mul x3, x7, x9
- umulh x4, x7, x9
- adds x2, x2, x3
- adc x26, x26, x4
- # A[2] * A[3]
- mul x3, x8, x9
- umulh x27, x8, x9
- adds x26, x26, x3
- adc x27, x27, xzr
- # Double
- adds x15, x15, x15
- adcs x16, x16, x16
- adcs x17, x17, x17
- adcs x2, x2, x2
- adcs x26, x26, x26
- adcs x27, x27, x27
- adc x28, xzr, xzr
- # A[0] * A[0]
- mul x14, x6, x6
- umulh x5, x6, x6
- # A[1] * A[1]
- mul x3, x7, x7
- umulh x4, x7, x7
- adds x15, x15, x5
- adcs x16, x16, x3
- adc x5, x4, xzr
- # A[2] * A[2]
- mul x3, x8, x8
- umulh x4, x8, x8
- adds x17, x17, x5
- adcs x2, x2, x3
- adc x5, x4, xzr
- # A[3] * A[3]
- mul x3, x9, x9
- umulh x4, x9, x9
- adds x26, x26, x5
- adcs x27, x27, x3
- adc x28, x28, x4
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x28, x28, x27, #63
- extr x27, x27, x26, #63
- extr x26, x26, x2, #63
- extr x2, x2, x17, #63
- and x17, x17, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x3, #19
- mul x4, x3, x2
- umulh x2, x3, x2
- adds x14, x14, x4
- mul x4, x3, x26
- umulh x26, x3, x26
- adcs x15, x15, x4
- mul x4, x3, x27
- umulh x27, x3, x27
- adcs x16, x16, x4
- mul x4, x3, x28
- umulh x5, x3, x28
- adcs x17, x17, x4
- adc x5, x5, xzr
- # Add remaining product results in
- adds x15, x15, x2
- adcs x16, x16, x26
- adcs x17, x17, x27
- adc x5, x5, xzr
- # Overflow
- extr x5, x5, x17, #63
- mul x5, x5, x3
- and x17, x17, #0x7fffffffffffffff
- adds x14, x14, x5
- adcs x15, x15, xzr
- adcs x16, x16, xzr
- adc x17, x17, xzr
- # Reduce if top bit set
- and x5, x3, x17, asr 63
- and x17, x17, #0x7fffffffffffffff
- adds x14, x14, x5
- adcs x15, x15, xzr
- adcs x16, x16, xzr
- adc x17, x17, xzr
- # Store
- # Multiply
- # A[0] * B[0]
- mul x6, x14, x10
- umulh x7, x14, x10
- # A[0] * B[1]
- mul x3, x14, x11
- umulh x8, x14, x11
- adds x7, x7, x3
- adc x8, x8, xzr
- # A[1] * B[0]
- mul x3, x15, x10
- umulh x4, x15, x10
- adds x7, x7, x3
- adcs x8, x8, x4
- adc x9, xzr, xzr
- # A[0] * B[2]
- mul x3, x14, x12
- umulh x4, x14, x12
- adds x8, x8, x3
- adc x9, x9, x4
- # A[1] * B[1]
- mul x3, x15, x11
- umulh x4, x15, x11
- adds x8, x8, x3
- adcs x9, x9, x4
- adc x2, xzr, xzr
- # A[2] * B[0]
- mul x3, x16, x10
- umulh x4, x16, x10
- adds x8, x8, x3
- adcs x9, x9, x4
- adc x2, x2, xzr
- # A[0] * B[3]
- mul x3, x14, x13
- umulh x4, x14, x13
- adds x9, x9, x3
- adcs x2, x2, x4
- adc x26, xzr, xzr
- # A[1] * B[2]
- mul x3, x15, x12
- umulh x4, x15, x12
- adds x9, x9, x3
- adcs x2, x2, x4
- adc x26, x26, xzr
- # A[2] * B[1]
- mul x3, x16, x11
- umulh x4, x16, x11
- adds x9, x9, x3
- adcs x2, x2, x4
- adc x26, x26, xzr
- # A[3] * B[0]
- mul x3, x17, x10
- umulh x4, x17, x10
- adds x9, x9, x3
- adcs x2, x2, x4
- adc x26, x26, xzr
- # A[1] * B[3]
- mul x3, x15, x13
- umulh x4, x15, x13
- adds x2, x2, x3
- adcs x26, x26, x4
- adc x27, xzr, xzr
- # A[2] * B[2]
- mul x3, x16, x12
- umulh x4, x16, x12
- adds x2, x2, x3
- adcs x26, x26, x4
- adc x27, x27, xzr
- # A[3] * B[1]
- mul x3, x17, x11
- umulh x4, x17, x11
- adds x2, x2, x3
- adcs x26, x26, x4
- adc x27, x27, xzr
- # A[2] * B[3]
- mul x3, x16, x13
- umulh x4, x16, x13
- adds x26, x26, x3
- adcs x27, x27, x4
- adc x28, xzr, xzr
- # A[3] * B[2]
- mul x3, x17, x12
- umulh x4, x17, x12
- adds x26, x26, x3
- adcs x27, x27, x4
- adc x28, x28, xzr
- # A[3] * B[3]
- mul x3, x17, x13
- umulh x4, x17, x13
- adds x27, x27, x3
- adc x28, x28, x4
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x28, x28, x27, #63
- extr x27, x27, x26, #63
- extr x26, x26, x2, #63
- extr x2, x2, x9, #63
- and x9, x9, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x3, #19
- mul x4, x3, x2
- umulh x2, x3, x2
- adds x6, x6, x4
- mul x4, x3, x26
- umulh x26, x3, x26
- adcs x7, x7, x4
- mul x4, x3, x27
- umulh x27, x3, x27
- adcs x8, x8, x4
- mul x4, x3, x28
- umulh x5, x3, x28
- adcs x9, x9, x4
- adc x5, x5, xzr
- # Add remaining product results in
- adds x7, x7, x2
- adcs x8, x8, x26
- adcs x9, x9, x27
- adc x5, x5, xzr
- # Overflow
- extr x5, x5, x9, #63
- mul x5, x5, x3
- and x9, x9, #0x7fffffffffffffff
- adds x6, x6, x5
- adcs x7, x7, xzr
- adcs x8, x8, xzr
- adc x9, x9, xzr
- # Reduce if top bit set
- and x5, x3, x9, asr 63
- and x9, x9, #0x7fffffffffffffff
- adds x6, x6, x5
- adcs x7, x7, xzr
- adcs x8, x8, xzr
- adc x9, x9, xzr
- # Store
- stp x6, x7, [x0]
- stp x8, x9, [x0, #16]
- # Sub
- subs x14, x14, x10
- sbcs x15, x15, x11
- sbcs x16, x16, x12
- sbcs x17, x17, x13
- mov x3, #-19
- csetm x2, cc
- # Mask the modulus
- and x3, x2, x3
- and x4, x2, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x14, x14, x3
- adcs x15, x15, x2
- adcs x16, x16, x2
- adc x17, x17, x4
- # Multiply by 121666
- mov x5, #0xdb42
- movk x5, #1, lsl 16
- mul x6, x14, x5
- umulh x7, x14, x5
- mul x3, x15, x5
- umulh x4, x15, x5
- adds x7, x7, x3
- adc x8, xzr, x4
- mul x3, x16, x5
- umulh x4, x16, x5
- adds x8, x8, x3
- adc x9, xzr, x4
- mul x3, x17, x5
- umulh x4, x17, x5
- adds x9, x9, x3
- adc x4, xzr, x4
- mov x5, #19
- extr x4, x4, x9, #63
- mul x4, x4, x5
- and x9, x9, #0x7fffffffffffffff
- adds x6, x6, x4
- adcs x7, x7, xzr
- adcs x8, x8, xzr
- adc x9, x9, xzr
- # Add
- adds x10, x10, x6
- adcs x11, x11, x7
- adcs x12, x12, x8
- adc x13, x13, x9
- mov x3, #-19
- asr x2, x13, #63
- # Mask the modulus
- and x3, x2, x3
- and x4, x2, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x10, x10, x3
- sbcs x11, x11, x2
- sbcs x12, x12, x2
- sbc x13, x13, x4
- # Multiply
- # A[0] * B[0]
- mul x6, x14, x10
- umulh x7, x14, x10
- # A[0] * B[1]
- mul x3, x14, x11
- umulh x8, x14, x11
- adds x7, x7, x3
- adc x8, x8, xzr
- # A[1] * B[0]
- mul x3, x15, x10
- umulh x4, x15, x10
- adds x7, x7, x3
- adcs x8, x8, x4
- adc x9, xzr, xzr
- # A[0] * B[2]
- mul x3, x14, x12
- umulh x4, x14, x12
- adds x8, x8, x3
- adc x9, x9, x4
- # A[1] * B[1]
- mul x3, x15, x11
- umulh x4, x15, x11
- adds x8, x8, x3
- adcs x9, x9, x4
- adc x2, xzr, xzr
- # A[2] * B[0]
- mul x3, x16, x10
- umulh x4, x16, x10
- adds x8, x8, x3
- adcs x9, x9, x4
- adc x2, x2, xzr
- # A[0] * B[3]
- mul x3, x14, x13
- umulh x4, x14, x13
- adds x9, x9, x3
- adcs x2, x2, x4
- adc x26, xzr, xzr
- # A[1] * B[2]
- mul x3, x15, x12
- umulh x4, x15, x12
- adds x9, x9, x3
- adcs x2, x2, x4
- adc x26, x26, xzr
- # A[2] * B[1]
- mul x3, x16, x11
- umulh x4, x16, x11
- adds x9, x9, x3
- adcs x2, x2, x4
- adc x26, x26, xzr
- # A[3] * B[0]
- mul x3, x17, x10
- umulh x4, x17, x10
- adds x9, x9, x3
- adcs x2, x2, x4
- adc x26, x26, xzr
- # A[1] * B[3]
- mul x3, x15, x13
- umulh x4, x15, x13
- adds x2, x2, x3
- adcs x26, x26, x4
- adc x27, xzr, xzr
- # A[2] * B[2]
- mul x3, x16, x12
- umulh x4, x16, x12
- adds x2, x2, x3
- adcs x26, x26, x4
- adc x27, x27, xzr
- # A[3] * B[1]
- mul x3, x17, x11
- umulh x4, x17, x11
- adds x2, x2, x3
- adcs x26, x26, x4
- adc x27, x27, xzr
- # A[2] * B[3]
- mul x3, x16, x13
- umulh x4, x16, x13
- adds x26, x26, x3
- adcs x27, x27, x4
- adc x28, xzr, xzr
- # A[3] * B[2]
- mul x3, x17, x12
- umulh x4, x17, x12
- adds x26, x26, x3
- adcs x27, x27, x4
- adc x28, x28, xzr
- # A[3] * B[3]
- mul x3, x17, x13
- umulh x4, x17, x13
- adds x27, x27, x3
- adc x28, x28, x4
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x28, x28, x27, #63
- extr x27, x27, x26, #63
- extr x26, x26, x2, #63
- extr x2, x2, x9, #63
- and x9, x9, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x3, #19
- mul x4, x3, x2
- umulh x2, x3, x2
- adds x6, x6, x4
- mul x4, x3, x26
- umulh x26, x3, x26
- adcs x7, x7, x4
- mul x4, x3, x27
- umulh x27, x3, x27
- adcs x8, x8, x4
- mul x4, x3, x28
- umulh x5, x3, x28
- adcs x9, x9, x4
- adc x5, x5, xzr
- # Add remaining product results in
- adds x7, x7, x2
- adcs x8, x8, x26
- adcs x9, x9, x27
- adc x5, x5, xzr
- # Overflow
- extr x5, x5, x9, #63
- mul x5, x5, x3
- and x9, x9, #0x7fffffffffffffff
- adds x6, x6, x5
- adcs x7, x7, xzr
- adcs x8, x8, xzr
- adc x9, x9, xzr
- # Reduce if top bit set
- and x5, x3, x9, asr 63
- and x9, x9, #0x7fffffffffffffff
- adds x6, x6, x5
- adcs x7, x7, xzr
- adcs x8, x8, xzr
- adc x9, x9, xzr
- # Store
- stp x6, x7, [x29, #16]
- stp x8, x9, [x29, #32]
- # Add
- ldp x6, x7, [x29, #112]
- ldp x8, x9, [x29, #128]
- adds x10, x6, x19
- adcs x11, x7, x20
- adcs x12, x8, x21
- adc x13, x9, x22
- mov x3, #-19
- asr x2, x13, #63
- # Mask the modulus
- and x3, x2, x3
- and x4, x2, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x10, x10, x3
- sbcs x11, x11, x2
- sbcs x12, x12, x2
- sbc x13, x13, x4
- # Sub
- subs x19, x6, x19
- sbcs x20, x7, x20
- sbcs x21, x8, x21
- sbcs x22, x9, x22
- mov x3, #-19
- csetm x2, cc
- # Mask the modulus
- and x3, x2, x3
- and x4, x2, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x19, x19, x3
- adcs x20, x20, x2
- adcs x21, x21, x2
- adc x22, x22, x4
- # Square
- # A[0] * A[1]
- mul x7, x10, x11
- umulh x8, x10, x11
- # A[0] * A[2]
- mul x3, x10, x12
- umulh x9, x10, x12
- adds x8, x8, x3
- adc x9, x9, xzr
- # A[0] * A[3]
- mul x3, x10, x13
- umulh x2, x10, x13
- adds x9, x9, x3
- adc x2, x2, xzr
- # A[1] * A[2]
- mul x3, x11, x12
- umulh x4, x11, x12
- adds x9, x9, x3
- adcs x2, x2, x4
- adc x26, xzr, xzr
- # A[1] * A[3]
- mul x3, x11, x13
- umulh x4, x11, x13
- adds x2, x2, x3
- adc x26, x26, x4
- # A[2] * A[3]
- mul x3, x12, x13
- umulh x27, x12, x13
- adds x26, x26, x3
- adc x27, x27, xzr
- # Double
- adds x7, x7, x7
- adcs x8, x8, x8
- adcs x9, x9, x9
- adcs x2, x2, x2
- adcs x26, x26, x26
- adcs x27, x27, x27
- adc x28, xzr, xzr
- # A[0] * A[0]
- mul x6, x10, x10
- umulh x5, x10, x10
- # A[1] * A[1]
- mul x3, x11, x11
- umulh x4, x11, x11
- adds x7, x7, x5
- adcs x8, x8, x3
- adc x5, x4, xzr
- # A[2] * A[2]
- mul x3, x12, x12
- umulh x4, x12, x12
- adds x9, x9, x5
- adcs x2, x2, x3
- adc x5, x4, xzr
- # A[3] * A[3]
- mul x3, x13, x13
- umulh x4, x13, x13
- adds x26, x26, x5
- adcs x27, x27, x3
- adc x28, x28, x4
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x28, x28, x27, #63
- extr x27, x27, x26, #63
- extr x26, x26, x2, #63
- extr x2, x2, x9, #63
- and x9, x9, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x3, #19
- mul x4, x3, x2
- umulh x2, x3, x2
- adds x6, x6, x4
- mul x4, x3, x26
- umulh x26, x3, x26
- adcs x7, x7, x4
- mul x4, x3, x27
- umulh x27, x3, x27
- adcs x8, x8, x4
- mul x4, x3, x28
- umulh x5, x3, x28
- adcs x9, x9, x4
- adc x5, x5, xzr
- # Add remaining product results in
- adds x7, x7, x2
- adcs x8, x8, x26
- adcs x9, x9, x27
- adc x5, x5, xzr
- # Overflow
- extr x5, x5, x9, #63
- mul x5, x5, x3
- and x9, x9, #0x7fffffffffffffff
- adds x6, x6, x5
- adcs x7, x7, xzr
- adcs x8, x8, xzr
- adc x9, x9, xzr
- # Reduce if top bit set
- and x5, x3, x9, asr 63
- and x9, x9, #0x7fffffffffffffff
- adds x6, x6, x5
- adcs x7, x7, xzr
- adcs x8, x8, xzr
- adc x9, x9, xzr
- # Store
- stp x6, x7, [x29, #80]
- stp x8, x9, [x29, #96]
- # Square
- # A[0] * A[1]
- mul x7, x19, x20
- umulh x8, x19, x20
- # A[0] * A[2]
- mul x3, x19, x21
- umulh x9, x19, x21
- adds x8, x8, x3
- adc x9, x9, xzr
- # A[0] * A[3]
- mul x3, x19, x22
- umulh x2, x19, x22
- adds x9, x9, x3
- adc x2, x2, xzr
- # A[1] * A[2]
- mul x3, x20, x21
- umulh x4, x20, x21
- adds x9, x9, x3
- adcs x2, x2, x4
- adc x26, xzr, xzr
- # A[1] * A[3]
- mul x3, x20, x22
- umulh x4, x20, x22
- adds x2, x2, x3
- adc x26, x26, x4
- # A[2] * A[3]
- mul x3, x21, x22
- umulh x27, x21, x22
- adds x26, x26, x3
- adc x27, x27, xzr
- # Double
- adds x7, x7, x7
- adcs x8, x8, x8
- adcs x9, x9, x9
- adcs x2, x2, x2
- adcs x26, x26, x26
- adcs x27, x27, x27
- adc x28, xzr, xzr
- # A[0] * A[0]
- mul x6, x19, x19
- umulh x5, x19, x19
- # A[1] * A[1]
- mul x3, x20, x20
- umulh x4, x20, x20
- adds x7, x7, x5
- adcs x8, x8, x3
- adc x5, x4, xzr
- # A[2] * A[2]
- mul x3, x21, x21
- umulh x4, x21, x21
- adds x9, x9, x5
- adcs x2, x2, x3
- adc x5, x4, xzr
- # A[3] * A[3]
- mul x3, x22, x22
- umulh x4, x22, x22
- adds x26, x26, x5
- adcs x27, x27, x3
- adc x28, x28, x4
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x28, x28, x27, #63
- extr x27, x27, x26, #63
- extr x26, x26, x2, #63
- extr x2, x2, x9, #63
- and x9, x9, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x3, #19
- mul x4, x3, x2
- umulh x2, x3, x2
- adds x6, x6, x4
- mul x4, x3, x26
- umulh x26, x3, x26
- adcs x7, x7, x4
- mul x4, x3, x27
- umulh x27, x3, x27
- adcs x8, x8, x4
- mul x4, x3, x28
- umulh x5, x3, x28
- adcs x9, x9, x4
- adc x5, x5, xzr
- # Add remaining product results in
- adds x7, x7, x2
- adcs x8, x8, x26
- adcs x9, x9, x27
- adc x5, x5, xzr
- # Overflow
- extr x5, x5, x9, #63
- mul x5, x5, x3
- and x9, x9, #0x7fffffffffffffff
- adds x6, x6, x5
- adcs x7, x7, xzr
- adcs x8, x8, xzr
- adc x9, x9, xzr
- # Reduce if top bit set
- and x5, x3, x9, asr 63
- and x9, x9, #0x7fffffffffffffff
- adds x6, x6, x5
- adcs x7, x7, xzr
- adcs x8, x8, xzr
- adc x9, x9, xzr
- # Store
- ldr x2, [x29, #184]
- # Multiply
- ldp x14, x15, [x2]
- ldp x16, x17, [x2, #16]
- # A[0] * B[0]
- mul x10, x14, x6
- umulh x11, x14, x6
- # A[0] * B[1]
- mul x3, x14, x7
- umulh x12, x14, x7
- adds x11, x11, x3
- adc x12, x12, xzr
- # A[1] * B[0]
- mul x3, x15, x6
- umulh x4, x15, x6
- adds x11, x11, x3
- adcs x12, x12, x4
- adc x13, xzr, xzr
- # A[0] * B[2]
- mul x3, x14, x8
- umulh x4, x14, x8
- adds x12, x12, x3
- adc x13, x13, x4
- # A[1] * B[1]
- mul x3, x15, x7
- umulh x4, x15, x7
- adds x12, x12, x3
- adcs x13, x13, x4
- adc x2, xzr, xzr
- # A[2] * B[0]
- mul x3, x16, x6
- umulh x4, x16, x6
- adds x12, x12, x3
- adcs x13, x13, x4
- adc x2, x2, xzr
- # A[0] * B[3]
- mul x3, x14, x9
- umulh x4, x14, x9
- adds x13, x13, x3
- adcs x2, x2, x4
- adc x26, xzr, xzr
- # A[1] * B[2]
- mul x3, x15, x8
- umulh x4, x15, x8
- adds x13, x13, x3
- adcs x2, x2, x4
- adc x26, x26, xzr
- # A[2] * B[1]
- mul x3, x16, x7
- umulh x4, x16, x7
- adds x13, x13, x3
- adcs x2, x2, x4
- adc x26, x26, xzr
- # A[3] * B[0]
- mul x3, x17, x6
- umulh x4, x17, x6
- adds x13, x13, x3
- adcs x2, x2, x4
- adc x26, x26, xzr
- # A[1] * B[3]
- mul x3, x15, x9
- umulh x4, x15, x9
- adds x2, x2, x3
- adcs x26, x26, x4
- adc x27, xzr, xzr
- # A[2] * B[2]
- mul x3, x16, x8
- umulh x4, x16, x8
- adds x2, x2, x3
- adcs x26, x26, x4
- adc x27, x27, xzr
- # A[3] * B[1]
- mul x3, x17, x7
- umulh x4, x17, x7
- adds x2, x2, x3
- adcs x26, x26, x4
- adc x27, x27, xzr
- # A[2] * B[3]
- mul x3, x16, x9
- umulh x4, x16, x9
- adds x26, x26, x3
- adcs x27, x27, x4
- adc x28, xzr, xzr
- # A[3] * B[2]
- mul x3, x17, x8
- umulh x4, x17, x8
- adds x26, x26, x3
- adcs x27, x27, x4
- adc x28, x28, xzr
- # A[3] * B[3]
- mul x3, x17, x9
- umulh x4, x17, x9
- adds x27, x27, x3
- adc x28, x28, x4
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x28, x28, x27, #63
- extr x27, x27, x26, #63
- extr x26, x26, x2, #63
- extr x2, x2, x13, #63
- and x13, x13, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x3, #19
- mul x4, x3, x2
- umulh x2, x3, x2
- adds x10, x10, x4
- mul x4, x3, x26
- umulh x26, x3, x26
- adcs x11, x11, x4
- mul x4, x3, x27
- umulh x27, x3, x27
- adcs x12, x12, x4
- mul x4, x3, x28
- umulh x5, x3, x28
- adcs x13, x13, x4
- adc x5, x5, xzr
- # Add remaining product results in
- adds x11, x11, x2
- adcs x12, x12, x26
- adcs x13, x13, x27
- adc x5, x5, xzr
- # Overflow
- extr x5, x5, x13, #63
- mul x5, x5, x3
- and x13, x13, #0x7fffffffffffffff
- adds x10, x10, x5
- adcs x11, x11, xzr
- adcs x12, x12, xzr
- adc x13, x13, xzr
- # Reduce if top bit set
- and x5, x3, x13, asr 63
- and x13, x13, #0x7fffffffffffffff
- adds x10, x10, x5
- adcs x11, x11, xzr
- adcs x12, x12, xzr
- adc x13, x13, xzr
- # Store
- stp x10, x11, [x29, #48]
- stp x12, x13, [x29, #64]
- sub x25, x25, #1
- cmp x25, #0
- bge L_curve25519_bits
- mov x25, #63
- sub x24, x24, #8
- cmp x24, #0
- bge L_curve25519_words
- # Invert
- add x0, x29, #48
- add x1, x29, #16
- bl fe_sq
- add x0, x29, #0x50
- add x1, x29, #48
- bl fe_sq
- add x1, x29, #0x50
- bl fe_sq
- add x1, x29, #16
- add x2, x29, #0x50
- bl fe_mul
- add x0, x29, #48
- add x1, x29, #48
- add x2, x29, #0x50
- bl fe_mul
- add x0, x29, #0x70
- bl fe_sq
- add x0, x29, #0x50
- add x1, x29, #0x50
- add x2, x29, #0x70
- bl fe_mul
- add x0, x29, #0x70
- bl fe_sq
- mov x24, #4
- add x1, x29, #0x70
-L_curve25519_inv_1:
- bl fe_sq
- sub x24, x24, #1
- cmp x24, #0
- bne L_curve25519_inv_1
- add x0, x29, #0x50
- add x2, x29, #0x50
- bl fe_mul
- add x0, x29, #0x70
- add x1, x29, #0x50
- bl fe_sq
- mov x24, #9
- add x1, x29, #0x70
-L_curve25519_inv_2:
- bl fe_sq
- sub x24, x24, #1
- cmp x24, #0
- bne L_curve25519_inv_2
- add x2, x29, #0x50
- bl fe_mul
- add x0, x29, #0x90
- bl fe_sq
- mov x24, #19
- add x1, x29, #0x90
-L_curve25519_inv_3:
- bl fe_sq
- sub x24, x24, #1
- cmp x24, #0
- bne L_curve25519_inv_3
- add x0, x29, #0x70
- add x2, x29, #0x70
- bl fe_mul
- mov x24, #10
- add x1, x29, #0x70
-L_curve25519_inv_4:
- bl fe_sq
- sub x24, x24, #1
- cmp x24, #0
- bne L_curve25519_inv_4
- add x0, x29, #0x50
- add x2, x29, #0x50
- bl fe_mul
- add x0, x29, #0x70
- add x1, x29, #0x50
- bl fe_sq
- mov x24, #49
- add x1, x29, #0x70
-L_curve25519_inv_5:
- bl fe_sq
- sub x24, x24, #1
- cmp x24, #0
- bne L_curve25519_inv_5
- add x2, x29, #0x50
- bl fe_mul
- add x0, x29, #0x90
- bl fe_sq
- mov x24, #0x63
- add x1, x29, #0x90
-L_curve25519_inv_6:
- bl fe_sq
- sub x24, x24, #1
- cmp x24, #0
- bne L_curve25519_inv_6
- add x0, x29, #0x70
- add x2, x29, #0x70
- bl fe_mul
- mov x24, #50
- add x1, x29, #0x70
-L_curve25519_inv_7:
- bl fe_sq
- sub x24, x24, #1
- cmp x24, #0
- bne L_curve25519_inv_7
- add x0, x29, #0x50
- add x2, x29, #0x50
- bl fe_mul
- mov x24, #5
- add x1, x29, #0x50
-L_curve25519_inv_8:
- bl fe_sq
- sub x24, x24, #1
- cmp x24, #0
- bne L_curve25519_inv_8
- add x0, x29, #16
- add x2, x29, #48
- bl fe_mul
- ldr x0, [x29, #176]
- # Multiply
- ldp x6, x7, [x0]
- ldp x8, x9, [x0, #16]
- ldp x10, x11, [x29, #16]
- ldp x12, x13, [x29, #32]
- # A[0] * B[0]
- mul x14, x6, x10
- umulh x15, x6, x10
- # A[0] * B[1]
- mul x3, x6, x11
- umulh x16, x6, x11
- adds x15, x15, x3
- adc x16, x16, xzr
- # A[1] * B[0]
- mul x3, x7, x10
- umulh x4, x7, x10
- adds x15, x15, x3
- adcs x16, x16, x4
- adc x17, xzr, xzr
- # A[0] * B[2]
- mul x3, x6, x12
- umulh x4, x6, x12
- adds x16, x16, x3
- adc x17, x17, x4
- # A[1] * B[1]
- mul x3, x7, x11
- umulh x4, x7, x11
- adds x16, x16, x3
- adcs x17, x17, x4
- adc x19, xzr, xzr
- # A[2] * B[0]
- mul x3, x8, x10
- umulh x4, x8, x10
- adds x16, x16, x3
- adcs x17, x17, x4
- adc x19, x19, xzr
- # A[0] * B[3]
- mul x3, x6, x13
- umulh x4, x6, x13
- adds x17, x17, x3
- adcs x19, x19, x4
- adc x20, xzr, xzr
- # A[1] * B[2]
- mul x3, x7, x12
- umulh x4, x7, x12
- adds x17, x17, x3
- adcs x19, x19, x4
- adc x20, x20, xzr
- # A[2] * B[1]
- mul x3, x8, x11
- umulh x4, x8, x11
- adds x17, x17, x3
- adcs x19, x19, x4
- adc x20, x20, xzr
- # A[3] * B[0]
- mul x3, x9, x10
- umulh x4, x9, x10
- adds x17, x17, x3
- adcs x19, x19, x4
- adc x20, x20, xzr
- # A[1] * B[3]
- mul x3, x7, x13
- umulh x4, x7, x13
- adds x19, x19, x3
- adcs x20, x20, x4
- adc x21, xzr, xzr
- # A[2] * B[2]
- mul x3, x8, x12
- umulh x4, x8, x12
- adds x19, x19, x3
- adcs x20, x20, x4
- adc x21, x21, xzr
- # A[3] * B[1]
- mul x3, x9, x11
- umulh x4, x9, x11
- adds x19, x19, x3
- adcs x20, x20, x4
- adc x21, x21, xzr
- # A[2] * B[3]
- mul x3, x8, x13
- umulh x4, x8, x13
- adds x20, x20, x3
- adcs x21, x21, x4
- adc x22, xzr, xzr
- # A[3] * B[2]
- mul x3, x9, x12
- umulh x4, x9, x12
- adds x20, x20, x3
- adcs x21, x21, x4
- adc x22, x22, xzr
- # A[3] * B[3]
- mul x3, x9, x13
- umulh x4, x9, x13
- adds x21, x21, x3
- adc x22, x22, x4
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x22, x22, x21, #63
- extr x21, x21, x20, #63
- extr x20, x20, x19, #63
- extr x19, x19, x17, #63
- and x17, x17, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x3, #19
- mul x4, x3, x19
- umulh x19, x3, x19
- adds x14, x14, x4
- mul x4, x3, x20
- umulh x20, x3, x20
- adcs x15, x15, x4
- mul x4, x3, x21
- umulh x21, x3, x21
- adcs x16, x16, x4
- mul x4, x3, x22
- umulh x5, x3, x22
- adcs x17, x17, x4
- adc x5, x5, xzr
- # Add remaining product results in
- adds x15, x15, x19
- adcs x16, x16, x20
- adcs x17, x17, x21
- adc x5, x5, xzr
- # Overflow
- extr x5, x5, x17, #63
- mul x5, x5, x3
- and x17, x17, #0x7fffffffffffffff
- adds x14, x14, x5
- adcs x15, x15, xzr
- adcs x16, x16, xzr
- adc x17, x17, xzr
- # Reduce if top bit set
- and x5, x3, x17, asr 63
- and x17, x17, #0x7fffffffffffffff
- adds x14, x14, x5
- adcs x15, x15, xzr
- adcs x16, x16, xzr
- adc x17, x17, xzr
- # Store
- stp x14, x15, [x0]
- stp x16, x17, [x0, #16]
- mov x0, xzr
- ldr x17, [x29, #200]
- ldr x19, [x29, #208]
- ldp x20, x21, [x29, #216]
- ldp x22, x23, [x29, #232]
- ldp x24, x25, [x29, #248]
- ldp x26, x27, [x29, #264]
- ldr x28, [x29, #280]
- ldp x29, x30, [sp], #0x120
- ret
- .size curve25519,.-curve25519
- .text
- .align 2
- .globl fe_pow22523
- .type fe_pow22523, %function
-fe_pow22523:
- stp x29, x30, [sp, #-144]!
- add x29, sp, #0
- str x21, [x29, #136]
- # pow22523
- str x0, [x29, #112]
- str x1, [x29, #120]
- add x0, x29, #16
- bl fe_sq
- add x0, x29, #48
- add x1, x29, #16
- bl fe_sq
- add x1, x29, #48
- bl fe_sq
- ldr x1, [x29, #120]
- add x2, x29, #48
- bl fe_mul
- add x0, x29, #16
- add x1, x29, #16
- add x2, x29, #48
- bl fe_mul
- bl fe_sq
- add x1, x29, #48
- add x2, x29, #16
- bl fe_mul
- add x0, x29, #48
- add x1, x29, #16
- bl fe_sq
- mov x21, #4
- add x1, x29, #48
-L_fe_pow22523_1:
- bl fe_sq
- sub x21, x21, #1
- cmp x21, #0
- bne L_fe_pow22523_1
- add x0, x29, #16
- add x2, x29, #16
- bl fe_mul
- add x0, x29, #48
- add x1, x29, #16
- bl fe_sq
- mov x21, #9
- add x1, x29, #48
-L_fe_pow22523_2:
- bl fe_sq
- sub x21, x21, #1
- cmp x21, #0
- bne L_fe_pow22523_2
- add x2, x29, #16
- bl fe_mul
- add x0, x29, #0x50
- bl fe_sq
- mov x21, #19
- add x1, x29, #0x50
-L_fe_pow22523_3:
- bl fe_sq
- sub x21, x21, #1
- cmp x21, #0
- bne L_fe_pow22523_3
- add x0, x29, #48
- add x2, x29, #48
- bl fe_mul
- mov x21, #10
- add x1, x29, #48
-L_fe_pow22523_4:
- bl fe_sq
- sub x21, x21, #1
- cmp x21, #0
- bne L_fe_pow22523_4
- add x0, x29, #16
- add x2, x29, #16
- bl fe_mul
- add x0, x29, #48
- add x1, x29, #16
- bl fe_sq
- mov x21, #49
- add x1, x29, #48
-L_fe_pow22523_5:
- bl fe_sq
- sub x21, x21, #1
- cmp x21, #0
- bne L_fe_pow22523_5
- add x2, x29, #16
- bl fe_mul
- add x0, x29, #0x50
- bl fe_sq
- mov x21, #0x63
- add x1, x29, #0x50
-L_fe_pow22523_6:
- bl fe_sq
- sub x21, x21, #1
- cmp x21, #0
- bne L_fe_pow22523_6
- add x0, x29, #48
- add x2, x29, #48
- bl fe_mul
- mov x21, #50
- add x1, x29, #48
-L_fe_pow22523_7:
- bl fe_sq
- sub x21, x21, #1
- cmp x21, #0
- bne L_fe_pow22523_7
- add x0, x29, #16
- add x2, x29, #16
- bl fe_mul
- mov x21, #2
- add x1, x29, #16
-L_fe_pow22523_8:
- bl fe_sq
- sub x21, x21, #1
- cmp x21, #0
- bne L_fe_pow22523_8
- ldr x0, [x29, #112]
- ldr x2, [x29, #120]
- bl fe_mul
- ldr x21, [x29, #136]
- ldp x29, x30, [sp], #0x90
- ret
- .size fe_pow22523,.-fe_pow22523
- .text
- .align 2
- .globl fe_ge_to_p2
- .type fe_ge_to_p2, %function
-fe_ge_to_p2:
- stp x29, x30, [sp, #-112]!
- add x29, sp, #0
- str x17, [x29, #72]
- str x19, [x29, #80]
- stp x20, x21, [x29, #88]
- str x22, [x29, #104]
- str x1, [x29, #16]
- str x2, [x29, #24]
- str x3, [x29, #32]
- str x4, [x29, #40]
- str x5, [x29, #48]
- str x6, [x29, #56]
- ldr x1, [x29, #32]
- ldr x2, [x29, #56]
- # Multiply
- ldp x11, x12, [x1]
- ldp x13, x14, [x1, #16]
- ldp x15, x16, [x2]
- ldp x17, x19, [x2, #16]
- # A[0] * B[0]
- mul x3, x11, x15
- umulh x4, x11, x15
- # A[0] * B[1]
- mul x20, x11, x16
- umulh x5, x11, x16
- adds x4, x4, x20
- adc x5, x5, xzr
- # A[1] * B[0]
- mul x20, x12, x15
- umulh x21, x12, x15
- adds x4, x4, x20
- adcs x5, x5, x21
- adc x6, xzr, xzr
- # A[0] * B[2]
- mul x20, x11, x17
- umulh x21, x11, x17
- adds x5, x5, x20
- adc x6, x6, x21
- # A[1] * B[1]
- mul x20, x12, x16
- umulh x21, x12, x16
- adds x5, x5, x20
- adcs x6, x6, x21
- adc x7, xzr, xzr
- # A[2] * B[0]
- mul x20, x13, x15
- umulh x21, x13, x15
- adds x5, x5, x20
- adcs x6, x6, x21
- adc x7, x7, xzr
- # A[0] * B[3]
- mul x20, x11, x19
- umulh x21, x11, x19
- adds x6, x6, x20
- adcs x7, x7, x21
- adc x8, xzr, xzr
- # A[1] * B[2]
- mul x20, x12, x17
- umulh x21, x12, x17
- adds x6, x6, x20
- adcs x7, x7, x21
- adc x8, x8, xzr
- # A[2] * B[1]
- mul x20, x13, x16
- umulh x21, x13, x16
- adds x6, x6, x20
- adcs x7, x7, x21
- adc x8, x8, xzr
- # A[3] * B[0]
- mul x20, x14, x15
- umulh x21, x14, x15
- adds x6, x6, x20
- adcs x7, x7, x21
- adc x8, x8, xzr
- # A[1] * B[3]
- mul x20, x12, x19
- umulh x21, x12, x19
- adds x7, x7, x20
- adcs x8, x8, x21
- adc x9, xzr, xzr
- # A[2] * B[2]
- mul x20, x13, x17
- umulh x21, x13, x17
- adds x7, x7, x20
- adcs x8, x8, x21
- adc x9, x9, xzr
- # A[3] * B[1]
- mul x20, x14, x16
- umulh x21, x14, x16
- adds x7, x7, x20
- adcs x8, x8, x21
- adc x9, x9, xzr
- # A[2] * B[3]
- mul x20, x13, x19
- umulh x21, x13, x19
- adds x8, x8, x20
- adcs x9, x9, x21
- adc x10, xzr, xzr
- # A[3] * B[2]
- mul x20, x14, x17
- umulh x21, x14, x17
- adds x8, x8, x20
- adcs x9, x9, x21
- adc x10, x10, xzr
- # A[3] * B[3]
- mul x20, x14, x19
- umulh x21, x14, x19
- adds x9, x9, x20
- adc x10, x10, x21
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x10, x10, x9, #63
- extr x9, x9, x8, #63
- extr x8, x8, x7, #63
- extr x7, x7, x6, #63
- and x6, x6, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x20, #19
- mul x21, x20, x7
- umulh x7, x20, x7
- adds x3, x3, x21
- mul x21, x20, x8
- umulh x8, x20, x8
- adcs x4, x4, x21
- mul x21, x20, x9
- umulh x9, x20, x9
- adcs x5, x5, x21
- mul x21, x20, x10
- umulh x22, x20, x10
- adcs x6, x6, x21
- adc x22, x22, xzr
- # Add remaining product results in
- adds x4, x4, x7
- adcs x5, x5, x8
- adcs x6, x6, x9
- adc x22, x22, xzr
- # Overflow
- extr x22, x22, x6, #63
- mul x22, x22, x20
- and x6, x6, #0x7fffffffffffffff
- adds x3, x3, x22
- adcs x4, x4, xzr
- adcs x5, x5, xzr
- adc x6, x6, xzr
- # Reduce if top bit set
- and x22, x20, x6, asr 63
- and x6, x6, #0x7fffffffffffffff
- adds x3, x3, x22
- adcs x4, x4, xzr
- adcs x5, x5, xzr
- adc x6, x6, xzr
- # Store
- stp x3, x4, [x0]
- stp x5, x6, [x0, #16]
- ldr x0, [x29, #16]
- ldr x1, [x29, #40]
- ldr x2, [x29, #48]
- # Multiply
- ldp x11, x12, [x1]
- ldp x13, x14, [x1, #16]
- ldp x15, x16, [x2]
- ldp x17, x19, [x2, #16]
- # A[0] * B[0]
- mul x3, x11, x15
- umulh x4, x11, x15
- # A[0] * B[1]
- mul x20, x11, x16
- umulh x5, x11, x16
- adds x4, x4, x20
- adc x5, x5, xzr
- # A[1] * B[0]
- mul x20, x12, x15
- umulh x21, x12, x15
- adds x4, x4, x20
- adcs x5, x5, x21
- adc x6, xzr, xzr
- # A[0] * B[2]
- mul x20, x11, x17
- umulh x21, x11, x17
- adds x5, x5, x20
- adc x6, x6, x21
- # A[1] * B[1]
- mul x20, x12, x16
- umulh x21, x12, x16
- adds x5, x5, x20
- adcs x6, x6, x21
- adc x7, xzr, xzr
- # A[2] * B[0]
- mul x20, x13, x15
- umulh x21, x13, x15
- adds x5, x5, x20
- adcs x6, x6, x21
- adc x7, x7, xzr
- # A[0] * B[3]
- mul x20, x11, x19
- umulh x21, x11, x19
- adds x6, x6, x20
- adcs x7, x7, x21
- adc x8, xzr, xzr
- # A[1] * B[2]
- mul x20, x12, x17
- umulh x21, x12, x17
- adds x6, x6, x20
- adcs x7, x7, x21
- adc x8, x8, xzr
- # A[2] * B[1]
- mul x20, x13, x16
- umulh x21, x13, x16
- adds x6, x6, x20
- adcs x7, x7, x21
- adc x8, x8, xzr
- # A[3] * B[0]
- mul x20, x14, x15
- umulh x21, x14, x15
- adds x6, x6, x20
- adcs x7, x7, x21
- adc x8, x8, xzr
- # A[1] * B[3]
- mul x20, x12, x19
- umulh x21, x12, x19
- adds x7, x7, x20
- adcs x8, x8, x21
- adc x9, xzr, xzr
- # A[2] * B[2]
- mul x20, x13, x17
- umulh x21, x13, x17
- adds x7, x7, x20
- adcs x8, x8, x21
- adc x9, x9, xzr
- # A[3] * B[1]
- mul x20, x14, x16
- umulh x21, x14, x16
- adds x7, x7, x20
- adcs x8, x8, x21
- adc x9, x9, xzr
- # A[2] * B[3]
- mul x20, x13, x19
- umulh x21, x13, x19
- adds x8, x8, x20
- adcs x9, x9, x21
- adc x10, xzr, xzr
- # A[3] * B[2]
- mul x20, x14, x17
- umulh x21, x14, x17
- adds x8, x8, x20
- adcs x9, x9, x21
- adc x10, x10, xzr
- # A[3] * B[3]
- mul x20, x14, x19
- umulh x21, x14, x19
- adds x9, x9, x20
- adc x10, x10, x21
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x10, x10, x9, #63
- extr x9, x9, x8, #63
- extr x8, x8, x7, #63
- extr x7, x7, x6, #63
- and x6, x6, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x20, #19
- mul x21, x20, x7
- umulh x7, x20, x7
- adds x3, x3, x21
- mul x21, x20, x8
- umulh x8, x20, x8
- adcs x4, x4, x21
- mul x21, x20, x9
- umulh x9, x20, x9
- adcs x5, x5, x21
- mul x21, x20, x10
- umulh x22, x20, x10
- adcs x6, x6, x21
- adc x22, x22, xzr
- # Add remaining product results in
- adds x4, x4, x7
- adcs x5, x5, x8
- adcs x6, x6, x9
- adc x22, x22, xzr
- # Overflow
- extr x22, x22, x6, #63
- mul x22, x22, x20
- and x6, x6, #0x7fffffffffffffff
- adds x3, x3, x22
- adcs x4, x4, xzr
- adcs x5, x5, xzr
- adc x6, x6, xzr
- # Reduce if top bit set
- and x22, x20, x6, asr 63
- and x6, x6, #0x7fffffffffffffff
- adds x3, x3, x22
- adcs x4, x4, xzr
- adcs x5, x5, xzr
- adc x6, x6, xzr
- # Store
- stp x3, x4, [x0]
- stp x5, x6, [x0, #16]
- ldr x0, [x29, #24]
- ldr x2, [x29, #56]
- # Multiply
- ldp x11, x12, [x2]
- ldp x13, x14, [x2, #16]
- # A[0] * B[0]
- mul x3, x15, x11
- umulh x4, x15, x11
- # A[0] * B[1]
- mul x20, x15, x12
- umulh x5, x15, x12
- adds x4, x4, x20
- adc x5, x5, xzr
- # A[1] * B[0]
- mul x20, x16, x11
- umulh x21, x16, x11
- adds x4, x4, x20
- adcs x5, x5, x21
- adc x6, xzr, xzr
- # A[0] * B[2]
- mul x20, x15, x13
- umulh x21, x15, x13
- adds x5, x5, x20
- adc x6, x6, x21
- # A[1] * B[1]
- mul x20, x16, x12
- umulh x21, x16, x12
- adds x5, x5, x20
- adcs x6, x6, x21
- adc x7, xzr, xzr
- # A[2] * B[0]
- mul x20, x17, x11
- umulh x21, x17, x11
- adds x5, x5, x20
- adcs x6, x6, x21
- adc x7, x7, xzr
- # A[0] * B[3]
- mul x20, x15, x14
- umulh x21, x15, x14
- adds x6, x6, x20
- adcs x7, x7, x21
- adc x8, xzr, xzr
- # A[1] * B[2]
- mul x20, x16, x13
- umulh x21, x16, x13
- adds x6, x6, x20
- adcs x7, x7, x21
- adc x8, x8, xzr
- # A[2] * B[1]
- mul x20, x17, x12
- umulh x21, x17, x12
- adds x6, x6, x20
- adcs x7, x7, x21
- adc x8, x8, xzr
- # A[3] * B[0]
- mul x20, x19, x11
- umulh x21, x19, x11
- adds x6, x6, x20
- adcs x7, x7, x21
- adc x8, x8, xzr
- # A[1] * B[3]
- mul x20, x16, x14
- umulh x21, x16, x14
- adds x7, x7, x20
- adcs x8, x8, x21
- adc x9, xzr, xzr
- # A[2] * B[2]
- mul x20, x17, x13
- umulh x21, x17, x13
- adds x7, x7, x20
- adcs x8, x8, x21
- adc x9, x9, xzr
- # A[3] * B[1]
- mul x20, x19, x12
- umulh x21, x19, x12
- adds x7, x7, x20
- adcs x8, x8, x21
- adc x9, x9, xzr
- # A[2] * B[3]
- mul x20, x17, x14
- umulh x21, x17, x14
- adds x8, x8, x20
- adcs x9, x9, x21
- adc x10, xzr, xzr
- # A[3] * B[2]
- mul x20, x19, x13
- umulh x21, x19, x13
- adds x8, x8, x20
- adcs x9, x9, x21
- adc x10, x10, xzr
- # A[3] * B[3]
- mul x20, x19, x14
- umulh x21, x19, x14
- adds x9, x9, x20
- adc x10, x10, x21
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x10, x10, x9, #63
- extr x9, x9, x8, #63
- extr x8, x8, x7, #63
- extr x7, x7, x6, #63
- and x6, x6, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x20, #19
- mul x21, x20, x7
- umulh x7, x20, x7
- adds x3, x3, x21
- mul x21, x20, x8
- umulh x8, x20, x8
- adcs x4, x4, x21
- mul x21, x20, x9
- umulh x9, x20, x9
- adcs x5, x5, x21
- mul x21, x20, x10
- umulh x22, x20, x10
- adcs x6, x6, x21
- adc x22, x22, xzr
- # Add remaining product results in
- adds x4, x4, x7
- adcs x5, x5, x8
- adcs x6, x6, x9
- adc x22, x22, xzr
- # Overflow
- extr x22, x22, x6, #63
- mul x22, x22, x20
- and x6, x6, #0x7fffffffffffffff
- adds x3, x3, x22
- adcs x4, x4, xzr
- adcs x5, x5, xzr
- adc x6, x6, xzr
- # Reduce if top bit set
- and x22, x20, x6, asr 63
- and x6, x6, #0x7fffffffffffffff
- adds x3, x3, x22
- adcs x4, x4, xzr
- adcs x5, x5, xzr
- adc x6, x6, xzr
- # Store
- stp x3, x4, [x0]
- stp x5, x6, [x0, #16]
- ldr x17, [x29, #72]
- ldr x19, [x29, #80]
- ldp x20, x21, [x29, #88]
- ldr x22, [x29, #104]
- ldp x29, x30, [sp], #0x70
- ret
- .size fe_ge_to_p2,.-fe_ge_to_p2
- .text
- .align 2
- .globl fe_ge_to_p3
- .type fe_ge_to_p3, %function
-fe_ge_to_p3:
- stp x29, x30, [sp, #-160]!
- add x29, sp, #0
- str x17, [x29, #88]
- str x19, [x29, #96]
- stp x20, x21, [x29, #104]
- stp x22, x23, [x29, #120]
- stp x24, x25, [x29, #136]
- str x26, [x29, #152]
- str x1, [x29, #16]
- str x2, [x29, #24]
- str x3, [x29, #32]
- str x4, [x29, #40]
- str x5, [x29, #48]
- str x6, [x29, #56]
- str x7, [x29, #64]
- ldr x1, [x29, #40]
- ldr x2, [x29, #64]
- # Multiply
- ldp x11, x12, [x1]
- ldp x13, x14, [x1, #16]
- ldp x15, x16, [x2]
- ldp x17, x19, [x2, #16]
- # A[0] * B[0]
- mul x3, x11, x15
- umulh x4, x11, x15
- # A[0] * B[1]
- mul x24, x11, x16
- umulh x5, x11, x16
- adds x4, x4, x24
- adc x5, x5, xzr
- # A[1] * B[0]
- mul x24, x12, x15
- umulh x25, x12, x15
- adds x4, x4, x24
- adcs x5, x5, x25
- adc x6, xzr, xzr
- # A[0] * B[2]
- mul x24, x11, x17
- umulh x25, x11, x17
- adds x5, x5, x24
- adc x6, x6, x25
- # A[1] * B[1]
- mul x24, x12, x16
- umulh x25, x12, x16
- adds x5, x5, x24
- adcs x6, x6, x25
- adc x7, xzr, xzr
- # A[2] * B[0]
- mul x24, x13, x15
- umulh x25, x13, x15
- adds x5, x5, x24
- adcs x6, x6, x25
- adc x7, x7, xzr
- # A[0] * B[3]
- mul x24, x11, x19
- umulh x25, x11, x19
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, xzr, xzr
- # A[1] * B[2]
- mul x24, x12, x17
- umulh x25, x12, x17
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, x8, xzr
- # A[2] * B[1]
- mul x24, x13, x16
- umulh x25, x13, x16
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, x8, xzr
- # A[3] * B[0]
- mul x24, x14, x15
- umulh x25, x14, x15
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, x8, xzr
- # A[1] * B[3]
- mul x24, x12, x19
- umulh x25, x12, x19
- adds x7, x7, x24
- adcs x8, x8, x25
- adc x9, xzr, xzr
- # A[2] * B[2]
- mul x24, x13, x17
- umulh x25, x13, x17
- adds x7, x7, x24
- adcs x8, x8, x25
- adc x9, x9, xzr
- # A[3] * B[1]
- mul x24, x14, x16
- umulh x25, x14, x16
- adds x7, x7, x24
- adcs x8, x8, x25
- adc x9, x9, xzr
- # A[2] * B[3]
- mul x24, x13, x19
- umulh x25, x13, x19
- adds x8, x8, x24
- adcs x9, x9, x25
- adc x10, xzr, xzr
- # A[3] * B[2]
- mul x24, x14, x17
- umulh x25, x14, x17
- adds x8, x8, x24
- adcs x9, x9, x25
- adc x10, x10, xzr
- # A[3] * B[3]
- mul x24, x14, x19
- umulh x25, x14, x19
- adds x9, x9, x24
- adc x10, x10, x25
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x10, x10, x9, #63
- extr x9, x9, x8, #63
- extr x8, x8, x7, #63
- extr x7, x7, x6, #63
- and x6, x6, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x24, #19
- mul x25, x24, x7
- umulh x7, x24, x7
- adds x3, x3, x25
- mul x25, x24, x8
- umulh x8, x24, x8
- adcs x4, x4, x25
- mul x25, x24, x9
- umulh x9, x24, x9
- adcs x5, x5, x25
- mul x25, x24, x10
- umulh x26, x24, x10
- adcs x6, x6, x25
- adc x26, x26, xzr
- # Add remaining product results in
- adds x4, x4, x7
- adcs x5, x5, x8
- adcs x6, x6, x9
- adc x26, x26, xzr
- # Overflow
- extr x26, x26, x6, #63
- mul x26, x26, x24
- and x6, x6, #0x7fffffffffffffff
- adds x3, x3, x26
- adcs x4, x4, xzr
- adcs x5, x5, xzr
- adc x6, x6, xzr
- # Reduce if top bit set
- and x26, x24, x6, asr 63
- and x6, x6, #0x7fffffffffffffff
- adds x3, x3, x26
- adcs x4, x4, xzr
- adcs x5, x5, xzr
- adc x6, x6, xzr
- # Store
- stp x3, x4, [x0]
- stp x5, x6, [x0, #16]
- ldr x0, [x29, #32]
- ldr x2, [x29, #48]
- # Multiply
- ldp x20, x21, [x2]
- ldp x22, x23, [x2, #16]
- # A[0] * B[0]
- mul x3, x11, x20
- umulh x4, x11, x20
- # A[0] * B[1]
- mul x24, x11, x21
- umulh x5, x11, x21
- adds x4, x4, x24
- adc x5, x5, xzr
- # A[1] * B[0]
- mul x24, x12, x20
- umulh x25, x12, x20
- adds x4, x4, x24
- adcs x5, x5, x25
- adc x6, xzr, xzr
- # A[0] * B[2]
- mul x24, x11, x22
- umulh x25, x11, x22
- adds x5, x5, x24
- adc x6, x6, x25
- # A[1] * B[1]
- mul x24, x12, x21
- umulh x25, x12, x21
- adds x5, x5, x24
- adcs x6, x6, x25
- adc x7, xzr, xzr
- # A[2] * B[0]
- mul x24, x13, x20
- umulh x25, x13, x20
- adds x5, x5, x24
- adcs x6, x6, x25
- adc x7, x7, xzr
- # A[0] * B[3]
- mul x24, x11, x23
- umulh x25, x11, x23
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, xzr, xzr
- # A[1] * B[2]
- mul x24, x12, x22
- umulh x25, x12, x22
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, x8, xzr
- # A[2] * B[1]
- mul x24, x13, x21
- umulh x25, x13, x21
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, x8, xzr
- # A[3] * B[0]
- mul x24, x14, x20
- umulh x25, x14, x20
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, x8, xzr
- # A[1] * B[3]
- mul x24, x12, x23
- umulh x25, x12, x23
- adds x7, x7, x24
- adcs x8, x8, x25
- adc x9, xzr, xzr
- # A[2] * B[2]
- mul x24, x13, x22
- umulh x25, x13, x22
- adds x7, x7, x24
- adcs x8, x8, x25
- adc x9, x9, xzr
- # A[3] * B[1]
- mul x24, x14, x21
- umulh x25, x14, x21
- adds x7, x7, x24
- adcs x8, x8, x25
- adc x9, x9, xzr
- # A[2] * B[3]
- mul x24, x13, x23
- umulh x25, x13, x23
- adds x8, x8, x24
- adcs x9, x9, x25
- adc x10, xzr, xzr
- # A[3] * B[2]
- mul x24, x14, x22
- umulh x25, x14, x22
- adds x8, x8, x24
- adcs x9, x9, x25
- adc x10, x10, xzr
- # A[3] * B[3]
- mul x24, x14, x23
- umulh x25, x14, x23
- adds x9, x9, x24
- adc x10, x10, x25
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x10, x10, x9, #63
- extr x9, x9, x8, #63
- extr x8, x8, x7, #63
- extr x7, x7, x6, #63
- and x6, x6, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x24, #19
- mul x25, x24, x7
- umulh x7, x24, x7
- adds x3, x3, x25
- mul x25, x24, x8
- umulh x8, x24, x8
- adcs x4, x4, x25
- mul x25, x24, x9
- umulh x9, x24, x9
- adcs x5, x5, x25
- mul x25, x24, x10
- umulh x26, x24, x10
- adcs x6, x6, x25
- adc x26, x26, xzr
- # Add remaining product results in
- adds x4, x4, x7
- adcs x5, x5, x8
- adcs x6, x6, x9
- adc x26, x26, xzr
- # Overflow
- extr x26, x26, x6, #63
- mul x26, x26, x24
- and x6, x6, #0x7fffffffffffffff
- adds x3, x3, x26
- adcs x4, x4, xzr
- adcs x5, x5, xzr
- adc x6, x6, xzr
- # Reduce if top bit set
- and x26, x24, x6, asr 63
- and x6, x6, #0x7fffffffffffffff
- adds x3, x3, x26
- adcs x4, x4, xzr
- adcs x5, x5, xzr
- adc x6, x6, xzr
- # Store
- stp x3, x4, [x0]
- stp x5, x6, [x0, #16]
- ldr x0, [x29, #16]
- ldr x2, [x29, #56]
- # Multiply
- ldp x11, x12, [x2]
- ldp x13, x14, [x2, #16]
- # A[0] * B[0]
- mul x3, x20, x11
- umulh x4, x20, x11
- # A[0] * B[1]
- mul x24, x20, x12
- umulh x5, x20, x12
- adds x4, x4, x24
- adc x5, x5, xzr
- # A[1] * B[0]
- mul x24, x21, x11
- umulh x25, x21, x11
- adds x4, x4, x24
- adcs x5, x5, x25
- adc x6, xzr, xzr
- # A[0] * B[2]
- mul x24, x20, x13
- umulh x25, x20, x13
- adds x5, x5, x24
- adc x6, x6, x25
- # A[1] * B[1]
- mul x24, x21, x12
- umulh x25, x21, x12
- adds x5, x5, x24
- adcs x6, x6, x25
- adc x7, xzr, xzr
- # A[2] * B[0]
- mul x24, x22, x11
- umulh x25, x22, x11
- adds x5, x5, x24
- adcs x6, x6, x25
- adc x7, x7, xzr
- # A[0] * B[3]
- mul x24, x20, x14
- umulh x25, x20, x14
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, xzr, xzr
- # A[1] * B[2]
- mul x24, x21, x13
- umulh x25, x21, x13
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, x8, xzr
- # A[2] * B[1]
- mul x24, x22, x12
- umulh x25, x22, x12
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, x8, xzr
- # A[3] * B[0]
- mul x24, x23, x11
- umulh x25, x23, x11
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, x8, xzr
- # A[1] * B[3]
- mul x24, x21, x14
- umulh x25, x21, x14
- adds x7, x7, x24
- adcs x8, x8, x25
- adc x9, xzr, xzr
- # A[2] * B[2]
- mul x24, x22, x13
- umulh x25, x22, x13
- adds x7, x7, x24
- adcs x8, x8, x25
- adc x9, x9, xzr
- # A[3] * B[1]
- mul x24, x23, x12
- umulh x25, x23, x12
- adds x7, x7, x24
- adcs x8, x8, x25
- adc x9, x9, xzr
- # A[2] * B[3]
- mul x24, x22, x14
- umulh x25, x22, x14
- adds x8, x8, x24
- adcs x9, x9, x25
- adc x10, xzr, xzr
- # A[3] * B[2]
- mul x24, x23, x13
- umulh x25, x23, x13
- adds x8, x8, x24
- adcs x9, x9, x25
- adc x10, x10, xzr
- # A[3] * B[3]
- mul x24, x23, x14
- umulh x25, x23, x14
- adds x9, x9, x24
- adc x10, x10, x25
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x10, x10, x9, #63
- extr x9, x9, x8, #63
- extr x8, x8, x7, #63
- extr x7, x7, x6, #63
- and x6, x6, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x24, #19
- mul x25, x24, x7
- umulh x7, x24, x7
- adds x3, x3, x25
- mul x25, x24, x8
- umulh x8, x24, x8
- adcs x4, x4, x25
- mul x25, x24, x9
- umulh x9, x24, x9
- adcs x5, x5, x25
- mul x25, x24, x10
- umulh x26, x24, x10
- adcs x6, x6, x25
- adc x26, x26, xzr
- # Add remaining product results in
- adds x4, x4, x7
- adcs x5, x5, x8
- adcs x6, x6, x9
- adc x26, x26, xzr
- # Overflow
- extr x26, x26, x6, #63
- mul x26, x26, x24
- and x6, x6, #0x7fffffffffffffff
- adds x3, x3, x26
- adcs x4, x4, xzr
- adcs x5, x5, xzr
- adc x6, x6, xzr
- # Reduce if top bit set
- and x26, x24, x6, asr 63
- and x6, x6, #0x7fffffffffffffff
- adds x3, x3, x26
- adcs x4, x4, xzr
- adcs x5, x5, xzr
- adc x6, x6, xzr
- # Store
- stp x3, x4, [x0]
- stp x5, x6, [x0, #16]
- ldr x0, [x29, #24]
- # Multiply
- # A[0] * B[0]
- mul x3, x11, x15
- umulh x4, x11, x15
- # A[0] * B[1]
- mul x24, x11, x16
- umulh x5, x11, x16
- adds x4, x4, x24
- adc x5, x5, xzr
- # A[1] * B[0]
- mul x24, x12, x15
- umulh x25, x12, x15
- adds x4, x4, x24
- adcs x5, x5, x25
- adc x6, xzr, xzr
- # A[0] * B[2]
- mul x24, x11, x17
- umulh x25, x11, x17
- adds x5, x5, x24
- adc x6, x6, x25
- # A[1] * B[1]
- mul x24, x12, x16
- umulh x25, x12, x16
- adds x5, x5, x24
- adcs x6, x6, x25
- adc x7, xzr, xzr
- # A[2] * B[0]
- mul x24, x13, x15
- umulh x25, x13, x15
- adds x5, x5, x24
- adcs x6, x6, x25
- adc x7, x7, xzr
- # A[0] * B[3]
- mul x24, x11, x19
- umulh x25, x11, x19
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, xzr, xzr
- # A[1] * B[2]
- mul x24, x12, x17
- umulh x25, x12, x17
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, x8, xzr
- # A[2] * B[1]
- mul x24, x13, x16
- umulh x25, x13, x16
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, x8, xzr
- # A[3] * B[0]
- mul x24, x14, x15
- umulh x25, x14, x15
- adds x6, x6, x24
- adcs x7, x7, x25
- adc x8, x8, xzr
- # A[1] * B[3]
- mul x24, x12, x19
- umulh x25, x12, x19
- adds x7, x7, x24
- adcs x8, x8, x25
- adc x9, xzr, xzr
- # A[2] * B[2]
- mul x24, x13, x17
- umulh x25, x13, x17
- adds x7, x7, x24
- adcs x8, x8, x25
- adc x9, x9, xzr
- # A[3] * B[1]
- mul x24, x14, x16
- umulh x25, x14, x16
- adds x7, x7, x24
- adcs x8, x8, x25
- adc x9, x9, xzr
- # A[2] * B[3]
- mul x24, x13, x19
- umulh x25, x13, x19
- adds x8, x8, x24
- adcs x9, x9, x25
- adc x10, xzr, xzr
- # A[3] * B[2]
- mul x24, x14, x17
- umulh x25, x14, x17
- adds x8, x8, x24
- adcs x9, x9, x25
- adc x10, x10, xzr
- # A[3] * B[3]
- mul x24, x14, x19
- umulh x25, x14, x19
- adds x9, x9, x24
- adc x10, x10, x25
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x10, x10, x9, #63
- extr x9, x9, x8, #63
- extr x8, x8, x7, #63
- extr x7, x7, x6, #63
- and x6, x6, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x24, #19
- mul x25, x24, x7
- umulh x7, x24, x7
- adds x3, x3, x25
- mul x25, x24, x8
- umulh x8, x24, x8
- adcs x4, x4, x25
- mul x25, x24, x9
- umulh x9, x24, x9
- adcs x5, x5, x25
- mul x25, x24, x10
- umulh x26, x24, x10
- adcs x6, x6, x25
- adc x26, x26, xzr
- # Add remaining product results in
- adds x4, x4, x7
- adcs x5, x5, x8
- adcs x6, x6, x9
- adc x26, x26, xzr
- # Overflow
- extr x26, x26, x6, #63
- mul x26, x26, x24
- and x6, x6, #0x7fffffffffffffff
- adds x3, x3, x26
- adcs x4, x4, xzr
- adcs x5, x5, xzr
- adc x6, x6, xzr
- # Reduce if top bit set
- and x26, x24, x6, asr 63
- and x6, x6, #0x7fffffffffffffff
- adds x3, x3, x26
- adcs x4, x4, xzr
- adcs x5, x5, xzr
- adc x6, x6, xzr
- # Store
- stp x3, x4, [x0]
- stp x5, x6, [x0, #16]
- ldr x17, [x29, #88]
- ldr x19, [x29, #96]
- ldp x20, x21, [x29, #104]
- ldp x22, x23, [x29, #120]
- ldp x24, x25, [x29, #136]
- ldr x26, [x29, #152]
- ldp x29, x30, [sp], #0xa0
- ret
- .size fe_ge_to_p3,.-fe_ge_to_p3
- .text
- .align 2
- .globl fe_ge_dbl
- .type fe_ge_dbl, %function
-fe_ge_dbl:
- stp x29, x30, [sp, #-176]!
- add x29, sp, #0
- str x17, [x29, #88]
- str x19, [x29, #96]
- stp x20, x21, [x29, #104]
- stp x22, x23, [x29, #120]
- stp x24, x25, [x29, #136]
- stp x26, x27, [x29, #152]
- str x28, [x29, #168]
- str x0, [x29, #16]
- str x1, [x29, #24]
- str x2, [x29, #32]
- str x3, [x29, #40]
- str x4, [x29, #48]
- str x5, [x29, #56]
- str x6, [x29, #64]
- ldr x1, [x29, #48]
- # Square
- ldp x12, x13, [x1]
- ldp x14, x15, [x1, #16]
- # A[0] * A[1]
- mul x5, x12, x13
- umulh x6, x12, x13
- # A[0] * A[2]
- mul x25, x12, x14
- umulh x7, x12, x14
- adds x6, x6, x25
- adc x7, x7, xzr
- # A[0] * A[3]
- mul x25, x12, x15
- umulh x8, x12, x15
- adds x7, x7, x25
- adc x8, x8, xzr
- # A[1] * A[2]
- mul x25, x13, x14
- umulh x26, x13, x14
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, xzr, xzr
- # A[1] * A[3]
- mul x25, x13, x15
- umulh x26, x13, x15
- adds x8, x8, x25
- adc x9, x9, x26
- # A[2] * A[3]
- mul x25, x14, x15
- umulh x10, x14, x15
- adds x9, x9, x25
- adc x10, x10, xzr
- # Double
- adds x5, x5, x5
- adcs x6, x6, x6
- adcs x7, x7, x7
- adcs x8, x8, x8
- adcs x9, x9, x9
- adcs x10, x10, x10
- adc x11, xzr, xzr
- # A[0] * A[0]
- mul x4, x12, x12
- umulh x27, x12, x12
- # A[1] * A[1]
- mul x25, x13, x13
- umulh x26, x13, x13
- adds x5, x5, x27
- adcs x6, x6, x25
- adc x27, x26, xzr
- # A[2] * A[2]
- mul x25, x14, x14
- umulh x26, x14, x14
- adds x7, x7, x27
- adcs x8, x8, x25
- adc x27, x26, xzr
- # A[3] * A[3]
- mul x25, x15, x15
- umulh x26, x15, x15
- adds x9, x9, x27
- adcs x10, x10, x25
- adc x11, x11, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x11, x11, x10, #63
- extr x10, x10, x9, #63
- extr x9, x9, x8, #63
- extr x8, x8, x7, #63
- and x7, x7, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x8
- umulh x8, x25, x8
- adds x4, x4, x26
- mul x26, x25, x9
- umulh x9, x25, x9
- adcs x5, x5, x26
- mul x26, x25, x10
- umulh x10, x25, x10
- adcs x6, x6, x26
- mul x26, x25, x11
- umulh x27, x25, x11
- adcs x7, x7, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x5, x5, x8
- adcs x6, x6, x9
- adcs x7, x7, x10
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x7, #63
- mul x27, x27, x25
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Reduce if top bit set
- and x27, x25, x7, asr 63
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Store
- stp x4, x5, [x0]
- stp x6, x7, [x0, #16]
- ldr x0, [x29, #32]
- ldr x1, [x29, #56]
- # Square
- ldp x21, x22, [x1]
- ldp x23, x24, [x1, #16]
- # A[0] * A[1]
- mul x9, x21, x22
- umulh x10, x21, x22
- # A[0] * A[2]
- mul x25, x21, x23
- umulh x11, x21, x23
- adds x10, x10, x25
- adc x11, x11, xzr
- # A[0] * A[3]
- mul x25, x21, x24
- umulh x16, x21, x24
- adds x11, x11, x25
- adc x16, x16, xzr
- # A[1] * A[2]
- mul x25, x22, x23
- umulh x26, x22, x23
- adds x11, x11, x25
- adcs x16, x16, x26
- adc x17, xzr, xzr
- # A[1] * A[3]
- mul x25, x22, x24
- umulh x26, x22, x24
- adds x16, x16, x25
- adc x17, x17, x26
- # A[2] * A[3]
- mul x25, x23, x24
- umulh x19, x23, x24
- adds x17, x17, x25
- adc x19, x19, xzr
- # Double
- adds x9, x9, x9
- adcs x10, x10, x10
- adcs x11, x11, x11
- adcs x16, x16, x16
- adcs x17, x17, x17
- adcs x19, x19, x19
- adc x20, xzr, xzr
- # A[0] * A[0]
- mul x8, x21, x21
- umulh x27, x21, x21
- # A[1] * A[1]
- mul x25, x22, x22
- umulh x26, x22, x22
- adds x9, x9, x27
- adcs x10, x10, x25
- adc x27, x26, xzr
- # A[2] * A[2]
- mul x25, x23, x23
- umulh x26, x23, x23
- adds x11, x11, x27
- adcs x16, x16, x25
- adc x27, x26, xzr
- # A[3] * A[3]
- mul x25, x24, x24
- umulh x26, x24, x24
- adds x17, x17, x27
- adcs x19, x19, x25
- adc x20, x20, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x20, x20, x19, #63
- extr x19, x19, x17, #63
- extr x17, x17, x16, #63
- extr x16, x16, x11, #63
- and x11, x11, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x16
- umulh x16, x25, x16
- adds x8, x8, x26
- mul x26, x25, x17
- umulh x17, x25, x17
- adcs x9, x9, x26
- mul x26, x25, x19
- umulh x19, x25, x19
- adcs x10, x10, x26
- mul x26, x25, x20
- umulh x27, x25, x20
- adcs x11, x11, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x9, x9, x16
- adcs x10, x10, x17
- adcs x11, x11, x19
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x11, #63
- mul x27, x27, x25
- and x11, x11, #0x7fffffffffffffff
- adds x8, x8, x27
- adcs x9, x9, xzr
- adcs x10, x10, xzr
- adc x11, x11, xzr
- # Reduce if top bit set
- and x27, x25, x11, asr 63
- and x11, x11, #0x7fffffffffffffff
- adds x8, x8, x27
- adcs x9, x9, xzr
- adcs x10, x10, xzr
- adc x11, x11, xzr
- # Store
- stp x8, x9, [x0]
- stp x10, x11, [x0, #16]
- ldr x0, [x29, #24]
- # Add
- adds x12, x12, x21
- adcs x13, x13, x22
- adcs x14, x14, x23
- adc x15, x15, x24
- mov x25, #-19
- asr x28, x15, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x12, x12, x25
- sbcs x13, x13, x28
- sbcs x14, x14, x28
- sbc x15, x15, x26
- ldr x0, [x29, #40]
- # Square
- # A[0] * A[1]
- mul x17, x12, x13
- umulh x19, x12, x13
- # A[0] * A[2]
- mul x25, x12, x14
- umulh x20, x12, x14
- adds x19, x19, x25
- adc x20, x20, xzr
- # A[0] * A[3]
- mul x25, x12, x15
- umulh x21, x12, x15
- adds x20, x20, x25
- adc x21, x21, xzr
- # A[1] * A[2]
- mul x25, x13, x14
- umulh x26, x13, x14
- adds x20, x20, x25
- adcs x21, x21, x26
- adc x22, xzr, xzr
- # A[1] * A[3]
- mul x25, x13, x15
- umulh x26, x13, x15
- adds x21, x21, x25
- adc x22, x22, x26
- # A[2] * A[3]
- mul x25, x14, x15
- umulh x23, x14, x15
- adds x22, x22, x25
- adc x23, x23, xzr
- # Double
- adds x17, x17, x17
- adcs x19, x19, x19
- adcs x20, x20, x20
- adcs x21, x21, x21
- adcs x22, x22, x22
- adcs x23, x23, x23
- adc x24, xzr, xzr
- # A[0] * A[0]
- mul x16, x12, x12
- umulh x27, x12, x12
- # A[1] * A[1]
- mul x25, x13, x13
- umulh x26, x13, x13
- adds x17, x17, x27
- adcs x19, x19, x25
- adc x27, x26, xzr
- # A[2] * A[2]
- mul x25, x14, x14
- umulh x26, x14, x14
- adds x20, x20, x27
- adcs x21, x21, x25
- adc x27, x26, xzr
- # A[3] * A[3]
- mul x25, x15, x15
- umulh x26, x15, x15
- adds x22, x22, x27
- adcs x23, x23, x25
- adc x24, x24, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x24, x24, x23, #63
- extr x23, x23, x22, #63
- extr x22, x22, x21, #63
- extr x21, x21, x20, #63
- and x20, x20, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x21
- umulh x21, x25, x21
- adds x16, x16, x26
- mul x26, x25, x22
- umulh x22, x25, x22
- adcs x17, x17, x26
- mul x26, x25, x23
- umulh x23, x25, x23
- adcs x19, x19, x26
- mul x26, x25, x24
- umulh x27, x25, x24
- adcs x20, x20, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x17, x17, x21
- adcs x19, x19, x22
- adcs x20, x20, x23
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x20, #63
- mul x27, x27, x25
- and x20, x20, #0x7fffffffffffffff
- adds x16, x16, x27
- adcs x17, x17, xzr
- adcs x19, x19, xzr
- adc x20, x20, xzr
- # Reduce if top bit set
- and x27, x25, x20, asr 63
- and x20, x20, #0x7fffffffffffffff
- adds x16, x16, x27
- adcs x17, x17, xzr
- adcs x19, x19, xzr
- adc x20, x20, xzr
- # Store
- stp x16, x17, [x0]
- stp x19, x20, [x0, #16]
- ldr x0, [x29, #24]
- ldr x1, [x29, #32]
- # Add
- adds x12, x8, x4
- adcs x13, x9, x5
- adcs x14, x10, x6
- adc x15, x11, x7
- mov x25, #-19
- asr x28, x15, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x12, x12, x25
- sbcs x13, x13, x28
- sbcs x14, x14, x28
- sbc x15, x15, x26
- # Sub
- subs x21, x8, x4
- sbcs x22, x9, x5
- sbcs x23, x10, x6
- sbcs x24, x11, x7
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x21, x21, x25
- adcs x22, x22, x28
- adcs x23, x23, x28
- adc x24, x24, x26
- stp x12, x13, [x0]
- stp x14, x15, [x0, #16]
- stp x21, x22, [x1]
- stp x23, x24, [x1, #16]
- ldr x0, [x29, #16]
- # Sub
- subs x16, x16, x12
- sbcs x17, x17, x13
- sbcs x19, x19, x14
- sbcs x20, x20, x15
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x16, x16, x25
- adcs x17, x17, x28
- adcs x19, x19, x28
- adc x20, x20, x26
- stp x16, x17, [x0]
- stp x19, x20, [x0, #16]
- ldr x0, [x29, #40]
- ldr x1, [x29, #64]
- # Square * 2
- ldp x12, x13, [x1]
- ldp x14, x15, [x1, #16]
- # A[0] * A[1]
- mul x5, x12, x13
- umulh x6, x12, x13
- # A[0] * A[2]
- mul x25, x12, x14
- umulh x7, x12, x14
- adds x6, x6, x25
- adc x7, x7, xzr
- # A[0] * A[3]
- mul x25, x12, x15
- umulh x8, x12, x15
- adds x7, x7, x25
- adc x8, x8, xzr
- # A[1] * A[2]
- mul x25, x13, x14
- umulh x26, x13, x14
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, xzr, xzr
- # A[1] * A[3]
- mul x25, x13, x15
- umulh x26, x13, x15
- adds x8, x8, x25
- adc x9, x9, x26
- # A[2] * A[3]
- mul x25, x14, x15
- umulh x10, x14, x15
- adds x9, x9, x25
- adc x10, x10, xzr
- # Double
- adds x5, x5, x5
- adcs x6, x6, x6
- adcs x7, x7, x7
- adcs x8, x8, x8
- adcs x9, x9, x9
- adcs x10, x10, x10
- adc x11, xzr, xzr
- # A[0] * A[0]
- mul x4, x12, x12
- umulh x28, x12, x12
- # A[1] * A[1]
- mul x25, x13, x13
- umulh x26, x13, x13
- adds x5, x5, x28
- adcs x6, x6, x25
- adc x28, x26, xzr
- # A[2] * A[2]
- mul x25, x14, x14
- umulh x26, x14, x14
- adds x7, x7, x28
- adcs x8, x8, x25
- adc x28, x26, xzr
- # A[3] * A[3]
- mul x25, x15, x15
- umulh x26, x15, x15
- adds x9, x9, x28
- adcs x10, x10, x25
- adc x11, x11, x26
- # Double and Reduce
- mov x25, #0x169
- # Move top half into t4-t7 and remove top bit from t3
- lsr x28, x11, #61
- extr x11, x11, x10, #62
- extr x10, x10, x9, #62
- extr x9, x9, x8, #62
- extr x8, x8, x7, #62
- extr x7, x7, x6, #63
- extr x6, x6, x5, #63
- extr x5, x5, x4, #63
- lsl x4, x4, #1
- and x7, x7, #0x7fffffffffffffff
- # Two left, only one right
- and x11, x11, #0x7fffffffffffffff
- # Multiply top bits by 19*19
- mul x28, x28, x25
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x8
- umulh x8, x25, x8
- adds x4, x4, x26
- mul x26, x25, x9
- umulh x9, x25, x9
- adcs x5, x5, x26
- mul x26, x25, x10
- umulh x10, x25, x10
- adcs x6, x6, x26
- mul x26, x25, x11
- umulh x27, x25, x11
- adcs x7, x7, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x4, x4, x28
- adcs x5, x5, x8
- adcs x6, x6, x9
- adcs x7, x7, x10
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x7, #63
- mul x27, x27, x25
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Reduce if top bit set
- and x27, x25, x7, asr 63
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Store
- ldr x0, [x29, #40]
- # Sub
- subs x4, x4, x21
- sbcs x5, x5, x22
- sbcs x6, x6, x23
- sbcs x7, x7, x24
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x4, x4, x25
- adcs x5, x5, x28
- adcs x6, x6, x28
- adc x7, x7, x26
- stp x4, x5, [x0]
- stp x6, x7, [x0, #16]
- ldr x17, [x29, #88]
- ldr x19, [x29, #96]
- ldp x20, x21, [x29, #104]
- ldp x22, x23, [x29, #120]
- ldp x24, x25, [x29, #136]
- ldp x26, x27, [x29, #152]
- ldr x28, [x29, #168]
- ldp x29, x30, [sp], #0xb0
- ret
- .size fe_ge_dbl,.-fe_ge_dbl
- .text
- .align 2
- .globl fe_ge_madd
- .type fe_ge_madd, %function
-fe_ge_madd:
- stp x29, x30, [sp, #-176]!
- add x29, sp, #0
- str x17, [x29, #88]
- str x19, [x29, #96]
- stp x20, x21, [x29, #104]
- stp x22, x23, [x29, #120]
- stp x24, x25, [x29, #136]
- stp x26, x27, [x29, #152]
- str x28, [x29, #168]
- str x0, [x29, #16]
- str x1, [x29, #24]
- str x2, [x29, #32]
- str x3, [x29, #40]
- str x4, [x29, #48]
- str x5, [x29, #56]
- str x6, [x29, #64]
- str x7, [x29, #72]
- ldr x2, [x29, #56]
- ldr x3, [x29, #48]
- # Add
- ldp x12, x13, [x2]
- ldp x14, x15, [x2, #16]
- ldp x16, x17, [x3]
- ldp x19, x20, [x3, #16]
- adds x4, x12, x16
- adcs x5, x13, x17
- adcs x6, x14, x19
- adc x7, x15, x20
- mov x25, #-19
- asr x28, x7, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x4, x4, x25
- sbcs x5, x5, x28
- sbcs x6, x6, x28
- sbc x7, x7, x26
- # Sub
- subs x8, x12, x16
- sbcs x9, x13, x17
- sbcs x10, x14, x19
- sbcs x11, x15, x20
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x8, x8, x25
- adcs x9, x9, x28
- adcs x10, x10, x28
- adc x11, x11, x26
- ldr x0, [x29, #32]
- ldr x2, [x29, #184]
- # Multiply
- ldp x21, x22, [x2]
- ldp x23, x24, [x2, #16]
- # A[0] * B[0]
- mul x12, x4, x21
- umulh x13, x4, x21
- # A[0] * B[1]
- mul x25, x4, x22
- umulh x14, x4, x22
- adds x13, x13, x25
- adc x14, x14, xzr
- # A[1] * B[0]
- mul x25, x5, x21
- umulh x26, x5, x21
- adds x13, x13, x25
- adcs x14, x14, x26
- adc x15, xzr, xzr
- # A[0] * B[2]
- mul x25, x4, x23
- umulh x26, x4, x23
- adds x14, x14, x25
- adc x15, x15, x26
- # A[1] * B[1]
- mul x25, x5, x22
- umulh x26, x5, x22
- adds x14, x14, x25
- adcs x15, x15, x26
- adc x16, xzr, xzr
- # A[2] * B[0]
- mul x25, x6, x21
- umulh x26, x6, x21
- adds x14, x14, x25
- adcs x15, x15, x26
- adc x16, x16, xzr
- # A[0] * B[3]
- mul x25, x4, x24
- umulh x26, x4, x24
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, xzr, xzr
- # A[1] * B[2]
- mul x25, x5, x23
- umulh x26, x5, x23
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[2] * B[1]
- mul x25, x6, x22
- umulh x26, x6, x22
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[3] * B[0]
- mul x25, x7, x21
- umulh x26, x7, x21
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[1] * B[3]
- mul x25, x5, x24
- umulh x26, x5, x24
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, xzr, xzr
- # A[2] * B[2]
- mul x25, x6, x23
- umulh x26, x6, x23
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[3] * B[1]
- mul x25, x7, x22
- umulh x26, x7, x22
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[2] * B[3]
- mul x25, x6, x24
- umulh x26, x6, x24
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, xzr, xzr
- # A[3] * B[2]
- mul x25, x7, x23
- umulh x26, x7, x23
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, x20, xzr
- # A[3] * B[3]
- mul x25, x7, x24
- umulh x26, x7, x24
- adds x19, x19, x25
- adc x20, x20, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x20, x20, x19, #63
- extr x19, x19, x17, #63
- extr x17, x17, x16, #63
- extr x16, x16, x15, #63
- and x15, x15, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x16
- umulh x16, x25, x16
- adds x12, x12, x26
- mul x26, x25, x17
- umulh x17, x25, x17
- adcs x13, x13, x26
- mul x26, x25, x19
- umulh x19, x25, x19
- adcs x14, x14, x26
- mul x26, x25, x20
- umulh x27, x25, x20
- adcs x15, x15, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x13, x13, x16
- adcs x14, x14, x17
- adcs x15, x15, x19
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x15, #63
- mul x27, x27, x25
- and x15, x15, #0x7fffffffffffffff
- adds x12, x12, x27
- adcs x13, x13, xzr
- adcs x14, x14, xzr
- adc x15, x15, xzr
- # Reduce if top bit set
- and x27, x25, x15, asr 63
- and x15, x15, #0x7fffffffffffffff
- adds x12, x12, x27
- adcs x13, x13, xzr
- adcs x14, x14, xzr
- adc x15, x15, xzr
- # Store
- ldr x0, [x29, #24]
- ldr x1, [x29, #192]
- # Multiply
- ldp x21, x22, [x1]
- ldp x23, x24, [x1, #16]
- # A[0] * B[0]
- mul x4, x8, x21
- umulh x5, x8, x21
- # A[0] * B[1]
- mul x25, x8, x22
- umulh x6, x8, x22
- adds x5, x5, x25
- adc x6, x6, xzr
- # A[1] * B[0]
- mul x25, x9, x21
- umulh x26, x9, x21
- adds x5, x5, x25
- adcs x6, x6, x26
- adc x7, xzr, xzr
- # A[0] * B[2]
- mul x25, x8, x23
- umulh x26, x8, x23
- adds x6, x6, x25
- adc x7, x7, x26
- # A[1] * B[1]
- mul x25, x9, x22
- umulh x26, x9, x22
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x16, xzr, xzr
- # A[2] * B[0]
- mul x25, x10, x21
- umulh x26, x10, x21
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x16, x16, xzr
- # A[0] * B[3]
- mul x25, x8, x24
- umulh x26, x8, x24
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, xzr, xzr
- # A[1] * B[2]
- mul x25, x9, x23
- umulh x26, x9, x23
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[2] * B[1]
- mul x25, x10, x22
- umulh x26, x10, x22
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[3] * B[0]
- mul x25, x11, x21
- umulh x26, x11, x21
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[1] * B[3]
- mul x25, x9, x24
- umulh x26, x9, x24
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, xzr, xzr
- # A[2] * B[2]
- mul x25, x10, x23
- umulh x26, x10, x23
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[3] * B[1]
- mul x25, x11, x22
- umulh x26, x11, x22
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[2] * B[3]
- mul x25, x10, x24
- umulh x26, x10, x24
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, xzr, xzr
- # A[3] * B[2]
- mul x25, x11, x23
- umulh x26, x11, x23
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, x20, xzr
- # A[3] * B[3]
- mul x25, x11, x24
- umulh x26, x11, x24
- adds x19, x19, x25
- adc x20, x20, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x20, x20, x19, #63
- extr x19, x19, x17, #63
- extr x17, x17, x16, #63
- extr x16, x16, x7, #63
- and x7, x7, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x16
- umulh x16, x25, x16
- adds x4, x4, x26
- mul x26, x25, x17
- umulh x17, x25, x17
- adcs x5, x5, x26
- mul x26, x25, x19
- umulh x19, x25, x19
- adcs x6, x6, x26
- mul x26, x25, x20
- umulh x27, x25, x20
- adcs x7, x7, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x5, x5, x16
- adcs x6, x6, x17
- adcs x7, x7, x19
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x7, #63
- mul x27, x27, x25
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Reduce if top bit set
- and x27, x25, x7, asr 63
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Store
- ldr x0, [x29, #24]
- ldr x1, [x29, #16]
- # Add
- adds x8, x12, x4
- adcs x9, x13, x5
- adcs x10, x14, x6
- adc x11, x15, x7
- mov x25, #-19
- asr x28, x11, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x8, x8, x25
- sbcs x9, x9, x28
- sbcs x10, x10, x28
- sbc x11, x11, x26
- # Sub
- subs x16, x12, x4
- sbcs x17, x13, x5
- sbcs x19, x14, x6
- sbcs x20, x15, x7
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x16, x16, x25
- adcs x17, x17, x28
- adcs x19, x19, x28
- adc x20, x20, x26
- stp x8, x9, [x0]
- stp x10, x11, [x0, #16]
- stp x16, x17, [x1]
- stp x19, x20, [x1, #16]
- ldr x0, [x29, #40]
- ldr x1, [x29, #176]
- ldr x3, [x29, #72]
- # Multiply
- ldp x16, x17, [x1]
- ldp x19, x20, [x1, #16]
- ldp x21, x22, [x3]
- ldp x23, x24, [x3, #16]
- # A[0] * B[0]
- mul x4, x16, x21
- umulh x5, x16, x21
- # A[0] * B[1]
- mul x25, x16, x22
- umulh x6, x16, x22
- adds x5, x5, x25
- adc x6, x6, xzr
- # A[1] * B[0]
- mul x25, x17, x21
- umulh x26, x17, x21
- adds x5, x5, x25
- adcs x6, x6, x26
- adc x7, xzr, xzr
- # A[0] * B[2]
- mul x25, x16, x23
- umulh x26, x16, x23
- adds x6, x6, x25
- adc x7, x7, x26
- # A[1] * B[1]
- mul x25, x17, x22
- umulh x26, x17, x22
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x8, xzr, xzr
- # A[2] * B[0]
- mul x25, x19, x21
- umulh x26, x19, x21
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x8, x8, xzr
- # A[0] * B[3]
- mul x25, x16, x24
- umulh x26, x16, x24
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, xzr, xzr
- # A[1] * B[2]
- mul x25, x17, x23
- umulh x26, x17, x23
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, x9, xzr
- # A[2] * B[1]
- mul x25, x19, x22
- umulh x26, x19, x22
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, x9, xzr
- # A[3] * B[0]
- mul x25, x20, x21
- umulh x26, x20, x21
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, x9, xzr
- # A[1] * B[3]
- mul x25, x17, x24
- umulh x26, x17, x24
- adds x8, x8, x25
- adcs x9, x9, x26
- adc x10, xzr, xzr
- # A[2] * B[2]
- mul x25, x19, x23
- umulh x26, x19, x23
- adds x8, x8, x25
- adcs x9, x9, x26
- adc x10, x10, xzr
- # A[3] * B[1]
- mul x25, x20, x22
- umulh x26, x20, x22
- adds x8, x8, x25
- adcs x9, x9, x26
- adc x10, x10, xzr
- # A[2] * B[3]
- mul x25, x19, x24
- umulh x26, x19, x24
- adds x9, x9, x25
- adcs x10, x10, x26
- adc x11, xzr, xzr
- # A[3] * B[2]
- mul x25, x20, x23
- umulh x26, x20, x23
- adds x9, x9, x25
- adcs x10, x10, x26
- adc x11, x11, xzr
- # A[3] * B[3]
- mul x25, x20, x24
- umulh x26, x20, x24
- adds x10, x10, x25
- adc x11, x11, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x11, x11, x10, #63
- extr x10, x10, x9, #63
- extr x9, x9, x8, #63
- extr x8, x8, x7, #63
- and x7, x7, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x8
- umulh x8, x25, x8
- adds x4, x4, x26
- mul x26, x25, x9
- umulh x9, x25, x9
- adcs x5, x5, x26
- mul x26, x25, x10
- umulh x10, x25, x10
- adcs x6, x6, x26
- mul x26, x25, x11
- umulh x27, x25, x11
- adcs x7, x7, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x5, x5, x8
- adcs x6, x6, x9
- adcs x7, x7, x10
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x7, #63
- mul x27, x27, x25
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Reduce if top bit set
- and x27, x25, x7, asr 63
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Store
- ldr x0, [x29, #32]
- ldr x1, [x29, #64]
- # Double
- ldp x8, x9, [x1]
- ldp x10, x11, [x1, #16]
- adds x8, x8, x8
- adcs x9, x9, x9
- adcs x10, x10, x10
- adc x11, x11, x11
- mov x25, #-19
- asr x28, x11, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x8, x8, x25
- sbcs x9, x9, x28
- sbcs x10, x10, x28
- sbc x11, x11, x26
- ldr x1, [x29, #40]
- # Add
- adds x12, x8, x4
- adcs x13, x9, x5
- adcs x14, x10, x6
- adc x15, x11, x7
- mov x25, #-19
- asr x28, x15, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x12, x12, x25
- sbcs x13, x13, x28
- sbcs x14, x14, x28
- sbc x15, x15, x26
- # Sub
- subs x16, x8, x4
- sbcs x17, x9, x5
- sbcs x19, x10, x6
- sbcs x20, x11, x7
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x16, x16, x25
- adcs x17, x17, x28
- adcs x19, x19, x28
- adc x20, x20, x26
- stp x12, x13, [x0]
- stp x14, x15, [x0, #16]
- stp x16, x17, [x1]
- stp x19, x20, [x1, #16]
- ldr x17, [x29, #88]
- ldr x19, [x29, #96]
- ldp x20, x21, [x29, #104]
- ldp x22, x23, [x29, #120]
- ldp x24, x25, [x29, #136]
- ldp x26, x27, [x29, #152]
- ldr x28, [x29, #168]
- ldp x29, x30, [sp], #0xb0
- ret
- .size fe_ge_madd,.-fe_ge_madd
- .text
- .align 2
- .globl fe_ge_msub
- .type fe_ge_msub, %function
-fe_ge_msub:
- stp x29, x30, [sp, #-176]!
- add x29, sp, #0
- str x17, [x29, #88]
- str x19, [x29, #96]
- stp x20, x21, [x29, #104]
- stp x22, x23, [x29, #120]
- stp x24, x25, [x29, #136]
- stp x26, x27, [x29, #152]
- str x28, [x29, #168]
- str x0, [x29, #16]
- str x1, [x29, #24]
- str x2, [x29, #32]
- str x3, [x29, #40]
- str x4, [x29, #48]
- str x5, [x29, #56]
- str x6, [x29, #64]
- str x7, [x29, #72]
- ldr x2, [x29, #56]
- ldr x3, [x29, #48]
- # Add
- ldp x12, x13, [x2]
- ldp x14, x15, [x2, #16]
- ldp x16, x17, [x3]
- ldp x19, x20, [x3, #16]
- adds x4, x12, x16
- adcs x5, x13, x17
- adcs x6, x14, x19
- adc x7, x15, x20
- mov x25, #-19
- asr x28, x7, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x4, x4, x25
- sbcs x5, x5, x28
- sbcs x6, x6, x28
- sbc x7, x7, x26
- # Sub
- subs x8, x12, x16
- sbcs x9, x13, x17
- sbcs x10, x14, x19
- sbcs x11, x15, x20
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x8, x8, x25
- adcs x9, x9, x28
- adcs x10, x10, x28
- adc x11, x11, x26
- ldr x0, [x29, #32]
- ldr x2, [x29, #192]
- # Multiply
- ldp x21, x22, [x2]
- ldp x23, x24, [x2, #16]
- # A[0] * B[0]
- mul x12, x4, x21
- umulh x13, x4, x21
- # A[0] * B[1]
- mul x25, x4, x22
- umulh x14, x4, x22
- adds x13, x13, x25
- adc x14, x14, xzr
- # A[1] * B[0]
- mul x25, x5, x21
- umulh x26, x5, x21
- adds x13, x13, x25
- adcs x14, x14, x26
- adc x15, xzr, xzr
- # A[0] * B[2]
- mul x25, x4, x23
- umulh x26, x4, x23
- adds x14, x14, x25
- adc x15, x15, x26
- # A[1] * B[1]
- mul x25, x5, x22
- umulh x26, x5, x22
- adds x14, x14, x25
- adcs x15, x15, x26
- adc x16, xzr, xzr
- # A[2] * B[0]
- mul x25, x6, x21
- umulh x26, x6, x21
- adds x14, x14, x25
- adcs x15, x15, x26
- adc x16, x16, xzr
- # A[0] * B[3]
- mul x25, x4, x24
- umulh x26, x4, x24
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, xzr, xzr
- # A[1] * B[2]
- mul x25, x5, x23
- umulh x26, x5, x23
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[2] * B[1]
- mul x25, x6, x22
- umulh x26, x6, x22
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[3] * B[0]
- mul x25, x7, x21
- umulh x26, x7, x21
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[1] * B[3]
- mul x25, x5, x24
- umulh x26, x5, x24
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, xzr, xzr
- # A[2] * B[2]
- mul x25, x6, x23
- umulh x26, x6, x23
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[3] * B[1]
- mul x25, x7, x22
- umulh x26, x7, x22
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[2] * B[3]
- mul x25, x6, x24
- umulh x26, x6, x24
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, xzr, xzr
- # A[3] * B[2]
- mul x25, x7, x23
- umulh x26, x7, x23
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, x20, xzr
- # A[3] * B[3]
- mul x25, x7, x24
- umulh x26, x7, x24
- adds x19, x19, x25
- adc x20, x20, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x20, x20, x19, #63
- extr x19, x19, x17, #63
- extr x17, x17, x16, #63
- extr x16, x16, x15, #63
- and x15, x15, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x16
- umulh x16, x25, x16
- adds x12, x12, x26
- mul x26, x25, x17
- umulh x17, x25, x17
- adcs x13, x13, x26
- mul x26, x25, x19
- umulh x19, x25, x19
- adcs x14, x14, x26
- mul x26, x25, x20
- umulh x27, x25, x20
- adcs x15, x15, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x13, x13, x16
- adcs x14, x14, x17
- adcs x15, x15, x19
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x15, #63
- mul x27, x27, x25
- and x15, x15, #0x7fffffffffffffff
- adds x12, x12, x27
- adcs x13, x13, xzr
- adcs x14, x14, xzr
- adc x15, x15, xzr
- # Reduce if top bit set
- and x27, x25, x15, asr 63
- and x15, x15, #0x7fffffffffffffff
- adds x12, x12, x27
- adcs x13, x13, xzr
- adcs x14, x14, xzr
- adc x15, x15, xzr
- # Store
- ldr x0, [x29, #24]
- ldr x1, [x29, #184]
- # Multiply
- ldp x21, x22, [x1]
- ldp x23, x24, [x1, #16]
- # A[0] * B[0]
- mul x4, x8, x21
- umulh x5, x8, x21
- # A[0] * B[1]
- mul x25, x8, x22
- umulh x6, x8, x22
- adds x5, x5, x25
- adc x6, x6, xzr
- # A[1] * B[0]
- mul x25, x9, x21
- umulh x26, x9, x21
- adds x5, x5, x25
- adcs x6, x6, x26
- adc x7, xzr, xzr
- # A[0] * B[2]
- mul x25, x8, x23
- umulh x26, x8, x23
- adds x6, x6, x25
- adc x7, x7, x26
- # A[1] * B[1]
- mul x25, x9, x22
- umulh x26, x9, x22
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x16, xzr, xzr
- # A[2] * B[0]
- mul x25, x10, x21
- umulh x26, x10, x21
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x16, x16, xzr
- # A[0] * B[3]
- mul x25, x8, x24
- umulh x26, x8, x24
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, xzr, xzr
- # A[1] * B[2]
- mul x25, x9, x23
- umulh x26, x9, x23
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[2] * B[1]
- mul x25, x10, x22
- umulh x26, x10, x22
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[3] * B[0]
- mul x25, x11, x21
- umulh x26, x11, x21
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[1] * B[3]
- mul x25, x9, x24
- umulh x26, x9, x24
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, xzr, xzr
- # A[2] * B[2]
- mul x25, x10, x23
- umulh x26, x10, x23
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[3] * B[1]
- mul x25, x11, x22
- umulh x26, x11, x22
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[2] * B[3]
- mul x25, x10, x24
- umulh x26, x10, x24
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, xzr, xzr
- # A[3] * B[2]
- mul x25, x11, x23
- umulh x26, x11, x23
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, x20, xzr
- # A[3] * B[3]
- mul x25, x11, x24
- umulh x26, x11, x24
- adds x19, x19, x25
- adc x20, x20, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x20, x20, x19, #63
- extr x19, x19, x17, #63
- extr x17, x17, x16, #63
- extr x16, x16, x7, #63
- and x7, x7, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x16
- umulh x16, x25, x16
- adds x4, x4, x26
- mul x26, x25, x17
- umulh x17, x25, x17
- adcs x5, x5, x26
- mul x26, x25, x19
- umulh x19, x25, x19
- adcs x6, x6, x26
- mul x26, x25, x20
- umulh x27, x25, x20
- adcs x7, x7, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x5, x5, x16
- adcs x6, x6, x17
- adcs x7, x7, x19
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x7, #63
- mul x27, x27, x25
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Reduce if top bit set
- and x27, x25, x7, asr 63
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Store
- ldr x0, [x29, #24]
- ldr x1, [x29, #16]
- # Add
- adds x8, x12, x4
- adcs x9, x13, x5
- adcs x10, x14, x6
- adc x11, x15, x7
- mov x25, #-19
- asr x28, x11, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x8, x8, x25
- sbcs x9, x9, x28
- sbcs x10, x10, x28
- sbc x11, x11, x26
- # Sub
- subs x16, x12, x4
- sbcs x17, x13, x5
- sbcs x19, x14, x6
- sbcs x20, x15, x7
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x16, x16, x25
- adcs x17, x17, x28
- adcs x19, x19, x28
- adc x20, x20, x26
- stp x8, x9, [x0]
- stp x10, x11, [x0, #16]
- stp x16, x17, [x1]
- stp x19, x20, [x1, #16]
- ldr x0, [x29, #40]
- ldr x1, [x29, #176]
- ldr x3, [x29, #72]
- # Multiply
- ldp x16, x17, [x1]
- ldp x19, x20, [x1, #16]
- ldp x21, x22, [x3]
- ldp x23, x24, [x3, #16]
- # A[0] * B[0]
- mul x4, x16, x21
- umulh x5, x16, x21
- # A[0] * B[1]
- mul x25, x16, x22
- umulh x6, x16, x22
- adds x5, x5, x25
- adc x6, x6, xzr
- # A[1] * B[0]
- mul x25, x17, x21
- umulh x26, x17, x21
- adds x5, x5, x25
- adcs x6, x6, x26
- adc x7, xzr, xzr
- # A[0] * B[2]
- mul x25, x16, x23
- umulh x26, x16, x23
- adds x6, x6, x25
- adc x7, x7, x26
- # A[1] * B[1]
- mul x25, x17, x22
- umulh x26, x17, x22
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x8, xzr, xzr
- # A[2] * B[0]
- mul x25, x19, x21
- umulh x26, x19, x21
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x8, x8, xzr
- # A[0] * B[3]
- mul x25, x16, x24
- umulh x26, x16, x24
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, xzr, xzr
- # A[1] * B[2]
- mul x25, x17, x23
- umulh x26, x17, x23
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, x9, xzr
- # A[2] * B[1]
- mul x25, x19, x22
- umulh x26, x19, x22
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, x9, xzr
- # A[3] * B[0]
- mul x25, x20, x21
- umulh x26, x20, x21
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, x9, xzr
- # A[1] * B[3]
- mul x25, x17, x24
- umulh x26, x17, x24
- adds x8, x8, x25
- adcs x9, x9, x26
- adc x10, xzr, xzr
- # A[2] * B[2]
- mul x25, x19, x23
- umulh x26, x19, x23
- adds x8, x8, x25
- adcs x9, x9, x26
- adc x10, x10, xzr
- # A[3] * B[1]
- mul x25, x20, x22
- umulh x26, x20, x22
- adds x8, x8, x25
- adcs x9, x9, x26
- adc x10, x10, xzr
- # A[2] * B[3]
- mul x25, x19, x24
- umulh x26, x19, x24
- adds x9, x9, x25
- adcs x10, x10, x26
- adc x11, xzr, xzr
- # A[3] * B[2]
- mul x25, x20, x23
- umulh x26, x20, x23
- adds x9, x9, x25
- adcs x10, x10, x26
- adc x11, x11, xzr
- # A[3] * B[3]
- mul x25, x20, x24
- umulh x26, x20, x24
- adds x10, x10, x25
- adc x11, x11, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x11, x11, x10, #63
- extr x10, x10, x9, #63
- extr x9, x9, x8, #63
- extr x8, x8, x7, #63
- and x7, x7, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x8
- umulh x8, x25, x8
- adds x4, x4, x26
- mul x26, x25, x9
- umulh x9, x25, x9
- adcs x5, x5, x26
- mul x26, x25, x10
- umulh x10, x25, x10
- adcs x6, x6, x26
- mul x26, x25, x11
- umulh x27, x25, x11
- adcs x7, x7, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x5, x5, x8
- adcs x6, x6, x9
- adcs x7, x7, x10
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x7, #63
- mul x27, x27, x25
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Reduce if top bit set
- and x27, x25, x7, asr 63
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Store
- ldr x0, [x29, #32]
- ldr x1, [x29, #64]
- # Double
- ldp x8, x9, [x1]
- ldp x10, x11, [x1, #16]
- adds x8, x8, x8
- adcs x9, x9, x9
- adcs x10, x10, x10
- adc x11, x11, x11
- mov x25, #-19
- asr x28, x11, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x8, x8, x25
- sbcs x9, x9, x28
- sbcs x10, x10, x28
- sbc x11, x11, x26
- ldr x1, [x29, #40]
- # Add
- adds x12, x8, x4
- adcs x13, x9, x5
- adcs x14, x10, x6
- adc x15, x11, x7
- mov x25, #-19
- asr x28, x15, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x12, x12, x25
- sbcs x13, x13, x28
- sbcs x14, x14, x28
- sbc x15, x15, x26
- # Sub
- subs x16, x8, x4
- sbcs x17, x9, x5
- sbcs x19, x10, x6
- sbcs x20, x11, x7
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x16, x16, x25
- adcs x17, x17, x28
- adcs x19, x19, x28
- adc x20, x20, x26
- stp x12, x13, [x1]
- stp x14, x15, [x1, #16]
- stp x16, x17, [x0]
- stp x19, x20, [x0, #16]
- ldr x17, [x29, #88]
- ldr x19, [x29, #96]
- ldp x20, x21, [x29, #104]
- ldp x22, x23, [x29, #120]
- ldp x24, x25, [x29, #136]
- ldp x26, x27, [x29, #152]
- ldr x28, [x29, #168]
- ldp x29, x30, [sp], #0xb0
- ret
- .size fe_ge_msub,.-fe_ge_msub
- .text
- .align 2
- .globl fe_ge_add
- .type fe_ge_add, %function
-fe_ge_add:
- stp x29, x30, [sp, #-176]!
- add x29, sp, #0
- str x17, [x29, #88]
- str x19, [x29, #96]
- stp x20, x21, [x29, #104]
- stp x22, x23, [x29, #120]
- stp x24, x25, [x29, #136]
- stp x26, x27, [x29, #152]
- str x28, [x29, #168]
- str x0, [x29, #16]
- str x1, [x29, #24]
- str x2, [x29, #32]
- str x3, [x29, #40]
- str x4, [x29, #48]
- str x5, [x29, #56]
- str x6, [x29, #64]
- str x7, [x29, #72]
- ldr x2, [x29, #56]
- ldr x3, [x29, #48]
- # Add
- ldp x12, x13, [x2]
- ldp x14, x15, [x2, #16]
- ldp x16, x17, [x3]
- ldp x19, x20, [x3, #16]
- adds x4, x12, x16
- adcs x5, x13, x17
- adcs x6, x14, x19
- adc x7, x15, x20
- mov x25, #-19
- asr x28, x7, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x4, x4, x25
- sbcs x5, x5, x28
- sbcs x6, x6, x28
- sbc x7, x7, x26
- # Sub
- subs x8, x12, x16
- sbcs x9, x13, x17
- sbcs x10, x14, x19
- sbcs x11, x15, x20
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x8, x8, x25
- adcs x9, x9, x28
- adcs x10, x10, x28
- adc x11, x11, x26
- ldr x0, [x29, #32]
- ldr x2, [x29, #192]
- # Multiply
- ldp x21, x22, [x2]
- ldp x23, x24, [x2, #16]
- # A[0] * B[0]
- mul x12, x4, x21
- umulh x13, x4, x21
- # A[0] * B[1]
- mul x25, x4, x22
- umulh x14, x4, x22
- adds x13, x13, x25
- adc x14, x14, xzr
- # A[1] * B[0]
- mul x25, x5, x21
- umulh x26, x5, x21
- adds x13, x13, x25
- adcs x14, x14, x26
- adc x15, xzr, xzr
- # A[0] * B[2]
- mul x25, x4, x23
- umulh x26, x4, x23
- adds x14, x14, x25
- adc x15, x15, x26
- # A[1] * B[1]
- mul x25, x5, x22
- umulh x26, x5, x22
- adds x14, x14, x25
- adcs x15, x15, x26
- adc x16, xzr, xzr
- # A[2] * B[0]
- mul x25, x6, x21
- umulh x26, x6, x21
- adds x14, x14, x25
- adcs x15, x15, x26
- adc x16, x16, xzr
- # A[0] * B[3]
- mul x25, x4, x24
- umulh x26, x4, x24
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, xzr, xzr
- # A[1] * B[2]
- mul x25, x5, x23
- umulh x26, x5, x23
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[2] * B[1]
- mul x25, x6, x22
- umulh x26, x6, x22
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[3] * B[0]
- mul x25, x7, x21
- umulh x26, x7, x21
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[1] * B[3]
- mul x25, x5, x24
- umulh x26, x5, x24
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, xzr, xzr
- # A[2] * B[2]
- mul x25, x6, x23
- umulh x26, x6, x23
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[3] * B[1]
- mul x25, x7, x22
- umulh x26, x7, x22
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[2] * B[3]
- mul x25, x6, x24
- umulh x26, x6, x24
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, xzr, xzr
- # A[3] * B[2]
- mul x25, x7, x23
- umulh x26, x7, x23
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, x20, xzr
- # A[3] * B[3]
- mul x25, x7, x24
- umulh x26, x7, x24
- adds x19, x19, x25
- adc x20, x20, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x20, x20, x19, #63
- extr x19, x19, x17, #63
- extr x17, x17, x16, #63
- extr x16, x16, x15, #63
- and x15, x15, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x16
- umulh x16, x25, x16
- adds x12, x12, x26
- mul x26, x25, x17
- umulh x17, x25, x17
- adcs x13, x13, x26
- mul x26, x25, x19
- umulh x19, x25, x19
- adcs x14, x14, x26
- mul x26, x25, x20
- umulh x27, x25, x20
- adcs x15, x15, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x13, x13, x16
- adcs x14, x14, x17
- adcs x15, x15, x19
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x15, #63
- mul x27, x27, x25
- and x15, x15, #0x7fffffffffffffff
- adds x12, x12, x27
- adcs x13, x13, xzr
- adcs x14, x14, xzr
- adc x15, x15, xzr
- # Reduce if top bit set
- and x27, x25, x15, asr 63
- and x15, x15, #0x7fffffffffffffff
- adds x12, x12, x27
- adcs x13, x13, xzr
- adcs x14, x14, xzr
- adc x15, x15, xzr
- # Store
- ldr x0, [x29, #24]
- ldr x1, [x29, #200]
- # Multiply
- ldp x21, x22, [x1]
- ldp x23, x24, [x1, #16]
- # A[0] * B[0]
- mul x4, x8, x21
- umulh x5, x8, x21
- # A[0] * B[1]
- mul x25, x8, x22
- umulh x6, x8, x22
- adds x5, x5, x25
- adc x6, x6, xzr
- # A[1] * B[0]
- mul x25, x9, x21
- umulh x26, x9, x21
- adds x5, x5, x25
- adcs x6, x6, x26
- adc x7, xzr, xzr
- # A[0] * B[2]
- mul x25, x8, x23
- umulh x26, x8, x23
- adds x6, x6, x25
- adc x7, x7, x26
- # A[1] * B[1]
- mul x25, x9, x22
- umulh x26, x9, x22
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x16, xzr, xzr
- # A[2] * B[0]
- mul x25, x10, x21
- umulh x26, x10, x21
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x16, x16, xzr
- # A[0] * B[3]
- mul x25, x8, x24
- umulh x26, x8, x24
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, xzr, xzr
- # A[1] * B[2]
- mul x25, x9, x23
- umulh x26, x9, x23
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[2] * B[1]
- mul x25, x10, x22
- umulh x26, x10, x22
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[3] * B[0]
- mul x25, x11, x21
- umulh x26, x11, x21
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[1] * B[3]
- mul x25, x9, x24
- umulh x26, x9, x24
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, xzr, xzr
- # A[2] * B[2]
- mul x25, x10, x23
- umulh x26, x10, x23
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[3] * B[1]
- mul x25, x11, x22
- umulh x26, x11, x22
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[2] * B[3]
- mul x25, x10, x24
- umulh x26, x10, x24
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, xzr, xzr
- # A[3] * B[2]
- mul x25, x11, x23
- umulh x26, x11, x23
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, x20, xzr
- # A[3] * B[3]
- mul x25, x11, x24
- umulh x26, x11, x24
- adds x19, x19, x25
- adc x20, x20, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x20, x20, x19, #63
- extr x19, x19, x17, #63
- extr x17, x17, x16, #63
- extr x16, x16, x7, #63
- and x7, x7, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x16
- umulh x16, x25, x16
- adds x4, x4, x26
- mul x26, x25, x17
- umulh x17, x25, x17
- adcs x5, x5, x26
- mul x26, x25, x19
- umulh x19, x25, x19
- adcs x6, x6, x26
- mul x26, x25, x20
- umulh x27, x25, x20
- adcs x7, x7, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x5, x5, x16
- adcs x6, x6, x17
- adcs x7, x7, x19
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x7, #63
- mul x27, x27, x25
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Reduce if top bit set
- and x27, x25, x7, asr 63
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Store
- ldr x0, [x29, #24]
- ldr x1, [x29, #16]
- # Add
- adds x8, x12, x4
- adcs x9, x13, x5
- adcs x10, x14, x6
- adc x11, x15, x7
- mov x25, #-19
- asr x28, x11, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x8, x8, x25
- sbcs x9, x9, x28
- sbcs x10, x10, x28
- sbc x11, x11, x26
- # Sub
- subs x16, x12, x4
- sbcs x17, x13, x5
- sbcs x19, x14, x6
- sbcs x20, x15, x7
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x16, x16, x25
- adcs x17, x17, x28
- adcs x19, x19, x28
- adc x20, x20, x26
- stp x8, x9, [x0]
- stp x10, x11, [x0, #16]
- stp x16, x17, [x1]
- stp x19, x20, [x1, #16]
- ldr x0, [x29, #48]
- ldr x1, [x29, #64]
- ldr x2, [x29, #176]
- # Multiply
- ldp x12, x13, [x1]
- ldp x14, x15, [x1, #16]
- ldp x16, x17, [x2]
- ldp x19, x20, [x2, #16]
- # A[0] * B[0]
- mul x4, x12, x16
- umulh x5, x12, x16
- # A[0] * B[1]
- mul x25, x12, x17
- umulh x6, x12, x17
- adds x5, x5, x25
- adc x6, x6, xzr
- # A[1] * B[0]
- mul x25, x13, x16
- umulh x26, x13, x16
- adds x5, x5, x25
- adcs x6, x6, x26
- adc x7, xzr, xzr
- # A[0] * B[2]
- mul x25, x12, x19
- umulh x26, x12, x19
- adds x6, x6, x25
- adc x7, x7, x26
- # A[1] * B[1]
- mul x25, x13, x17
- umulh x26, x13, x17
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x8, xzr, xzr
- # A[2] * B[0]
- mul x25, x14, x16
- umulh x26, x14, x16
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x8, x8, xzr
- # A[0] * B[3]
- mul x25, x12, x20
- umulh x26, x12, x20
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, xzr, xzr
- # A[1] * B[2]
- mul x25, x13, x19
- umulh x26, x13, x19
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, x9, xzr
- # A[2] * B[1]
- mul x25, x14, x17
- umulh x26, x14, x17
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, x9, xzr
- # A[3] * B[0]
- mul x25, x15, x16
- umulh x26, x15, x16
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, x9, xzr
- # A[1] * B[3]
- mul x25, x13, x20
- umulh x26, x13, x20
- adds x8, x8, x25
- adcs x9, x9, x26
- adc x10, xzr, xzr
- # A[2] * B[2]
- mul x25, x14, x19
- umulh x26, x14, x19
- adds x8, x8, x25
- adcs x9, x9, x26
- adc x10, x10, xzr
- # A[3] * B[1]
- mul x25, x15, x17
- umulh x26, x15, x17
- adds x8, x8, x25
- adcs x9, x9, x26
- adc x10, x10, xzr
- # A[2] * B[3]
- mul x25, x14, x20
- umulh x26, x14, x20
- adds x9, x9, x25
- adcs x10, x10, x26
- adc x11, xzr, xzr
- # A[3] * B[2]
- mul x25, x15, x19
- umulh x26, x15, x19
- adds x9, x9, x25
- adcs x10, x10, x26
- adc x11, x11, xzr
- # A[3] * B[3]
- mul x25, x15, x20
- umulh x26, x15, x20
- adds x10, x10, x25
- adc x11, x11, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x11, x11, x10, #63
- extr x10, x10, x9, #63
- extr x9, x9, x8, #63
- extr x8, x8, x7, #63
- and x7, x7, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x8
- umulh x8, x25, x8
- adds x4, x4, x26
- mul x26, x25, x9
- umulh x9, x25, x9
- adcs x5, x5, x26
- mul x26, x25, x10
- umulh x10, x25, x10
- adcs x6, x6, x26
- mul x26, x25, x11
- umulh x27, x25, x11
- adcs x7, x7, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x5, x5, x8
- adcs x6, x6, x9
- adcs x7, x7, x10
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x7, #63
- mul x27, x27, x25
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Reduce if top bit set
- and x27, x25, x7, asr 63
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Store
- ldr x0, [x29, #48]
- # Double
- adds x4, x4, x4
- adcs x5, x5, x5
- adcs x6, x6, x6
- adc x7, x7, x7
- mov x25, #-19
- asr x28, x7, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x4, x4, x25
- sbcs x5, x5, x28
- sbcs x6, x6, x28
- sbc x7, x7, x26
- ldr x0, [x29, #40]
- ldr x1, [x29, #184]
- ldr x2, [x29, #72]
- # Multiply
- ldp x16, x17, [x1]
- ldp x19, x20, [x1, #16]
- ldp x21, x22, [x2]
- ldp x23, x24, [x2, #16]
- # A[0] * B[0]
- mul x8, x16, x21
- umulh x9, x16, x21
- # A[0] * B[1]
- mul x25, x16, x22
- umulh x10, x16, x22
- adds x9, x9, x25
- adc x10, x10, xzr
- # A[1] * B[0]
- mul x25, x17, x21
- umulh x26, x17, x21
- adds x9, x9, x25
- adcs x10, x10, x26
- adc x11, xzr, xzr
- # A[0] * B[2]
- mul x25, x16, x23
- umulh x26, x16, x23
- adds x10, x10, x25
- adc x11, x11, x26
- # A[1] * B[1]
- mul x25, x17, x22
- umulh x26, x17, x22
- adds x10, x10, x25
- adcs x11, x11, x26
- adc x12, xzr, xzr
- # A[2] * B[0]
- mul x25, x19, x21
- umulh x26, x19, x21
- adds x10, x10, x25
- adcs x11, x11, x26
- adc x12, x12, xzr
- # A[0] * B[3]
- mul x25, x16, x24
- umulh x26, x16, x24
- adds x11, x11, x25
- adcs x12, x12, x26
- adc x13, xzr, xzr
- # A[1] * B[2]
- mul x25, x17, x23
- umulh x26, x17, x23
- adds x11, x11, x25
- adcs x12, x12, x26
- adc x13, x13, xzr
- # A[2] * B[1]
- mul x25, x19, x22
- umulh x26, x19, x22
- adds x11, x11, x25
- adcs x12, x12, x26
- adc x13, x13, xzr
- # A[3] * B[0]
- mul x25, x20, x21
- umulh x26, x20, x21
- adds x11, x11, x25
- adcs x12, x12, x26
- adc x13, x13, xzr
- # A[1] * B[3]
- mul x25, x17, x24
- umulh x26, x17, x24
- adds x12, x12, x25
- adcs x13, x13, x26
- adc x14, xzr, xzr
- # A[2] * B[2]
- mul x25, x19, x23
- umulh x26, x19, x23
- adds x12, x12, x25
- adcs x13, x13, x26
- adc x14, x14, xzr
- # A[3] * B[1]
- mul x25, x20, x22
- umulh x26, x20, x22
- adds x12, x12, x25
- adcs x13, x13, x26
- adc x14, x14, xzr
- # A[2] * B[3]
- mul x25, x19, x24
- umulh x26, x19, x24
- adds x13, x13, x25
- adcs x14, x14, x26
- adc x15, xzr, xzr
- # A[3] * B[2]
- mul x25, x20, x23
- umulh x26, x20, x23
- adds x13, x13, x25
- adcs x14, x14, x26
- adc x15, x15, xzr
- # A[3] * B[3]
- mul x25, x20, x24
- umulh x26, x20, x24
- adds x14, x14, x25
- adc x15, x15, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x15, x15, x14, #63
- extr x14, x14, x13, #63
- extr x13, x13, x12, #63
- extr x12, x12, x11, #63
- and x11, x11, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x12
- umulh x12, x25, x12
- adds x8, x8, x26
- mul x26, x25, x13
- umulh x13, x25, x13
- adcs x9, x9, x26
- mul x26, x25, x14
- umulh x14, x25, x14
- adcs x10, x10, x26
- mul x26, x25, x15
- umulh x27, x25, x15
- adcs x11, x11, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x9, x9, x12
- adcs x10, x10, x13
- adcs x11, x11, x14
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x11, #63
- mul x27, x27, x25
- and x11, x11, #0x7fffffffffffffff
- adds x8, x8, x27
- adcs x9, x9, xzr
- adcs x10, x10, xzr
- adc x11, x11, xzr
- # Reduce if top bit set
- and x27, x25, x11, asr 63
- and x11, x11, #0x7fffffffffffffff
- adds x8, x8, x27
- adcs x9, x9, xzr
- adcs x10, x10, xzr
- adc x11, x11, xzr
- # Store
- ldr x0, [x29, #32]
- ldr x1, [x29, #40]
- # Add
- adds x12, x4, x8
- adcs x13, x5, x9
- adcs x14, x6, x10
- adc x15, x7, x11
- mov x25, #-19
- asr x28, x15, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x12, x12, x25
- sbcs x13, x13, x28
- sbcs x14, x14, x28
- sbc x15, x15, x26
- # Sub
- subs x16, x4, x8
- sbcs x17, x5, x9
- sbcs x19, x6, x10
- sbcs x20, x7, x11
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x16, x16, x25
- adcs x17, x17, x28
- adcs x19, x19, x28
- adc x20, x20, x26
- stp x12, x13, [x0]
- stp x14, x15, [x0, #16]
- stp x16, x17, [x1]
- stp x19, x20, [x1, #16]
- ldr x17, [x29, #88]
- ldr x19, [x29, #96]
- ldp x20, x21, [x29, #104]
- ldp x22, x23, [x29, #120]
- ldp x24, x25, [x29, #136]
- ldp x26, x27, [x29, #152]
- ldr x28, [x29, #168]
- ldp x29, x30, [sp], #0xb0
- ret
- .size fe_ge_add,.-fe_ge_add
- .text
- .align 2
- .globl fe_ge_sub
- .type fe_ge_sub, %function
-fe_ge_sub:
- stp x29, x30, [sp, #-176]!
- add x29, sp, #0
- str x17, [x29, #88]
- str x19, [x29, #96]
- stp x20, x21, [x29, #104]
- stp x22, x23, [x29, #120]
- stp x24, x25, [x29, #136]
- stp x26, x27, [x29, #152]
- str x28, [x29, #168]
- str x0, [x29, #16]
- str x1, [x29, #24]
- str x2, [x29, #32]
- str x3, [x29, #40]
- str x4, [x29, #48]
- str x5, [x29, #56]
- str x6, [x29, #64]
- str x7, [x29, #72]
- ldr x2, [x29, #56]
- ldr x3, [x29, #48]
- # Add
- ldp x12, x13, [x2]
- ldp x14, x15, [x2, #16]
- ldp x16, x17, [x3]
- ldp x19, x20, [x3, #16]
- adds x4, x12, x16
- adcs x5, x13, x17
- adcs x6, x14, x19
- adc x7, x15, x20
- mov x25, #-19
- asr x28, x7, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x4, x4, x25
- sbcs x5, x5, x28
- sbcs x6, x6, x28
- sbc x7, x7, x26
- # Sub
- subs x8, x12, x16
- sbcs x9, x13, x17
- sbcs x10, x14, x19
- sbcs x11, x15, x20
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x8, x8, x25
- adcs x9, x9, x28
- adcs x10, x10, x28
- adc x11, x11, x26
- ldr x0, [x29, #32]
- ldr x2, [x29, #200]
- # Multiply
- ldp x21, x22, [x2]
- ldp x23, x24, [x2, #16]
- # A[0] * B[0]
- mul x12, x4, x21
- umulh x13, x4, x21
- # A[0] * B[1]
- mul x25, x4, x22
- umulh x14, x4, x22
- adds x13, x13, x25
- adc x14, x14, xzr
- # A[1] * B[0]
- mul x25, x5, x21
- umulh x26, x5, x21
- adds x13, x13, x25
- adcs x14, x14, x26
- adc x15, xzr, xzr
- # A[0] * B[2]
- mul x25, x4, x23
- umulh x26, x4, x23
- adds x14, x14, x25
- adc x15, x15, x26
- # A[1] * B[1]
- mul x25, x5, x22
- umulh x26, x5, x22
- adds x14, x14, x25
- adcs x15, x15, x26
- adc x16, xzr, xzr
- # A[2] * B[0]
- mul x25, x6, x21
- umulh x26, x6, x21
- adds x14, x14, x25
- adcs x15, x15, x26
- adc x16, x16, xzr
- # A[0] * B[3]
- mul x25, x4, x24
- umulh x26, x4, x24
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, xzr, xzr
- # A[1] * B[2]
- mul x25, x5, x23
- umulh x26, x5, x23
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[2] * B[1]
- mul x25, x6, x22
- umulh x26, x6, x22
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[3] * B[0]
- mul x25, x7, x21
- umulh x26, x7, x21
- adds x15, x15, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[1] * B[3]
- mul x25, x5, x24
- umulh x26, x5, x24
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, xzr, xzr
- # A[2] * B[2]
- mul x25, x6, x23
- umulh x26, x6, x23
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[3] * B[1]
- mul x25, x7, x22
- umulh x26, x7, x22
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[2] * B[3]
- mul x25, x6, x24
- umulh x26, x6, x24
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, xzr, xzr
- # A[3] * B[2]
- mul x25, x7, x23
- umulh x26, x7, x23
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, x20, xzr
- # A[3] * B[3]
- mul x25, x7, x24
- umulh x26, x7, x24
- adds x19, x19, x25
- adc x20, x20, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x20, x20, x19, #63
- extr x19, x19, x17, #63
- extr x17, x17, x16, #63
- extr x16, x16, x15, #63
- and x15, x15, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x16
- umulh x16, x25, x16
- adds x12, x12, x26
- mul x26, x25, x17
- umulh x17, x25, x17
- adcs x13, x13, x26
- mul x26, x25, x19
- umulh x19, x25, x19
- adcs x14, x14, x26
- mul x26, x25, x20
- umulh x27, x25, x20
- adcs x15, x15, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x13, x13, x16
- adcs x14, x14, x17
- adcs x15, x15, x19
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x15, #63
- mul x27, x27, x25
- and x15, x15, #0x7fffffffffffffff
- adds x12, x12, x27
- adcs x13, x13, xzr
- adcs x14, x14, xzr
- adc x15, x15, xzr
- # Reduce if top bit set
- and x27, x25, x15, asr 63
- and x15, x15, #0x7fffffffffffffff
- adds x12, x12, x27
- adcs x13, x13, xzr
- adcs x14, x14, xzr
- adc x15, x15, xzr
- # Store
- ldr x0, [x29, #24]
- ldr x1, [x29, #192]
- # Multiply
- ldp x21, x22, [x1]
- ldp x23, x24, [x1, #16]
- # A[0] * B[0]
- mul x4, x8, x21
- umulh x5, x8, x21
- # A[0] * B[1]
- mul x25, x8, x22
- umulh x6, x8, x22
- adds x5, x5, x25
- adc x6, x6, xzr
- # A[1] * B[0]
- mul x25, x9, x21
- umulh x26, x9, x21
- adds x5, x5, x25
- adcs x6, x6, x26
- adc x7, xzr, xzr
- # A[0] * B[2]
- mul x25, x8, x23
- umulh x26, x8, x23
- adds x6, x6, x25
- adc x7, x7, x26
- # A[1] * B[1]
- mul x25, x9, x22
- umulh x26, x9, x22
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x16, xzr, xzr
- # A[2] * B[0]
- mul x25, x10, x21
- umulh x26, x10, x21
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x16, x16, xzr
- # A[0] * B[3]
- mul x25, x8, x24
- umulh x26, x8, x24
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, xzr, xzr
- # A[1] * B[2]
- mul x25, x9, x23
- umulh x26, x9, x23
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[2] * B[1]
- mul x25, x10, x22
- umulh x26, x10, x22
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[3] * B[0]
- mul x25, x11, x21
- umulh x26, x11, x21
- adds x7, x7, x25
- adcs x16, x16, x26
- adc x17, x17, xzr
- # A[1] * B[3]
- mul x25, x9, x24
- umulh x26, x9, x24
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, xzr, xzr
- # A[2] * B[2]
- mul x25, x10, x23
- umulh x26, x10, x23
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[3] * B[1]
- mul x25, x11, x22
- umulh x26, x11, x22
- adds x16, x16, x25
- adcs x17, x17, x26
- adc x19, x19, xzr
- # A[2] * B[3]
- mul x25, x10, x24
- umulh x26, x10, x24
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, xzr, xzr
- # A[3] * B[2]
- mul x25, x11, x23
- umulh x26, x11, x23
- adds x17, x17, x25
- adcs x19, x19, x26
- adc x20, x20, xzr
- # A[3] * B[3]
- mul x25, x11, x24
- umulh x26, x11, x24
- adds x19, x19, x25
- adc x20, x20, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x20, x20, x19, #63
- extr x19, x19, x17, #63
- extr x17, x17, x16, #63
- extr x16, x16, x7, #63
- and x7, x7, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x16
- umulh x16, x25, x16
- adds x4, x4, x26
- mul x26, x25, x17
- umulh x17, x25, x17
- adcs x5, x5, x26
- mul x26, x25, x19
- umulh x19, x25, x19
- adcs x6, x6, x26
- mul x26, x25, x20
- umulh x27, x25, x20
- adcs x7, x7, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x5, x5, x16
- adcs x6, x6, x17
- adcs x7, x7, x19
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x7, #63
- mul x27, x27, x25
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Reduce if top bit set
- and x27, x25, x7, asr 63
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Store
- ldr x0, [x29, #24]
- ldr x1, [x29, #16]
- # Add
- adds x8, x12, x4
- adcs x9, x13, x5
- adcs x10, x14, x6
- adc x11, x15, x7
- mov x25, #-19
- asr x28, x11, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x8, x8, x25
- sbcs x9, x9, x28
- sbcs x10, x10, x28
- sbc x11, x11, x26
- # Sub
- subs x16, x12, x4
- sbcs x17, x13, x5
- sbcs x19, x14, x6
- sbcs x20, x15, x7
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x16, x16, x25
- adcs x17, x17, x28
- adcs x19, x19, x28
- adc x20, x20, x26
- stp x8, x9, [x0]
- stp x10, x11, [x0, #16]
- stp x16, x17, [x1]
- stp x19, x20, [x1, #16]
- ldr x0, [x29, #48]
- ldr x1, [x29, #64]
- ldr x2, [x29, #176]
- # Multiply
- ldp x12, x13, [x1]
- ldp x14, x15, [x1, #16]
- ldp x16, x17, [x2]
- ldp x19, x20, [x2, #16]
- # A[0] * B[0]
- mul x4, x12, x16
- umulh x5, x12, x16
- # A[0] * B[1]
- mul x25, x12, x17
- umulh x6, x12, x17
- adds x5, x5, x25
- adc x6, x6, xzr
- # A[1] * B[0]
- mul x25, x13, x16
- umulh x26, x13, x16
- adds x5, x5, x25
- adcs x6, x6, x26
- adc x7, xzr, xzr
- # A[0] * B[2]
- mul x25, x12, x19
- umulh x26, x12, x19
- adds x6, x6, x25
- adc x7, x7, x26
- # A[1] * B[1]
- mul x25, x13, x17
- umulh x26, x13, x17
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x8, xzr, xzr
- # A[2] * B[0]
- mul x25, x14, x16
- umulh x26, x14, x16
- adds x6, x6, x25
- adcs x7, x7, x26
- adc x8, x8, xzr
- # A[0] * B[3]
- mul x25, x12, x20
- umulh x26, x12, x20
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, xzr, xzr
- # A[1] * B[2]
- mul x25, x13, x19
- umulh x26, x13, x19
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, x9, xzr
- # A[2] * B[1]
- mul x25, x14, x17
- umulh x26, x14, x17
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, x9, xzr
- # A[3] * B[0]
- mul x25, x15, x16
- umulh x26, x15, x16
- adds x7, x7, x25
- adcs x8, x8, x26
- adc x9, x9, xzr
- # A[1] * B[3]
- mul x25, x13, x20
- umulh x26, x13, x20
- adds x8, x8, x25
- adcs x9, x9, x26
- adc x10, xzr, xzr
- # A[2] * B[2]
- mul x25, x14, x19
- umulh x26, x14, x19
- adds x8, x8, x25
- adcs x9, x9, x26
- adc x10, x10, xzr
- # A[3] * B[1]
- mul x25, x15, x17
- umulh x26, x15, x17
- adds x8, x8, x25
- adcs x9, x9, x26
- adc x10, x10, xzr
- # A[2] * B[3]
- mul x25, x14, x20
- umulh x26, x14, x20
- adds x9, x9, x25
- adcs x10, x10, x26
- adc x11, xzr, xzr
- # A[3] * B[2]
- mul x25, x15, x19
- umulh x26, x15, x19
- adds x9, x9, x25
- adcs x10, x10, x26
- adc x11, x11, xzr
- # A[3] * B[3]
- mul x25, x15, x20
- umulh x26, x15, x20
- adds x10, x10, x25
- adc x11, x11, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x11, x11, x10, #63
- extr x10, x10, x9, #63
- extr x9, x9, x8, #63
- extr x8, x8, x7, #63
- and x7, x7, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x8
- umulh x8, x25, x8
- adds x4, x4, x26
- mul x26, x25, x9
- umulh x9, x25, x9
- adcs x5, x5, x26
- mul x26, x25, x10
- umulh x10, x25, x10
- adcs x6, x6, x26
- mul x26, x25, x11
- umulh x27, x25, x11
- adcs x7, x7, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x5, x5, x8
- adcs x6, x6, x9
- adcs x7, x7, x10
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x7, #63
- mul x27, x27, x25
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Reduce if top bit set
- and x27, x25, x7, asr 63
- and x7, x7, #0x7fffffffffffffff
- adds x4, x4, x27
- adcs x5, x5, xzr
- adcs x6, x6, xzr
- adc x7, x7, xzr
- # Store
- ldr x0, [x29, #48]
- # Double
- adds x4, x4, x4
- adcs x5, x5, x5
- adcs x6, x6, x6
- adc x7, x7, x7
- mov x25, #-19
- asr x28, x7, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x4, x4, x25
- sbcs x5, x5, x28
- sbcs x6, x6, x28
- sbc x7, x7, x26
- ldr x0, [x29, #40]
- ldr x1, [x29, #184]
- ldr x2, [x29, #72]
- # Multiply
- ldp x16, x17, [x1]
- ldp x19, x20, [x1, #16]
- ldp x21, x22, [x2]
- ldp x23, x24, [x2, #16]
- # A[0] * B[0]
- mul x8, x16, x21
- umulh x9, x16, x21
- # A[0] * B[1]
- mul x25, x16, x22
- umulh x10, x16, x22
- adds x9, x9, x25
- adc x10, x10, xzr
- # A[1] * B[0]
- mul x25, x17, x21
- umulh x26, x17, x21
- adds x9, x9, x25
- adcs x10, x10, x26
- adc x11, xzr, xzr
- # A[0] * B[2]
- mul x25, x16, x23
- umulh x26, x16, x23
- adds x10, x10, x25
- adc x11, x11, x26
- # A[1] * B[1]
- mul x25, x17, x22
- umulh x26, x17, x22
- adds x10, x10, x25
- adcs x11, x11, x26
- adc x12, xzr, xzr
- # A[2] * B[0]
- mul x25, x19, x21
- umulh x26, x19, x21
- adds x10, x10, x25
- adcs x11, x11, x26
- adc x12, x12, xzr
- # A[0] * B[3]
- mul x25, x16, x24
- umulh x26, x16, x24
- adds x11, x11, x25
- adcs x12, x12, x26
- adc x13, xzr, xzr
- # A[1] * B[2]
- mul x25, x17, x23
- umulh x26, x17, x23
- adds x11, x11, x25
- adcs x12, x12, x26
- adc x13, x13, xzr
- # A[2] * B[1]
- mul x25, x19, x22
- umulh x26, x19, x22
- adds x11, x11, x25
- adcs x12, x12, x26
- adc x13, x13, xzr
- # A[3] * B[0]
- mul x25, x20, x21
- umulh x26, x20, x21
- adds x11, x11, x25
- adcs x12, x12, x26
- adc x13, x13, xzr
- # A[1] * B[3]
- mul x25, x17, x24
- umulh x26, x17, x24
- adds x12, x12, x25
- adcs x13, x13, x26
- adc x14, xzr, xzr
- # A[2] * B[2]
- mul x25, x19, x23
- umulh x26, x19, x23
- adds x12, x12, x25
- adcs x13, x13, x26
- adc x14, x14, xzr
- # A[3] * B[1]
- mul x25, x20, x22
- umulh x26, x20, x22
- adds x12, x12, x25
- adcs x13, x13, x26
- adc x14, x14, xzr
- # A[2] * B[3]
- mul x25, x19, x24
- umulh x26, x19, x24
- adds x13, x13, x25
- adcs x14, x14, x26
- adc x15, xzr, xzr
- # A[3] * B[2]
- mul x25, x20, x23
- umulh x26, x20, x23
- adds x13, x13, x25
- adcs x14, x14, x26
- adc x15, x15, xzr
- # A[3] * B[3]
- mul x25, x20, x24
- umulh x26, x20, x24
- adds x14, x14, x25
- adc x15, x15, x26
- # Reduce
- # Move top half into t4-t7 and remove top bit from t3
- extr x15, x15, x14, #63
- extr x14, x14, x13, #63
- extr x13, x13, x12, #63
- extr x12, x12, x11, #63
- and x11, x11, #0x7fffffffffffffff
- # Multiply top half by 19
- mov x25, #19
- mul x26, x25, x12
- umulh x12, x25, x12
- adds x8, x8, x26
- mul x26, x25, x13
- umulh x13, x25, x13
- adcs x9, x9, x26
- mul x26, x25, x14
- umulh x14, x25, x14
- adcs x10, x10, x26
- mul x26, x25, x15
- umulh x27, x25, x15
- adcs x11, x11, x26
- adc x27, x27, xzr
- # Add remaining product results in
- adds x9, x9, x12
- adcs x10, x10, x13
- adcs x11, x11, x14
- adc x27, x27, xzr
- # Overflow
- extr x27, x27, x11, #63
- mul x27, x27, x25
- and x11, x11, #0x7fffffffffffffff
- adds x8, x8, x27
- adcs x9, x9, xzr
- adcs x10, x10, xzr
- adc x11, x11, xzr
- # Reduce if top bit set
- and x27, x25, x11, asr 63
- and x11, x11, #0x7fffffffffffffff
- adds x8, x8, x27
- adcs x9, x9, xzr
- adcs x10, x10, xzr
- adc x11, x11, xzr
- # Store
- ldr x0, [x29, #40]
- ldr x1, [x29, #32]
- # Add
- adds x12, x4, x8
- adcs x13, x5, x9
- adcs x14, x6, x10
- adc x15, x7, x11
- mov x25, #-19
- asr x28, x15, #63
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Sub modulus (if overflow)
- subs x12, x12, x25
- sbcs x13, x13, x28
- sbcs x14, x14, x28
- sbc x15, x15, x26
- # Sub
- subs x16, x4, x8
- sbcs x17, x5, x9
- sbcs x19, x6, x10
- sbcs x20, x7, x11
- mov x25, #-19
- csetm x28, cc
- # Mask the modulus
- and x25, x28, x25
- and x26, x28, #0x7fffffffffffffff
- # Add modulus (if underflow)
- adds x16, x16, x25
- adcs x17, x17, x28
- adcs x19, x19, x28
- adc x20, x20, x26
- stp x12, x13, [x0]
- stp x14, x15, [x0, #16]
- stp x16, x17, [x1]
- stp x19, x20, [x1, #16]
- ldr x17, [x29, #88]
- ldr x19, [x29, #96]
- ldp x20, x21, [x29, #104]
- ldp x22, x23, [x29, #120]
- ldp x24, x25, [x29, #136]
- ldp x26, x27, [x29, #152]
- ldr x28, [x29, #168]
- ldp x29, x30, [sp], #0xb0
- ret
- .size fe_ge_sub,.-fe_ge_sub
-#endif /* __aarch64__ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-curve25519.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-curve25519.c
deleted file mode 100644
index d1ab4c89c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-curve25519.c
+++ /dev/null
@@ -1,6725 +0,0 @@
-/* armv8-curve25519
- *
- * Copyright (C) 2006-2020 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
- */
-
-/* Generated using (from wolfssl):
- * cd ../scripts
- * ruby ./x25519/x25519.rb arm64 ../wolfssl/wolfcrypt/src/port/arm/armv8-curve25519.c
- */
-#ifdef __aarch64__
-#include <stdint.h>
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifdef WOLFSSL_ARMASM
-#include <wolfssl/wolfcrypt/fe_operations.h>
-#include <stdint.h>
-
-void fe_init()
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-16]!\n\t"
- "add x29, sp, #0\n\t"
- "\n\t"
- "ldp x29, x30, [sp], #16\n\t"
- :
- :
- : "memory"
- );
-}
-
-void fe_frombytes(fe out, const unsigned char* in)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-16]!\n\t"
- "add x29, sp, #0\n\t"
- "ldp x2, x3, [%x[in]]\n\t"
- "ldp x4, x5, [%x[in], #16]\n\t"
- "and x5, x5, #0x7fffffffffffffff\n\t"
- "stp x2, x3, [%x[out]]\n\t"
- "stp x4, x5, [%x[out], #16]\n\t"
- "ldp x29, x30, [sp], #16\n\t"
- : [out] "+r" (out), [in] "+r" (in)
- :
- : "memory", "x2", "x3", "x4", "x5", "x6"
- );
-}
-
-void fe_tobytes(unsigned char* out, const fe n)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-16]!\n\t"
- "add x29, sp, #0\n\t"
- "mov x7, #19\n\t"
- "ldp x2, x3, [%x[n]]\n\t"
- "ldp x4, x5, [%x[n], #16]\n\t"
- "adds x6, x2, x7\n\t"
- "adcs x6, x3, xzr\n\t"
- "adcs x6, x4, xzr\n\t"
- "adc x6, x5, xzr\n\t"
- "and x6, x7, x6, asr 63\n\t"
- "adds x2, x2, x6\n\t"
- "adcs x3, x3, xzr\n\t"
- "adcs x4, x4, xzr\n\t"
- "adc x5, x5, xzr\n\t"
- "and x5, x5, #0x7fffffffffffffff\n\t"
- "stp x2, x3, [%x[out]]\n\t"
- "stp x4, x5, [%x[out], #16]\n\t"
- "ldp x29, x30, [sp], #16\n\t"
- : [out] "+r" (out), [n] "+r" (n)
- :
- : "memory", "x2", "x3", "x4", "x5", "x6", "x7"
- );
-}
-
-void fe_1(fe n)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-16]!\n\t"
- "add x29, sp, #0\n\t"
- /* Set one */
- "mov x1, #1\n\t"
- "stp x1, xzr, [%x[n]]\n\t"
- "stp xzr, xzr, [%x[n], #16]\n\t"
- "ldp x29, x30, [sp], #16\n\t"
- : [n] "+r" (n)
- :
- : "memory", "x1"
- );
-}
-
-void fe_0(fe n)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-16]!\n\t"
- "add x29, sp, #0\n\t"
- /* Set zero */
- "stp xzr, xzr, [%x[n]]\n\t"
- "stp xzr, xzr, [%x[n], #16]\n\t"
- "ldp x29, x30, [sp], #16\n\t"
- : [n] "+r" (n)
- :
- : "memory"
- );
-}
-
-void fe_copy(fe r, const fe a)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-16]!\n\t"
- "add x29, sp, #0\n\t"
- /* Copy */
- "ldp x2, x3, [%x[a]]\n\t"
- "ldp x4, x5, [%x[a], #16]\n\t"
- "stp x2, x3, [%x[r]]\n\t"
- "stp x4, x5, [%x[r], #16]\n\t"
- "ldp x29, x30, [sp], #16\n\t"
- : [r] "+r" (r), [a] "+r" (a)
- :
- : "memory", "x2", "x3", "x4", "x5"
- );
-}
-
-void fe_sub(fe r, const fe a, const fe b)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-16]!\n\t"
- "add x29, sp, #0\n\t"
- /* Sub */
- "ldp x3, x4, [%x[a]]\n\t"
- "ldp x5, x6, [%x[a], #16]\n\t"
- "ldp x7, x8, [%x[b]]\n\t"
- "ldp x9, x10, [%x[b], #16]\n\t"
- "subs x3, x3, x7\n\t"
- "sbcs x4, x4, x8\n\t"
- "sbcs x5, x5, x9\n\t"
- "sbcs x6, x6, x10\n\t"
- "mov x12, #-19\n\t"
- "csetm x11, cc\n\t"
- /* Mask the modulus */
- "and x12, x11, x12\n\t"
- "and x13, x11, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x3, x3, x12\n\t"
- "adcs x4, x4, x11\n\t"
- "adcs x5, x5, x11\n\t"
- "adc x6, x6, x13\n\t"
- "stp x3, x4, [%x[r]]\n\t"
- "stp x5, x6, [%x[r], #16]\n\t"
- "ldp x29, x30, [sp], #16\n\t"
- : [r] "+r" (r), [a] "+r" (a), [b] "+r" (b)
- :
- : "memory", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13"
- );
-}
-
-void fe_add(fe r, const fe a, const fe b)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-16]!\n\t"
- "add x29, sp, #0\n\t"
- /* Add */
- "ldp x3, x4, [%x[a]]\n\t"
- "ldp x5, x6, [%x[a], #16]\n\t"
- "ldp x7, x8, [%x[b]]\n\t"
- "ldp x9, x10, [%x[b], #16]\n\t"
- "adds x3, x3, x7\n\t"
- "adcs x4, x4, x8\n\t"
- "adcs x5, x5, x9\n\t"
- "adc x6, x6, x10\n\t"
- "mov x12, #-19\n\t"
- "asr x11, x6, #63\n\t"
- /* Mask the modulus */
- "and x12, x11, x12\n\t"
- "and x13, x11, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x3, x3, x12\n\t"
- "sbcs x4, x4, x11\n\t"
- "sbcs x5, x5, x11\n\t"
- "sbc x6, x6, x13\n\t"
- "stp x3, x4, [%x[r]]\n\t"
- "stp x5, x6, [%x[r], #16]\n\t"
- "ldp x29, x30, [sp], #16\n\t"
- : [r] "+r" (r), [a] "+r" (a), [b] "+r" (b)
- :
- : "memory", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13"
- );
-}
-
-void fe_neg(fe r, const fe a)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-16]!\n\t"
- "add x29, sp, #0\n\t"
- "ldp x2, x3, [%x[a]]\n\t"
- "ldp x4, x5, [%x[a], #16]\n\t"
- "mov x6, #-19\n\t"
- "mov x7, #-1\n\t"
- "mov x8, #-1\n\t"
- "mov x9, #0x7fffffffffffffff\n\t"
- "subs x6, x6, x2\n\t"
- "sbcs x7, x7, x3\n\t"
- "sbcs x8, x8, x4\n\t"
- "sbc x9, x9, x5\n\t"
- "stp x6, x7, [%x[r]]\n\t"
- "stp x8, x9, [%x[r], #16]\n\t"
- "ldp x29, x30, [sp], #16\n\t"
- : [r] "+r" (r), [a] "+r" (a)
- :
- : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9"
- );
-}
-
-int fe_isnonzero(const fe a)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-16]!\n\t"
- "add x29, sp, #0\n\t"
- "mov x6, #19\n\t"
- "ldp x1, x2, [%x[a]]\n\t"
- "ldp x3, x4, [%x[a], #16]\n\t"
- "adds x5, x1, x6\n\t"
- "adcs x5, x2, xzr\n\t"
- "adcs x5, x3, xzr\n\t"
- "adc x5, x4, xzr\n\t"
- "and x5, x6, x5, asr 63\n\t"
- "adds x1, x1, x5\n\t"
- "adcs x2, x2, xzr\n\t"
- "adcs x3, x3, xzr\n\t"
- "adc x4, x4, xzr\n\t"
- "and x4, x4, #0x7fffffffffffffff\n\t"
- "orr %x[a], x1, x2\n\t"
- "orr x3, x3, x4\n\t"
- "orr %x[a], %x[a], x3\n\t"
- "ldp x29, x30, [sp], #16\n\t"
- : [a] "+r" (a)
- :
- : "memory", "x1", "x2", "x3", "x4", "x5", "x6"
- );
- return (uint32_t)(size_t)a;
-}
-
-int fe_isnegative(const fe a)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-16]!\n\t"
- "add x29, sp, #0\n\t"
- "mov x6, #19\n\t"
- "ldp x1, x2, [%x[a]]\n\t"
- "ldp x3, x4, [%x[a], #16]\n\t"
- "adds x5, x1, x6\n\t"
- "adcs x5, x2, xzr\n\t"
- "adcs x5, x3, xzr\n\t"
- "adc x5, x4, xzr\n\t"
- "and %x[a], x1, #1\n\t"
- "eor %x[a], %x[a], x5, lsr 63\n\t"
- "ldp x29, x30, [sp], #16\n\t"
- : [a] "+r" (a)
- :
- : "memory", "x1", "x2", "x3", "x4", "x5", "x6"
- );
- return (uint32_t)(size_t)a;
-}
-
-void fe_cmov_table(fe* r, fe* base, signed char b)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-32]!\n\t"
- "add x29, sp, #0\n\t"
- "str %x[r], [x29, #16]\n\t"
- "sxtb %x[b], %w[b]\n\t"
- "sbfx x3, %x[b], #7, #1\n\t"
- "eor %x[r], %x[b], x3\n\t"
- "sub %x[r], %x[r], x3\n\t"
- "mov x4, #1\n\t"
- "mov x5, xzr\n\t"
- "mov x6, xzr\n\t"
- "mov x7, xzr\n\t"
- "mov x8, #1\n\t"
- "mov x9, xzr\n\t"
- "mov x10, xzr\n\t"
- "mov x11, xzr\n\t"
- "mov x12, xzr\n\t"
- "mov x13, xzr\n\t"
- "mov x14, xzr\n\t"
- "mov x15, xzr\n\t"
- "cmp %x[r], #1\n\t"
- "ldp x16, x17, [%x[base]]\n\t"
- "ldp x19, x20, [%x[base], #16]\n\t"
- "ldp x21, x22, [%x[base], #32]\n\t"
- "ldp x23, x24, [%x[base], #48]\n\t"
- "ldp x25, x26, [%x[base], #64]\n\t"
- "ldp x27, x28, [%x[base], #80]\n\t"
- "csel x4, x16, x4, eq\n\t"
- "csel x5, x17, x5, eq\n\t"
- "csel x6, x19, x6, eq\n\t"
- "csel x7, x20, x7, eq\n\t"
- "csel x8, x21, x8, eq\n\t"
- "csel x9, x22, x9, eq\n\t"
- "csel x10, x23, x10, eq\n\t"
- "csel x11, x24, x11, eq\n\t"
- "csel x12, x25, x12, eq\n\t"
- "csel x13, x26, x13, eq\n\t"
- "csel x14, x27, x14, eq\n\t"
- "csel x15, x28, x15, eq\n\t"
- "cmp %x[r], #2\n\t"
- "ldp x16, x17, [%x[base], #96]\n\t"
- "ldp x19, x20, [%x[base], #112]\n\t"
- "ldp x21, x22, [%x[base], #128]\n\t"
- "ldp x23, x24, [%x[base], #144]\n\t"
- "ldp x25, x26, [%x[base], #160]\n\t"
- "ldp x27, x28, [%x[base], #176]\n\t"
- "csel x4, x16, x4, eq\n\t"
- "csel x5, x17, x5, eq\n\t"
- "csel x6, x19, x6, eq\n\t"
- "csel x7, x20, x7, eq\n\t"
- "csel x8, x21, x8, eq\n\t"
- "csel x9, x22, x9, eq\n\t"
- "csel x10, x23, x10, eq\n\t"
- "csel x11, x24, x11, eq\n\t"
- "csel x12, x25, x12, eq\n\t"
- "csel x13, x26, x13, eq\n\t"
- "csel x14, x27, x14, eq\n\t"
- "csel x15, x28, x15, eq\n\t"
- "cmp %x[r], #3\n\t"
- "ldp x16, x17, [%x[base], #192]\n\t"
- "ldp x19, x20, [%x[base], #208]\n\t"
- "ldp x21, x22, [%x[base], #224]\n\t"
- "ldp x23, x24, [%x[base], #240]\n\t"
- "ldp x25, x26, [%x[base], #256]\n\t"
- "ldp x27, x28, [%x[base], #272]\n\t"
- "csel x4, x16, x4, eq\n\t"
- "csel x5, x17, x5, eq\n\t"
- "csel x6, x19, x6, eq\n\t"
- "csel x7, x20, x7, eq\n\t"
- "csel x8, x21, x8, eq\n\t"
- "csel x9, x22, x9, eq\n\t"
- "csel x10, x23, x10, eq\n\t"
- "csel x11, x24, x11, eq\n\t"
- "csel x12, x25, x12, eq\n\t"
- "csel x13, x26, x13, eq\n\t"
- "csel x14, x27, x14, eq\n\t"
- "csel x15, x28, x15, eq\n\t"
- "cmp %x[r], #4\n\t"
- "ldp x16, x17, [%x[base], #288]\n\t"
- "ldp x19, x20, [%x[base], #304]\n\t"
- "ldp x21, x22, [%x[base], #320]\n\t"
- "ldp x23, x24, [%x[base], #336]\n\t"
- "ldp x25, x26, [%x[base], #352]\n\t"
- "ldp x27, x28, [%x[base], #368]\n\t"
- "csel x4, x16, x4, eq\n\t"
- "csel x5, x17, x5, eq\n\t"
- "csel x6, x19, x6, eq\n\t"
- "csel x7, x20, x7, eq\n\t"
- "csel x8, x21, x8, eq\n\t"
- "csel x9, x22, x9, eq\n\t"
- "csel x10, x23, x10, eq\n\t"
- "csel x11, x24, x11, eq\n\t"
- "csel x12, x25, x12, eq\n\t"
- "csel x13, x26, x13, eq\n\t"
- "csel x14, x27, x14, eq\n\t"
- "csel x15, x28, x15, eq\n\t"
- "add %x[base], %x[base], #0x180\n\t"
- "cmp %x[r], #5\n\t"
- "ldp x16, x17, [%x[base]]\n\t"
- "ldp x19, x20, [%x[base], #16]\n\t"
- "ldp x21, x22, [%x[base], #32]\n\t"
- "ldp x23, x24, [%x[base], #48]\n\t"
- "ldp x25, x26, [%x[base], #64]\n\t"
- "ldp x27, x28, [%x[base], #80]\n\t"
- "csel x4, x16, x4, eq\n\t"
- "csel x5, x17, x5, eq\n\t"
- "csel x6, x19, x6, eq\n\t"
- "csel x7, x20, x7, eq\n\t"
- "csel x8, x21, x8, eq\n\t"
- "csel x9, x22, x9, eq\n\t"
- "csel x10, x23, x10, eq\n\t"
- "csel x11, x24, x11, eq\n\t"
- "csel x12, x25, x12, eq\n\t"
- "csel x13, x26, x13, eq\n\t"
- "csel x14, x27, x14, eq\n\t"
- "csel x15, x28, x15, eq\n\t"
- "cmp %x[r], #6\n\t"
- "ldp x16, x17, [%x[base], #96]\n\t"
- "ldp x19, x20, [%x[base], #112]\n\t"
- "ldp x21, x22, [%x[base], #128]\n\t"
- "ldp x23, x24, [%x[base], #144]\n\t"
- "ldp x25, x26, [%x[base], #160]\n\t"
- "ldp x27, x28, [%x[base], #176]\n\t"
- "csel x4, x16, x4, eq\n\t"
- "csel x5, x17, x5, eq\n\t"
- "csel x6, x19, x6, eq\n\t"
- "csel x7, x20, x7, eq\n\t"
- "csel x8, x21, x8, eq\n\t"
- "csel x9, x22, x9, eq\n\t"
- "csel x10, x23, x10, eq\n\t"
- "csel x11, x24, x11, eq\n\t"
- "csel x12, x25, x12, eq\n\t"
- "csel x13, x26, x13, eq\n\t"
- "csel x14, x27, x14, eq\n\t"
- "csel x15, x28, x15, eq\n\t"
- "cmp %x[r], #7\n\t"
- "ldp x16, x17, [%x[base], #192]\n\t"
- "ldp x19, x20, [%x[base], #208]\n\t"
- "ldp x21, x22, [%x[base], #224]\n\t"
- "ldp x23, x24, [%x[base], #240]\n\t"
- "ldp x25, x26, [%x[base], #256]\n\t"
- "ldp x27, x28, [%x[base], #272]\n\t"
- "csel x4, x16, x4, eq\n\t"
- "csel x5, x17, x5, eq\n\t"
- "csel x6, x19, x6, eq\n\t"
- "csel x7, x20, x7, eq\n\t"
- "csel x8, x21, x8, eq\n\t"
- "csel x9, x22, x9, eq\n\t"
- "csel x10, x23, x10, eq\n\t"
- "csel x11, x24, x11, eq\n\t"
- "csel x12, x25, x12, eq\n\t"
- "csel x13, x26, x13, eq\n\t"
- "csel x14, x27, x14, eq\n\t"
- "csel x15, x28, x15, eq\n\t"
- "cmp %x[r], #8\n\t"
- "ldp x16, x17, [%x[base], #288]\n\t"
- "ldp x19, x20, [%x[base], #304]\n\t"
- "ldp x21, x22, [%x[base], #320]\n\t"
- "ldp x23, x24, [%x[base], #336]\n\t"
- "ldp x25, x26, [%x[base], #352]\n\t"
- "ldp x27, x28, [%x[base], #368]\n\t"
- "csel x4, x16, x4, eq\n\t"
- "csel x5, x17, x5, eq\n\t"
- "csel x6, x19, x6, eq\n\t"
- "csel x7, x20, x7, eq\n\t"
- "csel x8, x21, x8, eq\n\t"
- "csel x9, x22, x9, eq\n\t"
- "csel x10, x23, x10, eq\n\t"
- "csel x11, x24, x11, eq\n\t"
- "csel x12, x25, x12, eq\n\t"
- "csel x13, x26, x13, eq\n\t"
- "csel x14, x27, x14, eq\n\t"
- "csel x15, x28, x15, eq\n\t"
- "mov x16, #-19\n\t"
- "mov x17, #-1\n\t"
- "mov x19, #-1\n\t"
- "mov x20, #0x7fffffffffffffff\n\t"
- "subs x16, x16, x12\n\t"
- "sbcs x17, x17, x13\n\t"
- "sbcs x19, x19, x14\n\t"
- "sbc x20, x20, x15\n\t"
- "cmp %x[b], #0\n\t"
- "mov x3, x4\n\t"
- "csel x4, x8, x4, lt\n\t"
- "csel x8, x3, x8, lt\n\t"
- "mov x3, x5\n\t"
- "csel x5, x9, x5, lt\n\t"
- "csel x9, x3, x9, lt\n\t"
- "mov x3, x6\n\t"
- "csel x6, x10, x6, lt\n\t"
- "csel x10, x3, x10, lt\n\t"
- "mov x3, x7\n\t"
- "csel x7, x11, x7, lt\n\t"
- "csel x11, x3, x11, lt\n\t"
- "csel x12, x16, x12, lt\n\t"
- "csel x13, x17, x13, lt\n\t"
- "csel x14, x19, x14, lt\n\t"
- "csel x15, x20, x15, lt\n\t"
- "ldr %x[r], [x29, #16]\n\t"
- "stp x4, x5, [%x[r]]\n\t"
- "stp x6, x7, [%x[r], #16]\n\t"
- "stp x8, x9, [%x[r], #32]\n\t"
- "stp x10, x11, [%x[r], #48]\n\t"
- "stp x12, x13, [%x[r], #64]\n\t"
- "stp x14, x15, [%x[r], #80]\n\t"
- "ldp x29, x30, [sp], #32\n\t"
- : [r] "+r" (r), [base] "+r" (base), [b] "+r" (b)
- :
- : "memory", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27", "x28"
- );
-}
-
-void fe_mul(fe r, const fe a, const fe b)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-16]!\n\t"
- "add x29, sp, #0\n\t"
- /* Multiply */
- "ldp x14, x15, [%x[a]]\n\t"
- "ldp x16, x17, [%x[a], #16]\n\t"
- "ldp x19, x20, [%x[b]]\n\t"
- "ldp x21, x22, [%x[b], #16]\n\t"
- /* A[0] * B[0] */
- "mul x6, x14, x19\n\t"
- "umulh x7, x14, x19\n\t"
- /* A[0] * B[1] */
- "mul x3, x14, x20\n\t"
- "umulh x8, x14, x20\n\t"
- "adds x7, x7, x3\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[1] * B[0] */
- "mul x3, x15, x19\n\t"
- "umulh x4, x15, x19\n\t"
- "adds x7, x7, x3\n\t"
- "adcs x8, x8, x4\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x3, x14, x21\n\t"
- "umulh x4, x14, x21\n\t"
- "adds x8, x8, x3\n\t"
- "adc x9, x9, x4\n\t"
- /* A[1] * B[1] */
- "mul x3, x15, x20\n\t"
- "umulh x4, x15, x20\n\t"
- "adds x8, x8, x3\n\t"
- "adcs x9, x9, x4\n\t"
- "adc x10, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x3, x16, x19\n\t"
- "umulh x4, x16, x19\n\t"
- "adds x8, x8, x3\n\t"
- "adcs x9, x9, x4\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[0] * B[3] */
- "mul x3, x14, x22\n\t"
- "umulh x4, x14, x22\n\t"
- "adds x9, x9, x3\n\t"
- "adcs x10, x10, x4\n\t"
- "adc x11, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x3, x15, x21\n\t"
- "umulh x4, x15, x21\n\t"
- "adds x9, x9, x3\n\t"
- "adcs x10, x10, x4\n\t"
- "adc x11, x11, xzr\n\t"
- /* A[2] * B[1] */
- "mul x3, x16, x20\n\t"
- "umulh x4, x16, x20\n\t"
- "adds x9, x9, x3\n\t"
- "adcs x10, x10, x4\n\t"
- "adc x11, x11, xzr\n\t"
- /* A[3] * B[0] */
- "mul x3, x17, x19\n\t"
- "umulh x4, x17, x19\n\t"
- "adds x9, x9, x3\n\t"
- "adcs x10, x10, x4\n\t"
- "adc x11, x11, xzr\n\t"
- /* A[1] * B[3] */
- "mul x3, x15, x22\n\t"
- "umulh x4, x15, x22\n\t"
- "adds x10, x10, x3\n\t"
- "adcs x11, x11, x4\n\t"
- "adc x12, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x3, x16, x21\n\t"
- "umulh x4, x16, x21\n\t"
- "adds x10, x10, x3\n\t"
- "adcs x11, x11, x4\n\t"
- "adc x12, x12, xzr\n\t"
- /* A[3] * B[1] */
- "mul x3, x17, x20\n\t"
- "umulh x4, x17, x20\n\t"
- "adds x10, x10, x3\n\t"
- "adcs x11, x11, x4\n\t"
- "adc x12, x12, xzr\n\t"
- /* A[2] * B[3] */
- "mul x3, x16, x22\n\t"
- "umulh x4, x16, x22\n\t"
- "adds x11, x11, x3\n\t"
- "adcs x12, x12, x4\n\t"
- "adc x13, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x3, x17, x21\n\t"
- "umulh x4, x17, x21\n\t"
- "adds x11, x11, x3\n\t"
- "adcs x12, x12, x4\n\t"
- "adc x13, x13, xzr\n\t"
- /* A[3] * B[3] */
- "mul x3, x17, x22\n\t"
- "umulh x4, x17, x22\n\t"
- "adds x12, x12, x3\n\t"
- "adc x13, x13, x4\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x13, x13, x12, #63\n\t"
- "extr x12, x12, x11, #63\n\t"
- "extr x11, x11, x10, #63\n\t"
- "extr x10, x10, x9, #63\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x3, #19\n\t"
- "mul x4, x3, x10\n\t"
- "umulh x10, x3, x10\n\t"
- "adds x6, x6, x4\n\t"
- "mul x4, x3, x11\n\t"
- "umulh x11, x3, x11\n\t"
- "adcs x7, x7, x4\n\t"
- "mul x4, x3, x12\n\t"
- "umulh x12, x3, x12\n\t"
- "adcs x8, x8, x4\n\t"
- "mul x4, x3, x13\n\t"
- "umulh x5, x3, x13\n\t"
- "adcs x9, x9, x4\n\t"
- "adc x5, x5, xzr\n\t"
- /* Add remaining product results in */
- "adds x7, x7, x10\n\t"
- "adcs x8, x8, x11\n\t"
- "adcs x9, x9, x12\n\t"
- "adc x5, x5, xzr\n\t"
- /* Overflow */
- "extr x5, x5, x9, #63\n\t"
- "mul x5, x5, x3\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- "adds x6, x6, x5\n\t"
- "adcs x7, x7, xzr\n\t"
- "adcs x8, x8, xzr\n\t"
- "adc x9, x9, xzr\n\t"
- /* Reduce if top bit set */
- "and x5, x3, x9, asr 63\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- "adds x6, x6, x5\n\t"
- "adcs x7, x7, xzr\n\t"
- "adcs x8, x8, xzr\n\t"
- "adc x9, x9, xzr\n\t"
- /* Store */
- "stp x6, x7, [%x[r]]\n\t"
- "stp x8, x9, [%x[r], #16]\n\t"
- "ldp x29, x30, [sp], #16\n\t"
- : [r] "+r" (r), [a] "+r" (a), [b] "+r" (b)
- :
- : "memory", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x19", "x20", "x21", "x22"
- );
-}
-
-void fe_sq(fe r, const fe a)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-16]!\n\t"
- "add x29, sp, #0\n\t"
- /* Square */
- "ldp x13, x14, [%x[a]]\n\t"
- "ldp x15, x16, [%x[a], #16]\n\t"
- /* A[0] * A[1] */
- "mul x6, x13, x14\n\t"
- "umulh x7, x13, x14\n\t"
- /* A[0] * A[2] */
- "mul x2, x13, x15\n\t"
- "umulh x8, x13, x15\n\t"
- "adds x7, x7, x2\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[0] * A[3] */
- "mul x2, x13, x16\n\t"
- "umulh x9, x13, x16\n\t"
- "adds x8, x8, x2\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[1] * A[2] */
- "mul x2, x14, x15\n\t"
- "umulh x3, x14, x15\n\t"
- "adds x8, x8, x2\n\t"
- "adcs x9, x9, x3\n\t"
- "adc x10, xzr, xzr\n\t"
- /* A[1] * A[3] */
- "mul x2, x14, x16\n\t"
- "umulh x3, x14, x16\n\t"
- "adds x9, x9, x2\n\t"
- "adc x10, x10, x3\n\t"
- /* A[2] * A[3] */
- "mul x2, x15, x16\n\t"
- "umulh x11, x15, x16\n\t"
- "adds x10, x10, x2\n\t"
- "adc x11, x11, xzr\n\t"
- /* Double */
- "adds x6, x6, x6\n\t"
- "adcs x7, x7, x7\n\t"
- "adcs x8, x8, x8\n\t"
- "adcs x9, x9, x9\n\t"
- "adcs x10, x10, x10\n\t"
- "adcs x11, x11, x11\n\t"
- "adc x12, xzr, xzr\n\t"
- /* A[0] * A[0] */
- "mul x5, x13, x13\n\t"
- "umulh x4, x13, x13\n\t"
- /* A[1] * A[1] */
- "mul x2, x14, x14\n\t"
- "umulh x3, x14, x14\n\t"
- "adds x6, x6, x4\n\t"
- "adcs x7, x7, x2\n\t"
- "adc x4, x3, xzr\n\t"
- /* A[2] * A[2] */
- "mul x2, x15, x15\n\t"
- "umulh x3, x15, x15\n\t"
- "adds x8, x8, x4\n\t"
- "adcs x9, x9, x2\n\t"
- "adc x4, x3, xzr\n\t"
- /* A[3] * A[3] */
- "mul x2, x16, x16\n\t"
- "umulh x3, x16, x16\n\t"
- "adds x10, x10, x4\n\t"
- "adcs x11, x11, x2\n\t"
- "adc x12, x12, x3\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x12, x12, x11, #63\n\t"
- "extr x11, x11, x10, #63\n\t"
- "extr x10, x10, x9, #63\n\t"
- "extr x9, x9, x8, #63\n\t"
- "and x8, x8, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x2, #19\n\t"
- "mul x3, x2, x9\n\t"
- "umulh x9, x2, x9\n\t"
- "adds x5, x5, x3\n\t"
- "mul x3, x2, x10\n\t"
- "umulh x10, x2, x10\n\t"
- "adcs x6, x6, x3\n\t"
- "mul x3, x2, x11\n\t"
- "umulh x11, x2, x11\n\t"
- "adcs x7, x7, x3\n\t"
- "mul x3, x2, x12\n\t"
- "umulh x4, x2, x12\n\t"
- "adcs x8, x8, x3\n\t"
- "adc x4, x4, xzr\n\t"
- /* Add remaining product results in */
- "adds x6, x6, x9\n\t"
- "adcs x7, x7, x10\n\t"
- "adcs x8, x8, x11\n\t"
- "adc x4, x4, xzr\n\t"
- /* Overflow */
- "extr x4, x4, x8, #63\n\t"
- "mul x4, x4, x2\n\t"
- "and x8, x8, #0x7fffffffffffffff\n\t"
- "adds x5, x5, x4\n\t"
- "adcs x6, x6, xzr\n\t"
- "adcs x7, x7, xzr\n\t"
- "adc x8, x8, xzr\n\t"
- /* Reduce if top bit set */
- "and x4, x2, x8, asr 63\n\t"
- "and x8, x8, #0x7fffffffffffffff\n\t"
- "adds x5, x5, x4\n\t"
- "adcs x6, x6, xzr\n\t"
- "adcs x7, x7, xzr\n\t"
- "adc x8, x8, xzr\n\t"
- /* Store */
- "stp x5, x6, [%x[r]]\n\t"
- "stp x7, x8, [%x[r], #16]\n\t"
- "ldp x29, x30, [sp], #16\n\t"
- : [r] "+r" (r), [a] "+r" (a)
- :
- : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16"
- );
-}
-
-void fe_invert(fe r, const fe a)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-160]!\n\t"
- "add x29, sp, #0\n\t"
- /* Invert */
- "str %x[r], [x29, #144]\n\t"
- "str %x[a], [x29, #152]\n\t"
- "add x0, x29, #16\n\t"
- "bl fe_sq\n\t"
- "add x0, x29, #48\n\t"
- "add x1, x29, #16\n\t"
- "bl fe_sq\n\t"
- "add x1, x29, #48\n\t"
- "bl fe_sq\n\t"
- "ldr x1, [x29, #152]\n\t"
- "add x2, x29, #48\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #16\n\t"
- "add x1, x29, #16\n\t"
- "add x2, x29, #48\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #0x50\n\t"
- "bl fe_sq\n\t"
- "add x0, x29, #48\n\t"
- "add x1, x29, #48\n\t"
- "add x2, x29, #0x50\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #0x50\n\t"
- "bl fe_sq\n\t"
- "mov x20, #4\n\t"
- "add x1, x29, #0x50\n\t"
- "\n"
- "L_fe_invert1_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x20, x20, #1\n\t"
- "cmp x20, #0\n\t"
- "bne L_fe_invert1_%=\n\t"
- "add x0, x29, #48\n\t"
- "add x2, x29, #48\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #0x50\n\t"
- "add x1, x29, #48\n\t"
- "bl fe_sq\n\t"
- "mov x20, #9\n\t"
- "add x1, x29, #0x50\n\t"
- "\n"
- "L_fe_invert2_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x20, x20, #1\n\t"
- "cmp x20, #0\n\t"
- "bne L_fe_invert2_%=\n\t"
- "add x2, x29, #48\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #0x70\n\t"
- "bl fe_sq\n\t"
- "mov x20, #19\n\t"
- "add x1, x29, #0x70\n\t"
- "\n"
- "L_fe_invert3_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x20, x20, #1\n\t"
- "cmp x20, #0\n\t"
- "bne L_fe_invert3_%=\n\t"
- "add x0, x29, #0x50\n\t"
- "add x2, x29, #0x50\n\t"
- "bl fe_mul\n\t"
- "mov x20, #10\n\t"
- "add x1, x29, #0x50\n\t"
- "\n"
- "L_fe_invert4_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x20, x20, #1\n\t"
- "cmp x20, #0\n\t"
- "bne L_fe_invert4_%=\n\t"
- "add x0, x29, #48\n\t"
- "add x2, x29, #48\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #0x50\n\t"
- "add x1, x29, #48\n\t"
- "bl fe_sq\n\t"
- "mov x20, #49\n\t"
- "add x1, x29, #0x50\n\t"
- "\n"
- "L_fe_invert5_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x20, x20, #1\n\t"
- "cmp x20, #0\n\t"
- "bne L_fe_invert5_%=\n\t"
- "add x2, x29, #48\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #0x70\n\t"
- "bl fe_sq\n\t"
- "mov x20, #0x63\n\t"
- "add x1, x29, #0x70\n\t"
- "\n"
- "L_fe_invert6_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x20, x20, #1\n\t"
- "cmp x20, #0\n\t"
- "bne L_fe_invert6_%=\n\t"
- "add x0, x29, #0x50\n\t"
- "add x2, x29, #0x50\n\t"
- "bl fe_mul\n\t"
- "mov x20, #50\n\t"
- "add x1, x29, #0x50\n\t"
- "\n"
- "L_fe_invert7_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x20, x20, #1\n\t"
- "cmp x20, #0\n\t"
- "bne L_fe_invert7_%=\n\t"
- "add x0, x29, #48\n\t"
- "add x2, x29, #48\n\t"
- "bl fe_mul\n\t"
- "mov x20, #5\n\t"
- "add x1, x29, #48\n\t"
- "\n"
- "L_fe_invert8_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x20, x20, #1\n\t"
- "cmp x20, #0\n\t"
- "bne L_fe_invert8_%=\n\t"
- "ldr x0, [x29, #144]\n\t"
- "add x2, x29, #16\n\t"
- "bl fe_mul\n\t"
- "ldp x29, x30, [sp], #0xa0\n\t"
- : [r] "+r" (r), [a] "+r" (a)
- :
- : "memory", "x20"
- );
-}
-
-int curve25519(byte* r, byte* n, byte* a)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-192]!\n\t"
- "add x29, sp, #0\n\t"
- "mov x23, xzr\n\t"
- "str %x[r], [x29, #176]\n\t"
- "str %x[a], [x29, #184]\n\t"
- /* Copy */
- "ldp x6, x7, [%x[a]]\n\t"
- "ldp x8, x9, [%x[a], #16]\n\t"
- "stp x6, x7, [x29, #80]\n\t"
- "stp x8, x9, [x29, #96]\n\t"
- /* Set one */
- "mov %x[a], #1\n\t"
- "stp %x[a], xzr, [%x[r]]\n\t"
- "stp xzr, xzr, [%x[r], #16]\n\t"
- /* Set zero */
- "stp xzr, xzr, [x29, #16]\n\t"
- "stp xzr, xzr, [x29, #32]\n\t"
- /* Set one */
- "mov %x[a], #1\n\t"
- "stp %x[a], xzr, [x29, #48]\n\t"
- "stp xzr, xzr, [x29, #64]\n\t"
- "mov x25, #62\n\t"
- "mov x24, #24\n\t"
- "\n"
- "L_curve25519_words_%=: \n\t"
- "\n"
- "L_curve25519_bits_%=: \n\t"
- "ldr %x[a], [%x[n], x24]\n\t"
- "lsr %x[a], %x[a], x25\n\t"
- "and %x[a], %x[a], #1\n\t"
- "eor x23, x23, %x[a]\n\t"
- /* Conditional Swap */
- "cmp x23, #1\n\t"
- "ldp x10, x11, [%x[r]]\n\t"
- "ldp x12, x13, [%x[r], #16]\n\t"
- "ldp x6, x7, [x29, #80]\n\t"
- "ldp x8, x9, [x29, #96]\n\t"
- "csel x14, x10, x6, eq\n\t"
- "csel x10, x6, x10, eq\n\t"
- "csel x15, x11, x7, eq\n\t"
- "csel x11, x7, x11, eq\n\t"
- "csel x16, x12, x8, eq\n\t"
- "csel x12, x8, x12, eq\n\t"
- "csel x17, x13, x9, eq\n\t"
- "csel x13, x9, x13, eq\n\t"
- /* Conditional Swap */
- "cmp x23, #1\n\t"
- "ldp x19, x20, [x29, #16]\n\t"
- "ldp x21, x22, [x29, #32]\n\t"
- "ldp x6, x7, [x29, #48]\n\t"
- "ldp x8, x9, [x29, #64]\n\t"
- "csel x5, x19, x6, eq\n\t"
- "csel x19, x6, x19, eq\n\t"
- "csel x26, x20, x7, eq\n\t"
- "csel x20, x7, x20, eq\n\t"
- "csel x27, x21, x8, eq\n\t"
- "csel x21, x8, x21, eq\n\t"
- "csel x28, x22, x9, eq\n\t"
- "csel x22, x9, x22, eq\n\t"
- "mov x23, %x[a]\n\t"
- /* Add */
- "adds x6, x10, x19\n\t"
- "adcs x7, x11, x20\n\t"
- "adcs x8, x12, x21\n\t"
- "adc x9, x13, x22\n\t"
- "mov x3, #-19\n\t"
- "asr %x[a], x9, #63\n\t"
- /* Mask the modulus */
- "and x3, %x[a], x3\n\t"
- "and x4, %x[a], #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x6, x6, x3\n\t"
- "sbcs x7, x7, %x[a]\n\t"
- "sbcs x8, x8, %x[a]\n\t"
- "sbc x9, x9, x4\n\t"
- /* Sub */
- "subs x19, x10, x19\n\t"
- "sbcs x20, x11, x20\n\t"
- "sbcs x21, x12, x21\n\t"
- "sbcs x22, x13, x22\n\t"
- "mov x3, #-19\n\t"
- "csetm %x[a], cc\n\t"
- /* Mask the modulus */
- "and x3, %x[a], x3\n\t"
- "and x4, %x[a], #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x19, x19, x3\n\t"
- "adcs x20, x20, %x[a]\n\t"
- "adcs x21, x21, %x[a]\n\t"
- "adc x22, x22, x4\n\t"
- "stp x19, x20, [x29, #144]\n\t"
- "stp x21, x22, [x29, #160]\n\t"
- /* Add */
- "adds x10, x14, x5\n\t"
- "adcs x11, x15, x26\n\t"
- "adcs x12, x16, x27\n\t"
- "adc x13, x17, x28\n\t"
- "mov x3, #-19\n\t"
- "asr %x[a], x13, #63\n\t"
- /* Mask the modulus */
- "and x3, %x[a], x3\n\t"
- "and x4, %x[a], #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x10, x10, x3\n\t"
- "sbcs x11, x11, %x[a]\n\t"
- "sbcs x12, x12, %x[a]\n\t"
- "sbc x13, x13, x4\n\t"
- /* Sub */
- "subs x14, x14, x5\n\t"
- "sbcs x15, x15, x26\n\t"
- "sbcs x16, x16, x27\n\t"
- "sbcs x17, x17, x28\n\t"
- "mov x3, #-19\n\t"
- "csetm %x[a], cc\n\t"
- /* Mask the modulus */
- "and x3, %x[a], x3\n\t"
- "and x4, %x[a], #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x14, x14, x3\n\t"
- "adcs x15, x15, %x[a]\n\t"
- "adcs x16, x16, %x[a]\n\t"
- "adc x17, x17, x4\n\t"
- /* Multiply */
- /* A[0] * B[0] */
- "mul x19, x14, x6\n\t"
- "umulh x20, x14, x6\n\t"
- /* A[0] * B[1] */
- "mul x3, x14, x7\n\t"
- "umulh x21, x14, x7\n\t"
- "adds x20, x20, x3\n\t"
- "adc x21, x21, xzr\n\t"
- /* A[1] * B[0] */
- "mul x3, x15, x6\n\t"
- "umulh x4, x15, x6\n\t"
- "adds x20, x20, x3\n\t"
- "adcs x21, x21, x4\n\t"
- "adc x22, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x3, x14, x8\n\t"
- "umulh x4, x14, x8\n\t"
- "adds x21, x21, x3\n\t"
- "adc x22, x22, x4\n\t"
- /* A[1] * B[1] */
- "mul x3, x15, x7\n\t"
- "umulh x4, x15, x7\n\t"
- "adds x21, x21, x3\n\t"
- "adcs x22, x22, x4\n\t"
- "adc %x[a], xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x3, x16, x6\n\t"
- "umulh x4, x16, x6\n\t"
- "adds x21, x21, x3\n\t"
- "adcs x22, x22, x4\n\t"
- "adc %x[a], %x[a], xzr\n\t"
- /* A[0] * B[3] */
- "mul x3, x14, x9\n\t"
- "umulh x4, x14, x9\n\t"
- "adds x22, x22, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x3, x15, x8\n\t"
- "umulh x4, x15, x8\n\t"
- "adds x22, x22, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, x26, xzr\n\t"
- /* A[2] * B[1] */
- "mul x3, x16, x7\n\t"
- "umulh x4, x16, x7\n\t"
- "adds x22, x22, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, x26, xzr\n\t"
- /* A[3] * B[0] */
- "mul x3, x17, x6\n\t"
- "umulh x4, x17, x6\n\t"
- "adds x22, x22, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, x26, xzr\n\t"
- /* A[1] * B[3] */
- "mul x3, x15, x9\n\t"
- "umulh x4, x15, x9\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adcs x26, x26, x4\n\t"
- "adc x27, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x3, x16, x8\n\t"
- "umulh x4, x16, x8\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adcs x26, x26, x4\n\t"
- "adc x27, x27, xzr\n\t"
- /* A[3] * B[1] */
- "mul x3, x17, x7\n\t"
- "umulh x4, x17, x7\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adcs x26, x26, x4\n\t"
- "adc x27, x27, xzr\n\t"
- /* A[2] * B[3] */
- "mul x3, x16, x9\n\t"
- "umulh x4, x16, x9\n\t"
- "adds x26, x26, x3\n\t"
- "adcs x27, x27, x4\n\t"
- "adc x28, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x3, x17, x8\n\t"
- "umulh x4, x17, x8\n\t"
- "adds x26, x26, x3\n\t"
- "adcs x27, x27, x4\n\t"
- "adc x28, x28, xzr\n\t"
- /* A[3] * B[3] */
- "mul x3, x17, x9\n\t"
- "umulh x4, x17, x9\n\t"
- "adds x27, x27, x3\n\t"
- "adc x28, x28, x4\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x28, x28, x27, #63\n\t"
- "extr x27, x27, x26, #63\n\t"
- "extr x26, x26, %x[a], #63\n\t"
- "extr %x[a], %x[a], x22, #63\n\t"
- "and x22, x22, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x3, #19\n\t"
- "mul x4, x3, %x[a]\n\t"
- "umulh %x[a], x3, %x[a]\n\t"
- "adds x19, x19, x4\n\t"
- "mul x4, x3, x26\n\t"
- "umulh x26, x3, x26\n\t"
- "adcs x20, x20, x4\n\t"
- "mul x4, x3, x27\n\t"
- "umulh x27, x3, x27\n\t"
- "adcs x21, x21, x4\n\t"
- "mul x4, x3, x28\n\t"
- "umulh x5, x3, x28\n\t"
- "adcs x22, x22, x4\n\t"
- "adc x5, x5, xzr\n\t"
- /* Add remaining product results in */
- "adds x20, x20, %x[a]\n\t"
- "adcs x21, x21, x26\n\t"
- "adcs x22, x22, x27\n\t"
- "adc x5, x5, xzr\n\t"
- /* Overflow */
- "extr x5, x5, x22, #63\n\t"
- "mul x5, x5, x3\n\t"
- "and x22, x22, #0x7fffffffffffffff\n\t"
- "adds x19, x19, x5\n\t"
- "adcs x20, x20, xzr\n\t"
- "adcs x21, x21, xzr\n\t"
- "adc x22, x22, xzr\n\t"
- /* Reduce if top bit set */
- "and x5, x3, x22, asr 63\n\t"
- "and x22, x22, #0x7fffffffffffffff\n\t"
- "adds x19, x19, x5\n\t"
- "adcs x20, x20, xzr\n\t"
- "adcs x21, x21, xzr\n\t"
- "adc x22, x22, xzr\n\t"
- /* Store */
- "stp x19, x20, [x29, #112]\n\t"
- "stp x21, x22, [x29, #128]\n\t"
- /* Multiply */
- "ldp %x[a], x26, [x29, #144]\n\t"
- "ldp x27, x28, [x29, #160]\n\t"
- /* A[0] * B[0] */
- "mul x19, x10, %x[a]\n\t"
- "umulh x20, x10, %x[a]\n\t"
- /* A[0] * B[1] */
- "mul x3, x10, x26\n\t"
- "umulh x21, x10, x26\n\t"
- "adds x20, x20, x3\n\t"
- "adc x21, x21, xzr\n\t"
- /* A[1] * B[0] */
- "mul x3, x11, %x[a]\n\t"
- "umulh x4, x11, %x[a]\n\t"
- "adds x20, x20, x3\n\t"
- "adcs x21, x21, x4\n\t"
- "adc x22, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x3, x10, x27\n\t"
- "umulh x4, x10, x27\n\t"
- "adds x21, x21, x3\n\t"
- "adc x22, x22, x4\n\t"
- /* A[1] * B[1] */
- "mul x3, x11, x26\n\t"
- "umulh x4, x11, x26\n\t"
- "adds x21, x21, x3\n\t"
- "adcs x22, x22, x4\n\t"
- "adc x14, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x3, x12, %x[a]\n\t"
- "umulh x4, x12, %x[a]\n\t"
- "adds x21, x21, x3\n\t"
- "adcs x22, x22, x4\n\t"
- "adc x14, x14, xzr\n\t"
- /* A[0] * B[3] */
- "mul x3, x10, x28\n\t"
- "umulh x4, x10, x28\n\t"
- "adds x22, x22, x3\n\t"
- "adcs x14, x14, x4\n\t"
- "adc x15, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x3, x11, x27\n\t"
- "umulh x4, x11, x27\n\t"
- "adds x22, x22, x3\n\t"
- "adcs x14, x14, x4\n\t"
- "adc x15, x15, xzr\n\t"
- /* A[2] * B[1] */
- "mul x3, x12, x26\n\t"
- "umulh x4, x12, x26\n\t"
- "adds x22, x22, x3\n\t"
- "adcs x14, x14, x4\n\t"
- "adc x15, x15, xzr\n\t"
- /* A[3] * B[0] */
- "mul x3, x13, %x[a]\n\t"
- "umulh x4, x13, %x[a]\n\t"
- "adds x22, x22, x3\n\t"
- "adcs x14, x14, x4\n\t"
- "adc x15, x15, xzr\n\t"
- /* A[1] * B[3] */
- "mul x3, x11, x28\n\t"
- "umulh x4, x11, x28\n\t"
- "adds x14, x14, x3\n\t"
- "adcs x15, x15, x4\n\t"
- "adc x16, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x3, x12, x27\n\t"
- "umulh x4, x12, x27\n\t"
- "adds x14, x14, x3\n\t"
- "adcs x15, x15, x4\n\t"
- "adc x16, x16, xzr\n\t"
- /* A[3] * B[1] */
- "mul x3, x13, x26\n\t"
- "umulh x4, x13, x26\n\t"
- "adds x14, x14, x3\n\t"
- "adcs x15, x15, x4\n\t"
- "adc x16, x16, xzr\n\t"
- /* A[2] * B[3] */
- "mul x3, x12, x28\n\t"
- "umulh x4, x12, x28\n\t"
- "adds x15, x15, x3\n\t"
- "adcs x16, x16, x4\n\t"
- "adc x17, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x3, x13, x27\n\t"
- "umulh x4, x13, x27\n\t"
- "adds x15, x15, x3\n\t"
- "adcs x16, x16, x4\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[3] * B[3] */
- "mul x3, x13, x28\n\t"
- "umulh x4, x13, x28\n\t"
- "adds x16, x16, x3\n\t"
- "adc x17, x17, x4\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x17, x17, x16, #63\n\t"
- "extr x16, x16, x15, #63\n\t"
- "extr x15, x15, x14, #63\n\t"
- "extr x14, x14, x22, #63\n\t"
- "and x22, x22, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x3, #19\n\t"
- "mul x4, x3, x14\n\t"
- "umulh x14, x3, x14\n\t"
- "adds x19, x19, x4\n\t"
- "mul x4, x3, x15\n\t"
- "umulh x15, x3, x15\n\t"
- "adcs x20, x20, x4\n\t"
- "mul x4, x3, x16\n\t"
- "umulh x16, x3, x16\n\t"
- "adcs x21, x21, x4\n\t"
- "mul x4, x3, x17\n\t"
- "umulh x5, x3, x17\n\t"
- "adcs x22, x22, x4\n\t"
- "adc x5, x5, xzr\n\t"
- /* Add remaining product results in */
- "adds x20, x20, x14\n\t"
- "adcs x21, x21, x15\n\t"
- "adcs x22, x22, x16\n\t"
- "adc x5, x5, xzr\n\t"
- /* Overflow */
- "extr x5, x5, x22, #63\n\t"
- "mul x5, x5, x3\n\t"
- "and x22, x22, #0x7fffffffffffffff\n\t"
- "adds x19, x19, x5\n\t"
- "adcs x20, x20, xzr\n\t"
- "adcs x21, x21, xzr\n\t"
- "adc x22, x22, xzr\n\t"
- /* Reduce if top bit set */
- "and x5, x3, x22, asr 63\n\t"
- "and x22, x22, #0x7fffffffffffffff\n\t"
- "adds x19, x19, x5\n\t"
- "adcs x20, x20, xzr\n\t"
- "adcs x21, x21, xzr\n\t"
- "adc x22, x22, xzr\n\t"
- /* Store */
- /* Square */
- /* A[0] * A[1] */
- "mul x11, %x[a], x26\n\t"
- "umulh x12, %x[a], x26\n\t"
- /* A[0] * A[2] */
- "mul x3, %x[a], x27\n\t"
- "umulh x13, %x[a], x27\n\t"
- "adds x12, x12, x3\n\t"
- "adc x13, x13, xzr\n\t"
- /* A[0] * A[3] */
- "mul x3, %x[a], x28\n\t"
- "umulh x14, %x[a], x28\n\t"
- "adds x13, x13, x3\n\t"
- "adc x14, x14, xzr\n\t"
- /* A[1] * A[2] */
- "mul x3, x26, x27\n\t"
- "umulh x4, x26, x27\n\t"
- "adds x13, x13, x3\n\t"
- "adcs x14, x14, x4\n\t"
- "adc x15, xzr, xzr\n\t"
- /* A[1] * A[3] */
- "mul x3, x26, x28\n\t"
- "umulh x4, x26, x28\n\t"
- "adds x14, x14, x3\n\t"
- "adc x15, x15, x4\n\t"
- /* A[2] * A[3] */
- "mul x3, x27, x28\n\t"
- "umulh x16, x27, x28\n\t"
- "adds x15, x15, x3\n\t"
- "adc x16, x16, xzr\n\t"
- /* Double */
- "adds x11, x11, x11\n\t"
- "adcs x12, x12, x12\n\t"
- "adcs x13, x13, x13\n\t"
- "adcs x14, x14, x14\n\t"
- "adcs x15, x15, x15\n\t"
- "adcs x16, x16, x16\n\t"
- "adc x17, xzr, xzr\n\t"
- /* A[0] * A[0] */
- "mul x10, %x[a], %x[a]\n\t"
- "umulh x5, %x[a], %x[a]\n\t"
- /* A[1] * A[1] */
- "mul x3, x26, x26\n\t"
- "umulh x4, x26, x26\n\t"
- "adds x11, x11, x5\n\t"
- "adcs x12, x12, x3\n\t"
- "adc x5, x4, xzr\n\t"
- /* A[2] * A[2] */
- "mul x3, x27, x27\n\t"
- "umulh x4, x27, x27\n\t"
- "adds x13, x13, x5\n\t"
- "adcs x14, x14, x3\n\t"
- "adc x5, x4, xzr\n\t"
- /* A[3] * A[3] */
- "mul x3, x28, x28\n\t"
- "umulh x4, x28, x28\n\t"
- "adds x15, x15, x5\n\t"
- "adcs x16, x16, x3\n\t"
- "adc x17, x17, x4\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x17, x17, x16, #63\n\t"
- "extr x16, x16, x15, #63\n\t"
- "extr x15, x15, x14, #63\n\t"
- "extr x14, x14, x13, #63\n\t"
- "and x13, x13, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x3, #19\n\t"
- "mul x4, x3, x14\n\t"
- "umulh x14, x3, x14\n\t"
- "adds x10, x10, x4\n\t"
- "mul x4, x3, x15\n\t"
- "umulh x15, x3, x15\n\t"
- "adcs x11, x11, x4\n\t"
- "mul x4, x3, x16\n\t"
- "umulh x16, x3, x16\n\t"
- "adcs x12, x12, x4\n\t"
- "mul x4, x3, x17\n\t"
- "umulh x5, x3, x17\n\t"
- "adcs x13, x13, x4\n\t"
- "adc x5, x5, xzr\n\t"
- /* Add remaining product results in */
- "adds x11, x11, x14\n\t"
- "adcs x12, x12, x15\n\t"
- "adcs x13, x13, x16\n\t"
- "adc x5, x5, xzr\n\t"
- /* Overflow */
- "extr x5, x5, x13, #63\n\t"
- "mul x5, x5, x3\n\t"
- "and x13, x13, #0x7fffffffffffffff\n\t"
- "adds x10, x10, x5\n\t"
- "adcs x11, x11, xzr\n\t"
- "adcs x12, x12, xzr\n\t"
- "adc x13, x13, xzr\n\t"
- /* Reduce if top bit set */
- "and x5, x3, x13, asr 63\n\t"
- "and x13, x13, #0x7fffffffffffffff\n\t"
- "adds x10, x10, x5\n\t"
- "adcs x11, x11, xzr\n\t"
- "adcs x12, x12, xzr\n\t"
- "adc x13, x13, xzr\n\t"
- /* Store */
- /* Square */
- /* A[0] * A[1] */
- "mul x15, x6, x7\n\t"
- "umulh x16, x6, x7\n\t"
- /* A[0] * A[2] */
- "mul x3, x6, x8\n\t"
- "umulh x17, x6, x8\n\t"
- "adds x16, x16, x3\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[0] * A[3] */
- "mul x3, x6, x9\n\t"
- "umulh %x[a], x6, x9\n\t"
- "adds x17, x17, x3\n\t"
- "adc %x[a], %x[a], xzr\n\t"
- /* A[1] * A[2] */
- "mul x3, x7, x8\n\t"
- "umulh x4, x7, x8\n\t"
- "adds x17, x17, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, xzr, xzr\n\t"
- /* A[1] * A[3] */
- "mul x3, x7, x9\n\t"
- "umulh x4, x7, x9\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adc x26, x26, x4\n\t"
- /* A[2] * A[3] */
- "mul x3, x8, x9\n\t"
- "umulh x27, x8, x9\n\t"
- "adds x26, x26, x3\n\t"
- "adc x27, x27, xzr\n\t"
- /* Double */
- "adds x15, x15, x15\n\t"
- "adcs x16, x16, x16\n\t"
- "adcs x17, x17, x17\n\t"
- "adcs %x[a], %x[a], %x[a]\n\t"
- "adcs x26, x26, x26\n\t"
- "adcs x27, x27, x27\n\t"
- "adc x28, xzr, xzr\n\t"
- /* A[0] * A[0] */
- "mul x14, x6, x6\n\t"
- "umulh x5, x6, x6\n\t"
- /* A[1] * A[1] */
- "mul x3, x7, x7\n\t"
- "umulh x4, x7, x7\n\t"
- "adds x15, x15, x5\n\t"
- "adcs x16, x16, x3\n\t"
- "adc x5, x4, xzr\n\t"
- /* A[2] * A[2] */
- "mul x3, x8, x8\n\t"
- "umulh x4, x8, x8\n\t"
- "adds x17, x17, x5\n\t"
- "adcs %x[a], %x[a], x3\n\t"
- "adc x5, x4, xzr\n\t"
- /* A[3] * A[3] */
- "mul x3, x9, x9\n\t"
- "umulh x4, x9, x9\n\t"
- "adds x26, x26, x5\n\t"
- "adcs x27, x27, x3\n\t"
- "adc x28, x28, x4\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x28, x28, x27, #63\n\t"
- "extr x27, x27, x26, #63\n\t"
- "extr x26, x26, %x[a], #63\n\t"
- "extr %x[a], %x[a], x17, #63\n\t"
- "and x17, x17, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x3, #19\n\t"
- "mul x4, x3, %x[a]\n\t"
- "umulh %x[a], x3, %x[a]\n\t"
- "adds x14, x14, x4\n\t"
- "mul x4, x3, x26\n\t"
- "umulh x26, x3, x26\n\t"
- "adcs x15, x15, x4\n\t"
- "mul x4, x3, x27\n\t"
- "umulh x27, x3, x27\n\t"
- "adcs x16, x16, x4\n\t"
- "mul x4, x3, x28\n\t"
- "umulh x5, x3, x28\n\t"
- "adcs x17, x17, x4\n\t"
- "adc x5, x5, xzr\n\t"
- /* Add remaining product results in */
- "adds x15, x15, %x[a]\n\t"
- "adcs x16, x16, x26\n\t"
- "adcs x17, x17, x27\n\t"
- "adc x5, x5, xzr\n\t"
- /* Overflow */
- "extr x5, x5, x17, #63\n\t"
- "mul x5, x5, x3\n\t"
- "and x17, x17, #0x7fffffffffffffff\n\t"
- "adds x14, x14, x5\n\t"
- "adcs x15, x15, xzr\n\t"
- "adcs x16, x16, xzr\n\t"
- "adc x17, x17, xzr\n\t"
- /* Reduce if top bit set */
- "and x5, x3, x17, asr 63\n\t"
- "and x17, x17, #0x7fffffffffffffff\n\t"
- "adds x14, x14, x5\n\t"
- "adcs x15, x15, xzr\n\t"
- "adcs x16, x16, xzr\n\t"
- "adc x17, x17, xzr\n\t"
- /* Store */
- /* Multiply */
- /* A[0] * B[0] */
- "mul x6, x14, x10\n\t"
- "umulh x7, x14, x10\n\t"
- /* A[0] * B[1] */
- "mul x3, x14, x11\n\t"
- "umulh x8, x14, x11\n\t"
- "adds x7, x7, x3\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[1] * B[0] */
- "mul x3, x15, x10\n\t"
- "umulh x4, x15, x10\n\t"
- "adds x7, x7, x3\n\t"
- "adcs x8, x8, x4\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x3, x14, x12\n\t"
- "umulh x4, x14, x12\n\t"
- "adds x8, x8, x3\n\t"
- "adc x9, x9, x4\n\t"
- /* A[1] * B[1] */
- "mul x3, x15, x11\n\t"
- "umulh x4, x15, x11\n\t"
- "adds x8, x8, x3\n\t"
- "adcs x9, x9, x4\n\t"
- "adc %x[a], xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x3, x16, x10\n\t"
- "umulh x4, x16, x10\n\t"
- "adds x8, x8, x3\n\t"
- "adcs x9, x9, x4\n\t"
- "adc %x[a], %x[a], xzr\n\t"
- /* A[0] * B[3] */
- "mul x3, x14, x13\n\t"
- "umulh x4, x14, x13\n\t"
- "adds x9, x9, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x3, x15, x12\n\t"
- "umulh x4, x15, x12\n\t"
- "adds x9, x9, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, x26, xzr\n\t"
- /* A[2] * B[1] */
- "mul x3, x16, x11\n\t"
- "umulh x4, x16, x11\n\t"
- "adds x9, x9, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, x26, xzr\n\t"
- /* A[3] * B[0] */
- "mul x3, x17, x10\n\t"
- "umulh x4, x17, x10\n\t"
- "adds x9, x9, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, x26, xzr\n\t"
- /* A[1] * B[3] */
- "mul x3, x15, x13\n\t"
- "umulh x4, x15, x13\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adcs x26, x26, x4\n\t"
- "adc x27, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x3, x16, x12\n\t"
- "umulh x4, x16, x12\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adcs x26, x26, x4\n\t"
- "adc x27, x27, xzr\n\t"
- /* A[3] * B[1] */
- "mul x3, x17, x11\n\t"
- "umulh x4, x17, x11\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adcs x26, x26, x4\n\t"
- "adc x27, x27, xzr\n\t"
- /* A[2] * B[3] */
- "mul x3, x16, x13\n\t"
- "umulh x4, x16, x13\n\t"
- "adds x26, x26, x3\n\t"
- "adcs x27, x27, x4\n\t"
- "adc x28, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x3, x17, x12\n\t"
- "umulh x4, x17, x12\n\t"
- "adds x26, x26, x3\n\t"
- "adcs x27, x27, x4\n\t"
- "adc x28, x28, xzr\n\t"
- /* A[3] * B[3] */
- "mul x3, x17, x13\n\t"
- "umulh x4, x17, x13\n\t"
- "adds x27, x27, x3\n\t"
- "adc x28, x28, x4\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x28, x28, x27, #63\n\t"
- "extr x27, x27, x26, #63\n\t"
- "extr x26, x26, %x[a], #63\n\t"
- "extr %x[a], %x[a], x9, #63\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x3, #19\n\t"
- "mul x4, x3, %x[a]\n\t"
- "umulh %x[a], x3, %x[a]\n\t"
- "adds x6, x6, x4\n\t"
- "mul x4, x3, x26\n\t"
- "umulh x26, x3, x26\n\t"
- "adcs x7, x7, x4\n\t"
- "mul x4, x3, x27\n\t"
- "umulh x27, x3, x27\n\t"
- "adcs x8, x8, x4\n\t"
- "mul x4, x3, x28\n\t"
- "umulh x5, x3, x28\n\t"
- "adcs x9, x9, x4\n\t"
- "adc x5, x5, xzr\n\t"
- /* Add remaining product results in */
- "adds x7, x7, %x[a]\n\t"
- "adcs x8, x8, x26\n\t"
- "adcs x9, x9, x27\n\t"
- "adc x5, x5, xzr\n\t"
- /* Overflow */
- "extr x5, x5, x9, #63\n\t"
- "mul x5, x5, x3\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- "adds x6, x6, x5\n\t"
- "adcs x7, x7, xzr\n\t"
- "adcs x8, x8, xzr\n\t"
- "adc x9, x9, xzr\n\t"
- /* Reduce if top bit set */
- "and x5, x3, x9, asr 63\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- "adds x6, x6, x5\n\t"
- "adcs x7, x7, xzr\n\t"
- "adcs x8, x8, xzr\n\t"
- "adc x9, x9, xzr\n\t"
- /* Store */
- "stp x6, x7, [%x[r]]\n\t"
- "stp x8, x9, [%x[r], #16]\n\t"
- /* Sub */
- "subs x14, x14, x10\n\t"
- "sbcs x15, x15, x11\n\t"
- "sbcs x16, x16, x12\n\t"
- "sbcs x17, x17, x13\n\t"
- "mov x3, #-19\n\t"
- "csetm %x[a], cc\n\t"
- /* Mask the modulus */
- "and x3, %x[a], x3\n\t"
- "and x4, %x[a], #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x14, x14, x3\n\t"
- "adcs x15, x15, %x[a]\n\t"
- "adcs x16, x16, %x[a]\n\t"
- "adc x17, x17, x4\n\t"
- /* Multiply by 121666 */
- "mov x5, #0xdb42\n\t"
- "movk x5, #1, lsl 16\n\t"
- "mul x6, x14, x5\n\t"
- "umulh x7, x14, x5\n\t"
- "mul x3, x15, x5\n\t"
- "umulh x4, x15, x5\n\t"
- "adds x7, x7, x3\n\t"
- "adc x8, xzr, x4\n\t"
- "mul x3, x16, x5\n\t"
- "umulh x4, x16, x5\n\t"
- "adds x8, x8, x3\n\t"
- "adc x9, xzr, x4\n\t"
- "mul x3, x17, x5\n\t"
- "umulh x4, x17, x5\n\t"
- "adds x9, x9, x3\n\t"
- "adc x4, xzr, x4\n\t"
- "mov x5, #19\n\t"
- "extr x4, x4, x9, #63\n\t"
- "mul x4, x4, x5\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- "adds x6, x6, x4\n\t"
- "adcs x7, x7, xzr\n\t"
- "adcs x8, x8, xzr\n\t"
- "adc x9, x9, xzr\n\t"
- /* Add */
- "adds x10, x10, x6\n\t"
- "adcs x11, x11, x7\n\t"
- "adcs x12, x12, x8\n\t"
- "adc x13, x13, x9\n\t"
- "mov x3, #-19\n\t"
- "asr %x[a], x13, #63\n\t"
- /* Mask the modulus */
- "and x3, %x[a], x3\n\t"
- "and x4, %x[a], #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x10, x10, x3\n\t"
- "sbcs x11, x11, %x[a]\n\t"
- "sbcs x12, x12, %x[a]\n\t"
- "sbc x13, x13, x4\n\t"
- /* Multiply */
- /* A[0] * B[0] */
- "mul x6, x14, x10\n\t"
- "umulh x7, x14, x10\n\t"
- /* A[0] * B[1] */
- "mul x3, x14, x11\n\t"
- "umulh x8, x14, x11\n\t"
- "adds x7, x7, x3\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[1] * B[0] */
- "mul x3, x15, x10\n\t"
- "umulh x4, x15, x10\n\t"
- "adds x7, x7, x3\n\t"
- "adcs x8, x8, x4\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x3, x14, x12\n\t"
- "umulh x4, x14, x12\n\t"
- "adds x8, x8, x3\n\t"
- "adc x9, x9, x4\n\t"
- /* A[1] * B[1] */
- "mul x3, x15, x11\n\t"
- "umulh x4, x15, x11\n\t"
- "adds x8, x8, x3\n\t"
- "adcs x9, x9, x4\n\t"
- "adc %x[a], xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x3, x16, x10\n\t"
- "umulh x4, x16, x10\n\t"
- "adds x8, x8, x3\n\t"
- "adcs x9, x9, x4\n\t"
- "adc %x[a], %x[a], xzr\n\t"
- /* A[0] * B[3] */
- "mul x3, x14, x13\n\t"
- "umulh x4, x14, x13\n\t"
- "adds x9, x9, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x3, x15, x12\n\t"
- "umulh x4, x15, x12\n\t"
- "adds x9, x9, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, x26, xzr\n\t"
- /* A[2] * B[1] */
- "mul x3, x16, x11\n\t"
- "umulh x4, x16, x11\n\t"
- "adds x9, x9, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, x26, xzr\n\t"
- /* A[3] * B[0] */
- "mul x3, x17, x10\n\t"
- "umulh x4, x17, x10\n\t"
- "adds x9, x9, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, x26, xzr\n\t"
- /* A[1] * B[3] */
- "mul x3, x15, x13\n\t"
- "umulh x4, x15, x13\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adcs x26, x26, x4\n\t"
- "adc x27, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x3, x16, x12\n\t"
- "umulh x4, x16, x12\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adcs x26, x26, x4\n\t"
- "adc x27, x27, xzr\n\t"
- /* A[3] * B[1] */
- "mul x3, x17, x11\n\t"
- "umulh x4, x17, x11\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adcs x26, x26, x4\n\t"
- "adc x27, x27, xzr\n\t"
- /* A[2] * B[3] */
- "mul x3, x16, x13\n\t"
- "umulh x4, x16, x13\n\t"
- "adds x26, x26, x3\n\t"
- "adcs x27, x27, x4\n\t"
- "adc x28, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x3, x17, x12\n\t"
- "umulh x4, x17, x12\n\t"
- "adds x26, x26, x3\n\t"
- "adcs x27, x27, x4\n\t"
- "adc x28, x28, xzr\n\t"
- /* A[3] * B[3] */
- "mul x3, x17, x13\n\t"
- "umulh x4, x17, x13\n\t"
- "adds x27, x27, x3\n\t"
- "adc x28, x28, x4\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x28, x28, x27, #63\n\t"
- "extr x27, x27, x26, #63\n\t"
- "extr x26, x26, %x[a], #63\n\t"
- "extr %x[a], %x[a], x9, #63\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x3, #19\n\t"
- "mul x4, x3, %x[a]\n\t"
- "umulh %x[a], x3, %x[a]\n\t"
- "adds x6, x6, x4\n\t"
- "mul x4, x3, x26\n\t"
- "umulh x26, x3, x26\n\t"
- "adcs x7, x7, x4\n\t"
- "mul x4, x3, x27\n\t"
- "umulh x27, x3, x27\n\t"
- "adcs x8, x8, x4\n\t"
- "mul x4, x3, x28\n\t"
- "umulh x5, x3, x28\n\t"
- "adcs x9, x9, x4\n\t"
- "adc x5, x5, xzr\n\t"
- /* Add remaining product results in */
- "adds x7, x7, %x[a]\n\t"
- "adcs x8, x8, x26\n\t"
- "adcs x9, x9, x27\n\t"
- "adc x5, x5, xzr\n\t"
- /* Overflow */
- "extr x5, x5, x9, #63\n\t"
- "mul x5, x5, x3\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- "adds x6, x6, x5\n\t"
- "adcs x7, x7, xzr\n\t"
- "adcs x8, x8, xzr\n\t"
- "adc x9, x9, xzr\n\t"
- /* Reduce if top bit set */
- "and x5, x3, x9, asr 63\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- "adds x6, x6, x5\n\t"
- "adcs x7, x7, xzr\n\t"
- "adcs x8, x8, xzr\n\t"
- "adc x9, x9, xzr\n\t"
- /* Store */
- "stp x6, x7, [x29, #16]\n\t"
- "stp x8, x9, [x29, #32]\n\t"
- /* Add */
- "ldp x6, x7, [x29, #112]\n\t"
- "ldp x8, x9, [x29, #128]\n\t"
- "adds x10, x6, x19\n\t"
- "adcs x11, x7, x20\n\t"
- "adcs x12, x8, x21\n\t"
- "adc x13, x9, x22\n\t"
- "mov x3, #-19\n\t"
- "asr %x[a], x13, #63\n\t"
- /* Mask the modulus */
- "and x3, %x[a], x3\n\t"
- "and x4, %x[a], #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x10, x10, x3\n\t"
- "sbcs x11, x11, %x[a]\n\t"
- "sbcs x12, x12, %x[a]\n\t"
- "sbc x13, x13, x4\n\t"
- /* Sub */
- "subs x19, x6, x19\n\t"
- "sbcs x20, x7, x20\n\t"
- "sbcs x21, x8, x21\n\t"
- "sbcs x22, x9, x22\n\t"
- "mov x3, #-19\n\t"
- "csetm %x[a], cc\n\t"
- /* Mask the modulus */
- "and x3, %x[a], x3\n\t"
- "and x4, %x[a], #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x19, x19, x3\n\t"
- "adcs x20, x20, %x[a]\n\t"
- "adcs x21, x21, %x[a]\n\t"
- "adc x22, x22, x4\n\t"
- /* Square */
- /* A[0] * A[1] */
- "mul x7, x10, x11\n\t"
- "umulh x8, x10, x11\n\t"
- /* A[0] * A[2] */
- "mul x3, x10, x12\n\t"
- "umulh x9, x10, x12\n\t"
- "adds x8, x8, x3\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[0] * A[3] */
- "mul x3, x10, x13\n\t"
- "umulh %x[a], x10, x13\n\t"
- "adds x9, x9, x3\n\t"
- "adc %x[a], %x[a], xzr\n\t"
- /* A[1] * A[2] */
- "mul x3, x11, x12\n\t"
- "umulh x4, x11, x12\n\t"
- "adds x9, x9, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, xzr, xzr\n\t"
- /* A[1] * A[3] */
- "mul x3, x11, x13\n\t"
- "umulh x4, x11, x13\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adc x26, x26, x4\n\t"
- /* A[2] * A[3] */
- "mul x3, x12, x13\n\t"
- "umulh x27, x12, x13\n\t"
- "adds x26, x26, x3\n\t"
- "adc x27, x27, xzr\n\t"
- /* Double */
- "adds x7, x7, x7\n\t"
- "adcs x8, x8, x8\n\t"
- "adcs x9, x9, x9\n\t"
- "adcs %x[a], %x[a], %x[a]\n\t"
- "adcs x26, x26, x26\n\t"
- "adcs x27, x27, x27\n\t"
- "adc x28, xzr, xzr\n\t"
- /* A[0] * A[0] */
- "mul x6, x10, x10\n\t"
- "umulh x5, x10, x10\n\t"
- /* A[1] * A[1] */
- "mul x3, x11, x11\n\t"
- "umulh x4, x11, x11\n\t"
- "adds x7, x7, x5\n\t"
- "adcs x8, x8, x3\n\t"
- "adc x5, x4, xzr\n\t"
- /* A[2] * A[2] */
- "mul x3, x12, x12\n\t"
- "umulh x4, x12, x12\n\t"
- "adds x9, x9, x5\n\t"
- "adcs %x[a], %x[a], x3\n\t"
- "adc x5, x4, xzr\n\t"
- /* A[3] * A[3] */
- "mul x3, x13, x13\n\t"
- "umulh x4, x13, x13\n\t"
- "adds x26, x26, x5\n\t"
- "adcs x27, x27, x3\n\t"
- "adc x28, x28, x4\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x28, x28, x27, #63\n\t"
- "extr x27, x27, x26, #63\n\t"
- "extr x26, x26, %x[a], #63\n\t"
- "extr %x[a], %x[a], x9, #63\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x3, #19\n\t"
- "mul x4, x3, %x[a]\n\t"
- "umulh %x[a], x3, %x[a]\n\t"
- "adds x6, x6, x4\n\t"
- "mul x4, x3, x26\n\t"
- "umulh x26, x3, x26\n\t"
- "adcs x7, x7, x4\n\t"
- "mul x4, x3, x27\n\t"
- "umulh x27, x3, x27\n\t"
- "adcs x8, x8, x4\n\t"
- "mul x4, x3, x28\n\t"
- "umulh x5, x3, x28\n\t"
- "adcs x9, x9, x4\n\t"
- "adc x5, x5, xzr\n\t"
- /* Add remaining product results in */
- "adds x7, x7, %x[a]\n\t"
- "adcs x8, x8, x26\n\t"
- "adcs x9, x9, x27\n\t"
- "adc x5, x5, xzr\n\t"
- /* Overflow */
- "extr x5, x5, x9, #63\n\t"
- "mul x5, x5, x3\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- "adds x6, x6, x5\n\t"
- "adcs x7, x7, xzr\n\t"
- "adcs x8, x8, xzr\n\t"
- "adc x9, x9, xzr\n\t"
- /* Reduce if top bit set */
- "and x5, x3, x9, asr 63\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- "adds x6, x6, x5\n\t"
- "adcs x7, x7, xzr\n\t"
- "adcs x8, x8, xzr\n\t"
- "adc x9, x9, xzr\n\t"
- /* Store */
- "stp x6, x7, [x29, #80]\n\t"
- "stp x8, x9, [x29, #96]\n\t"
- /* Square */
- /* A[0] * A[1] */
- "mul x7, x19, x20\n\t"
- "umulh x8, x19, x20\n\t"
- /* A[0] * A[2] */
- "mul x3, x19, x21\n\t"
- "umulh x9, x19, x21\n\t"
- "adds x8, x8, x3\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[0] * A[3] */
- "mul x3, x19, x22\n\t"
- "umulh %x[a], x19, x22\n\t"
- "adds x9, x9, x3\n\t"
- "adc %x[a], %x[a], xzr\n\t"
- /* A[1] * A[2] */
- "mul x3, x20, x21\n\t"
- "umulh x4, x20, x21\n\t"
- "adds x9, x9, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, xzr, xzr\n\t"
- /* A[1] * A[3] */
- "mul x3, x20, x22\n\t"
- "umulh x4, x20, x22\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adc x26, x26, x4\n\t"
- /* A[2] * A[3] */
- "mul x3, x21, x22\n\t"
- "umulh x27, x21, x22\n\t"
- "adds x26, x26, x3\n\t"
- "adc x27, x27, xzr\n\t"
- /* Double */
- "adds x7, x7, x7\n\t"
- "adcs x8, x8, x8\n\t"
- "adcs x9, x9, x9\n\t"
- "adcs %x[a], %x[a], %x[a]\n\t"
- "adcs x26, x26, x26\n\t"
- "adcs x27, x27, x27\n\t"
- "adc x28, xzr, xzr\n\t"
- /* A[0] * A[0] */
- "mul x6, x19, x19\n\t"
- "umulh x5, x19, x19\n\t"
- /* A[1] * A[1] */
- "mul x3, x20, x20\n\t"
- "umulh x4, x20, x20\n\t"
- "adds x7, x7, x5\n\t"
- "adcs x8, x8, x3\n\t"
- "adc x5, x4, xzr\n\t"
- /* A[2] * A[2] */
- "mul x3, x21, x21\n\t"
- "umulh x4, x21, x21\n\t"
- "adds x9, x9, x5\n\t"
- "adcs %x[a], %x[a], x3\n\t"
- "adc x5, x4, xzr\n\t"
- /* A[3] * A[3] */
- "mul x3, x22, x22\n\t"
- "umulh x4, x22, x22\n\t"
- "adds x26, x26, x5\n\t"
- "adcs x27, x27, x3\n\t"
- "adc x28, x28, x4\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x28, x28, x27, #63\n\t"
- "extr x27, x27, x26, #63\n\t"
- "extr x26, x26, %x[a], #63\n\t"
- "extr %x[a], %x[a], x9, #63\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x3, #19\n\t"
- "mul x4, x3, %x[a]\n\t"
- "umulh %x[a], x3, %x[a]\n\t"
- "adds x6, x6, x4\n\t"
- "mul x4, x3, x26\n\t"
- "umulh x26, x3, x26\n\t"
- "adcs x7, x7, x4\n\t"
- "mul x4, x3, x27\n\t"
- "umulh x27, x3, x27\n\t"
- "adcs x8, x8, x4\n\t"
- "mul x4, x3, x28\n\t"
- "umulh x5, x3, x28\n\t"
- "adcs x9, x9, x4\n\t"
- "adc x5, x5, xzr\n\t"
- /* Add remaining product results in */
- "adds x7, x7, %x[a]\n\t"
- "adcs x8, x8, x26\n\t"
- "adcs x9, x9, x27\n\t"
- "adc x5, x5, xzr\n\t"
- /* Overflow */
- "extr x5, x5, x9, #63\n\t"
- "mul x5, x5, x3\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- "adds x6, x6, x5\n\t"
- "adcs x7, x7, xzr\n\t"
- "adcs x8, x8, xzr\n\t"
- "adc x9, x9, xzr\n\t"
- /* Reduce if top bit set */
- "and x5, x3, x9, asr 63\n\t"
- "and x9, x9, #0x7fffffffffffffff\n\t"
- "adds x6, x6, x5\n\t"
- "adcs x7, x7, xzr\n\t"
- "adcs x8, x8, xzr\n\t"
- "adc x9, x9, xzr\n\t"
- /* Store */
- "ldr %x[a], [x29, #184]\n\t"
- /* Multiply */
- "ldp x14, x15, [%x[a]]\n\t"
- "ldp x16, x17, [%x[a], #16]\n\t"
- /* A[0] * B[0] */
- "mul x10, x14, x6\n\t"
- "umulh x11, x14, x6\n\t"
- /* A[0] * B[1] */
- "mul x3, x14, x7\n\t"
- "umulh x12, x14, x7\n\t"
- "adds x11, x11, x3\n\t"
- "adc x12, x12, xzr\n\t"
- /* A[1] * B[0] */
- "mul x3, x15, x6\n\t"
- "umulh x4, x15, x6\n\t"
- "adds x11, x11, x3\n\t"
- "adcs x12, x12, x4\n\t"
- "adc x13, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x3, x14, x8\n\t"
- "umulh x4, x14, x8\n\t"
- "adds x12, x12, x3\n\t"
- "adc x13, x13, x4\n\t"
- /* A[1] * B[1] */
- "mul x3, x15, x7\n\t"
- "umulh x4, x15, x7\n\t"
- "adds x12, x12, x3\n\t"
- "adcs x13, x13, x4\n\t"
- "adc %x[a], xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x3, x16, x6\n\t"
- "umulh x4, x16, x6\n\t"
- "adds x12, x12, x3\n\t"
- "adcs x13, x13, x4\n\t"
- "adc %x[a], %x[a], xzr\n\t"
- /* A[0] * B[3] */
- "mul x3, x14, x9\n\t"
- "umulh x4, x14, x9\n\t"
- "adds x13, x13, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x3, x15, x8\n\t"
- "umulh x4, x15, x8\n\t"
- "adds x13, x13, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, x26, xzr\n\t"
- /* A[2] * B[1] */
- "mul x3, x16, x7\n\t"
- "umulh x4, x16, x7\n\t"
- "adds x13, x13, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, x26, xzr\n\t"
- /* A[3] * B[0] */
- "mul x3, x17, x6\n\t"
- "umulh x4, x17, x6\n\t"
- "adds x13, x13, x3\n\t"
- "adcs %x[a], %x[a], x4\n\t"
- "adc x26, x26, xzr\n\t"
- /* A[1] * B[3] */
- "mul x3, x15, x9\n\t"
- "umulh x4, x15, x9\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adcs x26, x26, x4\n\t"
- "adc x27, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x3, x16, x8\n\t"
- "umulh x4, x16, x8\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adcs x26, x26, x4\n\t"
- "adc x27, x27, xzr\n\t"
- /* A[3] * B[1] */
- "mul x3, x17, x7\n\t"
- "umulh x4, x17, x7\n\t"
- "adds %x[a], %x[a], x3\n\t"
- "adcs x26, x26, x4\n\t"
- "adc x27, x27, xzr\n\t"
- /* A[2] * B[3] */
- "mul x3, x16, x9\n\t"
- "umulh x4, x16, x9\n\t"
- "adds x26, x26, x3\n\t"
- "adcs x27, x27, x4\n\t"
- "adc x28, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x3, x17, x8\n\t"
- "umulh x4, x17, x8\n\t"
- "adds x26, x26, x3\n\t"
- "adcs x27, x27, x4\n\t"
- "adc x28, x28, xzr\n\t"
- /* A[3] * B[3] */
- "mul x3, x17, x9\n\t"
- "umulh x4, x17, x9\n\t"
- "adds x27, x27, x3\n\t"
- "adc x28, x28, x4\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x28, x28, x27, #63\n\t"
- "extr x27, x27, x26, #63\n\t"
- "extr x26, x26, %x[a], #63\n\t"
- "extr %x[a], %x[a], x13, #63\n\t"
- "and x13, x13, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x3, #19\n\t"
- "mul x4, x3, %x[a]\n\t"
- "umulh %x[a], x3, %x[a]\n\t"
- "adds x10, x10, x4\n\t"
- "mul x4, x3, x26\n\t"
- "umulh x26, x3, x26\n\t"
- "adcs x11, x11, x4\n\t"
- "mul x4, x3, x27\n\t"
- "umulh x27, x3, x27\n\t"
- "adcs x12, x12, x4\n\t"
- "mul x4, x3, x28\n\t"
- "umulh x5, x3, x28\n\t"
- "adcs x13, x13, x4\n\t"
- "adc x5, x5, xzr\n\t"
- /* Add remaining product results in */
- "adds x11, x11, %x[a]\n\t"
- "adcs x12, x12, x26\n\t"
- "adcs x13, x13, x27\n\t"
- "adc x5, x5, xzr\n\t"
- /* Overflow */
- "extr x5, x5, x13, #63\n\t"
- "mul x5, x5, x3\n\t"
- "and x13, x13, #0x7fffffffffffffff\n\t"
- "adds x10, x10, x5\n\t"
- "adcs x11, x11, xzr\n\t"
- "adcs x12, x12, xzr\n\t"
- "adc x13, x13, xzr\n\t"
- /* Reduce if top bit set */
- "and x5, x3, x13, asr 63\n\t"
- "and x13, x13, #0x7fffffffffffffff\n\t"
- "adds x10, x10, x5\n\t"
- "adcs x11, x11, xzr\n\t"
- "adcs x12, x12, xzr\n\t"
- "adc x13, x13, xzr\n\t"
- /* Store */
- "stp x10, x11, [x29, #48]\n\t"
- "stp x12, x13, [x29, #64]\n\t"
- "sub x25, x25, #1\n\t"
- "cmp x25, #0\n\t"
- "bge L_curve25519_bits_%=\n\t"
- "mov x25, #63\n\t"
- "sub x24, x24, #8\n\t"
- "cmp x24, #0\n\t"
- "bge L_curve25519_words_%=\n\t"
- /* Invert */
- "add x0, x29, #48\n\t"
- "add x1, x29, #16\n\t"
- "bl fe_sq\n\t"
- "add x0, x29, #0x50\n\t"
- "add x1, x29, #48\n\t"
- "bl fe_sq\n\t"
- "add x1, x29, #0x50\n\t"
- "bl fe_sq\n\t"
- "add x1, x29, #16\n\t"
- "add x2, x29, #0x50\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #48\n\t"
- "add x1, x29, #48\n\t"
- "add x2, x29, #0x50\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #0x70\n\t"
- "bl fe_sq\n\t"
- "add x0, x29, #0x50\n\t"
- "add x1, x29, #0x50\n\t"
- "add x2, x29, #0x70\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #0x70\n\t"
- "bl fe_sq\n\t"
- "mov x24, #4\n\t"
- "add x1, x29, #0x70\n\t"
- "\n"
- "L_curve25519_inv_1_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x24, x24, #1\n\t"
- "cmp x24, #0\n\t"
- "bne L_curve25519_inv_1_%=\n\t"
- "add x0, x29, #0x50\n\t"
- "add x2, x29, #0x50\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #0x70\n\t"
- "add x1, x29, #0x50\n\t"
- "bl fe_sq\n\t"
- "mov x24, #9\n\t"
- "add x1, x29, #0x70\n\t"
- "\n"
- "L_curve25519_inv_2_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x24, x24, #1\n\t"
- "cmp x24, #0\n\t"
- "bne L_curve25519_inv_2_%=\n\t"
- "add x2, x29, #0x50\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #0x90\n\t"
- "bl fe_sq\n\t"
- "mov x24, #19\n\t"
- "add x1, x29, #0x90\n\t"
- "\n"
- "L_curve25519_inv_3_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x24, x24, #1\n\t"
- "cmp x24, #0\n\t"
- "bne L_curve25519_inv_3_%=\n\t"
- "add x0, x29, #0x70\n\t"
- "add x2, x29, #0x70\n\t"
- "bl fe_mul\n\t"
- "mov x24, #10\n\t"
- "add x1, x29, #0x70\n\t"
- "\n"
- "L_curve25519_inv_4_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x24, x24, #1\n\t"
- "cmp x24, #0\n\t"
- "bne L_curve25519_inv_4_%=\n\t"
- "add x0, x29, #0x50\n\t"
- "add x2, x29, #0x50\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #0x70\n\t"
- "add x1, x29, #0x50\n\t"
- "bl fe_sq\n\t"
- "mov x24, #49\n\t"
- "add x1, x29, #0x70\n\t"
- "\n"
- "L_curve25519_inv_5_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x24, x24, #1\n\t"
- "cmp x24, #0\n\t"
- "bne L_curve25519_inv_5_%=\n\t"
- "add x2, x29, #0x50\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #0x90\n\t"
- "bl fe_sq\n\t"
- "mov x24, #0x63\n\t"
- "add x1, x29, #0x90\n\t"
- "\n"
- "L_curve25519_inv_6_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x24, x24, #1\n\t"
- "cmp x24, #0\n\t"
- "bne L_curve25519_inv_6_%=\n\t"
- "add x0, x29, #0x70\n\t"
- "add x2, x29, #0x70\n\t"
- "bl fe_mul\n\t"
- "mov x24, #50\n\t"
- "add x1, x29, #0x70\n\t"
- "\n"
- "L_curve25519_inv_7_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x24, x24, #1\n\t"
- "cmp x24, #0\n\t"
- "bne L_curve25519_inv_7_%=\n\t"
- "add x0, x29, #0x50\n\t"
- "add x2, x29, #0x50\n\t"
- "bl fe_mul\n\t"
- "mov x24, #5\n\t"
- "add x1, x29, #0x50\n\t"
- "\n"
- "L_curve25519_inv_8_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x24, x24, #1\n\t"
- "cmp x24, #0\n\t"
- "bne L_curve25519_inv_8_%=\n\t"
- "add x0, x29, #16\n\t"
- "add x2, x29, #48\n\t"
- "bl fe_mul\n\t"
- "ldr %x[r], [x29, #176]\n\t"
- /* Multiply */
- "ldp x6, x7, [%x[r]]\n\t"
- "ldp x8, x9, [%x[r], #16]\n\t"
- "ldp x10, x11, [x29, #16]\n\t"
- "ldp x12, x13, [x29, #32]\n\t"
- /* A[0] * B[0] */
- "mul x14, x6, x10\n\t"
- "umulh x15, x6, x10\n\t"
- /* A[0] * B[1] */
- "mul x3, x6, x11\n\t"
- "umulh x16, x6, x11\n\t"
- "adds x15, x15, x3\n\t"
- "adc x16, x16, xzr\n\t"
- /* A[1] * B[0] */
- "mul x3, x7, x10\n\t"
- "umulh x4, x7, x10\n\t"
- "adds x15, x15, x3\n\t"
- "adcs x16, x16, x4\n\t"
- "adc x17, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x3, x6, x12\n\t"
- "umulh x4, x6, x12\n\t"
- "adds x16, x16, x3\n\t"
- "adc x17, x17, x4\n\t"
- /* A[1] * B[1] */
- "mul x3, x7, x11\n\t"
- "umulh x4, x7, x11\n\t"
- "adds x16, x16, x3\n\t"
- "adcs x17, x17, x4\n\t"
- "adc x19, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x3, x8, x10\n\t"
- "umulh x4, x8, x10\n\t"
- "adds x16, x16, x3\n\t"
- "adcs x17, x17, x4\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[0] * B[3] */
- "mul x3, x6, x13\n\t"
- "umulh x4, x6, x13\n\t"
- "adds x17, x17, x3\n\t"
- "adcs x19, x19, x4\n\t"
- "adc x20, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x3, x7, x12\n\t"
- "umulh x4, x7, x12\n\t"
- "adds x17, x17, x3\n\t"
- "adcs x19, x19, x4\n\t"
- "adc x20, x20, xzr\n\t"
- /* A[2] * B[1] */
- "mul x3, x8, x11\n\t"
- "umulh x4, x8, x11\n\t"
- "adds x17, x17, x3\n\t"
- "adcs x19, x19, x4\n\t"
- "adc x20, x20, xzr\n\t"
- /* A[3] * B[0] */
- "mul x3, x9, x10\n\t"
- "umulh x4, x9, x10\n\t"
- "adds x17, x17, x3\n\t"
- "adcs x19, x19, x4\n\t"
- "adc x20, x20, xzr\n\t"
- /* A[1] * B[3] */
- "mul x3, x7, x13\n\t"
- "umulh x4, x7, x13\n\t"
- "adds x19, x19, x3\n\t"
- "adcs x20, x20, x4\n\t"
- "adc x21, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x3, x8, x12\n\t"
- "umulh x4, x8, x12\n\t"
- "adds x19, x19, x3\n\t"
- "adcs x20, x20, x4\n\t"
- "adc x21, x21, xzr\n\t"
- /* A[3] * B[1] */
- "mul x3, x9, x11\n\t"
- "umulh x4, x9, x11\n\t"
- "adds x19, x19, x3\n\t"
- "adcs x20, x20, x4\n\t"
- "adc x21, x21, xzr\n\t"
- /* A[2] * B[3] */
- "mul x3, x8, x13\n\t"
- "umulh x4, x8, x13\n\t"
- "adds x20, x20, x3\n\t"
- "adcs x21, x21, x4\n\t"
- "adc x22, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x3, x9, x12\n\t"
- "umulh x4, x9, x12\n\t"
- "adds x20, x20, x3\n\t"
- "adcs x21, x21, x4\n\t"
- "adc x22, x22, xzr\n\t"
- /* A[3] * B[3] */
- "mul x3, x9, x13\n\t"
- "umulh x4, x9, x13\n\t"
- "adds x21, x21, x3\n\t"
- "adc x22, x22, x4\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x22, x22, x21, #63\n\t"
- "extr x21, x21, x20, #63\n\t"
- "extr x20, x20, x19, #63\n\t"
- "extr x19, x19, x17, #63\n\t"
- "and x17, x17, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x3, #19\n\t"
- "mul x4, x3, x19\n\t"
- "umulh x19, x3, x19\n\t"
- "adds x14, x14, x4\n\t"
- "mul x4, x3, x20\n\t"
- "umulh x20, x3, x20\n\t"
- "adcs x15, x15, x4\n\t"
- "mul x4, x3, x21\n\t"
- "umulh x21, x3, x21\n\t"
- "adcs x16, x16, x4\n\t"
- "mul x4, x3, x22\n\t"
- "umulh x5, x3, x22\n\t"
- "adcs x17, x17, x4\n\t"
- "adc x5, x5, xzr\n\t"
- /* Add remaining product results in */
- "adds x15, x15, x19\n\t"
- "adcs x16, x16, x20\n\t"
- "adcs x17, x17, x21\n\t"
- "adc x5, x5, xzr\n\t"
- /* Overflow */
- "extr x5, x5, x17, #63\n\t"
- "mul x5, x5, x3\n\t"
- "and x17, x17, #0x7fffffffffffffff\n\t"
- "adds x14, x14, x5\n\t"
- "adcs x15, x15, xzr\n\t"
- "adcs x16, x16, xzr\n\t"
- "adc x17, x17, xzr\n\t"
- /* Reduce if top bit set */
- "and x5, x3, x17, asr 63\n\t"
- "and x17, x17, #0x7fffffffffffffff\n\t"
- "adds x14, x14, x5\n\t"
- "adcs x15, x15, xzr\n\t"
- "adcs x16, x16, xzr\n\t"
- "adc x17, x17, xzr\n\t"
- /* Store */
- "stp x14, x15, [%x[r]]\n\t"
- "stp x16, x17, [%x[r], #16]\n\t"
- "mov x0, xzr\n\t"
- "ldp x29, x30, [sp], #0xc0\n\t"
- : [r] "+r" (r), [n] "+r" (n), [a] "+r" (a)
- :
- : "memory", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27", "x28"
- );
- return (uint32_t)(size_t)r;
-}
-
-void fe_pow22523(fe r, const fe a)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-128]!\n\t"
- "add x29, sp, #0\n\t"
- /* pow22523 */
- "str %x[r], [x29, #112]\n\t"
- "str %x[a], [x29, #120]\n\t"
- "add x0, x29, #16\n\t"
- "bl fe_sq\n\t"
- "add x0, x29, #48\n\t"
- "add x1, x29, #16\n\t"
- "bl fe_sq\n\t"
- "add x1, x29, #48\n\t"
- "bl fe_sq\n\t"
- "ldr x1, [x29, #120]\n\t"
- "add x2, x29, #48\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #16\n\t"
- "add x1, x29, #16\n\t"
- "add x2, x29, #48\n\t"
- "bl fe_mul\n\t"
- "bl fe_sq\n\t"
- "add x1, x29, #48\n\t"
- "add x2, x29, #16\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #48\n\t"
- "add x1, x29, #16\n\t"
- "bl fe_sq\n\t"
- "mov x21, #4\n\t"
- "add x1, x29, #48\n\t"
- "\n"
- "L_fe_pow22523_1_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x21, x21, #1\n\t"
- "cmp x21, #0\n\t"
- "bne L_fe_pow22523_1_%=\n\t"
- "add x0, x29, #16\n\t"
- "add x2, x29, #16\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #48\n\t"
- "add x1, x29, #16\n\t"
- "bl fe_sq\n\t"
- "mov x21, #9\n\t"
- "add x1, x29, #48\n\t"
- "\n"
- "L_fe_pow22523_2_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x21, x21, #1\n\t"
- "cmp x21, #0\n\t"
- "bne L_fe_pow22523_2_%=\n\t"
- "add x2, x29, #16\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #0x50\n\t"
- "bl fe_sq\n\t"
- "mov x21, #19\n\t"
- "add x1, x29, #0x50\n\t"
- "\n"
- "L_fe_pow22523_3_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x21, x21, #1\n\t"
- "cmp x21, #0\n\t"
- "bne L_fe_pow22523_3_%=\n\t"
- "add x0, x29, #48\n\t"
- "add x2, x29, #48\n\t"
- "bl fe_mul\n\t"
- "mov x21, #10\n\t"
- "add x1, x29, #48\n\t"
- "\n"
- "L_fe_pow22523_4_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x21, x21, #1\n\t"
- "cmp x21, #0\n\t"
- "bne L_fe_pow22523_4_%=\n\t"
- "add x0, x29, #16\n\t"
- "add x2, x29, #16\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #48\n\t"
- "add x1, x29, #16\n\t"
- "bl fe_sq\n\t"
- "mov x21, #49\n\t"
- "add x1, x29, #48\n\t"
- "\n"
- "L_fe_pow22523_5_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x21, x21, #1\n\t"
- "cmp x21, #0\n\t"
- "bne L_fe_pow22523_5_%=\n\t"
- "add x2, x29, #16\n\t"
- "bl fe_mul\n\t"
- "add x0, x29, #0x50\n\t"
- "bl fe_sq\n\t"
- "mov x21, #0x63\n\t"
- "add x1, x29, #0x50\n\t"
- "\n"
- "L_fe_pow22523_6_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x21, x21, #1\n\t"
- "cmp x21, #0\n\t"
- "bne L_fe_pow22523_6_%=\n\t"
- "add x0, x29, #48\n\t"
- "add x2, x29, #48\n\t"
- "bl fe_mul\n\t"
- "mov x21, #50\n\t"
- "add x1, x29, #48\n\t"
- "\n"
- "L_fe_pow22523_7_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x21, x21, #1\n\t"
- "cmp x21, #0\n\t"
- "bne L_fe_pow22523_7_%=\n\t"
- "add x0, x29, #16\n\t"
- "add x2, x29, #16\n\t"
- "bl fe_mul\n\t"
- "mov x21, #2\n\t"
- "add x1, x29, #16\n\t"
- "\n"
- "L_fe_pow22523_8_%=: \n\t"
- "bl fe_sq\n\t"
- "sub x21, x21, #1\n\t"
- "cmp x21, #0\n\t"
- "bne L_fe_pow22523_8_%=\n\t"
- "ldr x0, [x29, #112]\n\t"
- "ldr x2, [x29, #120]\n\t"
- "bl fe_mul\n\t"
- "ldp x29, x30, [sp], #0x80\n\t"
- : [r] "+r" (r), [a] "+r" (a)
- :
- : "memory", "x21"
- );
-}
-
-void fe_ge_to_p2(fe rx, fe ry, fe rz, const fe px, const fe py, const fe pz, const fe pt)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-64]!\n\t"
- "add x29, sp, #0\n\t"
- "str %x[ry], [x29, #16]\n\t"
- "str %x[rz], [x29, #24]\n\t"
- "str %x[px], [x29, #32]\n\t"
- "str %x[py], [x29, #40]\n\t"
- "str %x[pz], [x29, #48]\n\t"
- "str %x[pt], [x29, #56]\n\t"
- "ldr x1, [x29, #32]\n\t"
- "ldr x2, [x29, #56]\n\t"
- /* Multiply */
- "ldp x11, x12, [x1]\n\t"
- "ldp x13, x14, [x1, #16]\n\t"
- "ldp x15, x16, [x2]\n\t"
- "ldp x17, x19, [x2, #16]\n\t"
- /* A[0] * B[0] */
- "mul x3, x11, x15\n\t"
- "umulh x4, x11, x15\n\t"
- /* A[0] * B[1] */
- "mul x20, x11, x16\n\t"
- "umulh x5, x11, x16\n\t"
- "adds x4, x4, x20\n\t"
- "adc x5, x5, xzr\n\t"
- /* A[1] * B[0] */
- "mul x20, x12, x15\n\t"
- "umulh x21, x12, x15\n\t"
- "adds x4, x4, x20\n\t"
- "adcs x5, x5, x21\n\t"
- "adc x6, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x20, x11, x17\n\t"
- "umulh x21, x11, x17\n\t"
- "adds x5, x5, x20\n\t"
- "adc x6, x6, x21\n\t"
- /* A[1] * B[1] */
- "mul x20, x12, x16\n\t"
- "umulh x21, x12, x16\n\t"
- "adds x5, x5, x20\n\t"
- "adcs x6, x6, x21\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x20, x13, x15\n\t"
- "umulh x21, x13, x15\n\t"
- "adds x5, x5, x20\n\t"
- "adcs x6, x6, x21\n\t"
- "adc x7, x7, xzr\n\t"
- /* A[0] * B[3] */
- "mul x20, x11, x19\n\t"
- "umulh x21, x11, x19\n\t"
- "adds x6, x6, x20\n\t"
- "adcs x7, x7, x21\n\t"
- "adc x8, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x20, x12, x17\n\t"
- "umulh x21, x12, x17\n\t"
- "adds x6, x6, x20\n\t"
- "adcs x7, x7, x21\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[2] * B[1] */
- "mul x20, x13, x16\n\t"
- "umulh x21, x13, x16\n\t"
- "adds x6, x6, x20\n\t"
- "adcs x7, x7, x21\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[3] * B[0] */
- "mul x20, x14, x15\n\t"
- "umulh x21, x14, x15\n\t"
- "adds x6, x6, x20\n\t"
- "adcs x7, x7, x21\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[1] * B[3] */
- "mul x20, x12, x19\n\t"
- "umulh x21, x12, x19\n\t"
- "adds x7, x7, x20\n\t"
- "adcs x8, x8, x21\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x20, x13, x17\n\t"
- "umulh x21, x13, x17\n\t"
- "adds x7, x7, x20\n\t"
- "adcs x8, x8, x21\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[3] * B[1] */
- "mul x20, x14, x16\n\t"
- "umulh x21, x14, x16\n\t"
- "adds x7, x7, x20\n\t"
- "adcs x8, x8, x21\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[2] * B[3] */
- "mul x20, x13, x19\n\t"
- "umulh x21, x13, x19\n\t"
- "adds x8, x8, x20\n\t"
- "adcs x9, x9, x21\n\t"
- "adc x10, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x20, x14, x17\n\t"
- "umulh x21, x14, x17\n\t"
- "adds x8, x8, x20\n\t"
- "adcs x9, x9, x21\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[3] * B[3] */
- "mul x20, x14, x19\n\t"
- "umulh x21, x14, x19\n\t"
- "adds x9, x9, x20\n\t"
- "adc x10, x10, x21\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x10, x10, x9, #63\n\t"
- "extr x9, x9, x8, #63\n\t"
- "extr x8, x8, x7, #63\n\t"
- "extr x7, x7, x6, #63\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x20, #19\n\t"
- "mul x21, x20, x7\n\t"
- "umulh x7, x20, x7\n\t"
- "adds x3, x3, x21\n\t"
- "mul x21, x20, x8\n\t"
- "umulh x8, x20, x8\n\t"
- "adcs x4, x4, x21\n\t"
- "mul x21, x20, x9\n\t"
- "umulh x9, x20, x9\n\t"
- "adcs x5, x5, x21\n\t"
- "mul x21, x20, x10\n\t"
- "umulh x22, x20, x10\n\t"
- "adcs x6, x6, x21\n\t"
- "adc x22, x22, xzr\n\t"
- /* Add remaining product results in */
- "adds x4, x4, x7\n\t"
- "adcs x5, x5, x8\n\t"
- "adcs x6, x6, x9\n\t"
- "adc x22, x22, xzr\n\t"
- /* Overflow */
- "extr x22, x22, x6, #63\n\t"
- "mul x22, x22, x20\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- "adds x3, x3, x22\n\t"
- "adcs x4, x4, xzr\n\t"
- "adcs x5, x5, xzr\n\t"
- "adc x6, x6, xzr\n\t"
- /* Reduce if top bit set */
- "and x22, x20, x6, asr 63\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- "adds x3, x3, x22\n\t"
- "adcs x4, x4, xzr\n\t"
- "adcs x5, x5, xzr\n\t"
- "adc x6, x6, xzr\n\t"
- /* Store */
- "stp x3, x4, [x0]\n\t"
- "stp x5, x6, [x0, #16]\n\t"
- "ldr x0, [x29, #16]\n\t"
- "ldr x1, [x29, #40]\n\t"
- "ldr x2, [x29, #48]\n\t"
- /* Multiply */
- "ldp x11, x12, [x1]\n\t"
- "ldp x13, x14, [x1, #16]\n\t"
- "ldp x15, x16, [x2]\n\t"
- "ldp x17, x19, [x2, #16]\n\t"
- /* A[0] * B[0] */
- "mul x3, x11, x15\n\t"
- "umulh x4, x11, x15\n\t"
- /* A[0] * B[1] */
- "mul x20, x11, x16\n\t"
- "umulh x5, x11, x16\n\t"
- "adds x4, x4, x20\n\t"
- "adc x5, x5, xzr\n\t"
- /* A[1] * B[0] */
- "mul x20, x12, x15\n\t"
- "umulh x21, x12, x15\n\t"
- "adds x4, x4, x20\n\t"
- "adcs x5, x5, x21\n\t"
- "adc x6, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x20, x11, x17\n\t"
- "umulh x21, x11, x17\n\t"
- "adds x5, x5, x20\n\t"
- "adc x6, x6, x21\n\t"
- /* A[1] * B[1] */
- "mul x20, x12, x16\n\t"
- "umulh x21, x12, x16\n\t"
- "adds x5, x5, x20\n\t"
- "adcs x6, x6, x21\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x20, x13, x15\n\t"
- "umulh x21, x13, x15\n\t"
- "adds x5, x5, x20\n\t"
- "adcs x6, x6, x21\n\t"
- "adc x7, x7, xzr\n\t"
- /* A[0] * B[3] */
- "mul x20, x11, x19\n\t"
- "umulh x21, x11, x19\n\t"
- "adds x6, x6, x20\n\t"
- "adcs x7, x7, x21\n\t"
- "adc x8, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x20, x12, x17\n\t"
- "umulh x21, x12, x17\n\t"
- "adds x6, x6, x20\n\t"
- "adcs x7, x7, x21\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[2] * B[1] */
- "mul x20, x13, x16\n\t"
- "umulh x21, x13, x16\n\t"
- "adds x6, x6, x20\n\t"
- "adcs x7, x7, x21\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[3] * B[0] */
- "mul x20, x14, x15\n\t"
- "umulh x21, x14, x15\n\t"
- "adds x6, x6, x20\n\t"
- "adcs x7, x7, x21\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[1] * B[3] */
- "mul x20, x12, x19\n\t"
- "umulh x21, x12, x19\n\t"
- "adds x7, x7, x20\n\t"
- "adcs x8, x8, x21\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x20, x13, x17\n\t"
- "umulh x21, x13, x17\n\t"
- "adds x7, x7, x20\n\t"
- "adcs x8, x8, x21\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[3] * B[1] */
- "mul x20, x14, x16\n\t"
- "umulh x21, x14, x16\n\t"
- "adds x7, x7, x20\n\t"
- "adcs x8, x8, x21\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[2] * B[3] */
- "mul x20, x13, x19\n\t"
- "umulh x21, x13, x19\n\t"
- "adds x8, x8, x20\n\t"
- "adcs x9, x9, x21\n\t"
- "adc x10, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x20, x14, x17\n\t"
- "umulh x21, x14, x17\n\t"
- "adds x8, x8, x20\n\t"
- "adcs x9, x9, x21\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[3] * B[3] */
- "mul x20, x14, x19\n\t"
- "umulh x21, x14, x19\n\t"
- "adds x9, x9, x20\n\t"
- "adc x10, x10, x21\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x10, x10, x9, #63\n\t"
- "extr x9, x9, x8, #63\n\t"
- "extr x8, x8, x7, #63\n\t"
- "extr x7, x7, x6, #63\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x20, #19\n\t"
- "mul x21, x20, x7\n\t"
- "umulh x7, x20, x7\n\t"
- "adds x3, x3, x21\n\t"
- "mul x21, x20, x8\n\t"
- "umulh x8, x20, x8\n\t"
- "adcs x4, x4, x21\n\t"
- "mul x21, x20, x9\n\t"
- "umulh x9, x20, x9\n\t"
- "adcs x5, x5, x21\n\t"
- "mul x21, x20, x10\n\t"
- "umulh x22, x20, x10\n\t"
- "adcs x6, x6, x21\n\t"
- "adc x22, x22, xzr\n\t"
- /* Add remaining product results in */
- "adds x4, x4, x7\n\t"
- "adcs x5, x5, x8\n\t"
- "adcs x6, x6, x9\n\t"
- "adc x22, x22, xzr\n\t"
- /* Overflow */
- "extr x22, x22, x6, #63\n\t"
- "mul x22, x22, x20\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- "adds x3, x3, x22\n\t"
- "adcs x4, x4, xzr\n\t"
- "adcs x5, x5, xzr\n\t"
- "adc x6, x6, xzr\n\t"
- /* Reduce if top bit set */
- "and x22, x20, x6, asr 63\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- "adds x3, x3, x22\n\t"
- "adcs x4, x4, xzr\n\t"
- "adcs x5, x5, xzr\n\t"
- "adc x6, x6, xzr\n\t"
- /* Store */
- "stp x3, x4, [x0]\n\t"
- "stp x5, x6, [x0, #16]\n\t"
- "ldr x0, [x29, #24]\n\t"
- "ldr x2, [x29, #56]\n\t"
- /* Multiply */
- "ldp x11, x12, [x2]\n\t"
- "ldp x13, x14, [x2, #16]\n\t"
- /* A[0] * B[0] */
- "mul x3, x15, x11\n\t"
- "umulh x4, x15, x11\n\t"
- /* A[0] * B[1] */
- "mul x20, x15, x12\n\t"
- "umulh x5, x15, x12\n\t"
- "adds x4, x4, x20\n\t"
- "adc x5, x5, xzr\n\t"
- /* A[1] * B[0] */
- "mul x20, x16, x11\n\t"
- "umulh x21, x16, x11\n\t"
- "adds x4, x4, x20\n\t"
- "adcs x5, x5, x21\n\t"
- "adc x6, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x20, x15, x13\n\t"
- "umulh x21, x15, x13\n\t"
- "adds x5, x5, x20\n\t"
- "adc x6, x6, x21\n\t"
- /* A[1] * B[1] */
- "mul x20, x16, x12\n\t"
- "umulh x21, x16, x12\n\t"
- "adds x5, x5, x20\n\t"
- "adcs x6, x6, x21\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x20, x17, x11\n\t"
- "umulh x21, x17, x11\n\t"
- "adds x5, x5, x20\n\t"
- "adcs x6, x6, x21\n\t"
- "adc x7, x7, xzr\n\t"
- /* A[0] * B[3] */
- "mul x20, x15, x14\n\t"
- "umulh x21, x15, x14\n\t"
- "adds x6, x6, x20\n\t"
- "adcs x7, x7, x21\n\t"
- "adc x8, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x20, x16, x13\n\t"
- "umulh x21, x16, x13\n\t"
- "adds x6, x6, x20\n\t"
- "adcs x7, x7, x21\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[2] * B[1] */
- "mul x20, x17, x12\n\t"
- "umulh x21, x17, x12\n\t"
- "adds x6, x6, x20\n\t"
- "adcs x7, x7, x21\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[3] * B[0] */
- "mul x20, x19, x11\n\t"
- "umulh x21, x19, x11\n\t"
- "adds x6, x6, x20\n\t"
- "adcs x7, x7, x21\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[1] * B[3] */
- "mul x20, x16, x14\n\t"
- "umulh x21, x16, x14\n\t"
- "adds x7, x7, x20\n\t"
- "adcs x8, x8, x21\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x20, x17, x13\n\t"
- "umulh x21, x17, x13\n\t"
- "adds x7, x7, x20\n\t"
- "adcs x8, x8, x21\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[3] * B[1] */
- "mul x20, x19, x12\n\t"
- "umulh x21, x19, x12\n\t"
- "adds x7, x7, x20\n\t"
- "adcs x8, x8, x21\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[2] * B[3] */
- "mul x20, x17, x14\n\t"
- "umulh x21, x17, x14\n\t"
- "adds x8, x8, x20\n\t"
- "adcs x9, x9, x21\n\t"
- "adc x10, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x20, x19, x13\n\t"
- "umulh x21, x19, x13\n\t"
- "adds x8, x8, x20\n\t"
- "adcs x9, x9, x21\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[3] * B[3] */
- "mul x20, x19, x14\n\t"
- "umulh x21, x19, x14\n\t"
- "adds x9, x9, x20\n\t"
- "adc x10, x10, x21\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x10, x10, x9, #63\n\t"
- "extr x9, x9, x8, #63\n\t"
- "extr x8, x8, x7, #63\n\t"
- "extr x7, x7, x6, #63\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x20, #19\n\t"
- "mul x21, x20, x7\n\t"
- "umulh x7, x20, x7\n\t"
- "adds x3, x3, x21\n\t"
- "mul x21, x20, x8\n\t"
- "umulh x8, x20, x8\n\t"
- "adcs x4, x4, x21\n\t"
- "mul x21, x20, x9\n\t"
- "umulh x9, x20, x9\n\t"
- "adcs x5, x5, x21\n\t"
- "mul x21, x20, x10\n\t"
- "umulh x22, x20, x10\n\t"
- "adcs x6, x6, x21\n\t"
- "adc x22, x22, xzr\n\t"
- /* Add remaining product results in */
- "adds x4, x4, x7\n\t"
- "adcs x5, x5, x8\n\t"
- "adcs x6, x6, x9\n\t"
- "adc x22, x22, xzr\n\t"
- /* Overflow */
- "extr x22, x22, x6, #63\n\t"
- "mul x22, x22, x20\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- "adds x3, x3, x22\n\t"
- "adcs x4, x4, xzr\n\t"
- "adcs x5, x5, xzr\n\t"
- "adc x6, x6, xzr\n\t"
- /* Reduce if top bit set */
- "and x22, x20, x6, asr 63\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- "adds x3, x3, x22\n\t"
- "adcs x4, x4, xzr\n\t"
- "adcs x5, x5, xzr\n\t"
- "adc x6, x6, xzr\n\t"
- /* Store */
- "stp x3, x4, [x0]\n\t"
- "stp x5, x6, [x0, #16]\n\t"
- "ldp x29, x30, [sp], #0x40\n\t"
- : [rx] "+r" (rx), [ry] "+r" (ry), [rz] "+r" (rz), [px] "+r" (px), [py] "+r" (py), [pz] "+r" (pz), [pt] "+r" (pt)
- :
- : "memory", "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x19", "x20", "x21", "x22"
- );
-}
-
-void fe_ge_to_p3(fe rx, fe ry, fe rz, fe rt, const fe px, const fe py, const fe pz, const fe pt)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-80]!\n\t"
- "add x29, sp, #0\n\t"
- "str %x[ry], [x29, #16]\n\t"
- "str %x[rz], [x29, #24]\n\t"
- "str %x[rt], [x29, #32]\n\t"
- "str %x[px], [x29, #40]\n\t"
- "str %x[py], [x29, #48]\n\t"
- "str %x[pz], [x29, #56]\n\t"
- "str %x[pt], [x29, #64]\n\t"
- "ldr x1, [x29, #40]\n\t"
- "ldr x2, [x29, #64]\n\t"
- /* Multiply */
- "ldp x11, x12, [x1]\n\t"
- "ldp x13, x14, [x1, #16]\n\t"
- "ldp x15, x16, [x2]\n\t"
- "ldp x17, x19, [x2, #16]\n\t"
- /* A[0] * B[0] */
- "mul x3, x11, x15\n\t"
- "umulh x4, x11, x15\n\t"
- /* A[0] * B[1] */
- "mul x24, x11, x16\n\t"
- "umulh x5, x11, x16\n\t"
- "adds x4, x4, x24\n\t"
- "adc x5, x5, xzr\n\t"
- /* A[1] * B[0] */
- "mul x24, x12, x15\n\t"
- "umulh x25, x12, x15\n\t"
- "adds x4, x4, x24\n\t"
- "adcs x5, x5, x25\n\t"
- "adc x6, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x24, x11, x17\n\t"
- "umulh x25, x11, x17\n\t"
- "adds x5, x5, x24\n\t"
- "adc x6, x6, x25\n\t"
- /* A[1] * B[1] */
- "mul x24, x12, x16\n\t"
- "umulh x25, x12, x16\n\t"
- "adds x5, x5, x24\n\t"
- "adcs x6, x6, x25\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x24, x13, x15\n\t"
- "umulh x25, x13, x15\n\t"
- "adds x5, x5, x24\n\t"
- "adcs x6, x6, x25\n\t"
- "adc x7, x7, xzr\n\t"
- /* A[0] * B[3] */
- "mul x24, x11, x19\n\t"
- "umulh x25, x11, x19\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x24, x12, x17\n\t"
- "umulh x25, x12, x17\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[2] * B[1] */
- "mul x24, x13, x16\n\t"
- "umulh x25, x13, x16\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[3] * B[0] */
- "mul x24, x14, x15\n\t"
- "umulh x25, x14, x15\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[1] * B[3] */
- "mul x24, x12, x19\n\t"
- "umulh x25, x12, x19\n\t"
- "adds x7, x7, x24\n\t"
- "adcs x8, x8, x25\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x24, x13, x17\n\t"
- "umulh x25, x13, x17\n\t"
- "adds x7, x7, x24\n\t"
- "adcs x8, x8, x25\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[3] * B[1] */
- "mul x24, x14, x16\n\t"
- "umulh x25, x14, x16\n\t"
- "adds x7, x7, x24\n\t"
- "adcs x8, x8, x25\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[2] * B[3] */
- "mul x24, x13, x19\n\t"
- "umulh x25, x13, x19\n\t"
- "adds x8, x8, x24\n\t"
- "adcs x9, x9, x25\n\t"
- "adc x10, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x24, x14, x17\n\t"
- "umulh x25, x14, x17\n\t"
- "adds x8, x8, x24\n\t"
- "adcs x9, x9, x25\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[3] * B[3] */
- "mul x24, x14, x19\n\t"
- "umulh x25, x14, x19\n\t"
- "adds x9, x9, x24\n\t"
- "adc x10, x10, x25\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x10, x10, x9, #63\n\t"
- "extr x9, x9, x8, #63\n\t"
- "extr x8, x8, x7, #63\n\t"
- "extr x7, x7, x6, #63\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x24, #19\n\t"
- "mul x25, x24, x7\n\t"
- "umulh x7, x24, x7\n\t"
- "adds x3, x3, x25\n\t"
- "mul x25, x24, x8\n\t"
- "umulh x8, x24, x8\n\t"
- "adcs x4, x4, x25\n\t"
- "mul x25, x24, x9\n\t"
- "umulh x9, x24, x9\n\t"
- "adcs x5, x5, x25\n\t"
- "mul x25, x24, x10\n\t"
- "umulh x26, x24, x10\n\t"
- "adcs x6, x6, x25\n\t"
- "adc x26, x26, xzr\n\t"
- /* Add remaining product results in */
- "adds x4, x4, x7\n\t"
- "adcs x5, x5, x8\n\t"
- "adcs x6, x6, x9\n\t"
- "adc x26, x26, xzr\n\t"
- /* Overflow */
- "extr x26, x26, x6, #63\n\t"
- "mul x26, x26, x24\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- "adds x3, x3, x26\n\t"
- "adcs x4, x4, xzr\n\t"
- "adcs x5, x5, xzr\n\t"
- "adc x6, x6, xzr\n\t"
- /* Reduce if top bit set */
- "and x26, x24, x6, asr 63\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- "adds x3, x3, x26\n\t"
- "adcs x4, x4, xzr\n\t"
- "adcs x5, x5, xzr\n\t"
- "adc x6, x6, xzr\n\t"
- /* Store */
- "stp x3, x4, [x0]\n\t"
- "stp x5, x6, [x0, #16]\n\t"
- "ldr x0, [x29, #32]\n\t"
- "ldr x2, [x29, #48]\n\t"
- /* Multiply */
- "ldp x20, x21, [x2]\n\t"
- "ldp x22, x23, [x2, #16]\n\t"
- /* A[0] * B[0] */
- "mul x3, x11, x20\n\t"
- "umulh x4, x11, x20\n\t"
- /* A[0] * B[1] */
- "mul x24, x11, x21\n\t"
- "umulh x5, x11, x21\n\t"
- "adds x4, x4, x24\n\t"
- "adc x5, x5, xzr\n\t"
- /* A[1] * B[0] */
- "mul x24, x12, x20\n\t"
- "umulh x25, x12, x20\n\t"
- "adds x4, x4, x24\n\t"
- "adcs x5, x5, x25\n\t"
- "adc x6, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x24, x11, x22\n\t"
- "umulh x25, x11, x22\n\t"
- "adds x5, x5, x24\n\t"
- "adc x6, x6, x25\n\t"
- /* A[1] * B[1] */
- "mul x24, x12, x21\n\t"
- "umulh x25, x12, x21\n\t"
- "adds x5, x5, x24\n\t"
- "adcs x6, x6, x25\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x24, x13, x20\n\t"
- "umulh x25, x13, x20\n\t"
- "adds x5, x5, x24\n\t"
- "adcs x6, x6, x25\n\t"
- "adc x7, x7, xzr\n\t"
- /* A[0] * B[3] */
- "mul x24, x11, x23\n\t"
- "umulh x25, x11, x23\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x24, x12, x22\n\t"
- "umulh x25, x12, x22\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[2] * B[1] */
- "mul x24, x13, x21\n\t"
- "umulh x25, x13, x21\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[3] * B[0] */
- "mul x24, x14, x20\n\t"
- "umulh x25, x14, x20\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[1] * B[3] */
- "mul x24, x12, x23\n\t"
- "umulh x25, x12, x23\n\t"
- "adds x7, x7, x24\n\t"
- "adcs x8, x8, x25\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x24, x13, x22\n\t"
- "umulh x25, x13, x22\n\t"
- "adds x7, x7, x24\n\t"
- "adcs x8, x8, x25\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[3] * B[1] */
- "mul x24, x14, x21\n\t"
- "umulh x25, x14, x21\n\t"
- "adds x7, x7, x24\n\t"
- "adcs x8, x8, x25\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[2] * B[3] */
- "mul x24, x13, x23\n\t"
- "umulh x25, x13, x23\n\t"
- "adds x8, x8, x24\n\t"
- "adcs x9, x9, x25\n\t"
- "adc x10, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x24, x14, x22\n\t"
- "umulh x25, x14, x22\n\t"
- "adds x8, x8, x24\n\t"
- "adcs x9, x9, x25\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[3] * B[3] */
- "mul x24, x14, x23\n\t"
- "umulh x25, x14, x23\n\t"
- "adds x9, x9, x24\n\t"
- "adc x10, x10, x25\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x10, x10, x9, #63\n\t"
- "extr x9, x9, x8, #63\n\t"
- "extr x8, x8, x7, #63\n\t"
- "extr x7, x7, x6, #63\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x24, #19\n\t"
- "mul x25, x24, x7\n\t"
- "umulh x7, x24, x7\n\t"
- "adds x3, x3, x25\n\t"
- "mul x25, x24, x8\n\t"
- "umulh x8, x24, x8\n\t"
- "adcs x4, x4, x25\n\t"
- "mul x25, x24, x9\n\t"
- "umulh x9, x24, x9\n\t"
- "adcs x5, x5, x25\n\t"
- "mul x25, x24, x10\n\t"
- "umulh x26, x24, x10\n\t"
- "adcs x6, x6, x25\n\t"
- "adc x26, x26, xzr\n\t"
- /* Add remaining product results in */
- "adds x4, x4, x7\n\t"
- "adcs x5, x5, x8\n\t"
- "adcs x6, x6, x9\n\t"
- "adc x26, x26, xzr\n\t"
- /* Overflow */
- "extr x26, x26, x6, #63\n\t"
- "mul x26, x26, x24\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- "adds x3, x3, x26\n\t"
- "adcs x4, x4, xzr\n\t"
- "adcs x5, x5, xzr\n\t"
- "adc x6, x6, xzr\n\t"
- /* Reduce if top bit set */
- "and x26, x24, x6, asr 63\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- "adds x3, x3, x26\n\t"
- "adcs x4, x4, xzr\n\t"
- "adcs x5, x5, xzr\n\t"
- "adc x6, x6, xzr\n\t"
- /* Store */
- "stp x3, x4, [x0]\n\t"
- "stp x5, x6, [x0, #16]\n\t"
- "ldr x0, [x29, #16]\n\t"
- "ldr x2, [x29, #56]\n\t"
- /* Multiply */
- "ldp x11, x12, [x2]\n\t"
- "ldp x13, x14, [x2, #16]\n\t"
- /* A[0] * B[0] */
- "mul x3, x20, x11\n\t"
- "umulh x4, x20, x11\n\t"
- /* A[0] * B[1] */
- "mul x24, x20, x12\n\t"
- "umulh x5, x20, x12\n\t"
- "adds x4, x4, x24\n\t"
- "adc x5, x5, xzr\n\t"
- /* A[1] * B[0] */
- "mul x24, x21, x11\n\t"
- "umulh x25, x21, x11\n\t"
- "adds x4, x4, x24\n\t"
- "adcs x5, x5, x25\n\t"
- "adc x6, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x24, x20, x13\n\t"
- "umulh x25, x20, x13\n\t"
- "adds x5, x5, x24\n\t"
- "adc x6, x6, x25\n\t"
- /* A[1] * B[1] */
- "mul x24, x21, x12\n\t"
- "umulh x25, x21, x12\n\t"
- "adds x5, x5, x24\n\t"
- "adcs x6, x6, x25\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x24, x22, x11\n\t"
- "umulh x25, x22, x11\n\t"
- "adds x5, x5, x24\n\t"
- "adcs x6, x6, x25\n\t"
- "adc x7, x7, xzr\n\t"
- /* A[0] * B[3] */
- "mul x24, x20, x14\n\t"
- "umulh x25, x20, x14\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x24, x21, x13\n\t"
- "umulh x25, x21, x13\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[2] * B[1] */
- "mul x24, x22, x12\n\t"
- "umulh x25, x22, x12\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[3] * B[0] */
- "mul x24, x23, x11\n\t"
- "umulh x25, x23, x11\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[1] * B[3] */
- "mul x24, x21, x14\n\t"
- "umulh x25, x21, x14\n\t"
- "adds x7, x7, x24\n\t"
- "adcs x8, x8, x25\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x24, x22, x13\n\t"
- "umulh x25, x22, x13\n\t"
- "adds x7, x7, x24\n\t"
- "adcs x8, x8, x25\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[3] * B[1] */
- "mul x24, x23, x12\n\t"
- "umulh x25, x23, x12\n\t"
- "adds x7, x7, x24\n\t"
- "adcs x8, x8, x25\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[2] * B[3] */
- "mul x24, x22, x14\n\t"
- "umulh x25, x22, x14\n\t"
- "adds x8, x8, x24\n\t"
- "adcs x9, x9, x25\n\t"
- "adc x10, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x24, x23, x13\n\t"
- "umulh x25, x23, x13\n\t"
- "adds x8, x8, x24\n\t"
- "adcs x9, x9, x25\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[3] * B[3] */
- "mul x24, x23, x14\n\t"
- "umulh x25, x23, x14\n\t"
- "adds x9, x9, x24\n\t"
- "adc x10, x10, x25\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x10, x10, x9, #63\n\t"
- "extr x9, x9, x8, #63\n\t"
- "extr x8, x8, x7, #63\n\t"
- "extr x7, x7, x6, #63\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x24, #19\n\t"
- "mul x25, x24, x7\n\t"
- "umulh x7, x24, x7\n\t"
- "adds x3, x3, x25\n\t"
- "mul x25, x24, x8\n\t"
- "umulh x8, x24, x8\n\t"
- "adcs x4, x4, x25\n\t"
- "mul x25, x24, x9\n\t"
- "umulh x9, x24, x9\n\t"
- "adcs x5, x5, x25\n\t"
- "mul x25, x24, x10\n\t"
- "umulh x26, x24, x10\n\t"
- "adcs x6, x6, x25\n\t"
- "adc x26, x26, xzr\n\t"
- /* Add remaining product results in */
- "adds x4, x4, x7\n\t"
- "adcs x5, x5, x8\n\t"
- "adcs x6, x6, x9\n\t"
- "adc x26, x26, xzr\n\t"
- /* Overflow */
- "extr x26, x26, x6, #63\n\t"
- "mul x26, x26, x24\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- "adds x3, x3, x26\n\t"
- "adcs x4, x4, xzr\n\t"
- "adcs x5, x5, xzr\n\t"
- "adc x6, x6, xzr\n\t"
- /* Reduce if top bit set */
- "and x26, x24, x6, asr 63\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- "adds x3, x3, x26\n\t"
- "adcs x4, x4, xzr\n\t"
- "adcs x5, x5, xzr\n\t"
- "adc x6, x6, xzr\n\t"
- /* Store */
- "stp x3, x4, [x0]\n\t"
- "stp x5, x6, [x0, #16]\n\t"
- "ldr x0, [x29, #24]\n\t"
- /* Multiply */
- /* A[0] * B[0] */
- "mul x3, x11, x15\n\t"
- "umulh x4, x11, x15\n\t"
- /* A[0] * B[1] */
- "mul x24, x11, x16\n\t"
- "umulh x5, x11, x16\n\t"
- "adds x4, x4, x24\n\t"
- "adc x5, x5, xzr\n\t"
- /* A[1] * B[0] */
- "mul x24, x12, x15\n\t"
- "umulh x25, x12, x15\n\t"
- "adds x4, x4, x24\n\t"
- "adcs x5, x5, x25\n\t"
- "adc x6, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x24, x11, x17\n\t"
- "umulh x25, x11, x17\n\t"
- "adds x5, x5, x24\n\t"
- "adc x6, x6, x25\n\t"
- /* A[1] * B[1] */
- "mul x24, x12, x16\n\t"
- "umulh x25, x12, x16\n\t"
- "adds x5, x5, x24\n\t"
- "adcs x6, x6, x25\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x24, x13, x15\n\t"
- "umulh x25, x13, x15\n\t"
- "adds x5, x5, x24\n\t"
- "adcs x6, x6, x25\n\t"
- "adc x7, x7, xzr\n\t"
- /* A[0] * B[3] */
- "mul x24, x11, x19\n\t"
- "umulh x25, x11, x19\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x24, x12, x17\n\t"
- "umulh x25, x12, x17\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[2] * B[1] */
- "mul x24, x13, x16\n\t"
- "umulh x25, x13, x16\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[3] * B[0] */
- "mul x24, x14, x15\n\t"
- "umulh x25, x14, x15\n\t"
- "adds x6, x6, x24\n\t"
- "adcs x7, x7, x25\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[1] * B[3] */
- "mul x24, x12, x19\n\t"
- "umulh x25, x12, x19\n\t"
- "adds x7, x7, x24\n\t"
- "adcs x8, x8, x25\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x24, x13, x17\n\t"
- "umulh x25, x13, x17\n\t"
- "adds x7, x7, x24\n\t"
- "adcs x8, x8, x25\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[3] * B[1] */
- "mul x24, x14, x16\n\t"
- "umulh x25, x14, x16\n\t"
- "adds x7, x7, x24\n\t"
- "adcs x8, x8, x25\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[2] * B[3] */
- "mul x24, x13, x19\n\t"
- "umulh x25, x13, x19\n\t"
- "adds x8, x8, x24\n\t"
- "adcs x9, x9, x25\n\t"
- "adc x10, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x24, x14, x17\n\t"
- "umulh x25, x14, x17\n\t"
- "adds x8, x8, x24\n\t"
- "adcs x9, x9, x25\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[3] * B[3] */
- "mul x24, x14, x19\n\t"
- "umulh x25, x14, x19\n\t"
- "adds x9, x9, x24\n\t"
- "adc x10, x10, x25\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x10, x10, x9, #63\n\t"
- "extr x9, x9, x8, #63\n\t"
- "extr x8, x8, x7, #63\n\t"
- "extr x7, x7, x6, #63\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x24, #19\n\t"
- "mul x25, x24, x7\n\t"
- "umulh x7, x24, x7\n\t"
- "adds x3, x3, x25\n\t"
- "mul x25, x24, x8\n\t"
- "umulh x8, x24, x8\n\t"
- "adcs x4, x4, x25\n\t"
- "mul x25, x24, x9\n\t"
- "umulh x9, x24, x9\n\t"
- "adcs x5, x5, x25\n\t"
- "mul x25, x24, x10\n\t"
- "umulh x26, x24, x10\n\t"
- "adcs x6, x6, x25\n\t"
- "adc x26, x26, xzr\n\t"
- /* Add remaining product results in */
- "adds x4, x4, x7\n\t"
- "adcs x5, x5, x8\n\t"
- "adcs x6, x6, x9\n\t"
- "adc x26, x26, xzr\n\t"
- /* Overflow */
- "extr x26, x26, x6, #63\n\t"
- "mul x26, x26, x24\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- "adds x3, x3, x26\n\t"
- "adcs x4, x4, xzr\n\t"
- "adcs x5, x5, xzr\n\t"
- "adc x6, x6, xzr\n\t"
- /* Reduce if top bit set */
- "and x26, x24, x6, asr 63\n\t"
- "and x6, x6, #0x7fffffffffffffff\n\t"
- "adds x3, x3, x26\n\t"
- "adcs x4, x4, xzr\n\t"
- "adcs x5, x5, xzr\n\t"
- "adc x6, x6, xzr\n\t"
- /* Store */
- "stp x3, x4, [x0]\n\t"
- "stp x5, x6, [x0, #16]\n\t"
- "ldp x29, x30, [sp], #0x50\n\t"
- : [rx] "+r" (rx), [ry] "+r" (ry), [rz] "+r" (rz), [rt] "+r" (rt), [px] "+r" (px), [py] "+r" (py), [pz] "+r" (pz), [pt] "+r" (pt)
- :
- : "memory", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26"
- );
-}
-
-void fe_ge_dbl(fe rx, fe ry, fe rz, fe rt, const fe px, const fe py, const fe pz)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-80]!\n\t"
- "add x29, sp, #0\n\t"
- "str %x[rx], [x29, #16]\n\t"
- "str %x[ry], [x29, #24]\n\t"
- "str %x[rz], [x29, #32]\n\t"
- "str %x[rt], [x29, #40]\n\t"
- "str %x[px], [x29, #48]\n\t"
- "str %x[py], [x29, #56]\n\t"
- "str %x[pz], [x29, #64]\n\t"
- "ldr x1, [x29, #48]\n\t"
- /* Square */
- "ldp x12, x13, [x1]\n\t"
- "ldp x14, x15, [x1, #16]\n\t"
- /* A[0] * A[1] */
- "mul x5, x12, x13\n\t"
- "umulh x6, x12, x13\n\t"
- /* A[0] * A[2] */
- "mul x25, x12, x14\n\t"
- "umulh x7, x12, x14\n\t"
- "adds x6, x6, x25\n\t"
- "adc x7, x7, xzr\n\t"
- /* A[0] * A[3] */
- "mul x25, x12, x15\n\t"
- "umulh x8, x12, x15\n\t"
- "adds x7, x7, x25\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[1] * A[2] */
- "mul x25, x13, x14\n\t"
- "umulh x26, x13, x14\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[1] * A[3] */
- "mul x25, x13, x15\n\t"
- "umulh x26, x13, x15\n\t"
- "adds x8, x8, x25\n\t"
- "adc x9, x9, x26\n\t"
- /* A[2] * A[3] */
- "mul x25, x14, x15\n\t"
- "umulh x10, x14, x15\n\t"
- "adds x9, x9, x25\n\t"
- "adc x10, x10, xzr\n\t"
- /* Double */
- "adds x5, x5, x5\n\t"
- "adcs x6, x6, x6\n\t"
- "adcs x7, x7, x7\n\t"
- "adcs x8, x8, x8\n\t"
- "adcs x9, x9, x9\n\t"
- "adcs x10, x10, x10\n\t"
- "adc x11, xzr, xzr\n\t"
- /* A[0] * A[0] */
- "mul x4, x12, x12\n\t"
- "umulh x27, x12, x12\n\t"
- /* A[1] * A[1] */
- "mul x25, x13, x13\n\t"
- "umulh x26, x13, x13\n\t"
- "adds x5, x5, x27\n\t"
- "adcs x6, x6, x25\n\t"
- "adc x27, x26, xzr\n\t"
- /* A[2] * A[2] */
- "mul x25, x14, x14\n\t"
- "umulh x26, x14, x14\n\t"
- "adds x7, x7, x27\n\t"
- "adcs x8, x8, x25\n\t"
- "adc x27, x26, xzr\n\t"
- /* A[3] * A[3] */
- "mul x25, x15, x15\n\t"
- "umulh x26, x15, x15\n\t"
- "adds x9, x9, x27\n\t"
- "adcs x10, x10, x25\n\t"
- "adc x11, x11, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x11, x11, x10, #63\n\t"
- "extr x10, x10, x9, #63\n\t"
- "extr x9, x9, x8, #63\n\t"
- "extr x8, x8, x7, #63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x8\n\t"
- "umulh x8, x25, x8\n\t"
- "adds x4, x4, x26\n\t"
- "mul x26, x25, x9\n\t"
- "umulh x9, x25, x9\n\t"
- "adcs x5, x5, x26\n\t"
- "mul x26, x25, x10\n\t"
- "umulh x10, x25, x10\n\t"
- "adcs x6, x6, x26\n\t"
- "mul x26, x25, x11\n\t"
- "umulh x27, x25, x11\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x5, x5, x8\n\t"
- "adcs x6, x6, x9\n\t"
- "adcs x7, x7, x10\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x7, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x7, asr 63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Store */
- "stp x4, x5, [x0]\n\t"
- "stp x6, x7, [x0, #16]\n\t"
- "ldr x0, [x29, #32]\n\t"
- "ldr x1, [x29, #56]\n\t"
- /* Square */
- "ldp x21, x22, [x1]\n\t"
- "ldp x23, x24, [x1, #16]\n\t"
- /* A[0] * A[1] */
- "mul x9, x21, x22\n\t"
- "umulh x10, x21, x22\n\t"
- /* A[0] * A[2] */
- "mul x25, x21, x23\n\t"
- "umulh x11, x21, x23\n\t"
- "adds x10, x10, x25\n\t"
- "adc x11, x11, xzr\n\t"
- /* A[0] * A[3] */
- "mul x25, x21, x24\n\t"
- "umulh x16, x21, x24\n\t"
- "adds x11, x11, x25\n\t"
- "adc x16, x16, xzr\n\t"
- /* A[1] * A[2] */
- "mul x25, x22, x23\n\t"
- "umulh x26, x22, x23\n\t"
- "adds x11, x11, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, xzr, xzr\n\t"
- /* A[1] * A[3] */
- "mul x25, x22, x24\n\t"
- "umulh x26, x22, x24\n\t"
- "adds x16, x16, x25\n\t"
- "adc x17, x17, x26\n\t"
- /* A[2] * A[3] */
- "mul x25, x23, x24\n\t"
- "umulh x19, x23, x24\n\t"
- "adds x17, x17, x25\n\t"
- "adc x19, x19, xzr\n\t"
- /* Double */
- "adds x9, x9, x9\n\t"
- "adcs x10, x10, x10\n\t"
- "adcs x11, x11, x11\n\t"
- "adcs x16, x16, x16\n\t"
- "adcs x17, x17, x17\n\t"
- "adcs x19, x19, x19\n\t"
- "adc x20, xzr, xzr\n\t"
- /* A[0] * A[0] */
- "mul x8, x21, x21\n\t"
- "umulh x27, x21, x21\n\t"
- /* A[1] * A[1] */
- "mul x25, x22, x22\n\t"
- "umulh x26, x22, x22\n\t"
- "adds x9, x9, x27\n\t"
- "adcs x10, x10, x25\n\t"
- "adc x27, x26, xzr\n\t"
- /* A[2] * A[2] */
- "mul x25, x23, x23\n\t"
- "umulh x26, x23, x23\n\t"
- "adds x11, x11, x27\n\t"
- "adcs x16, x16, x25\n\t"
- "adc x27, x26, xzr\n\t"
- /* A[3] * A[3] */
- "mul x25, x24, x24\n\t"
- "umulh x26, x24, x24\n\t"
- "adds x17, x17, x27\n\t"
- "adcs x19, x19, x25\n\t"
- "adc x20, x20, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x20, x20, x19, #63\n\t"
- "extr x19, x19, x17, #63\n\t"
- "extr x17, x17, x16, #63\n\t"
- "extr x16, x16, x11, #63\n\t"
- "and x11, x11, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x16\n\t"
- "umulh x16, x25, x16\n\t"
- "adds x8, x8, x26\n\t"
- "mul x26, x25, x17\n\t"
- "umulh x17, x25, x17\n\t"
- "adcs x9, x9, x26\n\t"
- "mul x26, x25, x19\n\t"
- "umulh x19, x25, x19\n\t"
- "adcs x10, x10, x26\n\t"
- "mul x26, x25, x20\n\t"
- "umulh x27, x25, x20\n\t"
- "adcs x11, x11, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x9, x9, x16\n\t"
- "adcs x10, x10, x17\n\t"
- "adcs x11, x11, x19\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x11, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x11, x11, #0x7fffffffffffffff\n\t"
- "adds x8, x8, x27\n\t"
- "adcs x9, x9, xzr\n\t"
- "adcs x10, x10, xzr\n\t"
- "adc x11, x11, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x11, asr 63\n\t"
- "and x11, x11, #0x7fffffffffffffff\n\t"
- "adds x8, x8, x27\n\t"
- "adcs x9, x9, xzr\n\t"
- "adcs x10, x10, xzr\n\t"
- "adc x11, x11, xzr\n\t"
- /* Store */
- "stp x8, x9, [x0]\n\t"
- "stp x10, x11, [x0, #16]\n\t"
- "ldr x0, [x29, #24]\n\t"
- /* Add */
- "adds x12, x12, x21\n\t"
- "adcs x13, x13, x22\n\t"
- "adcs x14, x14, x23\n\t"
- "adc x15, x15, x24\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x15, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x12, x12, x25\n\t"
- "sbcs x13, x13, x28\n\t"
- "sbcs x14, x14, x28\n\t"
- "sbc x15, x15, x26\n\t"
- "ldr x0, [x29, #40]\n\t"
- /* Square */
- /* A[0] * A[1] */
- "mul x17, x12, x13\n\t"
- "umulh x19, x12, x13\n\t"
- /* A[0] * A[2] */
- "mul x25, x12, x14\n\t"
- "umulh x20, x12, x14\n\t"
- "adds x19, x19, x25\n\t"
- "adc x20, x20, xzr\n\t"
- /* A[0] * A[3] */
- "mul x25, x12, x15\n\t"
- "umulh x21, x12, x15\n\t"
- "adds x20, x20, x25\n\t"
- "adc x21, x21, xzr\n\t"
- /* A[1] * A[2] */
- "mul x25, x13, x14\n\t"
- "umulh x26, x13, x14\n\t"
- "adds x20, x20, x25\n\t"
- "adcs x21, x21, x26\n\t"
- "adc x22, xzr, xzr\n\t"
- /* A[1] * A[3] */
- "mul x25, x13, x15\n\t"
- "umulh x26, x13, x15\n\t"
- "adds x21, x21, x25\n\t"
- "adc x22, x22, x26\n\t"
- /* A[2] * A[3] */
- "mul x25, x14, x15\n\t"
- "umulh x23, x14, x15\n\t"
- "adds x22, x22, x25\n\t"
- "adc x23, x23, xzr\n\t"
- /* Double */
- "adds x17, x17, x17\n\t"
- "adcs x19, x19, x19\n\t"
- "adcs x20, x20, x20\n\t"
- "adcs x21, x21, x21\n\t"
- "adcs x22, x22, x22\n\t"
- "adcs x23, x23, x23\n\t"
- "adc x24, xzr, xzr\n\t"
- /* A[0] * A[0] */
- "mul x16, x12, x12\n\t"
- "umulh x27, x12, x12\n\t"
- /* A[1] * A[1] */
- "mul x25, x13, x13\n\t"
- "umulh x26, x13, x13\n\t"
- "adds x17, x17, x27\n\t"
- "adcs x19, x19, x25\n\t"
- "adc x27, x26, xzr\n\t"
- /* A[2] * A[2] */
- "mul x25, x14, x14\n\t"
- "umulh x26, x14, x14\n\t"
- "adds x20, x20, x27\n\t"
- "adcs x21, x21, x25\n\t"
- "adc x27, x26, xzr\n\t"
- /* A[3] * A[3] */
- "mul x25, x15, x15\n\t"
- "umulh x26, x15, x15\n\t"
- "adds x22, x22, x27\n\t"
- "adcs x23, x23, x25\n\t"
- "adc x24, x24, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x24, x24, x23, #63\n\t"
- "extr x23, x23, x22, #63\n\t"
- "extr x22, x22, x21, #63\n\t"
- "extr x21, x21, x20, #63\n\t"
- "and x20, x20, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x21\n\t"
- "umulh x21, x25, x21\n\t"
- "adds x16, x16, x26\n\t"
- "mul x26, x25, x22\n\t"
- "umulh x22, x25, x22\n\t"
- "adcs x17, x17, x26\n\t"
- "mul x26, x25, x23\n\t"
- "umulh x23, x25, x23\n\t"
- "adcs x19, x19, x26\n\t"
- "mul x26, x25, x24\n\t"
- "umulh x27, x25, x24\n\t"
- "adcs x20, x20, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x17, x17, x21\n\t"
- "adcs x19, x19, x22\n\t"
- "adcs x20, x20, x23\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x20, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x20, x20, #0x7fffffffffffffff\n\t"
- "adds x16, x16, x27\n\t"
- "adcs x17, x17, xzr\n\t"
- "adcs x19, x19, xzr\n\t"
- "adc x20, x20, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x20, asr 63\n\t"
- "and x20, x20, #0x7fffffffffffffff\n\t"
- "adds x16, x16, x27\n\t"
- "adcs x17, x17, xzr\n\t"
- "adcs x19, x19, xzr\n\t"
- "adc x20, x20, xzr\n\t"
- /* Store */
- "stp x16, x17, [x0]\n\t"
- "stp x19, x20, [x0, #16]\n\t"
- "ldr x0, [x29, #24]\n\t"
- "ldr x1, [x29, #32]\n\t"
- /* Add */
- "adds x12, x8, x4\n\t"
- "adcs x13, x9, x5\n\t"
- "adcs x14, x10, x6\n\t"
- "adc x15, x11, x7\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x15, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x12, x12, x25\n\t"
- "sbcs x13, x13, x28\n\t"
- "sbcs x14, x14, x28\n\t"
- "sbc x15, x15, x26\n\t"
- /* Sub */
- "subs x21, x8, x4\n\t"
- "sbcs x22, x9, x5\n\t"
- "sbcs x23, x10, x6\n\t"
- "sbcs x24, x11, x7\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x21, x21, x25\n\t"
- "adcs x22, x22, x28\n\t"
- "adcs x23, x23, x28\n\t"
- "adc x24, x24, x26\n\t"
- "stp x12, x13, [x0]\n\t"
- "stp x14, x15, [x0, #16]\n\t"
- "stp x21, x22, [x1]\n\t"
- "stp x23, x24, [x1, #16]\n\t"
- "ldr x0, [x29, #16]\n\t"
- /* Sub */
- "subs x16, x16, x12\n\t"
- "sbcs x17, x17, x13\n\t"
- "sbcs x19, x19, x14\n\t"
- "sbcs x20, x20, x15\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x28\n\t"
- "adcs x19, x19, x28\n\t"
- "adc x20, x20, x26\n\t"
- "stp x16, x17, [x0]\n\t"
- "stp x19, x20, [x0, #16]\n\t"
- "ldr x0, [x29, #40]\n\t"
- "ldr x1, [x29, #64]\n\t"
- /* Square * 2 */
- "ldp x12, x13, [x1]\n\t"
- "ldp x14, x15, [x1, #16]\n\t"
- /* A[0] * A[1] */
- "mul x5, x12, x13\n\t"
- "umulh x6, x12, x13\n\t"
- /* A[0] * A[2] */
- "mul x25, x12, x14\n\t"
- "umulh x7, x12, x14\n\t"
- "adds x6, x6, x25\n\t"
- "adc x7, x7, xzr\n\t"
- /* A[0] * A[3] */
- "mul x25, x12, x15\n\t"
- "umulh x8, x12, x15\n\t"
- "adds x7, x7, x25\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[1] * A[2] */
- "mul x25, x13, x14\n\t"
- "umulh x26, x13, x14\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[1] * A[3] */
- "mul x25, x13, x15\n\t"
- "umulh x26, x13, x15\n\t"
- "adds x8, x8, x25\n\t"
- "adc x9, x9, x26\n\t"
- /* A[2] * A[3] */
- "mul x25, x14, x15\n\t"
- "umulh x10, x14, x15\n\t"
- "adds x9, x9, x25\n\t"
- "adc x10, x10, xzr\n\t"
- /* Double */
- "adds x5, x5, x5\n\t"
- "adcs x6, x6, x6\n\t"
- "adcs x7, x7, x7\n\t"
- "adcs x8, x8, x8\n\t"
- "adcs x9, x9, x9\n\t"
- "adcs x10, x10, x10\n\t"
- "adc x11, xzr, xzr\n\t"
- /* A[0] * A[0] */
- "mul x4, x12, x12\n\t"
- "umulh x28, x12, x12\n\t"
- /* A[1] * A[1] */
- "mul x25, x13, x13\n\t"
- "umulh x26, x13, x13\n\t"
- "adds x5, x5, x28\n\t"
- "adcs x6, x6, x25\n\t"
- "adc x28, x26, xzr\n\t"
- /* A[2] * A[2] */
- "mul x25, x14, x14\n\t"
- "umulh x26, x14, x14\n\t"
- "adds x7, x7, x28\n\t"
- "adcs x8, x8, x25\n\t"
- "adc x28, x26, xzr\n\t"
- /* A[3] * A[3] */
- "mul x25, x15, x15\n\t"
- "umulh x26, x15, x15\n\t"
- "adds x9, x9, x28\n\t"
- "adcs x10, x10, x25\n\t"
- "adc x11, x11, x26\n\t"
- /* Double and Reduce */
- "mov x25, #0x169\n\t"
- /* Move top half into t4-t7 and remove top bit from t3 */
- "lsr x28, x11, #61\n\t"
- "extr x11, x11, x10, #62\n\t"
- "extr x10, x10, x9, #62\n\t"
- "extr x9, x9, x8, #62\n\t"
- "extr x8, x8, x7, #62\n\t"
- "extr x7, x7, x6, #63\n\t"
- "extr x6, x6, x5, #63\n\t"
- "extr x5, x5, x4, #63\n\t"
- "lsl x4, x4, #1\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- /* Two left, only one right */
- "and x11, x11, #0x7fffffffffffffff\n\t"
- /* Multiply top bits by 19*19 */
- "mul x28, x28, x25\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x8\n\t"
- "umulh x8, x25, x8\n\t"
- "adds x4, x4, x26\n\t"
- "mul x26, x25, x9\n\t"
- "umulh x9, x25, x9\n\t"
- "adcs x5, x5, x26\n\t"
- "mul x26, x25, x10\n\t"
- "umulh x10, x25, x10\n\t"
- "adcs x6, x6, x26\n\t"
- "mul x26, x25, x11\n\t"
- "umulh x27, x25, x11\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x4, x4, x28\n\t"
- "adcs x5, x5, x8\n\t"
- "adcs x6, x6, x9\n\t"
- "adcs x7, x7, x10\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x7, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x7, asr 63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #40]\n\t"
- /* Sub */
- "subs x4, x4, x21\n\t"
- "sbcs x5, x5, x22\n\t"
- "sbcs x6, x6, x23\n\t"
- "sbcs x7, x7, x24\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x4, x4, x25\n\t"
- "adcs x5, x5, x28\n\t"
- "adcs x6, x6, x28\n\t"
- "adc x7, x7, x26\n\t"
- "stp x4, x5, [x0]\n\t"
- "stp x6, x7, [x0, #16]\n\t"
- "ldp x29, x30, [sp], #0x50\n\t"
- : [rx] "+r" (rx), [ry] "+r" (ry), [rz] "+r" (rz), [rt] "+r" (rt), [px] "+r" (px), [py] "+r" (py), [pz] "+r" (pz)
- :
- : "memory", "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27", "x28"
- );
-}
-
-void fe_ge_madd(fe rx, fe ry, fe rz, fe rt, const fe px, const fe py, const fe pz, const fe pt, const fe qxy2d, const fe qyplusx, const fe qyminusx)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-80]!\n\t"
- "add x29, sp, #0\n\t"
- "str %x[rx], [x29, #16]\n\t"
- "str %x[ry], [x29, #24]\n\t"
- "str %x[rz], [x29, #32]\n\t"
- "str %x[rt], [x29, #40]\n\t"
- "str %x[px], [x29, #48]\n\t"
- "str %x[py], [x29, #56]\n\t"
- "str %x[pz], [x29, #64]\n\t"
- "str %x[pt], [x29, #72]\n\t"
- "ldr x2, [x29, #56]\n\t"
- "ldr x3, [x29, #48]\n\t"
- /* Add */
- "ldp x12, x13, [x2]\n\t"
- "ldp x14, x15, [x2, #16]\n\t"
- "ldp x16, x17, [x3]\n\t"
- "ldp x19, x20, [x3, #16]\n\t"
- "adds x4, x12, x16\n\t"
- "adcs x5, x13, x17\n\t"
- "adcs x6, x14, x19\n\t"
- "adc x7, x15, x20\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x7, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x4, x4, x25\n\t"
- "sbcs x5, x5, x28\n\t"
- "sbcs x6, x6, x28\n\t"
- "sbc x7, x7, x26\n\t"
- /* Sub */
- "subs x8, x12, x16\n\t"
- "sbcs x9, x13, x17\n\t"
- "sbcs x10, x14, x19\n\t"
- "sbcs x11, x15, x20\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x28\n\t"
- "adcs x10, x10, x28\n\t"
- "adc x11, x11, x26\n\t"
- "ldr x0, [x29, #32]\n\t"
- "ldr x2, [x29, #168]\n\t"
- /* Multiply */
- "ldp x21, x22, [x2]\n\t"
- "ldp x23, x24, [x2, #16]\n\t"
- /* A[0] * B[0] */
- "mul x12, x4, x21\n\t"
- "umulh x13, x4, x21\n\t"
- /* A[0] * B[1] */
- "mul x25, x4, x22\n\t"
- "umulh x14, x4, x22\n\t"
- "adds x13, x13, x25\n\t"
- "adc x14, x14, xzr\n\t"
- /* A[1] * B[0] */
- "mul x25, x5, x21\n\t"
- "umulh x26, x5, x21\n\t"
- "adds x13, x13, x25\n\t"
- "adcs x14, x14, x26\n\t"
- "adc x15, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x25, x4, x23\n\t"
- "umulh x26, x4, x23\n\t"
- "adds x14, x14, x25\n\t"
- "adc x15, x15, x26\n\t"
- /* A[1] * B[1] */
- "mul x25, x5, x22\n\t"
- "umulh x26, x5, x22\n\t"
- "adds x14, x14, x25\n\t"
- "adcs x15, x15, x26\n\t"
- "adc x16, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x25, x6, x21\n\t"
- "umulh x26, x6, x21\n\t"
- "adds x14, x14, x25\n\t"
- "adcs x15, x15, x26\n\t"
- "adc x16, x16, xzr\n\t"
- /* A[0] * B[3] */
- "mul x25, x4, x24\n\t"
- "umulh x26, x4, x24\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x25, x5, x23\n\t"
- "umulh x26, x5, x23\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[2] * B[1] */
- "mul x25, x6, x22\n\t"
- "umulh x26, x6, x22\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[3] * B[0] */
- "mul x25, x7, x21\n\t"
- "umulh x26, x7, x21\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[1] * B[3] */
- "mul x25, x5, x24\n\t"
- "umulh x26, x5, x24\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x25, x6, x23\n\t"
- "umulh x26, x6, x23\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[3] * B[1] */
- "mul x25, x7, x22\n\t"
- "umulh x26, x7, x22\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[2] * B[3] */
- "mul x25, x6, x24\n\t"
- "umulh x26, x6, x24\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x25, x7, x23\n\t"
- "umulh x26, x7, x23\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, x20, xzr\n\t"
- /* A[3] * B[3] */
- "mul x25, x7, x24\n\t"
- "umulh x26, x7, x24\n\t"
- "adds x19, x19, x25\n\t"
- "adc x20, x20, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x20, x20, x19, #63\n\t"
- "extr x19, x19, x17, #63\n\t"
- "extr x17, x17, x16, #63\n\t"
- "extr x16, x16, x15, #63\n\t"
- "and x15, x15, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x16\n\t"
- "umulh x16, x25, x16\n\t"
- "adds x12, x12, x26\n\t"
- "mul x26, x25, x17\n\t"
- "umulh x17, x25, x17\n\t"
- "adcs x13, x13, x26\n\t"
- "mul x26, x25, x19\n\t"
- "umulh x19, x25, x19\n\t"
- "adcs x14, x14, x26\n\t"
- "mul x26, x25, x20\n\t"
- "umulh x27, x25, x20\n\t"
- "adcs x15, x15, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x13, x13, x16\n\t"
- "adcs x14, x14, x17\n\t"
- "adcs x15, x15, x19\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x15, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x15, x15, #0x7fffffffffffffff\n\t"
- "adds x12, x12, x27\n\t"
- "adcs x13, x13, xzr\n\t"
- "adcs x14, x14, xzr\n\t"
- "adc x15, x15, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x15, asr 63\n\t"
- "and x15, x15, #0x7fffffffffffffff\n\t"
- "adds x12, x12, x27\n\t"
- "adcs x13, x13, xzr\n\t"
- "adcs x14, x14, xzr\n\t"
- "adc x15, x15, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #24]\n\t"
- "ldr x1, [x29, #176]\n\t"
- /* Multiply */
- "ldp x21, x22, [x1]\n\t"
- "ldp x23, x24, [x1, #16]\n\t"
- /* A[0] * B[0] */
- "mul x4, x8, x21\n\t"
- "umulh x5, x8, x21\n\t"
- /* A[0] * B[1] */
- "mul x25, x8, x22\n\t"
- "umulh x6, x8, x22\n\t"
- "adds x5, x5, x25\n\t"
- "adc x6, x6, xzr\n\t"
- /* A[1] * B[0] */
- "mul x25, x9, x21\n\t"
- "umulh x26, x9, x21\n\t"
- "adds x5, x5, x25\n\t"
- "adcs x6, x6, x26\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x25, x8, x23\n\t"
- "umulh x26, x8, x23\n\t"
- "adds x6, x6, x25\n\t"
- "adc x7, x7, x26\n\t"
- /* A[1] * B[1] */
- "mul x25, x9, x22\n\t"
- "umulh x26, x9, x22\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x16, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x25, x10, x21\n\t"
- "umulh x26, x10, x21\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x16, x16, xzr\n\t"
- /* A[0] * B[3] */
- "mul x25, x8, x24\n\t"
- "umulh x26, x8, x24\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x25, x9, x23\n\t"
- "umulh x26, x9, x23\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[2] * B[1] */
- "mul x25, x10, x22\n\t"
- "umulh x26, x10, x22\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[3] * B[0] */
- "mul x25, x11, x21\n\t"
- "umulh x26, x11, x21\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[1] * B[3] */
- "mul x25, x9, x24\n\t"
- "umulh x26, x9, x24\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x25, x10, x23\n\t"
- "umulh x26, x10, x23\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[3] * B[1] */
- "mul x25, x11, x22\n\t"
- "umulh x26, x11, x22\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[2] * B[3] */
- "mul x25, x10, x24\n\t"
- "umulh x26, x10, x24\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x25, x11, x23\n\t"
- "umulh x26, x11, x23\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, x20, xzr\n\t"
- /* A[3] * B[3] */
- "mul x25, x11, x24\n\t"
- "umulh x26, x11, x24\n\t"
- "adds x19, x19, x25\n\t"
- "adc x20, x20, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x20, x20, x19, #63\n\t"
- "extr x19, x19, x17, #63\n\t"
- "extr x17, x17, x16, #63\n\t"
- "extr x16, x16, x7, #63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x16\n\t"
- "umulh x16, x25, x16\n\t"
- "adds x4, x4, x26\n\t"
- "mul x26, x25, x17\n\t"
- "umulh x17, x25, x17\n\t"
- "adcs x5, x5, x26\n\t"
- "mul x26, x25, x19\n\t"
- "umulh x19, x25, x19\n\t"
- "adcs x6, x6, x26\n\t"
- "mul x26, x25, x20\n\t"
- "umulh x27, x25, x20\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x5, x5, x16\n\t"
- "adcs x6, x6, x17\n\t"
- "adcs x7, x7, x19\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x7, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x7, asr 63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #24]\n\t"
- "ldr x1, [x29, #16]\n\t"
- /* Add */
- "adds x8, x12, x4\n\t"
- "adcs x9, x13, x5\n\t"
- "adcs x10, x14, x6\n\t"
- "adc x11, x15, x7\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x11, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x8, x8, x25\n\t"
- "sbcs x9, x9, x28\n\t"
- "sbcs x10, x10, x28\n\t"
- "sbc x11, x11, x26\n\t"
- /* Sub */
- "subs x16, x12, x4\n\t"
- "sbcs x17, x13, x5\n\t"
- "sbcs x19, x14, x6\n\t"
- "sbcs x20, x15, x7\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x28\n\t"
- "adcs x19, x19, x28\n\t"
- "adc x20, x20, x26\n\t"
- "stp x8, x9, [x0]\n\t"
- "stp x10, x11, [x0, #16]\n\t"
- "stp x16, x17, [x1]\n\t"
- "stp x19, x20, [x1, #16]\n\t"
- "ldr x0, [x29, #40]\n\t"
- "ldr x1, [x29, #160]\n\t"
- "ldr x3, [x29, #72]\n\t"
- /* Multiply */
- "ldp x16, x17, [x1]\n\t"
- "ldp x19, x20, [x1, #16]\n\t"
- "ldp x21, x22, [x3]\n\t"
- "ldp x23, x24, [x3, #16]\n\t"
- /* A[0] * B[0] */
- "mul x4, x16, x21\n\t"
- "umulh x5, x16, x21\n\t"
- /* A[0] * B[1] */
- "mul x25, x16, x22\n\t"
- "umulh x6, x16, x22\n\t"
- "adds x5, x5, x25\n\t"
- "adc x6, x6, xzr\n\t"
- /* A[1] * B[0] */
- "mul x25, x17, x21\n\t"
- "umulh x26, x17, x21\n\t"
- "adds x5, x5, x25\n\t"
- "adcs x6, x6, x26\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x25, x16, x23\n\t"
- "umulh x26, x16, x23\n\t"
- "adds x6, x6, x25\n\t"
- "adc x7, x7, x26\n\t"
- /* A[1] * B[1] */
- "mul x25, x17, x22\n\t"
- "umulh x26, x17, x22\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x8, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x25, x19, x21\n\t"
- "umulh x26, x19, x21\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[0] * B[3] */
- "mul x25, x16, x24\n\t"
- "umulh x26, x16, x24\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x25, x17, x23\n\t"
- "umulh x26, x17, x23\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[2] * B[1] */
- "mul x25, x19, x22\n\t"
- "umulh x26, x19, x22\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[3] * B[0] */
- "mul x25, x20, x21\n\t"
- "umulh x26, x20, x21\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[1] * B[3] */
- "mul x25, x17, x24\n\t"
- "umulh x26, x17, x24\n\t"
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x26\n\t"
- "adc x10, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x25, x19, x23\n\t"
- "umulh x26, x19, x23\n\t"
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x26\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[3] * B[1] */
- "mul x25, x20, x22\n\t"
- "umulh x26, x20, x22\n\t"
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x26\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[2] * B[3] */
- "mul x25, x19, x24\n\t"
- "umulh x26, x19, x24\n\t"
- "adds x9, x9, x25\n\t"
- "adcs x10, x10, x26\n\t"
- "adc x11, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x25, x20, x23\n\t"
- "umulh x26, x20, x23\n\t"
- "adds x9, x9, x25\n\t"
- "adcs x10, x10, x26\n\t"
- "adc x11, x11, xzr\n\t"
- /* A[3] * B[3] */
- "mul x25, x20, x24\n\t"
- "umulh x26, x20, x24\n\t"
- "adds x10, x10, x25\n\t"
- "adc x11, x11, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x11, x11, x10, #63\n\t"
- "extr x10, x10, x9, #63\n\t"
- "extr x9, x9, x8, #63\n\t"
- "extr x8, x8, x7, #63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x8\n\t"
- "umulh x8, x25, x8\n\t"
- "adds x4, x4, x26\n\t"
- "mul x26, x25, x9\n\t"
- "umulh x9, x25, x9\n\t"
- "adcs x5, x5, x26\n\t"
- "mul x26, x25, x10\n\t"
- "umulh x10, x25, x10\n\t"
- "adcs x6, x6, x26\n\t"
- "mul x26, x25, x11\n\t"
- "umulh x27, x25, x11\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x5, x5, x8\n\t"
- "adcs x6, x6, x9\n\t"
- "adcs x7, x7, x10\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x7, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x7, asr 63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #32]\n\t"
- "ldr x1, [x29, #64]\n\t"
- /* Double */
- "ldp x8, x9, [x1]\n\t"
- "ldp x10, x11, [x1, #16]\n\t"
- "adds x8, x8, x8\n\t"
- "adcs x9, x9, x9\n\t"
- "adcs x10, x10, x10\n\t"
- "adc x11, x11, x11\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x11, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x8, x8, x25\n\t"
- "sbcs x9, x9, x28\n\t"
- "sbcs x10, x10, x28\n\t"
- "sbc x11, x11, x26\n\t"
- "ldr x1, [x29, #40]\n\t"
- /* Add */
- "adds x12, x8, x4\n\t"
- "adcs x13, x9, x5\n\t"
- "adcs x14, x10, x6\n\t"
- "adc x15, x11, x7\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x15, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x12, x12, x25\n\t"
- "sbcs x13, x13, x28\n\t"
- "sbcs x14, x14, x28\n\t"
- "sbc x15, x15, x26\n\t"
- /* Sub */
- "subs x16, x8, x4\n\t"
- "sbcs x17, x9, x5\n\t"
- "sbcs x19, x10, x6\n\t"
- "sbcs x20, x11, x7\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x28\n\t"
- "adcs x19, x19, x28\n\t"
- "adc x20, x20, x26\n\t"
- "stp x12, x13, [x0]\n\t"
- "stp x14, x15, [x0, #16]\n\t"
- "stp x16, x17, [x1]\n\t"
- "stp x19, x20, [x1, #16]\n\t"
- "ldp x29, x30, [sp], #0x50\n\t"
- : [rx] "+r" (rx), [ry] "+r" (ry), [rz] "+r" (rz), [rt] "+r" (rt), [px] "+r" (px), [py] "+r" (py), [pz] "+r" (pz), [pt] "+r" (pt)
- :
- : "memory", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27", "x28"
- );
- (void)qxy2d;
- (void)qyplusx;
- (void)qyminusx;
-}
-
-void fe_ge_msub(fe rx, fe ry, fe rz, fe rt, const fe px, const fe py, const fe pz, const fe pt, const fe qxy2d, const fe qyplusx, const fe qyminusx)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-80]!\n\t"
- "add x29, sp, #0\n\t"
- "str %x[rx], [x29, #16]\n\t"
- "str %x[ry], [x29, #24]\n\t"
- "str %x[rz], [x29, #32]\n\t"
- "str %x[rt], [x29, #40]\n\t"
- "str %x[px], [x29, #48]\n\t"
- "str %x[py], [x29, #56]\n\t"
- "str %x[pz], [x29, #64]\n\t"
- "str %x[pt], [x29, #72]\n\t"
- "ldr x2, [x29, #56]\n\t"
- "ldr x3, [x29, #48]\n\t"
- /* Add */
- "ldp x12, x13, [x2]\n\t"
- "ldp x14, x15, [x2, #16]\n\t"
- "ldp x16, x17, [x3]\n\t"
- "ldp x19, x20, [x3, #16]\n\t"
- "adds x4, x12, x16\n\t"
- "adcs x5, x13, x17\n\t"
- "adcs x6, x14, x19\n\t"
- "adc x7, x15, x20\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x7, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x4, x4, x25\n\t"
- "sbcs x5, x5, x28\n\t"
- "sbcs x6, x6, x28\n\t"
- "sbc x7, x7, x26\n\t"
- /* Sub */
- "subs x8, x12, x16\n\t"
- "sbcs x9, x13, x17\n\t"
- "sbcs x10, x14, x19\n\t"
- "sbcs x11, x15, x20\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x28\n\t"
- "adcs x10, x10, x28\n\t"
- "adc x11, x11, x26\n\t"
- "ldr x0, [x29, #32]\n\t"
- "ldr x2, [x29, #176]\n\t"
- /* Multiply */
- "ldp x21, x22, [x2]\n\t"
- "ldp x23, x24, [x2, #16]\n\t"
- /* A[0] * B[0] */
- "mul x12, x4, x21\n\t"
- "umulh x13, x4, x21\n\t"
- /* A[0] * B[1] */
- "mul x25, x4, x22\n\t"
- "umulh x14, x4, x22\n\t"
- "adds x13, x13, x25\n\t"
- "adc x14, x14, xzr\n\t"
- /* A[1] * B[0] */
- "mul x25, x5, x21\n\t"
- "umulh x26, x5, x21\n\t"
- "adds x13, x13, x25\n\t"
- "adcs x14, x14, x26\n\t"
- "adc x15, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x25, x4, x23\n\t"
- "umulh x26, x4, x23\n\t"
- "adds x14, x14, x25\n\t"
- "adc x15, x15, x26\n\t"
- /* A[1] * B[1] */
- "mul x25, x5, x22\n\t"
- "umulh x26, x5, x22\n\t"
- "adds x14, x14, x25\n\t"
- "adcs x15, x15, x26\n\t"
- "adc x16, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x25, x6, x21\n\t"
- "umulh x26, x6, x21\n\t"
- "adds x14, x14, x25\n\t"
- "adcs x15, x15, x26\n\t"
- "adc x16, x16, xzr\n\t"
- /* A[0] * B[3] */
- "mul x25, x4, x24\n\t"
- "umulh x26, x4, x24\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x25, x5, x23\n\t"
- "umulh x26, x5, x23\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[2] * B[1] */
- "mul x25, x6, x22\n\t"
- "umulh x26, x6, x22\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[3] * B[0] */
- "mul x25, x7, x21\n\t"
- "umulh x26, x7, x21\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[1] * B[3] */
- "mul x25, x5, x24\n\t"
- "umulh x26, x5, x24\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x25, x6, x23\n\t"
- "umulh x26, x6, x23\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[3] * B[1] */
- "mul x25, x7, x22\n\t"
- "umulh x26, x7, x22\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[2] * B[3] */
- "mul x25, x6, x24\n\t"
- "umulh x26, x6, x24\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x25, x7, x23\n\t"
- "umulh x26, x7, x23\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, x20, xzr\n\t"
- /* A[3] * B[3] */
- "mul x25, x7, x24\n\t"
- "umulh x26, x7, x24\n\t"
- "adds x19, x19, x25\n\t"
- "adc x20, x20, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x20, x20, x19, #63\n\t"
- "extr x19, x19, x17, #63\n\t"
- "extr x17, x17, x16, #63\n\t"
- "extr x16, x16, x15, #63\n\t"
- "and x15, x15, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x16\n\t"
- "umulh x16, x25, x16\n\t"
- "adds x12, x12, x26\n\t"
- "mul x26, x25, x17\n\t"
- "umulh x17, x25, x17\n\t"
- "adcs x13, x13, x26\n\t"
- "mul x26, x25, x19\n\t"
- "umulh x19, x25, x19\n\t"
- "adcs x14, x14, x26\n\t"
- "mul x26, x25, x20\n\t"
- "umulh x27, x25, x20\n\t"
- "adcs x15, x15, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x13, x13, x16\n\t"
- "adcs x14, x14, x17\n\t"
- "adcs x15, x15, x19\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x15, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x15, x15, #0x7fffffffffffffff\n\t"
- "adds x12, x12, x27\n\t"
- "adcs x13, x13, xzr\n\t"
- "adcs x14, x14, xzr\n\t"
- "adc x15, x15, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x15, asr 63\n\t"
- "and x15, x15, #0x7fffffffffffffff\n\t"
- "adds x12, x12, x27\n\t"
- "adcs x13, x13, xzr\n\t"
- "adcs x14, x14, xzr\n\t"
- "adc x15, x15, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #24]\n\t"
- "ldr x1, [x29, #168]\n\t"
- /* Multiply */
- "ldp x21, x22, [x1]\n\t"
- "ldp x23, x24, [x1, #16]\n\t"
- /* A[0] * B[0] */
- "mul x4, x8, x21\n\t"
- "umulh x5, x8, x21\n\t"
- /* A[0] * B[1] */
- "mul x25, x8, x22\n\t"
- "umulh x6, x8, x22\n\t"
- "adds x5, x5, x25\n\t"
- "adc x6, x6, xzr\n\t"
- /* A[1] * B[0] */
- "mul x25, x9, x21\n\t"
- "umulh x26, x9, x21\n\t"
- "adds x5, x5, x25\n\t"
- "adcs x6, x6, x26\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x25, x8, x23\n\t"
- "umulh x26, x8, x23\n\t"
- "adds x6, x6, x25\n\t"
- "adc x7, x7, x26\n\t"
- /* A[1] * B[1] */
- "mul x25, x9, x22\n\t"
- "umulh x26, x9, x22\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x16, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x25, x10, x21\n\t"
- "umulh x26, x10, x21\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x16, x16, xzr\n\t"
- /* A[0] * B[3] */
- "mul x25, x8, x24\n\t"
- "umulh x26, x8, x24\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x25, x9, x23\n\t"
- "umulh x26, x9, x23\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[2] * B[1] */
- "mul x25, x10, x22\n\t"
- "umulh x26, x10, x22\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[3] * B[0] */
- "mul x25, x11, x21\n\t"
- "umulh x26, x11, x21\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[1] * B[3] */
- "mul x25, x9, x24\n\t"
- "umulh x26, x9, x24\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x25, x10, x23\n\t"
- "umulh x26, x10, x23\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[3] * B[1] */
- "mul x25, x11, x22\n\t"
- "umulh x26, x11, x22\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[2] * B[3] */
- "mul x25, x10, x24\n\t"
- "umulh x26, x10, x24\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x25, x11, x23\n\t"
- "umulh x26, x11, x23\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, x20, xzr\n\t"
- /* A[3] * B[3] */
- "mul x25, x11, x24\n\t"
- "umulh x26, x11, x24\n\t"
- "adds x19, x19, x25\n\t"
- "adc x20, x20, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x20, x20, x19, #63\n\t"
- "extr x19, x19, x17, #63\n\t"
- "extr x17, x17, x16, #63\n\t"
- "extr x16, x16, x7, #63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x16\n\t"
- "umulh x16, x25, x16\n\t"
- "adds x4, x4, x26\n\t"
- "mul x26, x25, x17\n\t"
- "umulh x17, x25, x17\n\t"
- "adcs x5, x5, x26\n\t"
- "mul x26, x25, x19\n\t"
- "umulh x19, x25, x19\n\t"
- "adcs x6, x6, x26\n\t"
- "mul x26, x25, x20\n\t"
- "umulh x27, x25, x20\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x5, x5, x16\n\t"
- "adcs x6, x6, x17\n\t"
- "adcs x7, x7, x19\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x7, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x7, asr 63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #24]\n\t"
- "ldr x1, [x29, #16]\n\t"
- /* Add */
- "adds x8, x12, x4\n\t"
- "adcs x9, x13, x5\n\t"
- "adcs x10, x14, x6\n\t"
- "adc x11, x15, x7\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x11, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x8, x8, x25\n\t"
- "sbcs x9, x9, x28\n\t"
- "sbcs x10, x10, x28\n\t"
- "sbc x11, x11, x26\n\t"
- /* Sub */
- "subs x16, x12, x4\n\t"
- "sbcs x17, x13, x5\n\t"
- "sbcs x19, x14, x6\n\t"
- "sbcs x20, x15, x7\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x28\n\t"
- "adcs x19, x19, x28\n\t"
- "adc x20, x20, x26\n\t"
- "stp x8, x9, [x0]\n\t"
- "stp x10, x11, [x0, #16]\n\t"
- "stp x16, x17, [x1]\n\t"
- "stp x19, x20, [x1, #16]\n\t"
- "ldr x0, [x29, #40]\n\t"
- "ldr x1, [x29, #160]\n\t"
- "ldr x3, [x29, #72]\n\t"
- /* Multiply */
- "ldp x16, x17, [x1]\n\t"
- "ldp x19, x20, [x1, #16]\n\t"
- "ldp x21, x22, [x3]\n\t"
- "ldp x23, x24, [x3, #16]\n\t"
- /* A[0] * B[0] */
- "mul x4, x16, x21\n\t"
- "umulh x5, x16, x21\n\t"
- /* A[0] * B[1] */
- "mul x25, x16, x22\n\t"
- "umulh x6, x16, x22\n\t"
- "adds x5, x5, x25\n\t"
- "adc x6, x6, xzr\n\t"
- /* A[1] * B[0] */
- "mul x25, x17, x21\n\t"
- "umulh x26, x17, x21\n\t"
- "adds x5, x5, x25\n\t"
- "adcs x6, x6, x26\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x25, x16, x23\n\t"
- "umulh x26, x16, x23\n\t"
- "adds x6, x6, x25\n\t"
- "adc x7, x7, x26\n\t"
- /* A[1] * B[1] */
- "mul x25, x17, x22\n\t"
- "umulh x26, x17, x22\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x8, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x25, x19, x21\n\t"
- "umulh x26, x19, x21\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[0] * B[3] */
- "mul x25, x16, x24\n\t"
- "umulh x26, x16, x24\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x25, x17, x23\n\t"
- "umulh x26, x17, x23\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[2] * B[1] */
- "mul x25, x19, x22\n\t"
- "umulh x26, x19, x22\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[3] * B[0] */
- "mul x25, x20, x21\n\t"
- "umulh x26, x20, x21\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[1] * B[3] */
- "mul x25, x17, x24\n\t"
- "umulh x26, x17, x24\n\t"
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x26\n\t"
- "adc x10, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x25, x19, x23\n\t"
- "umulh x26, x19, x23\n\t"
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x26\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[3] * B[1] */
- "mul x25, x20, x22\n\t"
- "umulh x26, x20, x22\n\t"
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x26\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[2] * B[3] */
- "mul x25, x19, x24\n\t"
- "umulh x26, x19, x24\n\t"
- "adds x9, x9, x25\n\t"
- "adcs x10, x10, x26\n\t"
- "adc x11, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x25, x20, x23\n\t"
- "umulh x26, x20, x23\n\t"
- "adds x9, x9, x25\n\t"
- "adcs x10, x10, x26\n\t"
- "adc x11, x11, xzr\n\t"
- /* A[3] * B[3] */
- "mul x25, x20, x24\n\t"
- "umulh x26, x20, x24\n\t"
- "adds x10, x10, x25\n\t"
- "adc x11, x11, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x11, x11, x10, #63\n\t"
- "extr x10, x10, x9, #63\n\t"
- "extr x9, x9, x8, #63\n\t"
- "extr x8, x8, x7, #63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x8\n\t"
- "umulh x8, x25, x8\n\t"
- "adds x4, x4, x26\n\t"
- "mul x26, x25, x9\n\t"
- "umulh x9, x25, x9\n\t"
- "adcs x5, x5, x26\n\t"
- "mul x26, x25, x10\n\t"
- "umulh x10, x25, x10\n\t"
- "adcs x6, x6, x26\n\t"
- "mul x26, x25, x11\n\t"
- "umulh x27, x25, x11\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x5, x5, x8\n\t"
- "adcs x6, x6, x9\n\t"
- "adcs x7, x7, x10\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x7, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x7, asr 63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #32]\n\t"
- "ldr x1, [x29, #64]\n\t"
- /* Double */
- "ldp x8, x9, [x1]\n\t"
- "ldp x10, x11, [x1, #16]\n\t"
- "adds x8, x8, x8\n\t"
- "adcs x9, x9, x9\n\t"
- "adcs x10, x10, x10\n\t"
- "adc x11, x11, x11\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x11, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x8, x8, x25\n\t"
- "sbcs x9, x9, x28\n\t"
- "sbcs x10, x10, x28\n\t"
- "sbc x11, x11, x26\n\t"
- "ldr x1, [x29, #40]\n\t"
- /* Add */
- "adds x12, x8, x4\n\t"
- "adcs x13, x9, x5\n\t"
- "adcs x14, x10, x6\n\t"
- "adc x15, x11, x7\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x15, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x12, x12, x25\n\t"
- "sbcs x13, x13, x28\n\t"
- "sbcs x14, x14, x28\n\t"
- "sbc x15, x15, x26\n\t"
- /* Sub */
- "subs x16, x8, x4\n\t"
- "sbcs x17, x9, x5\n\t"
- "sbcs x19, x10, x6\n\t"
- "sbcs x20, x11, x7\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x28\n\t"
- "adcs x19, x19, x28\n\t"
- "adc x20, x20, x26\n\t"
- "stp x12, x13, [x1]\n\t"
- "stp x14, x15, [x1, #16]\n\t"
- "stp x16, x17, [x0]\n\t"
- "stp x19, x20, [x0, #16]\n\t"
- "ldp x29, x30, [sp], #0x50\n\t"
- : [rx] "+r" (rx), [ry] "+r" (ry), [rz] "+r" (rz), [rt] "+r" (rt), [px] "+r" (px), [py] "+r" (py), [pz] "+r" (pz), [pt] "+r" (pt)
- :
- : "memory", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27", "x28"
- );
- (void)qxy2d;
- (void)qyplusx;
- (void)qyminusx;
-}
-
-void fe_ge_add(fe rx, fe ry, fe rz, fe rt, const fe px, const fe py, const fe pz, const fe pt, const fe qz, const fe qt2d, const fe qyplusx, const fe qyminusx)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-80]!\n\t"
- "add x29, sp, #0\n\t"
- "str %x[rx], [x29, #16]\n\t"
- "str %x[ry], [x29, #24]\n\t"
- "str %x[rz], [x29, #32]\n\t"
- "str %x[rt], [x29, #40]\n\t"
- "str %x[px], [x29, #48]\n\t"
- "str %x[py], [x29, #56]\n\t"
- "str %x[pz], [x29, #64]\n\t"
- "str %x[pt], [x29, #72]\n\t"
- "ldr x2, [x29, #56]\n\t"
- "ldr x3, [x29, #48]\n\t"
- /* Add */
- "ldp x12, x13, [x2]\n\t"
- "ldp x14, x15, [x2, #16]\n\t"
- "ldp x16, x17, [x3]\n\t"
- "ldp x19, x20, [x3, #16]\n\t"
- "adds x4, x12, x16\n\t"
- "adcs x5, x13, x17\n\t"
- "adcs x6, x14, x19\n\t"
- "adc x7, x15, x20\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x7, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x4, x4, x25\n\t"
- "sbcs x5, x5, x28\n\t"
- "sbcs x6, x6, x28\n\t"
- "sbc x7, x7, x26\n\t"
- /* Sub */
- "subs x8, x12, x16\n\t"
- "sbcs x9, x13, x17\n\t"
- "sbcs x10, x14, x19\n\t"
- "sbcs x11, x15, x20\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x28\n\t"
- "adcs x10, x10, x28\n\t"
- "adc x11, x11, x26\n\t"
- "ldr x0, [x29, #32]\n\t"
- "ldr x2, [x29, #176]\n\t"
- /* Multiply */
- "ldp x21, x22, [x2]\n\t"
- "ldp x23, x24, [x2, #16]\n\t"
- /* A[0] * B[0] */
- "mul x12, x4, x21\n\t"
- "umulh x13, x4, x21\n\t"
- /* A[0] * B[1] */
- "mul x25, x4, x22\n\t"
- "umulh x14, x4, x22\n\t"
- "adds x13, x13, x25\n\t"
- "adc x14, x14, xzr\n\t"
- /* A[1] * B[0] */
- "mul x25, x5, x21\n\t"
- "umulh x26, x5, x21\n\t"
- "adds x13, x13, x25\n\t"
- "adcs x14, x14, x26\n\t"
- "adc x15, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x25, x4, x23\n\t"
- "umulh x26, x4, x23\n\t"
- "adds x14, x14, x25\n\t"
- "adc x15, x15, x26\n\t"
- /* A[1] * B[1] */
- "mul x25, x5, x22\n\t"
- "umulh x26, x5, x22\n\t"
- "adds x14, x14, x25\n\t"
- "adcs x15, x15, x26\n\t"
- "adc x16, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x25, x6, x21\n\t"
- "umulh x26, x6, x21\n\t"
- "adds x14, x14, x25\n\t"
- "adcs x15, x15, x26\n\t"
- "adc x16, x16, xzr\n\t"
- /* A[0] * B[3] */
- "mul x25, x4, x24\n\t"
- "umulh x26, x4, x24\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x25, x5, x23\n\t"
- "umulh x26, x5, x23\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[2] * B[1] */
- "mul x25, x6, x22\n\t"
- "umulh x26, x6, x22\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[3] * B[0] */
- "mul x25, x7, x21\n\t"
- "umulh x26, x7, x21\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[1] * B[3] */
- "mul x25, x5, x24\n\t"
- "umulh x26, x5, x24\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x25, x6, x23\n\t"
- "umulh x26, x6, x23\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[3] * B[1] */
- "mul x25, x7, x22\n\t"
- "umulh x26, x7, x22\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[2] * B[3] */
- "mul x25, x6, x24\n\t"
- "umulh x26, x6, x24\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x25, x7, x23\n\t"
- "umulh x26, x7, x23\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, x20, xzr\n\t"
- /* A[3] * B[3] */
- "mul x25, x7, x24\n\t"
- "umulh x26, x7, x24\n\t"
- "adds x19, x19, x25\n\t"
- "adc x20, x20, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x20, x20, x19, #63\n\t"
- "extr x19, x19, x17, #63\n\t"
- "extr x17, x17, x16, #63\n\t"
- "extr x16, x16, x15, #63\n\t"
- "and x15, x15, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x16\n\t"
- "umulh x16, x25, x16\n\t"
- "adds x12, x12, x26\n\t"
- "mul x26, x25, x17\n\t"
- "umulh x17, x25, x17\n\t"
- "adcs x13, x13, x26\n\t"
- "mul x26, x25, x19\n\t"
- "umulh x19, x25, x19\n\t"
- "adcs x14, x14, x26\n\t"
- "mul x26, x25, x20\n\t"
- "umulh x27, x25, x20\n\t"
- "adcs x15, x15, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x13, x13, x16\n\t"
- "adcs x14, x14, x17\n\t"
- "adcs x15, x15, x19\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x15, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x15, x15, #0x7fffffffffffffff\n\t"
- "adds x12, x12, x27\n\t"
- "adcs x13, x13, xzr\n\t"
- "adcs x14, x14, xzr\n\t"
- "adc x15, x15, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x15, asr 63\n\t"
- "and x15, x15, #0x7fffffffffffffff\n\t"
- "adds x12, x12, x27\n\t"
- "adcs x13, x13, xzr\n\t"
- "adcs x14, x14, xzr\n\t"
- "adc x15, x15, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #24]\n\t"
- "ldr x1, [x29, #184]\n\t"
- /* Multiply */
- "ldp x21, x22, [x1]\n\t"
- "ldp x23, x24, [x1, #16]\n\t"
- /* A[0] * B[0] */
- "mul x4, x8, x21\n\t"
- "umulh x5, x8, x21\n\t"
- /* A[0] * B[1] */
- "mul x25, x8, x22\n\t"
- "umulh x6, x8, x22\n\t"
- "adds x5, x5, x25\n\t"
- "adc x6, x6, xzr\n\t"
- /* A[1] * B[0] */
- "mul x25, x9, x21\n\t"
- "umulh x26, x9, x21\n\t"
- "adds x5, x5, x25\n\t"
- "adcs x6, x6, x26\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x25, x8, x23\n\t"
- "umulh x26, x8, x23\n\t"
- "adds x6, x6, x25\n\t"
- "adc x7, x7, x26\n\t"
- /* A[1] * B[1] */
- "mul x25, x9, x22\n\t"
- "umulh x26, x9, x22\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x16, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x25, x10, x21\n\t"
- "umulh x26, x10, x21\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x16, x16, xzr\n\t"
- /* A[0] * B[3] */
- "mul x25, x8, x24\n\t"
- "umulh x26, x8, x24\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x25, x9, x23\n\t"
- "umulh x26, x9, x23\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[2] * B[1] */
- "mul x25, x10, x22\n\t"
- "umulh x26, x10, x22\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[3] * B[0] */
- "mul x25, x11, x21\n\t"
- "umulh x26, x11, x21\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[1] * B[3] */
- "mul x25, x9, x24\n\t"
- "umulh x26, x9, x24\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x25, x10, x23\n\t"
- "umulh x26, x10, x23\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[3] * B[1] */
- "mul x25, x11, x22\n\t"
- "umulh x26, x11, x22\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[2] * B[3] */
- "mul x25, x10, x24\n\t"
- "umulh x26, x10, x24\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x25, x11, x23\n\t"
- "umulh x26, x11, x23\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, x20, xzr\n\t"
- /* A[3] * B[3] */
- "mul x25, x11, x24\n\t"
- "umulh x26, x11, x24\n\t"
- "adds x19, x19, x25\n\t"
- "adc x20, x20, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x20, x20, x19, #63\n\t"
- "extr x19, x19, x17, #63\n\t"
- "extr x17, x17, x16, #63\n\t"
- "extr x16, x16, x7, #63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x16\n\t"
- "umulh x16, x25, x16\n\t"
- "adds x4, x4, x26\n\t"
- "mul x26, x25, x17\n\t"
- "umulh x17, x25, x17\n\t"
- "adcs x5, x5, x26\n\t"
- "mul x26, x25, x19\n\t"
- "umulh x19, x25, x19\n\t"
- "adcs x6, x6, x26\n\t"
- "mul x26, x25, x20\n\t"
- "umulh x27, x25, x20\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x5, x5, x16\n\t"
- "adcs x6, x6, x17\n\t"
- "adcs x7, x7, x19\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x7, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x7, asr 63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #24]\n\t"
- "ldr x1, [x29, #16]\n\t"
- /* Add */
- "adds x8, x12, x4\n\t"
- "adcs x9, x13, x5\n\t"
- "adcs x10, x14, x6\n\t"
- "adc x11, x15, x7\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x11, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x8, x8, x25\n\t"
- "sbcs x9, x9, x28\n\t"
- "sbcs x10, x10, x28\n\t"
- "sbc x11, x11, x26\n\t"
- /* Sub */
- "subs x16, x12, x4\n\t"
- "sbcs x17, x13, x5\n\t"
- "sbcs x19, x14, x6\n\t"
- "sbcs x20, x15, x7\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x28\n\t"
- "adcs x19, x19, x28\n\t"
- "adc x20, x20, x26\n\t"
- "stp x8, x9, [x0]\n\t"
- "stp x10, x11, [x0, #16]\n\t"
- "stp x16, x17, [x1]\n\t"
- "stp x19, x20, [x1, #16]\n\t"
- "ldr x0, [x29, #48]\n\t"
- "ldr x1, [x29, #64]\n\t"
- "ldr x2, [x29, #160]\n\t"
- /* Multiply */
- "ldp x12, x13, [x1]\n\t"
- "ldp x14, x15, [x1, #16]\n\t"
- "ldp x16, x17, [x2]\n\t"
- "ldp x19, x20, [x2, #16]\n\t"
- /* A[0] * B[0] */
- "mul x4, x12, x16\n\t"
- "umulh x5, x12, x16\n\t"
- /* A[0] * B[1] */
- "mul x25, x12, x17\n\t"
- "umulh x6, x12, x17\n\t"
- "adds x5, x5, x25\n\t"
- "adc x6, x6, xzr\n\t"
- /* A[1] * B[0] */
- "mul x25, x13, x16\n\t"
- "umulh x26, x13, x16\n\t"
- "adds x5, x5, x25\n\t"
- "adcs x6, x6, x26\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x25, x12, x19\n\t"
- "umulh x26, x12, x19\n\t"
- "adds x6, x6, x25\n\t"
- "adc x7, x7, x26\n\t"
- /* A[1] * B[1] */
- "mul x25, x13, x17\n\t"
- "umulh x26, x13, x17\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x8, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x25, x14, x16\n\t"
- "umulh x26, x14, x16\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[0] * B[3] */
- "mul x25, x12, x20\n\t"
- "umulh x26, x12, x20\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x25, x13, x19\n\t"
- "umulh x26, x13, x19\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[2] * B[1] */
- "mul x25, x14, x17\n\t"
- "umulh x26, x14, x17\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[3] * B[0] */
- "mul x25, x15, x16\n\t"
- "umulh x26, x15, x16\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[1] * B[3] */
- "mul x25, x13, x20\n\t"
- "umulh x26, x13, x20\n\t"
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x26\n\t"
- "adc x10, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x25, x14, x19\n\t"
- "umulh x26, x14, x19\n\t"
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x26\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[3] * B[1] */
- "mul x25, x15, x17\n\t"
- "umulh x26, x15, x17\n\t"
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x26\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[2] * B[3] */
- "mul x25, x14, x20\n\t"
- "umulh x26, x14, x20\n\t"
- "adds x9, x9, x25\n\t"
- "adcs x10, x10, x26\n\t"
- "adc x11, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x25, x15, x19\n\t"
- "umulh x26, x15, x19\n\t"
- "adds x9, x9, x25\n\t"
- "adcs x10, x10, x26\n\t"
- "adc x11, x11, xzr\n\t"
- /* A[3] * B[3] */
- "mul x25, x15, x20\n\t"
- "umulh x26, x15, x20\n\t"
- "adds x10, x10, x25\n\t"
- "adc x11, x11, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x11, x11, x10, #63\n\t"
- "extr x10, x10, x9, #63\n\t"
- "extr x9, x9, x8, #63\n\t"
- "extr x8, x8, x7, #63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x8\n\t"
- "umulh x8, x25, x8\n\t"
- "adds x4, x4, x26\n\t"
- "mul x26, x25, x9\n\t"
- "umulh x9, x25, x9\n\t"
- "adcs x5, x5, x26\n\t"
- "mul x26, x25, x10\n\t"
- "umulh x10, x25, x10\n\t"
- "adcs x6, x6, x26\n\t"
- "mul x26, x25, x11\n\t"
- "umulh x27, x25, x11\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x5, x5, x8\n\t"
- "adcs x6, x6, x9\n\t"
- "adcs x7, x7, x10\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x7, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x7, asr 63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #48]\n\t"
- /* Double */
- "adds x4, x4, x4\n\t"
- "adcs x5, x5, x5\n\t"
- "adcs x6, x6, x6\n\t"
- "adc x7, x7, x7\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x7, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x4, x4, x25\n\t"
- "sbcs x5, x5, x28\n\t"
- "sbcs x6, x6, x28\n\t"
- "sbc x7, x7, x26\n\t"
- "ldr x0, [x29, #40]\n\t"
- "ldr x1, [x29, #168]\n\t"
- "ldr x2, [x29, #72]\n\t"
- /* Multiply */
- "ldp x16, x17, [x1]\n\t"
- "ldp x19, x20, [x1, #16]\n\t"
- "ldp x21, x22, [x2]\n\t"
- "ldp x23, x24, [x2, #16]\n\t"
- /* A[0] * B[0] */
- "mul x8, x16, x21\n\t"
- "umulh x9, x16, x21\n\t"
- /* A[0] * B[1] */
- "mul x25, x16, x22\n\t"
- "umulh x10, x16, x22\n\t"
- "adds x9, x9, x25\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[1] * B[0] */
- "mul x25, x17, x21\n\t"
- "umulh x26, x17, x21\n\t"
- "adds x9, x9, x25\n\t"
- "adcs x10, x10, x26\n\t"
- "adc x11, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x25, x16, x23\n\t"
- "umulh x26, x16, x23\n\t"
- "adds x10, x10, x25\n\t"
- "adc x11, x11, x26\n\t"
- /* A[1] * B[1] */
- "mul x25, x17, x22\n\t"
- "umulh x26, x17, x22\n\t"
- "adds x10, x10, x25\n\t"
- "adcs x11, x11, x26\n\t"
- "adc x12, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x25, x19, x21\n\t"
- "umulh x26, x19, x21\n\t"
- "adds x10, x10, x25\n\t"
- "adcs x11, x11, x26\n\t"
- "adc x12, x12, xzr\n\t"
- /* A[0] * B[3] */
- "mul x25, x16, x24\n\t"
- "umulh x26, x16, x24\n\t"
- "adds x11, x11, x25\n\t"
- "adcs x12, x12, x26\n\t"
- "adc x13, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x25, x17, x23\n\t"
- "umulh x26, x17, x23\n\t"
- "adds x11, x11, x25\n\t"
- "adcs x12, x12, x26\n\t"
- "adc x13, x13, xzr\n\t"
- /* A[2] * B[1] */
- "mul x25, x19, x22\n\t"
- "umulh x26, x19, x22\n\t"
- "adds x11, x11, x25\n\t"
- "adcs x12, x12, x26\n\t"
- "adc x13, x13, xzr\n\t"
- /* A[3] * B[0] */
- "mul x25, x20, x21\n\t"
- "umulh x26, x20, x21\n\t"
- "adds x11, x11, x25\n\t"
- "adcs x12, x12, x26\n\t"
- "adc x13, x13, xzr\n\t"
- /* A[1] * B[3] */
- "mul x25, x17, x24\n\t"
- "umulh x26, x17, x24\n\t"
- "adds x12, x12, x25\n\t"
- "adcs x13, x13, x26\n\t"
- "adc x14, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x25, x19, x23\n\t"
- "umulh x26, x19, x23\n\t"
- "adds x12, x12, x25\n\t"
- "adcs x13, x13, x26\n\t"
- "adc x14, x14, xzr\n\t"
- /* A[3] * B[1] */
- "mul x25, x20, x22\n\t"
- "umulh x26, x20, x22\n\t"
- "adds x12, x12, x25\n\t"
- "adcs x13, x13, x26\n\t"
- "adc x14, x14, xzr\n\t"
- /* A[2] * B[3] */
- "mul x25, x19, x24\n\t"
- "umulh x26, x19, x24\n\t"
- "adds x13, x13, x25\n\t"
- "adcs x14, x14, x26\n\t"
- "adc x15, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x25, x20, x23\n\t"
- "umulh x26, x20, x23\n\t"
- "adds x13, x13, x25\n\t"
- "adcs x14, x14, x26\n\t"
- "adc x15, x15, xzr\n\t"
- /* A[3] * B[3] */
- "mul x25, x20, x24\n\t"
- "umulh x26, x20, x24\n\t"
- "adds x14, x14, x25\n\t"
- "adc x15, x15, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x15, x15, x14, #63\n\t"
- "extr x14, x14, x13, #63\n\t"
- "extr x13, x13, x12, #63\n\t"
- "extr x12, x12, x11, #63\n\t"
- "and x11, x11, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x12\n\t"
- "umulh x12, x25, x12\n\t"
- "adds x8, x8, x26\n\t"
- "mul x26, x25, x13\n\t"
- "umulh x13, x25, x13\n\t"
- "adcs x9, x9, x26\n\t"
- "mul x26, x25, x14\n\t"
- "umulh x14, x25, x14\n\t"
- "adcs x10, x10, x26\n\t"
- "mul x26, x25, x15\n\t"
- "umulh x27, x25, x15\n\t"
- "adcs x11, x11, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x9, x9, x12\n\t"
- "adcs x10, x10, x13\n\t"
- "adcs x11, x11, x14\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x11, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x11, x11, #0x7fffffffffffffff\n\t"
- "adds x8, x8, x27\n\t"
- "adcs x9, x9, xzr\n\t"
- "adcs x10, x10, xzr\n\t"
- "adc x11, x11, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x11, asr 63\n\t"
- "and x11, x11, #0x7fffffffffffffff\n\t"
- "adds x8, x8, x27\n\t"
- "adcs x9, x9, xzr\n\t"
- "adcs x10, x10, xzr\n\t"
- "adc x11, x11, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #32]\n\t"
- "ldr x1, [x29, #40]\n\t"
- /* Add */
- "adds x12, x4, x8\n\t"
- "adcs x13, x5, x9\n\t"
- "adcs x14, x6, x10\n\t"
- "adc x15, x7, x11\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x15, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x12, x12, x25\n\t"
- "sbcs x13, x13, x28\n\t"
- "sbcs x14, x14, x28\n\t"
- "sbc x15, x15, x26\n\t"
- /* Sub */
- "subs x16, x4, x8\n\t"
- "sbcs x17, x5, x9\n\t"
- "sbcs x19, x6, x10\n\t"
- "sbcs x20, x7, x11\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x28\n\t"
- "adcs x19, x19, x28\n\t"
- "adc x20, x20, x26\n\t"
- "stp x12, x13, [x0]\n\t"
- "stp x14, x15, [x0, #16]\n\t"
- "stp x16, x17, [x1]\n\t"
- "stp x19, x20, [x1, #16]\n\t"
- "ldp x29, x30, [sp], #0x50\n\t"
- : [rx] "+r" (rx), [ry] "+r" (ry), [rz] "+r" (rz), [rt] "+r" (rt), [px] "+r" (px), [py] "+r" (py), [pz] "+r" (pz), [pt] "+r" (pt)
- :
- : "memory", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27", "x28"
- );
- (void)qz;
- (void)qt2d;
- (void)qyplusx;
- (void)qyminusx;
-}
-
-void fe_ge_sub(fe rx, fe ry, fe rz, fe rt, const fe px, const fe py, const fe pz, const fe pt, const fe qz, const fe qt2d, const fe qyplusx, const fe qyminusx)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-80]!\n\t"
- "add x29, sp, #0\n\t"
- "str %x[rx], [x29, #16]\n\t"
- "str %x[ry], [x29, #24]\n\t"
- "str %x[rz], [x29, #32]\n\t"
- "str %x[rt], [x29, #40]\n\t"
- "str %x[px], [x29, #48]\n\t"
- "str %x[py], [x29, #56]\n\t"
- "str %x[pz], [x29, #64]\n\t"
- "str %x[pt], [x29, #72]\n\t"
- "ldr x2, [x29, #56]\n\t"
- "ldr x3, [x29, #48]\n\t"
- /* Add */
- "ldp x12, x13, [x2]\n\t"
- "ldp x14, x15, [x2, #16]\n\t"
- "ldp x16, x17, [x3]\n\t"
- "ldp x19, x20, [x3, #16]\n\t"
- "adds x4, x12, x16\n\t"
- "adcs x5, x13, x17\n\t"
- "adcs x6, x14, x19\n\t"
- "adc x7, x15, x20\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x7, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x4, x4, x25\n\t"
- "sbcs x5, x5, x28\n\t"
- "sbcs x6, x6, x28\n\t"
- "sbc x7, x7, x26\n\t"
- /* Sub */
- "subs x8, x12, x16\n\t"
- "sbcs x9, x13, x17\n\t"
- "sbcs x10, x14, x19\n\t"
- "sbcs x11, x15, x20\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x28\n\t"
- "adcs x10, x10, x28\n\t"
- "adc x11, x11, x26\n\t"
- "ldr x0, [x29, #32]\n\t"
- "ldr x2, [x29, #184]\n\t"
- /* Multiply */
- "ldp x21, x22, [x2]\n\t"
- "ldp x23, x24, [x2, #16]\n\t"
- /* A[0] * B[0] */
- "mul x12, x4, x21\n\t"
- "umulh x13, x4, x21\n\t"
- /* A[0] * B[1] */
- "mul x25, x4, x22\n\t"
- "umulh x14, x4, x22\n\t"
- "adds x13, x13, x25\n\t"
- "adc x14, x14, xzr\n\t"
- /* A[1] * B[0] */
- "mul x25, x5, x21\n\t"
- "umulh x26, x5, x21\n\t"
- "adds x13, x13, x25\n\t"
- "adcs x14, x14, x26\n\t"
- "adc x15, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x25, x4, x23\n\t"
- "umulh x26, x4, x23\n\t"
- "adds x14, x14, x25\n\t"
- "adc x15, x15, x26\n\t"
- /* A[1] * B[1] */
- "mul x25, x5, x22\n\t"
- "umulh x26, x5, x22\n\t"
- "adds x14, x14, x25\n\t"
- "adcs x15, x15, x26\n\t"
- "adc x16, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x25, x6, x21\n\t"
- "umulh x26, x6, x21\n\t"
- "adds x14, x14, x25\n\t"
- "adcs x15, x15, x26\n\t"
- "adc x16, x16, xzr\n\t"
- /* A[0] * B[3] */
- "mul x25, x4, x24\n\t"
- "umulh x26, x4, x24\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x25, x5, x23\n\t"
- "umulh x26, x5, x23\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[2] * B[1] */
- "mul x25, x6, x22\n\t"
- "umulh x26, x6, x22\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[3] * B[0] */
- "mul x25, x7, x21\n\t"
- "umulh x26, x7, x21\n\t"
- "adds x15, x15, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[1] * B[3] */
- "mul x25, x5, x24\n\t"
- "umulh x26, x5, x24\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x25, x6, x23\n\t"
- "umulh x26, x6, x23\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[3] * B[1] */
- "mul x25, x7, x22\n\t"
- "umulh x26, x7, x22\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[2] * B[3] */
- "mul x25, x6, x24\n\t"
- "umulh x26, x6, x24\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x25, x7, x23\n\t"
- "umulh x26, x7, x23\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, x20, xzr\n\t"
- /* A[3] * B[3] */
- "mul x25, x7, x24\n\t"
- "umulh x26, x7, x24\n\t"
- "adds x19, x19, x25\n\t"
- "adc x20, x20, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x20, x20, x19, #63\n\t"
- "extr x19, x19, x17, #63\n\t"
- "extr x17, x17, x16, #63\n\t"
- "extr x16, x16, x15, #63\n\t"
- "and x15, x15, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x16\n\t"
- "umulh x16, x25, x16\n\t"
- "adds x12, x12, x26\n\t"
- "mul x26, x25, x17\n\t"
- "umulh x17, x25, x17\n\t"
- "adcs x13, x13, x26\n\t"
- "mul x26, x25, x19\n\t"
- "umulh x19, x25, x19\n\t"
- "adcs x14, x14, x26\n\t"
- "mul x26, x25, x20\n\t"
- "umulh x27, x25, x20\n\t"
- "adcs x15, x15, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x13, x13, x16\n\t"
- "adcs x14, x14, x17\n\t"
- "adcs x15, x15, x19\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x15, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x15, x15, #0x7fffffffffffffff\n\t"
- "adds x12, x12, x27\n\t"
- "adcs x13, x13, xzr\n\t"
- "adcs x14, x14, xzr\n\t"
- "adc x15, x15, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x15, asr 63\n\t"
- "and x15, x15, #0x7fffffffffffffff\n\t"
- "adds x12, x12, x27\n\t"
- "adcs x13, x13, xzr\n\t"
- "adcs x14, x14, xzr\n\t"
- "adc x15, x15, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #24]\n\t"
- "ldr x1, [x29, #176]\n\t"
- /* Multiply */
- "ldp x21, x22, [x1]\n\t"
- "ldp x23, x24, [x1, #16]\n\t"
- /* A[0] * B[0] */
- "mul x4, x8, x21\n\t"
- "umulh x5, x8, x21\n\t"
- /* A[0] * B[1] */
- "mul x25, x8, x22\n\t"
- "umulh x6, x8, x22\n\t"
- "adds x5, x5, x25\n\t"
- "adc x6, x6, xzr\n\t"
- /* A[1] * B[0] */
- "mul x25, x9, x21\n\t"
- "umulh x26, x9, x21\n\t"
- "adds x5, x5, x25\n\t"
- "adcs x6, x6, x26\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x25, x8, x23\n\t"
- "umulh x26, x8, x23\n\t"
- "adds x6, x6, x25\n\t"
- "adc x7, x7, x26\n\t"
- /* A[1] * B[1] */
- "mul x25, x9, x22\n\t"
- "umulh x26, x9, x22\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x16, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x25, x10, x21\n\t"
- "umulh x26, x10, x21\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x16, x16, xzr\n\t"
- /* A[0] * B[3] */
- "mul x25, x8, x24\n\t"
- "umulh x26, x8, x24\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x25, x9, x23\n\t"
- "umulh x26, x9, x23\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[2] * B[1] */
- "mul x25, x10, x22\n\t"
- "umulh x26, x10, x22\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[3] * B[0] */
- "mul x25, x11, x21\n\t"
- "umulh x26, x11, x21\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x16, x16, x26\n\t"
- "adc x17, x17, xzr\n\t"
- /* A[1] * B[3] */
- "mul x25, x9, x24\n\t"
- "umulh x26, x9, x24\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x25, x10, x23\n\t"
- "umulh x26, x10, x23\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[3] * B[1] */
- "mul x25, x11, x22\n\t"
- "umulh x26, x11, x22\n\t"
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x26\n\t"
- "adc x19, x19, xzr\n\t"
- /* A[2] * B[3] */
- "mul x25, x10, x24\n\t"
- "umulh x26, x10, x24\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x25, x11, x23\n\t"
- "umulh x26, x11, x23\n\t"
- "adds x17, x17, x25\n\t"
- "adcs x19, x19, x26\n\t"
- "adc x20, x20, xzr\n\t"
- /* A[3] * B[3] */
- "mul x25, x11, x24\n\t"
- "umulh x26, x11, x24\n\t"
- "adds x19, x19, x25\n\t"
- "adc x20, x20, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x20, x20, x19, #63\n\t"
- "extr x19, x19, x17, #63\n\t"
- "extr x17, x17, x16, #63\n\t"
- "extr x16, x16, x7, #63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x16\n\t"
- "umulh x16, x25, x16\n\t"
- "adds x4, x4, x26\n\t"
- "mul x26, x25, x17\n\t"
- "umulh x17, x25, x17\n\t"
- "adcs x5, x5, x26\n\t"
- "mul x26, x25, x19\n\t"
- "umulh x19, x25, x19\n\t"
- "adcs x6, x6, x26\n\t"
- "mul x26, x25, x20\n\t"
- "umulh x27, x25, x20\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x5, x5, x16\n\t"
- "adcs x6, x6, x17\n\t"
- "adcs x7, x7, x19\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x7, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x7, asr 63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #24]\n\t"
- "ldr x1, [x29, #16]\n\t"
- /* Add */
- "adds x8, x12, x4\n\t"
- "adcs x9, x13, x5\n\t"
- "adcs x10, x14, x6\n\t"
- "adc x11, x15, x7\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x11, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x8, x8, x25\n\t"
- "sbcs x9, x9, x28\n\t"
- "sbcs x10, x10, x28\n\t"
- "sbc x11, x11, x26\n\t"
- /* Sub */
- "subs x16, x12, x4\n\t"
- "sbcs x17, x13, x5\n\t"
- "sbcs x19, x14, x6\n\t"
- "sbcs x20, x15, x7\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x28\n\t"
- "adcs x19, x19, x28\n\t"
- "adc x20, x20, x26\n\t"
- "stp x8, x9, [x0]\n\t"
- "stp x10, x11, [x0, #16]\n\t"
- "stp x16, x17, [x1]\n\t"
- "stp x19, x20, [x1, #16]\n\t"
- "ldr x0, [x29, #48]\n\t"
- "ldr x1, [x29, #64]\n\t"
- "ldr x2, [x29, #160]\n\t"
- /* Multiply */
- "ldp x12, x13, [x1]\n\t"
- "ldp x14, x15, [x1, #16]\n\t"
- "ldp x16, x17, [x2]\n\t"
- "ldp x19, x20, [x2, #16]\n\t"
- /* A[0] * B[0] */
- "mul x4, x12, x16\n\t"
- "umulh x5, x12, x16\n\t"
- /* A[0] * B[1] */
- "mul x25, x12, x17\n\t"
- "umulh x6, x12, x17\n\t"
- "adds x5, x5, x25\n\t"
- "adc x6, x6, xzr\n\t"
- /* A[1] * B[0] */
- "mul x25, x13, x16\n\t"
- "umulh x26, x13, x16\n\t"
- "adds x5, x5, x25\n\t"
- "adcs x6, x6, x26\n\t"
- "adc x7, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x25, x12, x19\n\t"
- "umulh x26, x12, x19\n\t"
- "adds x6, x6, x25\n\t"
- "adc x7, x7, x26\n\t"
- /* A[1] * B[1] */
- "mul x25, x13, x17\n\t"
- "umulh x26, x13, x17\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x8, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x25, x14, x16\n\t"
- "umulh x26, x14, x16\n\t"
- "adds x6, x6, x25\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x8, x8, xzr\n\t"
- /* A[0] * B[3] */
- "mul x25, x12, x20\n\t"
- "umulh x26, x12, x20\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x25, x13, x19\n\t"
- "umulh x26, x13, x19\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[2] * B[1] */
- "mul x25, x14, x17\n\t"
- "umulh x26, x14, x17\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[3] * B[0] */
- "mul x25, x15, x16\n\t"
- "umulh x26, x15, x16\n\t"
- "adds x7, x7, x25\n\t"
- "adcs x8, x8, x26\n\t"
- "adc x9, x9, xzr\n\t"
- /* A[1] * B[3] */
- "mul x25, x13, x20\n\t"
- "umulh x26, x13, x20\n\t"
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x26\n\t"
- "adc x10, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x25, x14, x19\n\t"
- "umulh x26, x14, x19\n\t"
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x26\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[3] * B[1] */
- "mul x25, x15, x17\n\t"
- "umulh x26, x15, x17\n\t"
- "adds x8, x8, x25\n\t"
- "adcs x9, x9, x26\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[2] * B[3] */
- "mul x25, x14, x20\n\t"
- "umulh x26, x14, x20\n\t"
- "adds x9, x9, x25\n\t"
- "adcs x10, x10, x26\n\t"
- "adc x11, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x25, x15, x19\n\t"
- "umulh x26, x15, x19\n\t"
- "adds x9, x9, x25\n\t"
- "adcs x10, x10, x26\n\t"
- "adc x11, x11, xzr\n\t"
- /* A[3] * B[3] */
- "mul x25, x15, x20\n\t"
- "umulh x26, x15, x20\n\t"
- "adds x10, x10, x25\n\t"
- "adc x11, x11, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x11, x11, x10, #63\n\t"
- "extr x10, x10, x9, #63\n\t"
- "extr x9, x9, x8, #63\n\t"
- "extr x8, x8, x7, #63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x8\n\t"
- "umulh x8, x25, x8\n\t"
- "adds x4, x4, x26\n\t"
- "mul x26, x25, x9\n\t"
- "umulh x9, x25, x9\n\t"
- "adcs x5, x5, x26\n\t"
- "mul x26, x25, x10\n\t"
- "umulh x10, x25, x10\n\t"
- "adcs x6, x6, x26\n\t"
- "mul x26, x25, x11\n\t"
- "umulh x27, x25, x11\n\t"
- "adcs x7, x7, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x5, x5, x8\n\t"
- "adcs x6, x6, x9\n\t"
- "adcs x7, x7, x10\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x7, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x7, asr 63\n\t"
- "and x7, x7, #0x7fffffffffffffff\n\t"
- "adds x4, x4, x27\n\t"
- "adcs x5, x5, xzr\n\t"
- "adcs x6, x6, xzr\n\t"
- "adc x7, x7, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #48]\n\t"
- /* Double */
- "adds x4, x4, x4\n\t"
- "adcs x5, x5, x5\n\t"
- "adcs x6, x6, x6\n\t"
- "adc x7, x7, x7\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x7, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x4, x4, x25\n\t"
- "sbcs x5, x5, x28\n\t"
- "sbcs x6, x6, x28\n\t"
- "sbc x7, x7, x26\n\t"
- "ldr x0, [x29, #40]\n\t"
- "ldr x1, [x29, #168]\n\t"
- "ldr x2, [x29, #72]\n\t"
- /* Multiply */
- "ldp x16, x17, [x1]\n\t"
- "ldp x19, x20, [x1, #16]\n\t"
- "ldp x21, x22, [x2]\n\t"
- "ldp x23, x24, [x2, #16]\n\t"
- /* A[0] * B[0] */
- "mul x8, x16, x21\n\t"
- "umulh x9, x16, x21\n\t"
- /* A[0] * B[1] */
- "mul x25, x16, x22\n\t"
- "umulh x10, x16, x22\n\t"
- "adds x9, x9, x25\n\t"
- "adc x10, x10, xzr\n\t"
- /* A[1] * B[0] */
- "mul x25, x17, x21\n\t"
- "umulh x26, x17, x21\n\t"
- "adds x9, x9, x25\n\t"
- "adcs x10, x10, x26\n\t"
- "adc x11, xzr, xzr\n\t"
- /* A[0] * B[2] */
- "mul x25, x16, x23\n\t"
- "umulh x26, x16, x23\n\t"
- "adds x10, x10, x25\n\t"
- "adc x11, x11, x26\n\t"
- /* A[1] * B[1] */
- "mul x25, x17, x22\n\t"
- "umulh x26, x17, x22\n\t"
- "adds x10, x10, x25\n\t"
- "adcs x11, x11, x26\n\t"
- "adc x12, xzr, xzr\n\t"
- /* A[2] * B[0] */
- "mul x25, x19, x21\n\t"
- "umulh x26, x19, x21\n\t"
- "adds x10, x10, x25\n\t"
- "adcs x11, x11, x26\n\t"
- "adc x12, x12, xzr\n\t"
- /* A[0] * B[3] */
- "mul x25, x16, x24\n\t"
- "umulh x26, x16, x24\n\t"
- "adds x11, x11, x25\n\t"
- "adcs x12, x12, x26\n\t"
- "adc x13, xzr, xzr\n\t"
- /* A[1] * B[2] */
- "mul x25, x17, x23\n\t"
- "umulh x26, x17, x23\n\t"
- "adds x11, x11, x25\n\t"
- "adcs x12, x12, x26\n\t"
- "adc x13, x13, xzr\n\t"
- /* A[2] * B[1] */
- "mul x25, x19, x22\n\t"
- "umulh x26, x19, x22\n\t"
- "adds x11, x11, x25\n\t"
- "adcs x12, x12, x26\n\t"
- "adc x13, x13, xzr\n\t"
- /* A[3] * B[0] */
- "mul x25, x20, x21\n\t"
- "umulh x26, x20, x21\n\t"
- "adds x11, x11, x25\n\t"
- "adcs x12, x12, x26\n\t"
- "adc x13, x13, xzr\n\t"
- /* A[1] * B[3] */
- "mul x25, x17, x24\n\t"
- "umulh x26, x17, x24\n\t"
- "adds x12, x12, x25\n\t"
- "adcs x13, x13, x26\n\t"
- "adc x14, xzr, xzr\n\t"
- /* A[2] * B[2] */
- "mul x25, x19, x23\n\t"
- "umulh x26, x19, x23\n\t"
- "adds x12, x12, x25\n\t"
- "adcs x13, x13, x26\n\t"
- "adc x14, x14, xzr\n\t"
- /* A[3] * B[1] */
- "mul x25, x20, x22\n\t"
- "umulh x26, x20, x22\n\t"
- "adds x12, x12, x25\n\t"
- "adcs x13, x13, x26\n\t"
- "adc x14, x14, xzr\n\t"
- /* A[2] * B[3] */
- "mul x25, x19, x24\n\t"
- "umulh x26, x19, x24\n\t"
- "adds x13, x13, x25\n\t"
- "adcs x14, x14, x26\n\t"
- "adc x15, xzr, xzr\n\t"
- /* A[3] * B[2] */
- "mul x25, x20, x23\n\t"
- "umulh x26, x20, x23\n\t"
- "adds x13, x13, x25\n\t"
- "adcs x14, x14, x26\n\t"
- "adc x15, x15, xzr\n\t"
- /* A[3] * B[3] */
- "mul x25, x20, x24\n\t"
- "umulh x26, x20, x24\n\t"
- "adds x14, x14, x25\n\t"
- "adc x15, x15, x26\n\t"
- /* Reduce */
- /* Move top half into t4-t7 and remove top bit from t3 */
- "extr x15, x15, x14, #63\n\t"
- "extr x14, x14, x13, #63\n\t"
- "extr x13, x13, x12, #63\n\t"
- "extr x12, x12, x11, #63\n\t"
- "and x11, x11, #0x7fffffffffffffff\n\t"
- /* Multiply top half by 19 */
- "mov x25, #19\n\t"
- "mul x26, x25, x12\n\t"
- "umulh x12, x25, x12\n\t"
- "adds x8, x8, x26\n\t"
- "mul x26, x25, x13\n\t"
- "umulh x13, x25, x13\n\t"
- "adcs x9, x9, x26\n\t"
- "mul x26, x25, x14\n\t"
- "umulh x14, x25, x14\n\t"
- "adcs x10, x10, x26\n\t"
- "mul x26, x25, x15\n\t"
- "umulh x27, x25, x15\n\t"
- "adcs x11, x11, x26\n\t"
- "adc x27, x27, xzr\n\t"
- /* Add remaining product results in */
- "adds x9, x9, x12\n\t"
- "adcs x10, x10, x13\n\t"
- "adcs x11, x11, x14\n\t"
- "adc x27, x27, xzr\n\t"
- /* Overflow */
- "extr x27, x27, x11, #63\n\t"
- "mul x27, x27, x25\n\t"
- "and x11, x11, #0x7fffffffffffffff\n\t"
- "adds x8, x8, x27\n\t"
- "adcs x9, x9, xzr\n\t"
- "adcs x10, x10, xzr\n\t"
- "adc x11, x11, xzr\n\t"
- /* Reduce if top bit set */
- "and x27, x25, x11, asr 63\n\t"
- "and x11, x11, #0x7fffffffffffffff\n\t"
- "adds x8, x8, x27\n\t"
- "adcs x9, x9, xzr\n\t"
- "adcs x10, x10, xzr\n\t"
- "adc x11, x11, xzr\n\t"
- /* Store */
- "ldr x0, [x29, #40]\n\t"
- "ldr x1, [x29, #32]\n\t"
- /* Add */
- "adds x12, x4, x8\n\t"
- "adcs x13, x5, x9\n\t"
- "adcs x14, x6, x10\n\t"
- "adc x15, x7, x11\n\t"
- "mov x25, #-19\n\t"
- "asr x28, x15, #63\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Sub modulus (if overflow) */
- "subs x12, x12, x25\n\t"
- "sbcs x13, x13, x28\n\t"
- "sbcs x14, x14, x28\n\t"
- "sbc x15, x15, x26\n\t"
- /* Sub */
- "subs x16, x4, x8\n\t"
- "sbcs x17, x5, x9\n\t"
- "sbcs x19, x6, x10\n\t"
- "sbcs x20, x7, x11\n\t"
- "mov x25, #-19\n\t"
- "csetm x28, cc\n\t"
- /* Mask the modulus */
- "and x25, x28, x25\n\t"
- "and x26, x28, #0x7fffffffffffffff\n\t"
- /* Add modulus (if underflow) */
- "adds x16, x16, x25\n\t"
- "adcs x17, x17, x28\n\t"
- "adcs x19, x19, x28\n\t"
- "adc x20, x20, x26\n\t"
- "stp x12, x13, [x0]\n\t"
- "stp x14, x15, [x0, #16]\n\t"
- "stp x16, x17, [x1]\n\t"
- "stp x19, x20, [x1, #16]\n\t"
- "ldp x29, x30, [sp], #0x50\n\t"
- : [rx] "+r" (rx), [ry] "+r" (ry), [rz] "+r" (rz), [rt] "+r" (rt), [px] "+r" (px), [py] "+r" (py), [pz] "+r" (pz), [pt] "+r" (pt)
- :
- : "memory", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27", "x28"
- );
- (void)qz;
- (void)qt2d;
- (void)qyplusx;
- (void)qyminusx;
-}
-
-#endif /* WOLFSSL_ARMASM */
-#endif /* __aarch64__ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-poly1305.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-poly1305.c
deleted file mode 100644
index 3df07f701..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-poly1305.c
+++ /dev/null
@@ -1,1166 +0,0 @@
-/* armv8-poly1305.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-/*
- * Based off the public domain implementations by Andrew Moon
- * and Daniel J. Bernstein
- */
-
-
-#ifdef __aarch64__
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifdef WOLFSSL_ARMASM
-#ifdef HAVE_POLY1305
-#include <wolfssl/wolfcrypt/poly1305.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/logging.h>
-#include <wolfssl/wolfcrypt/cpuid.h>
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-#ifdef CHACHA_AEAD_TEST
- #include <stdio.h>
-#endif
-
-static WC_INLINE void poly1305_blocks_16(Poly1305* ctx, const unsigned char *m,
- size_t bytes)
-{
- __asm__ __volatile__ (
- "CMP %[bytes], %[POLY1305_BLOCK_SIZE] \n\t"
- "BLO L_poly1305_16_64_done_%= \n\t"
- /* Load r and h */
- "LDP x21, x23, %[ctx_r] \n\t"
- "LDR w25, %[ctx_r_4] \n\t"
- "LDP x2, x4, %[ctx_h] \n\t"
- "LDR w6, %[ctx_h_4] \n\t"
- "LSR x22, x21, #32 \n\t"
- "LSR x24, x23, #32 \n\t"
- "LSR x3, x2, #32 \n\t"
- "LSR x5, x4, #32 \n\t"
- "AND x21, x21, #0x3ffffff \n\t"
- "AND x23, x23, #0x3ffffff \n\t"
- "AND x2, x2, #0x3ffffff \n\t"
- "AND x4, x4, #0x3ffffff \n\t"
- /* s1 = r1 * 5; */
- /* s2 = r2 * 5; */
- /* s3 = r3 * 5; */
- /* s4 = r4 * 5; */
- "MOV x15, #5 \n\t"
- "CMP %[finished], #0 \n\t"
- "MUL w7, w22, w15 \n\t"
- "CSET %[finished], EQ \n\t"
- "MUL w8, w23, w15 \n\t"
- "LSL %[finished], %[finished], #24 \n\t"
- "MUL w9, w24, w15 \n\t"
- "MOV x14, #0x3ffffff \n\t"
- "MUL w10, w25, w15 \n\t"
- "\n"
- ".align 2 \n\t"
- "L_poly1305_16_64_loop_%=: \n\t"
- /* t0 = U8TO64(&m[0]); */
- /* t1 = U8TO64(&m[8]); */
- "LDP x16, x17, [%[m]], #16 \n\t"
- /* h0 += (U8TO32(m + 0)) & 0x3ffffff; */
- "AND x26, x16, #0x3ffffff \n\t"
- "ADD x2, x2, x26 \n\t"
- /* h1 += (U8TO32(m + 3) >> 2) & 0x3ffffff; */
- "AND x26, x14, x16, LSR #26 \n\t"
- "ADD x3, x3, x26 \n\t"
- /* h2 += (U8TO32(m + 6) >> 4) & 0x3ffffff; */
- "EXTR x26, x17, x16, #52 \n\t"
- "AND x26, x26, #0x3ffffff \n\t"
- "ADD x4, x4, x26 \n\t"
- /* h3 += (U8TO32(m + 9) >> 6) & 0x3ffffff; */
- "AND x26, x14, x17, LSR #14 \n\t"
- "ADD x5, x5, x26 \n\t"
- /* h4 += (U8TO32(m + 12) >> 8) | hibit; */
- "ORR x17, %[finished], x17, LSR #40 \n\t"
- "ADD x6, x6, x17 \n\t"
- /* d0 = h0 * r0 + h1 * s4 + h2 * s3 + h3 * s2 + h4 * s1 */
- /* d1 = h0 * r1 + h1 * r0 + h2 * s4 + h3 * s3 + h4 * s2 */
- /* d2 = h0 * r2 + h1 * r1 + h2 * r0 + h3 * s4 + h4 * s3 */
- /* d3 = h0 * r3 + h1 * r2 + h2 * r1 + h3 * r0 + h4 * s4 */
- /* d4 = h0 * r4 + h1 * r3 + h2 * r2 + h3 * r1 + h4 * r0 */
- "MUL x16, x2, x21 \n\t"
- "MUL x17, x2, x22 \n\t"
- "MUL x26, x2, x23 \n\t"
- "MUL x19, x2, x24 \n\t"
- "MUL x20, x2, x25 \n\t"
- "MADD x16, x3, x10, x16 \n\t"
- "MADD x17, x3, x21, x17 \n\t"
- "MADD x26, x3, x22, x26 \n\t"
- "MADD x19, x3, x23, x19 \n\t"
- "MADD x20, x3, x24, x20 \n\t"
- "MADD x16, x4, x9, x16 \n\t"
- "MADD x17, x4, x10, x17 \n\t"
- "MADD x26, x4, x21, x26 \n\t"
- "MADD x19, x4, x22, x19 \n\t"
- "MADD x20, x4, x23, x20 \n\t"
- "MADD x16, x5, x8, x16 \n\t"
- "MADD x17, x5, x9, x17 \n\t"
- "MADD x26, x5, x10, x26 \n\t"
- "MADD x19, x5, x21, x19 \n\t"
- "MADD x20, x5, x22, x20 \n\t"
- "MADD x16, x6, x7, x16 \n\t"
- "MADD x17, x6, x8, x17 \n\t"
- "MADD x26, x6, x9, x26 \n\t"
- "MADD x19, x6, x10, x19 \n\t"
- "MADD x20, x6, x21, x20 \n\t"
- /* d1 = d1 + d0 >> 26 */
- /* d2 = d2 + d1 >> 26 */
- /* d3 = d3 + d2 >> 26 */
- /* d4 = d4 + d3 >> 26 */
- /* h0 = d0 & 0x3ffffff */
- /* h1 = d1 & 0x3ffffff */
- /* h2 = d2 & 0x3ffffff */
- /* h0 = h0 + (d4 >> 26) * 5 */
- /* h1 = h1 + h0 >> 26 */
- /* h3 = d3 & 0x3ffffff */
- /* h4 = d4 & 0x3ffffff */
- /* h0 = h0 & 0x3ffffff */
- "ADD x17, x17, x16, LSR #26 \n\t"
- "ADD x20, x20, x19, LSR #26 \n\t"
- "AND x16, x16, #0x3ffffff \n\t"
- "LSR x2, x20, #26 \n\t"
- "AND x19, x19, #0x3ffffff \n\t"
- "MADD x16, x2, x15, x16 \n\t"
- "ADD x26, x26, x17, LSR #26 \n\t"
- "AND x17, x17, #0x3ffffff \n\t"
- "AND x20, x20, #0x3ffffff \n\t"
- "ADD x19, x19, x26, LSR #26 \n\t"
- "AND x4, x26, #0x3ffffff \n\t"
- "ADD x3, x17, x16, LSR #26 \n\t"
- "AND x2, x16, #0x3ffffff \n\t"
- "ADD x6, x20, x19, LSR #26 \n\t"
- "AND x5, x19, #0x3ffffff \n\t"
- "SUB %[bytes], %[bytes], %[POLY1305_BLOCK_SIZE] \n\t"
- "CMP %[bytes], %[POLY1305_BLOCK_SIZE] \n\t"
- "BHS L_poly1305_16_64_loop_%= \n\t"
- /* Store h */
- "ORR x2, x2, x3, LSL #32 \n\t"
- "ORR x4, x4, x5, LSL #32 \n\t"
- "STP x2, x4, %[ctx_h] \n\t"
- "STR w6, %[ctx_h_4] \n\t"
- "\n"
- ".align 2 \n\t"
- "L_poly1305_16_64_done_%=: \n\t"
- : [ctx_h] "+m" (ctx->h[0]),
- [ctx_h_4] "+m" (ctx->h[4]),
- [bytes] "+r" (bytes),
- [m] "+r" (m)
- : [POLY1305_BLOCK_SIZE] "I" (POLY1305_BLOCK_SIZE),
- [ctx_r] "m" (ctx->r[0]),
- [ctx_r_4] "m" (ctx->r[4]),
- [finished] "r" ((word64)ctx->finished)
- : "memory", "cc",
- "w2", "w3", "w4", "w5", "w6", "w7", "w8", "w9", "w10", "w15",
- "w21", "w22", "w23", "w24", "w25", "x2", "x3", "x4", "x5", "x6",
- "x7", "x8", "x9", "x10", "x14", "x15", "x16", "x17", "x19", "x20",
- "x21", "x22", "x23", "x24", "x25", "x26"
- );
-}
-
-void poly1305_blocks(Poly1305* ctx, const unsigned char *m,
- size_t bytes)
-{
- __asm__ __volatile__ (
- /* If less than 4 blocks to process then use regular method */
- "CMP %[bytes], %[POLY1305_BLOCK_SIZE]*4 \n\t"
- "BLO L_poly1305_64_done_%= \n\t"
- "MOV x9, #0x3ffffff \n\t"
- /* Load h */
- "LDP x20, x22, [%[h]] \n\t"
- "MOV v27.D[0], x9 \n\t"
- "LDR w24, [%[h], #16] \n\t"
- "MOV v27.D[1], x9 \n\t"
- "LSR x21, x20, #32 \n\t"
- "DUP v29.4S, v27.S[0] \n\t"
- "LSR x23, x22, #32 \n\t"
- "MOV x9, #5 \n\t"
- "AND x20, x20, #0x3ffffff \n\t"
- "MOV v28.D[0], x9 \n\t"
- "AND x22, x22, #0x3ffffff \n\t"
- /* Zero accumulator registers */
- "MOVI v15.2D, #0x0 \n\t"
- "MOVI v16.2D, #0x0 \n\t"
- "MOVI v17.2D, #0x0 \n\t"
- "MOVI v18.2D, #0x0 \n\t"
- "MOVI v19.2D, #0x0 \n\t"
- /* Set hibit */
- "CMP %[finished], #0 \n\t"
- "CSET x9, EQ \n\t"
- "LSL x9, x9, #24 \n\t"
- "MOV v26.D[0], x9 \n\t"
- "MOV v26.D[1], x9 \n\t"
- "DUP v30.4S, v26.S[0] \n\t"
- "CMP %[bytes], %[POLY1305_BLOCK_SIZE]*6 \n\t"
- "BLO L_poly1305_64_start_block_size_64_%= \n\t"
- /* Load r^2 to NEON v0, v1, v2, v3, v4 */
- "LD4 { v0.S-v3.S }[2], [%[r_2]], #16 \n\t"
- "LD1 { v4.S }[2], [%[r_2]] \n\t"
- "SUB %[r_2], %[r_2], #16 \n\t"
- /* Load r^4 to NEON v0, v1, v2, v3, v4 */
- "LD4 { v0.S-v3.S }[0], [%[r_4]], #16 \n\t"
- "LD1 { v4.S }[0], [%[r_4]] \n\t"
- "SUB %[r_4], %[r_4], #16 \n\t"
- "MOV v0.S[1], v0.S[0] \n\t"
- "MOV v0.S[3], v0.S[2] \n\t"
- "MOV v1.S[1], v1.S[0] \n\t"
- "MOV v1.S[3], v1.S[2] \n\t"
- "MOV v2.S[1], v2.S[0] \n\t"
- "MOV v2.S[3], v2.S[2] \n\t"
- "MOV v3.S[1], v3.S[0] \n\t"
- "MOV v3.S[3], v3.S[2] \n\t"
- "MOV v4.S[1], v4.S[0] \n\t"
- "MOV v4.S[3], v4.S[2] \n\t"
- /* Store [r^4, r^2] * 5 */
- "MUL v5.4S, v0.4S, v28.S[0] \n\t"
- "MUL v6.4S, v1.4S, v28.S[0] \n\t"
- "MUL v7.4S, v2.4S, v28.S[0] \n\t"
- "MUL v8.4S, v3.4S, v28.S[0] \n\t"
- "MUL v9.4S, v4.4S, v28.S[0] \n\t"
- /* Copy r^4 to ARM */
- "MOV w25, v0.S[0] \n\t"
- "MOV w26, v1.S[0] \n\t"
- "MOV w27, v2.S[0] \n\t"
- "MOV w28, v3.S[0] \n\t"
- "MOV w30, v4.S[0] \n\t"
- /* Copy 5*r^4 to ARM */
- "MOV w15, v5.S[0] \n\t"
- "MOV w16, v6.S[0] \n\t"
- "MOV w17, v7.S[0] \n\t"
- "MOV w8, v8.S[0] \n\t"
- "MOV w19, v9.S[0] \n\t"
- /* Load m */
- /* Load four message blocks to NEON v10, v11, v12, v13, v14 */
- "LD4 { v10.4S-v13.4S }, [%[m]], #64 \n\t"
- "SUB %[bytes], %[bytes], %[POLY1305_BLOCK_SIZE]*4 \n\t"
- "USHR v14.4S, v13.4S, #8 \n\t"
- "ORR v14.16B, v14.16B, v30.16B \n\t"
- "SHL v13.4S, v13.4S, #18 \n\t"
- "SRI v13.4S, v12.4S, #14 \n\t"
- "SHL v12.4S, v12.4S, #12 \n\t"
- "SRI v12.4S, v11.4S, #20 \n\t"
- "SHL v11.4S, v11.4S, #6 \n\t"
- "SRI v11.4S, v10.4S, #26 \n\t"
- "AND v10.16B, v10.16B, v29.16B \n\t"
- "AND v11.16B, v11.16B, v29.16B \n\t"
- "AND v12.16B, v12.16B, v29.16B \n\t"
- "AND v13.16B, v13.16B, v29.16B \n\t"
- "AND v14.16B, v14.16B, v29.16B \n\t"
- /* Four message blocks loaded */
- /* Add messages to accumulator */
- "ADD v15.2S, v15.2S, v10.2S \n\t"
- "ADD v16.2S, v16.2S, v11.2S \n\t"
- "ADD v17.2S, v17.2S, v12.2S \n\t"
- "ADD v18.2S, v18.2S, v13.2S \n\t"
- "ADD v19.2S, v19.2S, v14.2S \n\t"
- "\n"
- ".align 2 \n\t"
- "L_poly1305_64_loop_128_%=: \n\t"
- /* d0 = h0*r0 + h1*s4 + h2*s3 + h3*s2 + h4*s1 */
- /* d1 = h0*r1 + h1*r0 + h2*s4 + h3*s3 + h4*s2 */
- /* d2 = h0*r2 + h1*r1 + h2*r0 + h3*s4 + h4*s3 */
- /* d3 = h0*r3 + h1*r2 + h2*r1 + h3*r0 + h4*s4 */
- /* d4 = h0*r4 + h1*r3 + h2*r2 + h3*r1 + h4*r0 */
- "UMULL v21.2D, v15.2S, v0.2S \n\t"
- /* Compute h*r^2 */
- /* d0 = h0 * r0 + h1 * s4 + h2 * s3 + h3 * s2 + h4 * s1 */
- /* d1 = h0 * r1 + h1 * r0 + h2 * s4 + h3 * s3 + h4 * s2 */
- /* d2 = h0 * r2 + h1 * r1 + h2 * r0 + h3 * s4 + h4 * s3 */
- /* d3 = h0 * r3 + h1 * r2 + h2 * r1 + h3 * r0 + h4 * s4 */
- /* d4 = h0 * r4 + h1 * r3 + h2 * r2 + h3 * r1 + h4 * r0 */
- "MUL x9, x20, x25 \n\t"
- "UMULL v22.2D, v15.2S, v1.2S \n\t"
- "MUL x10, x20, x26 \n\t"
- "UMULL v23.2D, v15.2S, v2.2S \n\t"
- "MUL x11, x20, x27 \n\t"
- "UMULL v24.2D, v15.2S, v3.2S \n\t"
- "MUL x12, x20, x28 \n\t"
- "UMULL v25.2D, v15.2S, v4.2S \n\t"
- "MUL x13, x20, x30 \n\t"
- "UMLAL v21.2D, v16.2S, v9.2S \n\t"
- "MADD x9, x21, x19, x9 \n\t"
- "UMLAL v22.2D, v16.2S, v0.2S \n\t"
- "MADD x10, x21, x25, x10 \n\t"
- "UMLAL v23.2D, v16.2S, v1.2S \n\t"
- "MADD x11, x21, x26, x11 \n\t"
- "UMLAL v24.2D, v16.2S, v2.2S \n\t"
- "MADD x12, x21, x27, x12 \n\t"
- "UMLAL v25.2D, v16.2S, v3.2S \n\t"
- "MADD x13, x21, x28, x13 \n\t"
- "UMLAL v21.2D, v17.2S, v8.2S \n\t"
- "MADD x9, x22, x8, x9 \n\t"
- "UMLAL v22.2D, v17.2S, v9.2S \n\t"
- "MADD x10, x22, x19, x10 \n\t"
- "UMLAL v23.2D, v17.2S, v0.2S \n\t"
- "MADD x11, x22, x25, x11 \n\t"
- "UMLAL v24.2D, v17.2S, v1.2S \n\t"
- "MADD x12, x22, x26, x12 \n\t"
- "UMLAL v25.2D, v17.2S, v2.2S \n\t"
- "MADD x13, x22, x27, x13 \n\t"
- "UMLAL v21.2D, v18.2S, v7.2S \n\t"
- "MADD x9, x23, x17, x9 \n\t"
- "UMLAL v22.2D, v18.2S, v8.2S \n\t"
- "MADD x10, x23, x8, x10 \n\t"
- "UMLAL v23.2D, v18.2S, v9.2S \n\t"
- "MADD x11, x23, x19, x11 \n\t"
- "UMLAL v24.2D, v18.2S, v0.2S \n\t"
- "MADD x12, x23, x25, x12 \n\t"
- "UMLAL v25.2D, v18.2S, v1.2S \n\t"
- "MADD x13, x23, x26, x13 \n\t"
- "UMLAL v21.2D, v19.2S, v6.2S \n\t"
- "MADD x9, x24, x16, x9 \n\t"
- "UMLAL v22.2D, v19.2S, v7.2S \n\t"
- "MADD x10, x24, x17, x10 \n\t"
- "UMLAL v23.2D, v19.2S, v8.2S \n\t"
- "MADD x11, x24, x8, x11 \n\t"
- "UMLAL v24.2D, v19.2S, v9.2S \n\t"
- "MADD x12, x24, x19, x12 \n\t"
- "UMLAL v25.2D, v19.2S, v0.2S \n\t"
- "MADD x13, x24, x25, x13 \n\t"
- /* d0 = h0*r0 + h1*s4 + h2*s3 + h3*s2 + h4*s1 */
- /* d1 = h0*r1 + h1*r0 + h2*s4 + h3*s3 + h4*s2 */
- /* d2 = h0*r2 + h1*r1 + h2*r0 + h3*s4 + h4*s3 */
- /* d3 = h0*r3 + h1*r2 + h2*r1 + h3*r0 + h4*s4 */
- /* d4 = h0*r4 + h1*r3 + h2*r2 + h3*r1 + h4*r0 */
- "UMLAL2 v21.2D, v10.4S, v0.4S \n\t"
- /* Reduce h % P */
- "MOV x14, #5 \n\t"
- "UMLAL2 v22.2D, v10.4S, v1.4S \n\t"
- "ADD x10, x10, x9, LSR #26 \n\t"
- "UMLAL2 v23.2D, v10.4S, v2.4S \n\t"
- "ADD x13, x13, x12, LSR #26 \n\t"
- "UMLAL2 v24.2D, v10.4S, v3.4S \n\t"
- "AND x9, x9, #0x3ffffff \n\t"
- "UMLAL2 v25.2D, v10.4S, v4.4S \n\t"
- "LSR x20, x13, #26 \n\t"
- "UMLAL2 v21.2D, v11.4S, v9.4S \n\t"
- "AND x12, x12, #0x3ffffff \n\t"
- "UMLAL2 v22.2D, v11.4S, v0.4S \n\t"
- "MADD x9, x20, x14, x9 \n\t"
- "UMLAL2 v23.2D, v11.4S, v1.4S \n\t"
- "ADD x11, x11, x10, LSR #26 \n\t"
- "UMLAL2 v24.2D, v11.4S, v2.4S \n\t"
- "AND x10, x10, #0x3ffffff \n\t"
- "UMLAL2 v25.2D, v11.4S, v3.4S \n\t"
- "AND x13, x13, #0x3ffffff \n\t"
- "UMLAL2 v21.2D, v12.4S, v8.4S \n\t"
- "ADD x12, x12, x11, LSR #26 \n\t"
- "UMLAL2 v22.2D, v12.4S, v9.4S \n\t"
- "AND x22, x11, #0x3ffffff \n\t"
- "UMLAL2 v23.2D, v12.4S, v0.4S \n\t"
- "ADD x21, x10, x9, LSR #26 \n\t"
- "UMLAL2 v24.2D, v12.4S, v1.4S \n\t"
- "AND x20, x9, #0x3ffffff \n\t"
- "UMLAL2 v25.2D, v12.4S, v2.4S \n\t"
- "ADD x24, x13, x12, LSR #26 \n\t"
- "UMLAL2 v21.2D, v13.4S, v7.4S \n\t"
- "AND x23, x12, #0x3ffffff \n\t"
- "UMLAL2 v22.2D, v13.4S, v8.4S \n\t"
- "UMLAL2 v23.2D, v13.4S, v9.4S \n\t"
- "UMLAL2 v24.2D, v13.4S, v0.4S \n\t"
- "UMLAL2 v25.2D, v13.4S, v1.4S \n\t"
- "UMLAL2 v21.2D, v14.4S, v6.4S \n\t"
- "UMLAL2 v22.2D, v14.4S, v7.4S \n\t"
- "UMLAL2 v23.2D, v14.4S, v8.4S \n\t"
- "UMLAL2 v24.2D, v14.4S, v9.4S \n\t"
- "UMLAL2 v25.2D, v14.4S, v0.4S \n\t"
- /* If less than six message blocks left then leave loop */
- "CMP %[bytes], %[POLY1305_BLOCK_SIZE]*6 \n\t"
- "BLS L_poly1305_64_loop_128_final_%= \n\t"
- /* Load m */
- /* Load four message blocks to NEON v10, v11, v12, v13, v14 */
- "LD4 { v10.4S-v13.4S }, [%[m]], #64 \n\t"
- "SUB %[bytes], %[bytes], %[POLY1305_BLOCK_SIZE]*4 \n\t"
- "USHR v14.4S, v13.4S, #8 \n\t"
- "ORR v14.16B, v14.16B, v30.16B \n\t"
- "SHL v13.4S, v13.4S, #18 \n\t"
- "SRI v13.4S, v12.4S, #14 \n\t"
- "SHL v12.4S, v12.4S, #12 \n\t"
- "SRI v12.4S, v11.4S, #20 \n\t"
- "SHL v11.4S, v11.4S, #6 \n\t"
- "SRI v11.4S, v10.4S, #26 \n\t"
- "AND v10.16B, v10.16B, v29.16B \n\t"
- "AND v11.16B, v11.16B, v29.16B \n\t"
- "AND v12.16B, v12.16B, v29.16B \n\t"
- "AND v13.16B, v13.16B, v29.16B \n\t"
- "AND v14.16B, v14.16B, v29.16B \n\t"
- /* Four message blocks loaded */
- /* Add new message block to accumulator */
- "UADDW v21.2D, v21.2D, v10.2S \n\t"
- "UADDW v22.2D, v22.2D, v11.2S \n\t"
- "UADDW v23.2D, v23.2D, v12.2S \n\t"
- "UADDW v24.2D, v24.2D, v13.2S \n\t"
- "UADDW v25.2D, v25.2D, v14.2S \n\t"
- /* Reduce radix 26 NEON */
- /* Interleave h0 -> h1 -> h2 -> h3 -> h4 */
- /* with h3 -> h4 -> h0 -> h1 */
- "USRA v22.2D, v21.2D, #26 \n\t"
- "AND v21.16B, v21.16B, v27.16B \n\t"
- "USRA v25.2D, v24.2D, #26 \n\t"
- "AND v24.16B, v24.16B, v27.16B \n\t"
- "USHR v15.2D, v25.2D, #26 \n\t"
- "USRA v23.2D, v22.2D, #26 \n\t"
- /* Simulate multiplying by 5 using adding and shifting */
- "SHL v18.2D, v15.2D, #2 \n\t"
- "AND v16.16B, v22.16B, v27.16B \n\t"
- "ADD v18.2D, v18.2D, v15.2D \n\t"
- "AND v19.16B, v25.16B, v27.16B \n\t"
- "ADD v21.2D, v21.2D, v18.2D \n\t"
- "USRA v24.2D, v23.2D, #26 \n\t"
- "AND v17.16B, v23.16B, v27.16B \n\t"
- "USRA v16.2D, v21.2D, #26 \n\t"
- "AND v15.16B, v21.16B, v27.16B \n\t"
- "USRA v19.2D, v24.2D, #26 \n\t"
- "AND v18.16B, v24.16B, v27.16B \n\t"
- /* Copy values to lower halves of result registers */
- "MOV v15.S[1], v15.S[2] \n\t"
- "MOV v16.S[1], v16.S[2] \n\t"
- "MOV v17.S[1], v17.S[2] \n\t"
- "MOV v18.S[1], v18.S[2] \n\t"
- "MOV v19.S[1], v19.S[2] \n\t"
- "B L_poly1305_64_loop_128_%= \n\t"
- "\n"
- ".align 2 \n\t"
- "L_poly1305_64_loop_128_final_%=: \n\t"
- /* Load m */
- /* Load two message blocks to NEON v10, v11, v12, v13, v14 */
- "LD2 { v10.2D-v11.2D }, [%[m]], #32 \n\t"
- /* Copy r^2 to lower half of registers */
- "MOV v0.D[0], v0.D[1] \n\t"
- "SUB %[bytes], %[bytes], %[POLY1305_BLOCK_SIZE]*2 \n\t"
- "MOV v5.D[0], v5.D[1] \n\t"
- "USHR v14.2D, v11.2D, #40 \n\t"
- "MOV v1.D[0], v1.D[1] \n\t"
- "ORR v14.16B, v14.16B, v26.16B \n\t"
- "MOV v6.D[0], v6.D[1] \n\t"
- "USHR v13.2D, v11.2D, #14 \n\t"
- "MOV v2.D[0], v2.D[1] \n\t"
- "AND v13.16B, v13.16B, v27.16B \n\t"
- "MOV v7.D[0], v7.D[1] \n\t"
- "SHL v12.2D, v11.2D, #12 \n\t"
- "MOV v3.D[0], v3.D[1] \n\t"
- "SRI v12.2D, v10.2D, #52 \n\t"
- "MOV v8.D[0], v8.D[1] \n\t"
- "AND v12.16B, v12.16B, v27.16B \n\t"
- "MOV v4.D[0], v4.D[1] \n\t"
- "USHR v11.2D, v10.2D, #26 \n\t"
- "MOV v9.D[0], v9.D[1] \n\t"
- "AND v11.16B, v11.16B, v27.16B \n\t"
- /* Copy r^2 to ARM */
- "MOV w25, v0.S[2] \n\t"
- "AND v10.16B, v10.16B, v27.16B \n\t"
- "MOV w26, v1.S[2] \n\t"
- /* Two message blocks loaded */
- /* Add last messages */
- "ADD v21.2D, v21.2D, v10.2D \n\t"
- "MOV w27, v2.S[2] \n\t"
- "ADD v22.2D, v22.2D, v11.2D \n\t"
- "MOV w28, v3.S[2] \n\t"
- "ADD v23.2D, v23.2D, v12.2D \n\t"
- "MOV w30, v4.S[2] \n\t"
- "ADD v24.2D, v24.2D, v13.2D \n\t"
- /* Copy 5*r^2 to ARM */
- "MOV w15, v5.S[2] \n\t"
- "ADD v25.2D, v25.2D, v14.2D \n\t"
- "MOV w16, v6.S[2] \n\t"
- /* Reduce message to be ready for next multiplication */
- /* Reduce radix 26 NEON */
- /* Interleave h0 -> h1 -> h2 -> h3 -> h4 */
- /* with h3 -> h4 -> h0 -> h1 */
- "USRA v22.2D, v21.2D, #26 \n\t"
- "MOV w17, v7.S[2] \n\t"
- "AND v21.16B, v21.16B, v27.16B \n\t"
- "MOV w8, v8.S[2] \n\t"
- "USRA v25.2D, v24.2D, #26 \n\t"
- "MOV w19, v9.S[2] \n\t"
- "AND v24.16B, v24.16B, v27.16B \n\t"
- "USHR v15.2D, v25.2D, #26 \n\t"
- "USRA v23.2D, v22.2D, #26 \n\t"
- /* Simulate multiplying by 5 using adding and shifting */
- "SHL v18.2D, v15.2D, #2 \n\t"
- "AND v16.16B, v22.16B, v27.16B \n\t"
- "ADD v18.2D, v18.2D, v15.2D \n\t"
- "AND v19.16B, v25.16B, v27.16B \n\t"
- "ADD v21.2D, v21.2D, v18.2D \n\t"
- "USRA v24.2D, v23.2D, #26 \n\t"
- "AND v17.16B, v23.16B, v27.16B \n\t"
- "USRA v16.2D, v21.2D, #26 \n\t"
- "AND v15.16B, v21.16B, v27.16B \n\t"
- "USRA v19.2D, v24.2D, #26 \n\t"
- "AND v18.16B, v24.16B, v27.16B \n\t"
- /* Copy values to lower halves of result registers */
- "MOV v15.S[1], v15.S[2] \n\t"
- "MOV v16.S[1], v16.S[2] \n\t"
- "MOV v17.S[1], v17.S[2] \n\t"
- "MOV v18.S[1], v18.S[2] \n\t"
- "MOV v19.S[1], v19.S[2] \n\t"
- /* If less than 2 blocks left go straight to final multiplication. */
- "CMP %[bytes], %[POLY1305_BLOCK_SIZE]*2 \n\t"
- "BLO L_poly1305_64_last_mult_%= \n\t"
- /* Else go to one loop of L_poly1305_64_loop_64 */
- "B L_poly1305_64_loop_64_%= \n\t"
- "\n"
- ".align 2 \n\t"
- "L_poly1305_64_start_block_size_64_%=: \n\t"
- /* Load r^2 to NEON v0, v1, v2, v3, v4 */
- "LD4R { v0.2S-v3.2S }, [%[r_2]], #16 \n\t"
- "LD1R { v4.2S }, [%[r_2]] \n\t"
- "SUB %[r_2], %[r_2], #16 \n\t"
- /* Store r^2 * 5 */
- "MUL v5.4S, v0.4S, v28.S[0] \n\t"
- "MUL v6.4S, v1.4S, v28.S[0] \n\t"
- "MUL v7.4S, v2.4S, v28.S[0] \n\t"
- "MUL v8.4S, v3.4S, v28.S[0] \n\t"
- "MUL v9.4S, v4.4S, v28.S[0] \n\t"
- /* Copy r^2 to ARM */
- "MOV w25, v0.S[0] \n\t"
- "MOV w26, v1.S[0] \n\t"
- "MOV w27, v2.S[0] \n\t"
- "MOV w28, v3.S[0] \n\t"
- "MOV w30, v4.S[0] \n\t"
- /* Copy 5*r^2 to ARM */
- "MOV w15, v5.S[0] \n\t"
- "MOV w16, v6.S[0] \n\t"
- "MOV w17, v7.S[0] \n\t"
- "MOV w8, v8.S[0] \n\t"
- "MOV w19, v9.S[0] \n\t"
- /* Load m */
- /* Load two message blocks to NEON v10, v11, v12, v13, v14 */
- "LD2 { v10.2D-v11.2D }, [%[m]], #32 \n\t"
- "SUB %[bytes], %[bytes], %[POLY1305_BLOCK_SIZE]*2 \n\t"
- "USHR v14.2D, v11.2D, #40 \n\t"
- "ORR v14.16B, v14.16B, v26.16B \n\t"
- "USHR v13.2D, v11.2D, #14 \n\t"
- "AND v13.16B, v13.16B, v27.16B \n\t"
- "SHL v12.2D, v11.2D, #12 \n\t"
- "SRI v12.2D, v10.2D, #52 \n\t"
- "AND v12.16B, v12.16B, v27.16B \n\t"
- "USHR v11.2D, v10.2D, #26 \n\t"
- "AND v11.16B, v11.16B, v27.16B \n\t"
- "AND v10.16B, v10.16B, v27.16B \n\t"
- "MOV v10.S[1], v10.S[2] \n\t"
- "MOV v11.S[1], v11.S[2] \n\t"
- "MOV v12.S[1], v12.S[2] \n\t"
- "MOV v13.S[1], v13.S[2] \n\t"
- "MOV v14.S[1], v14.S[2] \n\t"
- /* Two message blocks loaded */
- /* Add messages to accumulator */
- "ADD v15.2S, v15.2S, v10.2S \n\t"
- "ADD v16.2S, v16.2S, v11.2S \n\t"
- "ADD v17.2S, v17.2S, v12.2S \n\t"
- "ADD v18.2S, v18.2S, v13.2S \n\t"
- "ADD v19.2S, v19.2S, v14.2S \n\t"
- "\n"
- ".align 2 \n\t"
- "L_poly1305_64_loop_64_%=: \n\t"
- /* d0 = h0*r0 + h1*s4 + h2*s3 + h3*s2 + h4*s1 */
- /* d1 = h0*r1 + h1*r0 + h2*s4 + h3*s3 + h4*s2 */
- /* d2 = h0*r2 + h1*r1 + h2*r0 + h3*s4 + h4*s3 */
- /* d3 = h0*r3 + h1*r2 + h2*r1 + h3*r0 + h4*s4 */
- /* d4 = h0*r4 + h1*r3 + h2*r2 + h3*r1 + h4*r0 */
- "UMULL v21.2D, v15.2S, v0.2S \n\t"
- /* Compute h*r^2 */
- /* d0 = h0 * r0 + h1 * s4 + h2 * s3 + h3 * s2 + h4 * s1 */
- /* d1 = h0 * r1 + h1 * r0 + h2 * s4 + h3 * s3 + h4 * s2 */
- /* d2 = h0 * r2 + h1 * r1 + h2 * r0 + h3 * s4 + h4 * s3 */
- /* d3 = h0 * r3 + h1 * r2 + h2 * r1 + h3 * r0 + h4 * s4 */
- /* d4 = h0 * r4 + h1 * r3 + h2 * r2 + h3 * r1 + h4 * r0 */
- "MUL x9, x20, x25 \n\t"
- "UMULL v22.2D, v15.2S, v1.2S \n\t"
- "MUL x10, x20, x26 \n\t"
- "UMULL v23.2D, v15.2S, v2.2S \n\t"
- "MUL x11, x20, x27 \n\t"
- "UMULL v24.2D, v15.2S, v3.2S \n\t"
- "MUL x12, x20, x28 \n\t"
- "UMULL v25.2D, v15.2S, v4.2S \n\t"
- "MUL x13, x20, x30 \n\t"
- "UMLAL v21.2D, v16.2S, v9.2S \n\t"
- "MADD x9, x21, x19, x9 \n\t"
- "UMLAL v22.2D, v16.2S, v0.2S \n\t"
- "MADD x10, x21, x25, x10 \n\t"
- "UMLAL v23.2D, v16.2S, v1.2S \n\t"
- "MADD x11, x21, x26, x11 \n\t"
- "UMLAL v24.2D, v16.2S, v2.2S \n\t"
- "MADD x12, x21, x27, x12 \n\t"
- "UMLAL v25.2D, v16.2S, v3.2S \n\t"
- "MADD x13, x21, x28, x13 \n\t"
- "UMLAL v21.2D, v17.2S, v8.2S \n\t"
- "MADD x9, x22, x8, x9 \n\t"
- "UMLAL v22.2D, v17.2S, v9.2S \n\t"
- "MADD x10, x22, x19, x10 \n\t"
- "UMLAL v23.2D, v17.2S, v0.2S \n\t"
- "MADD x11, x22, x25, x11 \n\t"
- "UMLAL v24.2D, v17.2S, v1.2S \n\t"
- "MADD x12, x22, x26, x12 \n\t"
- "UMLAL v25.2D, v17.2S, v2.2S \n\t"
- "MADD x13, x22, x27, x13 \n\t"
- "UMLAL v21.2D, v18.2S, v7.2S \n\t"
- "MADD x9, x23, x17, x9 \n\t"
- "UMLAL v22.2D, v18.2S, v8.2S \n\t"
- "MADD x10, x23, x8, x10 \n\t"
- "UMLAL v23.2D, v18.2S, v9.2S \n\t"
- "MADD x11, x23, x19, x11 \n\t"
- "UMLAL v24.2D, v18.2S, v0.2S \n\t"
- "MADD x12, x23, x25, x12 \n\t"
- "UMLAL v25.2D, v18.2S, v1.2S \n\t"
- "MADD x13, x23, x26, x13 \n\t"
- "UMLAL v21.2D, v19.2S, v6.2S \n\t"
- "MADD x9, x24, x16, x9 \n\t"
- "UMLAL v22.2D, v19.2S, v7.2S \n\t"
- "MADD x10, x24, x17, x10 \n\t"
- "UMLAL v23.2D, v19.2S, v8.2S \n\t"
- "MADD x11, x24, x8, x11 \n\t"
- "UMLAL v24.2D, v19.2S, v9.2S \n\t"
- "MADD x12, x24, x19, x12 \n\t"
- "UMLAL v25.2D, v19.2S, v0.2S \n\t"
- "MADD x13, x24, x25, x13 \n\t"
- /* Load m */
- /* Load two message blocks to NEON v10, v11, v12, v13, v14 */
- "LD2 { v10.2D-v11.2D }, [%[m]], #32 \n\t"
- /* Reduce h % P */
- "MOV x14, #5 \n\t"
- "SUB %[bytes], %[bytes], %[POLY1305_BLOCK_SIZE]*2 \n\t"
- "ADD x10, x10, x9, LSR #26 \n\t"
- "USHR v14.2D, v11.2D, #40 \n\t"
- "ADD x13, x13, x12, LSR #26 \n\t"
- "ORR v14.16B, v14.16B, v26.16B \n\t"
- "AND x9, x9, #0x3ffffff \n\t"
- "USHR v13.2D, v11.2D, #14 \n\t"
- "LSR x20, x13, #26 \n\t"
- "AND v13.16B, v13.16B, v27.16B \n\t"
- "AND x12, x12, #0x3ffffff \n\t"
- "SHL v12.2D, v11.2D, #12 \n\t"
- "MADD x9, x20, x14, x9 \n\t"
- "SRI v12.2D, v10.2D, #52 \n\t"
- "ADD x11, x11, x10, LSR #26 \n\t"
- "AND v12.16B, v12.16B, v27.16B \n\t"
- "AND x10, x10, #0x3ffffff \n\t"
- "USHR v11.2D, v10.2D, #26 \n\t"
- "AND x13, x13, #0x3ffffff \n\t"
- "AND v11.16B, v11.16B, v27.16B \n\t"
- "ADD x12, x12, x11, LSR #26 \n\t"
- "AND v10.16B, v10.16B, v27.16B \n\t"
- "AND x22, x11, #0x3ffffff \n\t"
- /* Two message blocks loaded */
- "ADD v21.2D, v21.2D, v10.2D \n\t"
- "ADD x21, x10, x9, LSR #26 \n\t"
- "ADD v22.2D, v22.2D, v11.2D \n\t"
- "AND x20, x9, #0x3ffffff \n\t"
- "ADD v23.2D, v23.2D, v12.2D \n\t"
- "ADD x24, x13, x12, LSR #26 \n\t"
- "ADD v24.2D, v24.2D, v13.2D \n\t"
- "AND x23, x12, #0x3ffffff \n\t"
- "ADD v25.2D, v25.2D, v14.2D \n\t"
- /* Reduce radix 26 NEON */
- /* Interleave h0 -> h1 -> h2 -> h3 -> h4 */
- /* with h3 -> h4 -> h0 -> h1 */
- "USRA v22.2D, v21.2D, #26 \n\t"
- "AND v21.16B, v21.16B, v27.16B \n\t"
- "USRA v25.2D, v24.2D, #26 \n\t"
- "AND v24.16B, v24.16B, v27.16B \n\t"
- "USHR v15.2D, v25.2D, #26 \n\t"
- "USRA v23.2D, v22.2D, #26 \n\t"
- /* Simulate multiplying by 5 using adding and shifting */
- "SHL v18.2D, v15.2D, #2 \n\t"
- "AND v16.16B, v22.16B, v27.16B \n\t"
- "ADD v18.2D, v18.2D, v15.2D \n\t"
- "AND v19.16B, v25.16B, v27.16B \n\t"
- "ADD v21.2D, v21.2D, v18.2D \n\t"
- "USRA v24.2D, v23.2D, #26 \n\t"
- "AND v17.16B, v23.16B, v27.16B \n\t"
- "USRA v16.2D, v21.2D, #26 \n\t"
- "AND v15.16B, v21.16B, v27.16B \n\t"
- "USRA v19.2D, v24.2D, #26 \n\t"
- "AND v18.16B, v24.16B, v27.16B \n\t"
- /* Copy values to lower halves of result registers */
- "MOV v15.S[1], v15.S[2] \n\t"
- "MOV v16.S[1], v16.S[2] \n\t"
- "MOV v17.S[1], v17.S[2] \n\t"
- "MOV v18.S[1], v18.S[2] \n\t"
- "MOV v19.S[1], v19.S[2] \n\t"
- /* If at least two message blocks left then loop_64 */
- "CMP %[bytes], %[POLY1305_BLOCK_SIZE]*2 \n\t"
- "BHS L_poly1305_64_loop_64_%= \n\t"
- "\n"
- ".align 2 \n\t"
- "L_poly1305_64_last_mult_%=: \n\t"
- /* Load r */
- "LD4 { v0.S-v3.S }[1], [%[r]], #16 \n\t"
- /* Compute h*r^2 */
- /* d0 = h0 * r0 + h1 * s4 + h2 * s3 + h3 * s2 + h4 * s1 */
- /* d1 = h0 * r1 + h1 * r0 + h2 * s4 + h3 * s3 + h4 * s2 */
- /* d2 = h0 * r2 + h1 * r1 + h2 * r0 + h3 * s4 + h4 * s3 */
- /* d3 = h0 * r3 + h1 * r2 + h2 * r1 + h3 * r0 + h4 * s4 */
- /* d4 = h0 * r4 + h1 * r3 + h2 * r2 + h3 * r1 + h4 * r0 */
- "MUL x9, x20, x25 \n\t"
- "LD1 { v4.S }[1], [%[r]] \n\t"
- "MUL x10, x20, x26 \n\t"
- "SUB %[r], %[r], #16 \n\t"
- "MUL x11, x20, x27 \n\t"
- /* Store [r^2, r] * 5 */
- "MUL v5.2S, v0.2S, v28.S[0] \n\t"
- "MUL x12, x20, x28 \n\t"
- "MUL v6.2S, v1.2S, v28.S[0] \n\t"
- "MUL x13, x20, x30 \n\t"
- "MUL v7.2S, v2.2S, v28.S[0] \n\t"
- "MADD x9, x21, x19, x9 \n\t"
- "MUL v8.2S, v3.2S, v28.S[0] \n\t"
- "MADD x10, x21, x25, x10 \n\t"
- "MUL v9.2S, v4.2S, v28.S[0] \n\t"
- "MADD x11, x21, x26, x11 \n\t"
- /* Final multiply by [r^2, r] */
- /* d0 = h0*r0 + h1*s4 + h2*s3 + h3*s2 + h4*s1 */
- /* d1 = h0*r1 + h1*r0 + h2*s4 + h3*s3 + h4*s2 */
- /* d2 = h0*r2 + h1*r1 + h2*r0 + h3*s4 + h4*s3 */
- /* d3 = h0*r3 + h1*r2 + h2*r1 + h3*r0 + h4*s4 */
- /* d4 = h0*r4 + h1*r3 + h2*r2 + h3*r1 + h4*r0 */
- "UMULL v21.2D, v15.2S, v0.2S \n\t"
- "MADD x12, x21, x27, x12 \n\t"
- "UMULL v22.2D, v15.2S, v1.2S \n\t"
- "MADD x13, x21, x28, x13 \n\t"
- "UMULL v23.2D, v15.2S, v2.2S \n\t"
- "MADD x9, x22, x8, x9 \n\t"
- "UMULL v24.2D, v15.2S, v3.2S \n\t"
- "MADD x10, x22, x19, x10 \n\t"
- "UMULL v25.2D, v15.2S, v4.2S \n\t"
- "MADD x11, x22, x25, x11 \n\t"
- "UMLAL v21.2D, v16.2S, v9.2S \n\t"
- "MADD x12, x22, x26, x12 \n\t"
- "UMLAL v22.2D, v16.2S, v0.2S \n\t"
- "MADD x13, x22, x27, x13 \n\t"
- "UMLAL v23.2D, v16.2S, v1.2S \n\t"
- "MADD x9, x23, x17, x9 \n\t"
- "UMLAL v24.2D, v16.2S, v2.2S \n\t"
- "MADD x10, x23, x8, x10 \n\t"
- "UMLAL v25.2D, v16.2S, v3.2S \n\t"
- "MADD x11, x23, x19, x11 \n\t"
- "UMLAL v21.2D, v17.2S, v8.2S \n\t"
- "MADD x12, x23, x25, x12 \n\t"
- "UMLAL v22.2D, v17.2S, v9.2S \n\t"
- "MADD x13, x23, x26, x13 \n\t"
- "UMLAL v23.2D, v17.2S, v0.2S \n\t"
- "MADD x9, x24, x16, x9 \n\t"
- "UMLAL v24.2D, v17.2S, v1.2S \n\t"
- "MADD x10, x24, x17, x10 \n\t"
- "UMLAL v25.2D, v17.2S, v2.2S \n\t"
- "MADD x11, x24, x8, x11 \n\t"
- "UMLAL v21.2D, v18.2S, v7.2S \n\t"
- "MADD x12, x24, x19, x12 \n\t"
- "UMLAL v22.2D, v18.2S, v8.2S \n\t"
- "MADD x13, x24, x25, x13 \n\t"
- "UMLAL v23.2D, v18.2S, v9.2S \n\t"
- /* Reduce h % P */
- "MOV x14, #5 \n\t"
- "UMLAL v24.2D, v18.2S, v0.2S \n\t"
- "ADD x10, x10, x9, LSR #26 \n\t"
- "UMLAL v25.2D, v18.2S, v1.2S \n\t"
- "ADD x13, x13, x12, LSR #26 \n\t"
- "UMLAL v21.2D, v19.2S, v6.2S \n\t"
- "AND x9, x9, #0x3ffffff \n\t"
- "UMLAL v22.2D, v19.2S, v7.2S \n\t"
- "LSR x20, x13, #26 \n\t"
- "UMLAL v23.2D, v19.2S, v8.2S \n\t"
- "AND x12, x12, #0x3ffffff \n\t"
- "UMLAL v24.2D, v19.2S, v9.2S \n\t"
- "MADD x9, x20, x14, x9 \n\t"
- "UMLAL v25.2D, v19.2S, v0.2S \n\t"
- "ADD x11, x11, x10, LSR #26 \n\t"
- /* Add even and odd elements */
- "ADDP d21, v21.2D \n\t"
- "AND x10, x10, #0x3ffffff \n\t"
- "ADDP d22, v22.2D \n\t"
- "AND x13, x13, #0x3ffffff \n\t"
- "ADDP d23, v23.2D \n\t"
- "ADD x12, x12, x11, LSR #26 \n\t"
- "ADDP d24, v24.2D \n\t"
- "AND x22, x11, #0x3ffffff \n\t"
- "ADDP d25, v25.2D \n\t"
- "ADD x21, x10, x9, LSR #26 \n\t"
- "AND x20, x9, #0x3ffffff \n\t"
- "ADD x24, x13, x12, LSR #26 \n\t"
- "AND x23, x12, #0x3ffffff \n\t"
- /* Load h to NEON */
- "MOV v5.D[0], x20 \n\t"
- "MOV v6.D[0], x21 \n\t"
- "MOV v7.D[0], x22 \n\t"
- "MOV v8.D[0], x23 \n\t"
- "MOV v9.D[0], x24 \n\t"
- /* Add ctx->h to current accumulator */
- "ADD v21.2D, v21.2D, v5.2D \n\t"
- "ADD v22.2D, v22.2D, v6.2D \n\t"
- "ADD v23.2D, v23.2D, v7.2D \n\t"
- "ADD v24.2D, v24.2D, v8.2D \n\t"
- "ADD v25.2D, v25.2D, v9.2D \n\t"
- /* Reduce h (h % P) */
- /* Reduce radix 26 NEON */
- /* Interleave h0 -> h1 -> h2 -> h3 -> h4 */
- /* with h3 -> h4 -> h0 -> h1 */
- "USRA v22.2D, v21.2D, #26 \n\t"
- "AND v21.16B, v21.16B, v27.16B \n\t"
- "USRA v25.2D, v24.2D, #26 \n\t"
- "AND v24.16B, v24.16B, v27.16B \n\t"
- "USHR v5.2D, v25.2D, #26 \n\t"
- "USRA v23.2D, v22.2D, #26 \n\t"
- /* Simulate multiplying by 5 using adding and shifting */
- "SHL v8.2D, v5.2D, #2 \n\t"
- "AND v6.16B, v22.16B, v27.16B \n\t"
- "ADD v8.2D, v8.2D, v5.2D \n\t"
- "AND v9.16B, v25.16B, v27.16B \n\t"
- "ADD v21.2D, v21.2D, v8.2D \n\t"
- "USRA v24.2D, v23.2D, #26 \n\t"
- "AND v7.16B, v23.16B, v27.16B \n\t"
- "USRA v6.2D, v21.2D, #26 \n\t"
- "AND v5.16B, v21.16B, v27.16B \n\t"
- "USRA v9.2D, v24.2D, #26 \n\t"
- "AND v8.16B, v24.16B, v27.16B \n\t"
- /* Copy values to lower halves of result registers */
- /* Store h */
- "ST4 { v5.S-v8.S }[0], [%[h]], #16 \n\t"
- "ST1 { v9.S }[0], [%[h]] \n\t"
- "SUB %[h], %[h], #16 \n\t"
- "\n"
- ".align 2 \n\t"
- "L_poly1305_64_done_%=: \n\t"
- : [bytes] "+r" (bytes),
- [m] "+r" (m),
- [ctx] "+m" (ctx)
- : [POLY1305_BLOCK_SIZE] "I" (POLY1305_BLOCK_SIZE),
- [h] "r" (ctx->h),
- [r] "r" (ctx->r),
- [r_2] "r" (ctx->r_2),
- [r_4] "r" (ctx->r_4),
- [finished] "r" ((word64)ctx->finished)
- : "memory", "cc",
- "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v8", "v9",
- "v10", "v11", "v12", "v13", "v14", "v15", "v16", "v17", "v18", "v19",
- "v21", "v22", "v23", "v24", "v25", "v26", "v27", "v28", "v29", "v30",
- "w8", "w9", "w10", "w11", "w12", "w13", "w14", "w15", "w16", "w17",
- "w19", "w20", "w21", "w22", "w23", "w24", "w25", "w26", "w27", "w28",
- "w30", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16",
- "x17", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27",
- "x28", "x30"
- );
- poly1305_blocks_16(ctx, m, bytes);
-}
-
-void poly1305_block(Poly1305* ctx, const unsigned char *m)
-{
- poly1305_blocks_16(ctx, m, POLY1305_BLOCK_SIZE);
-}
-
-#if defined(POLY130564)
-static word64 clamp[] = {
- 0x0ffffffc0fffffff,
- 0x0ffffffc0ffffffc,
-};
-#endif /* POLY130564 */
-
-
-int wc_Poly1305SetKey(Poly1305* ctx, const byte* key, word32 keySz)
-{
- if (key == NULL)
- return BAD_FUNC_ARG;
-
-#ifdef CHACHA_AEAD_TEST
- word32 k;
- printf("Poly key used:\n");
- for (k = 0; k < keySz; k++) {
- printf("%02x", key[k]);
- if ((k+1) % 8 == 0)
- printf("\n");
- }
- printf("\n");
-#endif
-
- if (keySz != 32 || ctx == NULL)
- return BAD_FUNC_ARG;
-
- __asm__ __volatile__ (
- /* Load key material */
- "LDP x8, x9, [%[key]] \n\t"
- "LDP x10, x11, [%[key], #16] \n\t"
- /* Load clamp */
- "LDP x12, x13, [%[clamp]] \n\t"
- /* Apply clamp */
- /* r &= 0xffffffc0ffffffc0ffffffc0fffffff */
- "AND x8, x8, x12 \n\t"
- "AND x9, x9, x13 \n\t"
- "MOV x19, xzr \n\t"
- "MOV x20, xzr \n\t"
- "MOV x21, xzr \n\t"
- "MOV x22, xzr \n\t"
- "MOV x23, xzr \n\t"
- "BFI x19, x8, #0, #26 \n\t"
- "LSR x8, x8, #26 \n\t"
- "BFI x20, x8, #0, #26 \n\t"
- "LSR x8, x8, #26 \n\t"
- "BFI x21, x8, #0, #12 \n\t"
- "BFI x21, x9, #12, #14 \n\t"
- "LSR x9, x9, #14 \n\t"
- "BFI x22, x9, #0, #26 \n\t"
- "LSR x9, x9, #26 \n\t"
- "BFI x23, x9, #0, #24 \n\t"
- /* Compute r^2 */
- /* r*5 */
- "MOV x8, #5 \n\t"
- "MUL x24, x20, x8 \n\t"
- "MUL x25, x21, x8 \n\t"
- "MUL x26, x22, x8 \n\t"
- "MUL x27, x23, x8 \n\t"
- /* d = r*r */
- /* d0 = h0 * r0 + h1 * s4 + h2 * s3 + h3 * s2 + h4 * s1 */
- /* d1 = h0 * r1 + h1 * r0 + h2 * s4 + h3 * s3 + h4 * s2 */
- /* d2 = h0 * r2 + h1 * r1 + h2 * r0 + h3 * s4 + h4 * s3 */
- /* d3 = h0 * r3 + h1 * r2 + h2 * r1 + h3 * r0 + h4 * s4 */
- /* d4 = h0 * r4 + h1 * r3 + h2 * r2 + h3 * r1 + h4 * r0 */
- "MUL x14, x19, x19 \n\t"
- "MUL x15, x19, x20 \n\t"
- "MUL x16, x19, x21 \n\t"
- "MUL x17, x19, x22 \n\t"
- "MUL x7, x19, x23 \n\t"
- "MADD x14, x20, x27, x14 \n\t"
- "MADD x15, x20, x19, x15 \n\t"
- "MADD x16, x20, x20, x16 \n\t"
- "MADD x17, x20, x21, x17 \n\t"
- "MADD x7, x20, x22, x7 \n\t"
- "MADD x14, x21, x26, x14 \n\t"
- "MADD x15, x21, x27, x15 \n\t"
- "MADD x16, x21, x19, x16 \n\t"
- "MADD x17, x21, x20, x17 \n\t"
- "MADD x7, x21, x21, x7 \n\t"
- "MADD x14, x22, x25, x14 \n\t"
- "MADD x15, x22, x26, x15 \n\t"
- "MADD x16, x22, x27, x16 \n\t"
- "MADD x17, x22, x19, x17 \n\t"
- "MADD x7, x22, x20, x7 \n\t"
- "MADD x14, x23, x24, x14 \n\t"
- "MADD x15, x23, x25, x15 \n\t"
- "MADD x16, x23, x26, x16 \n\t"
- "MADD x17, x23, x27, x17 \n\t"
- "MADD x7, x23, x19, x7 \n\t"
- /* r_2 = r^2 % P */
- "ADD x15, x15, x14, LSR #26 \n\t"
- "ADD x7, x7, x17, LSR #26 \n\t"
- "AND x14, x14, #0x3ffffff \n\t"
- "LSR x9, x7, #26 \n\t"
- "AND x17, x17, #0x3ffffff \n\t"
- "MADD x14, x9, x8, x14 \n\t"
- "ADD x16, x16, x15, LSR #26 \n\t"
- "AND x15, x15, #0x3ffffff \n\t"
- "AND x7, x7, #0x3ffffff \n\t"
- "ADD x17, x17, x16, LSR #26 \n\t"
- "AND x16, x16, #0x3ffffff \n\t"
- "ADD x15, x15, x14, LSR #26 \n\t"
- "AND x14, x14, #0x3ffffff \n\t"
- "ADD x7, x7, x17, LSR #26 \n\t"
- "AND x17, x17, #0x3ffffff \n\t"
- /* Store r */
- "ORR x19, x19, x20, LSL #32 \n\t"
- "ORR x21, x21, x22, LSL #32 \n\t"
- "STP x19, x21, [%[ctx_r]] \n\t"
- "STR w23, [%[ctx_r], #16] \n\t"
- "MOV x8, #5 \n\t"
- "MUL x24, x15, x8 \n\t"
- "MUL x25, x16, x8 \n\t"
- "MUL x26, x17, x8 \n\t"
- "MUL x27, x7, x8 \n\t"
- /* Compute r^4 */
- /* d0 = h0 * r0 + h1 * s4 + h2 * s3 + h3 * s2 + h4 * s1 */
- /* d1 = h0 * r1 + h1 * r0 + h2 * s4 + h3 * s3 + h4 * s2 */
- /* d2 = h0 * r2 + h1 * r1 + h2 * r0 + h3 * s4 + h4 * s3 */
- /* d3 = h0 * r3 + h1 * r2 + h2 * r1 + h3 * r0 + h4 * s4 */
- /* d4 = h0 * r4 + h1 * r3 + h2 * r2 + h3 * r1 + h4 * r0 */
- "MUL x19, x14, x14 \n\t"
- "MUL x20, x14, x15 \n\t"
- "MUL x21, x14, x16 \n\t"
- "MUL x22, x14, x17 \n\t"
- "MUL x23, x14, x7 \n\t"
- "MADD x19, x15, x27, x19 \n\t"
- "MADD x20, x15, x14, x20 \n\t"
- "MADD x21, x15, x15, x21 \n\t"
- "MADD x22, x15, x16, x22 \n\t"
- "MADD x23, x15, x17, x23 \n\t"
- "MADD x19, x16, x26, x19 \n\t"
- "MADD x20, x16, x27, x20 \n\t"
- "MADD x21, x16, x14, x21 \n\t"
- "MADD x22, x16, x15, x22 \n\t"
- "MADD x23, x16, x16, x23 \n\t"
- "MADD x19, x17, x25, x19 \n\t"
- "MADD x20, x17, x26, x20 \n\t"
- "MADD x21, x17, x27, x21 \n\t"
- "MADD x22, x17, x14, x22 \n\t"
- "MADD x23, x17, x15, x23 \n\t"
- "MADD x19, x7, x24, x19 \n\t"
- "MADD x20, x7, x25, x20 \n\t"
- "MADD x21, x7, x26, x21 \n\t"
- "MADD x22, x7, x27, x22 \n\t"
- "MADD x23, x7, x14, x23 \n\t"
- /* r^4 % P */
- "ADD x20, x20, x19, LSR #26 \n\t"
- "ADD x23, x23, x22, LSR #26 \n\t"
- "AND x19, x19, #0x3ffffff \n\t"
- "LSR x9, x23, #26 \n\t"
- "AND x22, x22, #0x3ffffff \n\t"
- "MADD x19, x9, x8, x19 \n\t"
- "ADD x21, x21, x20, LSR #26 \n\t"
- "AND x20, x20, #0x3ffffff \n\t"
- "AND x23, x23, #0x3ffffff \n\t"
- "ADD x22, x22, x21, LSR #26 \n\t"
- "AND x21, x21, #0x3ffffff \n\t"
- "ADD x20, x20, x19, LSR #26 \n\t"
- "AND x19, x19, #0x3ffffff \n\t"
- "ADD x23, x23, x22, LSR #26 \n\t"
- "AND x22, x22, #0x3ffffff \n\t"
- /* Store r^2 */
- "ORR x14, x14, x15, LSL #32 \n\t"
- "ORR x16, x16, x17, LSL #32 \n\t"
- "STP x14, x16, [%[ctx_r_2]] \n\t"
- "STR w7, [%[ctx_r_2], #16] \n\t"
- /* Store r^4 */
- "ORR x19, x19, x20, LSL #32 \n\t"
- "ORR x21, x21, x22, LSL #32 \n\t"
- "STP x19, x21, [%[ctx_r_4]] \n\t"
- "STR w23, [%[ctx_r_4], #16] \n\t"
- /* h (accumulator) = 0 */
- "STP xzr, xzr, [%[ctx_h_0]] \n\t"
- "STR wzr, [%[ctx_h_0], #16] \n\t"
- /* Save pad for later */
- "STP x10, x11, [%[ctx_pad]] \n\t"
- /* Zero leftover */
- "STR xzr, [%[ctx_leftover]] \n\t"
- /* Zero finished */
- "STRB wzr, [%[ctx_finished]] \n\t"
- :
- : [clamp] "r" (clamp),
- [key] "r" (key),
- [ctx_r] "r" (ctx->r),
- [ctx_r_2] "r" (ctx->r_2),
- [ctx_r_4] "r" (ctx->r_4),
- [ctx_h_0] "r" (ctx->h),
- [ctx_pad] "r" (ctx->pad),
- [ctx_leftover] "r" (&ctx->leftover),
- [ctx_finished] "r" (&ctx->finished)
- : "memory", "cc",
- "w7", "w14", "w15", "w16", "w17", "w19", "w20", "w21", "w22", "w23",
- "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16",
- "x17", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27"
- );
-
- return 0;
-}
-
-
-int wc_Poly1305Final(Poly1305* ctx, byte* mac)
-{
-
- if (ctx == NULL)
- return BAD_FUNC_ARG;
-
- /* process the remaining block */
- if (ctx->leftover) {
- size_t i = ctx->leftover;
- ctx->buffer[i++] = 1;
- for (; i < POLY1305_BLOCK_SIZE; i++)
- ctx->buffer[i] = 0;
- ctx->finished = 1;
- poly1305_block(ctx, ctx->buffer);
- }
-
- __asm__ __volatile__ (
- /* Load raw h and zero h registers */
- "LDP x2, x3, %[h_addr] \n\t"
- "MOV x5, xzr \n\t"
- "LDR w4, %[h_4_addr] \n\t"
- "MOV x6, xzr \n\t"
- "LDP x16, x17, %[pad_addr] \n\t"
- /* Base 26 -> Base 64 */
- "MOV w5, w2 \n\t"
- "LSR x2, x2, #32 \n\t"
- "ORR x5, x5, x2, LSL #26 \n\t"
- "ORR x5, x5, x3, LSL #52 \n\t"
- "LSR w6, w3, #12 \n\t"
- "LSR x3, x3, #32 \n\t"
- "ORR x6, x6, x3, LSL #14 \n\t"
- "ORR x6, x6, x4, LSL #40 \n\t"
- "LSR x7, x4, #24 \n\t"
- /* Check if h is larger than p */
- "ADDS x2, x5, #5 \n\t"
- "ADCS x3, x6, xzr \n\t"
- "ADC x4, x7, xzr \n\t"
- /* Check if h+5 is larger than 2^130 */
- "CMP x4, #3 \n\t"
- "CSEL x5, x2, x5, HI \n\t"
- "CSEL x6, x3, x6, HI \n\t"
- "ADDS x5, x5, x16 \n\t"
- "ADC x6, x6, x17 \n\t"
- "STP x5, x6, [%[mac]] \n\t"
- : [mac] "+r" (mac)
- : [pad_addr] "m" (ctx->pad),
- [h_addr] "m" (ctx->h),
- [h_4_addr] "m" (ctx->h[4])
- : "memory", "cc",
- "w2", "w3", "w4", "w5", "w6", "w7", "x2", "x3", "x4", "x5",
- "x6", "x7", "x16", "x17"
- );
-
- /* zero out the state */
- ctx->h[0] = 0;
- ctx->h[1] = 0;
- ctx->h[2] = 0;
- ctx->h[3] = 0;
- ctx->h[4] = 0;
- ctx->r[0] = 0;
- ctx->r[1] = 0;
- ctx->r[2] = 0;
- ctx->r[3] = 0;
- ctx->r[4] = 0;
- ctx->r_2[0] = 0;
- ctx->r_2[1] = 0;
- ctx->r_2[2] = 0;
- ctx->r_2[3] = 0;
- ctx->r_2[4] = 0;
- ctx->r_4[0] = 0;
- ctx->r_4[1] = 0;
- ctx->r_4[2] = 0;
- ctx->r_4[3] = 0;
- ctx->r_4[4] = 0;
- ctx->pad[0] = 0;
- ctx->pad[1] = 0;
- ctx->pad[2] = 0;
- ctx->pad[3] = 0;
-
- return 0;
-}
-
-#endif /* HAVE_POLY1305 */
-#endif /* WOLFSSL_ARMASM */
-#endif /* __aarch64__ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha256.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha256.c
deleted file mode 100644
index 7f214d47c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha256.c
+++ /dev/null
@@ -1,1508 +0,0 @@
-/* armv8-sha256.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifdef WOLFSSL_ARMASM
-#if !defined(NO_SHA256) || defined(WOLFSSL_SHA224)
-
-#include <wolfssl/wolfcrypt/sha256.h>
-#include <wolfssl/wolfcrypt/logging.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-
-static const ALIGN32 word32 K[64] = {
- 0x428A2F98L, 0x71374491L, 0xB5C0FBCFL, 0xE9B5DBA5L, 0x3956C25BL,
- 0x59F111F1L, 0x923F82A4L, 0xAB1C5ED5L, 0xD807AA98L, 0x12835B01L,
- 0x243185BEL, 0x550C7DC3L, 0x72BE5D74L, 0x80DEB1FEL, 0x9BDC06A7L,
- 0xC19BF174L, 0xE49B69C1L, 0xEFBE4786L, 0x0FC19DC6L, 0x240CA1CCL,
- 0x2DE92C6FL, 0x4A7484AAL, 0x5CB0A9DCL, 0x76F988DAL, 0x983E5152L,
- 0xA831C66DL, 0xB00327C8L, 0xBF597FC7L, 0xC6E00BF3L, 0xD5A79147L,
- 0x06CA6351L, 0x14292967L, 0x27B70A85L, 0x2E1B2138L, 0x4D2C6DFCL,
- 0x53380D13L, 0x650A7354L, 0x766A0ABBL, 0x81C2C92EL, 0x92722C85L,
- 0xA2BFE8A1L, 0xA81A664BL, 0xC24B8B70L, 0xC76C51A3L, 0xD192E819L,
- 0xD6990624L, 0xF40E3585L, 0x106AA070L, 0x19A4C116L, 0x1E376C08L,
- 0x2748774CL, 0x34B0BCB5L, 0x391C0CB3L, 0x4ED8AA4AL, 0x5B9CCA4FL,
- 0x682E6FF3L, 0x748F82EEL, 0x78A5636FL, 0x84C87814L, 0x8CC70208L,
- 0x90BEFFFAL, 0xA4506CEBL, 0xBEF9A3F7L, 0xC67178F2L
-};
-
-
-static int InitSha256(wc_Sha256* sha256)
-{
- int ret = 0;
-
- if (sha256 == NULL) {
- return BAD_FUNC_ARG;
- }
-
- sha256->digest[0] = 0x6A09E667L;
- sha256->digest[1] = 0xBB67AE85L;
- sha256->digest[2] = 0x3C6EF372L;
- sha256->digest[3] = 0xA54FF53AL;
- sha256->digest[4] = 0x510E527FL;
- sha256->digest[5] = 0x9B05688CL;
- sha256->digest[6] = 0x1F83D9ABL;
- sha256->digest[7] = 0x5BE0CD19L;
-
- sha256->buffLen = 0;
- sha256->loLen = 0;
- sha256->hiLen = 0;
-
- return ret;
-}
-
-static WC_INLINE void AddLength(wc_Sha256* sha256, word32 len)
-{
- word32 tmp = sha256->loLen;
- if ((sha256->loLen += len) < tmp)
- sha256->hiLen++; /* carry low to high */
-}
-
-
-#ifdef __aarch64__
-
-/* ARMv8 hardware acceleration */
-static WC_INLINE int Sha256Update(wc_Sha256* sha256, const byte* data, word32 len)
-{
- word32 add;
- word32 numBlocks;
-
- /* only perform actions if a buffer is passed in */
- if (len > 0) {
- /* fill leftover buffer with data */
- add = min(len, WC_SHA256_BLOCK_SIZE - sha256->buffLen);
- XMEMCPY((byte*)(sha256->buffer) + sha256->buffLen, data, add);
- sha256->buffLen += add;
- data += add;
- len -= add;
-
- /* number of blocks in a row to complete */
- numBlocks = (len + sha256->buffLen)/WC_SHA256_BLOCK_SIZE;
-
- if (numBlocks > 0) {
- word32* k = (word32*)K;
-
- /* get leftover amount after blocks */
- add = (len + sha256->buffLen) - numBlocks * WC_SHA256_BLOCK_SIZE;
- __asm__ volatile (
- "#load leftover data\n"
- "LD1 {v0.2d-v3.2d}, %[buffer] \n"
-
- "#load current digest\n"
- "LD1 {v12.2d-v13.2d}, %[digest] \n"
- "MOV w8, %w[blocks] \n"
- "REV32 v0.16b, v0.16b \n"
- "REV32 v1.16b, v1.16b \n"
- "REV32 v2.16b, v2.16b \n"
- "REV32 v3.16b, v3.16b \n"
-
- "#load K values in \n"
- "LD1 {v16.4s-v19.4s}, [%[k]], #64 \n"
- "LD1 {v20.4s-v23.4s}, [%[k]], #64 \n"
- "MOV v14.16b, v12.16b \n" /* store digest for add at the end */
- "MOV v15.16b, v13.16b \n"
- "LD1 {v24.4s-v27.4s}, [%[k]], #64 \n"
- "LD1 {v28.4s-v31.4s}, [%[k]], #64 \n"
-
- /* beginning of SHA256 block operation */
- "1:\n"
- /* Round 1 */
- "MOV v4.16b, v0.16b \n"
- "ADD v0.4s, v0.4s, v16.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 2 */
- "SHA256SU0 v4.4s, v1.4s \n"
- "ADD v0.4s, v1.4s, v17.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256SU1 v4.4s, v2.4s, v3.4s \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 3 */
- "SHA256SU0 v1.4s, v2.4s \n"
- "ADD v0.4s, v2.4s, v18.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256SU1 v1.4s, v3.4s, v4.4s \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 4 */
- "SHA256SU0 v2.4s, v3.4s \n"
- "ADD v0.4s, v3.4s, v19.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256SU1 v2.4s, v4.4s, v1.4s \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 5 */
- "SHA256SU0 v3.4s, v4.4s \n"
- "ADD v0.4s, v4.4s, v20.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256SU1 v3.4s, v1.4s, v2.4s \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 6 */
- "SHA256SU0 v4.4s, v1.4s \n"
- "ADD v0.4s, v1.4s, v21.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256SU1 v4.4s, v2.4s, v3.4s \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 7 */
- "SHA256SU0 v1.4s, v2.4s \n"
- "ADD v0.4s, v2.4s, v22.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256SU1 v1.4s, v3.4s, v4.4s \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 8 */
- "SHA256SU0 v2.4s, v3.4s \n"
- "ADD v0.4s, v3.4s, v23.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256SU1 v2.4s, v4.4s, v1.4s \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 9 */
- "SHA256SU0 v3.4s, v4.4s \n"
- "ADD v0.4s, v4.4s, v24.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256SU1 v3.4s, v1.4s, v2.4s \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 10 */
- "SHA256SU0 v4.4s, v1.4s \n"
- "ADD v0.4s, v1.4s, v25.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256SU1 v4.4s, v2.4s, v3.4s \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 11 */
- "SHA256SU0 v1.4s, v2.4s \n"
- "ADD v0.4s, v2.4s, v26.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256SU1 v1.4s, v3.4s, v4.4s \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 12 */
- "SHA256SU0 v2.4s, v3.4s \n"
- "ADD v0.4s, v3.4s, v27.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256SU1 v2.4s, v4.4s, v1.4s \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 13 */
- "SHA256SU0 v3.4s, v4.4s \n"
- "ADD v0.4s, v4.4s, v28.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256SU1 v3.4s, v1.4s, v2.4s \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 14 */
- "ADD v0.4s, v1.4s, v29.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 15 */
- "ADD v0.4s, v2.4s, v30.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- /* Round 16 */
- "ADD v0.4s, v3.4s, v31.4s \n"
- "MOV v11.16b, v12.16b \n"
- "SHA256H q12, q13, v0.4s \n"
- "SHA256H2 q13, q11, v0.4s \n"
-
- "#Add working vars back into digest state \n"
- "SUB w8, w8, #1 \n"
- "ADD v12.4s, v12.4s, v14.4s \n"
- "ADD v13.4s, v13.4s, v15.4s \n"
-
- "#check if more blocks should be done\n"
- "CBZ w8, 2f \n"
-
- "#load in message and schedule updates \n"
- "LD1 {v0.2d-v3.2d}, [%[dataIn]], #64 \n"
- "MOV v14.16b, v12.16b \n"
- "MOV v15.16b, v13.16b \n"
- "REV32 v0.16b, v0.16b \n"
- "REV32 v1.16b, v1.16b \n"
- "REV32 v2.16b, v2.16b \n"
- "REV32 v3.16b, v3.16b \n"
- "B 1b \n" /* do another block */
-
- "2:\n"
- "STP q12, q13, %[out] \n"
-
- : [out] "=m" (sha256->digest), "=m" (sha256->buffer), "=r" (numBlocks),
- "=r" (data), "=r" (k)
- : [k] "4" (k), [digest] "m" (sha256->digest), [buffer] "m" (sha256->buffer),
- [blocks] "2" (numBlocks), [dataIn] "3" (data)
- : "cc", "memory", "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7",
- "v8", "v9", "v10", "v11", "v12", "v13", "v14",
- "v15", "v16", "v17", "v18", "v19", "v20", "v21",
- "v22", "v23", "v24", "v25", "v26", "v27", "v28",
- "v29", "v30", "v31", "w8"
- );
-
- AddLength(sha256, WC_SHA256_BLOCK_SIZE * numBlocks);
-
- /* copy over any remaining data leftover */
- XMEMCPY(sha256->buffer, data, add);
- sha256->buffLen = add;
- }
- }
-
- /* account for possibility of not used if len = 0 */
- (void)add;
- (void)numBlocks;
-
- return 0;
-}
-
-
-static WC_INLINE int Sha256Final(wc_Sha256* sha256, byte* hash)
-{
- byte* local;
-
- local = (byte*)sha256->buffer;
- AddLength(sha256, sha256->buffLen); /* before adding pads */
-
- local[sha256->buffLen++] = 0x80; /* add 1 */
-
- /* pad with zeros */
- if (sha256->buffLen > WC_SHA256_PAD_SIZE) {
-
- XMEMSET(&local[sha256->buffLen], 0, WC_SHA256_BLOCK_SIZE - sha256->buffLen);
- sha256->buffLen += WC_SHA256_BLOCK_SIZE - sha256->buffLen;
- __asm__ volatile (
- "LD1 {v4.2d-v7.2d}, %[buffer] \n"
- "MOV v0.16b, v4.16b \n"
- "MOV v1.16b, v5.16b \n"
- "REV32 v0.16b, v0.16b \n"
- "REV32 v1.16b, v1.16b \n"
- "MOV v2.16b, v6.16b \n"
- "MOV v3.16b, v7.16b \n"
- "REV32 v2.16b, v2.16b \n"
- "REV32 v3.16b, v3.16b \n"
- "MOV v4.16b, v0.16b \n"
- "MOV v5.16b, v1.16b \n"
- "LD1 {v20.2d-v21.2d}, %[digest] \n"
-
- "#SHA256 operation on updated message \n"
- "MOV v16.16b, v20.16b \n"
- "MOV v17.16b, v21.16b \n"
-
- "LD1 {v22.16b-v25.16b}, [%[k]], #64 \n"
- "SHA256SU0 v4.4s, v1.4s \n"
- "ADD v0.4s, v0.4s, v22.4s \n"
- "MOV v6.16b, v2.16b \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256SU1 v4.4s, v2.4s, v3.4s \n"
- "SHA256H q16, q17, v0.4s \n"
- "SHA256H2 q17, q18, v0.4s \n"
-
- "SHA256SU0 v5.4s, v2.4s \n"
- "ADD v1.4s, v1.4s, v23.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v7.16b, v3.16b \n"
- "SHA256SU1 v5.4s, v3.4s, v4.4s \n"
- "SHA256H q16, q17, v1.4s \n"
- "SHA256H2 q17, q18, v1.4s \n"
-
- "SHA256SU0 v6.4s, v3.4s \n"
- "ADD v2.4s, v2.4s, v24.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v8.16b, v4.16b \n"
- "SHA256SU1 v6.4s, v4.4s, v5.4s \n"
- "SHA256H q16, q17, v2.4s \n"
- "SHA256H2 q17, q18, v2.4s \n"
-
- "SHA256SU0 v7.4s, v4.4s \n"
- "ADD v3.4s, v3.4s, v25.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v9.16b, v5.16b \n"
- "SHA256SU1 v7.4s, v5.4s, v6.4s \n"
- "SHA256H q16, q17, v3.4s \n"
- "SHA256H2 q17, q18, v3.4s \n"
-
- "LD1 {v22.16b-v25.16b}, [%[k]], #64 \n"
- "SHA256SU0 v8.4s, v5.4s \n"
- "ADD v4.4s, v4.4s, v22.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v10.16b, v6.16b \n"
- "SHA256SU1 v8.4s, v6.4s, v7.4s \n"
- "SHA256H q16, q17, v4.4s \n"
- "SHA256H2 q17, q18, v4.4s \n"
-
- "SHA256SU0 v9.4s, v6.4s \n"
- "ADD v5.4s, v5.4s, v23.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v11.16b, v7.16b \n"
- "SHA256SU1 v9.4s, v7.4s, v8.4s \n"
- "SHA256H q16, q17, v5.4s \n"
- "SHA256H2 q17, q18, v5.4s \n"
-
- "SHA256SU0 v10.4s, v7.4s \n"
- "ADD v6.4s, v6.4s, v24.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v12.16b, v8.16b \n"
- "SHA256SU1 v10.4s, v8.4s, v9.4s \n"
- "SHA256H q16, q17, v6.4s \n"
- "SHA256H2 q17, q18, v6.4s \n"
-
- "SHA256SU0 v11.4s, v8.4s \n"
- "ADD v7.4s, v7.4s, v25.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v13.16b, v9.16b \n"
- "SHA256SU1 v11.4s, v9.4s, v10.4s \n"
- "SHA256H q16, q17, v7.4s \n"
- "SHA256H2 q17, q18, v7.4s \n"
-
- "LD1 {v22.16b-v25.16b}, [%[k]], #64 \n"
- "SHA256SU0 v12.4s, v9.4s \n"
- "ADD v8.4s, v8.4s, v22.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v14.16b, v10.16b \n"
- "SHA256SU1 v12.4s, v10.4s, v11.4s \n"
- "SHA256H q16, q17, v8.4s \n"
- "SHA256H2 q17, q18, v8.4s \n"
-
- "SHA256SU0 v13.4s, v10.4s \n"
- "ADD v9.4s, v9.4s, v23.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v15.16b, v11.16b \n"
- "SHA256SU1 v13.4s, v11.4s, v12.4s \n"
- "SHA256H q16, q17, v9.4s \n"
- "SHA256H2 q17, q18, v9.4s \n"
-
- "SHA256SU0 v14.4s, v11.4s \n"
- "ADD v10.4s, v10.4s, v24.4s \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256SU1 v14.4s, v12.4s, v13.4s \n"
- "SHA256H q16, q17, v10.4s \n"
- "SHA256H2 q17, q18, v10.4s \n"
-
- "SHA256SU0 v15.4s, v12.4s \n"
- "ADD v11.4s, v11.4s, v25.4s \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256SU1 v15.4s, v13.4s, v14.4s \n"
- "SHA256H q16, q17, v11.4s \n"
- "SHA256H2 q17, q18, v11.4s \n"
-
- "LD1 {v22.16b-v25.16b}, [%[k]] \n"
- "ADD v12.4s, v12.4s, v22.4s \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256H q16, q17, v12.4s \n"
- "SHA256H2 q17, q18, v12.4s \n"
-
- "ADD v13.4s, v13.4s, v23.4s \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256H q16, q17, v13.4s \n"
- "SHA256H2 q17, q18, v13.4s \n"
-
- "ADD v14.4s, v14.4s, v24.4s \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256H q16, q17, v14.4s \n"
- "SHA256H2 q17, q18, v14.4s \n"
-
- "ADD v15.4s, v15.4s, v25.4s \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256H q16, q17, v15.4s \n"
- "SHA256H2 q17, q18, v15.4s \n"
-
- "#Add working vars back into digest state \n"
- "ADD v16.4s, v16.4s, v20.4s \n"
- "ADD v17.4s, v17.4s, v21.4s \n"
- "STP q16, q17, %[out] \n"
-
- : [out] "=m" (sha256->digest)
- : [k] "r" (K), [digest] "m" (sha256->digest),
- [buffer] "m" (sha256->buffer)
- : "cc", "memory", "v0", "v1", "v2", "v3", "v8", "v9", "v10", "v11"
- , "v12", "v13", "v14", "v15", "v16", "v17", "v18"
- , "v19", "v20", "v21", "v22", "v23", "v24", "v25"
- );
-
- sha256->buffLen = 0;
- }
- XMEMSET(&local[sha256->buffLen], 0, WC_SHA256_PAD_SIZE - sha256->buffLen);
-
- /* put lengths in bits */
- sha256->hiLen = (sha256->loLen >> (8*sizeof(sha256->loLen) - 3)) +
- (sha256->hiLen << 3);
- sha256->loLen = sha256->loLen << 3;
-
- /* store lengths */
- #if defined(LITTLE_ENDIAN_ORDER)
- __asm__ volatile (
- "LD1 {v0.2d-v3.2d}, %[in] \n"
- "REV32 v0.16b, v0.16b \n"
- "REV32 v1.16b, v1.16b \n"
- "REV32 v2.16b, v2.16b \n"
- "REV32 v3.16b, v3.16b \n"
- "ST1 {v0.2d-v3.2d}, %[out] \n"
- : [out] "=m" (sha256->buffer)
- : [in] "m" (sha256->buffer)
- : "cc", "memory", "v0", "v1", "v2", "v3"
- );
- #endif
- /* ! length ordering dependent on digest endian type ! */
- XMEMCPY(&local[WC_SHA256_PAD_SIZE], &sha256->hiLen, sizeof(word32));
- XMEMCPY(&local[WC_SHA256_PAD_SIZE + sizeof(word32)], &sha256->loLen,
- sizeof(word32));
-
- __asm__ volatile (
- "#load in message and schedule updates \n"
- "LD1 {v4.2d-v7.2d}, %[buffer] \n"
- "MOV v0.16b, v4.16b \n"
- "MOV v1.16b, v5.16b \n"
- "MOV v2.16b, v6.16b \n"
- "MOV v3.16b, v7.16b \n"
- "LD1 {v20.2d-v21.2d}, %[digest] \n"
-
- "MOV v16.16b, v20.16b \n"
- "MOV v17.16b, v21.16b \n"
- "LD1 {v22.16b-v25.16b}, [%[k]], #64 \n"
- "SHA256SU0 v4.4s, v1.4s \n"
- "ADD v0.4s, v0.4s, v22.4s \n"
- "MOV v6.16b, v2.16b \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256SU1 v4.4s, v2.4s, v3.4s \n"
- "SHA256H q16, q17, v0.4s \n"
- "SHA256H2 q17, q18, v0.4s \n"
-
- "SHA256SU0 v5.4s, v2.4s \n"
- "ADD v1.4s, v1.4s, v23.4s \n"
- "MOV v7.16b, v3.16b \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256SU1 v5.4s, v3.4s, v4.4s \n"
- "SHA256H q16, q17, v1.4s \n"
- "SHA256H2 q17, q18, v1.4s \n"
-
- "SHA256SU0 v6.4s, v3.4s \n"
- "ADD v2.4s, v2.4s, v24.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v8.16b, v4.16b \n"
- "SHA256SU1 v6.4s, v4.4s, v5.4s \n"
- "SHA256H q16, q17, v2.4s \n"
- "SHA256H2 q17, q18, v2.4s \n"
-
- "SHA256SU0 v7.4s, v4.4s \n"
- "ADD v3.4s, v3.4s, v25.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v9.16b, v5.16b \n"
- "SHA256SU1 v7.4s, v5.4s, v6.4s \n"
- "SHA256H q16, q17, v3.4s \n"
- "SHA256H2 q17, q18, v3.4s \n"
-
- "LD1 {v22.16b-v25.16b}, [%[k]], #64 \n"
- "SHA256SU0 v8.4s, v5.4s \n"
- "ADD v4.4s, v4.4s, v22.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v10.16b, v6.16b \n"
- "SHA256SU1 v8.4s, v6.4s, v7.4s \n"
- "SHA256H q16, q17, v4.4s \n"
- "SHA256H2 q17, q18, v4.4s \n"
-
- "SHA256SU0 v9.4s, v6.4s \n"
- "ADD v5.4s, v5.4s, v23.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v11.16b, v7.16b \n"
- "SHA256SU1 v9.4s, v7.4s, v8.4s \n"
- "SHA256H q16, q17, v5.4s \n"
- "SHA256H2 q17, q18, v5.4s \n"
-
- "SHA256SU0 v10.4s, v7.4s \n"
- "ADD v6.4s, v6.4s, v24.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v12.16b, v8.16b \n"
- "SHA256SU1 v10.4s, v8.4s, v9.4s \n"
- "SHA256H q16, q17, v6.4s \n"
- "SHA256H2 q17, q18, v6.4s \n"
-
- "SHA256SU0 v11.4s, v8.4s \n"
- "ADD v7.4s, v7.4s, v25.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v13.16b, v9.16b \n"
- "SHA256SU1 v11.4s, v9.4s, v10.4s \n"
- "SHA256H q16, q17, v7.4s \n"
- "SHA256H2 q17, q18, v7.4s \n"
-
- "LD1 {v22.16b-v25.16b}, [%[k]], #64 \n"
- "SHA256SU0 v12.4s, v9.4s \n"
- "ADD v8.4s, v8.4s, v22.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v14.16b, v10.16b \n"
- "SHA256SU1 v12.4s, v10.4s, v11.4s \n"
- "SHA256H q16, q17, v8.4s \n"
- "SHA256H2 q17, q18, v8.4s \n"
-
- "SHA256SU0 v13.4s, v10.4s \n"
- "ADD v9.4s, v9.4s, v23.4s \n"
- "MOV v18.16b, v16.16b \n"
- "MOV v15.16b, v11.16b \n"
- "SHA256SU1 v13.4s, v11.4s, v12.4s \n"
- "SHA256H q16, q17, v9.4s \n"
- "SHA256H2 q17, q18, v9.4s \n"
-
- "SHA256SU0 v14.4s, v11.4s \n"
- "ADD v10.4s, v10.4s, v24.4s \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256SU1 v14.4s, v12.4s, v13.4s \n"
- "SHA256H q16, q17, v10.4s \n"
- "SHA256H2 q17, q18, v10.4s \n"
-
- "SHA256SU0 v15.4s, v12.4s \n"
- "ADD v11.4s, v11.4s, v25.4s \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256SU1 v15.4s, v13.4s, v14.4s \n"
- "SHA256H q16, q17, v11.4s \n"
- "SHA256H2 q17, q18, v11.4s \n"
-
- "LD1 {v22.16b-v25.16b}, [%[k]] \n"
- "ADD v12.4s, v12.4s, v22.4s \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256H q16, q17, v12.4s \n"
- "SHA256H2 q17, q18, v12.4s \n"
-
- "ADD v13.4s, v13.4s, v23.4s \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256H q16, q17, v13.4s \n"
- "SHA256H2 q17, q18, v13.4s \n"
-
- "ADD v14.4s, v14.4s, v24.4s \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256H q16, q17, v14.4s \n"
- "SHA256H2 q17, q18, v14.4s \n"
-
- "ADD v15.4s, v15.4s, v25.4s \n"
- "MOV v18.16b, v16.16b \n"
- "SHA256H q16, q17, v15.4s \n"
- "SHA256H2 q17, q18, v15.4s \n"
-
- "#Add working vars back into digest state \n"
- "ADD v16.4s, v16.4s, v20.4s \n"
- "ADD v17.4s, v17.4s, v21.4s \n"
-
- "#Store value as hash output \n"
- #if defined(LITTLE_ENDIAN_ORDER)
- "REV32 v16.16b, v16.16b \n"
- #endif
- "ST1 {v16.16b}, [%[hashOut]], #16 \n"
- #if defined(LITTLE_ENDIAN_ORDER)
- "REV32 v17.16b, v17.16b \n"
- #endif
- "ST1 {v17.16b}, [%[hashOut]] \n"
- : [hashOut] "=r" (hash)
- : [k] "r" (K), [digest] "m" (sha256->digest),
- [buffer] "m" (sha256->buffer),
- "0" (hash)
- : "cc", "memory", "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7",
- "v8", "v9", "v10", "v11", "v12", "v13", "v14",
- "v15", "v16", "v17", "v18", "v19", "v20", "v21",
- "v22", "v23", "v24", "v25"
- );
-
- return 0;
-}
-
-#else /* not using 64 bit */
-
-/* ARMv8 hardware acceleration Aarch32 */
-static WC_INLINE int Sha256Update(wc_Sha256* sha256, const byte* data, word32 len)
-{
- word32 add;
- word32 numBlocks;
-
- /* only perform actions if a buffer is passed in */
- if (len > 0) {
- /* fill leftover buffer with data */
- add = min(len, WC_SHA256_BLOCK_SIZE - sha256->buffLen);
- XMEMCPY((byte*)(sha256->buffer) + sha256->buffLen, data, add);
- sha256->buffLen += add;
- data += add;
- len -= add;
-
- /* number of blocks in a row to complete */
- numBlocks = (len + sha256->buffLen)/WC_SHA256_BLOCK_SIZE;
-
- if (numBlocks > 0) {
- word32* bufPt = sha256->buffer;
- word32* digPt = sha256->digest;
- /* get leftover amount after blocks */
- add = (len + sha256->buffLen) - numBlocks * WC_SHA256_BLOCK_SIZE;
- __asm__ volatile (
- "#load leftover data\n"
- "VLDM %[buffer]!, {q0-q3} \n"
-
- "#load current digest\n"
- "VLDM %[digest], {q12-q13} \n"
- "MOV r8, %[blocks] \n"
- "VREV32.8 q0, q0 \n"
- "VREV32.8 q1, q1 \n"
- "VREV32.8 q2, q2 \n"
- "VREV32.8 q3, q3 \n"
- "VLDM %[k]! ,{q5-q8} \n"
- "VLDM %[k]! ,{q9}\n"
-
- "VMOV.32 q14, q12 \n" /* store digest for add at the end */
- "VMOV.32 q15, q13 \n"
-
- /* beginning of SHA256 block operation */
- "1:\n"
-
- /* Round 1 */
- "VMOV.32 q4, q0 \n"
- "VADD.i32 q0, q0, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 2 */
- "SHA256SU0.32 q4, q1 \n"
- "VADD.i32 q0, q1, q6 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q4, q2, q3 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 3 */
- "SHA256SU0.32 q1, q2 \n"
- "VADD.i32 q0, q2, q7 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q1, q3, q4 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 4 */
- "SHA256SU0.32 q2, q3 \n"
- "VADD.i32 q0, q3, q8 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q2, q4, q1 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 5 */
- "SHA256SU0.32 q3, q4 \n"
- "VADD.i32 q0, q4, q9 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q3, q1, q2 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 6 */
- "VLD1.32 {q10}, [%[k]]! \n"
- "SHA256SU0.32 q4, q1 \n"
- "VADD.i32 q0, q1, q10 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q4, q2, q3 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 7 */
- "VLD1.32 {q10}, [%[k]]! \n"
- "SHA256SU0.32 q1, q2 \n"
- "VADD.i32 q0, q2, q10 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q1, q3, q4 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 8 */
- "VLD1.32 {q10}, [%[k]]! \n"
- "SHA256SU0.32 q2, q3 \n"
- "VADD.i32 q0, q3, q10 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q2, q4, q1 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 9 */
- "VLD1.32 {q10}, [%[k]]! \n"
- "SHA256SU0.32 q3, q4 \n"
- "VADD.i32 q0, q4, q10 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q3, q1, q2 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 10 */
- "VLD1.32 {q10}, [%[k]]! \n"
- "SHA256SU0.32 q4, q1 \n"
- "VADD.i32 q0, q1, q10 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q4, q2, q3 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 11 */
- "VLD1.32 {q10}, [%[k]]! \n"
- "SHA256SU0.32 q1, q2 \n"
- "VADD.i32 q0, q2, q10 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q1, q3, q4 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 12 */
- "VLD1.32 {q10}, [%[k]]! \n"
- "SHA256SU0.32 q2, q3 \n"
- "VADD.i32 q0, q3, q10 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q2, q4, q1 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 13 */
- "VLD1.32 {q10}, [%[k]]! \n"
- "SHA256SU0.32 q3, q4 \n"
- "VADD.i32 q0, q4, q10 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q3, q1, q2 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 14 */
- "VLD1.32 {q10}, [%[k]]! \n"
- "VADD.i32 q0, q1, q10 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 15 */
- "VLD1.32 {q10}, [%[k]]! \n"
- "VADD.i32 q0, q2, q10 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 16 */
- "VLD1.32 {q10}, [%[k]] \n"
- "SUB r8, r8, #1 \n"
- "VADD.i32 q0, q3, q10 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- "#Add working vars back into digest state \n"
- "VADD.i32 q12, q12, q14 \n"
- "VADD.i32 q13, q13, q15 \n"
-
- "#check if more blocks should be done\n"
- "CMP r8, #0 \n"
- "BEQ 2f \n"
-
- "#load in message and schedule updates \n"
- "VLD1.32 {q0}, [%[dataIn]]! \n"
- "VLD1.32 {q1}, [%[dataIn]]! \n"
- "VLD1.32 {q2}, [%[dataIn]]! \n"
- "VLD1.32 {q3}, [%[dataIn]]! \n"
-
- /* reset K pointer */
- "SUB %[k], %[k], #160 \n"
- "VREV32.8 q0, q0 \n"
- "VREV32.8 q1, q1 \n"
- "VREV32.8 q2, q2 \n"
- "VREV32.8 q3, q3 \n"
- "VMOV.32 q14, q12 \n"
- "VMOV.32 q15, q13 \n"
- "B 1b \n" /* do another block */
-
- "2:\n"
- "VST1.32 {q12, q13}, [%[out]] \n"
-
- : [out] "=r" (digPt), "=r" (bufPt), "=r" (numBlocks),
- "=r" (data)
- : [k] "r" (K), [digest] "0" (digPt), [buffer] "1" (bufPt),
- [blocks] "2" (numBlocks), [dataIn] "3" (data)
- : "cc", "memory", "q0", "q1", "q2", "q3", "q4", "q5", "q6", "q7",
- "q8", "q9", "q10", "q11", "q12", "q13", "q14",
- "q15", "r8"
- );
-
- AddLength(sha256, WC_SHA256_BLOCK_SIZE * numBlocks);
-
- /* copy over any remaining data leftover */
- XMEMCPY(sha256->buffer, data, add);
- sha256->buffLen = add;
- }
- }
-
- /* account for possibility of not used if len = 0 */
- (void)add;
- (void)numBlocks;
-
- return 0;
-}
-
-
-static WC_INLINE int Sha256Final(wc_Sha256* sha256, byte* hash)
-{
- byte* local;
-
- if (sha256 == NULL || hash == NULL) {
- return BAD_FUNC_ARG;
- }
-
- local = (byte*)sha256->buffer;
- AddLength(sha256, sha256->buffLen); /* before adding pads */
-
- local[sha256->buffLen++] = 0x80; /* add 1 */
-
- /* pad with zeros */
- if (sha256->buffLen > WC_SHA256_PAD_SIZE) {
- word32* bufPt = sha256->buffer;
- word32* digPt = sha256->digest;
- XMEMSET(&local[sha256->buffLen], 0, WC_SHA256_BLOCK_SIZE - sha256->buffLen);
- sha256->buffLen += WC_SHA256_BLOCK_SIZE - sha256->buffLen;
- __asm__ volatile (
- "#load leftover data\n"
- "VLDM %[buffer]!, {q0-q3} \n"
-
- "#load current digest\n"
- "VLDM %[digest], {q12-q13} \n"
- "VREV32.8 q0, q0 \n"
- "VREV32.8 q1, q1 \n"
- "VREV32.8 q2, q2 \n"
- "VREV32.8 q3, q3 \n"
-
- "#load K values in \n"
- "VMOV.32 q14, q12 \n" /* store digest for add at the end */
- "VMOV.32 q15, q13 \n"
-
- /* beginning of SHA256 block operation */
- /* Round 1 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "VMOV.32 q4, q0 \n"
- "VADD.i32 q0, q0, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 2 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q4, q1 \n"
- "VADD.i32 q0, q1, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q4, q2, q3 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 3 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q1, q2 \n"
- "VADD.i32 q0, q2, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q1, q3, q4 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 4 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q2, q3 \n"
- "VADD.i32 q0, q3, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q2, q4, q1 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 5 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q3, q4 \n"
- "VADD.i32 q0, q4, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q3, q1, q2 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 6 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q4, q1 \n"
- "VADD.i32 q0, q1, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q4, q2, q3 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 7 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q1, q2 \n"
- "VADD.i32 q0, q2, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q1, q3, q4 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 8 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q2, q3 \n"
- "VADD.i32 q0, q3, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q2, q4, q1 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 9 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q3, q4 \n"
- "VADD.i32 q0, q4, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q3, q1, q2 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 10 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q4, q1 \n"
- "VADD.i32 q0, q1, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q4, q2, q3 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 11 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q1, q2 \n"
- "VADD.i32 q0, q2, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q1, q3, q4 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 12 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q2, q3 \n"
- "VADD.i32 q0, q3, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q2, q4, q1 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 13 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q3, q4 \n"
- "VADD.i32 q0, q4, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q3, q1, q2 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 14 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "VADD.i32 q0, q1, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 15 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "VADD.i32 q0, q2, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 16 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "VADD.i32 q0, q3, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- "#Add working vars back into digest state \n"
- "VADD.i32 q12, q12, q14 \n"
- "VADD.i32 q13, q13, q15 \n"
-
- /* reset K pointer */
- "SUB %[k], %[k], #256 \n"
- "VST1.32 {q12, q13}, [%[out]] \n"
-
- : [out] "=r" (digPt), "=r" (bufPt)
- : [k] "r" (K), [digest] "0" (digPt), [buffer] "1" (bufPt)
- : "cc", "memory", "q0", "q1", "q2", "q3", "q4", "q5", "q6", "q7",
- "q8", "q9", "q10", "q11", "q12", "q13", "q14",
- "q15"
- );
-
- sha256->buffLen = 0;
- }
- XMEMSET(&local[sha256->buffLen], 0, WC_SHA256_PAD_SIZE - sha256->buffLen);
-
- /* put lengths in bits */
- sha256->hiLen = (sha256->loLen >> (8*sizeof(sha256->loLen) - 3)) +
- (sha256->hiLen << 3);
- sha256->loLen = sha256->loLen << 3;
-
- /* store lengths */
- #if defined(LITTLE_ENDIAN_ORDER)
- {
- word32* bufPt = sha256->buffer;
- __asm__ volatile (
- "VLD1.32 {q0}, [%[in]] \n"
- "VREV32.8 q0, q0 \n"
- "VST1.32 {q0}, [%[out]]!\n"
- "VLD1.32 {q1}, [%[in]] \n"
- "VREV32.8 q1, q1 \n"
- "VST1.32 {q1}, [%[out]]!\n"
- "VLD1.32 {q2}, [%[in]] \n"
- "VREV32.8 q2, q2 \n"
- "VST1.32 {q2}, [%[out]]!\n"
- "VLD1.32 {q3}, [%[in]] \n"
- "VREV32.8 q3, q3 \n"
- "VST1.32 {q3}, [%[out]] \n"
- : [out] "=r" (bufPt)
- : [in] "0" (bufPt)
- : "cc", "memory", "q0", "q1", "q2", "q3"
- );
- }
- #endif
- /* ! length ordering dependent on digest endian type ! */
- XMEMCPY(&local[WC_SHA256_PAD_SIZE], &sha256->hiLen, sizeof(word32));
- XMEMCPY(&local[WC_SHA256_PAD_SIZE + sizeof(word32)], &sha256->loLen,
- sizeof(word32));
-
- bufPt = sha256->buffer;
- word32* digPt = sha256->digest;
- __asm__ volatile (
- "#load leftover data\n"
- "VLDM %[buffer]!, {q0-q3} \n"
-
- "#load current digest\n"
- "VLDM %[digest], {q12-q13} \n"
-
- "VMOV.32 q14, q12 \n" /* store digest for add at the end */
- "VMOV.32 q15, q13 \n"
-
- /* beginning of SHA256 block operation */
- /* Round 1 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "VMOV.32 q4, q0 \n"
- "VADD.i32 q0, q0, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 2 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q4, q1 \n"
- "VADD.i32 q0, q1, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q4, q2, q3 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 3 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q1, q2 \n"
- "VADD.i32 q0, q2, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q1, q3, q4 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 4 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q2, q3 \n"
- "VADD.i32 q0, q3, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q2, q4, q1 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 5 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q3, q4 \n"
- "VADD.i32 q0, q4, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q3, q1, q2 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 6 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q4, q1 \n"
- "VADD.i32 q0, q1, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q4, q2, q3 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 7 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q1, q2 \n"
- "VADD.i32 q0, q2, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q1, q3, q4 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 8 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q2, q3 \n"
- "VADD.i32 q0, q3, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q2, q4, q1 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 9 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q3, q4 \n"
- "VADD.i32 q0, q4, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q3, q1, q2 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 10 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q4, q1 \n"
- "VADD.i32 q0, q1, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q4, q2, q3 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 11 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q1, q2 \n"
- "VADD.i32 q0, q2, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q1, q3, q4 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 12 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q2, q3 \n"
- "VADD.i32 q0, q3, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q2, q4, q1 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 13 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "SHA256SU0.32 q3, q4 \n"
- "VADD.i32 q0, q4, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256SU1.32 q3, q1, q2 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 14 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "VADD.i32 q0, q1, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 15 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "VADD.i32 q0, q2, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- /* Round 16 */
- "VLD1.32 {q5}, [%[k]]! \n"
- "VADD.i32 q0, q3, q5 \n"
- "VMOV.32 q11, q12 \n"
- "SHA256H.32 q12, q13, q0 \n"
- "SHA256H2.32 q13, q11, q0 \n"
-
- "#Add working vars back into digest state \n"
- "VADD.i32 q12, q12, q14 \n"
- "VADD.i32 q13, q13, q15 \n"
-
- "#Store value as hash output \n"
- #if defined(LITTLE_ENDIAN_ORDER)
- "VREV32.8 q12, q12 \n"
- #endif
- "VST1.32 {q12}, [%[hashOut]]! \n"
- #if defined(LITTLE_ENDIAN_ORDER)
- "VREV32.8 q13, q13 \n"
- #endif
- "VST1.32 {q13}, [%[hashOut]] \n"
-
- : [out] "=r" (digPt), "=r" (bufPt),
- [hashOut] "=r" (hash)
- : [k] "r" (K), [digest] "0" (digPt), [buffer] "1" (bufPt),
- "2" (hash)
- : "cc", "memory", "q0", "q1", "q2", "q3", "q4", "q5", "q6", "q7",
- "q8", "q9", "q10", "q11", "q12", "q13", "q14",
- "q15"
- );
-
- return 0;
-}
-
-#endif /* __aarch64__ */
-
-
-#ifndef NO_SHA256
-
-int wc_InitSha256_ex(wc_Sha256* sha256, void* heap, int devId)
-{
- if (sha256 == NULL)
- return BAD_FUNC_ARG;
-
- sha256->heap = heap;
- (void)devId;
-
- return InitSha256(sha256);
-}
-
-int wc_InitSha256(wc_Sha256* sha256)
-{
- return wc_InitSha256_ex(sha256, NULL, INVALID_DEVID);
-}
-
-void wc_Sha256Free(wc_Sha256* sha256)
-{
- (void)sha256;
-}
-
-int wc_Sha256Update(wc_Sha256* sha256, const byte* data, word32 len)
-{
- if (sha256 == NULL || (data == NULL && len != 0)) {
- return BAD_FUNC_ARG;
- }
-
- return Sha256Update(sha256, data, len);
-}
-
-int wc_Sha256Final(wc_Sha256* sha256, byte* hash)
-{
- int ret;
-
- if (sha256 == NULL || hash == NULL) {
- return BAD_FUNC_ARG;
- }
-
- ret = Sha256Final(sha256, hash);
- if (ret != 0)
- return ret;
-
- return InitSha256(sha256); /* reset state */
-}
-
-int wc_Sha256GetHash(wc_Sha256* sha256, byte* hash)
-{
- int ret;
- wc_Sha256 tmpSha256;
-
- if (sha256 == NULL || hash == NULL)
- return BAD_FUNC_ARG;
-
- ret = wc_Sha256Copy(sha256, &tmpSha256);
- if (ret == 0) {
- ret = wc_Sha256Final(&tmpSha256, hash);
- }
- return ret;
-}
-
-#if defined(WOLFSSL_HASH_FLAGS) || defined(WOLF_CRYPTO_CB)
-int wc_Sha256SetFlags(wc_Sha256* sha256, word32 flags)
-{
- if (sha256) {
- sha256->flags = flags;
- }
- return 0;
-}
-int wc_Sha256GetFlags(wc_Sha256* sha256, word32* flags)
-{
- if (sha256 && flags) {
- *flags = sha256->flags;
- }
- return 0;
-}
-#endif
-
-int wc_Sha256Copy(wc_Sha256* src, wc_Sha256* dst)
-{
- int ret = 0;
-
- if (src == NULL || dst == NULL)
- return BAD_FUNC_ARG;
-
- XMEMCPY(dst, src, sizeof(wc_Sha256));
-
- return ret;
-}
-
-#endif /* !NO_SHA256 */
-
-
-#ifdef WOLFSSL_SHA224
- static int InitSha224(wc_Sha224* sha224)
- {
-
- int ret = 0;
-
- if (sha224 == NULL) {
- return BAD_FUNC_ARG;
- }
-
- sha224->digest[0] = 0xc1059ed8;
- sha224->digest[1] = 0x367cd507;
- sha224->digest[2] = 0x3070dd17;
- sha224->digest[3] = 0xf70e5939;
- sha224->digest[4] = 0xffc00b31;
- sha224->digest[5] = 0x68581511;
- sha224->digest[6] = 0x64f98fa7;
- sha224->digest[7] = 0xbefa4fa4;
-
- sha224->buffLen = 0;
- sha224->loLen = 0;
- sha224->hiLen = 0;
-
- return ret;
- }
-
- int wc_InitSha224_ex(wc_Sha224* sha224, void* heap, int devId)
- {
- if (sha224 == NULL)
- return BAD_FUNC_ARG;
-
- sha224->heap = heap;
- (void)devId;
-
- return InitSha224(sha224);
- }
-
- int wc_InitSha224(wc_Sha224* sha224)
- {
- return wc_InitSha224_ex(sha224, NULL, INVALID_DEVID);
- }
-
- int wc_Sha224Update(wc_Sha224* sha224, const byte* data, word32 len)
- {
- int ret;
-
- if (sha224 == NULL || (data == NULL && len > 0)) {
- return BAD_FUNC_ARG;
- }
-
- ret = Sha256Update((wc_Sha256 *)sha224, data, len);
-
- return ret;
- }
-
- int wc_Sha224Final(wc_Sha224* sha224, byte* hash)
- {
- int ret;
- word32 hashTmp[WC_SHA256_DIGEST_SIZE/sizeof(word32)];
-
- if (sha224 == NULL || hash == NULL) {
- return BAD_FUNC_ARG;
- }
-
- ret = Sha256Final((wc_Sha256*)sha224, (byte*)hashTmp);
- if (ret != 0)
- return ret;
-
- XMEMCPY(hash, hashTmp, WC_SHA224_DIGEST_SIZE);
-
- return InitSha224(sha224); /* reset state */
- }
-
- void wc_Sha224Free(wc_Sha224* sha224)
- {
- if (sha224 == NULL)
- return;
- }
-
- int wc_Sha224GetHash(wc_Sha224* sha224, byte* hash)
- {
- int ret;
- wc_Sha224 tmpSha224;
-
- if (sha224 == NULL || hash == NULL)
- return BAD_FUNC_ARG;
-
- ret = wc_Sha224Copy(sha224, &tmpSha224);
- if (ret == 0) {
- ret = wc_Sha224Final(&tmpSha224, hash);
- }
- return ret;
- }
-
-#if defined(WOLFSSL_HASH_FLAGS) || defined(WOLF_CRYPTO_CB)
- int wc_Sha224SetFlags(wc_Sha224* sha224, word32 flags)
- {
- if (sha224) {
- sha224->flags = flags;
- }
- return 0;
- }
- int wc_Sha224GetFlags(wc_Sha224* sha224, word32* flags)
- {
- if (sha224 && flags) {
- *flags = sha224->flags;
- }
- return 0;
- }
-#endif
-
- int wc_Sha224Copy(wc_Sha224* src, wc_Sha224* dst)
- {
- int ret = 0;
-
- if (src == NULL || dst == NULL)
- return BAD_FUNC_ARG;
-
- XMEMCPY(dst, src, sizeof(wc_Sha224));
-
- return ret;
- }
-
-#endif /* WOLFSSL_SHA224 */
-
-#endif /* !NO_SHA256 || WOLFSSL_SHA224 */
-#endif /* WOLFSSL_ARMASM */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha512-asm.S b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha512-asm.S
deleted file mode 100644
index a35bccbda..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha512-asm.S
+++ /dev/null
@@ -1,1046 +0,0 @@
-/* armv8-sha512-asm
- *
- * Copyright (C) 2006-2020 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
- */
-
-/* Generated using (from wolfssl):
- * cd ../scripts
- * ruby ./sha2/sha512.rb arm64 ../wolfssl/wolfcrypt/src/port/arm/armv8-sha512-asm.S
- */
-#ifdef __aarch64__
- .text
- .section .rodata
- .type L_SHA512_transform_neon_len_k, %object
- .size L_SHA512_transform_neon_len_k, 640
- .align 3
-L_SHA512_transform_neon_len_k:
- .xword 0x428a2f98d728ae22
- .xword 0x7137449123ef65cd
- .xword 0xb5c0fbcfec4d3b2f
- .xword 0xe9b5dba58189dbbc
- .xword 0x3956c25bf348b538
- .xword 0x59f111f1b605d019
- .xword 0x923f82a4af194f9b
- .xword 0xab1c5ed5da6d8118
- .xword 0xd807aa98a3030242
- .xword 0x12835b0145706fbe
- .xword 0x243185be4ee4b28c
- .xword 0x550c7dc3d5ffb4e2
- .xword 0x72be5d74f27b896f
- .xword 0x80deb1fe3b1696b1
- .xword 0x9bdc06a725c71235
- .xword 0xc19bf174cf692694
- .xword 0xe49b69c19ef14ad2
- .xword 0xefbe4786384f25e3
- .xword 0xfc19dc68b8cd5b5
- .xword 0x240ca1cc77ac9c65
- .xword 0x2de92c6f592b0275
- .xword 0x4a7484aa6ea6e483
- .xword 0x5cb0a9dcbd41fbd4
- .xword 0x76f988da831153b5
- .xword 0x983e5152ee66dfab
- .xword 0xa831c66d2db43210
- .xword 0xb00327c898fb213f
- .xword 0xbf597fc7beef0ee4
- .xword 0xc6e00bf33da88fc2
- .xword 0xd5a79147930aa725
- .xword 0x6ca6351e003826f
- .xword 0x142929670a0e6e70
- .xword 0x27b70a8546d22ffc
- .xword 0x2e1b21385c26c926
- .xword 0x4d2c6dfc5ac42aed
- .xword 0x53380d139d95b3df
- .xword 0x650a73548baf63de
- .xword 0x766a0abb3c77b2a8
- .xword 0x81c2c92e47edaee6
- .xword 0x92722c851482353b
- .xword 0xa2bfe8a14cf10364
- .xword 0xa81a664bbc423001
- .xword 0xc24b8b70d0f89791
- .xword 0xc76c51a30654be30
- .xword 0xd192e819d6ef5218
- .xword 0xd69906245565a910
- .xword 0xf40e35855771202a
- .xword 0x106aa07032bbd1b8
- .xword 0x19a4c116b8d2d0c8
- .xword 0x1e376c085141ab53
- .xword 0x2748774cdf8eeb99
- .xword 0x34b0bcb5e19b48a8
- .xword 0x391c0cb3c5c95a63
- .xword 0x4ed8aa4ae3418acb
- .xword 0x5b9cca4f7763e373
- .xword 0x682e6ff3d6b2b8a3
- .xword 0x748f82ee5defb2fc
- .xword 0x78a5636f43172f60
- .xword 0x84c87814a1f0ab72
- .xword 0x8cc702081a6439ec
- .xword 0x90befffa23631e28
- .xword 0xa4506cebde82bde9
- .xword 0xbef9a3f7b2c67915
- .xword 0xc67178f2e372532b
- .xword 0xca273eceea26619c
- .xword 0xd186b8c721c0c207
- .xword 0xeada7dd6cde0eb1e
- .xword 0xf57d4f7fee6ed178
- .xword 0x6f067aa72176fba
- .xword 0xa637dc5a2c898a6
- .xword 0x113f9804bef90dae
- .xword 0x1b710b35131c471b
- .xword 0x28db77f523047d84
- .xword 0x32caab7b40c72493
- .xword 0x3c9ebe0a15c9bebc
- .xword 0x431d67c49c100d4c
- .xword 0x4cc5d4becb3e42b6
- .xword 0x597f299cfc657e2a
- .xword 0x5fcb6fab3ad6faec
- .xword 0x6c44198c4a475817
- .text
- .section .rodata
- .type L_SHA512_transform_neon_len_ror8, %object
- .size L_SHA512_transform_neon_len_ror8, 16
- .align 4
-L_SHA512_transform_neon_len_ror8:
- .xword 0x7060504030201, 0x80f0e0d0c0b0a09
- .text
- .align 2
- .globl Transform_Sha512_Len
- .type Transform_Sha512_Len, %function
-Transform_Sha512_Len:
- stp x29, x30, [sp, #-128]!
- add x29, sp, #0
- str x17, [x29, #16]
- str x19, [x29, #24]
- stp x20, x21, [x29, #32]
- stp x22, x23, [x29, #48]
- stp x24, x25, [x29, #64]
- stp x26, x27, [x29, #80]
- stp d8, d9, [x29, #96]
- stp d10, d11, [x29, #112]
- adr x3, L_SHA512_transform_neon_len_k
- adr x27, L_SHA512_transform_neon_len_ror8
- ld1 {v11.16b}, [x27]
- # Load digest into working vars
- ldp x4, x5, [x0]
- ldp x6, x7, [x0, #16]
- ldp x8, x9, [x0, #32]
- ldp x10, x11, [x0, #48]
- # Start of loop processing a block
-L_sha512_len_neon_begin:
- # Load W
- # Copy digest to add in at end
- ld1 {v0.2d, v1.2d, v2.2d, v3.2d}, [x1], #0x40
- mov x19, x4
- ld1 {v4.2d, v5.2d, v6.2d, v7.2d}, [x1], #0x40
- mov x20, x5
- rev64 v0.16b, v0.16b
- mov x21, x6
- rev64 v1.16b, v1.16b
- mov x22, x7
- rev64 v2.16b, v2.16b
- mov x23, x8
- rev64 v3.16b, v3.16b
- mov x24, x9
- rev64 v4.16b, v4.16b
- mov x25, x10
- rev64 v5.16b, v5.16b
- mov x26, x11
- rev64 v6.16b, v6.16b
- rev64 v7.16b, v7.16b
- # Pre-calc: b ^ c
- eor x16, x5, x6
- mov x27, #4
- # Start of 16 rounds
-L_sha512_len_neon_start:
- # Round 0
- mov x13, v0.d[0]
- ldr x15, [x3], #8
- ror x12, x8, #14
- ror x14, x4, #28
- eor x12, x12, x8, ror 18
- eor x14, x14, x4, ror 34
- eor x12, x12, x8, ror 41
- eor x14, x14, x4, ror 39
- add x11, x11, x12
- eor x17, x4, x5
- eor x12, x9, x10
- and x16, x17, x16
- and x12, x12, x8
- add x11, x11, x13
- eor x12, x12, x10
- add x11, x11, x15
- eor x16, x16, x5
- add x11, x11, x12
- add x14, x14, x16
- add x7, x7, x11
- add x11, x11, x14
- # Round 1
- mov x13, v0.d[1]
- ldr x15, [x3], #8
- ext v10.16b, v0.16b, v1.16b, #8
- ror x12, x7, #14
- shl v8.2d, v7.2d, #45
- ror x14, x11, #28
- sri v8.2d, v7.2d, #19
- eor x12, x12, x7, ror 18
- shl v9.2d, v7.2d, #3
- eor x14, x14, x11, ror 34
- sri v9.2d, v7.2d, #61
- eor x12, x12, x7, ror 41
- eor v9.16b, v9.16b, v8.16b
- eor x14, x14, x11, ror 39
- ushr v8.2d, v7.2d, #6
- add x10, x10, x12
- eor v9.16b, v9.16b, v8.16b
- eor x16, x11, x4
- add v0.2d, v0.2d, v9.2d
- eor x12, x8, x9
- ext v9.16b, v4.16b, v5.16b, #8
- and x17, x16, x17
- add v0.2d, v0.2d, v9.2d
- and x12, x12, x7
- shl v8.2d, v10.2d, #63
- add x10, x10, x13
- sri v8.2d, v10.2d, #1
- eor x12, x12, x9
- tbl v9.16b, {v10.16b}, v11.16b
- add x10, x10, x15
- eor v9.16b, v9.16b, v8.16b
- eor x17, x17, x4
- ushr v10.2d, v10.2d, #7
- add x10, x10, x12
- eor v9.16b, v9.16b, v10.16b
- add x14, x14, x17
- add v0.2d, v0.2d, v9.2d
- add x6, x6, x10
- add x10, x10, x14
- # Round 2
- mov x13, v1.d[0]
- ldr x15, [x3], #8
- ror x12, x6, #14
- ror x14, x10, #28
- eor x12, x12, x6, ror 18
- eor x14, x14, x10, ror 34
- eor x12, x12, x6, ror 41
- eor x14, x14, x10, ror 39
- add x9, x9, x12
- eor x17, x10, x11
- eor x12, x7, x8
- and x16, x17, x16
- and x12, x12, x6
- add x9, x9, x13
- eor x12, x12, x8
- add x9, x9, x15
- eor x16, x16, x11
- add x9, x9, x12
- add x14, x14, x16
- add x5, x5, x9
- add x9, x9, x14
- # Round 3
- mov x13, v1.d[1]
- ldr x15, [x3], #8
- ext v10.16b, v1.16b, v2.16b, #8
- ror x12, x5, #14
- shl v8.2d, v0.2d, #45
- ror x14, x9, #28
- sri v8.2d, v0.2d, #19
- eor x12, x12, x5, ror 18
- shl v9.2d, v0.2d, #3
- eor x14, x14, x9, ror 34
- sri v9.2d, v0.2d, #61
- eor x12, x12, x5, ror 41
- eor v9.16b, v9.16b, v8.16b
- eor x14, x14, x9, ror 39
- ushr v8.2d, v0.2d, #6
- add x8, x8, x12
- eor v9.16b, v9.16b, v8.16b
- eor x16, x9, x10
- add v1.2d, v1.2d, v9.2d
- eor x12, x6, x7
- ext v9.16b, v5.16b, v6.16b, #8
- and x17, x16, x17
- add v1.2d, v1.2d, v9.2d
- and x12, x12, x5
- shl v8.2d, v10.2d, #63
- add x8, x8, x13
- sri v8.2d, v10.2d, #1
- eor x12, x12, x7
- tbl v9.16b, {v10.16b}, v11.16b
- add x8, x8, x15
- eor v9.16b, v9.16b, v8.16b
- eor x17, x17, x10
- ushr v10.2d, v10.2d, #7
- add x8, x8, x12
- eor v9.16b, v9.16b, v10.16b
- add x14, x14, x17
- add v1.2d, v1.2d, v9.2d
- add x4, x4, x8
- add x8, x8, x14
- # Round 4
- mov x13, v2.d[0]
- ldr x15, [x3], #8
- ror x12, x4, #14
- ror x14, x8, #28
- eor x12, x12, x4, ror 18
- eor x14, x14, x8, ror 34
- eor x12, x12, x4, ror 41
- eor x14, x14, x8, ror 39
- add x7, x7, x12
- eor x17, x8, x9
- eor x12, x5, x6
- and x16, x17, x16
- and x12, x12, x4
- add x7, x7, x13
- eor x12, x12, x6
- add x7, x7, x15
- eor x16, x16, x9
- add x7, x7, x12
- add x14, x14, x16
- add x11, x11, x7
- add x7, x7, x14
- # Round 5
- mov x13, v2.d[1]
- ldr x15, [x3], #8
- ext v10.16b, v2.16b, v3.16b, #8
- ror x12, x11, #14
- shl v8.2d, v1.2d, #45
- ror x14, x7, #28
- sri v8.2d, v1.2d, #19
- eor x12, x12, x11, ror 18
- shl v9.2d, v1.2d, #3
- eor x14, x14, x7, ror 34
- sri v9.2d, v1.2d, #61
- eor x12, x12, x11, ror 41
- eor v9.16b, v9.16b, v8.16b
- eor x14, x14, x7, ror 39
- ushr v8.2d, v1.2d, #6
- add x6, x6, x12
- eor v9.16b, v9.16b, v8.16b
- eor x16, x7, x8
- add v2.2d, v2.2d, v9.2d
- eor x12, x4, x5
- ext v9.16b, v6.16b, v7.16b, #8
- and x17, x16, x17
- add v2.2d, v2.2d, v9.2d
- and x12, x12, x11
- shl v8.2d, v10.2d, #63
- add x6, x6, x13
- sri v8.2d, v10.2d, #1
- eor x12, x12, x5
- tbl v9.16b, {v10.16b}, v11.16b
- add x6, x6, x15
- eor v9.16b, v9.16b, v8.16b
- eor x17, x17, x8
- ushr v10.2d, v10.2d, #7
- add x6, x6, x12
- eor v9.16b, v9.16b, v10.16b
- add x14, x14, x17
- add v2.2d, v2.2d, v9.2d
- add x10, x10, x6
- add x6, x6, x14
- # Round 6
- mov x13, v3.d[0]
- ldr x15, [x3], #8
- ror x12, x10, #14
- ror x14, x6, #28
- eor x12, x12, x10, ror 18
- eor x14, x14, x6, ror 34
- eor x12, x12, x10, ror 41
- eor x14, x14, x6, ror 39
- add x5, x5, x12
- eor x17, x6, x7
- eor x12, x11, x4
- and x16, x17, x16
- and x12, x12, x10
- add x5, x5, x13
- eor x12, x12, x4
- add x5, x5, x15
- eor x16, x16, x7
- add x5, x5, x12
- add x14, x14, x16
- add x9, x9, x5
- add x5, x5, x14
- # Round 7
- mov x13, v3.d[1]
- ldr x15, [x3], #8
- ext v10.16b, v3.16b, v4.16b, #8
- ror x12, x9, #14
- shl v8.2d, v2.2d, #45
- ror x14, x5, #28
- sri v8.2d, v2.2d, #19
- eor x12, x12, x9, ror 18
- shl v9.2d, v2.2d, #3
- eor x14, x14, x5, ror 34
- sri v9.2d, v2.2d, #61
- eor x12, x12, x9, ror 41
- eor v9.16b, v9.16b, v8.16b
- eor x14, x14, x5, ror 39
- ushr v8.2d, v2.2d, #6
- add x4, x4, x12
- eor v9.16b, v9.16b, v8.16b
- eor x16, x5, x6
- add v3.2d, v3.2d, v9.2d
- eor x12, x10, x11
- ext v9.16b, v7.16b, v0.16b, #8
- and x17, x16, x17
- add v3.2d, v3.2d, v9.2d
- and x12, x12, x9
- shl v8.2d, v10.2d, #63
- add x4, x4, x13
- sri v8.2d, v10.2d, #1
- eor x12, x12, x11
- tbl v9.16b, {v10.16b}, v11.16b
- add x4, x4, x15
- eor v9.16b, v9.16b, v8.16b
- eor x17, x17, x6
- ushr v10.2d, v10.2d, #7
- add x4, x4, x12
- eor v9.16b, v9.16b, v10.16b
- add x14, x14, x17
- add v3.2d, v3.2d, v9.2d
- add x8, x8, x4
- add x4, x4, x14
- # Round 8
- mov x13, v4.d[0]
- ldr x15, [x3], #8
- ror x12, x8, #14
- ror x14, x4, #28
- eor x12, x12, x8, ror 18
- eor x14, x14, x4, ror 34
- eor x12, x12, x8, ror 41
- eor x14, x14, x4, ror 39
- add x11, x11, x12
- eor x17, x4, x5
- eor x12, x9, x10
- and x16, x17, x16
- and x12, x12, x8
- add x11, x11, x13
- eor x12, x12, x10
- add x11, x11, x15
- eor x16, x16, x5
- add x11, x11, x12
- add x14, x14, x16
- add x7, x7, x11
- add x11, x11, x14
- # Round 9
- mov x13, v4.d[1]
- ldr x15, [x3], #8
- ext v10.16b, v4.16b, v5.16b, #8
- ror x12, x7, #14
- shl v8.2d, v3.2d, #45
- ror x14, x11, #28
- sri v8.2d, v3.2d, #19
- eor x12, x12, x7, ror 18
- shl v9.2d, v3.2d, #3
- eor x14, x14, x11, ror 34
- sri v9.2d, v3.2d, #61
- eor x12, x12, x7, ror 41
- eor v9.16b, v9.16b, v8.16b
- eor x14, x14, x11, ror 39
- ushr v8.2d, v3.2d, #6
- add x10, x10, x12
- eor v9.16b, v9.16b, v8.16b
- eor x16, x11, x4
- add v4.2d, v4.2d, v9.2d
- eor x12, x8, x9
- ext v9.16b, v0.16b, v1.16b, #8
- and x17, x16, x17
- add v4.2d, v4.2d, v9.2d
- and x12, x12, x7
- shl v8.2d, v10.2d, #63
- add x10, x10, x13
- sri v8.2d, v10.2d, #1
- eor x12, x12, x9
- tbl v9.16b, {v10.16b}, v11.16b
- add x10, x10, x15
- eor v9.16b, v9.16b, v8.16b
- eor x17, x17, x4
- ushr v10.2d, v10.2d, #7
- add x10, x10, x12
- eor v9.16b, v9.16b, v10.16b
- add x14, x14, x17
- add v4.2d, v4.2d, v9.2d
- add x6, x6, x10
- add x10, x10, x14
- # Round 10
- mov x13, v5.d[0]
- ldr x15, [x3], #8
- ror x12, x6, #14
- ror x14, x10, #28
- eor x12, x12, x6, ror 18
- eor x14, x14, x10, ror 34
- eor x12, x12, x6, ror 41
- eor x14, x14, x10, ror 39
- add x9, x9, x12
- eor x17, x10, x11
- eor x12, x7, x8
- and x16, x17, x16
- and x12, x12, x6
- add x9, x9, x13
- eor x12, x12, x8
- add x9, x9, x15
- eor x16, x16, x11
- add x9, x9, x12
- add x14, x14, x16
- add x5, x5, x9
- add x9, x9, x14
- # Round 11
- mov x13, v5.d[1]
- ldr x15, [x3], #8
- ext v10.16b, v5.16b, v6.16b, #8
- ror x12, x5, #14
- shl v8.2d, v4.2d, #45
- ror x14, x9, #28
- sri v8.2d, v4.2d, #19
- eor x12, x12, x5, ror 18
- shl v9.2d, v4.2d, #3
- eor x14, x14, x9, ror 34
- sri v9.2d, v4.2d, #61
- eor x12, x12, x5, ror 41
- eor v9.16b, v9.16b, v8.16b
- eor x14, x14, x9, ror 39
- ushr v8.2d, v4.2d, #6
- add x8, x8, x12
- eor v9.16b, v9.16b, v8.16b
- eor x16, x9, x10
- add v5.2d, v5.2d, v9.2d
- eor x12, x6, x7
- ext v9.16b, v1.16b, v2.16b, #8
- and x17, x16, x17
- add v5.2d, v5.2d, v9.2d
- and x12, x12, x5
- shl v8.2d, v10.2d, #63
- add x8, x8, x13
- sri v8.2d, v10.2d, #1
- eor x12, x12, x7
- tbl v9.16b, {v10.16b}, v11.16b
- add x8, x8, x15
- eor v9.16b, v9.16b, v8.16b
- eor x17, x17, x10
- ushr v10.2d, v10.2d, #7
- add x8, x8, x12
- eor v9.16b, v9.16b, v10.16b
- add x14, x14, x17
- add v5.2d, v5.2d, v9.2d
- add x4, x4, x8
- add x8, x8, x14
- # Round 12
- mov x13, v6.d[0]
- ldr x15, [x3], #8
- ror x12, x4, #14
- ror x14, x8, #28
- eor x12, x12, x4, ror 18
- eor x14, x14, x8, ror 34
- eor x12, x12, x4, ror 41
- eor x14, x14, x8, ror 39
- add x7, x7, x12
- eor x17, x8, x9
- eor x12, x5, x6
- and x16, x17, x16
- and x12, x12, x4
- add x7, x7, x13
- eor x12, x12, x6
- add x7, x7, x15
- eor x16, x16, x9
- add x7, x7, x12
- add x14, x14, x16
- add x11, x11, x7
- add x7, x7, x14
- # Round 13
- mov x13, v6.d[1]
- ldr x15, [x3], #8
- ext v10.16b, v6.16b, v7.16b, #8
- ror x12, x11, #14
- shl v8.2d, v5.2d, #45
- ror x14, x7, #28
- sri v8.2d, v5.2d, #19
- eor x12, x12, x11, ror 18
- shl v9.2d, v5.2d, #3
- eor x14, x14, x7, ror 34
- sri v9.2d, v5.2d, #61
- eor x12, x12, x11, ror 41
- eor v9.16b, v9.16b, v8.16b
- eor x14, x14, x7, ror 39
- ushr v8.2d, v5.2d, #6
- add x6, x6, x12
- eor v9.16b, v9.16b, v8.16b
- eor x16, x7, x8
- add v6.2d, v6.2d, v9.2d
- eor x12, x4, x5
- ext v9.16b, v2.16b, v3.16b, #8
- and x17, x16, x17
- add v6.2d, v6.2d, v9.2d
- and x12, x12, x11
- shl v8.2d, v10.2d, #63
- add x6, x6, x13
- sri v8.2d, v10.2d, #1
- eor x12, x12, x5
- tbl v9.16b, {v10.16b}, v11.16b
- add x6, x6, x15
- eor v9.16b, v9.16b, v8.16b
- eor x17, x17, x8
- ushr v10.2d, v10.2d, #7
- add x6, x6, x12
- eor v9.16b, v9.16b, v10.16b
- add x14, x14, x17
- add v6.2d, v6.2d, v9.2d
- add x10, x10, x6
- add x6, x6, x14
- # Round 14
- mov x13, v7.d[0]
- ldr x15, [x3], #8
- ror x12, x10, #14
- ror x14, x6, #28
- eor x12, x12, x10, ror 18
- eor x14, x14, x6, ror 34
- eor x12, x12, x10, ror 41
- eor x14, x14, x6, ror 39
- add x5, x5, x12
- eor x17, x6, x7
- eor x12, x11, x4
- and x16, x17, x16
- and x12, x12, x10
- add x5, x5, x13
- eor x12, x12, x4
- add x5, x5, x15
- eor x16, x16, x7
- add x5, x5, x12
- add x14, x14, x16
- add x9, x9, x5
- add x5, x5, x14
- # Round 15
- mov x13, v7.d[1]
- ldr x15, [x3], #8
- ext v10.16b, v7.16b, v0.16b, #8
- ror x12, x9, #14
- shl v8.2d, v6.2d, #45
- ror x14, x5, #28
- sri v8.2d, v6.2d, #19
- eor x12, x12, x9, ror 18
- shl v9.2d, v6.2d, #3
- eor x14, x14, x5, ror 34
- sri v9.2d, v6.2d, #61
- eor x12, x12, x9, ror 41
- eor v9.16b, v9.16b, v8.16b
- eor x14, x14, x5, ror 39
- ushr v8.2d, v6.2d, #6
- add x4, x4, x12
- eor v9.16b, v9.16b, v8.16b
- eor x16, x5, x6
- add v7.2d, v7.2d, v9.2d
- eor x12, x10, x11
- ext v9.16b, v3.16b, v4.16b, #8
- and x17, x16, x17
- add v7.2d, v7.2d, v9.2d
- and x12, x12, x9
- shl v8.2d, v10.2d, #63
- add x4, x4, x13
- sri v8.2d, v10.2d, #1
- eor x12, x12, x11
- tbl v9.16b, {v10.16b}, v11.16b
- add x4, x4, x15
- eor v9.16b, v9.16b, v8.16b
- eor x17, x17, x6
- ushr v10.2d, v10.2d, #7
- add x4, x4, x12
- eor v9.16b, v9.16b, v10.16b
- add x14, x14, x17
- add v7.2d, v7.2d, v9.2d
- add x8, x8, x4
- add x4, x4, x14
- subs x27, x27, #1
- bne L_sha512_len_neon_start
- # Round 0
- mov x13, v0.d[0]
- ldr x15, [x3], #8
- ror x12, x8, #14
- ror x14, x4, #28
- eor x12, x12, x8, ror 18
- eor x14, x14, x4, ror 34
- eor x12, x12, x8, ror 41
- eor x14, x14, x4, ror 39
- add x11, x11, x12
- eor x17, x4, x5
- eor x12, x9, x10
- and x16, x17, x16
- and x12, x12, x8
- add x11, x11, x13
- eor x12, x12, x10
- add x11, x11, x15
- eor x16, x16, x5
- add x11, x11, x12
- add x14, x14, x16
- add x7, x7, x11
- add x11, x11, x14
- # Round 1
- mov x13, v0.d[1]
- ldr x15, [x3], #8
- ror x12, x7, #14
- ror x14, x11, #28
- eor x12, x12, x7, ror 18
- eor x14, x14, x11, ror 34
- eor x12, x12, x7, ror 41
- eor x14, x14, x11, ror 39
- add x10, x10, x12
- eor x16, x11, x4
- eor x12, x8, x9
- and x17, x16, x17
- and x12, x12, x7
- add x10, x10, x13
- eor x12, x12, x9
- add x10, x10, x15
- eor x17, x17, x4
- add x10, x10, x12
- add x14, x14, x17
- add x6, x6, x10
- add x10, x10, x14
- # Round 2
- mov x13, v1.d[0]
- ldr x15, [x3], #8
- ror x12, x6, #14
- ror x14, x10, #28
- eor x12, x12, x6, ror 18
- eor x14, x14, x10, ror 34
- eor x12, x12, x6, ror 41
- eor x14, x14, x10, ror 39
- add x9, x9, x12
- eor x17, x10, x11
- eor x12, x7, x8
- and x16, x17, x16
- and x12, x12, x6
- add x9, x9, x13
- eor x12, x12, x8
- add x9, x9, x15
- eor x16, x16, x11
- add x9, x9, x12
- add x14, x14, x16
- add x5, x5, x9
- add x9, x9, x14
- # Round 3
- mov x13, v1.d[1]
- ldr x15, [x3], #8
- ror x12, x5, #14
- ror x14, x9, #28
- eor x12, x12, x5, ror 18
- eor x14, x14, x9, ror 34
- eor x12, x12, x5, ror 41
- eor x14, x14, x9, ror 39
- add x8, x8, x12
- eor x16, x9, x10
- eor x12, x6, x7
- and x17, x16, x17
- and x12, x12, x5
- add x8, x8, x13
- eor x12, x12, x7
- add x8, x8, x15
- eor x17, x17, x10
- add x8, x8, x12
- add x14, x14, x17
- add x4, x4, x8
- add x8, x8, x14
- # Round 4
- mov x13, v2.d[0]
- ldr x15, [x3], #8
- ror x12, x4, #14
- ror x14, x8, #28
- eor x12, x12, x4, ror 18
- eor x14, x14, x8, ror 34
- eor x12, x12, x4, ror 41
- eor x14, x14, x8, ror 39
- add x7, x7, x12
- eor x17, x8, x9
- eor x12, x5, x6
- and x16, x17, x16
- and x12, x12, x4
- add x7, x7, x13
- eor x12, x12, x6
- add x7, x7, x15
- eor x16, x16, x9
- add x7, x7, x12
- add x14, x14, x16
- add x11, x11, x7
- add x7, x7, x14
- # Round 5
- mov x13, v2.d[1]
- ldr x15, [x3], #8
- ror x12, x11, #14
- ror x14, x7, #28
- eor x12, x12, x11, ror 18
- eor x14, x14, x7, ror 34
- eor x12, x12, x11, ror 41
- eor x14, x14, x7, ror 39
- add x6, x6, x12
- eor x16, x7, x8
- eor x12, x4, x5
- and x17, x16, x17
- and x12, x12, x11
- add x6, x6, x13
- eor x12, x12, x5
- add x6, x6, x15
- eor x17, x17, x8
- add x6, x6, x12
- add x14, x14, x17
- add x10, x10, x6
- add x6, x6, x14
- # Round 6
- mov x13, v3.d[0]
- ldr x15, [x3], #8
- ror x12, x10, #14
- ror x14, x6, #28
- eor x12, x12, x10, ror 18
- eor x14, x14, x6, ror 34
- eor x12, x12, x10, ror 41
- eor x14, x14, x6, ror 39
- add x5, x5, x12
- eor x17, x6, x7
- eor x12, x11, x4
- and x16, x17, x16
- and x12, x12, x10
- add x5, x5, x13
- eor x12, x12, x4
- add x5, x5, x15
- eor x16, x16, x7
- add x5, x5, x12
- add x14, x14, x16
- add x9, x9, x5
- add x5, x5, x14
- # Round 7
- mov x13, v3.d[1]
- ldr x15, [x3], #8
- ror x12, x9, #14
- ror x14, x5, #28
- eor x12, x12, x9, ror 18
- eor x14, x14, x5, ror 34
- eor x12, x12, x9, ror 41
- eor x14, x14, x5, ror 39
- add x4, x4, x12
- eor x16, x5, x6
- eor x12, x10, x11
- and x17, x16, x17
- and x12, x12, x9
- add x4, x4, x13
- eor x12, x12, x11
- add x4, x4, x15
- eor x17, x17, x6
- add x4, x4, x12
- add x14, x14, x17
- add x8, x8, x4
- add x4, x4, x14
- # Round 8
- mov x13, v4.d[0]
- ldr x15, [x3], #8
- ror x12, x8, #14
- ror x14, x4, #28
- eor x12, x12, x8, ror 18
- eor x14, x14, x4, ror 34
- eor x12, x12, x8, ror 41
- eor x14, x14, x4, ror 39
- add x11, x11, x12
- eor x17, x4, x5
- eor x12, x9, x10
- and x16, x17, x16
- and x12, x12, x8
- add x11, x11, x13
- eor x12, x12, x10
- add x11, x11, x15
- eor x16, x16, x5
- add x11, x11, x12
- add x14, x14, x16
- add x7, x7, x11
- add x11, x11, x14
- # Round 9
- mov x13, v4.d[1]
- ldr x15, [x3], #8
- ror x12, x7, #14
- ror x14, x11, #28
- eor x12, x12, x7, ror 18
- eor x14, x14, x11, ror 34
- eor x12, x12, x7, ror 41
- eor x14, x14, x11, ror 39
- add x10, x10, x12
- eor x16, x11, x4
- eor x12, x8, x9
- and x17, x16, x17
- and x12, x12, x7
- add x10, x10, x13
- eor x12, x12, x9
- add x10, x10, x15
- eor x17, x17, x4
- add x10, x10, x12
- add x14, x14, x17
- add x6, x6, x10
- add x10, x10, x14
- # Round 10
- mov x13, v5.d[0]
- ldr x15, [x3], #8
- ror x12, x6, #14
- ror x14, x10, #28
- eor x12, x12, x6, ror 18
- eor x14, x14, x10, ror 34
- eor x12, x12, x6, ror 41
- eor x14, x14, x10, ror 39
- add x9, x9, x12
- eor x17, x10, x11
- eor x12, x7, x8
- and x16, x17, x16
- and x12, x12, x6
- add x9, x9, x13
- eor x12, x12, x8
- add x9, x9, x15
- eor x16, x16, x11
- add x9, x9, x12
- add x14, x14, x16
- add x5, x5, x9
- add x9, x9, x14
- # Round 11
- mov x13, v5.d[1]
- ldr x15, [x3], #8
- ror x12, x5, #14
- ror x14, x9, #28
- eor x12, x12, x5, ror 18
- eor x14, x14, x9, ror 34
- eor x12, x12, x5, ror 41
- eor x14, x14, x9, ror 39
- add x8, x8, x12
- eor x16, x9, x10
- eor x12, x6, x7
- and x17, x16, x17
- and x12, x12, x5
- add x8, x8, x13
- eor x12, x12, x7
- add x8, x8, x15
- eor x17, x17, x10
- add x8, x8, x12
- add x14, x14, x17
- add x4, x4, x8
- add x8, x8, x14
- # Round 12
- mov x13, v6.d[0]
- ldr x15, [x3], #8
- ror x12, x4, #14
- ror x14, x8, #28
- eor x12, x12, x4, ror 18
- eor x14, x14, x8, ror 34
- eor x12, x12, x4, ror 41
- eor x14, x14, x8, ror 39
- add x7, x7, x12
- eor x17, x8, x9
- eor x12, x5, x6
- and x16, x17, x16
- and x12, x12, x4
- add x7, x7, x13
- eor x12, x12, x6
- add x7, x7, x15
- eor x16, x16, x9
- add x7, x7, x12
- add x14, x14, x16
- add x11, x11, x7
- add x7, x7, x14
- # Round 13
- mov x13, v6.d[1]
- ldr x15, [x3], #8
- ror x12, x11, #14
- ror x14, x7, #28
- eor x12, x12, x11, ror 18
- eor x14, x14, x7, ror 34
- eor x12, x12, x11, ror 41
- eor x14, x14, x7, ror 39
- add x6, x6, x12
- eor x16, x7, x8
- eor x12, x4, x5
- and x17, x16, x17
- and x12, x12, x11
- add x6, x6, x13
- eor x12, x12, x5
- add x6, x6, x15
- eor x17, x17, x8
- add x6, x6, x12
- add x14, x14, x17
- add x10, x10, x6
- add x6, x6, x14
- # Round 14
- mov x13, v7.d[0]
- ldr x15, [x3], #8
- ror x12, x10, #14
- ror x14, x6, #28
- eor x12, x12, x10, ror 18
- eor x14, x14, x6, ror 34
- eor x12, x12, x10, ror 41
- eor x14, x14, x6, ror 39
- add x5, x5, x12
- eor x17, x6, x7
- eor x12, x11, x4
- and x16, x17, x16
- and x12, x12, x10
- add x5, x5, x13
- eor x12, x12, x4
- add x5, x5, x15
- eor x16, x16, x7
- add x5, x5, x12
- add x14, x14, x16
- add x9, x9, x5
- add x5, x5, x14
- # Round 15
- mov x13, v7.d[1]
- ldr x15, [x3], #8
- ror x12, x9, #14
- ror x14, x5, #28
- eor x12, x12, x9, ror 18
- eor x14, x14, x5, ror 34
- eor x12, x12, x9, ror 41
- eor x14, x14, x5, ror 39
- add x4, x4, x12
- eor x16, x5, x6
- eor x12, x10, x11
- and x17, x16, x17
- and x12, x12, x9
- add x4, x4, x13
- eor x12, x12, x11
- add x4, x4, x15
- eor x17, x17, x6
- add x4, x4, x12
- add x14, x14, x17
- add x8, x8, x4
- add x4, x4, x14
- add x11, x11, x26
- add x10, x10, x25
- add x9, x9, x24
- add x8, x8, x23
- add x7, x7, x22
- add x6, x6, x21
- add x5, x5, x20
- add x4, x4, x19
- adr x3, L_SHA512_transform_neon_len_k
- subs w2, w2, #0x80
- bne L_sha512_len_neon_begin
- stp x4, x5, [x0]
- stp x6, x7, [x0, #16]
- stp x8, x9, [x0, #32]
- stp x10, x11, [x0, #48]
- ldr x17, [x29, #16]
- ldr x19, [x29, #24]
- ldp x20, x21, [x29, #32]
- ldp x22, x23, [x29, #48]
- ldp x24, x25, [x29, #64]
- ldp x26, x27, [x29, #80]
- ldp d8, d9, [x29, #96]
- ldp d10, d11, [x29, #112]
- ldp x29, x30, [sp], #0x80
- ret
- .size Transform_Sha512_Len,.-Transform_Sha512_Len
-#endif /* __aarch64__ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha512-asm.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha512-asm.c
deleted file mode 100644
index d323598dd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha512-asm.c
+++ /dev/null
@@ -1,1041 +0,0 @@
-/* armv8-sha512-asm
- *
- * Copyright (C) 2006-2020 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
- */
-
-/* Generated using (from wolfssl):
- * cd ../scripts
- * ruby ./sha2/sha512.rb arm64 ../wolfssl/wolfcrypt/src/port/arm/armv8-sha512-asm.c
- */
-#ifdef __aarch64__
-#include <stdint.h>
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifdef WOLFSSL_ARMASM
-#include <wolfssl/wolfcrypt/sha512.h>
-
-static const uint64_t L_SHA512_transform_neon_len_k[] = {
- 0x428a2f98d728ae22UL,
- 0x7137449123ef65cdUL,
- 0xb5c0fbcfec4d3b2fUL,
- 0xe9b5dba58189dbbcUL,
- 0x3956c25bf348b538UL,
- 0x59f111f1b605d019UL,
- 0x923f82a4af194f9bUL,
- 0xab1c5ed5da6d8118UL,
- 0xd807aa98a3030242UL,
- 0x12835b0145706fbeUL,
- 0x243185be4ee4b28cUL,
- 0x550c7dc3d5ffb4e2UL,
- 0x72be5d74f27b896fUL,
- 0x80deb1fe3b1696b1UL,
- 0x9bdc06a725c71235UL,
- 0xc19bf174cf692694UL,
- 0xe49b69c19ef14ad2UL,
- 0xefbe4786384f25e3UL,
- 0xfc19dc68b8cd5b5UL,
- 0x240ca1cc77ac9c65UL,
- 0x2de92c6f592b0275UL,
- 0x4a7484aa6ea6e483UL,
- 0x5cb0a9dcbd41fbd4UL,
- 0x76f988da831153b5UL,
- 0x983e5152ee66dfabUL,
- 0xa831c66d2db43210UL,
- 0xb00327c898fb213fUL,
- 0xbf597fc7beef0ee4UL,
- 0xc6e00bf33da88fc2UL,
- 0xd5a79147930aa725UL,
- 0x6ca6351e003826fUL,
- 0x142929670a0e6e70UL,
- 0x27b70a8546d22ffcUL,
- 0x2e1b21385c26c926UL,
- 0x4d2c6dfc5ac42aedUL,
- 0x53380d139d95b3dfUL,
- 0x650a73548baf63deUL,
- 0x766a0abb3c77b2a8UL,
- 0x81c2c92e47edaee6UL,
- 0x92722c851482353bUL,
- 0xa2bfe8a14cf10364UL,
- 0xa81a664bbc423001UL,
- 0xc24b8b70d0f89791UL,
- 0xc76c51a30654be30UL,
- 0xd192e819d6ef5218UL,
- 0xd69906245565a910UL,
- 0xf40e35855771202aUL,
- 0x106aa07032bbd1b8UL,
- 0x19a4c116b8d2d0c8UL,
- 0x1e376c085141ab53UL,
- 0x2748774cdf8eeb99UL,
- 0x34b0bcb5e19b48a8UL,
- 0x391c0cb3c5c95a63UL,
- 0x4ed8aa4ae3418acbUL,
- 0x5b9cca4f7763e373UL,
- 0x682e6ff3d6b2b8a3UL,
- 0x748f82ee5defb2fcUL,
- 0x78a5636f43172f60UL,
- 0x84c87814a1f0ab72UL,
- 0x8cc702081a6439ecUL,
- 0x90befffa23631e28UL,
- 0xa4506cebde82bde9UL,
- 0xbef9a3f7b2c67915UL,
- 0xc67178f2e372532bUL,
- 0xca273eceea26619cUL,
- 0xd186b8c721c0c207UL,
- 0xeada7dd6cde0eb1eUL,
- 0xf57d4f7fee6ed178UL,
- 0x6f067aa72176fbaUL,
- 0xa637dc5a2c898a6UL,
- 0x113f9804bef90daeUL,
- 0x1b710b35131c471bUL,
- 0x28db77f523047d84UL,
- 0x32caab7b40c72493UL,
- 0x3c9ebe0a15c9bebcUL,
- 0x431d67c49c100d4cUL,
- 0x4cc5d4becb3e42b6UL,
- 0x597f299cfc657e2aUL,
- 0x5fcb6fab3ad6faecUL,
- 0x6c44198c4a475817UL,
-};
-
-static const uint64_t L_SHA512_transform_neon_len_ror8[] = {
- 0x7060504030201UL,
- 0x80f0e0d0c0b0a09UL,
-};
-
-void Transform_Sha512_Len(wc_Sha512* sha512, const byte* data, word32 len)
-{
- __asm__ __volatile__ (
- "stp x29, x30, [sp, #-16]!\n\t"
- "add x29, sp, #0\n\t"
- "adr x3, %[L_SHA512_transform_neon_len_k]\n\t"
- "adr x27, %[L_SHA512_transform_neon_len_ror8]\n\t"
- "ld1 {v11.16b}, [x27]\n\t"
- /* Load digest into working vars */
- "ldp x4, x5, [%x[sha512]]\n\t"
- "ldp x6, x7, [%x[sha512], #16]\n\t"
- "ldp x8, x9, [%x[sha512], #32]\n\t"
- "ldp x10, x11, [%x[sha512], #48]\n\t"
- /* Start of loop processing a block */
- "\n"
- "L_sha512_len_neon_begin_%=: \n\t"
- /* Load W */
- /* Copy digest to add in at end */
- "ld1 {v0.2d, v1.2d, v2.2d, v3.2d}, [%x[data]], #0x40\n\t"
- "mov x19, x4\n\t"
- "ld1 {v4.2d, v5.2d, v6.2d, v7.2d}, [%x[data]], #0x40\n\t"
- "mov x20, x5\n\t"
- "rev64 v0.16b, v0.16b\n\t"
- "mov x21, x6\n\t"
- "rev64 v1.16b, v1.16b\n\t"
- "mov x22, x7\n\t"
- "rev64 v2.16b, v2.16b\n\t"
- "mov x23, x8\n\t"
- "rev64 v3.16b, v3.16b\n\t"
- "mov x24, x9\n\t"
- "rev64 v4.16b, v4.16b\n\t"
- "mov x25, x10\n\t"
- "rev64 v5.16b, v5.16b\n\t"
- "mov x26, x11\n\t"
- "rev64 v6.16b, v6.16b\n\t"
- "rev64 v7.16b, v7.16b\n\t"
- /* Pre-calc: b ^ c */
- "eor x16, x5, x6\n\t"
- "mov x27, #4\n\t"
- /* Start of 16 rounds */
- "\n"
- "L_sha512_len_neon_start_%=: \n\t"
- /* Round 0 */
- "mov x13, v0.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x8, #14\n\t"
- "ror x14, x4, #28\n\t"
- "eor x12, x12, x8, ror 18\n\t"
- "eor x14, x14, x4, ror 34\n\t"
- "eor x12, x12, x8, ror 41\n\t"
- "eor x14, x14, x4, ror 39\n\t"
- "add x11, x11, x12\n\t"
- "eor x17, x4, x5\n\t"
- "eor x12, x9, x10\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x8\n\t"
- "add x11, x11, x13\n\t"
- "eor x12, x12, x10\n\t"
- "add x11, x11, x15\n\t"
- "eor x16, x16, x5\n\t"
- "add x11, x11, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x7, x7, x11\n\t"
- "add x11, x11, x14\n\t"
- /* Round 1 */
- "mov x13, v0.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ext v10.16b, v0.16b, v1.16b, #8\n\t"
- "ror x12, x7, #14\n\t"
- "shl v8.2d, v7.2d, #45\n\t"
- "ror x14, x11, #28\n\t"
- "sri v8.2d, v7.2d, #19\n\t"
- "eor x12, x12, x7, ror 18\n\t"
- "shl v9.2d, v7.2d, #3\n\t"
- "eor x14, x14, x11, ror 34\n\t"
- "sri v9.2d, v7.2d, #61\n\t"
- "eor x12, x12, x7, ror 41\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x14, x14, x11, ror 39\n\t"
- "ushr v8.2d, v7.2d, #6\n\t"
- "add x10, x10, x12\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x16, x11, x4\n\t"
- "add v0.2d, v0.2d, v9.2d\n\t"
- "eor x12, x8, x9\n\t"
- "ext v9.16b, v4.16b, v5.16b, #8\n\t"
- "and x17, x16, x17\n\t"
- "add v0.2d, v0.2d, v9.2d\n\t"
- "and x12, x12, x7\n\t"
- "shl v8.2d, v10.2d, #63\n\t"
- "add x10, x10, x13\n\t"
- "sri v8.2d, v10.2d, #1\n\t"
- "eor x12, x12, x9\n\t"
- "tbl v9.16b, {v10.16b}, v11.16b\n\t"
- "add x10, x10, x15\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x17, x17, x4\n\t"
- "ushr v10.2d, v10.2d, #7\n\t"
- "add x10, x10, x12\n\t"
- "eor v9.16b, v9.16b, v10.16b\n\t"
- "add x14, x14, x17\n\t"
- "add v0.2d, v0.2d, v9.2d\n\t"
- "add x6, x6, x10\n\t"
- "add x10, x10, x14\n\t"
- /* Round 2 */
- "mov x13, v1.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x6, #14\n\t"
- "ror x14, x10, #28\n\t"
- "eor x12, x12, x6, ror 18\n\t"
- "eor x14, x14, x10, ror 34\n\t"
- "eor x12, x12, x6, ror 41\n\t"
- "eor x14, x14, x10, ror 39\n\t"
- "add x9, x9, x12\n\t"
- "eor x17, x10, x11\n\t"
- "eor x12, x7, x8\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x6\n\t"
- "add x9, x9, x13\n\t"
- "eor x12, x12, x8\n\t"
- "add x9, x9, x15\n\t"
- "eor x16, x16, x11\n\t"
- "add x9, x9, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x5, x5, x9\n\t"
- "add x9, x9, x14\n\t"
- /* Round 3 */
- "mov x13, v1.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ext v10.16b, v1.16b, v2.16b, #8\n\t"
- "ror x12, x5, #14\n\t"
- "shl v8.2d, v0.2d, #45\n\t"
- "ror x14, x9, #28\n\t"
- "sri v8.2d, v0.2d, #19\n\t"
- "eor x12, x12, x5, ror 18\n\t"
- "shl v9.2d, v0.2d, #3\n\t"
- "eor x14, x14, x9, ror 34\n\t"
- "sri v9.2d, v0.2d, #61\n\t"
- "eor x12, x12, x5, ror 41\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x14, x14, x9, ror 39\n\t"
- "ushr v8.2d, v0.2d, #6\n\t"
- "add x8, x8, x12\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x16, x9, x10\n\t"
- "add v1.2d, v1.2d, v9.2d\n\t"
- "eor x12, x6, x7\n\t"
- "ext v9.16b, v5.16b, v6.16b, #8\n\t"
- "and x17, x16, x17\n\t"
- "add v1.2d, v1.2d, v9.2d\n\t"
- "and x12, x12, x5\n\t"
- "shl v8.2d, v10.2d, #63\n\t"
- "add x8, x8, x13\n\t"
- "sri v8.2d, v10.2d, #1\n\t"
- "eor x12, x12, x7\n\t"
- "tbl v9.16b, {v10.16b}, v11.16b\n\t"
- "add x8, x8, x15\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x17, x17, x10\n\t"
- "ushr v10.2d, v10.2d, #7\n\t"
- "add x8, x8, x12\n\t"
- "eor v9.16b, v9.16b, v10.16b\n\t"
- "add x14, x14, x17\n\t"
- "add v1.2d, v1.2d, v9.2d\n\t"
- "add x4, x4, x8\n\t"
- "add x8, x8, x14\n\t"
- /* Round 4 */
- "mov x13, v2.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x4, #14\n\t"
- "ror x14, x8, #28\n\t"
- "eor x12, x12, x4, ror 18\n\t"
- "eor x14, x14, x8, ror 34\n\t"
- "eor x12, x12, x4, ror 41\n\t"
- "eor x14, x14, x8, ror 39\n\t"
- "add x7, x7, x12\n\t"
- "eor x17, x8, x9\n\t"
- "eor x12, x5, x6\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x4\n\t"
- "add x7, x7, x13\n\t"
- "eor x12, x12, x6\n\t"
- "add x7, x7, x15\n\t"
- "eor x16, x16, x9\n\t"
- "add x7, x7, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x11, x11, x7\n\t"
- "add x7, x7, x14\n\t"
- /* Round 5 */
- "mov x13, v2.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ext v10.16b, v2.16b, v3.16b, #8\n\t"
- "ror x12, x11, #14\n\t"
- "shl v8.2d, v1.2d, #45\n\t"
- "ror x14, x7, #28\n\t"
- "sri v8.2d, v1.2d, #19\n\t"
- "eor x12, x12, x11, ror 18\n\t"
- "shl v9.2d, v1.2d, #3\n\t"
- "eor x14, x14, x7, ror 34\n\t"
- "sri v9.2d, v1.2d, #61\n\t"
- "eor x12, x12, x11, ror 41\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x14, x14, x7, ror 39\n\t"
- "ushr v8.2d, v1.2d, #6\n\t"
- "add x6, x6, x12\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x16, x7, x8\n\t"
- "add v2.2d, v2.2d, v9.2d\n\t"
- "eor x12, x4, x5\n\t"
- "ext v9.16b, v6.16b, v7.16b, #8\n\t"
- "and x17, x16, x17\n\t"
- "add v2.2d, v2.2d, v9.2d\n\t"
- "and x12, x12, x11\n\t"
- "shl v8.2d, v10.2d, #63\n\t"
- "add x6, x6, x13\n\t"
- "sri v8.2d, v10.2d, #1\n\t"
- "eor x12, x12, x5\n\t"
- "tbl v9.16b, {v10.16b}, v11.16b\n\t"
- "add x6, x6, x15\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x17, x17, x8\n\t"
- "ushr v10.2d, v10.2d, #7\n\t"
- "add x6, x6, x12\n\t"
- "eor v9.16b, v9.16b, v10.16b\n\t"
- "add x14, x14, x17\n\t"
- "add v2.2d, v2.2d, v9.2d\n\t"
- "add x10, x10, x6\n\t"
- "add x6, x6, x14\n\t"
- /* Round 6 */
- "mov x13, v3.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x10, #14\n\t"
- "ror x14, x6, #28\n\t"
- "eor x12, x12, x10, ror 18\n\t"
- "eor x14, x14, x6, ror 34\n\t"
- "eor x12, x12, x10, ror 41\n\t"
- "eor x14, x14, x6, ror 39\n\t"
- "add x5, x5, x12\n\t"
- "eor x17, x6, x7\n\t"
- "eor x12, x11, x4\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x10\n\t"
- "add x5, x5, x13\n\t"
- "eor x12, x12, x4\n\t"
- "add x5, x5, x15\n\t"
- "eor x16, x16, x7\n\t"
- "add x5, x5, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x9, x9, x5\n\t"
- "add x5, x5, x14\n\t"
- /* Round 7 */
- "mov x13, v3.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ext v10.16b, v3.16b, v4.16b, #8\n\t"
- "ror x12, x9, #14\n\t"
- "shl v8.2d, v2.2d, #45\n\t"
- "ror x14, x5, #28\n\t"
- "sri v8.2d, v2.2d, #19\n\t"
- "eor x12, x12, x9, ror 18\n\t"
- "shl v9.2d, v2.2d, #3\n\t"
- "eor x14, x14, x5, ror 34\n\t"
- "sri v9.2d, v2.2d, #61\n\t"
- "eor x12, x12, x9, ror 41\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x14, x14, x5, ror 39\n\t"
- "ushr v8.2d, v2.2d, #6\n\t"
- "add x4, x4, x12\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x16, x5, x6\n\t"
- "add v3.2d, v3.2d, v9.2d\n\t"
- "eor x12, x10, x11\n\t"
- "ext v9.16b, v7.16b, v0.16b, #8\n\t"
- "and x17, x16, x17\n\t"
- "add v3.2d, v3.2d, v9.2d\n\t"
- "and x12, x12, x9\n\t"
- "shl v8.2d, v10.2d, #63\n\t"
- "add x4, x4, x13\n\t"
- "sri v8.2d, v10.2d, #1\n\t"
- "eor x12, x12, x11\n\t"
- "tbl v9.16b, {v10.16b}, v11.16b\n\t"
- "add x4, x4, x15\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x17, x17, x6\n\t"
- "ushr v10.2d, v10.2d, #7\n\t"
- "add x4, x4, x12\n\t"
- "eor v9.16b, v9.16b, v10.16b\n\t"
- "add x14, x14, x17\n\t"
- "add v3.2d, v3.2d, v9.2d\n\t"
- "add x8, x8, x4\n\t"
- "add x4, x4, x14\n\t"
- /* Round 8 */
- "mov x13, v4.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x8, #14\n\t"
- "ror x14, x4, #28\n\t"
- "eor x12, x12, x8, ror 18\n\t"
- "eor x14, x14, x4, ror 34\n\t"
- "eor x12, x12, x8, ror 41\n\t"
- "eor x14, x14, x4, ror 39\n\t"
- "add x11, x11, x12\n\t"
- "eor x17, x4, x5\n\t"
- "eor x12, x9, x10\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x8\n\t"
- "add x11, x11, x13\n\t"
- "eor x12, x12, x10\n\t"
- "add x11, x11, x15\n\t"
- "eor x16, x16, x5\n\t"
- "add x11, x11, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x7, x7, x11\n\t"
- "add x11, x11, x14\n\t"
- /* Round 9 */
- "mov x13, v4.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ext v10.16b, v4.16b, v5.16b, #8\n\t"
- "ror x12, x7, #14\n\t"
- "shl v8.2d, v3.2d, #45\n\t"
- "ror x14, x11, #28\n\t"
- "sri v8.2d, v3.2d, #19\n\t"
- "eor x12, x12, x7, ror 18\n\t"
- "shl v9.2d, v3.2d, #3\n\t"
- "eor x14, x14, x11, ror 34\n\t"
- "sri v9.2d, v3.2d, #61\n\t"
- "eor x12, x12, x7, ror 41\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x14, x14, x11, ror 39\n\t"
- "ushr v8.2d, v3.2d, #6\n\t"
- "add x10, x10, x12\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x16, x11, x4\n\t"
- "add v4.2d, v4.2d, v9.2d\n\t"
- "eor x12, x8, x9\n\t"
- "ext v9.16b, v0.16b, v1.16b, #8\n\t"
- "and x17, x16, x17\n\t"
- "add v4.2d, v4.2d, v9.2d\n\t"
- "and x12, x12, x7\n\t"
- "shl v8.2d, v10.2d, #63\n\t"
- "add x10, x10, x13\n\t"
- "sri v8.2d, v10.2d, #1\n\t"
- "eor x12, x12, x9\n\t"
- "tbl v9.16b, {v10.16b}, v11.16b\n\t"
- "add x10, x10, x15\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x17, x17, x4\n\t"
- "ushr v10.2d, v10.2d, #7\n\t"
- "add x10, x10, x12\n\t"
- "eor v9.16b, v9.16b, v10.16b\n\t"
- "add x14, x14, x17\n\t"
- "add v4.2d, v4.2d, v9.2d\n\t"
- "add x6, x6, x10\n\t"
- "add x10, x10, x14\n\t"
- /* Round 10 */
- "mov x13, v5.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x6, #14\n\t"
- "ror x14, x10, #28\n\t"
- "eor x12, x12, x6, ror 18\n\t"
- "eor x14, x14, x10, ror 34\n\t"
- "eor x12, x12, x6, ror 41\n\t"
- "eor x14, x14, x10, ror 39\n\t"
- "add x9, x9, x12\n\t"
- "eor x17, x10, x11\n\t"
- "eor x12, x7, x8\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x6\n\t"
- "add x9, x9, x13\n\t"
- "eor x12, x12, x8\n\t"
- "add x9, x9, x15\n\t"
- "eor x16, x16, x11\n\t"
- "add x9, x9, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x5, x5, x9\n\t"
- "add x9, x9, x14\n\t"
- /* Round 11 */
- "mov x13, v5.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ext v10.16b, v5.16b, v6.16b, #8\n\t"
- "ror x12, x5, #14\n\t"
- "shl v8.2d, v4.2d, #45\n\t"
- "ror x14, x9, #28\n\t"
- "sri v8.2d, v4.2d, #19\n\t"
- "eor x12, x12, x5, ror 18\n\t"
- "shl v9.2d, v4.2d, #3\n\t"
- "eor x14, x14, x9, ror 34\n\t"
- "sri v9.2d, v4.2d, #61\n\t"
- "eor x12, x12, x5, ror 41\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x14, x14, x9, ror 39\n\t"
- "ushr v8.2d, v4.2d, #6\n\t"
- "add x8, x8, x12\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x16, x9, x10\n\t"
- "add v5.2d, v5.2d, v9.2d\n\t"
- "eor x12, x6, x7\n\t"
- "ext v9.16b, v1.16b, v2.16b, #8\n\t"
- "and x17, x16, x17\n\t"
- "add v5.2d, v5.2d, v9.2d\n\t"
- "and x12, x12, x5\n\t"
- "shl v8.2d, v10.2d, #63\n\t"
- "add x8, x8, x13\n\t"
- "sri v8.2d, v10.2d, #1\n\t"
- "eor x12, x12, x7\n\t"
- "tbl v9.16b, {v10.16b}, v11.16b\n\t"
- "add x8, x8, x15\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x17, x17, x10\n\t"
- "ushr v10.2d, v10.2d, #7\n\t"
- "add x8, x8, x12\n\t"
- "eor v9.16b, v9.16b, v10.16b\n\t"
- "add x14, x14, x17\n\t"
- "add v5.2d, v5.2d, v9.2d\n\t"
- "add x4, x4, x8\n\t"
- "add x8, x8, x14\n\t"
- /* Round 12 */
- "mov x13, v6.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x4, #14\n\t"
- "ror x14, x8, #28\n\t"
- "eor x12, x12, x4, ror 18\n\t"
- "eor x14, x14, x8, ror 34\n\t"
- "eor x12, x12, x4, ror 41\n\t"
- "eor x14, x14, x8, ror 39\n\t"
- "add x7, x7, x12\n\t"
- "eor x17, x8, x9\n\t"
- "eor x12, x5, x6\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x4\n\t"
- "add x7, x7, x13\n\t"
- "eor x12, x12, x6\n\t"
- "add x7, x7, x15\n\t"
- "eor x16, x16, x9\n\t"
- "add x7, x7, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x11, x11, x7\n\t"
- "add x7, x7, x14\n\t"
- /* Round 13 */
- "mov x13, v6.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ext v10.16b, v6.16b, v7.16b, #8\n\t"
- "ror x12, x11, #14\n\t"
- "shl v8.2d, v5.2d, #45\n\t"
- "ror x14, x7, #28\n\t"
- "sri v8.2d, v5.2d, #19\n\t"
- "eor x12, x12, x11, ror 18\n\t"
- "shl v9.2d, v5.2d, #3\n\t"
- "eor x14, x14, x7, ror 34\n\t"
- "sri v9.2d, v5.2d, #61\n\t"
- "eor x12, x12, x11, ror 41\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x14, x14, x7, ror 39\n\t"
- "ushr v8.2d, v5.2d, #6\n\t"
- "add x6, x6, x12\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x16, x7, x8\n\t"
- "add v6.2d, v6.2d, v9.2d\n\t"
- "eor x12, x4, x5\n\t"
- "ext v9.16b, v2.16b, v3.16b, #8\n\t"
- "and x17, x16, x17\n\t"
- "add v6.2d, v6.2d, v9.2d\n\t"
- "and x12, x12, x11\n\t"
- "shl v8.2d, v10.2d, #63\n\t"
- "add x6, x6, x13\n\t"
- "sri v8.2d, v10.2d, #1\n\t"
- "eor x12, x12, x5\n\t"
- "tbl v9.16b, {v10.16b}, v11.16b\n\t"
- "add x6, x6, x15\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x17, x17, x8\n\t"
- "ushr v10.2d, v10.2d, #7\n\t"
- "add x6, x6, x12\n\t"
- "eor v9.16b, v9.16b, v10.16b\n\t"
- "add x14, x14, x17\n\t"
- "add v6.2d, v6.2d, v9.2d\n\t"
- "add x10, x10, x6\n\t"
- "add x6, x6, x14\n\t"
- /* Round 14 */
- "mov x13, v7.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x10, #14\n\t"
- "ror x14, x6, #28\n\t"
- "eor x12, x12, x10, ror 18\n\t"
- "eor x14, x14, x6, ror 34\n\t"
- "eor x12, x12, x10, ror 41\n\t"
- "eor x14, x14, x6, ror 39\n\t"
- "add x5, x5, x12\n\t"
- "eor x17, x6, x7\n\t"
- "eor x12, x11, x4\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x10\n\t"
- "add x5, x5, x13\n\t"
- "eor x12, x12, x4\n\t"
- "add x5, x5, x15\n\t"
- "eor x16, x16, x7\n\t"
- "add x5, x5, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x9, x9, x5\n\t"
- "add x5, x5, x14\n\t"
- /* Round 15 */
- "mov x13, v7.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ext v10.16b, v7.16b, v0.16b, #8\n\t"
- "ror x12, x9, #14\n\t"
- "shl v8.2d, v6.2d, #45\n\t"
- "ror x14, x5, #28\n\t"
- "sri v8.2d, v6.2d, #19\n\t"
- "eor x12, x12, x9, ror 18\n\t"
- "shl v9.2d, v6.2d, #3\n\t"
- "eor x14, x14, x5, ror 34\n\t"
- "sri v9.2d, v6.2d, #61\n\t"
- "eor x12, x12, x9, ror 41\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x14, x14, x5, ror 39\n\t"
- "ushr v8.2d, v6.2d, #6\n\t"
- "add x4, x4, x12\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x16, x5, x6\n\t"
- "add v7.2d, v7.2d, v9.2d\n\t"
- "eor x12, x10, x11\n\t"
- "ext v9.16b, v3.16b, v4.16b, #8\n\t"
- "and x17, x16, x17\n\t"
- "add v7.2d, v7.2d, v9.2d\n\t"
- "and x12, x12, x9\n\t"
- "shl v8.2d, v10.2d, #63\n\t"
- "add x4, x4, x13\n\t"
- "sri v8.2d, v10.2d, #1\n\t"
- "eor x12, x12, x11\n\t"
- "tbl v9.16b, {v10.16b}, v11.16b\n\t"
- "add x4, x4, x15\n\t"
- "eor v9.16b, v9.16b, v8.16b\n\t"
- "eor x17, x17, x6\n\t"
- "ushr v10.2d, v10.2d, #7\n\t"
- "add x4, x4, x12\n\t"
- "eor v9.16b, v9.16b, v10.16b\n\t"
- "add x14, x14, x17\n\t"
- "add v7.2d, v7.2d, v9.2d\n\t"
- "add x8, x8, x4\n\t"
- "add x4, x4, x14\n\t"
- "subs x27, x27, #1\n\t"
- "bne L_sha512_len_neon_start_%=\n\t"
- /* Round 0 */
- "mov x13, v0.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x8, #14\n\t"
- "ror x14, x4, #28\n\t"
- "eor x12, x12, x8, ror 18\n\t"
- "eor x14, x14, x4, ror 34\n\t"
- "eor x12, x12, x8, ror 41\n\t"
- "eor x14, x14, x4, ror 39\n\t"
- "add x11, x11, x12\n\t"
- "eor x17, x4, x5\n\t"
- "eor x12, x9, x10\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x8\n\t"
- "add x11, x11, x13\n\t"
- "eor x12, x12, x10\n\t"
- "add x11, x11, x15\n\t"
- "eor x16, x16, x5\n\t"
- "add x11, x11, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x7, x7, x11\n\t"
- "add x11, x11, x14\n\t"
- /* Round 1 */
- "mov x13, v0.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x7, #14\n\t"
- "ror x14, x11, #28\n\t"
- "eor x12, x12, x7, ror 18\n\t"
- "eor x14, x14, x11, ror 34\n\t"
- "eor x12, x12, x7, ror 41\n\t"
- "eor x14, x14, x11, ror 39\n\t"
- "add x10, x10, x12\n\t"
- "eor x16, x11, x4\n\t"
- "eor x12, x8, x9\n\t"
- "and x17, x16, x17\n\t"
- "and x12, x12, x7\n\t"
- "add x10, x10, x13\n\t"
- "eor x12, x12, x9\n\t"
- "add x10, x10, x15\n\t"
- "eor x17, x17, x4\n\t"
- "add x10, x10, x12\n\t"
- "add x14, x14, x17\n\t"
- "add x6, x6, x10\n\t"
- "add x10, x10, x14\n\t"
- /* Round 2 */
- "mov x13, v1.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x6, #14\n\t"
- "ror x14, x10, #28\n\t"
- "eor x12, x12, x6, ror 18\n\t"
- "eor x14, x14, x10, ror 34\n\t"
- "eor x12, x12, x6, ror 41\n\t"
- "eor x14, x14, x10, ror 39\n\t"
- "add x9, x9, x12\n\t"
- "eor x17, x10, x11\n\t"
- "eor x12, x7, x8\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x6\n\t"
- "add x9, x9, x13\n\t"
- "eor x12, x12, x8\n\t"
- "add x9, x9, x15\n\t"
- "eor x16, x16, x11\n\t"
- "add x9, x9, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x5, x5, x9\n\t"
- "add x9, x9, x14\n\t"
- /* Round 3 */
- "mov x13, v1.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x5, #14\n\t"
- "ror x14, x9, #28\n\t"
- "eor x12, x12, x5, ror 18\n\t"
- "eor x14, x14, x9, ror 34\n\t"
- "eor x12, x12, x5, ror 41\n\t"
- "eor x14, x14, x9, ror 39\n\t"
- "add x8, x8, x12\n\t"
- "eor x16, x9, x10\n\t"
- "eor x12, x6, x7\n\t"
- "and x17, x16, x17\n\t"
- "and x12, x12, x5\n\t"
- "add x8, x8, x13\n\t"
- "eor x12, x12, x7\n\t"
- "add x8, x8, x15\n\t"
- "eor x17, x17, x10\n\t"
- "add x8, x8, x12\n\t"
- "add x14, x14, x17\n\t"
- "add x4, x4, x8\n\t"
- "add x8, x8, x14\n\t"
- /* Round 4 */
- "mov x13, v2.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x4, #14\n\t"
- "ror x14, x8, #28\n\t"
- "eor x12, x12, x4, ror 18\n\t"
- "eor x14, x14, x8, ror 34\n\t"
- "eor x12, x12, x4, ror 41\n\t"
- "eor x14, x14, x8, ror 39\n\t"
- "add x7, x7, x12\n\t"
- "eor x17, x8, x9\n\t"
- "eor x12, x5, x6\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x4\n\t"
- "add x7, x7, x13\n\t"
- "eor x12, x12, x6\n\t"
- "add x7, x7, x15\n\t"
- "eor x16, x16, x9\n\t"
- "add x7, x7, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x11, x11, x7\n\t"
- "add x7, x7, x14\n\t"
- /* Round 5 */
- "mov x13, v2.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x11, #14\n\t"
- "ror x14, x7, #28\n\t"
- "eor x12, x12, x11, ror 18\n\t"
- "eor x14, x14, x7, ror 34\n\t"
- "eor x12, x12, x11, ror 41\n\t"
- "eor x14, x14, x7, ror 39\n\t"
- "add x6, x6, x12\n\t"
- "eor x16, x7, x8\n\t"
- "eor x12, x4, x5\n\t"
- "and x17, x16, x17\n\t"
- "and x12, x12, x11\n\t"
- "add x6, x6, x13\n\t"
- "eor x12, x12, x5\n\t"
- "add x6, x6, x15\n\t"
- "eor x17, x17, x8\n\t"
- "add x6, x6, x12\n\t"
- "add x14, x14, x17\n\t"
- "add x10, x10, x6\n\t"
- "add x6, x6, x14\n\t"
- /* Round 6 */
- "mov x13, v3.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x10, #14\n\t"
- "ror x14, x6, #28\n\t"
- "eor x12, x12, x10, ror 18\n\t"
- "eor x14, x14, x6, ror 34\n\t"
- "eor x12, x12, x10, ror 41\n\t"
- "eor x14, x14, x6, ror 39\n\t"
- "add x5, x5, x12\n\t"
- "eor x17, x6, x7\n\t"
- "eor x12, x11, x4\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x10\n\t"
- "add x5, x5, x13\n\t"
- "eor x12, x12, x4\n\t"
- "add x5, x5, x15\n\t"
- "eor x16, x16, x7\n\t"
- "add x5, x5, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x9, x9, x5\n\t"
- "add x5, x5, x14\n\t"
- /* Round 7 */
- "mov x13, v3.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x9, #14\n\t"
- "ror x14, x5, #28\n\t"
- "eor x12, x12, x9, ror 18\n\t"
- "eor x14, x14, x5, ror 34\n\t"
- "eor x12, x12, x9, ror 41\n\t"
- "eor x14, x14, x5, ror 39\n\t"
- "add x4, x4, x12\n\t"
- "eor x16, x5, x6\n\t"
- "eor x12, x10, x11\n\t"
- "and x17, x16, x17\n\t"
- "and x12, x12, x9\n\t"
- "add x4, x4, x13\n\t"
- "eor x12, x12, x11\n\t"
- "add x4, x4, x15\n\t"
- "eor x17, x17, x6\n\t"
- "add x4, x4, x12\n\t"
- "add x14, x14, x17\n\t"
- "add x8, x8, x4\n\t"
- "add x4, x4, x14\n\t"
- /* Round 8 */
- "mov x13, v4.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x8, #14\n\t"
- "ror x14, x4, #28\n\t"
- "eor x12, x12, x8, ror 18\n\t"
- "eor x14, x14, x4, ror 34\n\t"
- "eor x12, x12, x8, ror 41\n\t"
- "eor x14, x14, x4, ror 39\n\t"
- "add x11, x11, x12\n\t"
- "eor x17, x4, x5\n\t"
- "eor x12, x9, x10\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x8\n\t"
- "add x11, x11, x13\n\t"
- "eor x12, x12, x10\n\t"
- "add x11, x11, x15\n\t"
- "eor x16, x16, x5\n\t"
- "add x11, x11, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x7, x7, x11\n\t"
- "add x11, x11, x14\n\t"
- /* Round 9 */
- "mov x13, v4.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x7, #14\n\t"
- "ror x14, x11, #28\n\t"
- "eor x12, x12, x7, ror 18\n\t"
- "eor x14, x14, x11, ror 34\n\t"
- "eor x12, x12, x7, ror 41\n\t"
- "eor x14, x14, x11, ror 39\n\t"
- "add x10, x10, x12\n\t"
- "eor x16, x11, x4\n\t"
- "eor x12, x8, x9\n\t"
- "and x17, x16, x17\n\t"
- "and x12, x12, x7\n\t"
- "add x10, x10, x13\n\t"
- "eor x12, x12, x9\n\t"
- "add x10, x10, x15\n\t"
- "eor x17, x17, x4\n\t"
- "add x10, x10, x12\n\t"
- "add x14, x14, x17\n\t"
- "add x6, x6, x10\n\t"
- "add x10, x10, x14\n\t"
- /* Round 10 */
- "mov x13, v5.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x6, #14\n\t"
- "ror x14, x10, #28\n\t"
- "eor x12, x12, x6, ror 18\n\t"
- "eor x14, x14, x10, ror 34\n\t"
- "eor x12, x12, x6, ror 41\n\t"
- "eor x14, x14, x10, ror 39\n\t"
- "add x9, x9, x12\n\t"
- "eor x17, x10, x11\n\t"
- "eor x12, x7, x8\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x6\n\t"
- "add x9, x9, x13\n\t"
- "eor x12, x12, x8\n\t"
- "add x9, x9, x15\n\t"
- "eor x16, x16, x11\n\t"
- "add x9, x9, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x5, x5, x9\n\t"
- "add x9, x9, x14\n\t"
- /* Round 11 */
- "mov x13, v5.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x5, #14\n\t"
- "ror x14, x9, #28\n\t"
- "eor x12, x12, x5, ror 18\n\t"
- "eor x14, x14, x9, ror 34\n\t"
- "eor x12, x12, x5, ror 41\n\t"
- "eor x14, x14, x9, ror 39\n\t"
- "add x8, x8, x12\n\t"
- "eor x16, x9, x10\n\t"
- "eor x12, x6, x7\n\t"
- "and x17, x16, x17\n\t"
- "and x12, x12, x5\n\t"
- "add x8, x8, x13\n\t"
- "eor x12, x12, x7\n\t"
- "add x8, x8, x15\n\t"
- "eor x17, x17, x10\n\t"
- "add x8, x8, x12\n\t"
- "add x14, x14, x17\n\t"
- "add x4, x4, x8\n\t"
- "add x8, x8, x14\n\t"
- /* Round 12 */
- "mov x13, v6.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x4, #14\n\t"
- "ror x14, x8, #28\n\t"
- "eor x12, x12, x4, ror 18\n\t"
- "eor x14, x14, x8, ror 34\n\t"
- "eor x12, x12, x4, ror 41\n\t"
- "eor x14, x14, x8, ror 39\n\t"
- "add x7, x7, x12\n\t"
- "eor x17, x8, x9\n\t"
- "eor x12, x5, x6\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x4\n\t"
- "add x7, x7, x13\n\t"
- "eor x12, x12, x6\n\t"
- "add x7, x7, x15\n\t"
- "eor x16, x16, x9\n\t"
- "add x7, x7, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x11, x11, x7\n\t"
- "add x7, x7, x14\n\t"
- /* Round 13 */
- "mov x13, v6.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x11, #14\n\t"
- "ror x14, x7, #28\n\t"
- "eor x12, x12, x11, ror 18\n\t"
- "eor x14, x14, x7, ror 34\n\t"
- "eor x12, x12, x11, ror 41\n\t"
- "eor x14, x14, x7, ror 39\n\t"
- "add x6, x6, x12\n\t"
- "eor x16, x7, x8\n\t"
- "eor x12, x4, x5\n\t"
- "and x17, x16, x17\n\t"
- "and x12, x12, x11\n\t"
- "add x6, x6, x13\n\t"
- "eor x12, x12, x5\n\t"
- "add x6, x6, x15\n\t"
- "eor x17, x17, x8\n\t"
- "add x6, x6, x12\n\t"
- "add x14, x14, x17\n\t"
- "add x10, x10, x6\n\t"
- "add x6, x6, x14\n\t"
- /* Round 14 */
- "mov x13, v7.d[0]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x10, #14\n\t"
- "ror x14, x6, #28\n\t"
- "eor x12, x12, x10, ror 18\n\t"
- "eor x14, x14, x6, ror 34\n\t"
- "eor x12, x12, x10, ror 41\n\t"
- "eor x14, x14, x6, ror 39\n\t"
- "add x5, x5, x12\n\t"
- "eor x17, x6, x7\n\t"
- "eor x12, x11, x4\n\t"
- "and x16, x17, x16\n\t"
- "and x12, x12, x10\n\t"
- "add x5, x5, x13\n\t"
- "eor x12, x12, x4\n\t"
- "add x5, x5, x15\n\t"
- "eor x16, x16, x7\n\t"
- "add x5, x5, x12\n\t"
- "add x14, x14, x16\n\t"
- "add x9, x9, x5\n\t"
- "add x5, x5, x14\n\t"
- /* Round 15 */
- "mov x13, v7.d[1]\n\t"
- "ldr x15, [x3], #8\n\t"
- "ror x12, x9, #14\n\t"
- "ror x14, x5, #28\n\t"
- "eor x12, x12, x9, ror 18\n\t"
- "eor x14, x14, x5, ror 34\n\t"
- "eor x12, x12, x9, ror 41\n\t"
- "eor x14, x14, x5, ror 39\n\t"
- "add x4, x4, x12\n\t"
- "eor x16, x5, x6\n\t"
- "eor x12, x10, x11\n\t"
- "and x17, x16, x17\n\t"
- "and x12, x12, x9\n\t"
- "add x4, x4, x13\n\t"
- "eor x12, x12, x11\n\t"
- "add x4, x4, x15\n\t"
- "eor x17, x17, x6\n\t"
- "add x4, x4, x12\n\t"
- "add x14, x14, x17\n\t"
- "add x8, x8, x4\n\t"
- "add x4, x4, x14\n\t"
- "add x11, x11, x26\n\t"
- "add x10, x10, x25\n\t"
- "add x9, x9, x24\n\t"
- "add x8, x8, x23\n\t"
- "add x7, x7, x22\n\t"
- "add x6, x6, x21\n\t"
- "add x5, x5, x20\n\t"
- "add x4, x4, x19\n\t"
- "adr x3, %[L_SHA512_transform_neon_len_k]\n\t"
- "subs %w[len], %w[len], #0x80\n\t"
- "bne L_sha512_len_neon_begin_%=\n\t"
- "stp x4, x5, [%x[sha512]]\n\t"
- "stp x6, x7, [%x[sha512], #16]\n\t"
- "stp x8, x9, [%x[sha512], #32]\n\t"
- "stp x10, x11, [%x[sha512], #48]\n\t"
- "ldp x29, x30, [sp], #16\n\t"
- : [sha512] "+r" (sha512), [data] "+r" (data), [len] "+r" (len)
- : [L_SHA512_transform_neon_len_k] "S" (L_SHA512_transform_neon_len_k), [L_SHA512_transform_neon_len_ror8] "S" (L_SHA512_transform_neon_len_ror8)
- : "memory", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27", "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v8", "v9", "v10", "v11"
- );
-}
-
-#endif /* WOLFSSL_ARMASM */
-#endif /* __aarch64__ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha512.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha512.c
deleted file mode 100644
index e909c7c25..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/armv8-sha512.c
+++ /dev/null
@@ -1,715 +0,0 @@
-/* sha512.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifdef WOLFSSL_ARMASM
-#if defined(WOLFSSL_SHA512) || defined(WOLFSSL_SHA384)
-
-#include <wolfssl/wolfcrypt/sha512.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/cpuid.h>
-#include <wolfssl/wolfcrypt/hash.h>
-
-#include <wolfssl/wolfcrypt/logging.h>
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-#ifdef WOLFSSL_SHA512
-
-static int InitSha512(wc_Sha512* sha512)
-{
- if (sha512 == NULL)
- return BAD_FUNC_ARG;
-
- sha512->digest[0] = W64LIT(0x6a09e667f3bcc908);
- sha512->digest[1] = W64LIT(0xbb67ae8584caa73b);
- sha512->digest[2] = W64LIT(0x3c6ef372fe94f82b);
- sha512->digest[3] = W64LIT(0xa54ff53a5f1d36f1);
- sha512->digest[4] = W64LIT(0x510e527fade682d1);
- sha512->digest[5] = W64LIT(0x9b05688c2b3e6c1f);
- sha512->digest[6] = W64LIT(0x1f83d9abfb41bd6b);
- sha512->digest[7] = W64LIT(0x5be0cd19137e2179);
-
- sha512->buffLen = 0;
- sha512->loLen = 0;
- sha512->hiLen = 0;
-#if defined(WOLFSSL_HASH_FLAGS) || defined(WOLF_CRYPTO_CB)
- sha512->flags = 0;
-#endif
-
- return 0;
-}
-
-#endif /* WOLFSSL_SHA512 */
-
-#ifdef WOLFSSL_SHA512
-
-int wc_InitSha512_ex(wc_Sha512* sha512, void* heap, int devId)
-{
- int ret = 0;
-
- if (sha512 == NULL)
- return BAD_FUNC_ARG;
-
- sha512->heap = heap;
-
- ret = InitSha512(sha512);
- if (ret != 0)
- return ret;
-
-#ifdef WOLFSSL_SMALL_STACK_CACHE
- sha512->W = NULL;
-#endif
-
- (void)devId;
-
- return ret;
-}
-
-#endif /* WOLFSSL_SHA512 */
-
-#ifndef WOLFSSL_ARMASM
-static const word64 K512[80] = {
- W64LIT(0x428a2f98d728ae22), W64LIT(0x7137449123ef65cd),
- W64LIT(0xb5c0fbcfec4d3b2f), W64LIT(0xe9b5dba58189dbbc),
- W64LIT(0x3956c25bf348b538), W64LIT(0x59f111f1b605d019),
- W64LIT(0x923f82a4af194f9b), W64LIT(0xab1c5ed5da6d8118),
- W64LIT(0xd807aa98a3030242), W64LIT(0x12835b0145706fbe),
- W64LIT(0x243185be4ee4b28c), W64LIT(0x550c7dc3d5ffb4e2),
- W64LIT(0x72be5d74f27b896f), W64LIT(0x80deb1fe3b1696b1),
- W64LIT(0x9bdc06a725c71235), W64LIT(0xc19bf174cf692694),
- W64LIT(0xe49b69c19ef14ad2), W64LIT(0xefbe4786384f25e3),
- W64LIT(0x0fc19dc68b8cd5b5), W64LIT(0x240ca1cc77ac9c65),
- W64LIT(0x2de92c6f592b0275), W64LIT(0x4a7484aa6ea6e483),
- W64LIT(0x5cb0a9dcbd41fbd4), W64LIT(0x76f988da831153b5),
- W64LIT(0x983e5152ee66dfab), W64LIT(0xa831c66d2db43210),
- W64LIT(0xb00327c898fb213f), W64LIT(0xbf597fc7beef0ee4),
- W64LIT(0xc6e00bf33da88fc2), W64LIT(0xd5a79147930aa725),
- W64LIT(0x06ca6351e003826f), W64LIT(0x142929670a0e6e70),
- W64LIT(0x27b70a8546d22ffc), W64LIT(0x2e1b21385c26c926),
- W64LIT(0x4d2c6dfc5ac42aed), W64LIT(0x53380d139d95b3df),
- W64LIT(0x650a73548baf63de), W64LIT(0x766a0abb3c77b2a8),
- W64LIT(0x81c2c92e47edaee6), W64LIT(0x92722c851482353b),
- W64LIT(0xa2bfe8a14cf10364), W64LIT(0xa81a664bbc423001),
- W64LIT(0xc24b8b70d0f89791), W64LIT(0xc76c51a30654be30),
- W64LIT(0xd192e819d6ef5218), W64LIT(0xd69906245565a910),
- W64LIT(0xf40e35855771202a), W64LIT(0x106aa07032bbd1b8),
- W64LIT(0x19a4c116b8d2d0c8), W64LIT(0x1e376c085141ab53),
- W64LIT(0x2748774cdf8eeb99), W64LIT(0x34b0bcb5e19b48a8),
- W64LIT(0x391c0cb3c5c95a63), W64LIT(0x4ed8aa4ae3418acb),
- W64LIT(0x5b9cca4f7763e373), W64LIT(0x682e6ff3d6b2b8a3),
- W64LIT(0x748f82ee5defb2fc), W64LIT(0x78a5636f43172f60),
- W64LIT(0x84c87814a1f0ab72), W64LIT(0x8cc702081a6439ec),
- W64LIT(0x90befffa23631e28), W64LIT(0xa4506cebde82bde9),
- W64LIT(0xbef9a3f7b2c67915), W64LIT(0xc67178f2e372532b),
- W64LIT(0xca273eceea26619c), W64LIT(0xd186b8c721c0c207),
- W64LIT(0xeada7dd6cde0eb1e), W64LIT(0xf57d4f7fee6ed178),
- W64LIT(0x06f067aa72176fba), W64LIT(0x0a637dc5a2c898a6),
- W64LIT(0x113f9804bef90dae), W64LIT(0x1b710b35131c471b),
- W64LIT(0x28db77f523047d84), W64LIT(0x32caab7b40c72493),
- W64LIT(0x3c9ebe0a15c9bebc), W64LIT(0x431d67c49c100d4c),
- W64LIT(0x4cc5d4becb3e42b6), W64LIT(0x597f299cfc657e2a),
- W64LIT(0x5fcb6fab3ad6faec), W64LIT(0x6c44198c4a475817)
-};
-
-#ifdef LITTLE_ENDIAN_ORDER
-#define blk0(i) (W[i] = ByteReverseWord64(DATA[i]))
-#else
-#define blk0(i) (W[i] = DATA[i])
-#endif
-
-#define blk2(i) ( \
- W[ i ] += \
- s1(W[(i- 2) & 15])+ \
- W[(i- 7) & 15] + \
- s0(W[(i-15) & 15]) \
- )
-
-#define Ch(x,y,z) (z ^ ((z ^ y) & x))
-#define Maj(x,y,z) (y ^ ((y ^ z) & (x ^ y)))
-
-#define a(i) T[(0-i) & 7]
-#define b(i) T[(1-i) & 7]
-#define c(i) T[(2-i) & 7]
-#define d(i) T[(3-i) & 7]
-#define e(i) T[(4-i) & 7]
-#define f(i) T[(5-i) & 7]
-#define g(i) T[(6-i) & 7]
-#define h(i) T[(7-i) & 7]
-
-#define S0(x) (rotrFixed64(x,28) ^ rotrFixed64(x,34) ^ rotrFixed64(x,39))
-#define S1(x) (rotrFixed64(x,14) ^ rotrFixed64(x,18) ^ rotrFixed64(x,41))
-#define s0(x) (rotrFixed64(x, 1) ^ rotrFixed64(x, 8) ^ (x>>7))
-#define s1(x) (rotrFixed64(x,19) ^ rotrFixed64(x,61) ^ (x>>6))
-
-#define R0(i) \
- h(i) += S1(e(i)) + Ch(e(i),f(i),g(i)) + K[i+j] + blk0(i); \
- d(i) += h(i); \
- h(i) += S0(a(i)) + Maj(a(i),b(i),c(i))
-#define R(i) \
- h(i) += S1(e(i)) + Ch(e(i),f(i),g(i)) + K[i+j] + blk2(i); \
- d(i) += h(i); \
- h(i) += S0(a(i)) + Maj(a(i),b(i),c(i))
-
-#define DATA sha512->buffer
-static void Transform_Sha512(wc_Sha512* sha512)
-{
- const word64* K = K512;
- word32 j;
- word64 T[8];
- word64 W[16];
-
- /* Copy digest to working vars */
- T[0] = sha512->digest[0];
- T[1] = sha512->digest[1];
- T[2] = sha512->digest[2];
- T[3] = sha512->digest[3];
- T[4] = sha512->digest[4];
- T[5] = sha512->digest[5];
- T[6] = sha512->digest[6];
- T[7] = sha512->digest[7];
-
- /* 80 operations, partially loop unrolled */
- j = 0;
- R0( 0); R0( 1); R0( 2); R0( 3);
- R0( 4); R0( 5); R0( 6); R0( 7);
- R0( 8); R0( 9); R0(10); R0(11);
- R0(12); R0(13); R0(14); R0(15);
- for (j = 16; j < 80; j += 16) {
- R( 0); R( 1); R( 2); R( 3);
- R( 4); R( 5); R( 6); R( 7);
- R( 8); R( 9); R(10); R(11);
- R(12); R(13); R(14); R(15);
- }
-
- /* Add the working vars back into digest */
- sha512->digest[0] += T[0];
- sha512->digest[1] += T[1];
- sha512->digest[2] += T[2];
- sha512->digest[3] += T[3];
- sha512->digest[4] += T[4];
- sha512->digest[5] += T[5];
- sha512->digest[6] += T[6];
- sha512->digest[7] += T[7];
-
- return 0;
-}
-#undef DATA
-
-#define DATA ((word64*)data)
-static void Transform_Sha512_Len(wc_Sha512* sha512, const byte* data, word32 len)
-{
- const word64* K = K512;
- word32 j;
- word64 T[8];
- word64 TO[8];
- word64 W[16];
-
- /* Copy digest to working vars */
- T[0] = sha512->digest[0];
- T[1] = sha512->digest[1];
- T[2] = sha512->digest[2];
- T[3] = sha512->digest[3];
- T[4] = sha512->digest[4];
- T[5] = sha512->digest[5];
- T[6] = sha512->digest[6];
- T[7] = sha512->digest[7];
-
- do {
- TO[0] = T[0];
- TO[1] = T[1];
- TO[2] = T[2];
- TO[3] = T[3];
- TO[4] = T[4];
- TO[5] = T[5];
- TO[6] = T[6];
- TO[7] = T[7];
-
- /* 80 operations, partially loop unrolled */
- j = 0;
- R0( 0); R0( 1); R0( 2); R0( 3);
- R0( 4); R0( 5); R0( 6); R0( 7);
- R0( 8); R0( 9); R0(10); R0(11);
- R0(12); R0(13); R0(14); R0(15);
- for (j = 16; j < 80; j += 16) {
- R( 0); R( 1); R( 2); R( 3);
- R( 4); R( 5); R( 6); R( 7);
- R( 8); R( 9); R(10); R(11);
- R(12); R(13); R(14); R(15);
- }
-
- T[0] += TO[0];
- T[1] += TO[1];
- T[2] += TO[2];
- T[3] += TO[3];
- T[4] += TO[4];
- T[5] += TO[5];
- T[6] += TO[6];
- T[7] += TO[7];
-
- data += 128;
- len -= 128;
- }
- while (len > 0);
-
- /* Add the working vars back into digest */
- sha512->digest[0] = T[0];
- sha512->digest[1] = T[1];
- sha512->digest[2] = T[2];
- sha512->digest[3] = T[3];
- sha512->digest[4] = T[4];
- sha512->digest[5] = T[5];
- sha512->digest[6] = T[6];
- sha512->digest[7] = T[7];
-
- return 0;
-}
-#undef DATA
-#endif
-
-
-static WC_INLINE void AddLength(wc_Sha512* sha512, word32 len)
-{
- word64 tmp = sha512->loLen;
- if ( (sha512->loLen += len) < tmp)
- sha512->hiLen++; /* carry low to high */
-}
-
-static WC_INLINE int Sha512Update(wc_Sha512* sha512, const byte* data, word32 len)
-{
- int ret = 0;
- /* do block size increments */
- byte* local = (byte*)sha512->buffer;
- word32 blocksLen;
-
- /* check that internal buffLen is valid */
- if (sha512->buffLen >= WC_SHA512_BLOCK_SIZE)
- return BUFFER_E;
-
- AddLength(sha512, len);
-
- if (sha512->buffLen > 0) {
- word32 add = min(len, WC_SHA512_BLOCK_SIZE - sha512->buffLen);
- if (add > 0) {
- XMEMCPY(&local[sha512->buffLen], data, add);
-
- sha512->buffLen += add;
- data += add;
- len -= add;
- }
-
- if (sha512->buffLen == WC_SHA512_BLOCK_SIZE) {
-#ifndef WOLFSSL_ARMASM
- Transform_Sha512(sha512);
-#else
- Transform_Sha512_Len(sha512, (const byte*)sha512->buffer,
- WC_SHA512_BLOCK_SIZE);
-#endif
- sha512->buffLen = 0;
- }
- }
-
- blocksLen = len & ~(WC_SHA512_BLOCK_SIZE-1);
- if (blocksLen > 0) {
- /* Byte reversal performed in function if required. */
- Transform_Sha512_Len(sha512, data, blocksLen);
- data += blocksLen;
- len -= blocksLen;
- }
-
- if (len > 0) {
- XMEMCPY(local, data, len);
- sha512->buffLen = len;
- }
-
- return ret;
-}
-
-#ifdef WOLFSSL_SHA512
-
-int wc_Sha512Update(wc_Sha512* sha512, const byte* data, word32 len)
-{
- if (sha512 == NULL || (data == NULL && len > 0)) {
- return BAD_FUNC_ARG;
- }
-
- return Sha512Update(sha512, data, len);
-}
-
-#endif /* WOLFSSL_SHA512 */
-
-static WC_INLINE int Sha512Final(wc_Sha512* sha512)
-{
- byte* local = (byte*)sha512->buffer;
-
- if (sha512 == NULL) {
- return BAD_FUNC_ARG;
- }
-
- local[sha512->buffLen++] = 0x80; /* add 1 */
-
- /* pad with zeros */
- if (sha512->buffLen > WC_SHA512_PAD_SIZE) {
- XMEMSET(&local[sha512->buffLen], 0, WC_SHA512_BLOCK_SIZE -
- sha512->buffLen);
- sha512->buffLen += WC_SHA512_BLOCK_SIZE - sha512->buffLen;
-#ifndef WOLFSSL_ARMASM
- Transform_Sha512(sha512);
-#else
- Transform_Sha512_Len(sha512, (const byte*)sha512->buffer,
- WC_SHA512_BLOCK_SIZE);
-#endif
-
- sha512->buffLen = 0;
- }
- XMEMSET(&local[sha512->buffLen], 0, WC_SHA512_PAD_SIZE - sha512->buffLen);
-
- /* put lengths in bits */
- sha512->hiLen = (sha512->loLen >> (8 * sizeof(sha512->loLen) - 3)) +
- (sha512->hiLen << 3);
- sha512->loLen = sha512->loLen << 3;
-
- /* store lengths */
- /* ! length ordering dependent on digest endian type ! */
-
- sha512->buffer[WC_SHA512_BLOCK_SIZE / sizeof(word64) - 2] = sha512->hiLen;
- sha512->buffer[WC_SHA512_BLOCK_SIZE / sizeof(word64) - 1] = sha512->loLen;
-
- ByteReverseWords64(
- &(sha512->buffer[WC_SHA512_BLOCK_SIZE / sizeof(word64) - 2]),
- &(sha512->buffer[WC_SHA512_BLOCK_SIZE / sizeof(word64) - 2]),
- WC_SHA512_BLOCK_SIZE - WC_SHA512_PAD_SIZE);
-#ifndef WOLFSSL_ARMASM
- Transform_Sha512(sha512);
-#else
- Transform_Sha512_Len(sha512, (const byte*)sha512->buffer,
- WC_SHA512_BLOCK_SIZE);
-#endif
-
-#ifdef LITTLE_ENDIAN_ORDER
- ByteReverseWords64(sha512->digest, sha512->digest, WC_SHA512_DIGEST_SIZE);
-#endif
-
- return 0;
-}
-
-#ifdef WOLFSSL_SHA512
-
-int wc_Sha512FinalRaw(wc_Sha512* sha512, byte* hash)
-{
-#ifdef LITTLE_ENDIAN_ORDER
- word64 digest[WC_SHA512_DIGEST_SIZE / sizeof(word64)];
-#endif
-
- if (sha512 == NULL || hash == NULL) {
- return BAD_FUNC_ARG;
- }
-
-#ifdef LITTLE_ENDIAN_ORDER
- ByteReverseWords64((word64*)digest, (word64*)sha512->digest,
- WC_SHA512_DIGEST_SIZE);
- XMEMCPY(hash, digest, WC_SHA512_DIGEST_SIZE);
-#else
- XMEMCPY(hash, sha512->digest, WC_SHA512_DIGEST_SIZE);
-#endif
-
- return 0;
-}
-
-int wc_Sha512Final(wc_Sha512* sha512, byte* hash)
-{
- int ret;
-
- if (sha512 == NULL || hash == NULL) {
- return BAD_FUNC_ARG;
- }
-
- ret = Sha512Final(sha512);
- if (ret != 0)
- return ret;
-
- XMEMCPY(hash, sha512->digest, WC_SHA512_DIGEST_SIZE);
-
- return InitSha512(sha512); /* reset state */
-}
-
-int wc_InitSha512(wc_Sha512* sha512)
-{
- return wc_InitSha512_ex(sha512, NULL, INVALID_DEVID);
-}
-
-void wc_Sha512Free(wc_Sha512* sha512)
-{
- if (sha512 == NULL)
- return;
-
-#ifdef WOLFSSL_SMALL_STACK_CACHE
- if (sha512->W != NULL) {
- XFREE(sha512->W, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- sha512->W = NULL;
- }
-#endif
-}
-
-#endif /* WOLFSSL_SHA512 */
-
-/* -------------------------------------------------------------------------- */
-/* SHA384 */
-/* -------------------------------------------------------------------------- */
-#ifdef WOLFSSL_SHA384
-
-static int InitSha384(wc_Sha384* sha384)
-{
- if (sha384 == NULL) {
- return BAD_FUNC_ARG;
- }
-
- sha384->digest[0] = W64LIT(0xcbbb9d5dc1059ed8);
- sha384->digest[1] = W64LIT(0x629a292a367cd507);
- sha384->digest[2] = W64LIT(0x9159015a3070dd17);
- sha384->digest[3] = W64LIT(0x152fecd8f70e5939);
- sha384->digest[4] = W64LIT(0x67332667ffc00b31);
- sha384->digest[5] = W64LIT(0x8eb44a8768581511);
- sha384->digest[6] = W64LIT(0xdb0c2e0d64f98fa7);
- sha384->digest[7] = W64LIT(0x47b5481dbefa4fa4);
-
- sha384->buffLen = 0;
- sha384->loLen = 0;
- sha384->hiLen = 0;
-#if defined(WOLFSSL_HASH_FLAGS) || defined(WOLF_CRYPTO_CB)
- sha384->flags = 0;
-#endif
-
- return 0;
-}
-
-int wc_Sha384Update(wc_Sha384* sha384, const byte* data, word32 len)
-{
- if (sha384 == NULL || (data == NULL && len > 0)) {
- return BAD_FUNC_ARG;
- }
-
- return Sha512Update((wc_Sha512*)sha384, data, len);
-}
-
-
-int wc_Sha384FinalRaw(wc_Sha384* sha384, byte* hash)
-{
-#ifdef LITTLE_ENDIAN_ORDER
- word64 digest[WC_SHA384_DIGEST_SIZE / sizeof(word64)];
-#endif
-
- if (sha384 == NULL || hash == NULL) {
- return BAD_FUNC_ARG;
- }
-
-#ifdef LITTLE_ENDIAN_ORDER
- ByteReverseWords64((word64*)digest, (word64*)sha384->digest,
- WC_SHA384_DIGEST_SIZE);
- XMEMCPY(hash, digest, WC_SHA384_DIGEST_SIZE);
-#else
- XMEMCPY(hash, sha384->digest, WC_SHA384_DIGEST_SIZE);
-#endif
-
- return 0;
-}
-
-int wc_Sha384Final(wc_Sha384* sha384, byte* hash)
-{
- int ret;
-
- if (sha384 == NULL || hash == NULL) {
- return BAD_FUNC_ARG;
- }
-
- ret = Sha512Final((wc_Sha512*)sha384);
- if (ret != 0)
- return ret;
-
- XMEMCPY(hash, sha384->digest, WC_SHA384_DIGEST_SIZE);
-
- return InitSha384(sha384); /* reset state */
-}
-
-int wc_InitSha384_ex(wc_Sha384* sha384, void* heap, int devId)
-{
- int ret;
-
- if (sha384 == NULL) {
- return BAD_FUNC_ARG;
- }
-
- sha384->heap = heap;
- ret = InitSha384(sha384);
- if (ret != 0)
- return ret;
-
-#ifdef WOLFSSL_SMALL_STACK_CACHE
- sha384->W = NULL;
-#endif
-
- (void)devId;
-
- return ret;
-}
-
-int wc_InitSha384(wc_Sha384* sha384)
-{
- return wc_InitSha384_ex(sha384, NULL, INVALID_DEVID);
-}
-
-void wc_Sha384Free(wc_Sha384* sha384)
-{
- if (sha384 == NULL)
- return;
-
-#ifdef WOLFSSL_SMALL_STACK_CACHE
- if (sha384->W != NULL) {
- XFREE(sha384->W, NULL, DYNAMIC_TYPE_TMP_BUFFER);
- sha384->W = NULL;
- }
-#endif
-}
-
-#endif /* WOLFSSL_SHA384 */
-
-#ifdef WOLFSSL_SHA512
-
-int wc_Sha512GetHash(wc_Sha512* sha512, byte* hash)
-{
- int ret;
- wc_Sha512 tmpSha512;
-
- if (sha512 == NULL || hash == NULL)
- return BAD_FUNC_ARG;
-
- ret = wc_Sha512Copy(sha512, &tmpSha512);
- if (ret == 0) {
- ret = wc_Sha512Final(&tmpSha512, hash);
- wc_Sha512Free(&tmpSha512);
- }
- return ret;
-}
-
-int wc_Sha512Copy(wc_Sha512* src, wc_Sha512* dst)
-{
- int ret = 0;
-
- if (src == NULL || dst == NULL)
- return BAD_FUNC_ARG;
-
- XMEMCPY(dst, src, sizeof(wc_Sha512));
-#ifdef WOLFSSL_SMALL_STACK_CACHE
- dst->W = NULL;
-#endif
-
-#if defined(WOLFSSL_HASH_FLAGS) || defined(WOLF_CRYPTO_CB)
- dst->flags |= WC_HASH_FLAG_ISCOPY;
-#endif
-
- return ret;
-}
-
-#if defined(WOLFSSL_HASH_FLAGS) || defined(WOLF_CRYPTO_CB)
-int wc_Sha512SetFlags(wc_Sha512* sha512, word32 flags)
-{
- if (sha512) {
- sha512->flags = flags;
- }
- return 0;
-}
-int wc_Sha512GetFlags(wc_Sha512* sha512, word32* flags)
-{
- if (sha512 && flags) {
- *flags = sha512->flags;
- }
- return 0;
-}
-#endif
-
-#endif /* WOLFSSL_SHA512 */
-
-#ifdef WOLFSSL_SHA384
-
-int wc_Sha384GetHash(wc_Sha384* sha384, byte* hash)
-{
- int ret;
- wc_Sha384 tmpSha384;
-
- if (sha384 == NULL || hash == NULL)
- return BAD_FUNC_ARG;
- ret = wc_Sha384Copy(sha384, &tmpSha384);
- if (ret == 0) {
- ret = wc_Sha384Final(&tmpSha384, hash);
- wc_Sha384Free(&tmpSha384);
- }
- return ret;
-}
-int wc_Sha384Copy(wc_Sha384* src, wc_Sha384* dst)
-{
- int ret = 0;
-
- if (src == NULL || dst == NULL)
- return BAD_FUNC_ARG;
-
- XMEMCPY(dst, src, sizeof(wc_Sha384));
-#ifdef WOLFSSL_SMALL_STACK_CACHE
- dst->W = NULL;
-#endif
-
-#if defined(WOLFSSL_HASH_FLAGS) || defined(WOLF_CRYPTO_CB)
- dst->flags |= WC_HASH_FLAG_ISCOPY;
-#endif
-
- return ret;
-}
-
-#if defined(WOLFSSL_HASH_FLAGS) || defined(WOLF_CRYPTO_CB)
-int wc_Sha384SetFlags(wc_Sha384* sha384, word32 flags)
-{
- if (sha384) {
- sha384->flags = flags;
- }
- return 0;
-}
-int wc_Sha384GetFlags(wc_Sha384* sha384, word32* flags)
-{
- if (sha384 && flags) {
- *flags = sha384->flags;
- }
- return 0;
-}
-#endif
-
-#endif /* WOLFSSL_SHA384 */
-
-#endif /* WOLFSSL_SHA512 || WOLFSSL_SHA384 */
-#endif /* WOLFSSL_ARMASM */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/cryptoCell.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/cryptoCell.c
deleted file mode 100644
index c3bd2d9c5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/cryptoCell.c
+++ /dev/null
@@ -1,309 +0,0 @@
-/* cryptoCell.c
- *
- * Copyright (C) 2020 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
- */
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-/* This source is included in wc_port.c */
-/* WOLFSSL_CRYPTOCELL_C is defined by wc_port.c in case compile tries to
- include this .c directly */
-#ifdef WOLFSSL_CRYPTOCELL_C
-
-#ifdef WOLFSSL_CRYPTOCELL
-
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/logging.h>
-#include <wolfssl/wolfcrypt/ecc.h>
-#include <wolfssl/wolfcrypt/port/arm/cryptoCell.h>
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-/* Global Variables (extern) */
-CRYS_RND_State_t wc_rndState;
-CRYS_RND_WorkBuff_t wc_rndWorkBuff;
-SaSiRndGenerateVectWorkFunc_t wc_rndGenVectFunc = CRYS_RND_GenerateVector;
-
-static word32 cc310_enableCount = 0;
-
-static void cc310_enable(void)
-{
- cc310_enableCount++;
-
- /* Enable the CC310 HW/IQ once*/
-
- NRF_CRYPTOCELL->ENABLE = 1;
- NVIC_EnableIRQ(CRYPTOCELL_IRQn);
-}
-
-static void cc310_disable(void)
-{
- cc310_enableCount--;
-
- /* Disable HW/IRQ if no more users */
- if (cc310_enableCount == 0) {
- NRF_CRYPTOCELL->ENABLE = 0;
- NVIC_DisableIRQ(CRYPTOCELL_IRQn);
- }
-}
-
-int cc310_Init(void)
-{
- int ret = 0;
- static int initialized = 0;
-
- if (!initialized) {
- /* Enable the CC310 HW. */
- cc310_enable();
-
- /*Initialize the CC310 run-time library*/
- ret = SaSi_LibInit();
-
- if (ret != SA_SILIB_RET_OK) {
- WOLFSSL_MSG("Error SaSi_LibInit");
- return ret;
- }
-
- /* RNG CryptoCell CC310 */
- ret = CRYS_RndInit(&wc_rndState, &wc_rndWorkBuff);
- if (ret != CRYS_OK) {
- WOLFSSL_MSG("Error CRYS_RndInit");
- return ret;
- }
- initialized = 1;
- }
- return ret;
-}
-
-void cc310_Free(void)
-{
- CRYSError_t crys_result;
-
- SaSi_LibFini();
-
- crys_result = CRYS_RND_UnInstantiation(&wc_rndState);
-
- if (crys_result != CRYS_OK) {
- WOLFSSL_MSG("Error RYS_RND_UnInstantiation");
- }
- cc310_disable();
-}
-
-int cc310_random_generate(byte* output, word32 size)
-{
- CRYSError_t crys_result;
-
- crys_result = CRYS_RND_GenerateVector(&wc_rndState, size, output);
-
- return (crys_result == CRYS_OK) ? 0 : -1;
-}
-#ifdef HAVE_ECC
-CRYS_ECPKI_DomainID_t cc310_mapCurve(int curve_id)
-{
- switch(curve_id)
- {
- case ECC_CURVE_DEF: return CRYS_ECPKI_DomainID_secp256r1; /* default */
- case ECC_SECP160K1: return CRYS_ECPKI_DomainID_secp160k1;
- case ECC_SECP160R1: return CRYS_ECPKI_DomainID_secp160r1;
- case ECC_SECP160R2: return CRYS_ECPKI_DomainID_secp160r2;
- case ECC_SECP192K1: return CRYS_ECPKI_DomainID_secp192k1;
- case ECC_SECP192R1: return CRYS_ECPKI_DomainID_secp192r1;
- case ECC_SECP224K1: return CRYS_ECPKI_DomainID_secp224k1;
- case ECC_SECP224R1: return CRYS_ECPKI_DomainID_secp224r1;
- case ECC_SECP256K1: return CRYS_ECPKI_DomainID_secp256k1;
- case ECC_SECP256R1: return CRYS_ECPKI_DomainID_secp256r1;
- case ECC_SECP384R1: return CRYS_ECPKI_DomainID_secp384r1;
- case ECC_SECP521R1: return CRYS_ECPKI_DomainID_secp521r1;
- default: WOLFSSL_MSG("Curve not identified");
- return CRYS_ECPKI_DomainID_Builded;
- }
-}
-#endif /* HAVE_ECC */
-
-#ifndef NO_RSA
-CRYS_RSA_HASH_OpMode_t cc310_hashModeRSA(enum wc_HashType hash_type, int isHashed)
-{
- switch(hash_type)
- {
- case WC_HASH_TYPE_MD5:
- #ifndef NO_MD5
- return isHashed? CRYS_RSA_After_MD5_mode : CRYS_RSA_HASH_MD5_mode;
- #endif
- case WC_HASH_TYPE_SHA:
- #ifndef NO_SHA
- return isHashed? CRYS_RSA_After_SHA1_mode : CRYS_RSA_HASH_SHA1_mode;
- #endif
- case WC_HASH_TYPE_SHA224:
- #ifdef WOLFSSL_SHA224
- return isHashed? CRYS_RSA_After_SHA224_mode : CRYS_RSA_HASH_SHA224_mode;
- #endif
- case WC_HASH_TYPE_SHA256:
- #ifndef NO_SHA256
- return isHashed? CRYS_RSA_After_SHA256_mode : CRYS_RSA_HASH_SHA256_mode;
- #endif
- case WC_HASH_TYPE_SHA384:
- #ifdef WOLFSSL_SHA384
- return isHashed? CRYS_RSA_After_SHA384_mode : CRYS_RSA_HASH_SHA384_mode;
- #endif
- case WC_HASH_TYPE_SHA512:
- #ifdef WOLFSSL_SHA512
- return isHashed? CRYS_RSA_After_SHA512_mode : CRYS_RSA_HASH_SHA512_mode;
- #endif
- case WC_HASH_TYPE_NONE:
- /* default to SHA256 */
- return isHashed? CRYS_RSA_After_SHA256_mode : CRYS_RSA_HASH_SHA256_mode;
- default:
- return CRYS_RSA_After_HASH_NOT_KNOWN_mode;
- }
-}
-#endif /* !NO_RSA */
-
-#ifdef HAVE_ECC
-CRYS_ECPKI_HASH_OpMode_t cc310_hashModeECC(int hash_size)
-{
- CRYS_ECPKI_HASH_OpMode_t hash_mode;
- switch (hash_size)
- {
- case 20:
- hash_mode = CRYS_ECPKI_AFTER_HASH_SHA1_mode;
- break;
- case 28:
- hash_mode = CRYS_ECPKI_AFTER_HASH_SHA224_mode;
- break;
- case 32:
- hash_mode = CRYS_ECPKI_AFTER_HASH_SHA256_mode;
- break;
- case 48:
- hash_mode = CRYS_ECPKI_AFTER_HASH_SHA384_mode;
- break;
- case 64:
- hash_mode = CRYS_ECPKI_AFTER_HASH_SHA512_mode;
- break;
- default:
- hash_mode = CRYS_ECPKI_HASH_OpModeLast;
- break;
- }
- return hash_mode;
-}
-#endif /* HAVE_ECC */
-#endif /* WOLFSSL_CRYPTOCELL*/
-
-#if !defined(NO_CRYPT_BENCHMARK) && defined(WOLFSSL_nRF5x_SDK_15_2)
-
-static int mRtcSec = 0;
-static const nrfx_rtc_t rtc = NRFX_RTC_INSTANCE(0);
-
-static void rtc_handler(nrfx_rtc_int_type_t int_type)
-{
- if (int_type == NRFX_RTC_INT_COMPARE0) {
- mRtcSec++;
- nrfx_rtc_counter_clear(&rtc);
- nrfx_rtc_int_enable(&rtc, RTC_CHANNEL_INT_MASK(0));
-#ifdef BSP_LED_1
- nrf_gpio_pin_toggle(BSP_LED_1);
-#endif
- }
- else if (int_type == NRF_DRV_RTC_INT_TICK) {
-#ifdef BSP_LED_0
- nrf_gpio_pin_toggle(BSP_LED_0);
-#endif
- }
-}
-
-static void rtc_config(void)
-{
- uint32_t err_code;
- nrfx_rtc_config_t config = NRFX_RTC_DEFAULT_CONFIG;
-
- /* configure gpio for pin toggling. */
- bsp_board_init(BSP_INIT_LEDS);
-
- /* start the internal LFCLK XTAL oscillator.*/
- err_code = nrf_drv_clock_init();
- APP_ERROR_CHECK(err_code);
- nrf_drv_clock_lfclk_request(NULL);
-
- /* Initialize RTC instance */
- err_code = nrfx_rtc_init(&rtc, &config, rtc_handler);
- APP_ERROR_CHECK(err_code);
-
- /* Enable tick event */
- nrfx_rtc_tick_enable(&rtc, false);
-
- /* Set compare channel to trigger interrupt after 1 seconds */
- err_code = nrfx_rtc_cc_set(&rtc, 0, RTC_INPUT_FREQ, true);
- APP_ERROR_CHECK(err_code);
-
- /* Power on RTC instance */
- nrfx_rtc_enable(&rtc);
-}
-
-static int rtc_get_ms(void)
-{
- /* Prescaler is 12-bit for COUNTER: frequency = (32768/(PRESCALER+1)) */
- int frequency = (RTC_INPUT_FREQ / (rtc_prescaler_get(rtc.p_reg) + 1));
- uint32_t counter = nrfx_rtc_counter_get(&rtc);
-
- /* Convert with rounding frequency to milliseconds */
- return ((counter * 1000) + (frequency / 2) ) / frequency;
-}
-
-double current_time(int reset)
-{
- double time;
- static int initialized = 0;
-
- if (!initialized) {
- rtc_config();
- initialized = 1;
- }
- time = mRtcSec;
- time += (double)rtc_get_ms() / 1000;
-
- return time;
-}
-
-int nrf_random_generate(byte* output, word32 size)
-{
- uint32_t err_code;
- static int initialized = 0;
-
- /* RNG must be initialized once */
- if (!initialized) {
- err_code = nrf_drv_rng_init(NULL);
- if (err_code != NRF_SUCCESS) {
- return -1;
- }
- initialized = 1;
- }
- nrf_drv_rng_block_rand(output, size);
- return 0;
-}
-#endif /* !NO_CRYPT_BENCHMARK && WOLFSSL_nRF5x_SDK_15_2 */
-
-#endif /* WOLFSSL_CRYPTOCELL_C */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/cryptoCellHash.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/cryptoCellHash.c
deleted file mode 100644
index bc729f7f0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/arm/cryptoCellHash.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* cryptoCellHash.c
- *
- * Copyright (C) 2020 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
- */
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-/* This source is included in wc_port.c */
-/* WOLFSSL_CRYPTOCELL_HASH_C is defined by wc_port.c in case compile tries
- to include this .c directly */
-#ifdef WOLFSSL_CRYPTOCELL_HASH_C
-#if !defined(NO_SHA256) && defined(WOLFSSL_CRYPTOCELL)
-
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/logging.h>
-#include <wolfssl/wolfcrypt/sha256.h>
-#include <wolfssl/wolfcrypt/port/arm/cryptoCell.h>
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-int wc_InitSha256_ex(wc_Sha256* sha256, void* heap, int devId)
-{
- CRYSError_t ret = 0;
-
- (void)heap;
- (void)devId;
-
- if (sha256 == NULL)
- return BAD_FUNC_ARG;
-
- XMEMSET(sha256->digest, 0, sizeof(sha256->digest));
-
- /* initializes the HASH context and machine to the supported mode.*/
- ret = CRYS_HASH_Init(&sha256->ctx, CRYS_HASH_SHA256_mode);
-
- if (ret != SA_SILIB_RET_OK){
- WOLFSSL_MSG("Error CRYS_HASH_Init failed");
- }
-
- return ret;
-}
-
-int wc_InitSha256(Sha256* sha256)
-{
- return wc_InitSha256_ex(sha256, NULL, INVALID_DEVID);
-}
-
-int wc_Sha256Update(wc_Sha256* sha256, const byte* data, word32 len)
-{
- CRYSError_t ret = 0;
- size_t length;
- size_t remaining = len;
- byte const * p_cur = data;
-
- if (sha256 == NULL || (data == NULL && len > 0)) {
- return BAD_FUNC_ARG;
- }
-
- if (data == NULL && len == 0) {
- /* valid, but do nothing */
- return 0;
- }
-
- /* If the input is larger than CC310_MAX_LENGTH_DMA, split into smaller */
- do {
- length = (remaining > CC310_MAX_LENGTH_DMA) ?
- CC310_MAX_LENGTH_DMA : remaining;
-
- ret = CRYS_HASH_Update(&sha256->ctx, (uint8_t *)p_cur, length);
-
- remaining -= length;
- p_cur += length;
-
- } while (ret == CRYS_OK && remaining > 0);
-
- return ret;
-}
-
-int wc_Sha256Final(wc_Sha256* sha256, byte* hash)
-{
- CRYSError_t ret = 0;
- CRYS_HASH_Result_t hashResult;
-
- if (sha256 == NULL || hash == NULL) {
- return BAD_FUNC_ARG;
- }
-
- ret = CRYS_HASH_Finish(&sha256->ctx, hashResult);
-
- if (ret != SA_SILIB_RET_OK){
- WOLFSSL_MSG("Error CRYS_HASH_Finish failed");
- return ret;
- }
- XMEMCPY(sha256->digest, hashResult, WC_SHA256_DIGEST_SIZE);
-
- XMEMCPY(hash, sha256->digest, WC_SHA256_DIGEST_SIZE);
-
- /* reset state */
- return wc_InitSha256_ex(sha256, NULL, INVALID_DEVID);
-}
-
-void wc_Sha256Free(wc_Sha256* sha256)
-{
- if (sha256 == NULL)
- return;
-}
-
-#endif /* !NO_SHA256 && WOLFSSL_CRYPTOCELL */
-#endif /* WOLFSSL_CRYPTOCELL_HASH_C */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/atmel/README.md b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/atmel/README.md
deleted file mode 100644
index 50352fcd2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/atmel/README.md
+++ /dev/null
@@ -1,94 +0,0 @@
-# Microchip/Atmel ATECC508A/ATECC608A Support
-
-Support for ATECC508A using these methods:
-* TLS: Using the PK callbacks and reference ATECC508A callbacks. See Coding section below. Requires options `HAVE_PK_CALLBACKS` and `WOLFSSL_ATECC_PKCB or WOLFSSL_ATECC508A`
-* wolfCrypt: Native wc_ecc_* API's using the `./configure CFLAGS="-DWOLFSSL_ATECC508A"` or `#define WOLFSSL_ATECC508A`.
-
-## Dependency
-
-Requires the Microchip CryptoAuthLib. The examples in `wolfcrypt/src/port/atmel/atmel.c` make calls to the `atcatls_*` API's.
-
-
-## Building
-
-### Build Options
-
-* `HAVE_PK_CALLBACKS`: Option for enabling wolfSSL's PK callback support for TLS.
-* `WOLFSSL_ATECC508A`: Enables support for initializing the CryptoAuthLib and setting up the encryption key used for the I2C communication.
-* `WOLFSSL_ATECC_PKCB`: Enables support for the reference PK callbacks without init.
-* `WOLFSSL_ATMEL`: Enables ASF hooks seeding random data using the `atmel_get_random_number` function.
-* `WOLFSSL_ATMEL_TIME`: Enables the built-in `atmel_get_curr_time_and_date` function get getting time from ASF RTC.
-* `ATECC_GET_ENC_KEY`: Macro to define your own function for getting the encryption key.
-* `ATECC_SLOT_I2C_ENC`: Macro for the default encryption key slot. Can also get via the slot callback with `ATMEL_SLOT_ENCKEY`.
-* `ATECC_MAX_SLOT`: Macro for the maximum dynamically allocated slots.
-
-### Build Command Examples
-
-`./configure --enable-pkcallbacks CFLAGS="-DWOLFSSL_ATECC_PKCB"`
-`#define HAVE_PK_CALLBACKS`
-`#define WOLFSSL_ATECC_PKCB`
-
-or
-
-`./configure CFLAGS="-DWOLFSSL_ATECC508A"`
-`#define WOLFSSL_ATECC508A`
-
-
-## Coding
-
-Setup the PK callbacks for TLS using:
-
-```
-/* Setup PK Callbacks for ATECC508A */
-WOLFSSL_CTX* ctx;
-wolfSSL_CTX_SetEccKeyGenCb(ctx, atcatls_create_key_cb);
-wolfSSL_CTX_SetEccVerifyCb(ctx, atcatls_verify_signature_cb);
-wolfSSL_CTX_SetEccSignCb(ctx, atcatls_sign_certificate_cb);
-wolfSSL_CTX_SetEccSharedSecretCb(ctx, atcatls_create_pms_cb);
-```
-
-The reference ATECC508A PK callback functions are located in the `wolfcrypt/src/port/atmel/atmel.c` file.
-
-
-Adding a custom context to the callbacks:
-
-```
-/* Setup PK Callbacks context */
-WOLFSSL* ssl;
-void* myOwnCtx;
-wolfSSL_SetEccKeyGenCtx(ssl, myOwnCtx);
-wolfSSL_SetEccVerifyCtx(ssl, myOwnCtx);
-wolfSSL_SetEccSignCtx(ssl, myOwnCtx);
-wolfSSL_SetEccSharedSecretCtx(ssl, myOwnCtx);
-```
-
-## Benchmarks
-
-Supports ECC SECP256R1 (NIST P-256)
-
-### TLS
-
-TLS Establishment Times:
-
-* Hardware accelerated ATECC508A: 2.342 seconds average
-* Software only: 13.422 seconds average
-
-The TLS connection establishment time is 5.73 times faster with the ATECC508A.
-
-### Cryptographic ECC
-
-Software only implementation (SAMD21 48Mhz Cortex-M0, Fast Math TFM-ASM):
-
-`EC-DHE key generation 3123.000 milliseconds, avg over 5 iterations, 1.601 ops/sec`
-`EC-DHE key agreement 3117.000 milliseconds, avg over 5 iterations, 1.604 ops/sec`
-`EC-DSA sign time 1997.000 milliseconds, avg over 5 iterations, 2.504 ops/sec`
-`EC-DSA verify time 5057.000 milliseconds, avg over 5 iterations, 0.988 ops/sec`
-
-ATECC508A HW accelerated implementation:
-`EC-DHE key generation 144.400 milliseconds, avg over 5 iterations, 34.722 ops/sec`
-`EC-DHE key agreement 134.200 milliseconds, avg over 5 iterations, 37.313 ops/sec`
-`EC-DSA sign time 293.400 milliseconds, avg over 5 iterations, 17.065 ops/sec`
-`EC-DSA verify time 208.400 milliseconds, avg over 5 iterations, 24.038 ops/sec`
-
-
-For details see our [wolfSSL Atmel ATECC508A](https://wolfssl.com/wolfSSL/wolfssl-atmel.html) page.
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/atmel/atmel.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/atmel/atmel.c
deleted file mode 100644
index 04d2aeb3d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/atmel/atmel.c
+++ /dev/null
@@ -1,843 +0,0 @@
-/* atmel.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#if defined(WOLFSSL_ATMEL) || defined(WOLFSSL_ATECC508A) || defined(WOLFSSL_ATECC_PKCB)
-
-#include <wolfssl/wolfcrypt/memory.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/ssl.h>
-#include <wolfssl/internal.h>
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-#ifdef WOLFSSL_ATMEL
-/* remap name conflicts */
-#define Aes Aes_Remap
-#define Gmac Gmac_Remap
-#include "asf.h"
-#undef Aes
-#undef Gmac
-#endif /* WOLFSSL_ATMEL */
-
-#include <wolfssl/wolfcrypt/port/atmel/atmel.h>
-
-#ifdef WOLFSSL_ATECC508A
-
-#ifdef WOLFSSL_ATECC508A_TLS
- extern ATCA_STATUS device_init_default(void);
-#endif
-
-static int mAtcaInitDone = 0;
-
-/* ATECC slotId handling */
-static atmel_slot_alloc_cb mSlotAlloc;
-static atmel_slot_dealloc_cb mSlotDealloc;
-static byte mSlotList[ATECC_MAX_SLOT];
-#ifndef SINGLE_THREADED
-static wolfSSL_Mutex mSlotMutex;
-#endif
-
-/* Raspberry Pi uses /dev/i2c-1 */
-#ifndef ATECC_I2C_ADDR
-#define ATECC_I2C_ADDR 0xC0
-#endif
-#ifndef ATECC_I2C_BUS
-#define ATECC_I2C_BUS 1
-#endif
-#ifndef ATECC_DEV_TYPE
-#define ATECC_DEV_TYPE ATECC508A
-#endif
-static ATCAIfaceCfg cfg_ateccx08a_i2c_pi;
-#endif /* WOLFSSL_ATECC508A */
-
-
-/**
- * \brief Generate random number to be used for hash.
- */
-int atmel_get_random_number(uint32_t count, uint8_t* rand_out)
-{
- int ret = 0;
-#ifdef WOLFSSL_ATECC508A
- uint8_t i = 0;
- uint32_t copy_count = 0;
- uint8_t rng_buffer[RANDOM_NUM_SIZE];
-
- if (rand_out == NULL) {
- return -1;
- }
-
- while (i < count) {
- ret = atcab_random(rng_buffer);
- if (ret != ATCA_SUCCESS) {
- WOLFSSL_MSG("Failed to create random number!");
- return -1;
- }
- copy_count = (count - i > RANDOM_NUM_SIZE) ? RANDOM_NUM_SIZE : count - i;
- XMEMCPY(&rand_out[i], rng_buffer, copy_count);
- i += copy_count;
- }
- #ifdef ATCAPRINTF
- atcab_printbin_label((const char*)"\r\nRandom Number", rand_out, count);
- #endif
-#else
- /* TODO: Use on-board TRNG */
-#endif
- return ret;
-}
-
-int atmel_get_random_block(unsigned char* output, unsigned int sz)
-{
- return atmel_get_random_number((uint32_t)sz, (uint8_t*)output);
-}
-
-#if defined(WOLFSSL_ATMEL) && defined(WOLFSSL_ATMEL_TIME)
-#include "asf.h"
-#include "rtc_calendar.h"
-extern struct rtc_module *_rtc_instance[RTC_INST_NUM];
-
-long atmel_get_curr_time_and_date(long* tm)
-{
- long rt = 0;
-
- /* Get current time */
- struct rtc_calendar_time rtcTime;
- const int monthDay[] = {0,31,59,90,120,151,181,212,243,273,304,334};
- int month, year, yearLeap;
-
- rtc_calendar_get_time(_rtc_instance[0], &rtcTime);
-
- /* Convert rtc_calendar_time to seconds since UTC */
- month = rtcTime.month % 12;
- year = rtcTime.year + rtcTime.month / 12;
- if (month < 0) {
- month += 12;
- year--;
- }
- yearLeap = (month > 1) ? year + 1 : year;
- rt = rtcTime.second
- + 60 * (rtcTime.minute
- + 60 * (rtcTime.hour
- + 24 * (monthDay[month] + rtcTime.day - 1
- + 365 * (year - 70)
- + (yearLeap - 69) / 4
- - (yearLeap - 1) / 100
- + (yearLeap + 299) / 400
- )
- )
- );
-
- (void)tm;
- return rt;
-}
-#endif
-
-
-#ifdef WOLFSSL_ATECC508A
-
-int atmel_ecc_translate_err(int status)
-{
- switch (status) {
- case ATCA_SUCCESS:
- return 0;
- case ATCA_BAD_PARAM:
- return BAD_FUNC_ARG;
- case ATCA_ALLOC_FAILURE:
- return MEMORY_E;
- default:
- #ifdef WOLFSSL_ATECC508A_DEBUG
- printf("ATECC Failure: %x\n", (word32)status);
- #endif
- break;
- }
- return WC_HW_E;
-}
-
-/* Function to set the slotId allocator and deallocator */
-int atmel_set_slot_allocator(atmel_slot_alloc_cb alloc,
- atmel_slot_dealloc_cb dealloc)
-{
-#ifndef SINGLE_THREADED
- wc_LockMutex(&mSlotMutex);
-#endif
- mSlotAlloc = alloc;
- mSlotDealloc = dealloc;
-#ifndef SINGLE_THREADED
- wc_UnLockMutex(&mSlotMutex);
-#endif
- return 0;
-}
-
-/* Function to allocate new slotId number */
-int atmel_ecc_alloc(int slotType)
-{
- int slotId = ATECC_INVALID_SLOT, i;
-
-#ifndef SINGLE_THREADED
- wc_LockMutex(&mSlotMutex);
-#endif
-
- if (mSlotAlloc) {
- slotId = mSlotAlloc(slotType);
- }
- else {
- switch (slotType) {
- case ATMEL_SLOT_ENCKEY:
- /* not reserved in mSlotList, so return */
- slotId = ATECC_SLOT_I2C_ENC;
- goto exit;
- case ATMEL_SLOT_DEVICE:
- /* not reserved in mSlotList, so return */
- slotId = ATECC_SLOT_AUTH_PRIV;
- goto exit;
- case ATMEL_SLOT_ECDHE:
- slotId = ATECC_SLOT_ECDHE_PRIV;
- break;
- case ATMEL_SLOT_ECDHE_ENC:
- slotId = ATECC_SLOT_ENC_PARENT;
- break;
- case ATMEL_SLOT_ANY:
- for (i=0; i < ATECC_MAX_SLOT; i++) {
- /* Find free slotId */
- if (mSlotList[i] == ATECC_INVALID_SLOT) {
- slotId = i;
- break;
- }
- }
- break;
- }
-
- /* is slot available */
- if (mSlotList[slotId] != ATECC_INVALID_SLOT) {
- slotId = ATECC_INVALID_SLOT;
- }
- else {
- mSlotList[slotId] = slotId;
- }
- }
-
-exit:
-#ifndef SINGLE_THREADED
- wc_UnLockMutex(&mSlotMutex);
-#endif
-
- return slotId;
-}
-
-
-/* Function to return slotId number to available list */
-void atmel_ecc_free(int slotId)
-{
-#ifndef SINGLE_THREADED
- wc_LockMutex(&mSlotMutex);
-#endif
- if (mSlotDealloc) {
- mSlotDealloc(slotId);
- }
- else if (slotId >= 0 && slotId < ATECC_MAX_SLOT) {
- if (slotId != ATECC_SLOT_AUTH_PRIV && slotId != ATECC_SLOT_I2C_ENC) {
- /* Mark slotId free */
- mSlotList[slotId] = ATECC_INVALID_SLOT;
- }
- }
-#ifndef SINGLE_THREADED
- wc_UnLockMutex(&mSlotMutex);
-#endif
-}
-
-
-/**
- * \brief Callback function for getting the current encryption key
- */
-int atmel_get_enc_key_default(byte* enckey, word16 keysize)
-{
- if (enckey == NULL || keysize != ATECC_KEY_SIZE) {
- return BAD_FUNC_ARG;
- }
-
- XMEMSET(enckey, 0xFF, keysize); /* use default value */
-
- return 0;
-}
-
-/**
- * \brief Write enc key before.
- */
-static int atmel_init_enc_key(void)
-{
- int ret;
- uint8_t read_key[ATECC_KEY_SIZE];
- uint8_t writeBlock = 0;
- uint8_t writeOffset = 0;
- int slotId;
-
- slotId = atmel_ecc_alloc(ATMEL_SLOT_ENCKEY);
-
- /* check for encryption key slotId */
- if (slotId == ATECC_INVALID_SLOT)
- return BAD_FUNC_ARG;
-
- /* get encryption key */
- ATECC_GET_ENC_KEY(read_key, sizeof(read_key));
-
- ret = atcab_write_zone(ATCA_ZONE_DATA, slotId, writeBlock, writeOffset,
- read_key, ATCA_BLOCK_SIZE);
- ForceZero(read_key, sizeof(read_key));
- ret = atmel_ecc_translate_err(ret);
-
- return ret;
-}
-
-int atmel_get_rev_info(word32* revision)
-{
- int ret;
- ret = atcab_info((uint8_t*)revision);
- ret = atmel_ecc_translate_err(ret);
- return ret;
-}
-
-void atmel_show_rev_info(void)
-{
-#ifdef WOLFSSL_ATECC508A_DEBUG
- word32 revision = 0;
- atmel_get_rev_info(&revision);
- printf("ATECC508A Revision: %x\n", (word32)revision);
-#endif
-}
-
-int atmel_ecc_create_pms(int slotId, const uint8_t* peerKey, uint8_t* pms)
-{
- int ret;
- uint8_t read_key[ATECC_KEY_SIZE];
- int slotIdEnc;
-
- slotIdEnc = atmel_ecc_alloc(ATMEL_SLOT_ECDHE_ENC);
- if (slotIdEnc == ATECC_INVALID_SLOT)
- return BAD_FUNC_ARG;
-
- /* get encryption key */
- ATECC_GET_ENC_KEY(read_key, sizeof(read_key));
-
- /* send the encrypted version of the ECDH command */
- ret = atcab_ecdh_enc(slotId, peerKey, pms, read_key, slotIdEnc);
- ret = atmel_ecc_translate_err(ret);
-
- /* free the ECDHE slot */
- atmel_ecc_free(slotIdEnc);
-
- return ret;
-}
-
-int atmel_ecc_create_key(int slotId, byte* peerKey)
-{
- int ret;
-
- /* verify provided slotId */
- if (slotId == ATECC_INVALID_SLOT) {
- return WC_HW_WAIT_E;
- }
-
- /* generate new ephemeral key on device */
- ret = atcab_genkey(slotId, peerKey);
- ret = atmel_ecc_translate_err(ret);
- return ret;
-}
-
-int atmel_ecc_sign(int slotId, const byte* message, byte* signature)
-{
- int ret;
-
- ret = atcab_sign(slotId, message, signature);
- ret = atmel_ecc_translate_err(ret);
- return ret;
-}
-
-int atmel_ecc_verify(const byte* message, const byte* signature,
- const byte* pubkey, int* verified)
-{
- int ret;
-
- ret = atcab_verify_extern(message, signature, pubkey, (bool*)verified);
- ret = atmel_ecc_translate_err(ret);
- return ret;
-}
-
-#endif /* WOLFSSL_ATECC508A */
-
-
-
-int atmel_init(void)
-{
- int ret = 0;
-
-#ifdef WOLFSSL_ATECC508A
- if (!mAtcaInitDone) {
- ATCA_STATUS status;
- int i;
-
- #ifndef SINGLE_THREADED
- wc_InitMutex(&mSlotMutex);
- #endif
-
- /* Init the free slotId list */
- for (i=0; i<ATECC_MAX_SLOT; i++) {
- if (i == ATECC_SLOT_AUTH_PRIV || i == ATECC_SLOT_I2C_ENC) {
- mSlotList[i] = i;
- }
- else {
- /* ECC Slots (mark avail) */
- mSlotList[i] = ATECC_INVALID_SLOT;
- }
- }
-
- /* Setup the hardware interface */
- XMEMSET(&cfg_ateccx08a_i2c_pi, 0, sizeof(cfg_ateccx08a_i2c_pi));
- cfg_ateccx08a_i2c_pi.iface_type = ATCA_I2C_IFACE;
- cfg_ateccx08a_i2c_pi.devtype = ATECC_DEV_TYPE;
- cfg_ateccx08a_i2c_pi.atcai2c.slave_address = ATECC_I2C_ADDR;
- cfg_ateccx08a_i2c_pi.atcai2c.bus = ATECC_I2C_BUS;
- cfg_ateccx08a_i2c_pi.atcai2c.baud = 400000;
- cfg_ateccx08a_i2c_pi.wake_delay = 1500;
- cfg_ateccx08a_i2c_pi.rx_retries = 20;
-
- /* Initialize the CryptoAuthLib to communicate with ATECC508A */
- status = atcab_init(&cfg_ateccx08a_i2c_pi);
- if (status != ATCA_SUCCESS) {
- WOLFSSL_MSG("Failed to initialize atcab");
- return WC_HW_E;
- }
-
- /* show revision information */
- atmel_show_rev_info();
-
- #ifdef WOLFSSL_ATECC508A_TLS
- /* Configure the ECC508 for use with TLS API functions */
- device_init_default();
- #endif
-
- /* Init the I2C pipe encryption key. */
- /* Value is generated/stored during pair for the ATECC508A and stored
- on micro flash */
- /* For this example its a fixed value */
- if (atmel_init_enc_key() != 0) {
- WOLFSSL_MSG("Failed to initialize transport key");
- return WC_HW_E;
- }
-
- mAtcaInitDone = 1;
- }
-#endif /* WOLFSSL_ATECC508A */
- return ret;
-}
-
-void atmel_finish(void)
-{
-#ifdef WOLFSSL_ATECC508A
- if (mAtcaInitDone) {
- atcab_release();
-
- #ifndef SINGLE_THREADED
- wc_FreeMutex(&mSlotMutex);
- #endif
-
- mAtcaInitDone = 0;
- }
-#endif
-}
-
-
-/* Reference PK Callbacks */
-#ifdef HAVE_PK_CALLBACKS
-
-/**
- * \brief Used on the server-side only for creating the ephemeral key for ECDH
- */
-int atcatls_create_key_cb(WOLFSSL* ssl, ecc_key* key, unsigned int keySz,
- int ecc_curve, void* ctx)
-{
- int ret;
- uint8_t peerKey[ATECC_PUBKEY_SIZE];
- uint8_t* qx = &peerKey[0];
- uint8_t* qy = &peerKey[ATECC_PUBKEY_SIZE/2];
- int slotId;
-
- (void)ssl;
- (void)ctx;
-
- /* ATECC508A only supports P-256 */
- if (ecc_curve == ECC_SECP256R1) {
- slotId = atmel_ecc_alloc(ATMEL_SLOT_ECDHE);
- if (slotId == ATECC_INVALID_SLOT)
- return WC_HW_WAIT_E;
-
- /* generate new ephemeral key on device */
- ret = atmel_ecc_create_key(slotId, peerKey);
-
- /* load generated ECC508A public key into key, used by wolfSSL */
- if (ret == 0) {
- ret = wc_ecc_import_unsigned(key, qx, qy, NULL, ECC_SECP256R1);
- }
-
- if (ret == 0) {
- key->slot = slotId;
- }
- else {
- atmel_ecc_free(slotId);
- #ifdef WOLFSSL_ATECC508A_DEBUG
- printf("atcatls_create_key_cb: ret %d\n", ret);
- #endif
- }
- }
- else {
- #ifndef WOLFSSL_ATECC508A_NOSOFTECC
- /* use software for non P-256 cases */
- WC_RNG rng;
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_make_key_ex(&rng, keySz, key, ecc_curve);
- wc_FreeRng(&rng);
- }
- #else
- ret = NOT_COMPILED_IN;
- #endif /* !WOLFSSL_ATECC508A_NOSOFTECC */
- }
- return ret;
-}
-
-/**
- * \brief Creates a shared secret using a peer public key and a device key
- */
-int atcatls_create_pms_cb(WOLFSSL* ssl, ecc_key* otherKey,
- unsigned char* pubKeyDer, word32* pubKeySz,
- unsigned char* out, word32* outlen,
- int side, void* ctx)
-{
- int ret;
- ecc_key tmpKey;
- uint8_t peerKeyBuf[ATECC_PUBKEY_SIZE];
- uint8_t* peerKey = peerKeyBuf;
- uint8_t* qx = &peerKey[0];
- uint8_t* qy = &peerKey[ATECC_PUBKEY_SIZE/2];
- word32 qxLen = ATECC_PUBKEY_SIZE/2, qyLen = ATECC_PUBKEY_SIZE/2;
-
- if (pubKeyDer == NULL || pubKeySz == NULL || out == NULL || outlen == NULL) {
- return BAD_FUNC_ARG;
- }
-
- (void)ssl;
- (void)ctx;
- (void)otherKey;
-
- ret = wc_ecc_init(&tmpKey);
- if (ret != 0) {
- return ret;
- }
-
- /* ATECC508A only supports P-256 */
- if (otherKey->dp->id == ECC_SECP256R1) {
- XMEMSET(peerKey, 0, ATECC_PUBKEY_SIZE);
-
- /* for client: create and export public key */
- if (side == WOLFSSL_CLIENT_END) {
- int slotId = atmel_ecc_alloc(ATMEL_SLOT_ECDHE);
- if (slotId == ATECC_INVALID_SLOT)
- return WC_HW_WAIT_E;
- tmpKey.slot = slotId;
-
- /* generate new ephemeral key on device */
- ret = atmel_ecc_create_key(slotId, peerKey);
- if (ret != ATCA_SUCCESS) {
- goto exit;
- }
-
- /* convert raw unsigned public key to X.963 format for TLS */
- ret = wc_ecc_import_unsigned(&tmpKey, qx, qy, NULL, ECC_SECP256R1);
- if (ret == 0) {
- ret = wc_ecc_export_x963(&tmpKey, pubKeyDer, pubKeySz);
- }
-
- /* export peer's key as raw unsigned for hardware */
- if (ret == 0) {
- ret = wc_ecc_export_public_raw(otherKey, qx, &qxLen, qy, &qyLen);
- }
- }
-
- /* for server: import public key */
- else if (side == WOLFSSL_SERVER_END) {
- tmpKey.slot = otherKey->slot;
-
- /* import peer's key and export as raw unsigned for hardware */
- ret = wc_ecc_import_x963_ex(pubKeyDer, *pubKeySz, &tmpKey, ECC_SECP256R1);
- if (ret == 0) {
- ret = wc_ecc_export_public_raw(&tmpKey, qx, &qxLen, qy, &qyLen);
- }
- }
- else {
- ret = BAD_FUNC_ARG;
- }
-
- if (ret != 0) {
- goto exit;
- }
-
- ret = atmel_ecc_create_pms(tmpKey.slot, peerKey, out);
- *outlen = ATECC_KEY_SIZE;
-
- #ifndef WOLFSSL_ATECC508A_NOIDLE
- /* put chip into idle to prevent watchdog situation on chip */
- atcab_idle();
- #endif
-
- (void)qxLen;
- (void)qyLen;
- }
- else {
- #ifndef WOLFSSL_ATECC508A_NOSOFTECC
- /* use software for non P-256 cases */
- ecc_key* privKey = NULL;
- ecc_key* pubKey = NULL;
-
- /* for client: create and export public key */
- if (side == WOLFSSL_CLIENT_END)
- {
- WC_RNG rng;
- privKey = &tmpKey;
- pubKey = otherKey;
-
- ret = wc_InitRng(&rng);
- if (ret == 0) {
- ret = wc_ecc_make_key_ex(&rng, 0, privKey, otherKey->dp->id);
- if (ret == 0) {
- ret = wc_ecc_export_x963(privKey, pubKeyDer, pubKeySz);
- }
- wc_FreeRng(&rng);
- }
- }
- /* for server: import public key */
- else if (side == WOLFSSL_SERVER_END) {
- privKey = otherKey;
- pubKey = &tmpKey;
-
- ret = wc_ecc_import_x963_ex(pubKeyDer, *pubKeySz, pubKey,
- otherKey->dp->id);
- }
- else {
- ret = BAD_FUNC_ARG;
- }
-
- /* generate shared secret and return it */
- if (ret == 0) {
- ret = wc_ecc_shared_secret(privKey, pubKey, out, outlen);
- }
- #else
- ret = NOT_COMPILED_IN;
- #endif /* !WOLFSSL_ATECC508A_NOSOFTECC */
- }
-
-exit:
- wc_ecc_free(&tmpKey);
-
-#ifdef WOLFSSL_ATECC508A_DEBUG
- if (ret != 0) {
- printf("atcab_ecdh_enc: ret %d\n", ret);
- }
-#endif
-
- return ret;
-}
-
-
-/**
- * \brief Sign received digest using private key on device
- */
-int atcatls_sign_certificate_cb(WOLFSSL* ssl, const byte* in, unsigned int inSz,
- byte* out, word32* outSz, const byte* key, unsigned int keySz, void* ctx)
-{
- int ret;
- byte sigRs[ATECC_SIG_SIZE];
- int slotId;
-
- (void)ssl;
- (void)inSz;
- (void)key;
- (void)keySz;
- (void)ctx;
-
- if (in == NULL || out == NULL || outSz == NULL) {
- return BAD_FUNC_ARG;
- }
-
- slotId = atmel_ecc_alloc(ATMEL_SLOT_DEVICE);
- if (slotId == ATECC_INVALID_SLOT)
- return WC_HW_WAIT_E;
-
- /* We can only sign with P-256 */
- ret = atmel_ecc_sign(slotId, in, sigRs);
- if (ret != ATCA_SUCCESS) {
- ret = WC_HW_E; goto exit;
- }
-
-#ifndef WOLFSSL_ATECC508A_NOIDLE
- /* put chip into idle to prevent watchdog situation on chip */
- atcab_idle();
-#endif
-
- /* Encode with ECDSA signature */
- ret = wc_ecc_rs_raw_to_sig(
- &sigRs[0], ATECC_SIG_SIZE/2,
- &sigRs[ATECC_SIG_SIZE/2], ATECC_SIG_SIZE/2,
- out, outSz);
- if (ret != 0) {
- goto exit;
- }
-
-exit:
-
- atmel_ecc_free(slotId);
-
-#ifdef WOLFSSL_ATECC508A_DEBUG
- if (ret != 0) {
- printf("atcatls_sign_certificate_cb: ret %d\n", ret);
- }
-#endif
-
- return ret;
-}
-
-/**
- * \brief Verify signature received from peers to prove peer's private key.
- */
-int atcatls_verify_signature_cb(WOLFSSL* ssl, const byte* sig, unsigned int sigSz,
- const byte* hash, unsigned int hashSz, const byte* key, unsigned int keySz, int* result,
- void* ctx)
-{
- int ret;
- ecc_key tmpKey;
- word32 idx = 0;
- uint8_t peerKey[ATECC_PUBKEY_SIZE];
- uint8_t* qx = &peerKey[0];
- uint8_t* qy = &peerKey[ATECC_PUBKEY_SIZE/2];
- word32 qxLen = ATECC_PUBKEY_SIZE/2, qyLen = ATECC_PUBKEY_SIZE/2;
- byte sigRs[ATECC_SIG_SIZE];
- word32 rSz = ATECC_SIG_SIZE/2;
- word32 sSz = ATECC_SIG_SIZE/2;
-
- (void)sigSz;
- (void)hashSz;
- (void)ctx;
-
- if (ssl == NULL || key == NULL || sig == NULL || hash == NULL || result == NULL) {
- return BAD_FUNC_ARG;
- }
-
- /* import public key */
- ret = wc_ecc_init(&tmpKey);
- if (ret == 0) {
- ret = wc_EccPublicKeyDecode(key, &idx, &tmpKey, keySz);
- }
- if (ret != 0) {
- goto exit;
- }
-
- if (tmpKey.dp->id == ECC_SECP256R1) {
- /* export public as unsigned bin for hardware */
- ret = wc_ecc_export_public_raw(&tmpKey, qx, &qxLen, qy, &qyLen);
- wc_ecc_free(&tmpKey);
- if (ret != 0) {
- goto exit;
- }
-
- /* decode the ECDSA signature */
- ret = wc_ecc_sig_to_rs(sig, sigSz,
- &sigRs[0], &rSz,
- &sigRs[ATECC_SIG_SIZE/2], &sSz);
- if (ret != 0) {
- goto exit;
- }
-
- ret = atmel_ecc_verify(hash, sigRs, peerKey, result);
- if (ret != ATCA_SUCCESS || !*result) {
- ret = WC_HW_E; goto exit;
- }
-
- #ifndef WOLFSSL_ATECC508A_NOIDLE
- /* put chip into idle to prevent watchdog situation on chip */
- atcab_idle();
- #endif
- }
- else {
- #ifndef WOLFSSL_ATECC508A_NOSOFTECC
- ret = wc_ecc_verify_hash(sig, sigSz, hash, hashSz, result, &tmpKey);
- #else
- ret = NOT_COMPILED_IN;
- #endif /* !WOLFSSL_ATECC508A_NOSOFTECC */
- }
-
- (void)rSz;
- (void)sSz;
- (void)qxLen;
- (void)qyLen;
-
- ret = 0; /* success */
-
-exit:
-
-#ifdef WOLFSSL_ATECC508A_DEBUG
- if (ret != 0) {
- printf("atcatls_verify_signature_cb: ret %d\n", ret);
- }
-#endif
-
- return ret;
-}
-
-int atcatls_set_callbacks(WOLFSSL_CTX* ctx)
-{
- wolfSSL_CTX_SetEccKeyGenCb(ctx, atcatls_create_key_cb);
- wolfSSL_CTX_SetEccVerifyCb(ctx, atcatls_verify_signature_cb);
- wolfSSL_CTX_SetEccSignCb(ctx, atcatls_sign_certificate_cb);
- wolfSSL_CTX_SetEccSharedSecretCb(ctx, atcatls_create_pms_cb);
- return 0;
-}
-
-int atcatls_set_callback_ctx(WOLFSSL* ssl, void* user_ctx)
-{
- wolfSSL_SetEccKeyGenCtx(ssl, user_ctx);
- wolfSSL_SetEccVerifyCtx(ssl, user_ctx);
- wolfSSL_SetEccSignCtx(ssl, user_ctx);
- wolfSSL_SetEccSharedSecretCtx(ssl, user_ctx);
- return 0;
-}
-
-
-#endif /* HAVE_PK_CALLBACKS */
-
-#endif /* WOLFSSL_ATMEL || WOLFSSL_ATECC508A || WOLFSSL_ATECC_PKCB */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_aes.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_aes.c
deleted file mode 100644
index e00214df3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_aes.c
+++ /dev/null
@@ -1,649 +0,0 @@
-/* caam_aes.c
- *
- * Copyright (C) 2006-2020 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 <wolfssl/wolfcrypt/settings.h>
-
-#if defined(WOLFSSL_IMX6_CAAM) && !defined(NO_AES) && \
- !defined(NO_IMX6_CAAM_AES)
-
-#include <wolfssl/wolfcrypt/logging.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/aes.h>
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-#include <wolfssl/wolfcrypt/port/caam/wolfcaam.h>
-#include <wolfssl/wolfcrypt/port/caam/caam_driver.h>
-
-#if defined(WOLFSSL_CAAM_DEBUG) || defined(WOLFSSL_CAAM_PRINT)
-#include <stdio.h>
-#endif
-
-int wc_AesSetKey(Aes* aes, const byte* key, word32 len,
- const byte* iv, int dir)
-{
- int ret;
-
- if (aes == NULL || key == NULL) {
- return BAD_FUNC_ARG;
- }
-
- if (len > 32) {
- byte out[32]; /* max AES key size */
- word32 outSz;
- int ret;
-
- if (len != 64 && len != 72 && len != 80) {
- return BAD_FUNC_ARG;
- }
-
- outSz = sizeof(out);
- /* if length greater then 32 then try to unencapsulate */
- if ((ret = wc_caamOpenBlob((byte*)key, len, out, &outSz)) != 0) {
- return ret;
- }
-
- XMEMCPY((byte*)aes->key, out, outSz);
- aes->keylen = outSz;
- }
- else {
- if (len != 16 && len != 24 && len != 32) {
- return BAD_FUNC_ARG;
- }
-
- XMEMCPY((byte*)aes->key, key, len);
- aes->keylen = len;
- }
-
- switch (aes->keylen) {
- case 16: aes->rounds = 10; break;
- case 24: aes->rounds = 12; break;
- case 32: aes->rounds = 14; break;
- default:
- return BAD_FUNC_ARG;
- }
-
- if ((ret = wc_AesSetIV(aes, iv)) != 0) {
- return ret;
- }
-
-#ifdef WOLFSSL_AES_COUNTER
- aes->left = 0;
-#endif
-
- return 0;
-}
-
-
-int wc_AesCbcEncrypt(Aes* aes, byte* out,
- const byte* in, word32 sz)
-{
- word32 blocks;
-
- WOLFSSL_ENTER("wc_AesCbcEncrypt");
- if (aes == NULL || out == NULL || in == NULL) {
- return BAD_FUNC_ARG;
- }
-
- blocks = sz / AES_BLOCK_SIZE;
-
- if (blocks > 0) {
- Buffer buf[4];
- word32 arg[4];
- word32 keySz;
- int ret;
-
- if (wc_AesGetKeySize(aes, &keySz) != 0) {
- return BAD_FUNC_ARG;
- }
-
- /* Set buffers for key, cipher text, and plain text */
- buf[0].BufferType = DataBuffer;
- buf[0].TheAddress = (Address)aes->key;
- buf[0].Length = keySz;
-
- buf[1].BufferType = DataBuffer;
- buf[1].TheAddress = (Address)aes->reg;
- buf[1].Length = AES_BLOCK_SIZE;
-
- buf[2].BufferType = DataBuffer;
- buf[2].TheAddress = (Address)in;
- buf[2].Length = blocks * AES_BLOCK_SIZE;
-
- buf[3].BufferType = DataBuffer | LastBuffer;
- buf[3].TheAddress = (Address)out;
- buf[3].Length = blocks * AES_BLOCK_SIZE;
-
- arg[0] = CAAM_ENC;
- arg[1] = keySz;
- arg[2] = blocks * AES_BLOCK_SIZE;
-
- if ((ret = wc_caamAddAndWait(buf, arg, CAAM_AESCBC)) != 0) {
- WOLFSSL_MSG("Error with CAAM AES CBC encrypt");
- return ret;
- }
- }
-
- return 0;
-}
-
-
-int wc_AesCbcDecrypt(Aes* aes, byte* out,
- const byte* in, word32 sz)
-{
- word32 blocks;
-
- WOLFSSL_ENTER("wc_AesCbcDecrypt");
- if (aes == NULL || out == NULL || in == NULL) {
- return BAD_FUNC_ARG;
- }
-
- blocks = sz / AES_BLOCK_SIZE;
-
- if (blocks > 0) {
- Buffer buf[4];
- word32 arg[4];
- word32 keySz;
- int ret;
-
- if (wc_AesGetKeySize(aes, &keySz) != 0) {
- return BAD_FUNC_ARG;
- }
-
- /* Set buffers for key, cipher text, and plain text */
- buf[0].BufferType = DataBuffer;
- buf[0].TheAddress = (Address)aes->key;
- buf[0].Length = keySz;
-
- buf[1].BufferType = DataBuffer;
- buf[1].TheAddress = (Address)aes->reg;
- buf[1].Length = AES_BLOCK_SIZE;
-
- buf[2].BufferType = DataBuffer;
- buf[2].TheAddress = (Address)in;
- buf[2].Length = blocks * AES_BLOCK_SIZE;
-
- buf[3].BufferType = DataBuffer | LastBuffer;
- buf[3].TheAddress = (Address)out;
- buf[3].Length = blocks * AES_BLOCK_SIZE;
-
- arg[0] = CAAM_DEC;
- arg[1] = keySz;
- arg[2] = blocks * AES_BLOCK_SIZE;
-
- if ((ret = wc_caamAddAndWait(buf, arg, CAAM_AESCBC)) != 0) {
- WOLFSSL_MSG("Error with CAAM AES CBC decrypt");
- return ret;
- }
- }
-
- return 0;
-}
-
-#if defined(HAVE_AES_ECB)
-/* is assumed that input size is a multiple of AES_BLOCK_SIZE */
-int wc_AesEcbEncrypt(Aes* aes, byte* out,
- const byte* in, word32 sz)
-{
- word32 blocks;
- Buffer buf[3];
- word32 arg[4];
- word32 keySz;
- int ret;
-
- if (aes == NULL || out == NULL || in == NULL) {
- return BAD_FUNC_ARG;
- }
-
- blocks = sz / AES_BLOCK_SIZE;
-
- if (wc_AesGetKeySize(aes, &keySz) != 0) {
- return BAD_FUNC_ARG;
- }
-
- /* Set buffers for key, cipher text, and plain text */
- buf[0].BufferType = DataBuffer;
- buf[0].TheAddress = (Address)aes->key;
- buf[0].Length = keySz;
-
- buf[1].BufferType = DataBuffer;
- buf[1].TheAddress = (Address)in;
- buf[1].Length = blocks * AES_BLOCK_SIZE;
-
- buf[2].BufferType = DataBuffer | LastBuffer;
- buf[2].TheAddress = (Address)out;
- buf[2].Length = blocks * AES_BLOCK_SIZE;
-
- arg[0] = CAAM_ENC;
- arg[1] = keySz;
- arg[2] = blocks * AES_BLOCK_SIZE;
-
- if ((ret = wc_caamAddAndWait(buf, arg, CAAM_AESECB)) != 0) {
- WOLFSSL_MSG("Error with CAAM AES ECB encrypt");
- return ret;
- }
-
- return 0;
-}
-
-
-int wc_AesEcbDecrypt(Aes* aes, byte* out,
- const byte* in, word32 sz)
-{
- word32 blocks;
- Buffer buf[3];
- word32 arg[4];
- word32 keySz;
- int ret;
-
- if (aes == NULL || out == NULL || in == NULL) {
- return BAD_FUNC_ARG;
- }
-
- blocks = sz / AES_BLOCK_SIZE;
-
- if (wc_AesGetKeySize(aes, &keySz) != 0) {
- return BAD_FUNC_ARG;
- }
-
- /* Set buffers for key, cipher text, and plain text */
- buf[0].BufferType = DataBuffer;
- buf[0].TheAddress = (Address)aes->key;
- buf[0].Length = keySz;
-
- buf[1].BufferType = DataBuffer;
- buf[1].TheAddress = (Address)in;
- buf[1].Length = blocks * AES_BLOCK_SIZE;
-
- buf[2].BufferType = DataBuffer | LastBuffer;
- buf[2].TheAddress = (Address)out;
- buf[2].Length = blocks * AES_BLOCK_SIZE;
-
- arg[0] = CAAM_DEC;
- arg[1] = keySz;
- arg[2] = blocks * AES_BLOCK_SIZE;
-
- if ((ret = wc_caamAddAndWait(buf, arg, CAAM_AESECB)) != 0) {
- WOLFSSL_MSG("Error with CAAM AES ECB decrypt");
- return ret;
- }
-
- return 0;
-}
-#endif
-
-/* AES-CTR */
-#ifdef WOLFSSL_AES_COUNTER
-/* Increment AES counter (from wolfcrypt/src/aes.c) */
-static WC_INLINE void IncrementAesCounter(byte* inOutCtr)
-{
- /* in network byte order so start at end and work back */
- int i;
- for (i = AES_BLOCK_SIZE - 1; i >= 0; i--) {
- if (++inOutCtr[i]) /* we're done unless we overflow */
- return;
- }
-}
-
-
-int wc_AesCtrEncrypt(Aes* aes, byte* out,
- const byte* in, word32 sz)
-{
- byte* tmp;
- Buffer buf[4];
- word32 arg[4];
- word32 keySz;
- int ret, blocks;
-
- if (aes == NULL || out == NULL || in == NULL) {
- return BAD_FUNC_ARG;
- }
-
- if (wc_AesGetKeySize(aes, &keySz) != 0) {
- return BAD_FUNC_ARG;
- }
-
- /* consume any unused bytes left in aes->tmp */
- tmp = (byte*)aes->tmp + AES_BLOCK_SIZE - aes->left;
- while (aes->left && sz) {
- *(out++) = *(in++) ^ *(tmp++);
- aes->left--;
- sz--;
- }
-
- /* do full blocks to then get potential left over amount */
- blocks = sz / AES_BLOCK_SIZE;
- if (blocks > 0) {
- /* Set buffers for key, cipher text, and plain text */
- buf[0].BufferType = DataBuffer;
- buf[0].TheAddress = (Address)aes->key;
- buf[0].Length = keySz;
-
- buf[1].BufferType = DataBuffer;
- buf[1].TheAddress = (Address)aes->reg;
- buf[1].Length = AES_BLOCK_SIZE;
-
- buf[2].BufferType = DataBuffer;
- buf[2].TheAddress = (Address)in;
- buf[2].Length = blocks * AES_BLOCK_SIZE;
-
- buf[3].BufferType = DataBuffer | LastBuffer;
- buf[3].TheAddress = (Address)out;
- buf[3].Length = blocks * AES_BLOCK_SIZE;
-
- arg[0] = CAAM_ENC;
- arg[1] = keySz;
- arg[2] = blocks * AES_BLOCK_SIZE;
-
- if ((ret = wc_caamAddAndWait(buf, arg, CAAM_AESCTR)) != 0) {
- WOLFSSL_MSG("Error with CAAM AES CTR encrypt");
- return ret;
- }
-
- out += blocks * AES_BLOCK_SIZE;
- in += blocks * AES_BLOCK_SIZE;
- sz -= blocks * AES_BLOCK_SIZE;
- }
-
- if (sz) {
- wc_AesEncryptDirect(aes, (byte*)aes->tmp, (byte*)aes->reg);
- IncrementAesCounter((byte*)aes->reg);
-
- aes->left = AES_BLOCK_SIZE;
- tmp = (byte*)aes->tmp;
-
- while (sz--) {
- *(out++) = *(in++) ^ *(tmp++);
- aes->left--;
- }
- }
-
- return 0;
-}
-#endif
-
-
-/* AES-DIRECT */
-#if defined(WOLFSSL_AES_DIRECT) || defined(WOLFSSL_AES_COUNTER)
-void wc_AesEncryptDirect(Aes* aes, byte* out, const byte* in)
-{
- Buffer buf[3];
- word32 arg[4];
- word32 keySz;
-
- if (aes == NULL || out == NULL || in == NULL) {
- /* return BAD_FUNC_ARG; */
- return;
- }
-
- if (wc_AesGetKeySize(aes, &keySz) != 0) {
- /* return BAD_FUNC_ARG; */
- return;
- }
-
- /* Set buffers for key, cipher text, and plain text */
- buf[0].BufferType = DataBuffer;
- buf[0].TheAddress = (Address)aes->key;
- buf[0].Length = keySz;
-
- buf[1].BufferType = DataBuffer;
- buf[1].TheAddress = (Address)in;
- buf[1].Length = AES_BLOCK_SIZE;
-
- buf[2].BufferType = DataBuffer | LastBuffer;
- buf[2].TheAddress = (Address)out;
- buf[2].Length = AES_BLOCK_SIZE;
-
- arg[0] = CAAM_ENC;
- arg[1] = keySz;
- arg[2] = AES_BLOCK_SIZE;
-
- if (wc_caamAddAndWait(buf, arg, CAAM_AESECB) != 0) {
- WOLFSSL_MSG("Error with CAAM AES direct encrypt");
- }
-}
-
-
-void wc_AesDecryptDirect(Aes* aes, byte* out, const byte* in)
-{
- Buffer buf[3];
- word32 arg[4];
- word32 keySz;
-
- if (aes == NULL || out == NULL || in == NULL) {
- /* return BAD_FUNC_ARG; */
- return;
- }
-
- if (wc_AesGetKeySize(aes, &keySz) != 0) {
- /* return BAD_FUNC_ARG; */
- return;
- }
-
- /* Set buffers for key, cipher text, and plain text */
- buf[0].BufferType = DataBuffer;
- buf[0].TheAddress = (Address)aes->key;
- buf[0].Length = keySz;
-
- buf[1].BufferType = DataBuffer;
- buf[1].TheAddress = (Address)in;
- buf[1].Length = AES_BLOCK_SIZE;
-
- buf[2].BufferType = DataBuffer | LastBuffer;
- buf[2].TheAddress = (Address)out;
- buf[2].Length = AES_BLOCK_SIZE;
-
- arg[0] = CAAM_DEC;
- arg[1] = keySz;
- arg[2] = AES_BLOCK_SIZE;
-
- if (wc_caamAddAndWait(buf, arg, CAAM_AESECB) != 0) {
- WOLFSSL_MSG("Error with CAAM AES direct decrypt");
- }
-}
-
-
-int wc_AesSetKeyDirect(Aes* aes, const byte* key, word32 len,
- const byte* iv, int dir)
-{
- return wc_AesSetKey(aes, key, len, iv, dir);
-}
-#endif
-
-#ifdef HAVE_AESCCM
-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)
-{
- Buffer buf[5];
- word32 arg[4];
- word32 keySz;
- word32 i;
- byte B0Ctr0[AES_BLOCK_SIZE + AES_BLOCK_SIZE];
- int lenSz;
- byte mask = 0xFF;
- const word32 wordSz = (word32)sizeof(word32);
- int ret;
-
- /* sanity check on arguments */
- if (aes == NULL || out == NULL || in == NULL || nonce == NULL
- || authTag == NULL || nonceSz < 7 || nonceSz > 13 ||
- authTagSz > AES_BLOCK_SIZE)
- return BAD_FUNC_ARG;
-
- if (wc_AesGetKeySize(aes, &keySz) != 0) {
- return BAD_FUNC_ARG;
- }
-
- /* set up B0 and CTR0 similar to how wolfcrypt/src/aes.c does */
- XMEMCPY(B0Ctr0+1, nonce, nonceSz);
- XMEMCPY(B0Ctr0+AES_BLOCK_SIZE+1, nonce, nonceSz);
- lenSz = AES_BLOCK_SIZE - 1 - (byte)nonceSz;
- B0Ctr0[0] = (authInSz > 0 ? 64 : 0)
- + (8 * (((byte)authTagSz - 2) / 2))
- + (lenSz - 1);
- for (i = 0; i < lenSz; i++) {
- if (mask && i >= wordSz)
- mask = 0x00;
- B0Ctr0[AES_BLOCK_SIZE - 1 - i] = (inSz >> ((8 * i) & mask)) & mask;
- B0Ctr0[AES_BLOCK_SIZE + AES_BLOCK_SIZE - 1 - i] = 0;
- }
- B0Ctr0[AES_BLOCK_SIZE] = lenSz - 1;
-
- /* Set buffers for key, cipher text, and plain text */
- buf[0].BufferType = DataBuffer;
- buf[0].TheAddress = (Address)aes->key;
- buf[0].Length = keySz;
-
- buf[1].BufferType = DataBuffer;
- buf[1].TheAddress = (Address)B0Ctr0;
- buf[1].Length = AES_BLOCK_SIZE + AES_BLOCK_SIZE;
-
- buf[2].BufferType = DataBuffer;
- buf[2].TheAddress = (Address)authIn;
- buf[2].Length = authInSz;
-
- buf[3].BufferType = DataBuffer;
- buf[3].TheAddress = (Address)in;
- buf[3].Length = inSz;
-
- buf[4].BufferType = DataBuffer | LastBuffer;
- buf[4].TheAddress = (Address)out;
- buf[4].Length = inSz;
-
- arg[0] = CAAM_ENC;
- arg[1] = keySz;
- arg[2] = inSz;
- arg[3] = authInSz;
-
- if ((ret = wc_caamAddAndWait(buf, arg, CAAM_AESCCM)) != 0) {
- WOLFSSL_MSG("Error with CAAM AES-CCM encrypt");
- return ret;
- }
-
- XMEMCPY(authTag, B0Ctr0, authTagSz);
- return 0;
-}
-
-
-#ifdef HAVE_AES_DECRYPT
-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)
-{
- Buffer buf[5];
- word32 arg[4];
- word32 keySz;
- word32 i;
- byte B0Ctr0[AES_BLOCK_SIZE + AES_BLOCK_SIZE];
- byte tag[AES_BLOCK_SIZE];
- int lenSz;
- byte mask = 0xFF;
- const word32 wordSz = (word32)sizeof(word32);
- int ret;
-
- /* sanity check on arguments */
- if (aes == NULL || out == NULL || in == NULL || nonce == NULL
- || authTag == NULL || nonceSz < 7 || nonceSz > 13 ||
- authTagSz > AES_BLOCK_SIZE)
- return BAD_FUNC_ARG;
-
- if (wc_AesGetKeySize(aes, &keySz) != 0) {
- return BAD_FUNC_ARG;
- }
-
- /* set up B0 and CTR0 similar to how wolfcrypt/src/aes.c does */
- XMEMCPY(B0Ctr0+1, nonce, nonceSz);
- XMEMCPY(B0Ctr0+AES_BLOCK_SIZE+1, nonce, nonceSz);
- lenSz = AES_BLOCK_SIZE - 1 - (byte)nonceSz;
- B0Ctr0[0] = (authInSz > 0 ? 64 : 0)
- + (8 * (((byte)authTagSz - 2) / 2))
- + (lenSz - 1);
- for (i = 0; i < lenSz; i++) {
- if (mask && i >= wordSz)
- mask = 0x00;
- B0Ctr0[AES_BLOCK_SIZE - 1 - i] = (inSz >> ((8 * i) & mask)) & mask;
- B0Ctr0[AES_BLOCK_SIZE + AES_BLOCK_SIZE - 1 - i] = 0;
- }
- B0Ctr0[AES_BLOCK_SIZE] = lenSz - 1;
- wc_AesEncryptDirect(aes, tag, B0Ctr0 + AES_BLOCK_SIZE);
-
- /* Set buffers for key, cipher text, and plain text */
- buf[0].BufferType = DataBuffer;
- buf[0].TheAddress = (Address)aes->key;
- buf[0].Length = keySz;
-
- buf[1].BufferType = DataBuffer;
- buf[1].TheAddress = (Address)B0Ctr0;
- buf[1].Length = AES_BLOCK_SIZE + AES_BLOCK_SIZE;
-
- buf[2].BufferType = DataBuffer;
- buf[2].TheAddress = (Address)authIn;
- buf[2].Length = authInSz;
-
- buf[3].BufferType = DataBuffer;
- buf[3].TheAddress = (Address)in;
- buf[3].Length = inSz;
-
- buf[4].BufferType = DataBuffer | LastBuffer;
- buf[4].TheAddress = (Address)out;
- buf[4].Length = inSz;
-
- arg[0] = CAAM_DEC;
- arg[1] = keySz;
- arg[2] = inSz;
- arg[3] = authInSz;
-
- if ((ret = wc_caamAddAndWait(buf, arg, CAAM_AESCCM)) != 0) {
- WOLFSSL_MSG("Error with CAAM AES-CCM derypt");
- return ret;
- }
-
- xorbuf(tag, B0Ctr0, authTagSz);
- if (ConstantCompare(tag, authTag, authTagSz) != 0) {
- /* If the authTag check fails, don't keep the decrypted data.
- * Unfortunately, you need the decrypted data to calculate the
- * check value. */
- XMEMSET(out, 0, inSz);
- ret = AES_CCM_AUTH_E;
- }
-
- ForceZero(tag, AES_BLOCK_SIZE);
- ForceZero(B0Ctr0, AES_BLOCK_SIZE * 2);
-
- return ret;
-
-}
-#endif /* HAVE_AES_DECRYPT */
-#endif /* HAVE_AESCCM */
-
-#endif /* WOLFSSL_IMX6_CAAM && !NO_AES */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_doc.pdf b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_doc.pdf
deleted file mode 100644
index 821363441..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_doc.pdf
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_driver.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_driver.c
deleted file mode 100644
index 5d44f2da8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_driver.c
+++ /dev/null
@@ -1,1713 +0,0 @@
-/* caam_driver.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-#if defined(__INTEGRITY) || defined(INTEGRITY)
-
-/* build into Integrity kernel */
-#include <bsp.h>
-#include "wolfssl/wolfcrypt/port/caam/caam_driver.h"
-
-#define CAAM_READ(reg) *(volatile unsigned int*)(reg)
-#define CAAM_WRITE(reg, in) *(volatile unsigned int*)(reg) = (in);
-
-#define DESC_COUNT 1
-#define MAX_BUF 20
-#define BUFFER_COUNT (MAX_BUF * DESC_COUNT)
-
-/* CAAM descriptors can only be 64 unsigned ints */
-#define MAX_DESC_SZ 64
-
-/* 64 byte buffer for when data crosses a page boundary */
-#define ALIGN_BUF 16
-
-/* MAX_CTX is 64 bytes (sha512 digest) + 8 bytes (CAAM length value) */
-#define MAX_CTX 18
-
-#define MIN_READ_REG 0xF2100000
-#define MAX_READ_REG 0XF2110000
-
-struct JobRing {
- Address JobIn;
- Address JobOut;
- Address Desc;
- Value page; /* page allocation for descriptor to use */
-};
-
-struct buffer {
- Address data;
- Address dataSz;
-};
-
-/* CAAM descriptor */
-struct DescStruct {
- struct IORequestStruct TheIORequest;
- struct CAAM_DEVICE* caam;
- struct buffer buf[MAX_BUF]; /* buffers holding data input address */
- UINT4 desc[MAX_DESC_SZ]; /* max size of 64 word32 */
- UINT4 aadSzBuf[4]; /* Formatted AAD size for CCM */
- UINT4 alignBuf[ALIGN_BUF]; /* 64 byte buffer for non page
- align */
- UINT4 iv[MAX_CTX]; /* AES IV and also hash state */
- UINT4 ctxBuf[MAX_CTX]; /* key */
- Address output; /* address to output buffer */
- Address ctxOut; /* address to update buffer holding state */
- Value alignIdx;/* index for align buffer */
- Value idx; /* index for descriptor buffer */
- Value headIdx; /* for first portion of descriptor buffer */
- Value lastIdx; /* for last portion of descriptor buffer */
- Value outputIdx; /* idx to output buffer in "buf" */
- Value inputSz; /* size of input buffer */
- Value ctxSz; /* size of CTX/Key buffer */
- Value aadSz; /* AAD size for CCM */
- Value lastFifo;
- Value type;
- Value state;
- Value DescriptorCount;
- Boolean running; /* True if building/running descriptor is
- in process */
-};
-
-struct CAAM_DEVICE {
- struct IODeviceVectorStruct caamVector;
- struct IODescriptorStruct IODescriptorArray[BUFFER_COUNT];
- struct DescStruct DescArray[DESC_COUNT];
- volatile Value InterruptStatus;
- CALL HandleInterruptCall;
- struct JobRing ring;
-};
-
-#define DRIVER_NAME "wolfSSL_CAAM_Driver"
-
-static struct CAAM_DEVICE caam;
-
-/******************************************************************************
- Internal CAAM Job Ring and partition functions
- ****************************************************************************/
-
-/* flush job ring and reset */
-static Error caamReset(void)
-{
- int t = 100000; /* time out counter for flushing job ring */
-
- /* make sure interrupts are masked in JRCFGR0_LS register */
- CAAM_WRITE(CAAM_BASE | 0x1054, CAAM_READ(CAAM_BASE | 0x1054) | 1);
-
- /* flush and reset job rings using JRCR0 register */
- CAAM_WRITE(CAAM_BASE | 0x106C, 1);
-
- /* check register JRINTR for if halt is in progress */
- while (t > 0 && ((CAAM_READ(CAAM_BASE | 0x104C) & 0x4) == 0x4)) t--;
- if (t == 0) {
- /*unrecoverable failure, the job ring is locked, up hard reset needed*/
- return NotRestartable;
- }
-
- /* now that flush has been done restart the job ring */
- t = 100000;
- CAAM_WRITE(CAAM_BASE | 0x106C, 1);
- while (t > 0 && ((CAAM_READ(CAAM_BASE | 0x106C) & 1) == 1)) t--;
- if (t == 0) {
- /*unrecoverable failure, reset bit did not return to 0 */
- return NotRestartable;
- }
-
- /* reset most registers and state machines in CAAM using MCFGR register
- also reset DMA */
- CAAM_WRITE(CAAM_BASE | 0x0004, 0x90000000);
-
- return Success;
-}
-
-/* returns MemoryMapMayNotBeEmpty if page/par is already owned
- * returns Success on success
- * all other returns is an error state
- */
-static Error caamCreatePartition(unsigned char page, unsigned char par)
-{
- /* check ownership of partition */
- if ((CAAM_READ(CAAM_BASE | 0x1FBC) & (0x3 << (par * 2))) > 0) {
- return MemoryMapMayNotBeEmpty;
- }
-
- /* set generic all access permissions, gets reset later */
- CAAM_WRITE(CAAM_BASE | (0x1108 + (par * 16)), 0xF);
- CAAM_WRITE(CAAM_BASE | (0x110C + (par * 16)), 0xF);
- CAAM_WRITE(CAAM_BASE | (0x1104 + (par * 16)), 0xFF);
-
- /* check ownership of page */
- CAAM_WRITE(CAAM_BASE | 0x10F4, (page << 16) | 0x5);
- /* wait for inquiry cmd to complete */
- while ((CAAM_READ(CAAM_BASE | 0x10FC) & 0x0000C000) > 0 &&
- (CAAM_READ(CAAM_BASE | 0x10FC) & 0x00003000) == 0) {
- }
- if ((CAAM_READ(CAAM_BASE | 0x10FC) & 0x000000C0) == 0xC0) {
- /* owns the page can dealloc it */
- CAAM_WRITE(CAAM_BASE | 0x10F4, (page << 16) | 0x2);
- while ((CAAM_READ(CAAM_BASE | 0x10FC) & 0x0000C000) > 0 &&
- (CAAM_READ(CAAM_BASE | 0x10FC) & 0x00003000) == 0) {}
- if ((CAAM_READ(CAAM_BASE | 0x10FC) & 0x00003000) > 0) {
- /* error while deallocating page */
- return MemoryMapMayNotBeEmpty; /* PSP set on page or is unavailable */
- }
- }
- else {
- /* check if owned by someone else */
- if ((CAAM_READ(CAAM_BASE | 0x10FC) & 0x000000C0) != 0) {
- return MemoryMapMayNotBeEmpty;
- }
- }
-
- /* allocate page to partition */
- CAAM_WRITE(CAAM_BASE | 0x10F4, (page << 16) | (par << 8) | 0x1);
- /* wait for alloc cmd to complete */
- while ((CAAM_READ(CAAM_BASE | 0x10FC) & 0x0000C000) > 0 &&
- (CAAM_READ(CAAM_BASE | 0x10FC) & 0x00003000) == 0) {
- }
-
- if ((CAAM_READ(CAAM_BASE | 0x10FC) & 0x00003000) > 0) {
- return MemoryOperationNotPerformed;
- }
-
- /* double check ownership now of page */
- CAAM_WRITE(CAAM_BASE | 0x10F4, (page << 16) | 0x5);
- /* wait for inquiry cmd to complete */
- while ((CAAM_READ(CAAM_BASE | 0x10FC) & 0x0000C000) > 0 &&
- (CAAM_READ(CAAM_BASE | 0x10FC) & 0x00003000) == 0) {
- }
- if ((CAAM_READ(CAAM_BASE | 0x10FC) & 0x0000000F) == 0 ||
- (CAAM_READ(CAAM_BASE | 0x10FC) & 0x00003000) > 0) {
- /* page not owned */
- return MemoryOperationNotPerformed;
- }
-
- return Success;
-}
-
-
-/* Gets the status of a job. Returns Waiting if no output jobs ready to be
- * read.
- * If no jobs are done then return Waiting
- * If jobs are done but does not match desc then return NoActivityReady
- * Status holds the error values if any */
-static Error caamGetJob(struct CAAM_DEVICE* dev, UINT4* status)
-{
- UINT4 reg = CAAM_READ(CAAM_BASE | 0x1044); /* JRSTAR0 status */
- if (status) {
- *status = 0;
- }
-
- /* check for DECO, CCB, and Job Ring error state JRSTAR0 register */
- if (((reg & 0xF0000000) == 0x20000000) || /* CCB error */
- ((reg & 0xF0000000) == 0x40000000)|| /* DECO error */
- ((reg & 0xF0000000) == 0x60000000)) { /* Job Ring error */
-
- if ((reg & 0x0000000F) > 0) {
- *status = reg;
- return Failure;
- }
- }
-
- /* Check number of done jobs in output list */
- reg = CAAM_READ(CAAM_BASE | 0x103C);
- if ((reg & 0x000003FF) > 0) {
- UINT4* out = (UINT4*)(dev->ring.JobOut);
- if (status) {
- *status = out[1];
- }
-
- if ((dev->ring.Desc ^ 0xF0000000) != out[0]) {
- db_printf("CAAM job completed vs expected mismatch");
- return NoActivityReady;
- }
-
- if (out[1] > 0) {
- return Failure;
- }
-
- /* increment jobs removed */
- CAAM_WRITE(CAAM_BASE | 0x1034, 1);
- }
- else {
- /* check if the CAAM is idle and not processing any descriptors */
- if ((CAAM_READ(CAAM_BASE | 0x0FD4) & 0x00000002) == 2 /* idle */
- && (CAAM_READ(CAAM_BASE | 0x0FD4) & 0x00000001) == 0) {
- return NoActivityReady;
- }
-
- return Waiting;
- }
-
- return Success;
-}
-
-
-/* Initialize CAAM RNG
- * returns 0 on success */
-static int caamInitRng(struct CAAM_DEVICE* dev)
-{
- UINT4 reg, status;
- int ret = 0;
-
- /* Set up use of the TRNG for seeding wolfSSL HASH-DRBG */
- CAAM_WRITE(CAAM_RTMCTL, CAAM_PRGM);
- CAAM_WRITE(CAAM_RTMCTL, CAAM_READ(CAAM_RTMCTL) | 0x40); /* reset */
-
- /* Set up reading from TRNG */
- CAAM_WRITE(CAAM_RTMCTL, CAAM_READ(CAAM_RTMCTL) | CAAM_TRNG);
-
- /* Set up delay for TRNG @TODO Optimizations?
- * Shift left with RTSDCTL because 0-15 is for sample number
- * Also setting the max and min frequencies */
- CAAM_WRITE(CAAM_RTSDCTL, (CAAM_ENT_DLY << 16) | 0x09C4);
- CAAM_WRITE(CAAM_RTFRQMIN, CAAM_ENT_DLY >> 1); /* 1/2 */
- CAAM_WRITE(CAAM_RTFRQMAX, CAAM_ENT_DLY << 3); /* up to 8x */
-
- /* Set back to run mode and clear RTMCL error bit */
- reg = CAAM_READ(CAAM_RTMCTL) ^ CAAM_PRGM;
-
- CAAM_WRITE(CAAM_RTMCTL, reg);
- reg = CAAM_READ(CAAM_RTMCTL);
- reg |= CAAM_CTLERR;
- CAAM_WRITE(CAAM_RTMCTL, reg);
-
- /* check input slot is available and then add */
- if (CAAM_READ(CAAM_BASE | 0x1014) > 0) {
- UINT4* in = (UINT4*)dev->ring.JobIn;
-
- memcpy((unsigned char*)dev->ring.Desc, (unsigned char*)wc_rng_start,
- sizeof(wc_rng_start));
-
- in[0] = dev->ring.Desc ^ 0xF0000000; /* physical address */
- CAAM_WRITE(CAAM_IRJAR0, 0x00000001);
- }
- else {
- return Waiting;
- }
-
- do {
- ret = caamGetJob(dev, &status);
- /* @TODO use a better way to chill out CPU. */
- } while (ret == Waiting);
-
- return ret;
-}
-
-
-static Error caamDoJob(struct DescStruct* desc)
-{
- Error ret;
- UINT4 status;
-
- /* clear and set desc size */
- desc->desc[0] &= 0xFFFFFF80;
- desc->desc[0] += desc->idx;
-
- /* check input slot is available and then add */
- if (CAAM_READ(CAAM_BASE | 0x1014) > 0) {
- UINT4* in = (UINT4*)desc->caam->ring.JobIn;
-
- memcpy((unsigned char*)desc->caam->ring.Desc, (unsigned char*)desc->desc,
- (desc->idx + 1) * sizeof(UINT4));
-
- in[0] = desc->caam->ring.Desc ^ 0xF0000000; /* physical address */
- CAAM_WRITE(CAAM_IRJAR0, 0x00000001);
- }
- else {
- return Waiting;
- }
-
- do {
- ret = caamGetJob(desc->caam, &status);
- /* @TODO use a better way to chill out CPU. */
- } while (ret == Waiting);
-
- if (status != 0 || ret != Success) {
- #if 0
- /* Used during testing to print out descriptor */
- {
- char msg[2048];
- char* pt = msg;
- int z;
-
- memset(msg, 0, sizeof(msg));
- for (z = 0; z < desc->idx; z++) {
- snprintf(pt, sizeof(msg) - (z * 21), "desc[%d] = 0x%8.8x, ",
- z, desc->desc[z]);
- pt += 21;
- }
- snprintf(pt, sizeof(msg) - (z * 21), "status = 0x%8.8x\n", status);
- if (desc->buf[0].data != 0) { /* for testing */
- memcpy((char*)desc->buf[0].data, msg, sizeof(msg));
- }
- }
- #endif
-
-
- /* try to reset after error */
- caamReset();
- return ret;
- }
-
- return Success;
-}
-
-
-/* handle input or output buffers
- * NOTES: if sz == 0 then read all the rest of the buffers available
- * when align == 1 then there is no alignment constraints
- *
- * returns the data size in bytes on success. With failure a negative value is
- * returned.
- */
-static int caamAddIO(struct DescStruct* desc, UINT4 options, UINT4 sz,
- UINT4 align, UINT4* idx)
-{
- int i, outSz = 0;
-
- if (align == 0) {
- return -1; /* programming error */
- }
-
- for (i = *idx; i < desc->DescriptorCount; i++) {
- /* input must be a multiple of "align" bytes */
- struct buffer* buf = &desc->buf[i];
- int blocks = buf->dataSz / align;
- Address data = buf->data;
- Address dataSz = buf->dataSz;
-
- if (outSz >= sz && sz != 0) {
- break;
- }
-
- if (dataSz % align > 0) {
- /* store potential overlap */
- int tmpSz = dataSz % align;
- int add = (tmpSz < (align - desc->alignIdx)) ? tmpSz :
- align - desc->alignIdx;
- unsigned char* local = (unsigned char*)desc->alignBuf;
-
- /* if already something in the buffer then add from front */
- if (desc->alignIdx > 0) {
- memcpy((unsigned char*)&local[desc->alignIdx],
- (unsigned char*)data, add);
- data += add;
- }
- else {
- memcpy((unsigned char*)&local[desc->alignIdx],
- (unsigned char*)data + (blocks * align), add);
- }
- dataSz -= add;
- desc->alignIdx += add;
- }
-
- if (desc->alignIdx == align) {
- desc->lastFifo = desc->idx;
- if (desc->idx + 2 > MAX_DESC_SZ) {
- return -1;
- }
- desc->desc[desc->idx++] = options + desc->alignIdx;
- desc->desc[desc->idx++] = BSP_VirtualToPhysical(desc->alignBuf);
- ASP_FlushCaches((Address)desc->alignBuf, desc->alignIdx);
- outSz += desc->alignIdx;
- }
-
- if (blocks > 0) {
- desc->lastFifo = desc->idx;
- if (desc->idx + 2 > MAX_DESC_SZ) {
- return -1;
- }
- desc->desc[desc->idx++] = options + (blocks * align);
- desc->desc[desc->idx++] = BSP_VirtualToPhysical(data);
- outSz += (blocks * align);
-
- /* only one buffer available for align cases so exit here and make
- a new descriptor after running current one */
- if (desc->alignIdx == align) {
- desc->alignIdx = 0;
- i++; /* start at next buffer */
- break;
- }
- }
- }
-
- *idx = i;
- return outSz;
-}
-
-
-/******************************************************************************
- IODevice Register Read and Write
- ****************************************************************************/
-
-static Error caamReadRegister(IODeviceVector ioCaam, Value reg, Value *out)
-{
- if (reg < MIN_READ_REG || reg > MAX_READ_REG) {
- return IllegalRegisterNumber;
- }
-
- switch (reg) {
- case CAAM_STATUS:
- case CAAM_VERSION_MS:
- case CAAM_VERSION_LS:
- case CAMM_SUPPORT_MS:
- case CAMM_SUPPORT_LS:
- case CAAM_RTMCTL:
- *out = CAAM_READ(reg);
- break;
-
- default:
- return IllegalRegisterNumber;
- }
-
- (void)ioCaam;
- return Success;
-}
-
-
-static Error caamWriteRegister(IODeviceVector ioCaam, Value reg, Value in)
-{
- /* Should be no need for writes */
- return OperationNotAllowedOnTheUniversalIODevice;
-}
-
-
-/******************************************************************************
- CAAM Blob Operations
- ****************************************************************************/
-
-/* limit on size due to size of job ring being 64 word32's */
-static Error caamBlob(struct DescStruct* desc)
-{
- Error err;
- UINT4 keyType = 0x00000C08; /* default red */
- UINT4 i = 0;
- int sz = 0, ret;
-
- if (desc->idx + 3 > MAX_DESC_SZ) {
- return Failure;
- }
-
- /*default to Red Key type, with offset of 12 and 8 byte load to context 2*/
- desc->desc[desc->idx++] = (CAAM_LOAD_CTX | CAAM_CLASS2 | CAAM_IMM | keyType);
-
- /* add key modifier */
- if (i < desc->DescriptorCount) {
- UINT4* pt;
- Address data = desc->buf[i].data;
- Address dataSz = desc->buf[i].dataSz;
-
- pt = (UINT4*)data;
- if (dataSz < 8) { /* expecting 8 bytes for key modifier*/
- return TooManyBuffers;
- }
- desc->desc[desc->idx++] = pt[0];
- desc->desc[desc->idx++] = pt[1];
- }
-
- /* add input */
- while (sz < desc->inputSz && i < desc->DescriptorCount) {
- ret = caamAddIO(desc, CAAM_SEQI, desc->inputSz - sz, 1, &i);
- if (ret < 0) { /* handle error case */
- return TooManyBuffers;
- }
- sz += ret;
- }
- desc->outputIdx = i;
-
- /* add output */
- if (caamAddIO(desc, CAAM_SEQO, 0, 1, &i) < 0) {
- return TooManyBuffers;
- }
-
- if (desc->idx + 1 > MAX_DESC_SZ) {
- return Failure;
- }
- desc->desc[desc->idx++] = CAAM_OP | CAAM_OPID_BLOB | desc->type;
-
- if ((err = caamDoJob(desc)) != Success) {
- return err;
- }
-
- /* flush output buffers */
- for (i = desc->outputIdx; i < desc->DescriptorCount; i++) {
- ASP_FlushCaches(desc->buf[i].data, desc->buf[i].dataSz);
- }
-
- return Success;
-}
-
-
-/******************************************************************************
- CAAM AES Operations
- ****************************************************************************/
-
-/* returns amount written on success and negative value in error case.
- * Is different from caamAddIO in that it only adds a single input buffer
- * rather than multiple ones.
- */
-static int caamAesInput(struct DescStruct* desc, UINT4* idx, int align,
- UINT4 totalSz)
-{
- int sz;
- UINT4 i = *idx;
-
- /* handle alignment constraints on input */
- if (desc->alignIdx > 0) {
- sz = desc->alignIdx;
-
- /* if there is more input buffers then add part of it */
- if (i < desc->outputIdx && i < desc->DescriptorCount) {
- sz = align - desc->alignIdx;
- sz = (sz <= desc->buf[i].dataSz) ? sz : desc->buf[i].dataSz;
- memcpy((unsigned char*)(desc->alignBuf) + desc->alignIdx,
- (unsigned char*)(desc->buf[i].data), sz);
-
- desc->buf[i].dataSz -= sz;
- desc->buf[i].data += sz;
- sz += desc->alignIdx;
- }
-
- if (desc->idx + 2 > MAX_DESC_SZ) {
- return -1;
- }
- ASP_FlushCaches((Address)desc->alignBuf, sz);
- desc->desc[desc->idx++] = (CAAM_FIFO_L | FIFOL_TYPE_LC1 |
- CAAM_CLASS1 | FIFOL_TYPE_MSG) + sz;
- desc->desc[desc->idx++] = BSP_VirtualToPhysical(desc->alignBuf);
- desc->alignIdx = 0;
- }
- else {
- sz = desc->buf[i].dataSz;
- if ((totalSz + sz) == desc->inputSz) { /* not an issue on final */
- align = 1;
- }
-
- desc->alignIdx = sz % align;
- if (desc->alignIdx != 0) {
- sz -= desc->alignIdx;
- memcpy((unsigned char*)desc->alignBuf,
- (unsigned char*)(desc->buf[i].data) + sz,
- desc->alignIdx);
- }
-
- if (desc->idx + 2 > MAX_DESC_SZ) {
- return -1;
- }
- desc->desc[desc->idx++] = (CAAM_FIFO_L | FIFOL_TYPE_LC1 |
- CAAM_CLASS1 | FIFOL_TYPE_MSG) + sz;
- desc->desc[desc->idx++] = BSP_VirtualToPhysical(desc->buf[i].data);
- i++;
- }
-
- *idx = i;
- return sz;
-}
-
-
-/* returns enum Success on success, all other return values should be
- * considered an error.
- *
- * ofst is the amount of leftover buffer from previous calls
- * inputSz is the amount of input in bytes that is being matched to output
- */
-static Error caamAesOutput(struct DescStruct* desc, int* ofst, UINT4 inputSz)
-{
- int offset = *ofst;
-
- if (desc->output != 0 && offset > 0 && inputSz > 0) {
- UINT4 addSz;
-
- /* handle potential leftovers */
- addSz = (inputSz >= offset) ? offset : inputSz;
-
- inputSz -= addSz;
- desc->desc[desc->idx++] = CAAM_FIFO_S | FIFOS_TYPE_MSG + addSz;
- if (inputSz > 0) { /* check if expecting more output */
- desc->desc[desc->idx - 1] |= CAAM_FIFOS_CONT;
- }
- desc->desc[desc->idx++] = BSP_VirtualToPhysical(desc->output);
-
- if (addSz == offset) {
- /* reset */
- desc->output = 0;
- offset = 0;
- }
- else {
- offset -= addSz;
- desc->output += addSz;
-
- if (offset < 0) {
- return TransferFailed;
- }
- }
- }
-
- for (; desc->lastIdx < desc->DescriptorCount; desc->lastIdx++) {
- struct buffer* buf = &desc->buf[desc->lastIdx];
-
- if (inputSz > 0) {
- int tmp;
-
- if (buf->dataSz <= inputSz) {
- tmp = buf->dataSz;
- }
- else {
- offset = buf->dataSz - inputSz;
- tmp = inputSz;
- desc->output = buf->data + tmp;
- }
- inputSz -= tmp;
- if (desc->idx + 2 > MAX_DESC_SZ) {
- return TransferFailed;
- }
- desc->desc[desc->idx++] = CAAM_FIFO_S | FIFOS_TYPE_MSG + tmp;
- if (inputSz > 0) { /* check if expecting more output */
- desc->desc[desc->idx - 1] |= CAAM_FIFOS_CONT;
- }
- desc->desc[desc->idx++] = BSP_VirtualToPhysical(buf->data);
- }
- else {
- break;
- }
- }
-
- *ofst = offset;
- return Success;
-}
-
-
-/* check size of output and get starting buffer for it */
-static Error caamAesOutSz(struct DescStruct* desc, UINT4 i)
-{
- int sz = 0;
-
- for (desc->outputIdx = i; desc->outputIdx < desc->DescriptorCount &&
- sz < desc->inputSz; desc->outputIdx++) {
- sz += desc->buf[desc->outputIdx].dataSz;
- }
- desc->lastIdx = desc->outputIdx;
-
- /* make certain that output size is same as input */
- sz = 0;
- for (; desc->lastIdx < desc->DescriptorCount; desc->lastIdx++) {
- sz += desc->buf[desc->lastIdx].dataSz;
- }
- if (sz != desc->inputSz) {
- return SizeIsTooLarge;
- }
- desc->lastIdx = desc->outputIdx;
-
- return Success;
-}
-
-
-/* AES operations follow the buffer sequence of KEY -> (IV) -> Input -> Output
- */
-static Error caamAes(struct DescStruct* desc)
-{
- struct buffer* ctx[3];
- struct buffer* iv[3];
- Value ofst = 0;
- Error err;
- UINT4 i, totalSz = 0;
- int ctxIdx = 0;
- int ivIdx = 0;
- int offset = 0;
- int align = 1;
- int sz = 0;
-
- int ctxSz = desc->ctxSz;
-
- if (desc->state != CAAM_ENC && desc->state != CAAM_DEC) {
- return IllegalStatusNumber;
- }
-
- if (ctxSz != 16 && ctxSz != 24 && ctxSz != 32) {
- return ArgumentError;
- }
-
- /* get key */
- for (i = 0; i < desc->DescriptorCount; i++) {
- struct buffer* buf = &desc->buf[i];
- unsigned char* local = (unsigned char*)desc->ctxBuf;
-
- if (sz < ctxSz && sz < (MAX_CTX * sizeof(UINT4))) {
- ctx[ctxIdx] = buf;
- sz += buf->dataSz;
-
- memcpy((unsigned char*)&local[offset],
- (unsigned char*)ctx[ctxIdx]->data, ctx[ctxIdx]->dataSz);
- offset += ctx[ctxIdx]->dataSz;
- ctxIdx++;
- }
- else {
- break;
- }
- }
-
- /* sanity checks on size of key */
- if (sz > ctxSz) {
- return SizeIsTooLarge;
- }
- if (ctxSz > (MAX_CTX * sizeof(UINT4)) - 16) {
- return ArgumentError;
- }
-
- /* Flush cache of ctx buffer then :
- Add KEY Load command 0x0220000X
- Add address to read key from 0xXXXXXXXX */
- ASP_FlushCaches((Address)desc->ctxBuf, ctxSz);
- if (desc->idx + 2 > MAX_DESC_SZ) {
- return TransferFailed;
- }
- desc->desc[desc->idx++] = (CAAM_KEY | CAAM_CLASS1 | CAAM_NWB) + ctxSz;
- desc->desc[desc->idx++] = BSP_VirtualToPhysical(desc->ctxBuf);
-
- /* get IV if needed by algorithm */
- switch (desc->type) {
- case CAAM_AESECB:
- break;
-
- case CAAM_AESCTR:
- ofst = 0x00001000;
- /* fall through because states are the same only the offset changes */
-
- case CAAM_AESCBC:
- {
- int maxSz = 16; /* default to CBC/CTR max size */
-
- sz = 0;
- offset = 0;
- for (; i < desc->DescriptorCount; i++) {
- struct buffer* buf = &desc->buf[i];
- unsigned char* local = (unsigned char*)desc->iv;
-
- if (sz < maxSz) {
- iv[ivIdx] = buf;
-
- if (buf->dataSz + sz > maxSz) {
- return SizeIsTooLarge;
- }
-
- sz += buf->dataSz;
- memcpy((unsigned char*)&local[offset],
- (unsigned char*)iv[ivIdx]->data, iv[ivIdx]->dataSz);
- offset += iv[ivIdx]->dataSz;
- ivIdx++;
- }
- else {
- break;
- }
- }
-
- if (sz != maxSz) {
- /* invalid IV size */
- return SizeIsTooLarge;
- }
-
- ASP_FlushCaches((Address)desc->iv, maxSz);
- if (desc->idx + 2 > MAX_DESC_SZ) {
- return TransferFailed;
- }
- desc->desc[desc->idx++] = (CAAM_LOAD_CTX | CAAM_CLASS1 | ofst) + maxSz;
- desc->desc[desc->idx++] = BSP_VirtualToPhysical(desc->iv);
- }
- break;
-
- default:
- return OperationNotImplemented;
- }
-
- /* write operation */
- if (desc->idx + 1 > MAX_DESC_SZ) {
- return TransferFailed;
- }
- desc->desc[desc->idx++] = CAAM_OP | CAAM_CLASS1 | desc->type |
- CAAM_ALG_UPDATE | desc->state;
-
- /* find output buffers */
- if (caamAesOutSz(desc, i) != Success) {
- return SizeIsTooLarge;
- }
-
- /* set alignment constraints */
- if (desc->type == CAAM_AESCBC || desc->type == CAAM_AESECB) {
- align = 16;
- }
-
- /* indefinite loop for input/output buffers */
- desc->headIdx = desc->idx;
- desc->output = 0;
- offset = 0; /* store left over amount for output buffer */
- do {
- desc->idx = desc->headIdx; /* reset for each loop */
-
- /* add a single input buffer (multiple ones was giving deco watch dog
- * time out errors on the FIFO load of 1c.
- * @TODO this could be a place for optimization if more data could be
- * loaded in at one time */
- if ((sz = caamAesInput(desc, &i, align, totalSz)) < 0) {
- return TransferFailed;
- }
- totalSz += sz;
-
- if (caamAesOutput(desc, &offset, sz) != Success) {
- return TransferFailed;
- }
-
- /* store updated IV */
- if (ivIdx > 0) {
- if (desc->idx + 2 > MAX_DESC_SZ) {
- return TransferFailed;
- }
- desc->desc[desc->idx++] = CAAM_STORE_CTX | CAAM_CLASS1 | ofst | 16;
- desc->desc[desc->idx++] = BSP_VirtualToPhysical((Address)desc->iv);
- }
-
- if ((err = caamDoJob(desc)) != Success) {
- return err;
- }
- ASP_FlushCaches((Address)desc->iv, 16);
- } while (desc->lastIdx < desc->DescriptorCount || offset > 0);
-
- /* flush output buffers */
- for (i = desc->outputIdx; i < desc->lastIdx; i++) {
- ASP_FlushCaches(desc->buf[i].data, desc->buf[i].dataSz);
- }
-
- /* handle case with IV */
- if (ivIdx > 0) {
- unsigned char* pt = (unsigned char*)desc->iv;
- ASP_FlushCaches((Address)pt, 16);
- for (i = 0; i < ivIdx; i++) {
- memcpy((unsigned char*)iv[i]->data, pt, iv[i]->dataSz);
- pt += iv[i]->dataSz;
- ASP_FlushCaches(iv[i]->data, iv[i]->dataSz);
- }
- }
-
- return Success;
-}
-
-
-/******************************************************************************
- CAAM AEAD Operations
- ****************************************************************************/
-
-/* AEAD operations follow the buffer sequence of KEY -> (IV or B0 | CTR0) -> (AD)
- * -> Input -> Output
- *
- */
-static Error caamAead(struct DescStruct* desc)
-{
- struct buffer* ctx[3];
- struct buffer* iv[3];
- Value ofst = 0;
- UINT4 state = CAAM_ALG_INIT;
- UINT4 totalSz = 0;
- Error err;
- UINT4 i;
- int ctxIdx = 0;
- int ivIdx = 0;
- int offset = 0;
- int sz = 0;
- int ivSz = 32; /* size of B0 | CTR0 for CCM mode */
- int ctxSz = desc->ctxSz;
- int align = 16; /* input should be multiples of 16 bytes unless is final */
- int opIdx;
-
- if (desc->state != CAAM_ENC && desc->state != CAAM_DEC) {
- return IllegalStatusNumber;
- }
-
- /* sanity check is valid AES key size */
- if (ctxSz != 16 && ctxSz != 24 && ctxSz != 32) {
- return ArgumentError;
- }
-
- /* get key */
- for (i = 0; i < desc->DescriptorCount; i++) {
- struct buffer* buf = &desc->buf[i];
- unsigned char* local = (unsigned char*)desc->ctxBuf;
-
- if (sz < ctxSz && sz < (MAX_CTX * sizeof(UINT4))) {
- ctx[ctxIdx] = buf;
- sz += buf->dataSz;
-
- memcpy((unsigned char*)&local[offset],
- (unsigned char*)ctx[ctxIdx]->data, ctx[ctxIdx]->dataSz);
- offset += ctx[ctxIdx]->dataSz;
- ctxIdx++;
- }
- else {
- break;
- }
- }
-
- /* sanity checks on size of key */
- if (sz > ctxSz) {
- return SizeIsTooLarge;
- }
-
- /* Flush cache of ctx buffer then :
- Add KEY Load command 0x0220000X
- Add address to read key from 0xXXXXXXXX */
- ASP_FlushCaches((Address)desc->ctxBuf, ctxSz);
- if (desc->idx + 2 > MAX_DESC_SZ) {
- return TransferFailed;
- }
- desc->desc[desc->idx++] = (CAAM_KEY | CAAM_CLASS1 | CAAM_NWB) + ctxSz;
- desc->desc[desc->idx++] = BSP_VirtualToPhysical(desc->ctxBuf);
-
- desc->headIdx = desc->idx;
- desc->output = 0;
- offset = 0; /* store left over amount for output buffer */
- do {
- desc->idx = desc->headIdx; /* reset for each loop */
-
- /* write operation */
- if (desc->idx + 1 > MAX_DESC_SZ) {
- return TransferFailed;
- }
- opIdx = desc->idx;
- desc->desc[desc->idx++] = CAAM_OP | CAAM_CLASS1 | state | desc->type |
- desc->state;
-
- /* get IV if needed by algorithm */
- switch (desc->type) {
- case CAAM_AESCCM:
- if ((state & CAAM_ALG_INIT) == CAAM_ALG_INIT) {
- sz = 0;
- offset = 0;
- for (; i < desc->DescriptorCount; i++) {
- struct buffer* buf = &desc->buf[i];
- unsigned char* local = (unsigned char*)desc->iv;
-
- if (sz < ivSz) {
- iv[ivIdx] = buf;
-
- if (buf->dataSz + sz > ivSz) {
- return SizeIsTooLarge;
- }
-
- sz += buf->dataSz;
- memcpy((unsigned char*)&local[offset],
- (unsigned char*)iv[ivIdx]->data, iv[ivIdx]->dataSz);
- offset += iv[ivIdx]->dataSz;
- ivIdx++;
- }
- else {
- break;
- }
- }
-
- if (sz != ivSz) {
- /* invalid IV size */
- return SizeIsTooLarge;
- }
- offset = 0;
- }
-
- ASP_FlushCaches((Address)desc->iv, ivSz);
- if (desc->idx + 2 > MAX_DESC_SZ) {
- return TransferFailed;
- }
- desc->desc[desc->idx++] = (CAAM_LOAD_CTX | CAAM_CLASS1 | ofst)
- + ivSz;
- desc->desc[desc->idx++] = BSP_VirtualToPhysical(desc->iv);
- break;
-
- default:
- return OperationNotImplemented;
- }
-
-
- /********* handle AAD -- is only done with Init **********************/
- if ((state & CAAM_ALG_INIT) == CAAM_ALG_INIT) {
- if ((desc->type == CAAM_AESCCM) && (desc->aadSz > 0)) {
- /* set formatted AAD buffer size for CCM */
- ASP_FlushCaches((Address)desc->aadSzBuf, sizeof(desc->aadSzBuf));
- desc->desc[desc->idx++] = CAAM_FIFO_L | CAAM_CLASS1 |
- FIFOL_TYPE_AAD + desc->aadSz;
- desc->desc[desc->idx++] = BSP_VirtualToPhysical(desc->aadSzBuf);
-
- /* now set aadSz to unformatted version for getting buffers */
- if (desc->aadSz == 2) {
- unsigned char* pt = (unsigned char*)desc->aadSzBuf;
- desc->aadSz = (((UINT4)pt[0] & 0xFF) << 8) |
- ((UINT4)pt[1] & 0xFF);
- }
- else {
- unsigned char* pt = (unsigned char*)desc->aadSzBuf;
- desc->aadSz = (((UINT4)pt[2] & 0xFF) << 24) |
- (((UINT4)pt[3] & 0xFF) << 16) |
- (((UINT4)pt[4] & 0xFF) << 8) |
- ((UINT4)pt[5] & 0xFF);
- }
- }
-
- /* get additional data buffers */
- if (desc->aadSz > 0) {
- sz = 0;
- for (; i < desc->DescriptorCount; i++) {
- struct buffer* buf = &desc->buf[i];
- if (sz < desc->aadSz) {
- if (desc->idx + 2 > MAX_DESC_SZ) {
- return TransferFailed;
- }
- desc->lastFifo = desc->idx;
- desc->desc[desc->idx++] = CAAM_FIFO_L | CAAM_CLASS1 |
- FIFOL_TYPE_AAD + buf->dataSz;
- desc->desc[desc->idx++] = BSP_VirtualToPhysical(buf->data);
- sz += buf->dataSz;
- }
- else {
- break;
- }
- }
-
- /* flush AAD from FIFO and pad it to 16 byte block */
- desc->desc[desc->lastFifo] |= FIFOL_TYPE_FC1;
- }
-
- /* find output buffers */
- if (caamAesOutSz(desc, i) != Success) {
- return SizeIsTooLarge;
- }
- }
-
- /* handle alignment constraints on input */
- if ((sz = caamAesInput(desc, &i, align, totalSz)) < 0) {
- return TransferFailed;
- }
- totalSz += sz;
-
- /* handle output buffers */
- if (caamAesOutput(desc, &offset, sz) != Success) {
- return TransferFailed;
- }
-
- /* store updated IV, if is last then set offset and final for MAC */
- if ((desc->lastIdx == desc->DescriptorCount) && (offset == 0)) {
- ivSz = 16;
- if (desc->state == CAAM_ENC) {
- ofst = 32 << 8; /* offset is in 15-8 bits */
- }
- else {
- ofst = 0;
- }
- desc->desc[opIdx] |= CAAM_ALG_FINAL;
- }
- else {
- /* if not final then store and use ctr and encrypted ctr from
- context dword 2,3 and 4,5. Also store MAC and AAD info from
- context dword 6. */
- ivSz = 56;
- ofst = 0;
- }
-
- if (desc->idx + 2 > MAX_DESC_SZ) {
- return TransferFailed;
- }
- desc->desc[desc->idx++] = CAAM_STORE_CTX | CAAM_CLASS1 | ofst | ivSz;
- desc->desc[desc->idx++] = BSP_VirtualToPhysical((Address)desc->iv);
-
- if ((err = caamDoJob(desc)) != Success) {
- return err;
- }
- state = CAAM_ALG_UPDATE;
- } while (desc->lastIdx < desc->DescriptorCount || offset > 0);
-
- /* flush output buffers */
- for (i = desc->outputIdx; i < desc->lastIdx; i++) {
- ASP_FlushCaches(desc->buf[i].data, desc->buf[i].dataSz);
- }
-
- /* handle case with IV (This is also the output of MAC with AES-CCM) */
- if (ivIdx > 0) {
- unsigned char* pt = (unsigned char*)desc->iv;
- ASP_FlushCaches((Address)pt, ivSz);
- for (i = 0; i < ivIdx; i++) {
- memcpy((unsigned char*)iv[i]->data, pt, iv[i]->dataSz);
- pt += iv[i]->dataSz;
- ASP_FlushCaches(iv[i]->data, iv[i]->dataSz);
- }
- }
-
- return Success;
-}
-
-
-/******************************************************************************
- CAAM SHA Operations
- ****************************************************************************/
-static int shaSize(struct DescStruct* desc)
-{
- /* sanity check on dataSz for context */
- switch (desc->type) {
- case CAAM_MD5:
- return CAAM_MD5_CTXSZ;
-
- case CAAM_SHA:
- return CAAM_SHA_CTXSZ;
-
- case CAAM_SHA224:
- return CAAM_SHA224_CTXSZ;
-
- case CAAM_SHA256:
- return CAAM_SHA256_CTXSZ;
-
- case CAAM_SHA384:
- return CAAM_SHA384_CTXSZ;
-
- case CAAM_SHA512:
- return CAAM_SHA512_CTXSZ;
-
- default:
- return 0;
- }
-}
-
-/* SHA operations
- * start: the index to start traversing through buffers. It's needed to allow
- * for HMAC to reuse this code.
- *
- * return Success on success. All other return values are considered a fail
- * case.
- */
-static Error caamSha(struct DescStruct* desc, int start)
-{
- struct buffer* ctx[3];
- Error err;
- UINT4 i;
- int sz = 0;
- int ctxIdx = 0;
- int offset = 0;
-
- int ctxSz = shaSize(desc);
-
- /* get context */
- for (i = start; i < desc->DescriptorCount; i++) {
- struct buffer* buf = &desc->buf[i];
- unsigned char* local = (unsigned char*)desc->iv;
-
- if (sz < ctxSz && sz < (MAX_CTX * sizeof(UINT4))) {
- ctx[ctxIdx] = buf;
- sz += buf->dataSz;
-
- if (ctx[ctxIdx]->dataSz + offset > (MAX_CTX * sizeof(UINT4))) {
- return SizeIsTooLarge;
- }
- memcpy((unsigned char*)&local[offset], (unsigned char*)ctx[ctxIdx]->data,
- ctx[ctxIdx]->dataSz);
- offset += ctx[ctxIdx]->dataSz;
- ctxIdx++;
- }
- else {
- break;
- }
- }
- if (sz > ctxSz || ctxSz > (MAX_CTX * sizeof(UINT4))) {
- return SizeIsTooLarge;
- }
-
- ASP_FlushCaches((Address)desc->iv, ctxSz);
- /*Manage Context (current digest + 8 byte running message length)*/
- if ((desc->state & CAAM_ALG_INIT) != CAAM_ALG_INIT) {
- /* don't load into the class 2 context register on inti.
- Found that loading in caused context to not get set. */
- if (desc->idx + 2 > MAX_DESC_SZ) {
- return TransferFailed;
- }
- desc->desc[desc->idx++] = (CAAM_LOAD_CTX | CAAM_CLASS2) + ctxSz;
- desc->desc[desc->idx++] = BSP_VirtualToPhysical((Address)desc->iv);
- }
-
- /* add operation command */
- desc->desc[desc->idx++] = CAAM_OP | CAAM_CLASS2 | desc->state |
- desc->type;
-
- /* Check case where there is no input.
- In all cases the FIFO Load should be flushed. */
- if (i == desc->DescriptorCount) {
- desc->lastFifo = desc->idx;
- if (desc->idx + 1 > MAX_DESC_SZ) {
- return TransferFailed;
- }
- desc->desc[desc->idx++] = CAAM_FIFO_L | CAAM_CLASS2 |
- FIFOL_TYPE_MSG | CAAM_IMM;
- }
-
- /* save index for looping over input */
- desc->headIdx = desc->idx;
- do {
- desc->idx = desc->headIdx; /* reset for each loop */
- if (i < desc->DescriptorCount) {
- /* input must be a multiple of 64 bytes unless in final call */
- if (((desc->state & CAAM_ALG_FINAL) == CAAM_ALG_FINAL)) {
- if (caamAddIO(desc, (CAAM_FIFO_L | CAAM_CLASS2 |
- FIFOL_TYPE_MSG), 0, 1, &i) < 0) {
- return TooManyBuffers;
- }
- }
- else {
- if (caamAddIO(desc, (CAAM_FIFO_L | CAAM_CLASS2 |
- FIFOL_TYPE_MSG), 0, 64, &i) < 0) {
- return TooManyBuffers;
- }
- }
- }
-
- desc->desc[desc->lastFifo] |= FIFOL_TYPE_LC2;
-
- /* set context out */
- if (desc->idx + 2 > MAX_DESC_SZ) {
- return TransferFailed;
- }
- desc->desc[desc->idx++] = CAAM_STORE_CTX | CAAM_CLASS2 + ctxSz;
- desc->desc[desc->idx++] = BSP_VirtualToPhysical(desc->iv);
-
- if ((err = caamDoJob(desc)) != Success) {
- return err;
- }
- /* flush context output for each loop */
- ASP_FlushCaches((Address)desc->iv, ctxSz);
- } while (i < desc->DescriptorCount);
-
- /* store context to buffers */
- {
- unsigned char* pt = (unsigned char*)desc->iv;
- for (i = 0; i < ctxIdx; i++) {
- memcpy((unsigned char*)ctx[i]->data, pt, ctx[i]->dataSz);
- pt += ctx[i]->dataSz;
- ASP_FlushCaches(ctx[i]->data, ctx[i]->dataSz);
- }
- }
-
- return Success;
-}
-
-
-/******************************************************************************
- CAAM TRNG Operations
- ****************************************************************************/
-
-/* If Entropy is not ready then return Waiting */
-static Error caamRng(struct DescStruct* desc)
-{
- int sz = 0;
- int i;
-
- Address reg; /* RTENT reg to read */
- int ofst = sizeof(UINT4);
-
-
- /* Check ENT_VAL bit to make sure entropy is ready */
- if ((CAAM_READ(CAAM_RTMCTL) & CAAM_ENTVAL) !=
- CAAM_ENTVAL) {
- return Waiting;
- }
-
- /* check state of TRNG */
- if ((CAAM_READ(CAAM_RTSTATUS) & 0x0000FFFF) > 0) {
- return Failure;
- }
-
- /* read entropy from RTENT registers */
- reg = CAAM_RTENT0;
-
- for (i = 0; i < desc->DescriptorCount; i++) {
- struct buffer* buf = &desc->buf[i];
- unsigned char* local = (unsigned char*)buf->data;
- sz = buf->dataSz;
-
- while (sz > 3 && reg <= CAAM_RTENT11) {
- *((UINT4*)local) = CAAM_READ(reg);
- reg += ofst;
- local += ofst;
- sz -= ofst;
- }
-
- if (reg > CAAM_RTENT11 && sz > 0) {
- return SizeIsTooLarge;
- }
-
- /* handle non word32 size amount left over */
- if (sz > 0) {
- UINT4 tmp = CAAM_READ(reg);
- memcpy(local, (unsigned char*)&tmp, sz);
- }
-
- ASP_FlushCaches(buf->data, buf->dataSz);
- }
-
-
- /* read RTENT11 to trigger new entropy generation */
- if (reg != CAAM_RTENT11) {
- CAAM_READ(CAAM_RTENT11);
- }
-
- return Success;
-}
-
-
-/******************************************************************************
- IODevice Start, Transfer and Finish Buffer
- ****************************************************************************/
-/* args[0] holds the state such as encrypt/decrypt or init/update/final
- * args[1] holds the ctx/key size
- * args[2] holds the input size
- * args[3] dependent on algo (such as AAD size with AES-CCM) */
-static Error caamTransferStart(IODeviceVector ioCaam,
- Value type, const volatile Value args[4])
-{
- struct CAAM_DEVICE* local = (struct CAAM_DEVICE*)ioCaam;
- struct DescStruct* desc;
-
- /* currently only one desc is available for use */
- desc = &local->DescArray[0];
-
- /* check if the desc is idle before using */
- if (GetIORequestStatus((IORequest)desc) != IdleIORequest) {
- return ResourceNotAvailable;
- }
-
- desc->idx = 0;
- desc->output = 0;
- desc->ctxOut = 0;
- desc->outputIdx = 0;
- desc->alignIdx = 0;
- desc->lastFifo = 0;
- desc->state = args[0];
- desc->ctxSz = args[1];
- desc->inputSz = args[2];
- desc->aadSz = 0;
- desc->desc[desc->idx++] = CAAM_HEAD; /* later will put size to header*/
-
- switch (type) {
- case CAAM_AESECB:
- case CAAM_AESCBC:
- if (desc->inputSz % 16 != 0) {
- return ArgumentError;
- }
- /* fall through to break */
- case CAAM_AESCTR:
- break;
-
- case CAAM_AESCCM:
- memset((unsigned char*)desc->aadSzBuf, 0, sizeof(desc->aadSzBuf));
- if (args[3] > 0) {
- /* encode the length in */
- if (args[3] <= 0xFEFF) {
- unsigned char* pt = (unsigned char*)desc->aadSzBuf;
- desc->aadSz = 2;
- pt[0] = ((args[3] & 0xFF00) >> 8);
- pt[1] = (args[3] & 0x00FF);
- }
- else if (args[3] <= 0xFFFFFFFF) {
- unsigned char* pt = (unsigned char*)desc->aadSzBuf;
- desc->aadSz = 6;
- pt[0] = 0xFF; pt[1] = 0xFE;
- pt[2] = ((args[3] & 0xFF000000) >> 24);
- pt[3] = ((args[3] & 0x00FF0000) >> 16);
- pt[4] = ((args[3] & 0x0000FF00) >> 8);
- pt[5] = (args[3] & 0x000000FF);
- }
- }
- break;
-
- case CAAM_MD5:
- case CAAM_SHA:
- case CAAM_SHA224:
- case CAAM_SHA256:
- case CAAM_SHA384:
- case CAAM_SHA512:
- break;
-
- case CAAM_BLOB_ENCAP:
- case CAAM_BLOB_DECAP:
- break;
-
- case CAAM_ENTROPY:
- break;
-
- default:
- /* unknown type */
- return UsageNotSupported;
- }
-
- desc->DescriptorCount = 0;
- desc->type = type;
- desc->running = true;
- StartIORequest((IORequest)desc);
-
- /* For now only require READ permissions */
- SetIORequestBufferPermissions((IORequest)desc, MEMORY_READ);
- return Success;
-}
-
-
-static Error caamTransferBuffer(IODeviceVector TheIODeviceVector,
- IORequest req, IODescriptor NewIODescriptor,
- Address data, Address dataSz)
-{
- struct DescStruct* desc = (struct DescStruct*)req;
- Error err;
-
- switch (desc->type) {
- case CAAM_AESECB:
- case CAAM_AESCTR:
- case CAAM_AESCBC:
- case CAAM_AESCCM:
-
- case CAAM_MD5:
- case CAAM_SHA:
- case CAAM_SHA224:
- case CAAM_SHA256:
- case CAAM_SHA384:
- case CAAM_SHA512:
-
- case CAAM_BLOB_ENCAP:
- case CAAM_BLOB_DECAP:
- case CAAM_ENTROPY:
- { /* set buffer for transfer finish */
- struct buffer* buf;
- if (desc->DescriptorCount >= MAX_BUF) {
- return TooManyBuffers;
- }
- buf = &desc->buf[desc->DescriptorCount];
- buf->data = data;
- buf->dataSz = dataSz;
- }
- err = Success;
- break;
-
- default:
- err = UsageNotSupported;
- }
-
- if (err != Success) {
- desc->running = false;
- DismissIORequest(req);
- return err;
- }
-
- desc->DescriptorCount++;
- return Success;
-}
-
-
-static Error caamTransferFinish(IODeviceVector ioCaam, IORequest req)
-{
- struct DescStruct* desc = (struct DescStruct*)req;
- Error ret;
-
- /* construct desc */
- switch (desc->type) {
- case CAAM_AESECB:
- case CAAM_AESCTR:
- case CAAM_AESCBC:
- ret = caamAes(desc);
- break;
-
- case CAAM_AESCCM:
- ret = caamAead(desc);
- break;
-
- case CAAM_MD5:
- case CAAM_SHA:
- case CAAM_SHA224:
- case CAAM_SHA256:
- case CAAM_SHA384:
- case CAAM_SHA512:
- ret = caamSha(desc, 0);
- break;
-
- case CAAM_ENTROPY:
- ret = caamRng(desc);
- break;
-
- case CAAM_BLOB_ENCAP:
- case CAAM_BLOB_DECAP:
- ret = caamBlob(desc);
- break;
-
- default:
- ret = UsageNotSupported;
- }
-
- desc->running = false;
- DismissIORequest(req);
- return ret;
-}
-
-
-/******************************************************************************
- IODevice Interrupt and Init
- ****************************************************************************/
-
-static Error caamTransferWrite(IODeviceVector ioCaam,
- IORequest req, Value dataSz, const volatile Value *data)
-{
- DismissIORequest(req);
- return UsageNotSupported;
-}
-
-
-static void caamTransferAbort(IODeviceVector ioCaam, IORequest req)
-{
- DismissIORequest(req);
-}
-
-
-static void caamTransferRecall(IODeviceVector ioCaam, IODescriptor req)
-{
-
-}
-
-
-static void HandleInterrupt(Address id)
-{
- struct CAAM_DEVICE* local = (struct CAAM_DEVICE*)id;
- Value InterruptStatus = INTERRUPT_AtomicWrite(&local->InterruptStatus, 0);
- int i;
-
- /* Loop through descriptors and try to dismiss them */
- for (i = 0; i < DESC_COUNT; i++) {
- struct DescStruct* desc = &local->DescArray[i];
- if (InterruptStatus & (1 << i)) {
- desc->running = false;
- if (GetIORequestStatus((IORequest)desc) == IORequestSuspended) {
- ContinueIORequest((IORequest)desc);
- }
- else {
- DismissIORequest((IORequest)desc);
- }
- }
- }
-}
-
-
-static Error caamCreate(IODeviceVector ioCaam)
-{
- return Success;
-}
-
-
-void InitCAAM(void)
-{
- /* get IO vector and set it up */
- IODeviceVector ioCaam = &caam.caamVector;
- unsigned int reg;
- int i;
- Error ret;
-
-
- ioCaam->Create = &caamCreate;
- ioCaam->ReadRegister = &caamReadRegister;
- ioCaam->WriteRegister = &caamWriteRegister;
-
- ioCaam->TransferStart = &caamTransferStart;
- ioCaam->TransferBuffer = &caamTransferBuffer;
- ioCaam->TransferWrite = &caamTransferWrite;
- ioCaam->TransferFinish = &caamTransferFinish;
- ioCaam->TransferAbort = &caamTransferAbort;
- ioCaam->TransferRecall = &caamTransferRecall;
-#ifdef HARDWARE_CACHE_COHERENCY
- ioCaam->IOSynchronizationNotRequired = 1;
-#endif
-
- RegisterIODeviceVector(ioCaam, DRIVER_NAME);
- RequestIOTerminationTask(ioCaam, 10);
-
- /* Initialize descriptors */
- for (i = 0; i < BUFFER_COUNT; i++) {
- InitializeIODescriptor(ioCaam, &caam.IODescriptorArray[i]);
- }
-
- /* Initialize Descriptors */
- for (i = 0; i < DESC_COUNT; i++) {
- InitializeIORequest(ioCaam, &caam.DescArray[i].TheIORequest,
- IOREQUEST_STANDARD);
- caam.DescArray[i].running = false;
- caam.DescArray[i].caam = &caam;
- }
-
-
- /* call interrupt to make IORequests available */
- caam.InterruptStatus = 0;
- INTERRUPT_InitCall(&caam.HandleInterruptCall,
- &HandleInterrupt, "Start up CAAM IORequest");
-
- /* set clock speed for CAAM. Setting it here to allow for restricting
- access */
- #define REGS_CCM_BASE (0xf20c4000)
- #define HW_CCM_CCGR0_ADDR (0xf20c4068)
- #define CG(x) (3 << (x*2))
-
- reg = CG(6) | CG(5) | CG(4);
- *(volatile unsigned int*)HW_CCM_CCGR0_ADDR =
- *(volatile unsigned int*)HW_CCM_CCGR0_ADDR | reg;
-
- /* set up job ring */
-
- /* @TODO create partition in physical memory for job rings
- current partition security is set to the default */
- for (i = 1; i < CAAM_PAGE_MAX; i++) {
- ret = caamCreatePartition(i, i);
- if (ret == 0) {
- break;
- }
-
- if (ret != MemoryMapMayNotBeEmpty) {
- INTERRUPT_Panic();
- }
- }
-
- if (ret != 0) {
- INTERRUPT_Panic();
- }
-
- caam.ring.page = i;
- caam.ring.JobIn = (CAAM_PAGE + (i << 12));
- caam.ring.JobOut = caam.ring.JobIn + 16;
- caam.ring.Desc = caam.ring.JobOut + 16;
-
- /* set physical address of job rings */
- CAAM_WRITE(CAAM_IRBAR0, caam.ring.JobIn ^ 0xF0000000);
- CAAM_WRITE(CAAM_ORBAR0, caam.ring.JobOut ^ 0xF0000000);
-
- /* Initialize job ring sizes to 1 */
- CAAM_WRITE(CAAM_IRSR0, 1);
- CAAM_WRITE(CAAM_ORSR0, 1);
-
- /* set DECO watchdog to time out and flush jobs that cause the DECO to hang */
- CAAM_WRITE((CAAM_BASE | 0x0004), CAAM_READ(CAAM_BASE | 0x0004) | 0x40000000);
-
- /* start up RNG if not already started */
- if (caamInitRng(&caam) != 0) {
- INTERRUPT_Panic();
- }
-}
-
-void (*__ghsentry_bspuserinit_InitCAAM)(void) = &InitCAAM;
-
-#endif /* INTEGRITY */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_init.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_init.c
deleted file mode 100644
index 014341cd6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_init.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/* caam_init.c
- *
- * Copyright (C) 2006-2020 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 <wolfssl/wolfcrypt/settings.h>
-
-#if defined(WOLFSSL_IMX6_CAAM) || defined(WOLFSSL_IMX6_CAAM_RNG) || \
- defined(WOLFSSL_IMX6_CAAM_BLOB)
-
-#include <wolfssl/wolfcrypt/logging.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/port/caam/wolfcaam.h>
-
-#define WC_CAAM_BLOB_SZ 48
-
-#ifndef WC_CAAM_PASSWORD
- #define WC_CAAM_PASSWORD "!systempassword"
-#endif
-
-#if defined(__INTEGRITY) || defined(INTEGRITY)
- #include <INTEGRITY.h>
- #include <wolfssl/wolfcrypt/port/caam/caam_driver.h>
- static IODevice caam = NULLIODevice;
-#endif
-
-#if defined(WOLFSSL_CAAM_PRINT) || defined(WOLFSSL_CAAM_DEBUG)
-#include <stdio.h>
-#include <wolfssl/version.h>
-
-static void wc_caamBanner(void)
-{
- printf("********* wolfSSL Version %s : Printing Out CAAM Information ********\n",
- LIBWOLFSSL_VERSION_STRING);
- printf("CAAM Status [0x%8.8x] = 0x%8.8x\n",
- CAAM_STATUS, WC_CAAM_READ(CAAM_STATUS));
- printf("CAAM Version MS Register [0x%8.8x] = 0x%8.8x\n",
- CAAM_VERSION_MS, WC_CAAM_READ(CAAM_VERSION_MS));
- printf("CAAM Version LS Register [0x%8.8x] = 0x%8.8x\n",
- CAAM_VERSION_LS, WC_CAAM_READ(CAAM_VERSION_LS));
- printf("CAAM Support MS Register [0x%8.8x] = 0x%8.8x\n",
- CAMM_SUPPORT_MS, WC_CAAM_READ(CAMM_SUPPORT_MS));
- printf("CAAM Support LS [0x%8.8x] = 0x%8.8x\n",
- CAMM_SUPPORT_LS, WC_CAAM_READ(CAMM_SUPPORT_LS));
- printf("********************************************************************\n\n");
-}
-#endif
-
-
-/* Allow runtime setting for CAAM IODevice in case user wants to use password
- * at run time.
- *
- * returns 0 on success
- *
- * NOTE this is how IODevice is defined in INTEGRITY "typedef struct
- * IODeviceStruct *IODevice;"
- */
-int wc_caamSetResource(IODevice ioDev)
-{
- WOLFSSL_MSG("Setting CAAM driver");
- caam = ioDev;
-
- return 0;
-}
-
-/* Check hardware support
- *
- * returns 0 on success
- */
-int wc_caamInit(void)
-{
- int ret;
- word32 reg;
-
- /* get the driver up */
- if (caam == NULLIODevice) {
- WOLFSSL_MSG("Starting CAAM driver");
- if ((ret = (int)RequestResource((Object *)&caam, "wolfSSL_CAAM_Driver",
- WC_CAAM_PASSWORD)) != (int)Success) {
- WOLFSSL_MSG("Unable to get the CAAM IODevice, check password?");
- WOLFSSL_LEAVE("wc_caamInit: error from driver = ", ret);
- ret = 0; /* not a hard failure because user can set resource */
- }
- }
-
-#if defined(WOLFSSL_CAAM_PRINT) || defined(WOLFSSL_CAAM_DEBUG)
- /* print out CAAM version/info and wolfSSL version */
- wc_caamBanner();
-#endif
-
- /* check that for implemented modules
- * bits 0-3 AES, 4-7 DES, 12-15 Hashing , 16-19 RNG */
- reg = WC_CAAM_READ(CAMM_SUPPORT_LS);
-
- #ifndef WC_NO_RNG
- if (((reg & 0x000F0000) >> 16) > 0) {
- WOLFSSL_MSG("Found CAAM RNG hardware module");
- if ((WC_CAAM_READ(CAAM_RTMCTL) & 0x40000001) != 0x40000001) {
- WOLFSSL_MSG("Error CAAM RNG has not been set up");
- }
- }
- #endif
-
- #ifndef NO_SHA256
- if ((reg & 0x0000F000) > 0) {
- WOLFSSL_MSG("Found CAAM MDHA module");
- }
- else {
- WOLFSSL_MSG("Hashing not supported by CAAM");
- return WC_HW_E;
- }
- #endif
-
- #ifndef NO_AES
- if ((reg & 0x0000000F) > 0) {
- WOLFSSL_MSG("Found CAAM AES module");
- }
- else {
- WOLFSSL_MSG("AES not supported by CAAM");
- return WC_HW_E;
- }
- #endif
-
- (void)ret;
- return 0;
-}
-
-
-int wc_caamFree(void)
-{
- return 0;
-}
-
-
-word32 wc_caamReadRegister(word32 reg)
-{
- Value out = 0;
-
- if (caam == NULLIODevice) {
- WOLFSSL_MSG("Error CAAM IODevice not found! Bad password?");
- return 0;
- }
-
- if (ReadIODeviceRegister(caam, reg, &out) != Success) {
- WOLFSSL_MSG("Error reading register\n");
- }
-
- return (word32)out;
-}
-
-void wc_caamWriteRegister(word32 reg, word32 value)
-{
- if (caam == NULLIODevice) {
- WOLFSSL_MSG("Error CAAM IODevice not found! Bad password?");
- return;
- }
-
- if (WriteIODeviceRegister(caam, reg, value) != Success) {
- WOLFSSL_MSG("Error writing to register\n");
- }
-}
-
-
-/* return 0 on success and WC_HW_E on failure. Can also return WC_HW_WAIT_E
- * in the case that the driver is waiting for a resource or RAN_BLOCK_E if
- * waiting for entropy. */
-int wc_caamAddAndWait(Buffer* buf, word32 arg[4], word32 type)
-{
- int ret;
- if (caam == NULLIODevice) {
- WOLFSSL_MSG("Error CAAM IODevice not found! Bad password?");
- return WC_HW_E;
- }
-
- if ((ret = SynchronousSendIORequest(caam, type, (const Value*)arg, buf))
- != Success) {
- #if defined(WOLFSSL_CAAM_PRINT) || defined(WOLFSSL_CAAM_DEBUG)
- printf("ret of SynchronousSendIORequest = %d type = %d\n", ret, type);
- #endif
-
- /* if waiting for resource or RNG return waiting */
- if (ret == Waiting) {
- WOLFSSL_MSG("Waiting on entropy from driver");
- return RAN_BLOCK_E;
- }
-
- if (ret == ResourceNotAvailable) {
- WOLFSSL_MSG("Waiting on CAAM driver");
- return WC_HW_WAIT_E;
- }
-
- return WC_HW_E;
- }
-
- (void)ret;
- return 0;
-}
-
-
-int wc_caamCreateBlob(byte* data, word32 dataSz, byte* out, word32* outSz)
-{
- Buffer in[3];
- word32 arg[4];
- int ret;
- word32 local[2] = {0,0};
-
- if (data == NULL || out == NULL || outSz == NULL ||
- *outSz < dataSz + WC_CAAM_BLOB_SZ) {
- return BAD_FUNC_ARG;
- }
-
- in[0].BufferType = DataBuffer;
- in[0].TheAddress = (Address)local;
- in[0].Length = sizeof(local);
-
- in[1].BufferType = DataBuffer;
- in[1].TheAddress = (Address)data;
- in[1].Length = dataSz;
-
- in[2].BufferType = DataBuffer | LastBuffer;
- in[2].TheAddress = (Address)out;
- in[2].Length = dataSz + WC_CAAM_BLOB_SZ;
-
- arg[2] = dataSz;
-
- if ((ret = wc_caamAddAndWait(in, arg, CAAM_BLOB_ENCAP)) != 0) {
- WOLFSSL_MSG("Error with CAAM blob create");
- return ret;
- }
-
- *outSz = dataSz + WC_CAAM_BLOB_SZ;
- return 0;
-}
-
-
-int wc_caamOpenBlob(byte* data, word32 dataSz, byte* out, word32* outSz)
-{
- Buffer in[3];
- word32 arg[4];
- int ret;
- word32 local[2] = {0,0};
-
- if (data == NULL || out == NULL || outSz == NULL ||
- *outSz < dataSz - WC_CAAM_BLOB_SZ) {
- return BAD_FUNC_ARG;
- }
-
- in[0].BufferType = DataBuffer;
- in[0].TheAddress = (Address)local;
- in[0].Length = sizeof(local);
-
- in[0].BufferType = DataBuffer;
- in[0].TheAddress = (Address)data;
- in[0].Length = dataSz;
-
- in[1].BufferType = DataBuffer | LastBuffer;
- in[1].TheAddress = (Address)out;
- in[1].Length = dataSz - WC_CAAM_BLOB_SZ;
-
- arg[2] = dataSz;
-
- if ((ret = wc_caamAddAndWait(in, arg, CAAM_BLOB_DECAP)) != 0) {
- WOLFSSL_MSG("Error with CAAM blob create");
- return ret;
- }
-
- *outSz = dataSz - WC_CAAM_BLOB_SZ;
- return 0;
-}
-
-#endif /* WOLFSSL_IMX6_CAAM */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_sha.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_sha.c
deleted file mode 100644
index 74d62fb97..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/caam/caam_sha.c
+++ /dev/null
@@ -1,397 +0,0 @@
-/* caam_sha.c
- *
- * Copyright (C) 2006-2020 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 <wolfssl/wolfcrypt/settings.h>
-
-#if defined(WOLFSSL_IMX6_CAAM) && !defined(NO_IMX6_CAAM_HASH)
-
-#include <wolfssl/wolfcrypt/logging.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-
-#include <INTEGRITY.h>
-#include <wolfssl/wolfcrypt/port/caam/caam_driver.h>
-#include <wolfssl/wolfcrypt/port/caam/wolfcaam.h>
-
-#if defined(WOLFSSL_CAAM_DEBUG) || defined(WOLFSSL_CAAM_PRINT)
-#include <stdio.h>
-#endif
-
-#ifndef NO_SHA
-#include <wolfssl/wolfcrypt/sha.h>
-#endif
-
-#if !defined(NO_SHA256) || defined(WOLFSSL_SHA224)
-#include <wolfssl/wolfcrypt/sha256.h>
-#endif
-
-#if defined(WOLFSSL_SHA384) || defined(WOLFSSL_SHA512)
-#include <wolfssl/wolfcrypt/sha512.h>
-#endif
-
-#ifndef NO_MD5
-#include <wolfssl/wolfcrypt/md5.h>
-#endif
-
-/******************************************************************************
- Common Code Between SHA Functions
- ****************************************************************************/
-
-static int _InitSha(wc_Sha* sha, void* heap, int devId, word32 digestSz,
- word32 type)
-{
- Buffer buf[1];
- word32 arg[4];
- int ret;
-
- (void)heap;
- (void)devId;
-
- if (sha == NULL) {
- return BAD_FUNC_ARG;
- }
-
- XMEMSET(sha, 0, sizeof(Sha));
-
- /* Set buffer for context */
- buf[0].BufferType = DataBuffer | LastBuffer;
- buf[0].TheAddress = (Address)sha->ctx;
- buf[0].Length = digestSz + WC_CAAM_CTXLEN;
- buf[0].Transferred = 0;
-
- arg[0] = CAAM_ALG_INIT;
- arg[1] = digestSz + WC_CAAM_CTXLEN;
-
- if ((ret = wc_caamAddAndWait(buf, arg, type)) != 0) {
- WOLFSSL_MSG("Error with CAAM SHA init");
- return ret;
- }
-
- return 0;
-}
-
-
-static int _ShaUpdate(wc_Sha* sha, const byte* data, word32 len, word32 digestSz,
- word32 type)
-{
- Buffer buf[2];
- word32 arg[4];
- int ret;
- byte* local;
-
- if (sha == NULL ||(data == NULL && len > 0)) {
- return BAD_FUNC_ARG;
- }
-
- if (len == 0) return 0; /* nothing to do */
-
- local = (byte*)sha->buffer;
- /* check for filling out existing buffer */
- if (sha->buffLen > 0) {
- word32 add = min(len, WC_CAAM_HASH_BLOCK - sha->buffLen);
- XMEMCPY(&local[sha->buffLen], data, add);
-
- sha->buffLen += add;
- data += add;
- len -= add;
-
- if (sha->buffLen == WC_CAAM_HASH_BLOCK) {
- /* Set buffer for context */
- buf[0].BufferType = DataBuffer;
- buf[0].TheAddress = (Address)sha->ctx;
- buf[0].Length = digestSz + WC_CAAM_CTXLEN;
- buf[0].Transferred = 0;
-
- /* data to update with */
- buf[1].BufferType = DataBuffer | LastBuffer;
- buf[1].TheAddress = (Address)sha->buffer;
- buf[1].Length = sha->buffLen;
- buf[1].Transferred = 0;
-
- arg[0] = CAAM_ALG_UPDATE;
- arg[1] = digestSz + WC_CAAM_CTXLEN;
-
- if ((ret = wc_caamAddAndWait(buf, arg, type)) != 0) {
- WOLFSSL_MSG("Error with CAAM SHA update");
- return ret;
- }
- sha->buffLen = 0; /* cleared out buffer */
- }
- }
-
- /* check if multiple full blocks can be done */
- if (len >= WC_CAAM_HASH_BLOCK) {
- word32 sz = len / WC_CAAM_HASH_BLOCK;
- sz = sz * WC_CAAM_HASH_BLOCK;
-
- /* Set buffer for context */
- buf[0].BufferType = DataBuffer;
- buf[0].TheAddress = (Address)sha->ctx;
- buf[0].Length = digestSz + WC_CAAM_CTXLEN;
- buf[0].Transferred = 0;
-
- /* data to update with */
- buf[1].BufferType = DataBuffer | LastBuffer;
- buf[1].TheAddress = (Address)data;
- buf[1].Length = sz;
- buf[1].Transferred = 0;
-
- arg[0] = CAAM_ALG_UPDATE;
- arg[1] = digestSz + WC_CAAM_CTXLEN;
-
- if ((ret = wc_caamAddAndWait(buf, arg, type)) != 0) {
- WOLFSSL_MSG("Error with CAAM SHA update");
- return ret;
- }
-
- len -= sz;
- data += sz;
- }
-
- /* check for left overs */
- if (len > 0) {
- word32 add = min(len, WC_CAAM_HASH_BLOCK - sha->buffLen);
- XMEMCPY(&local[sha->buffLen], data, add);
- sha->buffLen += add;
- }
-
- return 0;
-}
-
-
-static int _ShaFinal(wc_Sha* sha, byte* out, word32 digestSz,
- word32 type)
-{
- Buffer buf[2];
- word32 arg[4];
- int ret;
-
- if (sha == NULL || out == NULL) {
- return BAD_FUNC_ARG;
- }
-
- /* Set buffer for context */
- buf[0].BufferType = DataBuffer;
- buf[0].TheAddress = (Address)sha->ctx;
- buf[0].Length = digestSz + WC_CAAM_CTXLEN;
- buf[0].Transferred = 0;
-
- /* add any potential left overs */
- buf[1].BufferType = DataBuffer | LastBuffer;
- buf[1].TheAddress = (Address)sha->buffer;
- buf[1].Length = sha->buffLen;
- buf[1].Transferred = 0;
-
- arg[0] = CAAM_ALG_FINAL;
- arg[1] = digestSz + WC_CAAM_CTXLEN;
-
- if ((ret = wc_caamAddAndWait(buf, arg, type)) != 0) {
- WOLFSSL_MSG("Error with CAAM SHA init");
- return ret;
- }
-
- return 0;
-}
-
-/******************************************************************************
- MD5
- ****************************************************************************/
-#if !defined(NO_MD5)
-int wc_InitMd5_ex(wc_Md5* sha, void* heap, int devId)
-{
- return _InitSha(sha, heap, devId, MD5_DIGEST_SIZE, CAAM_MD5);
-}
-
-
-int wc_Md5Update(wc_Md5* sha, const byte* data, word32 len)
-{
- return _ShaUpdate(sha, data, len, MD5_DIGEST_SIZE, CAAM_MD5);
-}
-
-
-int wc_Md5Final(wc_Md5* sha, byte* hash)
-{
- int ret;
- if ((ret = _ShaFinal(sha, hash, MD5_DIGEST_SIZE, CAAM_MD5)) != 0) {
- return ret;
- }
-
- XMEMCPY(hash, (byte*)sha->ctx, MD5_DIGEST_SIZE);
- return _InitSha(sha, NULL, 0, MD5_DIGEST_SIZE, CAAM_MD5);
-}
-#endif /* !NO_MD5 */
-
-
-/******************************************************************************
- SHA 1
- ****************************************************************************/
-#if !defined(NO_SHA)
-int wc_InitSha_ex(wc_Sha* sha, void* heap, int devId)
-{
- return _InitSha(sha, heap, devId, SHA_DIGEST_SIZE, CAAM_SHA);
-}
-
-
-int wc_ShaUpdate(wc_Sha* sha, const byte* data, word32 len)
-{
- return _ShaUpdate(sha, data, len, SHA_DIGEST_SIZE, CAAM_SHA);
-}
-
-
-int wc_ShaFinal(wc_Sha* sha, byte* out)
-{
- int ret;
- if ((ret = _ShaFinal(sha, out, SHA_DIGEST_SIZE, CAAM_SHA)) != 0) {
- return ret;
- }
-
- XMEMCPY(out, (byte*)sha->ctx, SHA_DIGEST_SIZE);
- return _InitSha(sha, NULL, 0, SHA_DIGEST_SIZE, CAAM_SHA);
-}
-#endif /* !NO_SHA */
-
-
-/******************************************************************************
- SHA 224
- ****************************************************************************/
-#ifdef WOLFSSL_SHA224
-int wc_InitSha224_ex(wc_Sha224* sha, void* heap, int devId)
-{
- return _InitSha(sha, heap, devId, SHA256_DIGEST_SIZE, CAAM_SHA224);
-}
-
-
-int wc_Sha224Update(wc_Sha224* sha, const byte* data, word32 len)
-{
- return _ShaUpdate(sha, data, len, SHA256_DIGEST_SIZE, CAAM_SHA224);
-}
-
-
-int wc_Sha224Final(wc_Sha224* sha, byte* out)
-{
- int ret;
- if ((ret = _ShaFinal(sha, out, SHA256_DIGEST_SIZE, CAAM_SHA224)) != 0) {
- return ret;
- }
-
- XMEMCPY(out, (byte*)sha->ctx, SHA224_DIGEST_SIZE);
- return _InitSha(sha, NULL, 0, SHA256_DIGEST_SIZE, CAAM_SHA224);
-}
-#endif /* WOLFSSL_SHA224 */
-
-
-/******************************************************************************
- SHA 256
- ****************************************************************************/
-#if !defined(NO_SHA256)
-int wc_InitSha256_ex(wc_Sha256* sha, void* heap, int devId)
-{
- return _InitSha(sha, heap, devId, SHA256_DIGEST_SIZE, CAAM_SHA256);
-}
-
-
-int wc_Sha256Update(wc_Sha256* sha, const byte* data, word32 len)
-{
- return _ShaUpdate(sha, data, len, SHA256_DIGEST_SIZE, CAAM_SHA256);
-}
-
-
-int wc_Sha256Final(wc_Sha256* sha, byte* out)
-{
- int ret;
- if ((ret = _ShaFinal(sha, out, SHA256_DIGEST_SIZE, CAAM_SHA256)) != 0) {
- return ret;
- }
-
- XMEMCPY(out, (byte*)sha->ctx, SHA256_DIGEST_SIZE);
- return _InitSha(sha, NULL, 0, SHA256_DIGEST_SIZE, CAAM_SHA256);
-}
-#endif /* !NO_SHA256 */
-
-
-/******************************************************************************
- SHA 384
- ****************************************************************************/
-#ifdef WOLFSSL_SHA384
-int wc_InitSha384_ex(wc_Sha384* sha, void* heap, int devId)
-{
- return _InitSha(sha, heap, devId, SHA512_DIGEST_SIZE, CAAM_SHA384);
-}
-
-
-int wc_Sha384Update(wc_Sha384* sha, const byte* data, word32 len)
-{
- return _ShaUpdate(sha, data, len, SHA512_DIGEST_SIZE, CAAM_SHA384);
-}
-
-
-int wc_Sha384Final(wc_Sha384* sha, byte* out)
-{
- int ret;
- if ((ret = _ShaFinal(sha, out, SHA512_DIGEST_SIZE, CAAM_SHA384)) != 0) {
- return ret;
- }
-
- XMEMCPY(out, (byte*)sha->ctx, SHA384_DIGEST_SIZE);
- return _InitSha(sha, NULL, 0, SHA512_DIGEST_SIZE, CAAM_SHA384);
-}
-#endif /* WOLFSSL_SHA384 */
-
-
-
-/******************************************************************************
- SHA 512
- ****************************************************************************/
-#ifdef WOLFSSL_SHA512
-int wc_InitSha512_ex(wc_Sha512* sha, void* heap, int devId)
-{
- return _InitSha(sha, heap, devId, SHA512_DIGEST_SIZE, CAAM_SHA512);
-}
-
-
-int wc_Sha512Update(wc_Sha512* sha, const byte* data, word32 len)
-{
- return _ShaUpdate(sha, data, len, SHA512_DIGEST_SIZE, CAAM_SHA512);
-}
-
-
-int wc_Sha512Final(wc_Sha512* sha, byte* out)
-{
- int ret;
- if ((ret = _ShaFinal(sha, out, SHA512_DIGEST_SIZE, CAAM_SHA512)) != 0) {
- return ret;
- }
-
- XMEMCPY(out, (byte*)sha->ctx, SHA512_DIGEST_SIZE);
- return _InitSha(sha, NULL, 0, SHA512_DIGEST_SIZE, CAAM_SHA512);
-}
-#endif /* WOLFSSL_SHA512 */
-
-#endif /* WOLFSSL_IMX6_CAAM */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/README.md b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/README.md
deleted file mode 100644
index b98d866dd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Cavium Nitrox III/V Support
-
-Please contact wolfSSL at info@wolfssl.com to request an evaluation.
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/README_Octeon.md b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/README_Octeon.md
deleted file mode 100644
index b2670d02e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/README_Octeon.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Cavium Octeon III CN7300
-
-Please contact wolfSSL at info@wolfssl.com to request an evaluation.
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/cavium_nitrox.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/cavium_nitrox.c
deleted file mode 100644
index e69de29bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/cavium_nitrox.c
+++ /dev/null
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/cavium_octeon_sync.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/cavium_octeon_sync.c
deleted file mode 100644
index 078e8cb52..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/cavium/cavium_octeon_sync.c
+++ /dev/null
@@ -1,879 +0,0 @@
-/* cavium_octeon_sync.c
- *
- * Copyright(C) 2006-2020 wolfSSL Inc.
- *
- * This file is part of wolfSSL.(formerly known as CyaSSL)
- *
- * 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-1301, USA
- */
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/wc_port.h>
-
-#ifdef HAVE_CAVIUM_OCTEON_SYNC
-
-/* Setting NO_MAIN_DRIVER here because this file ends up building
- * in the library sources which doesn't have NO_MAIN_DRIVER set,
- * as the library expects main to be somewhere else. */
-#undef NO_MAIN_DRIVER
-#define NO_MAIN_DRIVER
-
-#include <wolfssl/wolfcrypt/port/cavium/cavium_octeon_sync.h>
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-
-#include "cvmx.h"
-#include "cvmx-asm.h"
-#include "cvmx-key.h"
-#include "cvmx-swap.h"
-
-#ifndef NO_DES3
- #include <wolfssl/wolfcrypt/des3.h>
-#endif
-#ifndef NO_AES
- #include <wolfssl/wolfcrypt/aes.h>
-#endif
-
-#define NOOPT __attribute__((optimize("O0")))
-
-static int devId = 1234;
-
-#ifndef NO_DES3
-static int Octeon_Des3_CbcEncrypt(Des3* des3,
- uint64_t *inp64, uint64_t *outp64, size_t inl)
-{
- register uint64_t i0, r0;
- uint64_t *key, *iv;
-
- if (des3 == NULL || inp64 == NULL || outp64 == NULL)
- return BAD_FUNC_ARG;
-
- /* expects 64-bit aligned value */
- key = (uint64_t*)des3->devKey;
- CVMX_MT_3DES_KEY(key[0], 0);
- CVMX_MT_3DES_KEY(key[1], 1);
- CVMX_MT_3DES_KEY(key[2], 2);
- iv = (uint64_t*)des3->reg;
- CVMX_MT_3DES_IV(iv[0]);
-
- CVMX_PREFETCH0(inp64);
-
- i0 = *inp64;
-
- /* DES3 assembly can handle 16-byte chunks */
- if (inl >= 16) {
- CVMX_MT_3DES_ENC_CBC(i0);
- inl -= 8;
- inp64++;
- outp64++;
-
- if (inl >= 8) {
- i0 = inp64[0];
- CVMX_MF_3DES_RESULT(r0);
- CVMX_MT_3DES_ENC_CBC(i0);
-
- for (;;) {
- outp64[-1] = r0;
- inl -= 8;
- inp64++;
- outp64++;
- i0 = *inp64;
-
- if (inl < 8)
- break;
-
- CVMX_PREFETCH(inp64, 64);
- CVMX_MF_3DES_RESULT(r0);
- CVMX_MT_3DES_ENC_CBC(i0);
- }
- }
- CVMX_MF_3DES_RESULT(r0);
- outp64[-1] = r0;
- }
- /* remainder */
- if (inl > 0) {
- uint64_t r = 0;
- if (inl <= 8) {
- XMEMCPY(&r, inp64, inl);
- CVMX_MT_3DES_ENC_CBC(r);
- CVMX_MF_3DES_RESULT(*outp64);
- }
- else {
- i0 = *inp64;
- CVMX_MT_3DES_ENC_CBC(i0);
- CVMX_MF_3DES_RESULT(*outp64);
- inp64++, outp64++;
-
- XMEMCPY(&r, inp64, inl);
- CVMX_MT_3DES_ENC_CBC(r);
- CVMX_MF_3DES_RESULT(*outp64);
- }
- }
-
- CVMX_MT_3DES_IV(iv[0]);
-
- return 0;
-}
-
-static int Octeon_Des3_CbcDecrypt(Des3* des3,
- uint64_t *inp64, uint64_t *outp64, size_t inl)
-{
- register uint64_t i0, r0;
- uint64_t *key, *iv;
-
- if (des3 == NULL || inp64 == NULL || outp64 == NULL)
- return BAD_FUNC_ARG;
-
- /* expects 64-bit aligned value */
- key = (uint64_t*)des3->devKey;
- CVMX_MT_3DES_KEY(key[0], 0);
- CVMX_MT_3DES_KEY(key[1], 1);
- CVMX_MT_3DES_KEY(key[2], 2);
-
- iv = (uint64_t*)des3->reg;
- CVMX_MT_3DES_IV(iv[0]);
-
- CVMX_PREFETCH0(inp64);
-
- i0 = *inp64;
-
- /* DES3 assembly can handle 16-byte chunks */
- if (inl >= 16) {
- CVMX_MT_3DES_DEC_CBC(i0);
- inl -= 8;
- inp64++;
- outp64++;
-
- if (inl >= 8) {
- i0 = inp64[0];
- CVMX_MF_3DES_RESULT(r0);
- CVMX_MT_3DES_DEC_CBC(i0);
-
- for (;;) {
- outp64[-1] = r0;
- inl -= 8;
- inp64++;
- outp64++;
- i0 = *inp64;
-
- if (inl < 8)
- break;
-
- CVMX_PREFETCH(inp64, 64);
- CVMX_MF_3DES_RESULT(r0);
- CVMX_MT_3DES_DEC_CBC(i0);
- }
- }
-
- CVMX_MF_3DES_RESULT(r0);
- outp64[-1] = r0;
- }
- /* remainder */
- if (inl > 0) {
- if (inl <= 8) {
- uint64_t r = 0;
- XMEMCPY(&r, inp64, inl);
- CVMX_MT_3DES_DEC_CBC(r);
- CVMX_MF_3DES_RESULT(*outp64);
- }
- else {
- uint64_t r = 0;
- i0 = *inp64;
- CVMX_MT_3DES_DEC_CBC(i0);
- CVMX_MF_3DES_RESULT(*outp64);
- inp64++, outp64++;
-
- XMEMCPY(&r, inp64, inl);
- CVMX_MT_3DES_DEC_CBC(r);
- CVMX_MF_3DES_RESULT(*outp64);
- }
- }
-
- CVMX_MT_3DES_IV(iv[0]);
-
- return 0;
-}
-#endif /* !NO_DES3 */
-
-
-#ifndef NO_AES
-
-#ifdef HAVE_AES_CBC
-static int Octeon_AesCbc_Encrypt(Aes *aes,
- uint64_t *inp64, uint64_t *outp64, size_t inl)
-{
- register uint64_t i0, i1, r0, r1;
- uint64_t *key, *iv;
-
- if (aes == NULL || inp64 == NULL || outp64 == NULL) {
- return BAD_FUNC_ARG;
- }
-
- iv = (uint64_t*)aes->reg;
- CVMX_MT_AES_IV(iv[0], 0);
- CVMX_MT_AES_IV(iv[1], 1);
-
- key = (uint64_t*)aes->devKey;
- CVMX_MT_AES_KEY(key[0], 0);
- CVMX_MT_AES_KEY(key[1], 1);
- CVMX_MT_AES_KEY(key[2], 2);
- CVMX_MT_AES_KEY(key[3], 3);
-
- CVMX_MT_AES_KEYLENGTH(aes->keylen/8 - 1);
-
- CVMX_PREFETCH0(inp64);
-
- i0 = inp64[0];
- i1 = inp64[1];
-
- /* AES assembly can handle 32-byte chunks */
- if (inl >= 32) {
- CVMX_MT_AES_ENC_CBC0(i0);
- CVMX_MT_AES_ENC_CBC1(i1);
- inl -= 16;
- inp64 += 2;
- outp64 += 2;
-
- if (inl >= 16) {
- CVMX_MF_AES_RESULT(r0, 0);
- CVMX_MF_AES_RESULT(r1, 1);
- i0 = inp64[0];
- i1 = inp64[1];
- CVMX_MT_AES_ENC_CBC0(i0);
- CVMX_MT_AES_ENC_CBC1(i1);
-
- for (;;) {
- outp64[-2] = r0;
- outp64[-1] = r1;
- outp64 += 2;
- inp64 += 2;
- inl -= 16;
- i0 = inp64[0];
- i1 = inp64[1];
-
- if (inl < 16)
- break;
-
- CVMX_PREFETCH(inp64, 64);
- CVMX_MF_AES_RESULT(r0, 0);
- CVMX_MF_AES_RESULT(r1, 1);
- CVMX_MT_AES_ENC_CBC0(i0);
- CVMX_MT_AES_ENC_CBC1(i1);
- }
- }
-
- CVMX_MF_AES_RESULT(r0, 0);
- CVMX_MF_AES_RESULT(r1, 1);
- outp64[-2] = r0;
- outp64[-1] = r1;
- }
- /* remainder */
- if (inl > 0) {
- uint64_t in64[2] = { 0, 0 };
- if (inl <= 16) {
- XMEMCPY(in64, inp64, inl);
- CVMX_MT_AES_ENC_CBC0(in64[0]);
- CVMX_MT_AES_ENC_CBC1(in64[1]);
- CVMX_MF_AES_RESULT(r0, 0);
- CVMX_MF_AES_RESULT(r1, 1);
- outp64[0] = r0;
- outp64[1] = r1;
- }
- else {
- CVMX_MT_AES_ENC_CBC0(i0);
- CVMX_MT_AES_ENC_CBC1(i1);
- CVMX_MF_AES_RESULT(r0, 0);
- CVMX_MF_AES_RESULT(r1, 1);
- inl -= 16;
- outp64[0] = r0;
- outp64[1] = r1;
- inp64 += 2;
- outp64 += 2;
- XMEMCPY(in64, inp64, inl);
- CVMX_MT_AES_ENC_CBC0(in64[0]);
- CVMX_MT_AES_ENC_CBC1(in64[1]);
- CVMX_MF_AES_RESULT(r0, 0);
- CVMX_MF_AES_RESULT(r1, 1);
- outp64[0] = r0;
- outp64[1] = r1;
- }
- }
-
- CVMX_MF_AES_IV(iv[0], 0);
- CVMX_MF_AES_IV(iv[1], 1);
-
- return 0;
-}
-
-static int Octeon_AesCbc_Decrypt(Aes *aes,
- uint64_t *inp64, uint64_t *outp64, size_t inl)
-{
- register uint64_t i0, i1, r0, r1;
- uint64_t *key, *iv;
-
- if (aes == NULL || inp64 == NULL || outp64 == NULL) {
- return BAD_FUNC_ARG;
- }
-
- iv = (uint64_t*)aes->reg;
- key = (uint64_t*)aes->devKey;
-
- CVMX_MT_AES_IV(iv[0], 0);
- CVMX_MT_AES_IV(iv[1], 1);
-
- CVMX_MT_AES_KEY(key[0], 0);
- CVMX_MT_AES_KEY(key[1], 1);
- CVMX_MT_AES_KEY(key[2], 2);
- CVMX_MT_AES_KEY(key[3], 3);
- CVMX_MT_AES_KEYLENGTH(aes->keylen/8 - 1);
-
- CVMX_PREFETCH0(inp64);
-
- i0 = inp64[0];
- i1 = inp64[1];
-
- /* AES assembly can handle 32-byte chunks */
- if (inl >= 32) {
- CVMX_MT_AES_DEC_CBC0(i0);
- CVMX_MT_AES_DEC_CBC1(i1);
- inp64 += 2;
- outp64 += 2;
- inl -= 16;
-
- if (inl >= 16) {
- i0 = inp64[0];
- i1 = inp64[1];
- CVMX_MF_AES_RESULT(r0, 0);
- CVMX_MF_AES_RESULT(r1, 1);
- CVMX_MT_AES_DEC_CBC0(i0);
- CVMX_MT_AES_DEC_CBC1(i1);
-
- for (;;) {
- outp64[-2] = r0;
- outp64[-1] = r1;
- outp64 += 2;
- inp64 += 2;
- inl -= 16;
- i0 = inp64[0];
- i1 = inp64[1];
-
- if (inl < 16)
- break;
-
- CVMX_PREFETCH(inp64, 64);
- CVMX_MF_AES_RESULT(r0, 0);
- CVMX_MF_AES_RESULT(r1, 1);
- CVMX_MT_AES_DEC_CBC0(i0);
- CVMX_MT_AES_DEC_CBC1(i1);
- }
- }
-
- CVMX_MF_AES_RESULT(r0, 0);
- CVMX_MF_AES_RESULT(r1, 1);
- outp64[-2] = r0;
- outp64[-1] = r1;
- }
- /* remainder */
- if (inl > 0) {
- uint64_t in64[2] = { 0, 0 };
- XMEMCPY(in64, inp64, inl);
- CVMX_MT_AES_DEC_CBC0(in64[0]);
- CVMX_MT_AES_DEC_CBC1(in64[1]);
- CVMX_MF_AES_RESULT(r0, 0);
- CVMX_MF_AES_RESULT(r1, 1);
- outp64[0] = r0;
- outp64[1] = r1;
- }
-
- CVMX_MF_AES_IV(iv[0], 0);
- CVMX_MF_AES_IV(iv[1], 1);
-
- return 0;
-}
-#endif /* HAVE_AES_CBC */
-
-
-#ifdef HAVE_AESGCM
-
-#define CVM_AES_RD_RESULT_WR_DATA(in1, in2, out1, out2) \
- asm volatile(\
- ".set noreorder \n" \
- "dmfc2 %[r1],0x0100\n" \
- "dmfc2 %[r2],0x0101\n" \
- "dmtc2 %[r3],0x010a\n" \
- "dmtc2 %[r4],0x310b\n" \
- ".set reorder \n" \
- : [r1] "=&d"(in1) , [r2] "=&d"(in2) \
- : [r3] "d"(out1), [r4] "d"(out2))
-
-static NOOPT void Octeon_GHASH_Restore(word16 poly, byte* h)
-{
- word64* bigH = (word64*)h;
- CVMX_MT_GFM_POLY((word64)poly);
- CVMX_MT_GFM_MUL(bigH[0], 0);
- CVMX_MT_GFM_MUL(bigH[1], 1);
-}
-
-
-static NOOPT void Octeon_GHASH_Init(word16 poly, byte* h)
-{
- Octeon_GHASH_Restore(poly, h);
- CVMX_MT_GFM_RESINP(0, 0);
- CVMX_MT_GFM_RESINP(0, 1);
-}
-
-
-static NOOPT void Octeon_GHASH_Update(byte* in)
-{
- word64* bigIn = (word64*)in;
- CVMX_MT_GFM_XOR0(bigIn[0]);
- CVMX_MT_GFM_XORMUL1(bigIn[1]);
-}
-
-
-static NOOPT void Octeon_GHASH_Final(byte* out, word64 authInSz, word64 inSz)
-{
- word64* bigOut = (word64*)out;
-
- CVMX_MT_GFM_XOR0(authInSz * 8);
- CVMX_MT_GFM_XORMUL1(inSz * 8);
- CVMX_MF_GFM_RESINP(bigOut[0], 0);
- CVMX_MF_GFM_RESINP(bigOut[1], 1);
-}
-
-
-/* Sets the Octeon key with the key found in the Aes record. */
-static NOOPT int Octeon_AesGcm_SetKey(Aes* aes)
-{
- int ret = 0;
-
- if (aes == NULL)
- ret = BAD_FUNC_ARG;
-
- if (ret == 0) {
- uint64_t* key = (uint64_t*)aes->devKey;
-
- CVMX_MT_AES_KEY(key[0], 0);
- CVMX_MT_AES_KEY(key[1], 1);
- CVMX_MT_AES_KEY(key[2], 2);
- CVMX_MT_AES_KEY(key[3], 3);
- CVMX_MT_AES_KEYLENGTH((aes->keylen / 8) - 1);
-
- if (!aes->keySet) {
- uint64_t* bigH = (uint64_t*)aes->H;
- CVMX_MT_AES_ENC0(0);
- CVMX_MT_AES_ENC1(0);
- CVMX_MF_AES_RESULT(bigH[0], 0);
- CVMX_MF_AES_RESULT(bigH[1], 1);
- aes->keySet = 1;
- }
- }
-
- return ret;
-}
-
-
-static NOOPT int Octeon_AesGcm_SetIV(Aes* aes, byte* iv, word32 ivSz)
-{
- int ret = 0;
-
- if (aes == NULL || iv == NULL)
- ret = BAD_FUNC_ARG;
-
- if (ret == 0) {
- if (ivSz == GCM_NONCE_MID_SZ) {
- XMEMSET((byte*)aes->reg, 0, sizeof(aes->reg));
- XMEMCPY((byte*)aes->reg, iv, ivSz);
- aes->reg[3] = 1;
- }
- else {
- int blocks, remainder, i;
- byte aesBlock[AES_BLOCK_SIZE];
-
- blocks = ivSz / AES_BLOCK_SIZE;
- remainder = ivSz % AES_BLOCK_SIZE;
-
- for (i = 0; i < blocks; i++, iv += AES_BLOCK_SIZE)
- Octeon_GHASH_Update(iv);
-
- XMEMSET(aesBlock, 0, sizeof(aesBlock));
- for (i = 0; i < remainder; i++)
- aesBlock[i] = iv[i];
- Octeon_GHASH_Update(aesBlock);
-
- Octeon_GHASH_Final((byte*)aes->reg, 0, ivSz);
- }
-
- aes->y0 = aes->reg[3];
- aes->reg[3]++;
-
- Octeon_GHASH_Init(0xe100, aes->H);
- }
-
- return ret;
-}
-
-
-static NOOPT int Octeon_AesGcm_SetAAD(Aes* aes, byte* aad, word32 aadSz)
-{
- word64* p;
- ALIGN16 byte aesBlock[AES_BLOCK_SIZE];
- int blocks, remainder, i;
-
- if (aes == NULL || (aadSz != 0 && aad == NULL))
- return BAD_FUNC_ARG;
-
- if (aadSz == 0)
- return 0;
-
- blocks = aadSz / AES_BLOCK_SIZE;
- remainder = aadSz % AES_BLOCK_SIZE;
-
- Octeon_GHASH_Restore(0xe100, aes->H);
-
- p = (word64*)aesBlock;
-
- for (i = 0; i < blocks; i++, aad += AES_BLOCK_SIZE) {
- CVMX_LOADUNA_INT64(p[0], aad, 0);
- CVMX_LOADUNA_INT64(p[1], aad, 8);
- CVMX_MT_GFM_XOR0(p[0]);
- CVMX_MT_GFM_XORMUL1(p[1]);
- }
-
- XMEMSET(aesBlock, 0, sizeof(aesBlock));
-
- for (i = 0; i < remainder; i++)
- aesBlock[i] = aad[i];
-
- CVMX_MT_GFM_XOR0(p[0]);
- CVMX_MT_GFM_XORMUL1(p[1]);
-
- return 0;
-}
-
-
-static int Octeon_AesGcm_SetEncrypt(Aes* aes, byte* in, byte* out, word32 inSz,
- int encrypt)
-{
- word32 i, blocks, remainder;
- ALIGN16 byte aesBlockIn[AES_BLOCK_SIZE];
- ALIGN16 byte aesBlockOut[AES_BLOCK_SIZE];
- word64* pIn;
- word64* pOut;
- word64* pIv;
-
- if (aes == NULL || in == NULL || out == NULL)
- return BAD_FUNC_ARG;
-
- pIn = (word64*)aesBlockIn;
- pOut = (word64*)aesBlockOut;
- pIv = (word64*)aes->reg;
-
- CVMX_PREFETCH0(in);
-
- CVMX_MT_AES_ENC0(pIv[0]);
- CVMX_MT_AES_ENC1(pIv[1]);
-
- blocks = inSz / AES_BLOCK_SIZE;
- remainder = inSz % AES_BLOCK_SIZE;
-
- for (i = 0; i < blocks;
- i++, in += AES_BLOCK_SIZE, out += AES_BLOCK_SIZE) {
- CVMX_PREFETCH128(in);
- aes->reg[3]++;
-
- CVMX_LOADUNA_INT64(pIn[0], in, 0);
- CVMX_LOADUNA_INT64(pIn[1], in, 8);
-
- CVM_AES_RD_RESULT_WR_DATA(pOut[0], pOut[1], pIv[0], pIv[1]);
-
- if (encrypt) {
- pOut[0] ^= pIn[0];
- pOut[1] ^= pIn[1];
- CVMX_MT_GFM_XOR0(pOut[0]);
- CVMX_MT_GFM_XORMUL1(pOut[1]);
- }
- else {
- CVMX_MT_GFM_XOR0(pIn[0]);
- CVMX_MT_GFM_XORMUL1(pIn[1]);
- pOut[0] ^= pIn[0];
- pOut[1] ^= pIn[1];
- }
-
- CVMX_STOREUNA_INT64(pOut[0], out, 0);
- CVMX_STOREUNA_INT64(pOut[1], out, 8);
- }
-
- if (remainder > 0) {
- ALIGN16 byte aesBlockMask[AES_BLOCK_SIZE];
- word64* pMask = (word64*)aesBlockMask;
-
- XMEMSET(aesBlockOut, 0, sizeof(aesBlockOut));
- XMEMSET(aesBlockMask, 0, sizeof(aesBlockMask));
- for (i = 0; i < remainder; i++) {
- aesBlockIn[i] = in[i];
- aesBlockMask[i] = 0xFF;
- }
-
- if (encrypt) {
- CVMX_MF_AES_RESULT(pOut[0], 0);
- CVMX_MF_AES_RESULT(pOut[1], 1);
-
- pOut[0] ^= pIn[0];
- pOut[1] ^= pIn[1];
-
- pOut[0] &= pMask[0];
- pOut[1] &= pMask[1];
-
- CVMX_MT_GFM_XOR0(pOut[0]);
- CVMX_MT_GFM_XORMUL1(pOut[1]);
- }
- else {
- CVMX_MT_GFM_XOR0(pIn[0]);
- CVMX_MT_GFM_XORMUL1(pIn[1]);
-
- CVMX_MF_AES_RESULT(pOut[0], 0);
- CVMX_MF_AES_RESULT(pOut[1], 1);
-
- pOut[0] ^= pIn[0];
- pOut[1] ^= pIn[1];
-
- pOut[0] &= pMask[0];
- pOut[1] &= pMask[1];
- }
-
- for (i = 0; i < remainder; i++)
- out[i] = aesBlockOut[i];
- }
-
- return 0;
-}
-
-
-static NOOPT int Octeon_AesGcm_Finalize(Aes* aes, word32 inSz, word32 aadSz,
- byte* tag)
-{
- word64 bigSz;
- word64* pIv;
- word64* pIn;
- word64* pOut;
- uint32_t countSave;
- ALIGN16 byte aesBlockIn[AES_BLOCK_SIZE];
- ALIGN16 byte aesBlockOut[AES_BLOCK_SIZE];
-
- countSave = aes->reg[3];
- aes->reg[3] = aes->y0;
-
- pIv = (word64*)aes->reg;
- CVMX_MT_AES_ENC0(pIv[0]);
- CVMX_MT_AES_ENC1(pIv[1]);
-
- bigSz = (word64)aadSz * 8;
- CVMX_MT_GFM_XOR0(bigSz);
- bigSz = (word64)inSz * 8;
- CVMX_MT_GFM_XORMUL1(bigSz);
-
- aes->reg[3] = countSave;
-
- pIn = (word64*)aesBlockIn;
- CVMX_MF_AES_RESULT(pIn[0], 0);
- CVMX_MF_AES_RESULT(pIn[1], 1);
-
- pOut = (word64*)aesBlockOut;
- CVMX_MF_GFM_RESINP(pOut[0], 0);
- CVMX_MF_GFM_RESINP(pOut[1], 1);
-
- pOut[0] ^= pIn[0];
- pOut[1] ^= pIn[1];
-
- CVMX_STOREUNA_INT64(pOut[0], tag, 0);
- CVMX_STOREUNA_INT64(pOut[1], tag, 8);
-
- return 0;
-}
-
-
-static int Octeon_AesGcm_Encrypt(Aes* aes, byte* in, byte* out, word32 inSz,
- byte* iv, word32 ivSz, byte* aad, word32 aadSz, byte* tag)
-{
- int ret = 0;
-
- if (aes == NULL)
- ret = BAD_FUNC_ARG;
-
- if (ret == 0)
- ret = Octeon_AesGcm_SetKey(aes);
-
- if (ret == 0)
- ret = Octeon_AesGcm_SetIV(aes, iv, ivSz);
-
- if (ret == 0)
- ret = Octeon_AesGcm_SetAAD(aes, aad, aadSz);
-
- if (ret == 0)
- ret = Octeon_AesGcm_SetEncrypt(aes, in, out, inSz, 1);
-
- if (ret == 0)
- ret = Octeon_AesGcm_Finalize(aes, inSz, aadSz, tag);
-
- return ret;
-}
-
-
-static int Octeon_AesGcm_Decrypt(Aes* aes, byte* in, byte* out, word32 inSz,
- byte* iv, word32 ivSz, byte* aad, word32 aadSz, byte* tag)
-{
- int ret = 0;
-
- if (aes == NULL)
- ret = BAD_FUNC_ARG;
-
- if (ret == 0)
- ret = Octeon_AesGcm_SetKey(aes);
-
- if (ret == 0)
- ret = Octeon_AesGcm_SetIV(aes, iv, ivSz);
-
- if (ret == 0)
- ret = Octeon_AesGcm_SetAAD(aes, aad, aadSz);
-
- if (ret == 0)
- ret = Octeon_AesGcm_SetEncrypt(aes, in, out, inSz, 0);
-
- if (ret == 0)
- ret = Octeon_AesGcm_Finalize(aes, inSz, aadSz, tag);
-
- return ret;
-}
-
-#endif /* HAVE_AESGCM */
-
-#endif /* !NO_AES */
-
-#ifdef WOLF_CRYPTO_CB
-
-#include <wolfssl/wolfcrypt/cryptocb.h>
-
-
-static int myCryptoDevCb(int devIdArg, wc_CryptoInfo* info, void* ctx)
-{
- int ret = NOT_COMPILED_IN; /* return this to bypass HW and use SW */
-
- if (info == NULL)
- return BAD_FUNC_ARG;
-
-#ifdef DEBUG_WOLFSSL
- printf("CryptoDevCb: Algo Type %d\n", info->algo_type);
-#endif
-
- if (info->algo_type == WC_ALGO_TYPE_CIPHER) {
-#if !defined(NO_AES) || !defined(NO_DES3)
- #ifdef HAVE_AESGCM
- if (info->cipher.type == WC_CIPHER_AES_GCM) {
- if (info->cipher.enc) {
- ret = Octeon_AesGcm_Encrypt(
- info->cipher.aesgcm_enc.aes,
- (byte*)info->cipher.aesgcm_enc.in,
- (byte*)info->cipher.aesgcm_enc.out,
- info->cipher.aesgcm_enc.sz,
- (byte*)info->cipher.aesgcm_enc.iv,
- info->cipher.aesgcm_enc.ivSz,
- (byte*)info->cipher.aesgcm_enc.authIn,
- info->cipher.aesgcm_enc.authInSz,
- (byte*)info->cipher.aesgcm_enc.authTag);
- }
- else {
- ret = Octeon_AesGcm_Decrypt(
- info->cipher.aesgcm_dec.aes,
- (byte*)info->cipher.aesgcm_dec.in,
- (byte*)info->cipher.aesgcm_dec.out,
- info->cipher.aesgcm_dec.sz,
- (byte*)info->cipher.aesgcm_dec.iv,
- info->cipher.aesgcm_dec.ivSz,
- (byte*)info->cipher.aesgcm_dec.authIn,
- info->cipher.aesgcm_dec.authInSz,
- (byte*)info->cipher.aesgcm_dec.authTag);
- }
- }
- #endif /* HAVE_AESGCM */
- #ifdef HAVE_AES_CBC
- if (info->cipher.type == WC_CIPHER_AES_CBC) {
- if (info->cipher.enc) {
- ret = Octeon_AesCbc_Encrypt(
- info->cipher.aescbc.aes,
- (word64*)info->cipher.aescbc.in,
- (word64*)info->cipher.aescbc.out,
- info->cipher.aescbc.sz);
- }
- else {
- ret = Octeon_AesCbc_Decrypt(
- info->cipher.aescbc.aes,
- (word64*)info->cipher.aescbc.in,
- (word64*)info->cipher.aescbc.out,
- info->cipher.aescbc.sz);
- }
- }
- #endif /* HAVE_AES_CBC */
- #ifndef NO_DES3
- if (info->cipher.type == WC_CIPHER_DES3) {
- if (info->cipher.enc) {
- ret = Octeon_Des3_CbcEncrypt(
- info->cipher.des3.des,
- (word64*)info->cipher.des3.in,
- (word64*)info->cipher.des3.out,
- info->cipher.des3.sz);
- }
- else {
- ret = Octeon_Des3_CbcDecrypt(
- info->cipher.des3.des,
- (word64*)info->cipher.des3.in,
- (word64*)info->cipher.des3.out,
- info->cipher.des3.sz);
- }
- }
- #endif /* !NO_DES3 */
-#endif /* !NO_AES || !NO_DES3 */
- }
-
- (void)devIdArg;
- (void)ctx;
-
- return ret;
-}
-
-int wc_CryptoCb_InitOcteon(void)
-{
- if (wc_CryptoCb_RegisterDevice(devId, myCryptoDevCb, NULL) < 0) {
- return INVALID_DEVID;
- }
-
- return devId;
-}
-
-void wc_CryptoCb_CleanupOcteon(int* id)
-{
- wc_CryptoCb_UnRegisterDevice(*id);
- *id = INVALID_DEVID;
-}
-
-#endif /* WOLF_CRYPTO_CB */
-
-#endif /* HAVE_CAVIUM_OCTEON_SYNC */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/README.md b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/README.md
deleted file mode 100644
index 7844dca86..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/README.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# Description
-
-Used to build with cryptodev-linux library with Linux OS.
-
-# Quick Start
-
-## Installing cryptodev module
-
-If not already installed then the cryptodev-linux module will need installed.
-
-```
-git clone https://github.com/cryptodev-linux/cryptodev-linux.git
-cd cryptodev-linux
-make
-sudo make install
-modprobe cryptodev
-```
-
-
-## Options for building wolfSSL
-
-For default build with all supported features use:
-
-```
-./configure --enable-cryptodev
-```
-
-Or for more control over features used:
-
-```
-./configure --enable-devcrypto=cbc
-./configure --enable-devcrypto=hash
-./configure --enable-devcrypto=aes
-./configure --enable-devcrypto=all
-```
-
-Then build the wolfSSL library with:
-
-```
-make
-sudo make install
-./wolfcrypt/test/testwolfcrypt
-```
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/devcrypto_aes.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/devcrypto_aes.c
deleted file mode 100644
index 1f6d09d72..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/devcrypto_aes.c
+++ /dev/null
@@ -1,384 +0,0 @@
-/* devcrypto_aes.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-
-#if !defined(NO_AES) && defined(WOLFSSL_DEVCRYPTO)
-
-#include <wolfssl/wolfcrypt/aes.h>
-#include <wolfssl/wolfcrypt/logging.h>
-#include <wolfssl/wolfcrypt/port/devcrypto/wc_devcrypto.h>
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-
-#if defined(HAVE_AES_CBC) && defined(WOLFSSL_DEVCRYPTO_CBC)
-int wc_AesCbcEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
-{
- struct crypt_op crt;
- int ret;
-
- if (aes == NULL || out == NULL || in == NULL) {
- return BAD_FUNC_ARG;
- }
-
- /* encrypt only up to AES block size of date */
- sz = sz - (sz % AES_BLOCK_SIZE);
- if (aes->ctx.cfd == -1) {
- ret = wc_DevCryptoCreate(&aes->ctx, CRYPTO_AES_CBC,
- (byte*)aes->devKey, aes->keylen);
- if (ret != 0)
- return ret;
- }
- wc_SetupCryptSym(&crt, &aes->ctx, (byte*)in, sz, out, (byte*)aes->reg,
- COP_ENCRYPT);
- ret = ioctl(aes->ctx.cfd, CIOCCRYPT, &crt);
- if (ret != 0) {
- return WC_DEVCRYPTO_E;
- }
-
- /* store iv for next call */
- XMEMCPY(aes->reg, out + sz - AES_BLOCK_SIZE, AES_BLOCK_SIZE);
-
- return 0;
-}
-
-#ifdef HAVE_AES_DECRYPT
-int wc_AesCbcDecrypt(Aes* aes, byte* out, const byte* in, word32 sz)
-{
- struct crypt_op crt;
- int ret;
-
- if (aes == NULL || out == NULL || in == NULL || sz % AES_BLOCK_SIZE != 0) {
- return BAD_FUNC_ARG;
- }
-
- XMEMCPY(aes->tmp, in + sz - AES_BLOCK_SIZE, AES_BLOCK_SIZE);
- if (aes->ctx.cfd == -1) {
- ret = wc_DevCryptoCreate(&aes->ctx, CRYPTO_AES_CBC,
- (byte*)aes->devKey, aes->keylen);
- if (ret != 0)
- return ret;
- }
- wc_SetupCryptSym(&crt, &aes->ctx, (byte*)in, sz, out, (byte*)aes->reg,
- COP_DECRYPT);
- ret = ioctl(aes->ctx.cfd, CIOCCRYPT, &crt);
- if (ret != 0) {
- return WC_DEVCRYPTO_E;
- }
-
- XMEMCPY(aes->reg, aes->tmp, AES_BLOCK_SIZE);
- return 0;
-}
-#endif /* HAVE_AES_DECRYPT */
-#endif /* HAVE_AES_CBC && WOLFSSL_DEVCRYPTO_CBC */
-
-
-#ifdef WOLFSSL_DEVCRYPTO_AES /* all AES algorithms supported */
-int wc_AesSetKey(Aes* aes, const byte* userKey, word32 keylen,
- const byte* iv, int dir)
-{
-#if defined(AES_MAX_KEY_SIZE)
- const word32 max_key_len = (AES_MAX_KEY_SIZE / 8);
-#endif
-
- if (aes == NULL ||
- !((keylen == 16) || (keylen == 24) || (keylen == 32))) {
- return BAD_FUNC_ARG;
- }
-
-#if defined(AES_MAX_KEY_SIZE)
- /* Check key length */
- if (keylen > max_key_len) {
- return BAD_FUNC_ARG;
- }
-#endif
- aes->keylen = keylen;
- aes->rounds = keylen/4 + 6;
-
-#ifdef WOLFSSL_AES_COUNTER
- aes->left = 0;
-#endif
- aes->ctx.cfd = -1;
- XMEMCPY(aes->devKey, userKey, keylen);
-
- (void)dir;
- return wc_AesSetIV(aes, iv);
-}
-
-
-/* AES-DIRECT */
-#if defined(WOLFSSL_AES_DIRECT) || defined(HAVE_AES_ECB)
-
-/* common code between ECB encrypt and decrypt
- * returns 0 on success */
-static int wc_DevCrypto_AesDirect(Aes* aes, byte* out, const byte* in,
- word32 sz, int dir)
-{
- int ret;
- struct crypt_op crt;
-
- if (aes == NULL || out == NULL || in == NULL) {
- return BAD_FUNC_ARG;
- }
-
- if (aes->ctx.cfd == -1) {
- ret = wc_DevCryptoCreate(&aes->ctx, CRYPTO_AES_ECB, (byte*)aes->devKey,
- aes->keylen);
- if (ret != 0)
- return ret;
- }
-
- wc_SetupCryptSym(&crt, &aes->ctx, (byte*)in, sz, out, NULL, dir);
- ret = ioctl(aes->ctx.cfd, CIOCCRYPT, &crt);
- if (ret != 0) {
- return WC_DEVCRYPTO_E;
- }
- return 0;
-}
-#endif
-
-
-#if defined(WOLFSSL_AES_DIRECT) || defined(HAVE_AESCCM)
-void wc_AesEncryptDirect(Aes* aes, byte* out, const byte* in)
-{
- wc_DevCrypto_AesDirect(aes, out, in, AES_BLOCK_SIZE, COP_ENCRYPT);
-}
-
-
-void wc_AesDecryptDirect(Aes* aes, byte* out, const byte* in)
-{
- wc_DevCrypto_AesDirect(aes, out, in, AES_BLOCK_SIZE, COP_DECRYPT);
-}
-
-
-int wc_AesSetKeyDirect(Aes* aes, const byte* userKey, word32 keylen,
- const byte* iv, int dir)
-{
- return wc_AesSetKey(aes, userKey, keylen, iv, dir);
-}
-#endif
-
-
-/* AES-CTR */
-#if defined(WOLFSSL_AES_COUNTER)
-
-/* Increment AES counter */
-static WC_INLINE void IncrementAesCounter(byte* inOutCtr)
-{
- /* in network byte order so start at end and work back */
- int i;
- for (i = AES_BLOCK_SIZE - 1; i >= 0; i--) {
- if (++inOutCtr[i]) /* we're done unless we overflow */
- return;
- }
-}
-
-int wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
-{
- int ret;
- struct crypt_op crt;
- byte* tmp;
-
- if (aes == NULL || out == NULL || in == NULL) {
- return BAD_FUNC_ARG;
- }
-
- /* consume any unused bytes left in aes->tmp */
- tmp = (byte*)aes->tmp + AES_BLOCK_SIZE - aes->left;
- while (aes->left && sz) {
- *(out++) = *(in++) ^ *(tmp++);
- aes->left--;
- sz--;
- }
-
- if (aes->ctx.cfd == -1) {
- ret = wc_DevCryptoCreate(&aes->ctx, CRYPTO_AES_CTR, (byte*)aes->devKey,
- aes->keylen);
- if (ret != 0)
- return ret;
- }
-
- if (sz > 0) {
- /* clear previously leftover data */
- tmp = (byte*)aes->tmp;
- XMEMSET(tmp, 0, AES_BLOCK_SIZE);
-
- /* update IV */
- wc_SetupCryptSym(&crt, &aes->ctx, (byte*)in, sz, out, (byte*)aes->reg,
- COP_ENCRYPT);
- ret = ioctl(aes->ctx.cfd, CIOCCRYPT, &crt);
- if (ret != 0) {
- return WC_DEVCRYPTO_E;
- }
-
- /* adjust counter after call to hardware */
- while (sz >= AES_BLOCK_SIZE) {
- IncrementAesCounter((byte*)aes->reg);
- sz -= AES_BLOCK_SIZE;
- out += AES_BLOCK_SIZE;
- in += AES_BLOCK_SIZE;
- }
- }
-
- /* create key stream for later if needed */
- if (sz > 0) {
- Aes tmpAes;
- wc_AesSetKey(&tmpAes, (byte*)aes->devKey, aes->keylen, (byte*)aes->reg,
- AES_ENCRYPTION);
- wc_AesEncryptDirect(&tmpAes, (byte*)aes->tmp, (const byte*)aes->reg);
- wc_AesFree(&tmpAes);
- IncrementAesCounter((byte*)aes->reg);
-
- aes->left = AES_BLOCK_SIZE - (sz % AES_BLOCK_SIZE);
- }
-
- return 0;
-}
-#endif /* WOLFSSL_AES_COUNTER */
-
-
-#ifdef HAVE_AESGCM
-
-int wc_AesGcmSetKey(Aes* aes, const byte* key, word32 len)
-{
- return wc_AesSetKey(aes, key, len, NULL, AES_ENCRYPTION);
-}
-
-
-
-/* common code for AES-GCM encrypt/decrypt */
-static int wc_DevCrypto_AesGcm(Aes* aes, byte* out, byte* in, word32 sz,
- const byte* iv, word32 ivSz,
- byte* authTag, word32 authTagSz,
- const byte* authIn, word32 authInSz,
- int dir)
-{
- struct crypt_auth_op crt = {0};
- int ret;
- byte scratch[AES_BLOCK_SIZE];
-
- /* argument checks */
- if (aes == NULL || authTagSz > AES_BLOCK_SIZE) {
- return BAD_FUNC_ARG;
- }
-
- /* Account for NULL in/out buffers. Up to tag size is still written into
- * in/out buffers */
- if (out == NULL)
- out = scratch;
- if (in == NULL)
- in = scratch;
-
- XMEMSET(scratch, 0, AES_BLOCK_SIZE);
- if (aes->ctx.cfd == -1) {
- ret = wc_DevCryptoCreate(&aes->ctx, CRYPTO_AES_GCM, (byte*)aes->devKey,
- aes->keylen);
- if (ret != 0)
- return ret;
- }
-
- /* if decrypting then the tag is expected to be at the end of "in" buffer */
- if (dir == COP_DECRYPT) {
- XMEMCPY(in + sz, authTag, authTagSz);
- sz += authTagSz;
- }
- else{
- /* get full tag from hardware */
- authTagSz = AES_BLOCK_SIZE;
- }
- wc_SetupCryptAead(&crt, &aes->ctx, (byte*)in, sz, out, (byte*)iv, ivSz,
- dir, (byte*)authIn, authInSz, authTag, authTagSz);
- ret = ioctl(aes->ctx.cfd, CIOCAUTHCRYPT, &crt);
- if (ret != 0) {
- if (dir == COP_DECRYPT) {
- return AES_GCM_AUTH_E;
- }
- else {
- return WC_DEVCRYPTO_E;
- }
- }
-
- /* after encryption the tag has been placed at the end of "out" buffer */
- if (dir == COP_ENCRYPT) {
- XMEMCPY(authTag, out + sz, authTagSz);
- }
- return 0;
-}
-
-
-/* it is assumed that "out" buffer has enough room for cipher text + tag */
-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)
-{
- if (authTagSz < WOLFSSL_MIN_AUTH_TAG_SZ) {
- WOLFSSL_MSG("GcmEncrypt authTagSz too small error");
- return BAD_FUNC_ARG;
- }
-
- return wc_DevCrypto_AesGcm(aes, out, (byte*)in, sz, iv, ivSz,
- authTag, authTagSz, authIn, authInSz,
- COP_ENCRYPT);
-}
-
-#if defined(HAVE_AES_DECRYPT) || defined(HAVE_AESGCM_DECRYPT)
-/* it is assumed that "in" buffer has enough room for cipher text + tag */
-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)
-{
- return wc_DevCrypto_AesGcm(aes, out, (byte*)in, sz, iv, ivSz,
- (byte*)authTag, authTagSz, authIn, authInSz,
- COP_DECRYPT);
-}
-#endif /* HAVE_AES_DECRYPT || HAVE_AESGCM_DECRYPT */
-#endif /* HAVE_AESGCM */
-
-
-#ifdef HAVE_AES_ECB
-int wc_AesEcbEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
-{
- return wc_DevCrypto_AesDirect(aes, out, in, sz, COP_ENCRYPT);
-}
-
-
-int wc_AesEcbDecrypt(Aes* aes, byte* out, const byte* in, word32 sz)
-{
- return wc_DevCrypto_AesDirect(aes, out, in, sz, COP_DECRYPT);
-}
-#endif /* HAVE_AES_ECB */
-#endif /* WOLFSSL_DEVCRYPTO_AES */
-#endif /* !NO_AES && WOLFSSL_DEVCRYPTO */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/devcrypto_hash.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/devcrypto_hash.c
deleted file mode 100644
index f73224dd8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/devcrypto_hash.c
+++ /dev/null
@@ -1,248 +0,0 @@
-/* devcrypto_hash.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#if defined(WOLFSSL_DEVCRYPTO_HASH)
-
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/logging.h>
-#include <wolfssl/wolfcrypt/port/devcrypto/wc_devcrypto.h>
-
-#if !defined(NO_SHA256)
-#include <wolfssl/wolfcrypt/sha256.h>
-#endif
-
-/* dereference structure based on type to get cryptodev context pointer
- * can return NULL on fail case */
-static WC_CRYPTODEV* GetHashContext(void* ctx, int type)
-{
- switch (type) {
- case CRYPTO_SHA2_256:
- return &((wc_Sha256*)ctx)->ctx;
-
- default:
- return NULL;
- }
-
- return NULL;
-}
-
-
-/* generic hash initialization
- * key is for hmac algorithms and keySz is for the size of key buffer
- * key should be null in the case of non hmac algorithms
- * return 0 on success */
-static int HashInit(void* ctx, int type, byte* key, word32 keySz)
-{
- WC_CRYPTODEV* cdev;
-
- if ((cdev = GetHashContext(ctx, type)) == NULL) {
- WOLFSSL_MSG("Unsupported hash type");
- return BAD_FUNC_ARG;
- }
-
- return wc_DevCryptoCreate(cdev, type, key, keySz);
-}
-
-
-/* generic function for updated hash structure
- * returns 0 on success */
-static int HashUpdate(void* ctx, int type, const byte* input, word32 inputSz)
-{
- WC_CRYPTODEV* dev;
- struct crypt_op crt;
- byte digest[64];
-
- if (inputSz == 0) {
- return 0;
- }
-
- if ((dev = GetHashContext(ctx, type)) == NULL) {
- WOLFSSL_MSG("Unsupported hash type");
- return BAD_FUNC_ARG;
- }
-
- wc_SetupCrypt(&crt, dev, (byte*)input, inputSz, NULL, digest, COP_FLAG_UPDATE);
- if (ioctl(dev->cfd, CIOCCRYPT, &crt)) {
- WOLFSSL_MSG("Error with call to ioctl");
- return WC_DEVCRYPTO_E;
- }
-
- return 0;
-}
-
-
-/* generic function for getting final digest value */
-static int GetDigest(void* ctx, int type, byte* out)
-{
- WC_CRYPTODEV* dev;
- struct crypt_op crt;
-
- if ((dev = GetHashContext(ctx, type)) == NULL) {
- WOLFSSL_MSG("Unsupported hash type");
- return BAD_FUNC_ARG;
- }
-
- wc_SetupCrypt(&crt, dev, NULL, 0, NULL, out, COP_FLAG_FINAL);
- if (ioctl(dev->cfd, CIOCCRYPT, &crt)) {
- WOLFSSL_MSG("Error with call to ioctl");
- return WC_DEVCRYPTO_E;
- }
-
- return 0;
-}
-
-#if !defined(NO_SHA256)
-
-int wc_InitSha256_ex(wc_Sha256* sha, void* heap, int devId)
-{
- if (sha == NULL) {
- return BAD_FUNC_ARG;
- }
-
- (void)devId; /* no async for now */
- XMEMSET(sha, 0, sizeof(wc_Sha256));
- sha->heap = heap;
-
- return HashInit((void*)sha, CRYPTO_SHA2_256, NULL, 0);
-}
-
-
-int wc_Sha256Update(wc_Sha256* sha, const byte* in, word32 sz)
-{
- if (sha == NULL || (sz > 0 && in == NULL)) {
- return BAD_FUNC_ARG;
- }
-
-#ifdef WOLFSSL_DEVCRYPTO_HASH_KEEP
- /* keep full message to hash at end instead of incremental updates */
- if (sha->len < sha->used + sz) {
- if (sha->msg == NULL) {
- sha->msg = (byte*)XMALLOC(sha->used + sz, sha->heap,
- DYNAMIC_TYPE_TMP_BUFFER);
- } else {
- byte* pt = (byte*)XREALLOC(sha->msg, sha->used + sz, sha->heap,
- DYNAMIC_TYPE_TMP_BUFFER);
- if (pt == NULL) {
- return MEMORY_E;
- }
- sha->msg = pt;
- }
- if (sha->msg == NULL) {
- return MEMORY_E;
- }
- sha->len = sha->used + sz;
- }
- XMEMCPY(sha->msg + sha->used, in, sz);
- sha->used += sz;
- return 0;
-#else
- return HashUpdate(sha, CRYPTO_SHA2_256, in, sz);
-#endif
-}
-
-
-int wc_Sha256Final(wc_Sha256* sha, byte* hash)
-{
- int ret;
-
- if (sha == NULL || hash == NULL) {
- return BAD_FUNC_ARG;
- }
-
- /* help static analysis tools out */
- XMEMSET(hash, 0, WC_SHA256_DIGEST_SIZE);
-#ifdef WOLFSSL_DEVCRYPTO_HASH_KEEP
- /* keep full message to hash at end instead of incremental updates */
- if ((ret = HashUpdate(sha, CRYPTO_SHA2_256, sha->msg, sha->used)) < 0) {
- return ret;
- }
- XFREE(sha->msg, sha->heap, DYNAMIC_TYPE_TMP_BUFFER);
- sha->msg = NULL;
-#endif
- ret = GetDigest(sha, CRYPTO_SHA2_256, hash);
- if (ret != 0) {
- return ret;
- }
-
- wc_Sha256Free(sha);
- return wc_InitSha256_ex(sha, sha->heap, 0);
-}
-
-
-int wc_Sha256GetHash(wc_Sha256* sha, byte* hash)
-{
- if (sha == NULL || hash == NULL) {
- return BAD_FUNC_ARG;
- }
-
-#ifdef WOLFSSL_DEVCRYPTO_HASH_KEEP
- {
- int ret;
- wc_Sha256 cpy;
- wc_Sha256Copy(sha, &cpy);
-
- if ((ret = HashUpdate(&cpy, CRYPTO_SHA2_256, cpy.msg, cpy.used)) == 0) {
- /* help static analysis tools out */
- XMEMSET(hash, 0, WC_SHA256_DIGEST_SIZE);
- ret = GetDigest(&cpy, CRYPTO_SHA2_256, hash);
- }
- wc_Sha256Free(&cpy);
- return ret;
- }
-#else
- (void)sha;
- (void)hash;
-
- WOLFSSL_MSG("Compile with WOLFSSL_DEVCRYPTO_HASH_KEEP for this feature");
- return NOT_COMPILED_IN;
-#endif
-}
-
-int wc_Sha256Copy(wc_Sha256* src, wc_Sha256* dst)
-{
- if (src == NULL || dst == NULL) {
- return BAD_FUNC_ARG;
- }
-
- wc_InitSha256_ex(dst, src->heap, 0);
-#ifdef WOLFSSL_DEVCRYPTO_HASH_KEEP
- dst->len = src->len;
- dst->used = src->used;
- dst->msg = (byte*)XMALLOC(src->len, dst->heap, DYNAMIC_TYPE_TMP_BUFFER);
- if (dst->msg == NULL) {
- return MEMORY_E;
- }
- XMEMCPY(dst->msg, src->msg, src->len);
-#endif
-
- return 0;
-}
-
-#endif /* !NO_SHA256 */
-
-#endif /* WOLFSSL_DEVCRYPTO */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/wc_devcrypto.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/wc_devcrypto.c
deleted file mode 100644
index 2c80518a3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/devcrypto/wc_devcrypto.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/* wc_devcrypto.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#if defined(WOLFSSL_DEVCRYPTO)
-
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/logging.h>
-#include <wolfssl/wolfcrypt/port/devcrypto/wc_devcrypto.h>
-
-/* sets up a context for talking to /dev/crypto
- * return 0 on success */
-int wc_DevCryptoCreate(WC_CRYPTODEV* ctx, int type, byte* key, word32 keySz)
-{
- int fd;
- int isHash = 0; /* flag for if hashing algorithm */
-
- if (ctx == NULL) {
- return BAD_FUNC_ARG;
- }
-
- /* sanity check on session type before creating descriptor */
- XMEMSET(ctx, 0, sizeof(WC_CRYPTODEV));
- switch (type) {
- case CRYPTO_SHA1:
- case CRYPTO_SHA2_256:
- isHash = 1;
- break;
-
- #ifndef NO_AES
- case CRYPTO_AES_CTR:
- case CRYPTO_AES_ECB:
- case CRYPTO_AES_GCM:
- case CRYPTO_AES_CBC:
- isHash = 0;
- break;
- #endif
-
- default:
- WOLFSSL_MSG("Unknown / Unimplemented algorithm type");
- return BAD_FUNC_ARG;
- }
-
- /* create descriptor */
- if ((fd = open("/dev/crypto", O_RDWR, 0)) < 0) {
- WOLFSSL_MSG("Error opening /dev/crypto is cryptodev module loaded?");
- return WC_DEVCRYPTO_E;
- }
- if (fcntl(fd, F_SETFD, 1) == -1) {
- WOLFSSL_MSG("Error setting F_SETFD with fcntl");
- close(fd);
- return WC_DEVCRYPTO_E;
- }
-
- /* set up session */
- ctx->cfd = fd;
-
- if (isHash) {
- ctx->sess.mac = type;
- }
- else {
- ctx->sess.cipher = type;
- ctx->sess.key = (void*)key;
- ctx->sess.keylen = keySz;
- }
-
- if (ioctl(ctx->cfd, CIOCGSESSION, &ctx->sess)) {
- close(fd);
- WOLFSSL_MSG("Error starting cryptodev session");
- return WC_DEVCRYPTO_E;
- }
-
- (void)key;
- (void)keySz;
-
- return 0;
-}
-
-
-/* free up descriptor and session used with ctx */
-void wc_DevCryptoFree(WC_CRYPTODEV* ctx)
-{
- if (ctx != NULL && ctx->cfd >= 0) {
- if (ioctl(ctx->cfd, CIOCFSESSION, &ctx->sess.ses)) {
- WOLFSSL_MSG("Error stopping cryptodev session");
- }
- close(ctx->cfd);
- }
-}
-
-
-/* setup crypt_op structure */
-void wc_SetupCrypt(struct crypt_op* crt, WC_CRYPTODEV* dev,
- byte* src, int srcSz, byte* dst, byte* dig, int flag)
-
-{
- XMEMSET(crt, 0, sizeof(struct crypt_op));
- crt->ses = dev->sess.ses;
- crt->src = src;
- crt->len = srcSz;
- crt->dst = dst;
- crt->mac = dig;
- crt->flags = flag;
-}
-
-
-/* setup crypt_op structure for symmetric key operations */
-void wc_SetupCryptSym(struct crypt_op* crt, WC_CRYPTODEV* dev,
- byte* src, word32 srcSz, byte* dst, byte* iv, int flag)
-
-{
- XMEMSET(crt, 0, sizeof(struct crypt_op));
- crt->ses = dev->sess.ses;
- crt->src = src;
- crt->len = srcSz;
- crt->dst = dst;
- crt->iv = iv;
- crt->op = flag;
-}
-
-
-/* setup crypt_auth_op structure for aead operations */
-void wc_SetupCryptAead(struct crypt_auth_op* crt, WC_CRYPTODEV* dev,
- byte* src, word32 srcSz, byte* dst, byte* iv, word32 ivSz, int flag,
- byte* authIn, word32 authInSz, byte* authTag, word32 authTagSz)
-{
- XMEMSET(crt, 0, sizeof(struct crypt_op));
- crt->ses = dev->sess.ses;
- crt->src = src;
- crt->len = srcSz;
- crt->dst = dst;
- crt->iv = iv;
- crt->iv_len = ivSz;
- crt->op = flag;
-
- /* also set auth in and tag */
- crt->auth_src = authIn;
- crt->auth_len = authInSz;
- crt->tag = authTag;
- crt->tag_len = authTagSz;
-}
-#endif /* WOLFSSL_DEVCRYPTO */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/README.md b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/README.md
deleted file mode 100644
index 4b5d971ba..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Intel QuickAssist Adapter Asynchronous Support
-
-Please contact wolfSSL at info@wolfssl.com to request an evaluation.
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/quickassist.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/quickassist.c
deleted file mode 100644
index e69de29bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/quickassist.c
+++ /dev/null
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/quickassist_mem.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/quickassist_mem.c
deleted file mode 100644
index e69de29bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/quickassist_mem.c
+++ /dev/null
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/quickassist_sync.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/quickassist_sync.c
deleted file mode 100644
index e03bca91f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/intel/quickassist_sync.c
+++ /dev/null
@@ -1,2004 +0,0 @@
-/* quickassist_sync.c
- *
- * Copyright (C) 2006-2020 wolfSSL Inc.
- *
- * This file is part of wolfSSL. (formerly known as CyaSSL)
- *
- * 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-1301, USA
- */
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifdef HAVE_INTEL_QA_SYNC
-
-#ifdef QAT_DEMO_MAIN
- #define QAT_DEBUG
-#endif
-
-
-#include <wolfssl/internal.h>
-#include <wolfssl/error-ssl.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#ifndef NO_AES
- #include <wolfssl/wolfcrypt/aes.h>
-#endif
-
-#include <wolfssl/wolfcrypt/cryptocb.h>
-#include <wolfssl/wolfcrypt/port/intel/quickassist_sync.h>
-
-#include "cpa.h"
-#include "cpa_cy_im.h"
-#include "cpa_cy_sym.h"
-#include "cpa_cy_rsa.h"
-#include "cpa_cy_ln.h"
-#include "cpa_cy_ecdh.h"
-#include "cpa_cy_ecdsa.h"
-#include "cpa_cy_dh.h"
-#include "cpa_cy_drbg.h"
-#include "cpa_cy_nrbg.h"
-#include "cpa_cy_prime.h"
-
-#include "icp_sal_user.h"
-#include "icp_sal_poll.h"
-
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-/* User space utils */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-#if 0
- /* Optional feature for partial QAT hashing support */
- /* This will process updates through hardware instead of caching them */
- #define QAT_HASH_ENABLE_PARTIAL
-#endif
-#ifdef QAT_HASH_ENABLE_PARTIAL
- #define MAX_QAT_HASH_BUFFERS 2
-#endif
-
-/* Detect QAT driver version */
-#if defined(CPA_CY_API_VERSION_NUM_MAJOR) && CPA_CY_API_VERSION_NUM_MAJOR > 1
- #define QAT_V2
-#endif
-
-#ifdef QAT_V2
- /* quickassist/utilities/libusdm_drv/qae_mem.h */
- /* Provides user-space API's for accessing NUMA allocated memory through usdm_drv */
- #include "qae_mem.h"
-#include "linux/include/qae_mem_utils.h"
-#endif
-
-#ifdef QAT_USE_POLLING_THREAD
- #include <pthread.h>
-#endif
-
-/* Tunable parameters */
-#ifndef QAT_PROCESS_NAME
- #define QAT_PROCESS_NAME "SSL"
-#endif
-#ifndef QAT_LIMIT_DEV_ACCESS
- #define QAT_LIMIT_DEV_ACCESS CPA_FALSE
-#endif
-#ifndef QAT_MAX_DEVICES
- #define QAT_MAX_DEVICES (1) /* maximum number of QAT cards */
-#endif
-
-#ifndef QAT_RETRY_LIMIT
- #define QAT_RETRY_LIMIT (100)
-#endif
-#ifndef QAT_POLL_RESP_QUOTA
- #define QAT_POLL_RESP_QUOTA (0) /* all pending */
-#endif
-
-#if !defined(NO_AES) || !defined(NO_DES3)
- #define QAT_ENABLE_CRYPTO
-#endif
-
-/* Pre-declarations */
-struct IntelQaDev;
-struct wc_CryptoInfo;
-struct WC_BIGINT;
-struct WC_RNG;
-
-
-#if defined(QAT_ENABLE_HASH) || defined(QAT_ENABLE_CRYPTO)
-/* symmetric context */
-typedef struct IntelQaSymCtx {
- CpaCySymOpData opData;
- CpaCySymSessionCtx symCtxSrc;
- CpaCySymSessionCtx symCtx;
- word32 symCtxSize;
-
- /* flags */
- word32 isOpen:1;
- word32 isCopy:1;
-} IntelQaSymCtx;
-#endif
-
-typedef void (*IntelQaFreeFunc)(struct IntelQaDev*);
-
-
-/* QuickAssist device */
-typedef struct IntelQaDev {
- CpaInstanceHandle handle;
- int devId;
- void* heap;
-
- /* callback return info */
- int ret;
- byte* out;
- union {
- word32* outLenPtr;
- word32 outLen;
- };
-
- /* operations */
- IntelQaFreeFunc freeFunc;
- union {
- #ifdef QAT_ENABLE_CRYPTO
- struct {
- IntelQaSymCtx ctx;
- CpaBufferList bufferList;
- CpaFlatBuffer flatBuffer;
- byte* authTag;
- word32 authTagSz;
- } cipher;
- #endif
- } op;
-
-#ifdef QAT_USE_POLLING_THREAD
- pthread_t pollingThread;
- byte pollingCy;
-#endif
-} IntelQaDev;
-
-
-/* Interface */
-static int IntelQaHardwareStart(const char*, int);
-static void IntelQaHardwareStop(void);
-static int IntelQaInit(void*);
-static void IntelQaDeInit(int);
-static int IntelQaNumInstances(void);
-static int IntelQaOpen(IntelQaDev*, int);
-static void IntelQaClose(IntelQaDev*);
-static int IntelQaDevCopy(IntelQaDev*, IntelQaDev*);
-static int IntelQaPoll(IntelQaDev*);
-static int IntelQaGetCyInstanceCount(void);
-
-#ifndef NO_AES
- #ifdef HAVE_AES_CBC
- static int IntelQaSymAesCbcEncrypt(IntelQaDev*, byte*,
- const byte*, word32, const byte*, word32, const byte*, word32);
- #ifdef HAVE_AES_DECRYPT
- static int IntelQaSymAesCbcDecrypt(IntelQaDev*, byte*,
- const byte*, word32, const byte*, word32, const byte*, word32);
- #endif /* HAVE_AES_DECRYPT */
- #endif /* HAVE_AES_CBC */
-
- #ifdef HAVE_AESGCM
- static int IntelQaSymAesGcmEncrypt(IntelQaDev*, byte*,
- const byte*, word32, const byte*, word32, const byte*, word32,
- byte*, word32, const byte*, word32);
- #ifdef HAVE_AES_DECRYPT
- static int IntelQaSymAesGcmDecrypt(IntelQaDev*, byte*,
- const byte*, word32, const byte*, word32, const byte*, word32,
- const byte*, word32, const byte*, word32);
- #endif /* HAVE_AES_DECRYPT */
- #endif /* HAVE_AESGCM */
-#endif /* !NO_AES */
-
-#ifndef NO_DES3
- static int IntelQaSymDes3CbcEncrypt(IntelQaDev*, byte*,
- const byte*, word32, const byte*, word32, const byte* iv, word32);
- static int IntelQaSymDes3CbcDecrypt(IntelQaDev* dev, byte*,
- const byte*, word32, const byte*, word32, const byte* iv, word32);
-#endif /*! NO_DES3 */
-
-#ifdef WOLF_CRYPTO_CB
- static int IntelQaSymSync_CryptoDevCb(int, struct wc_CryptoInfo*,
- void*);
-#endif /* WOLF_CRYPTO_CB */
-
-
-#ifdef QAT_DEBUG
- #define QLOG(...) do { printf(__VA_ARGS__); } while (0)
-#else
- #define QLOG(...)
-#endif
-
-
-#define OS_HOST_TO_NW_32(uData) ByteReverseWord32(uData)
-
-
-static CpaInstanceHandle* g_cyInstances = NULL;
-static CpaInstanceInfo2* g_cyInstanceInfo = NULL;
-static Cpa32U* g_cyInstMap = NULL;
-static Cpa16U g_numInstances = 0;
-static Cpa16U g_instCounter = 0;
-static CpaBoolean g_cyServiceStarted = CPA_FALSE;
-#ifdef QAT_USE_POLLING_CHECK
- static CpaBoolean* g_cyPolling = NULL;
- static pthread_mutex_t* g_PollLock;
-#endif
-static volatile int g_initCount = 0;
-static pthread_mutex_t g_Hwlock = PTHREAD_MUTEX_INITIALIZER;
-
-
-typedef struct qatCapabilities {
- /* capabilities */
- word32 supPartial:1;
- word32 supSha3:1;
-} qatCapabilities_t;
-static qatCapabilities_t g_qatCapabilities = {0};
-
-
-#if defined(QAT_ENABLE_CRYPTO)
- static int IntelQaSymClose(IntelQaDev* dev, int doFree);
-#endif
-
-
-extern Cpa32U osalLogLevelSet(Cpa32U level);
-
-
-static IntelQaDev qaDev;
-
-
-/* -------------------------------------------------------------------------- */
-/* Polling */
-/* -------------------------------------------------------------------------- */
-
-static WC_INLINE int SyncSleep(word32 ms)
-{
- int ret = 0;
- struct timespec resTime, remTime;
- resTime.tv_sec = ms/1000;
- resTime.tv_nsec = (ms%1000)*1000000;
- do {
- ret = nanosleep(&resTime, &remTime);
- resTime = remTime;
- } while ((ret!=0) && (errno == EINTR));
-
- if (ret != 0) {
- QLOG("nanoSleep failed with code %d\n", ret);
- return BAD_FUNC_ARG;
- }
-
- return ret;
-}
-
-#ifdef QAT_USE_POLLING_THREAD
-static void* IntelQaPollingThread(void* context)
-{
- IntelQaDev* dev = (IntelQaDev*)context;
-
- QLOG("Polling Thread Start\n");
- while (dev->pollingCy) {
- icp_sal_CyPollInstance(dev->handle, QAT_POLL_RESP_QUOTA);
- SyncSleep(10);
- }
- QLOG("Polling Thread Exit\n");
- pthread_exit(NULL);
-}
-
-static CpaStatus IntelQaStartPollingThread(IntelQaDev* dev)
-{
- if (dev->pollingCy == 0) {
- dev->pollingCy = 1;
-
- QLOG("Polling Thread Created\n");
-
- if (pthread_create(&dev->pollingThread, NULL, IntelQaPollingThread,
- (void*)dev) != 0) {
- QLOG("Failed create polling thread!\n");
- return CPA_STATUS_FAIL;
- }
- }
- return CPA_STATUS_SUCCESS;
-}
-
-static void IntelQaStopPollingThread(IntelQaDev* dev)
-{
- dev->pollingCy = 0;
- pthread_join(dev->pollingThread, 0);
-}
-#endif /* QAT_USE_POLLING_THREAD */
-
-
-/* -------------------------------------------------------------------------- */
-/* Device */
-/* -------------------------------------------------------------------------- */
-void IntelQaHardwareStop(void)
-{
- int i;
- CpaStatus status;
-
- g_initCount--; /* track de-init count */
- if (g_initCount != 0) {
- return;
- }
-
- if (g_cyServiceStarted == CPA_TRUE) {
- g_cyServiceStarted = CPA_FALSE;
- for (i=0; i<g_numInstances; i++) {
- status = cpaCyStopInstance(g_cyInstances[i]);
- if (status != CPA_STATUS_SUCCESS) {
- QLOG("IntelQA: Could not stop instance: %d\n"
- "\tInternal error has occur which probably can only be"
- "fixed by a reboot\n", i);
- }
- }
- }
-
- status = icp_sal_userStop();
- if (status != CPA_STATUS_SUCCESS) {
- QLOG("IntelQA: Could not stop sal for user space (status %d)\n",
- status);
- }
-
- if (g_cyInstMap) {
- XFREE(g_cyInstMap, NULL, DYNAMIC_TYPE_ASYNC);
- g_cyInstMap = NULL;
- }
-
- if (g_cyInstanceInfo) {
- XFREE(g_cyInstanceInfo, NULL, DYNAMIC_TYPE_ASYNC);
- g_cyInstanceInfo = NULL;
- }
-
-#ifdef QAT_USE_POLLING_CHECK
- if (g_cyPolling) {
- XFREE(g_cyPolling, NULL, DYNAMIC_TYPE_ASYNC);
- g_cyPolling = NULL;
- }
- if (g_PollLock) {
- for (i=0; i<g_numInstances; i++) {
- pthread_mutex_destroy(&g_PollLock[i]);
- }
- XFREE(g_PollLock, NULL, DYNAMIC_TYPE_ASYNC);
- g_PollLock = NULL;
- }
-#endif
-
- if (g_cyInstances) {
- XFREE(g_cyInstances, NULL, DYNAMIC_TYPE_ASYNC);
- g_cyInstances = NULL;
- g_numInstances = 0;
- }
-
- qaeMemDestroy();
-
- QLOG("IntelQA: Stop\n");
-}
-
-
-int IntelQaHardwareStart(const char* process_name, int limitDevAccess)
-{
- int ret = 0, i;
- CpaStatus status;
-
- g_initCount++;
- if (g_initCount > 1) {
- return 0;
- }
-
- status = qaeMemInit();
- if (status != CPA_STATUS_SUCCESS) {
- QLOG("IntelQA: Could not start qae mem for user space (status %d)\n"
- "\tHas the qaeMemDrv.ko module been loaded?\n",
- status);
- return ASYNC_INIT_E;
- }
-
- status = icp_sal_userStartMultiProcess(process_name,
- limitDevAccess ? CPA_TRUE : CPA_FALSE);
- if (status != CPA_STATUS_SUCCESS) {
- QLOG("IntelQA: Could not start sal for user space! status %d\n",
- status);
- ret = ASYNC_INIT_E; goto error;
- }
-
-#ifdef QAT_DEBUG
- /* optionally enable debugging */
- //osalLogLevelSet(8);
-#endif
-
- status = cpaCyGetNumInstances(&g_numInstances);
- if (status != CPA_STATUS_SUCCESS || g_numInstances == 0) {
- QLOG("IntelQA: Failed to get num of instances! status %d\n", status);
- ret = INVALID_DEVID; goto error;
- }
-
- /* Get handles / info */
- g_cyInstances = (CpaInstanceHandle*)XMALLOC(
- sizeof(CpaInstanceHandle) * g_numInstances, NULL, DYNAMIC_TYPE_ASYNC);
- if (g_cyInstances == NULL) {
- QLOG("IntelQA: Failed to allocate instances\n");
- ret = INVALID_DEVID; goto error;
- }
-
-#ifdef QAT_USE_POLLING_CHECK
- g_cyPolling = (CpaBoolean*)XMALLOC(sizeof(CpaBoolean) * g_numInstances, NULL,
- DYNAMIC_TYPE_ASYNC);
- if (g_cyPolling == NULL) {
- QLOG("IntelQA: Failed to allocate polling status\n");
- ret = INVALID_DEVID; goto error;
- }
- g_PollLock = (pthread_mutex_t*)XMALLOC(sizeof(pthread_mutex_t) *
- g_numInstances, NULL, DYNAMIC_TYPE_ASYNC);
- if (g_PollLock == NULL) {
- QLOG("IntelQA: Failed to allocate polling locks\n");
- ret = INVALID_DEVID; goto error;
- }
- for (i=0; i<g_numInstances; i++) {
- pthread_mutex_init(&g_PollLock[i], NULL);
- }
-#endif
-
- g_cyInstanceInfo = (CpaInstanceInfo2*)XMALLOC(
- sizeof(CpaInstanceInfo2) * g_numInstances, NULL, DYNAMIC_TYPE_ASYNC);
- if (g_cyInstanceInfo == NULL) {
- QLOG("IntelQA: Failed to allocate instance info\n");
- ret = INVALID_DEVID; goto error;
- }
-
- g_cyInstMap = (Cpa32U*)XMALLOC(
- sizeof(Cpa32U) * g_numInstances, NULL, DYNAMIC_TYPE_ASYNC);
- if (g_cyInstMap == NULL) {
- QLOG("IntelQA: Failed to allocate instance map\n");
- ret = INVALID_DEVID; goto error;
- }
-
- status = cpaCyGetInstances(g_numInstances, g_cyInstances);
- if (status != CPA_STATUS_SUCCESS) {
- QLOG("IntelQA: Failed to get IntelQA instances\n");
- ret = INVALID_DEVID; goto error;
- }
-
- /* start all instances */
- g_cyServiceStarted = CPA_TRUE;
- for (i=0; i<g_numInstances; i++) {
- Cpa32U coreAffinity = 0;
- CpaCySymCapabilitiesInfo capabilities;
- int j;
- XMEMSET(&capabilities, 0, sizeof(capabilities));
-
- status = cpaCyInstanceGetInfo2(g_cyInstances[i],
- &g_cyInstanceInfo[i]);
- if (status != CPA_STATUS_SUCCESS) {
- QLOG("IntelQA: Error getting instance info for %d\n", i);
- ret = INVALID_DEVID; goto error;
- }
-
- /* loop of the instanceInfo coreAffinity bitmask to find the core */
- for (j=0; j<CPA_MAX_CORES; j++) {
- if (CPA_BITMAP_BIT_TEST(g_cyInstanceInfo[i].coreAffinity, j)) {
- coreAffinity = i;
- break;
- }
- }
- g_cyInstMap[i] = coreAffinity;
-
- /* capabilities */
- status = cpaCySymQueryCapabilities(g_cyInstances[i], &capabilities);
- if (status == CPA_STATUS_SUCCESS) {
- g_qatCapabilities.supPartial = capabilities.partialPacketSupported;
- if (capabilities.partialPacketSupported != CPA_TRUE) {
- QLOG("Warning: QAT does not support partial packets!\n");
- }
- }
-
- QLOG("Inst %d, Node: %d, Affin: %u, Dev: %u, Accel %u, "
- "EE %u, BDF %02X:%02X:%02X, isPolled %d\n",
- i, g_cyInstanceInfo[i].nodeAffinity, coreAffinity,
- g_cyInstanceInfo[i].physInstId.packageId,
- g_cyInstanceInfo[i].physInstId.acceleratorId,
- g_cyInstanceInfo[i].physInstId.executionEngineId,
- (Cpa8U)((g_cyInstanceInfo[i].physInstId.busAddress) >> 8),
- (Cpa8U)((g_cyInstanceInfo[i].physInstId.busAddress)
- & 0xFF) >> 3,
- (Cpa8U)((g_cyInstanceInfo[i].physInstId.busAddress) & 3),
- g_cyInstanceInfo[i].isPolled);
-
- status = cpaCySetAddressTranslation(g_cyInstances[i],
- qaeVirtToPhysNUMA);
- if (status != CPA_STATUS_SUCCESS) {
- QLOG("IntelQA: Error setting memory config for inst %d\n", i);
- ret = INVALID_DEVID; goto error;
- }
-
- status = cpaCyStartInstance(g_cyInstances[i]);
- if (status != CPA_STATUS_SUCCESS) {
- QLOG("IntelQA: Error starting crypto instance %d\n", i);
- ret = INVALID_DEVID; goto error;
- }
- }
-
- QLOG("IntelQA: Instances %d\n", g_numInstances);
- return ret;
-
-error:
- IntelQaHardwareStop();
- return ret;
-}
-
-
-int IntelQaInit(void* threadId)
-{
- int ret;
- int devId;
- (void)threadId;
-
- ret = pthread_mutex_lock(&g_Hwlock);
- if (ret != 0) {
- QLOG("IntelQaInit: mutex lock failed! %d\n", ret);
- return BAD_MUTEX_E;
- }
-
- ret = IntelQaHardwareStart(QAT_PROCESS_NAME, QAT_LIMIT_DEV_ACCESS);
- if (ret != 0) {
- pthread_mutex_unlock(&g_Hwlock);
- return ret;
- }
-
- if (g_numInstances <= 0) {
- pthread_mutex_unlock(&g_Hwlock);
- return ASYNC_INIT_E;
- }
-
- /* assign device id */
- devId = (g_instCounter % g_numInstances);
- g_instCounter++;
-
- pthread_mutex_unlock(&g_Hwlock);
-
- return devId;
-}
-
-
-int IntelQaNumInstances(void)
-{
- return g_numInstances;
-}
-
-
-int IntelQaOpen(IntelQaDev* dev, int devId)
-{
- if (dev == NULL) {
- return BAD_FUNC_ARG;
- }
-
- /* clear device info */
- XMEMSET(dev, 0, sizeof(IntelQaDev));
-
- if (g_cyInstances == NULL) {
- QLOG("IntelQA not initialized\n");
- return ASYNC_INIT_E;
- }
-
- dev->devId = devId;
- dev->handle = g_cyInstances[devId];
-
-#ifdef QAT_USE_POLLING_THREAD
- /* start polling thread */
- IntelQaStartPollingThread(dev);
-#endif
-
- return 0;
-}
-
-
-#if defined(QAT_ENABLE_CRYPTO)
-
-static IntelQaSymCtx* IntelQaGetSymCtx(IntelQaDev* dev)
-{
- return &dev->op.cipher.ctx;
-}
-
-#endif
-
-
-void IntelQaClose(IntelQaDev* dev)
-{
- if (dev) {
- QLOG("IntelQaClose %p\n", dev);
- /* close any active session */
- IntelQaSymClose(dev, 1);
-
- #ifdef QAT_USE_POLLING_THREAD
- IntelQaStopPollingThread(dev);
- #endif
-
- dev->handle = NULL;
- }
-}
-
-void IntelQaDeInit(int devId)
-{
- (void)devId;
-
- if (pthread_mutex_lock(&g_Hwlock) == 0) {
- IntelQaHardwareStop();
- pthread_mutex_unlock(&g_Hwlock);
- }
-}
-
-int IntelQaPoll(IntelQaDev* dev)
-{
- int ret = 0;
- CpaStatus status;
-
-#ifdef QAT_USE_POLLING_CHECK
- pthread_mutex_t* lock = &g_PollLock[dev->qat.devId];
- if (pthread_mutex_lock(lock) == 0) {
- /* test if any other threads are polling */
- if (g_cyPolling[dev->qat.devId]) {
- pthread_mutex_unlock(lock);
-
- /* return success even though its busy, caller will treat as WC_PENDING_E */
- return 0;
- }
-
- g_cyPolling[dev->qat.devId] = 1;
- pthread_mutex_unlock(lock);
- }
-#endif
-
- status = icp_sal_CyPollInstance(dev->handle, QAT_POLL_RESP_QUOTA);
- if (status != CPA_STATUS_SUCCESS && status != CPA_STATUS_RETRY) {
- QLOG("IntelQa: Poll failure %d\n", status);
- ret = -1;
- }
-
- {
- if (dev->ret != WC_PENDING_E) {
- /* perform cleanup */
- IntelQaFreeFunc freeFunc = dev->freeFunc;
- QLOG("IntelQaOpFree: Dev %p, FreeFunc %p\n", dev, freeFunc);
- if (freeFunc) {
- dev->freeFunc = NULL;
- freeFunc(dev);
- }
- }
- }
-
-#ifdef QAT_USE_POLLING_CHECK
- /* indicate we are done polling */
- if (pthread_mutex_lock(lock) == 0) {
- g_cyPolling[dev->qat.devId] = 0;
- pthread_mutex_unlock(lock);
- }
-#endif
-
- return ret;
-}
-
-static int IntelQaPollBlockRet(IntelQaDev* dev, int ret_wait)
-{
- int ret;
-
- do {
- ret = IntelQaPoll(dev);
-
- if (dev->ret != ret_wait) {
- break;
- }
- } while (1);
- ret = dev->ret;
-
- return ret;
-}
-
-int IntelQaGetCyInstanceCount(void)
-{
- return g_numInstances;
-}
-
-static WC_INLINE int IntelQaHandleCpaStatus(IntelQaDev* dev, CpaStatus status,
- int* ret, byte isAsync, void* callback, int* retryCount)
-{
- int retry = 0;
-
- if (status == CPA_STATUS_SUCCESS) {
- if (isAsync && callback) {
- *ret = WC_PENDING_E;
- }
- else {
- *ret = IntelQaPollBlockRet(dev, WC_PENDING_E);
- }
- }
- else if (status == CPA_STATUS_RETRY) {
- (*retryCount)++;
- if ((*retryCount % (QAT_RETRY_LIMIT + 1)) == QAT_RETRY_LIMIT) {
- SyncSleep(10);
- }
- retry = 1;
- }
- else {
- *ret = ASYNC_OP_E;
- }
-
- return retry;
-}
-
-static WC_INLINE void IntelQaOpInit(IntelQaDev* dev, IntelQaFreeFunc freeFunc)
-{
- dev->ret = WC_PENDING_E;
- dev->freeFunc = freeFunc;
-}
-
-
-/* -------------------------------------------------------------------------- */
-/* Symmetric Algos */
-/* -------------------------------------------------------------------------- */
-
-#if defined(QAT_ENABLE_CRYPTO)
-
-static int IntelQaSymOpen(IntelQaDev* dev, CpaCySymSessionSetupData* setup,
- CpaCySymCbFunc callback)
-{
- int ret = 0;
- CpaStatus status = CPA_STATUS_SUCCESS;
- Cpa32U sessionCtxSize = 0;
- IntelQaSymCtx* ctx;
-
- /* arg check */
- if (dev == NULL || setup == NULL) {
- return BAD_FUNC_ARG;
- }
-
- ctx = IntelQaGetSymCtx(dev);
-
- /* Determine size of session context to allocate - use max size */
- status = cpaCySymSessionCtxGetSize(dev->handle, setup, &sessionCtxSize);
-
- if (ctx->symCtxSize > 0 && ctx->symCtxSize > sessionCtxSize) {
- QLOG("Symmetric context size error! Buf %d, Exp %d\n",
- ctx->symCtxSize, sessionCtxSize);
- return ASYNC_OP_E;
- }
-
- /* make sure session context is allocated */
- if (ctx->symCtx == NULL) {
- /* Allocate session context */
- ctx->symCtx = XMALLOC(sessionCtxSize, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA64);
- if (ctx->symCtx == NULL) {
- return MEMORY_E;
- }
- }
- ctx->symCtxSize = sessionCtxSize;
-
- if (!ctx->isOpen) {
- ctx->isOpen = 1;
-
- QLOG("IntelQaSymOpen: InitSession dev %p, symCtx %p\n",
- dev, ctx->symCtx);
-
- /* open symmetric session */
- status = cpaCySymInitSession(dev->handle, callback, setup, ctx->symCtx);
- if (status != CPA_STATUS_SUCCESS) {
- QLOG("cpaCySymInitSession failed! dev %p, status %d\n",
- dev, status);
- XFREE(ctx->symCtx, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA64);
- ctx->symCtx = NULL;
- return ASYNC_INIT_E;
- }
- }
-
- if (ctx->symCtxSrc == NULL) {
- ctx->symCtxSrc = ctx->symCtx;
- }
-
- QLOG("IntelQaSymOpen: dev %p, symCtx %p (src %p), "
- "symCtxSize %d, isCopy %d, isOpen %d\n",
- dev, ctx->symCtx, ctx->symCtxSrc, ctx->symCtxSize,
- ctx->isCopy, ctx->isOpen);
-
- return ret;
-}
-
-static int IntelQaSymClose(IntelQaDev* dev, int doFree)
-{
- int ret = 0;
- CpaStatus status = CPA_STATUS_SUCCESS;
- IntelQaSymCtx* ctx;
-
- if (dev == NULL) {
- return BAD_FUNC_ARG;
- }
-
- ctx = IntelQaGetSymCtx(dev);
-
- QLOG("IntelQaSymClose: dev %p, ctx %p, symCtx %p (src %p), "
- "symCtxSize %d, isCopy %d, isOpen %d, doFree %d\n",
- dev, ctx, ctx->symCtx, ctx->symCtxSrc, ctx->symCtxSize,
- ctx->isCopy, ctx->isOpen, doFree);
-
- if (ctx->symCtx == ctx->symCtxSrc && ctx->symCtx != NULL) {
- if (ctx->isOpen) {
- ctx->isOpen = 0;
- QLOG("IntelQaSymClose: RemoveSession dev %p, symCtx %p\n",
- dev, ctx->symCtx);
- status = cpaCySymRemoveSession(dev->handle, ctx->symCtx);
- if (status == CPA_STATUS_RETRY) {
- QLOG("cpaCySymRemoveSession retry!\n");
- /* treat this as error, since session should not be active */
- ret = ASYNC_OP_E;
- }
- else if (status != CPA_STATUS_SUCCESS) {
- QLOG("cpaCySymRemoveSession failed! status %d\n", status);
- ret = ASYNC_OP_E;
- }
- }
- }
-
- if (doFree) {
- XFREE(ctx->symCtx, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA64);
- ctx->symCtx = NULL;
- ctx->symCtxSrc = NULL;
- ctx->symCtxSize = 0;
- }
-
- return ret;
-}
-
-#endif /* QAT_ENABLE_CRYPTO */
-
-
-/* -------------------------------------------------------------------------- */
-/* AES/DES Algo */
-/* -------------------------------------------------------------------------- */
-
-#ifdef QAT_ENABLE_CRYPTO
-
-static void IntelQaSymCipherFree(IntelQaDev* dev)
-{
- IntelQaSymCtx* ctx = &dev->op.cipher.ctx;
- CpaCySymOpData* opData = &ctx->opData;
- CpaBufferList* pDstBuffer = &dev->op.cipher.bufferList;
-
- if (opData) {
- if (opData->pAdditionalAuthData) {
- XFREE(opData->pAdditionalAuthData, dev->heap,
- DYNAMIC_TYPE_ASYNC_NUMA);
- opData->pAdditionalAuthData = NULL;
- }
- if (opData->pIv) {
- XFREE(opData->pIv, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA);
- opData->pIv = NULL;
- }
- XMEMSET(opData, 0, sizeof(CpaCySymOpData));
- }
- if (pDstBuffer) {
- if (pDstBuffer->pBuffers) {
- if (pDstBuffer->pBuffers->pData) {
- XFREE(pDstBuffer->pBuffers->pData, dev->heap,
- DYNAMIC_TYPE_ASYNC_NUMA);
- pDstBuffer->pBuffers->pData = NULL;
- }
- XMEMSET(pDstBuffer->pBuffers, 0, sizeof(CpaFlatBuffer));
- }
- if (pDstBuffer->pPrivateMetaData) {
- XFREE(pDstBuffer->pPrivateMetaData, dev->heap,
- DYNAMIC_TYPE_ASYNC_NUMA);
- pDstBuffer->pPrivateMetaData = NULL;
- }
- XMEMSET(pDstBuffer, 0, sizeof(CpaBufferList));
- }
-
- /* close and free sym context */
- IntelQaSymClose(dev, 1);
-
- /* clear temp pointers */
- dev->out = NULL;
- dev->outLen = 0;
-#ifndef NO_AES
- if (dev->op.cipher.authTag != NULL) {
- XMEMSET(dev->op.cipher.authTag, 0, dev->op.cipher.authTagSz);
- XFREE(dev->op.cipher.authTag, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA);
- dev->op.cipher.authTag = NULL;
- }
- dev->op.cipher.authTagSz = 0;
-#endif
-}
-
-static int IntelQaSymCipher(IntelQaDev* dev, byte* out, const byte* in,
- word32 inOutSz, const byte* key, word32 keySz, const byte* iv, word32 ivSz,
- CpaCySymOp symOperation, CpaCySymCipherAlgorithm cipherAlgorithm,
- CpaCySymCipherDirection cipherDirection,
-
- /* for auth ciphers (CCM or GCM) */
- CpaCySymHashAlgorithm hashAlgorithm,
- byte* authTag, word32 authTagSz,
- const byte* authIn, word32 authInSz)
-{
- int ret;
- CpaStatus status = CPA_STATUS_SUCCESS;
- CpaCySymOpData* opData = NULL;
- CpaCySymSessionSetupData setup;
- const Cpa32U numBuffers = 1;
- CpaBufferList* bufferList = NULL;
- CpaFlatBuffer* flatBuffer = NULL;
- Cpa8U* ivBuf = NULL;
- Cpa8U* dataBuf = NULL;
- Cpa32U dataLen = inOutSz;
- Cpa8U* metaBuf = NULL;
- Cpa32U metaSize = 0;
- Cpa8U* authInBuf = NULL;
- Cpa32U authInSzAligned = authInSz;
- Cpa8U* authTagBuf = NULL;
- IntelQaSymCtx* ctx;
- CpaBoolean verifyResult = CPA_FALSE;
-
- QLOG("IntelQaSymCipher: dev %p, out %p, in %p, inOutSz %d, op %d, "
- "algo %d, dir %d, hash %d\n",
- dev, out, in, inOutSz, symOperation, cipherAlgorithm,
- cipherDirection, hashAlgorithm);
-
- /* check args */
- if (out == NULL || in == NULL || inOutSz == 0 ||
- key == NULL || keySz == 0 || iv == NULL || ivSz == 0) {
- return BAD_FUNC_ARG;
- }
- if (hashAlgorithm != CPA_CY_SYM_HASH_NONE &&
- (authTag == NULL || authTagSz == 0)) {
- return BAD_FUNC_ARG;
- }
-
- /* get meta size */
- status = cpaCyBufferListGetMetaSize(dev->handle, numBuffers, &metaSize);
- if (status != CPA_STATUS_SUCCESS && metaSize <= 0) {
- ret = BUFFER_E; goto exit;
- }
-
- /* if authtag provided then it will be appended to end of input */
- if (authTag && authTagSz > 0) {
- dataLen += authTagSz;
- }
-
- /* allocate buffers */
- ctx = &dev->op.cipher.ctx;
- opData = &ctx->opData;
- bufferList = &dev->op.cipher.bufferList;
- flatBuffer = &dev->op.cipher.flatBuffer;
- metaBuf = XMALLOC(metaSize, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA);
- dataBuf = XMALLOC(dataLen, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA);
- XMEMCPY(dataBuf, in, inOutSz);
- ivBuf = XMALLOC(AES_BLOCK_SIZE, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA);
- XMEMCPY(ivBuf, iv, ivSz);
- authTagBuf = XMALLOC(authTagSz, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA);
-
- /* check allocations */
- if (ivBuf == NULL || metaBuf == NULL || dataBuf == NULL ||
- authTagBuf == NULL) {
- ret = MEMORY_E; goto exit;
- }
-
- /* AAD */
- if (authIn && authInSz > 0) {
- /* make sure AAD is block aligned */
- if (authInSzAligned % AES_BLOCK_SIZE) {
- authInSzAligned += AES_BLOCK_SIZE -
- (authInSzAligned % AES_BLOCK_SIZE);
- }
-
- authInBuf = XMALLOC(authInSzAligned, dev->heap,
- DYNAMIC_TYPE_ASYNC_NUMA);
- XMEMCPY(authInBuf, authIn, authInSz);
- if (authInBuf == NULL) {
- ret = MEMORY_E; goto exit;
- }
- /* clear remainder */
- XMEMSET(authInBuf + authInSz, 0, authInSzAligned - authInSz);
- }
-
- /* init buffers */
- XMEMSET(&setup, 0, sizeof(CpaCySymSessionSetupData));
- XMEMSET(opData, 0, sizeof(CpaCySymOpData));
- XMEMSET(bufferList, 0, sizeof(CpaBufferList));
- XMEMSET(flatBuffer, 0, sizeof(CpaFlatBuffer));
- XMEMSET(metaBuf, 0, metaSize);
-
- bufferList->pBuffers = flatBuffer;
- bufferList->numBuffers = numBuffers;
- bufferList->pPrivateMetaData = metaBuf;
- flatBuffer->dataLenInBytes = dataLen;
- flatBuffer->pData = dataBuf;
-
- /* setup */
- setup.sessionPriority = CPA_CY_PRIORITY_NORMAL;
- setup.symOperation = symOperation;
- setup.cipherSetupData.cipherAlgorithm = cipherAlgorithm;
- setup.cipherSetupData.cipherKeyLenInBytes = keySz;
- setup.cipherSetupData.pCipherKey = (byte*)key;
- setup.cipherSetupData.cipherDirection = cipherDirection;
-
- /* setup auth ciphers */
- if (hashAlgorithm != CPA_CY_SYM_HASH_NONE) {
- setup.algChainOrder =
- (cipherDirection == CPA_CY_SYM_CIPHER_DIRECTION_ENCRYPT) ?
- CPA_CY_SYM_ALG_CHAIN_ORDER_CIPHER_THEN_HASH :
- CPA_CY_SYM_ALG_CHAIN_ORDER_HASH_THEN_CIPHER;
-
- setup.hashSetupData.hashAlgorithm = hashAlgorithm;
- setup.hashSetupData.hashMode = CPA_CY_SYM_HASH_MODE_AUTH;
- setup.hashSetupData.digestResultLenInBytes = authTagSz;
- setup.hashSetupData.authModeSetupData.aadLenInBytes = authInSz;
-
- if (cipherDirection == CPA_CY_SYM_CIPHER_DIRECTION_DECRYPT)
- setup.digestIsAppended = CPA_TRUE;
- else
- setup.digestIsAppended = CPA_FALSE;
- }
-
- /* open session */
- ret = IntelQaSymOpen(dev, &setup, NULL);
- if (ret != 0) {
- goto exit;
- }
-
- /* operation data */
- opData->sessionCtx = ctx->symCtx;
- opData->packetType = CPA_CY_SYM_PACKET_TYPE_FULL;
- opData->pIv = ivBuf;
- opData->ivLenInBytes = ivSz;
- opData->cryptoStartSrcOffsetInBytes = 0;
- opData->messageLenToCipherInBytes = inOutSz;
- if (authIn && authInSz > 0) {
- opData->pAdditionalAuthData = authInBuf;
- }
- if (cipherDirection == CPA_CY_SYM_CIPHER_DIRECTION_DECRYPT) {
- if (authTag && authTagSz > 0) {
- /* append digest to end of data buffer */
- XMEMCPY(flatBuffer->pData + inOutSz, authTag, authTagSz);
- }
- }
- else {
- if (authTag && authTagSz > 0) {
- XMEMCPY(authTagBuf, authTag, authTagSz);
- }
- }
-
- /* store info needed for output */
- dev->out = out;
- dev->outLen = inOutSz;
- if (cipherDirection == CPA_CY_SYM_CIPHER_DIRECTION_ENCRYPT) {
- dev->op.cipher.authTag = authTagBuf;
- dev->op.cipher.authTagSz = authTagSz;
- opData->pDigestResult = authTagBuf;
- }
- else {
- dev->op.cipher.authTag = NULL;
- dev->op.cipher.authTagSz = 0;
- }
- IntelQaOpInit(dev, IntelQaSymCipherFree);
-
- /* perform symmetric AES operation async */
- /* use same buffer list for in-place operation */
- status = cpaCySymPerformOp(dev->handle, dev, opData,
- bufferList, bufferList, &verifyResult);
-
- if (symOperation == CPA_CY_SYM_OP_ALGORITHM_CHAINING &&
- cipherAlgorithm == CPA_CY_SYM_CIPHER_AES_GCM &&
- cipherDirection == CPA_CY_SYM_CIPHER_DIRECTION_DECRYPT &&
- hashAlgorithm == CPA_CY_SYM_HASH_AES_GCM) {
- if (verifyResult == CPA_FALSE) {
- ret = AES_GCM_AUTH_E;
- }
- }
-exit:
-
- if (ret != 0) {
- QLOG("cpaCySymPerformOp Cipher failed! dev %p, status %d, ret %d\n",
- dev, status, ret);
- }
-
- /* Capture the inline decrypt into the output. */
- XMEMCPY(out, dataBuf, inOutSz);
- if (cipherDirection == CPA_CY_SYM_CIPHER_DIRECTION_ENCRYPT) {
- if (authTag != NULL && authTagSz > 0) {
- XMEMCPY(authTag, authTagBuf, authTagSz);
- }
- }
-
- /* handle cleanup */
- IntelQaSymCipherFree(dev);
-
- return ret;
-}
-
-#ifdef HAVE_AES_CBC
-int IntelQaSymAesCbcEncrypt(IntelQaDev* dev,
- byte* out, const byte* in, word32 sz,
- const byte* key, word32 keySz,
- const byte* iv, word32 ivSz)
-{
- int ret = IntelQaSymCipher(dev, out, in, sz,
- key, keySz, iv, ivSz,
- CPA_CY_SYM_OP_CIPHER, CPA_CY_SYM_CIPHER_AES_CBC,
- CPA_CY_SYM_CIPHER_DIRECTION_ENCRYPT,
- CPA_CY_SYM_HASH_NONE, NULL, 0, NULL, 0);
-
- XMEMCPY((byte*)iv, out + sz - AES_BLOCK_SIZE, AES_BLOCK_SIZE);
- return ret;
-}
-
-#ifdef HAVE_AES_DECRYPT
-int IntelQaSymAesCbcDecrypt(IntelQaDev* dev,
- byte* out, const byte* in, word32 sz,
- const byte* key, word32 keySz,
- const byte* iv, word32 ivSz)
-{
- byte nextIv[AES_BLOCK_SIZE];
- int ret;
-
- XMEMCPY(nextIv, in + sz - AES_BLOCK_SIZE, AES_BLOCK_SIZE);
- ret = IntelQaSymCipher(dev, out, in, sz,
- key, keySz, iv, ivSz,
- CPA_CY_SYM_OP_CIPHER, CPA_CY_SYM_CIPHER_AES_CBC,
- CPA_CY_SYM_CIPHER_DIRECTION_DECRYPT,
- CPA_CY_SYM_HASH_NONE, NULL, 0, NULL, 0);
-
- XMEMCPY((byte*)iv, nextIv, AES_BLOCK_SIZE);
- return ret;
-}
-#endif /* HAVE_AES_DECRYPT */
-#endif /* HAVE_AES_CBC */
-
-
-#ifdef HAVE_AESGCM
-int IntelQaSymAesGcmEncrypt(IntelQaDev* dev,
- byte* out, const byte* in, word32 sz,
- const byte* key, word32 keySz,
- const byte* iv, word32 ivSz,
- byte* authTag, word32 authTagSz,
- const byte* authIn, word32 authInSz)
-{
- return IntelQaSymCipher(dev, out, in, sz,
- key, keySz, iv, ivSz,
- CPA_CY_SYM_OP_ALGORITHM_CHAINING, CPA_CY_SYM_CIPHER_AES_GCM,
- CPA_CY_SYM_CIPHER_DIRECTION_ENCRYPT,
- CPA_CY_SYM_HASH_AES_GCM, authTag, authTagSz, authIn, authInSz);
-}
-#ifdef HAVE_AES_DECRYPT
-int IntelQaSymAesGcmDecrypt(IntelQaDev* dev,
- byte* out, const byte* in, word32 sz,
- const byte* key, word32 keySz,
- const byte* iv, word32 ivSz,
- const byte* authTag, word32 authTagSz,
- const byte* authIn, word32 authInSz)
-{
- return IntelQaSymCipher(dev, out, in, sz,
- key, keySz, iv, ivSz,
- CPA_CY_SYM_OP_ALGORITHM_CHAINING, CPA_CY_SYM_CIPHER_AES_GCM,
- CPA_CY_SYM_CIPHER_DIRECTION_DECRYPT,
- CPA_CY_SYM_HASH_AES_GCM, (byte*)authTag, authTagSz, authIn, authInSz);
-}
-#endif /* HAVE_AES_DECRYPT */
-#endif /* HAVE_AESGCM */
-
-#ifndef NO_DES3
-int IntelQaSymDes3CbcEncrypt(IntelQaDev* dev,
- byte* out, const byte* in, word32 sz,
- const byte* key, word32 keySz,
- const byte* iv, word32 ivSz)
-{
- return IntelQaSymCipher(dev, out, in, sz,
- key, keySz, iv, ivSz,
- CPA_CY_SYM_OP_CIPHER, CPA_CY_SYM_CIPHER_3DES_CBC,
- CPA_CY_SYM_CIPHER_DIRECTION_ENCRYPT,
- CPA_CY_SYM_HASH_NONE, NULL, 0, NULL, 0);
-}
-
-int IntelQaSymDes3CbcDecrypt(IntelQaDev* dev,
- byte* out, const byte* in, word32 sz,
- const byte* key, word32 keySz,
- const byte* iv, word32 ivSz)
-{
- return IntelQaSymCipher(dev, out, in, sz,
- key, keySz, iv, ivSz,
- CPA_CY_SYM_OP_CIPHER, CPA_CY_SYM_CIPHER_3DES_CBC,
- CPA_CY_SYM_CIPHER_DIRECTION_DECRYPT,
- CPA_CY_SYM_HASH_NONE, NULL, 0, NULL, 0);
-}
-#endif /* !NO_DES3 */
-
-#endif /* QAT_ENABLE_CRYPTO */
-
-
-#ifdef WOLF_CRYPTO_CB
-
-int IntelQaSymSync_CryptoDevCb(int devId, struct wc_CryptoInfo* info, void* ctx)
-{
- int rc = NOT_COMPILED_IN; /* return this to bypass HW and use SW */
- IntelQaDev* dev;
-
- if (info == NULL || ctx == NULL)
- return BAD_FUNC_ARG;
-
- (void)devId;
- dev = (IntelQaDev*)ctx;
-
- #ifdef QAT_ENABLE_CRYPTO
- if (info->algo_type == WC_ALGO_TYPE_CIPHER) {
- QLOG("CryptoDevCb Cipher: Type %d\n", info->cipher.type);
-
- #ifndef NO_AES
- if (info->cipher.type == WC_CIPHER_AES_CBC) {
- Aes* aes = info->cipher.aescbc.aes;
- if (aes == NULL)
- return BAD_FUNC_ARG;
-
- if (info->cipher.enc) {
- rc = IntelQaSymAesCbcEncrypt(dev,
- info->cipher.aescbc.out,
- info->cipher.aescbc.in,
- info->cipher.aescbc.sz,
- (byte*)aes->devKey, aes->keylen,
- (byte*)aes->reg, AES_BLOCK_SIZE);
- }
- else {
- rc = IntelQaSymAesCbcDecrypt(dev,
- info->cipher.aescbc.out,
- info->cipher.aescbc.in,
- info->cipher.aescbc.sz,
- (byte*)aes->devKey, aes->keylen,
- (byte*)aes->reg, AES_BLOCK_SIZE);
- }
- }
- #endif /* !NO_AES */
-
- #ifdef HAVE_AESGCM
- if (info->cipher.type == WC_CIPHER_AES_GCM) {
- if (info->cipher.enc) {
- Aes* aes = info->cipher.aesgcm_enc.aes;
- if (aes == NULL)
- return BAD_FUNC_ARG;
-
- rc = IntelQaSymAesGcmEncrypt(dev,
- info->cipher.aesgcm_enc.out,
- info->cipher.aesgcm_enc.in,
- info->cipher.aesgcm_enc.sz,
- (const byte*)aes->devKey, aes->keylen,
- info->cipher.aesgcm_enc.iv,
- info->cipher.aesgcm_enc.ivSz,
- info->cipher.aesgcm_enc.authTag,
- info->cipher.aesgcm_enc.authTagSz,
- info->cipher.aesgcm_enc.authIn,
- info->cipher.aesgcm_enc.authInSz);
- }
- else {
- Aes* aes = info->cipher.aesgcm_dec.aes;
- if (aes == NULL)
- return BAD_FUNC_ARG;
-
- rc = IntelQaSymAesGcmDecrypt(dev,
- info->cipher.aesgcm_dec.out,
- info->cipher.aesgcm_dec.in,
- info->cipher.aesgcm_dec.sz,
- (const byte*)aes->devKey, aes->keylen,
- info->cipher.aesgcm_dec.iv,
- info->cipher.aesgcm_dec.ivSz,
- info->cipher.aesgcm_dec.authTag,
- info->cipher.aesgcm_dec.authTagSz,
- info->cipher.aesgcm_dec.authIn,
- info->cipher.aesgcm_dec.authInSz);
- }
- }
- #endif /* HAVE_AESGCM */
-
- #ifndef NO_DES3
- if (info->cipher.type == WC_CIPHER_DES3) {
- Des3* des = info->cipher.des3.des;
- if (des == NULL)
- return BAD_FUNC_ARG;
-
- if (info->cipher.enc) {
- rc = IntelQaSymDes3CbcEncrypt(dev,
- info->cipher.des3.out,
- info->cipher.des3.in,
- info->cipher.des3.sz,
- (byte*)des->devKey, DES3_KEYLEN,
- (byte*)des->reg, DES_BLOCK_SIZE);
- }
- else {
- rc = IntelQaSymDes3CbcDecrypt(dev,
- info->cipher.des3.out,
- info->cipher.des3.in,
- info->cipher.des3.sz,
- (byte*)des->devKey, DES3_KEYLEN,
- (byte*)des->reg, DES_BLOCK_SIZE);
- }
- }
- #endif /* !NO_DES3 */
- }
- #endif /* QAT_ENABLE_CRYPTO */
-
- return rc;
-}
-
-/* -------------------------------------------------------------------------- */
-/* Public API */
-/* -------------------------------------------------------------------------- */
-
-int wc_CryptoCb_InitIntelQa(void)
-{
- int devId, rc;
-
- devId = IntelQaInit(NULL);
- if (devId < 0) {
- QLOG("Couldn't init the Intel QA\n");
- devId = INVALID_DEVID;
- }
- else {
- rc = IntelQaOpen(&qaDev, devId);
- if (rc != 0) {
- QLOG("Couldn't open the device\n");
- IntelQaDeInit(devId);
- devId = INVALID_DEVID;
- }
- else {
- rc = wc_CryptoCb_RegisterDevice(devId,
- IntelQaSymSync_CryptoDevCb, &qaDev);
- if (rc != 0) {
- QLOG("Couldn't register the device\n");
- IntelQaClose(&qaDev);
- IntelQaDeInit(devId);
- devId = INVALID_DEVID;
- }
- }
- }
-
- return devId;
-}
-
-
-void wc_CryptoCb_CleanupIntelQa(int* id)
-{
- if (INVALID_DEVID != *id) {
- wc_CryptoCb_UnRegisterDevice(*id);
- IntelQaClose(&qaDev);
- IntelQaDeInit(*id);
- *id = INVALID_DEVID;
- }
-}
-
-#endif /* WOLF_CRYPTO_CB */
-
-
-/* -------------------------------------------------------------------------- */
-/* Memory allocator and deallocator */
-/* -------------------------------------------------------------------------- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* use thread local for QAE variables (removing mutex requirement) */
-#ifdef USE_QAE_THREAD_LS
- #include <pthread.h> /* for threadId tracking */
- #define QAE_THREAD_LS THREAD_LS_T
-#else
- #define QAE_THREAD_LS
-#endif
-
-/* these are used to align memory to a byte boundary */
-#define ALIGNMENT_BASE (16ul)
-#define ALIGNMENT_HW (64ul)
-#define WOLF_MAGIC_NUM 0xA576F6C6641736EBUL /* (0xA)WolfAsyn(0xB) */
-#define WOLF_HEADER_ALIGN ALIGNMENT_BASE
-
-#define QAE_NOT_NUMA_PAGE 0xFFFF
-typedef struct qaeMemHeader {
-#ifdef WOLFSSL_TRACK_MEMORY
- struct qaeMemHeader* next;
- struct qaeMemHeader* prev;
- #ifdef WOLFSSL_DEBUG_MEMORY
- const char* func;
- unsigned int line;
- #endif
-#endif
- uint64_t magic;
- void* heap;
-#ifdef USE_QAE_THREAD_LS
- pthread_t threadId;
-#endif
- size_t size;
- word16 count;
- word16 isNuma:1;
- word16 reservedBits:15; /* use for future bits */
- word16 type;
- word16 numa_page_offset; /* use QAE_NOT_NUMA_PAGE if not NUMA */
-} ALIGN16 qaeMemHeader;
-
-#ifdef WOLFSSL_TRACK_MEMORY
- typedef struct qaeMemStats {
- long totalAllocs; /* number of allocations */
- long totalDeallocs; /* number of deallocations */
- long totalBytes; /* total number of bytes allocated */
- long peakBytes; /* concurrent max bytes */
- long currentBytes; /* total current bytes in use */
- } qaeMemStats;
-
- /* track allocations and report at end */
- typedef struct qaeMemList {
- qaeMemHeader* head;
- qaeMemHeader* tail;
- uint32_t count;
- } qaeMemList;
-#endif /* WOLFSSL_TRACK_MEMORY */
-
-
-/* local variables */
-#ifndef USE_QAE_THREAD_LS
- static pthread_mutex_t g_memLock = PTHREAD_MUTEX_INITIALIZER;
-#endif
-
-
-#ifdef WOLFSSL_TRACK_MEMORY
- static qaeMemStats g_memStats;
- static qaeMemList g_memList;
- static pthread_mutex_t g_memStatLock = PTHREAD_MUTEX_INITIALIZER;
-#endif
-
-static WC_INLINE int qaeMemTypeIsNuma(int type)
-{
- int isNuma = 0;
-
- switch (type) {
- case DYNAMIC_TYPE_ASYNC_NUMA:
- case DYNAMIC_TYPE_ASYNC_NUMA64:
- case DYNAMIC_TYPE_WOLF_BIGINT:
- case DYNAMIC_TYPE_PRIVATE_KEY:
- case DYNAMIC_TYPE_PUBLIC_KEY:
- case DYNAMIC_TYPE_AES_BUFFER:
- case DYNAMIC_TYPE_RSA_BUFFER:
- case DYNAMIC_TYPE_ECC_BUFFER:
- case DYNAMIC_TYPE_SIGNATURE:
- case DYNAMIC_TYPE_DIGEST:
- case DYNAMIC_TYPE_SECRET:
- case DYNAMIC_TYPE_SEED:
- case DYNAMIC_TYPE_SALT:
- {
- isNuma = 1;
- break;
- }
- case DYNAMIC_TYPE_OUT_BUFFER:
- case DYNAMIC_TYPE_IN_BUFFER:
- {
- #if !defined(WC_ASYNC_NO_CRYPT) && !defined(WC_ASYNC_NO_HASH)
- isNuma = 1;
- #else
- isNuma = 0;
- #endif
- break;
- }
- default:
- isNuma = 0;
- break;
- }
- return isNuma;
-}
-
-
-static void _qaeMemFree(void *ptr, void* heap, int type
-#ifdef WOLFSSL_DEBUG_MEMORY
- , const char* func, unsigned int line
-#endif
-)
-{
- qaeMemHeader* header = NULL;
- size_t size;
- void* origPtr = ptr;
-
- if (ptr == NULL)
- return;
-
- /* adjust for header and align */
- ptr = (byte*)(((size_t)ptr - ((size_t)ptr % WOLF_HEADER_ALIGN)) -
- sizeof(qaeMemHeader));
- header = (qaeMemHeader*)ptr;
-
- /* check for header magic */
- if (header->magic != WOLF_MAGIC_NUM) {
- printf("Free: Header magic not found! %p\n", ptr);
- return;
- }
-
- /* cache values for later */
- size = header->size;
-
-#ifdef WOLFSSL_DEBUG_MEMORY
-#ifdef WOLFSSL_DEBUG_MEMORY_PRINT
- printf("Free: %p (%u) at %s:%u, heap %p, type %d, count %d\n",
- origPtr, (unsigned int)size, func, line, heap, type, header->count);
-#else
- (void)func;
- (void)line;
-#endif
-#endif
- (void)type;
-
- /* adjust free count */
- header->count--;
-
- /* check header count */
- if (header->count > 0) {
- /* go ahead and return if still in use */
- return;
- }
-
-#ifdef WOLFSSL_TRACK_MEMORY
- if (pthread_mutex_lock(&g_memStatLock) == 0) {
- g_memStats.currentBytes -= size;
- g_memStats.totalDeallocs++;
-
- if (header == g_memList.head && header == g_memList.tail) {
- g_memList.head = NULL;
- g_memList.tail = NULL;
- }
- else if (header == g_memList.head) {
- g_memList.head = header->next;
- g_memList.head->prev = NULL;
- }
- else if (header == g_memList.tail) {
- g_memList.tail = header->prev;
- g_memList.tail->next = NULL;
- }
- else {
- qaeMemHeader* next = header->next;
- qaeMemHeader* prev = header->prev;
- if (next)
- next->prev = prev;
- if (prev)
- prev->next = next;
- }
- g_memList.count--;
-
- pthread_mutex_unlock(&g_memStatLock);
- }
-#endif
-
- (void)heap;
- (void)size;
- (void)origPtr;
-
-#ifdef WOLFSSL_DEBUG_MEMORY
- /* make sure magic is gone */
- header->magic = 0;
-#endif
-
- /* free type */
- if (header->isNuma && header->numa_page_offset != QAE_NOT_NUMA_PAGE) {
- qaeMemFreeNUMA(&ptr);
- }
- else {
- free(ptr);
- }
-}
-
-
-static void* _qaeMemAlloc(size_t size, void* heap, int type
-#ifdef WOLFSSL_DEBUG_MEMORY
- , const char* func, unsigned int line
-#endif
-)
-{
- void* ptr = NULL;
- qaeMemHeader* header = NULL;
- int isNuma;
- int alignment = ALIGNMENT_BASE;
- word16 page_offset = QAE_NOT_NUMA_PAGE;
-
- /* make sure all allocations are aligned */
- if ((size % WOLF_HEADER_ALIGN) != 0) {
- size += (WOLF_HEADER_ALIGN - (size % WOLF_HEADER_ALIGN));
- }
-
- isNuma = qaeMemTypeIsNuma(type);
- if (type == DYNAMIC_TYPE_ASYNC_NUMA64)
- alignment = ALIGNMENT_HW;
-
- /* allocate type */
- if (isNuma) {
- /* Node is typically 0 */
- page_offset = 0;
- ptr = qaeMemAllocNUMA((Cpa32U)(size + sizeof(qaeMemHeader)), 0,
- alignment);
- }
- else {
- isNuma = 0;
- ptr = malloc(size + sizeof(qaeMemHeader));
- }
-
- /* add header */
- if (ptr) {
- header = (qaeMemHeader*)ptr;
- ptr = (byte*)ptr + sizeof(qaeMemHeader);
- header->magic = WOLF_MAGIC_NUM;
- header->heap = heap;
- header->size = size;
- header->type = type;
- header->count = 1;
- header->isNuma = isNuma;
- header->numa_page_offset = page_offset;
- #ifdef USE_QAE_THREAD_LS
- header->threadId = pthread_self();
- #endif
-
- #ifdef WOLFSSL_TRACK_MEMORY
- if (pthread_mutex_lock(&g_memStatLock) == 0) {
- g_memStats.totalAllocs++;
- g_memStats.totalBytes += size;
- g_memStats.currentBytes += size;
- if (g_memStats.currentBytes > g_memStats.peakBytes)
- g_memStats.peakBytes = g_memStats.currentBytes;
-
- #ifdef WOLFSSL_DEBUG_MEMORY
- header->func = func;
- header->line = line;
- #endif
-
- /* Setup event */
- header->next = NULL;
- if (g_memList.tail == NULL) {
- g_memList.head = header;
- }
- else {
- g_memList.tail->next = header;
- header->prev = g_memList.tail;
- }
- g_memList.tail = header; /* add to the end either way */
- g_memList.count++;
-
- pthread_mutex_unlock(&g_memStatLock);
- }
- #endif
- }
-
-#ifdef WOLFSSL_DEBUG_MEMORY
-#ifdef WOLFSSL_DEBUG_MEMORY_PRINT
- printf("Alloc: %p (%u) at %s:%u, heap %p, type %d\n",
- ptr, (unsigned int)size, func, line, heap, type);
-#else
- (void)func;
- (void)line;
-#endif
-#endif
-
- (void)heap;
-
- return ptr;
-}
-
-/* Public Functions */
-void* wc_CryptoCb_IntelQaMalloc(size_t size, void* heap, int type
-#ifdef WOLFSSL_DEBUG_MEMORY
- , const char* func, unsigned int line
-#endif
-)
-{
- void* ptr;
-
-#ifndef USE_QAE_THREAD_LS
- int ret = pthread_mutex_lock(&g_memLock);
- if (ret != 0) {
- printf("Alloc: Error(%d) on mutex lock\n", ret);
- return NULL;
- }
-#endif
-
- ptr = _qaeMemAlloc(size, heap, type
- #ifdef WOLFSSL_DEBUG_MEMORY
- , func, line
- #endif
- );
-
-#ifndef USE_QAE_THREAD_LS
- pthread_mutex_unlock(&g_memLock);
-#endif
-
- return ptr;
-}
-
-void wc_CryptoCb_IntelQaFree(void *ptr, void* heap, int type
-#ifdef WOLFSSL_DEBUG_MEMORY
- , const char* func, unsigned int line
-#endif
-)
-{
-#ifndef USE_QAE_THREAD_LS
- int ret = pthread_mutex_lock(&g_memLock);
- if (ret != 0) {
- printf("Free: Error(%d) on mutex lock\n", ret);
- return;
- }
-#endif
-
- _qaeMemFree(ptr, heap, type
- #ifdef WOLFSSL_DEBUG_MEMORY
- , func, line
- #endif
- );
-
-#ifndef USE_QAE_THREAD_LS
- pthread_mutex_unlock(&g_memLock);
-#endif
-}
-
-void* wc_CryptoCb_IntelQaRealloc(void *ptr, size_t size, void* heap, int type
-#ifdef WOLFSSL_DEBUG_MEMORY
- , const char* func, unsigned int line
-#endif
-)
-{
- void* newPtr = NULL;
- void* origPtr = ptr;
- qaeMemHeader* header = NULL;
- byte allocNew = 1;
- int newIsNuma = -1, ptrIsNuma = -1;
- size_t copySize = 0;
-
-#ifndef USE_QAE_THREAD_LS
- int ret = pthread_mutex_lock(&g_memLock);
- if (ret != 0) {
- printf("Realloc: Error(%d) on mutex lock\n", ret);
- return NULL;
- }
-#endif
-
- (void)heap;
-
- if (ptr) {
- /* get header pointer and align */
- header = (qaeMemHeader*)(((size_t)ptr -
- ((size_t)ptr % WOLF_HEADER_ALIGN)) - sizeof(qaeMemHeader));
- if (header->magic == WOLF_MAGIC_NUM) {
- newIsNuma = qaeMemTypeIsNuma(type);
- ptrIsNuma = (header->numa_page_offset != QAE_NOT_NUMA_PAGE) ? 1 : 0;
-
- /* for non-NUMA, treat as normal REALLOC */
- if (newIsNuma == 0 && ptrIsNuma == 0) {
- allocNew = 1;
- }
- /* if matching NUMA type and size fits, use existing */
- else if (newIsNuma == ptrIsNuma && header->size >= size) {
-
- #ifdef USE_QAE_THREAD_LS
- if (header->threadId != pthread_self()) {
- allocNew = 1;
- #if 0
- printf("Realloc %p from different thread! orig %lx this %lx\n",
- origPtr, header->threadId, pthread_self());
- #endif
- }
- else
- #endif
- {
- /* use existing pointer and increment counter */
- header->count++;
- newPtr = origPtr;
- allocNew = 0;
- }
- }
-
- copySize = header->size;
- }
- else {
- copySize = size;
- }
- }
-
- if (allocNew) {
- newPtr = _qaeMemAlloc(size, heap, type
- #ifdef WOLFSSL_DEBUG_MEMORY
- , func, line
- #endif
- );
- if (newPtr && ptr) {
- /* only copy min of new and old size to new pointer */
- if (copySize > size)
- copySize = size;
- XMEMCPY(newPtr, ptr, copySize);
-
- if (newIsNuma == 0 && ptrIsNuma == 0) {
- /* for non-NUMA, treat as normal REALLOC and free old pointer */
- _qaeMemFree(ptr, heap, type
- #ifdef WOLFSSL_DEBUG_MEMORY
- , func, line
- #endif
- );
- }
- }
- }
-
-#ifndef USE_QAE_THREAD_LS
- pthread_mutex_unlock(&g_memLock);
-#endif
-
-#ifdef WOLFSSL_DEBUG_MEMORY
-#ifdef WOLFSSL_DEBUG_MEMORY_PRINT
- if (allocNew) {
- printf("Realloc: New %p -> %p (%u) at %s:%u, heap %p, type %d\n",
- origPtr, newPtr, (unsigned int)size, func, line, heap, type);
- }
- else {
- printf("Realloc: Reuse %p (%u) at %s:%u, heap %p, type %d, count %d\n",
- origPtr, (unsigned int)size, func, line, header->heap, header->type, header->count);
- }
-#else
- (void)func;
- (void)line;
-#endif
-#endif
-
- return newPtr;
-}
-
-
-#ifdef WOLFSSL_TRACK_MEMORY
-int InitMemoryTracker(void)
-{
- if (pthread_mutex_lock(&g_memStatLock) == 0) {
- g_memStats.totalAllocs = 0;
- g_memStats.totalDeallocs= 0;
- g_memStats.totalBytes = 0;
- g_memStats.peakBytes = 0;
- g_memStats.currentBytes = 0;
-
- XMEMSET(&g_memList, 0, sizeof(g_memList));
-
- pthread_mutex_unlock(&g_memStatLock);
- }
-
- return 0;
-}
-
-void ShowMemoryTracker(void)
-{
- if (pthread_mutex_lock(&g_memStatLock) == 0) {
- printf("total Allocs = %9ld\n", g_memStats.totalAllocs);
- printf("total Deallocs = %9ld\n", g_memStats.totalDeallocs);
- printf("total Bytes = %9ld\n", g_memStats.totalBytes);
- printf("peak Bytes = %9ld\n", g_memStats.peakBytes);
- printf("current Bytes = %9ld\n", g_memStats.currentBytes);
-
- if (g_memList.count > 0) {
-
- /* print list of allocations */
- qaeMemHeader* header;
- for (header = g_memList.head; header != NULL; header = header->next) {
- printf("Leak: Ptr %p, Size %u, Type %d, Heap %p"
- #ifdef WOLFSSL_DEBUG_MEMORY
- ", Func %s, Line %d"
- #endif
- "\n",
- (byte*)header + sizeof(qaeMemHeader), (unsigned int)header->size,
- header->type, header->heap
- #ifdef WOLFSSL_DEBUG_MEMORY
- , header->func, header->line
- #endif
- );
- }
- }
-
- pthread_mutex_unlock(&g_memStatLock);
-
- /* cleanup lock */
- pthread_mutex_destroy(&g_memStatLock);
- }
-}
-#endif /* WOLFSSL_TRACK_MEMORY */
-
-#ifdef QAT_DEMO_MAIN
-
-/* AES GCM */
-static const byte aesgcm_k[] = {
- 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88,
- 0x99, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66,
- 0x77, 0x88, 0x99, 0x00, 0x11, 0x22, 0x33, 0x44,
- 0x55, 0x66, 0x77, 0x88, 0x99, 0x00, 0x11, 0x22
-};
-
-static const byte aesgcm_iv[] = {
- 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe,
- 0xca, 0xfe, 0xca, 0xfe
-};
-
-static const byte aesgcm_a[] = {
- 0xde, 0xad, 0xde, 0xad, 0xde, 0xad, 0xde, 0xad,
- 0xde, 0xad, 0xde, 0xad, 0xde, 0xad, 0xde, 0xad,
- 0xde, 0xad, 0xde, 0xad
-};
-
-static const byte aesgcm_p[] = {
- 0x79, 0x84, 0x86, 0x44, 0x68, 0x45, 0x15, 0x61,
- 0x86, 0x54, 0x66, 0x56, 0x54, 0x54, 0x31, 0x54,
- 0x64, 0x64, 0x68, 0x45, 0x15, 0x15, 0x61, 0x61,
- 0x51, 0x51, 0x51, 0x51, 0x51, 0x56, 0x14, 0x11,
- 0x72, 0x13, 0x51, 0x82, 0x84, 0x56, 0x74, 0x53,
- 0x45, 0x34, 0x65, 0x15, 0x46, 0x14, 0x67, 0x55,
- 0x16, 0x14, 0x67, 0x54, 0x65, 0x47, 0x14, 0x67,
- 0x46, 0x74, 0x65, 0x46
-};
-
-static const byte aesgcm_c[] = {
- 0x59, 0x85, 0x02, 0x97, 0xE0, 0x4D, 0xFC, 0x5C,
- 0x03, 0xCC, 0x83, 0x64, 0xCE, 0x28, 0x0B, 0x95,
- 0x78, 0xEC, 0x93, 0x40, 0xA1, 0x8D, 0x21, 0xC5,
- 0x48, 0x6A, 0x39, 0xBA, 0x4F, 0x4B, 0x8C, 0x95,
- 0x6F, 0x8C, 0xF6, 0x9C, 0xD0, 0xA5, 0x8D, 0x67,
- 0xA1, 0x32, 0x11, 0xE7, 0x2E, 0xF6, 0x63, 0xAF,
- 0xDE, 0xD4, 0x7D, 0xEC, 0x15, 0x01, 0x58, 0xCB,
- 0xE3, 0x7B, 0xC6, 0x94,
-};
-
-static byte aesgcm_t[] = {
- 0x5D, 0x10, 0x3F, 0xC7, 0x22, 0xC7, 0x21, 0x29
-};
-
-
-/* simple example of using AES-GCM encrypt with Intel QA */
-int main(int argc, char** argv)
-{
-#if !defined(NO_AES) && defined(HAVE_AESGCM)
- int ret;
- IntelQaDev dev;
- byte out[256];
- byte tmp[256];
- word32 tmpLen;
-#endif
-
-#ifdef QAT_DEBUG
- wolfSSL_Debugging_ON();
-#endif
-
- IntelQaInit(NULL);
-
-#ifndef NO_AES
-#ifdef HAVE_AESGCM
- /* AES Test */
- IntelQaOpen(&dev, 0);
- dev.event.ret = WC_PENDING_E;
- tmpLen = sizeof(aesgcm_t);
- XMEMSET(out, 0, sizeof(out));
- XMEMSET(tmp, 0, sizeof(tmp));
-
- ret = IntelQaSymAesGcmEncrypt(&dev, out, aesgcm_p, sizeof(aesgcm_p),
- aesgcm_k, sizeof(aesgcm_k), aesgcm_iv, sizeof(aesgcm_iv),
- tmp, tmpLen, aesgcm_a, sizeof(aesgcm_a));
- printf("AES GCM Encrypt: Ret=%d, Tag Len=%d\n", ret, tmpLen);
- IntelQaClose(&dev);
-#endif /* HAVE_AESGCM */
-#endif /* NO_AES */
-
- IntelQaDeInit(0);
-
- return 0;
-}
-
-#endif
-
-#endif /* HAVE_INTEL_QA_SYNC */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/mynewt/mynewt_port.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/mynewt/mynewt_port.c
deleted file mode 100644
index 8a4e903fb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/mynewt/mynewt_port.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* mynewt_port.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-#if defined(WOLFSSL_APACHE_MYNEWT)
-#ifndef NO_FILESYSTEM
-#include "fs/fs.h"
-#define FILE struct fs_file
-
-FILE* mynewt_fopen(const char * restrict path, const char * restrict mode)
-{
- FILE *file;
- uint8_t access_flags = 0;
- const char *p = mode;
- while(*p != '\0') {
- switch(*p) {
- case 'r':
- {
- access_flags |= FS_ACCESS_READ;
- if(*(p+1) == '+') {
- access_flags |= FS_ACCESS_WRITE;
- }
- }
- break;
-
- case 'w':
- {
- access_flags |= (FS_ACCESS_WRITE | FS_ACCESS_TRUNCATE);
- if(*(p+1) == '+') {
- access_flags |= FS_ACCESS_READ;
- }
- }
- break;
-
- case 'a':
- {
- access_flags |= (FS_ACCESS_WRITE | FS_ACCESS_APPEND);
- if(*(p+1) == '+') {
- access_flags |= FS_ACCESS_READ;
- }
- }
- break;
- }
- p++;
- }
-
- /* Open the file for reading. */
- int rc = fs_open(path, access_flags, &file);
- if (rc != 0) {
- return NULL;
- }
- return file;
-}
-
-int mynewt_fseek(FILE *stream, long offset, int whence)
-{
- uint32_t fs_offset;
-
- switch(whence) {
- case 0: /* SEEK_SET */
- {
- fs_offset += offset;
- }
- break;
-
- case 1: /* SEEK_CUR */
- {
- fs_offset = fs_getpos(stream);
- fs_offset += offset;
- }
- break;
-
- case 2: /* SEEK_END */
- {
- fs_filelen(stream, &fs_offset);
- fs_offset += offset;
- }
- break;
- }
-
- fs_seek(stream, fs_offset);
-
- return 0;
-}
-
-long mynewt_ftell(FILE *stream)
-{
- uint32_t fs_offset;
- fs_filelen(stream, &fs_offset);
- fs_seek(stream, fs_offset);
- return (long)fs_offset;
-}
-
-void mynewt_rewind(FILE *stream)
-{
- fs_seek(stream, 0);
-}
-
-size_t mynewt_fread(void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream)
-{
- size_t to_read = size * nitems;
- uint32_t read_size;
- int rc = fs_read(stream, to_read, ptr, &read_size);
- if(rc != 0) {
- return 0;
- }
-
- return (size_t)read_size;
-}
-
-size_t mynewt_fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream)
-{
- size_t to_write = size * nitems;
- int rc = fs_write(stream, ptr, to_write);
- if(rc != 0) {
- return 0;
- }
-
- return to_write;
-}
-
-int mynewt_fclose(FILE *stream)
-{
- fs_close(stream);
- return 0;
-}
-
-#endif /* NO_FILESYSTEM*/
-#endif /* if defined(WOLFSSL_APACHE_MYNEWT) */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/nrf51.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/nrf51.c
deleted file mode 100644
index c7db4b067..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/nrf51.c
+++ /dev/null
@@ -1,220 +0,0 @@
-/* nrf51.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifdef WOLFSSL_NRF51
-
-#include "bsp.h"
-#include "nrf_delay.h"
-#include "app_uart.h"
-#include "app_error.h"
-#include "nrf_drv_rng.h"
-#include "nrf_drv_rtc.h"
-#include "nrf_drv_clock.h"
-#include "nrf_ecb.h"
-
-#ifdef SOFTDEVICE_PRESENT
- #include "softdevice_handler.h"
- #include "nrf_soc.h"
-#endif /* SOFTDEVICE_PRESENT */
-
-/* RTC */
-#ifndef NO_CRYPT_BENCHMARK
-static byte mRtcInitDone = 0;
-static int mRtcSec = 0;
-const nrf_drv_rtc_t rtc = NRF_DRV_RTC_INSTANCE(0); /**< Declaring an instance of nrf_drv_rtc for RTC0. */
-#endif /* !NO_CRYPT_BENCHMARK */
-
-/* AES */
-#if !defined(NO_AES) && !defined(SOFTDEVICE_PRESENT)
- static byte mAesInitDone = 0;
-#endif
-
-/** @brief Function for getting vector of random numbers.
- *
- * @param[out] p_buff Pointer to unit8_t buffer for storing the bytes.
- * @param[in] length Number of bytes to take from pool and place in p_buff.
- *
- * @retval 0 = Success, else error
- */
-int nrf51_random_generate(byte* output, word32 size)
-{
- int remaining = size, length, pos = 0;
- uint8_t available;
- uint32_t err_code;
-
- /* Make sure RNG is running */
- err_code = nrf_drv_rng_init(NULL);
- if (err_code != NRF_SUCCESS && err_code != NRF_ERROR_INVALID_STATE) {
- return -1;
- }
-
- while (remaining > 0) {
- err_code = nrf_drv_rng_bytes_available(&available);
- if (err_code == NRF_SUCCESS) {
- length = (remaining < available) ? remaining : available;
- if (length > 0) {
- err_code = nrf_drv_rng_rand(&output[pos], length);
- remaining -= length;
- pos += length;
- }
- }
-
- if (err_code != NRF_SUCCESS) {
- break;
- }
- }
-
- return (err_code == NRF_SUCCESS) ? 0 : -1;
-}
-
-#if !defined(NO_AES) && defined(WOLFSSL_NRF51_AES)
-
-#ifdef SOFTDEVICE_PRESENT
-static const byte* nRF51AesKey = NULL;
-#endif
-int nrf51_aes_set_key(const byte* key)
-{
-#ifdef SOFTDEVICE_PRESENT
- nRF51AesKey = key;
-#else
- if (!mAesInitDone) {
- nrf_ecb_init();
- mAesInitDone = 1;
- }
- nrf_ecb_set_key(key);
-#endif
- return 0;
-}
-
-
-int nrf51_aes_encrypt(const byte* in, const byte* key, word32 rounds, byte* out)
-{
- int ret;
- uint32_t err_code = 0;
-#ifdef SOFTDEVICE_PRESENT
- nrf_ecb_hal_data_t ecb_hal_data;
-#endif
-
- /* Set key */
- ret = nrf51_aes_set_key(key);
- if (ret != 0) {
- return ret;
- }
-
-#ifdef SOFTDEVICE_PRESENT
- /* Define ECB record */
- XMEMCPY(ecb_hal_data.key, nRF51AesKey, SOC_ECB_KEY_LENGTH);
- XMEMCPY(ecb_hal_data.cleartext, in, SOC_ECB_CLEARTEXT_LENGTH);
- XMEMSET(ecb_hal_data.ciphertext, 0, SOC_ECB_CIPHERTEXT_LENGTH);
-
- /* Perform block encrypt */
- err_code = sd_ecb_block_encrypt(&ecb_hal_data);
- if (err_code != NRF_SUCCESS) {
- return -1;
- }
-
- /* Grab result */
- XMEMCPY(out, ecb_hal_data.ciphertext, SOC_ECB_CIPHERTEXT_LENGTH);
-#else
- err_code = nrf_ecb_crypt(out, in);
- err_code = err_code ? 0 : -1;
-#endif
-
- return err_code;
-}
-
-#endif /* !NO_AES && WOLFSSL_NRF51_AES */
-
-
-#ifndef NO_CRYPT_BENCHMARK
-static void rtc_handler(nrf_drv_rtc_int_type_t int_type)
-{
- if (int_type == NRF_DRV_RTC_INT_COMPARE0)
- {
- mRtcSec++;
- nrf_drv_rtc_counter_clear(&rtc);
- nrf_drv_rtc_int_enable(&rtc, RTC_CHANNEL_INT_MASK(0));
-
-#ifdef BSP_LED_0
- nrf_gpio_pin_toggle(BSP_LED_0);
-#endif
- }
-}
-
-static void rtc_config(void)
-{
- uint32_t err_code;
-
- // Start the internal LFCLK XTAL oscillator
- err_code = nrf_drv_clock_init(NULL);
- APP_ERROR_CHECK(err_code);
-
- nrf_drv_clock_lfclk_request();
-
- // Initialize RTC instance
- err_code = nrf_drv_rtc_init(&rtc, NULL, rtc_handler);
- APP_ERROR_CHECK(err_code);
-
- // Enable tick event
- nrf_drv_rtc_tick_enable(&rtc, false);
-
- // Set compare channel to trigger interrupt after 1 seconds
- err_code = nrf_drv_rtc_cc_set(&rtc, 0, RTC0_CONFIG_FREQUENCY, true);
- APP_ERROR_CHECK(err_code);
-
- // Power on RTC instance
- nrf_drv_rtc_enable(&rtc);
-}
-
-static int rtc_get_ms(void)
-{
- /* Prescaler is 12-bit for COUNTER: frequency = (32768/(PRESCALER+1)) */
- int frequency = (32768 / (rtc_prescaler_get(rtc.p_reg) + 1));
- int counter = nrf_drv_rtc_counter_get(&rtc);
-
- /* Convert with rounding frequency to milliseconds */
- return ((counter * 1000) + (frequency / 2) ) / frequency;
-}
-
-double current_time(int reset)
-{
- double time;
-
- if (!mRtcInitDone) {
- rtc_config();
- mRtcInitDone = 1;
- }
-
- time = mRtcSec;
- time += (double)rtc_get_ms() / 1000;
-
- return time;
-}
-#endif /* !NO_CRYPT_BENCHMARK */
-
-#endif /* WOLFSSL_NRF51 */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/nxp/ksdk_port.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/nxp/ksdk_port.c
deleted file mode 100644
index a5cc737d7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/nxp/ksdk_port.c
+++ /dev/null
@@ -1,1731 +0,0 @@
-/* ksdk_port.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-/* If FREESCALE_LTC_TFM or FREESCALE_LTC_ECC */
-#if defined(FREESCALE_LTC_TFM) || defined(FREESCALE_LTC_ECC)
-
-#include <wolfssl/wolfcrypt/port/nxp/ksdk_port.h>
-#include <wolfssl/wolfcrypt/random.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/logging.h>
-#include <stdint.h>
-
-#define ERROR_OUT(res) { ret = (res); goto done; }
-
-
-int ksdk_port_init(void)
-{
-#if defined(FREESCALE_LTC_TFM)
- LTC_Init(LTC0);
-#endif
-
- return 0;
-}
-
-/* Reverse array in memory (in place) */
-static void ltc_reverse_array(uint8_t *src, size_t src_len)
-{
- unsigned int i;
-
- for (i = 0; i < src_len / 2; i++) {
- uint8_t tmp;
-
- tmp = src[i];
- src[i] = src[src_len - 1 - i];
- src[src_len - 1 - i] = tmp;
- }
-}
-
-
-#ifndef WOLFSSL_SP_MATH
-/* same as mp_to_unsigned_bin() with mp_reverse() skipped */
-static int mp_to_unsigned_lsb_bin(mp_int *a, unsigned char *b)
-{
- int res;
- mp_int t;
-
- res = mp_init_copy(&t, a);
- if (res == MP_OKAY) {
- res = mp_to_unsigned_bin_at_pos(0, &t, b);
- if (res >= 0)
- res = 0;
- #ifndef USE_FAST_MATH
- mp_clear(&t);
- #endif
- }
-
- return res;
-}
-#endif
-
-static int ltc_get_lsb_bin_from_mp_int(uint8_t *dst, mp_int *A, uint16_t *psz)
-{
- int res;
- uint16_t sz;
-
- sz = mp_unsigned_bin_size(A);
-#ifndef WOLFSSL_SP_MATH
- res = mp_to_unsigned_lsb_bin(A, dst); /* result is lsbyte at lowest addr as required by LTC */
-#else
- res = mp_to_unsigned_bin(A, dst);
- if (res == MP_OKAY) {
- ltc_reverse_array(dst, sz);
- }
-#endif
- *psz = sz;
- return res;
-}
-
-/* LTC TFM */
-#if defined(FREESCALE_LTC_TFM)
-
-
-/* these function are used by wolfSSL upper layers (like RSA) */
-
-/* c = a * b */
-int mp_mul(mp_int *A, mp_int *B, mp_int *C)
-{
- int res = MP_OKAY;
- int szA, szB;
- szA = mp_unsigned_bin_size(A);
- szB = mp_unsigned_bin_size(B);
-
- /* if unsigned mul can fit into LTC PKHA let's use it, otherwise call software mul */
- if ((szA <= LTC_MAX_INT_BYTES / 2) && (szB <= LTC_MAX_INT_BYTES / 2)) {
- int neg = 0;
-
-#ifndef WOLFSSL_SP_MATH
- neg = (A->sign == B->sign) ? MP_ZPOS : MP_NEG;
-#endif
-
- /* unsigned multiply */
- uint8_t *ptrA = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, 0, DYNAMIC_TYPE_BIGINT);
- uint8_t *ptrB = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, 0, DYNAMIC_TYPE_BIGINT);
- uint8_t *ptrC = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, 0, DYNAMIC_TYPE_BIGINT);
-
- if (ptrA && ptrB && ptrC) {
- uint16_t sizeA, sizeB;
-
- res = ltc_get_lsb_bin_from_mp_int(ptrA, A, &sizeA);
- if (res == MP_OKAY)
- res = ltc_get_lsb_bin_from_mp_int(ptrB, B, &sizeB);
- if (res == MP_OKAY) {
- XMEMSET(ptrC, 0xFF, LTC_MAX_INT_BYTES);
-
- LTC_PKHA_ModMul(LTC_BASE, ptrA, sizeA, ptrB, sizeB, ptrC, LTC_MAX_INT_BYTES, ptrB, &sizeB,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue, kLTC_PKHA_NormalValue,
- kLTC_PKHA_TimingEqualized);
-
- ltc_reverse_array(ptrB, sizeB);
- res = mp_read_unsigned_bin(C, ptrB, sizeB);
- }
- }
-
-#ifndef WOLFSSL_SP_MATH
- /* fix sign */
- C->sign = neg;
-#endif
- if (ptrA) {
- XFREE(ptrA, NULL, DYNAMIC_TYPE_BIGINT);
- }
- if (ptrB) {
- XFREE(ptrB, NULL, DYNAMIC_TYPE_BIGINT);
- }
- if (ptrC) {
- XFREE(ptrC, NULL, DYNAMIC_TYPE_BIGINT);
- }
- }
- else {
-#ifdef WOLFSSL_SP_MATH
- res = sp_mul(A, B, C);
-#else
- res = wolfcrypt_mp_mul(A, B, C);
-#endif
- }
- return res;
-}
-
-/* c = a mod b, 0 <= c < b */
-int mp_mod(mp_int *a, mp_int *b, mp_int *c)
-{
- int res = MP_OKAY;
-#if defined(FREESCALE_LTC_TFM_RSA_4096_ENABLE)
- int szA, szB;
- szA = mp_unsigned_bin_size(a);
- szB = mp_unsigned_bin_size(b);
- if ((szA <= LTC_MAX_INT_BYTES) && (szB <= LTC_MAX_INT_BYTES))
- {
-#endif /* FREESCALE_LTC_TFM_RSA_4096_ENABLE */
- int neg = 0;
- uint8_t *ptrA = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, 0, DYNAMIC_TYPE_BIGINT);
- uint8_t *ptrB = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, 0, DYNAMIC_TYPE_BIGINT);
- uint8_t *ptrC = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, 0, DYNAMIC_TYPE_BIGINT);
-
-#ifndef WOLFSSL_SP_MATH
- /* get sign for the result */
- neg = (a->sign == b->sign) ? MP_ZPOS : MP_NEG;
-#endif
-
- /* get remainder of unsigned a divided by unsigned b */
- if (ptrA && ptrB && ptrC) {
- uint16_t sizeA, sizeB, sizeC;
-
- res = ltc_get_lsb_bin_from_mp_int(ptrA, a, &sizeA);
- if (res == MP_OKAY)
- res = ltc_get_lsb_bin_from_mp_int(ptrB, b, &sizeB);
- if (res == MP_OKAY) {
- if (kStatus_Success ==
- LTC_PKHA_ModRed(LTC_BASE, ptrA, sizeA, ptrB, sizeB, ptrC, &sizeC, kLTC_PKHA_IntegerArith))
- {
- ltc_reverse_array(ptrC, sizeC);
- res = mp_read_unsigned_bin(c, ptrC, sizeC);
- }
- else {
- res = MP_VAL;
- }
- }
- }
- else {
- res = MP_MEM;
- }
-
-#ifndef WOLFSSL_SP_MATH
- /* fix sign */
- c->sign = neg;
-#endif
-
- if (ptrA) {
- XFREE(ptrA, NULL, DYNAMIC_TYPE_BIGINT);
- }
- if (ptrB) {
- XFREE(ptrB, NULL, DYNAMIC_TYPE_BIGINT);
- }
- if (ptrC) {
- XFREE(ptrC, NULL, DYNAMIC_TYPE_BIGINT);
- }
-#if defined(FREESCALE_LTC_TFM_RSA_4096_ENABLE)
- }
- else {
- res = wolfcrypt_mp_mod(a, b, c);
- }
-#endif /* FREESCALE_LTC_TFM_RSA_4096_ENABLE */
- return res;
-}
-
-/* c = 1/a (mod b) for odd b only */
-int mp_invmod(mp_int *a, mp_int *b, mp_int *c)
-{
- int res = MP_OKAY;
-#if defined(FREESCALE_LTC_TFM_RSA_4096_ENABLE)
- int szA, szB;
- szA = mp_unsigned_bin_size(a);
- szB = mp_unsigned_bin_size(b);
- if ((szA <= LTC_MAX_INT_BYTES) && (szB <= LTC_MAX_INT_BYTES)) {
-#endif
- uint8_t *ptrA = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, 0, DYNAMIC_TYPE_BIGINT);
- uint8_t *ptrB = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, 0, DYNAMIC_TYPE_BIGINT);
- uint8_t *ptrC = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, 0, DYNAMIC_TYPE_BIGINT);
-
- if (ptrA && ptrB && ptrC) {
- uint16_t sizeA, sizeB, sizeC;
-
- res = ltc_get_lsb_bin_from_mp_int(ptrA, a, &sizeA);
- if (res == MP_OKAY)
- res = ltc_get_lsb_bin_from_mp_int(ptrB, b, &sizeB);
- if (res == MP_OKAY) {
- if (kStatus_Success ==
- LTC_PKHA_ModInv(LTC_BASE, ptrA, sizeA, ptrB, sizeB, ptrC, &sizeC, kLTC_PKHA_IntegerArith))
- {
- ltc_reverse_array(ptrC, sizeC);
- res = mp_read_unsigned_bin(c, ptrC, sizeC);
- }
- else {
- res = MP_VAL;
- }
- }
- }
- else {
- res = MP_MEM;
- }
-
-#ifndef WOLFSSL_SP_MATH
- c->sign = a->sign;
-#endif
- if (ptrA) {
- XFREE(ptrA, NULL, DYNAMIC_TYPE_BIGINT);
- }
- if (ptrB) {
- XFREE(ptrB, NULL, DYNAMIC_TYPE_BIGINT);
- }
- if (ptrC) {
- XFREE(ptrC, NULL, DYNAMIC_TYPE_BIGINT);
- }
-#if defined(FREESCALE_LTC_TFM_RSA_4096_ENABLE)
- }
- else {
- res = wolfcrypt_mp_invmod(a, b, c);
- }
-#endif /* FREESCALE_LTC_TFM_RSA_4096_ENABLE */
- return res;
-}
-
-/* d = a * b (mod c) */
-int mp_mulmod(mp_int *a, mp_int *b, mp_int *c, mp_int *d)
-{
- int res = MP_OKAY;
-#if defined(FREESCALE_LTC_TFM_RSA_4096_ENABLE)
- int szA, szB, szC;
- szA = mp_unsigned_bin_size(a);
- szB = mp_unsigned_bin_size(b);
- szC = mp_unsigned_bin_size(c);
- if ((szA <= LTC_MAX_INT_BYTES) && (szB <= LTC_MAX_INT_BYTES) && (szC <= LTC_MAX_INT_BYTES)) {
-#endif /* FREESCALE_LTC_TFM_RSA_4096_ENABLE */
- mp_int t;
-
- uint8_t *ptrA = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, NULL, DYNAMIC_TYPE_BIGINT);
- uint8_t *ptrB = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, NULL, DYNAMIC_TYPE_BIGINT);
- uint8_t *ptrC = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, NULL, DYNAMIC_TYPE_BIGINT);
- uint8_t *ptrD = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, NULL, DYNAMIC_TYPE_BIGINT);
-
- /* if A or B is negative, subtract abs(A) or abs(B) from modulus to get positive integer representation of the
- * same number */
- res = mp_init(&t);
-#ifndef WOLFSSL_SP_MATH
- if (a->sign) {
- if (res == MP_OKAY)
- res = mp_add(a, c, &t);
- if (res == MP_OKAY)
- res = mp_copy(&t, a);
- }
- if (b->sign) {
- if (res == MP_OKAY)
- res = mp_add(b, c, &t);
- if (res == MP_OKAY)
- res = mp_copy(&t, b);
- }
-#endif
-
- if (res == MP_OKAY && ptrA && ptrB && ptrC && ptrD) {
- uint16_t sizeA, sizeB, sizeC, sizeD;
-
- res = ltc_get_lsb_bin_from_mp_int(ptrA, a, &sizeA);
- if (res == MP_OKAY)
- res = ltc_get_lsb_bin_from_mp_int(ptrB, b, &sizeB);
- if (res == MP_OKAY)
- res = ltc_get_lsb_bin_from_mp_int(ptrC, c, &sizeC);
-
- /* (A*B)mod C = ((A mod C) * (B mod C)) mod C */
- if (res == MP_OKAY && LTC_PKHA_CompareBigNum(ptrA, sizeA, ptrC, sizeC) >= 0) {
- if (kStatus_Success !=
- LTC_PKHA_ModRed(LTC_BASE, ptrA, sizeA, ptrC, sizeC, ptrA, &sizeA, kLTC_PKHA_IntegerArith))
- {
- res = MP_VAL;
- }
- }
- if (res == MP_OKAY && (LTC_PKHA_CompareBigNum(ptrB, sizeB, ptrC, sizeC) >= 0))
- {
- if (kStatus_Success !=
- LTC_PKHA_ModRed(LTC_BASE, ptrB, sizeB, ptrC, sizeC, ptrB, &sizeB, kLTC_PKHA_IntegerArith))
- {
- res = MP_VAL;
- }
- }
-
- if (res == MP_OKAY) {
- if (kStatus_Success != LTC_PKHA_ModMul(LTC_BASE, ptrA, sizeA, ptrB, sizeB, ptrC, sizeC, ptrD, &sizeD,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue,
- kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized))
- {
- res = MP_VAL;
- }
- }
-
- if (res == MP_OKAY) {
- ltc_reverse_array(ptrD, sizeD);
- res = mp_read_unsigned_bin(d, ptrD, sizeD);
- }
- }
- else {
- res = MP_MEM;
- }
-
- if (ptrA) {
- XFREE(ptrA, NULL, DYNAMIC_TYPE_BIGINT);
- }
- if (ptrB) {
- XFREE(ptrB, NULL, DYNAMIC_TYPE_BIGINT);
- }
- if (ptrC) {
- XFREE(ptrC, NULL, DYNAMIC_TYPE_BIGINT);
- }
- if (ptrD) {
- XFREE(ptrD, NULL, DYNAMIC_TYPE_BIGINT);
- }
- #ifndef USE_FAST_MATH
- mp_clear(&t);
- #endif
-#if defined(FREESCALE_LTC_TFM_RSA_4096_ENABLE)
- }
- else {
- res = wolfcrypt_mp_mulmod(a, b, c, d);
- }
-#endif /* FREESCALE_LTC_TFM_RSA_4096_ENABLE */
- return res;
-}
-
-/* Y = G^X mod P */
-int mp_exptmod(mp_int *G, mp_int *X, mp_int *P, mp_int *Y)
-{
- int res = MP_OKAY;
-#if defined(FREESCALE_LTC_TFM_RSA_4096_ENABLE)
- int szA, szB, szC;
- mp_int tmp;
-
- /* if G cannot fit into LTC_PKHA, reduce it */
- szA = mp_unsigned_bin_size(G);
- if (szA > LTC_MAX_INT_BYTES) {
- res = mp_init(&tmp);
- if (res != MP_OKAY)
- return res;
- if ((res = mp_mod(G, P, &tmp)) != MP_OKAY) {
- return res;
- }
- G = &tmp;
- szA = mp_unsigned_bin_size(G);
- }
-
- szB = mp_unsigned_bin_size(X);
- szC = mp_unsigned_bin_size(P);
-
- if ((szA <= LTC_MAX_INT_BYTES) && (szB <= LTC_MAX_INT_BYTES) && (szC <= LTC_MAX_INT_BYTES)) {
-#endif /* FREESCALE_LTC_TFM_RSA_4096_ENABLE */
- mp_int t;
-
- uint16_t sizeG, sizeX, sizeP;
- uint8_t *ptrG = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, 0, DYNAMIC_TYPE_BIGINT);
- uint8_t *ptrX = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, 0, DYNAMIC_TYPE_BIGINT);
- uint8_t *ptrP = (uint8_t *)XMALLOC(LTC_MAX_INT_BYTES, 0, DYNAMIC_TYPE_BIGINT);
-
- /* if G is negative, add modulus to convert to positive number for LTC */
- res = mp_init(&t);
-#ifndef WOLFSSL_SP_MATH
- if (G->sign) {
- if (res == MP_OKAY)
- res = mp_add(G, P, &t);
- if (res == MP_OKAY)
- res = mp_copy(&t, G);
- }
-#endif
-
- if (res == MP_OKAY && ptrG && ptrX && ptrP) {
- res = ltc_get_lsb_bin_from_mp_int(ptrG, G, &sizeG);
- if (res == MP_OKAY)
- res = ltc_get_lsb_bin_from_mp_int(ptrX, X, &sizeX);
- if (res == MP_OKAY)
- res = ltc_get_lsb_bin_from_mp_int(ptrP, P, &sizeP);
-
- /* if number if greater that modulo, we must first reduce due to LTC requirement on modular exponentiaton */
- /* it needs number less than modulus. */
- /* we can take advantage of modular arithmetic rule that: A^B mod C = ( (A mod C)^B ) mod C
- and so we do first (A mod N) : LTC does not give size requirement on A versus N,
- and then the modular exponentiation.
- */
- /* if G >= P then */
- if (res == MP_OKAY && LTC_PKHA_CompareBigNum(ptrG, sizeG, ptrP, sizeP) >= 0) {
- res = (int)LTC_PKHA_ModRed(LTC_BASE, ptrG, sizeG, ptrP, sizeP, ptrG, &sizeG, kLTC_PKHA_IntegerArith);
-
- if (res != kStatus_Success) {
- res = MP_VAL;
- }
- }
-
- if (res == MP_OKAY) {
- res = (int)LTC_PKHA_ModExp(LTC_BASE, ptrG, sizeG, ptrP, sizeP, ptrX, sizeX, ptrP, &sizeP,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized);
-
- if (res != kStatus_Success) {
- res = MP_VAL;
- }
- else {
- ltc_reverse_array(ptrP, sizeP);
- res = mp_read_unsigned_bin(Y, ptrP, sizeP);
- }
- }
- }
- else {
- res = MP_MEM;
- }
-
- if (ptrG) {
- XFREE(ptrG, NULL, DYNAMIC_TYPE_BIGINT);
- }
- if (ptrX) {
- XFREE(ptrX, NULL, DYNAMIC_TYPE_BIGINT);
- }
- if (ptrP) {
- XFREE(ptrP, NULL, DYNAMIC_TYPE_BIGINT);
- }
- #ifndef USE_FAST_MATH
- mp_clear(&t);
- #endif
-#if defined(FREESCALE_LTC_TFM_RSA_4096_ENABLE)
- }
- else {
- res = wolfcrypt_mp_exptmod(G, X, P, Y);
- }
-
-#ifndef USE_FAST_MATH
- if (szA > LTC_MAX_INT_BYTES)
- mp_clear(&tmp);
-#endif
-#endif /* FREESCALE_LTC_TFM_RSA_4096_ENABLE */
- return res;
-}
-
-#endif /* FREESCALE_LTC_TFM */
-
-
-/* ECC */
-#if defined(HAVE_ECC) && defined(FREESCALE_LTC_ECC)
-
-/* convert from mp_int to LTC integer, as array of bytes of size sz.
- * if mp_int has less bytes than sz, add zero bytes at most significant byte positions.
- * This is when for example modulus is 32 bytes (P-256 curve)
- * and mp_int has only 31 bytes, we add leading zeros
- * so that result array has 32 bytes, same as modulus (sz).
- */
-static int ltc_get_from_mp_int(uint8_t *dst, mp_int *a, int sz)
-{
- int res;
- int szbin;
- int offset;
-
- /* check how many bytes are in the mp_int */
- szbin = mp_unsigned_bin_size(a);
-
- /* compute offset from dst */
- offset = sz - szbin;
- if (offset < 0)
- offset = 0;
- if (offset > sz)
- offset = sz;
-
- /* add leading zeroes */
- if (offset)
- XMEMSET(dst, 0, offset);
-
- /* convert mp_int to array of bytes */
- res = mp_to_unsigned_bin(a, dst + offset);
-
- if (res == MP_OKAY) {
- /* reverse array for LTC direct use */
- ltc_reverse_array(dst, sz);
- }
-
- return res;
-}
-
-/* ECC specs in lsbyte at lowest address format for direct use by LTC PKHA driver functions */
-#if defined(HAVE_ECC192) || defined(HAVE_ALL_CURVES)
-#define ECC192
-#endif
-#if defined(HAVE_ECC224) || defined(HAVE_ALL_CURVES)
-#define ECC224
-#endif
-#if !defined(NO_ECC256) || defined(HAVE_ALL_CURVES)
-#define ECC256
-#endif
-#if defined(HAVE_ECC384) || defined(HAVE_ALL_CURVES)
-#define ECC384
-#endif
-
-/* P-256 */
-#ifdef ECC256
-static const uint8_t ltc_ecc256_modulus[32] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF};
-static const uint8_t ltc_ecc256_r2modn[32] = {
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00};
-static const uint8_t ltc_ecc256_aCurveParam[32] = {
- 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF};
-static const uint8_t ltc_ecc256_bCurveParam[32] = {
- 0x4B, 0x60, 0xD2, 0x27, 0x3E, 0x3C, 0xCE, 0x3B, 0xF6, 0xB0, 0x53,
- 0xCC, 0xB0, 0x06, 0x1D, 0x65, 0xBC, 0x86, 0x98, 0x76, 0x55, 0xBD,
- 0xEB, 0xB3, 0xE7, 0x93, 0x3A, 0xAA, 0xD8, 0x35, 0xC6, 0x5A};
-#endif
-
-#ifdef ECC192
-static const uint8_t ltc_ecc192_modulus[24] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
-static const uint8_t ltc_ecc192_r2modn[24] = {
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
-static const uint8_t ltc_ecc192_aCurveParam[24] = {
- 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
-static const uint8_t ltc_ecc192_bCurveParam[24] = {
- 0xB1, 0xB9, 0x46, 0xC1, 0xEC, 0xDE, 0xB8, 0xFE, 0x49, 0x30, 0x24, 0x72,
- 0xAB, 0xE9, 0xA7, 0x0F, 0xE7, 0x80, 0x9C, 0xE5, 0x19, 0x05, 0x21, 0x64};
-#endif
-
-#ifdef ECC224
-static const uint8_t ltc_ecc224_modulus[28] = {
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
-static const uint8_t ltc_ecc224_r2modn[28] = {
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00};
-static const uint8_t ltc_ecc224_aCurveParam[28] = {
- 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
-static const uint8_t ltc_ecc224_bCurveParam[28] = {
- 0xB4, 0xFF, 0x55, 0x23, 0x43, 0x39, 0x0B, 0x27, 0xBA, 0xD8,
- 0xBF, 0xD7, 0xB7, 0xB0, 0x44, 0x50, 0x56, 0x32, 0x41, 0xF5,
- 0xAB, 0xB3, 0x04, 0x0C, 0x85, 0x0A, 0x05, 0xB4};
-#endif
-
-#ifdef ECC384
-static const uint8_t ltc_ecc384_modulus[48] = {
- 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-static const uint8_t ltc_ecc384_r2modn[48] = {
- 0x01, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
-static const uint8_t ltc_ecc384_aCurveParam[48] = {
- 0xfc, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-static const uint8_t ltc_ecc384_bCurveParam[48] = {
- 0xef, 0x2a, 0xec, 0xd3, 0xed, 0xc8, 0x85, 0x2a, 0x9d, 0xd1, 0x2e, 0x8a,
- 0x8d, 0x39, 0x56, 0xc6, 0x5a, 0x87, 0x13, 0x50, 0x8f, 0x08, 0x14, 0x03,
- 0x12, 0x41, 0x81, 0xfe, 0x6e, 0x9c, 0x1d, 0x18, 0x19, 0x2d, 0xf8, 0xe3,
- 0x6b, 0x05, 0x8e, 0x98, 0xe4, 0xe7, 0x3e, 0xe2, 0xa7, 0x2f, 0x31, 0xb3};
-#endif
-
-static int ltc_get_ecc_specs(const uint8_t **modulus, const uint8_t **r2modn,
- const uint8_t **aCurveParam, const uint8_t **bCurveParam, int size)
-{
- switch(size) {
- case 32:
- *modulus = ltc_ecc256_modulus;
- *r2modn = ltc_ecc256_r2modn;
- *aCurveParam = ltc_ecc256_aCurveParam;
- *bCurveParam = ltc_ecc256_bCurveParam;
- break;
-#ifdef ECC224
- case 28:
- *modulus = ltc_ecc224_modulus;
- *r2modn = ltc_ecc224_r2modn;
- *aCurveParam = ltc_ecc224_aCurveParam;
- *bCurveParam = ltc_ecc224_bCurveParam;
- break;
-#endif
-#ifdef ECC192
- case 24:
- *modulus = ltc_ecc192_modulus;
- *r2modn = ltc_ecc192_r2modn;
- *aCurveParam = ltc_ecc192_aCurveParam;
- *bCurveParam = ltc_ecc192_bCurveParam;
- break;
-#endif
-#ifdef HAVE_ECC384
- case 48:
- *modulus = ltc_ecc384_modulus;
- *r2modn = ltc_ecc384_r2modn;
- *aCurveParam = ltc_ecc384_aCurveParam;
- *bCurveParam = ltc_ecc384_bCurveParam;
- break;
-#endif
- default:
- return -1;
- }
- return 0;
-}
-
-/**
- Perform a point multiplication (timing resistant)
- k The scalar to multiply by
- G The base point
- R [out] Destination for kG
- modulus The modulus of the field the ECC curve is in
- map Boolean whether to map back to affine or not
- (1==map, 0 == leave in projective)
- return MP_OKAY on success
-*/
-int wc_ecc_mulmod_ex(mp_int *k, ecc_point *G, ecc_point *R, mp_int* a,
- mp_int *modulus, int map, void* heap)
-{
- ltc_pkha_ecc_point_t B;
- uint8_t size;
- int szModulus;
- int szkbin;
- bool point_of_infinity;
- status_t status;
- int res;
-
- (void)a;
- (void)heap;
-
- uint8_t Gxbin[LTC_MAX_ECC_BITS / 8];
- uint8_t Gybin[LTC_MAX_ECC_BITS / 8];
- uint8_t kbin[LTC_MAX_INT_BYTES];
-
- const uint8_t *modbin;
- const uint8_t *aCurveParam;
- const uint8_t *bCurveParam;
- const uint8_t *r2modn;
-
- if (k == NULL || G == NULL || R == NULL || modulus == NULL) {
- return ECC_BAD_ARG_E;
- }
-
- szModulus = mp_unsigned_bin_size(modulus);
- szkbin = mp_unsigned_bin_size(k);
-
- res = ltc_get_from_mp_int(kbin, k, szkbin);
- if (res == MP_OKAY)
- res = ltc_get_from_mp_int(Gxbin, G->x, szModulus);
- if (res == MP_OKAY)
- res = ltc_get_from_mp_int(Gybin, G->y, szModulus);
-
- if (res != MP_OKAY)
- return res;
-
- size = szModulus;
- /* find LTC friendly parameters for the selected curve */
- if (0 != ltc_get_ecc_specs(&modbin, &r2modn, &aCurveParam, &bCurveParam, size)) {
- return ECC_BAD_ARG_E;
- }
-
- B.X = &Gxbin[0];
- B.Y = &Gybin[0];
-
- status = LTC_PKHA_ECC_PointMul(LTC_BASE, &B, kbin, szkbin, modbin, r2modn, aCurveParam, bCurveParam, size,
- kLTC_PKHA_TimingEqualized, kLTC_PKHA_IntegerArith, &B, &point_of_infinity);
- if (status != kStatus_Success) {
- return MP_VAL;
- }
-
- ltc_reverse_array(Gxbin, size);
- ltc_reverse_array(Gybin, size);
- res = mp_read_unsigned_bin(R->x, Gxbin, size);
- if (res == MP_OKAY) {
- res = mp_read_unsigned_bin(R->y, Gybin, size);
- /* if k is negative, we compute the multiplication with abs(-k)
- * with result (x, y) and modify the result to (x, -y)
- */
-#ifndef WOLFSSL_SP_MATH
- R->y->sign = k->sign;
-#endif
- }
- if (res == MP_OKAY)
- res = mp_set(R->z, 1);
-
- return res;
-}
-
-int wc_ecc_point_add(ecc_point *mG, ecc_point *mQ, ecc_point *mR, mp_int *m)
-{
- int res;
- ltc_pkha_ecc_point_t A, B;
- int size;
- status_t status;
-
- uint8_t Gxbin[LTC_MAX_ECC_BITS / 8];
- uint8_t Gybin[LTC_MAX_ECC_BITS / 8];
- uint8_t Qxbin[LTC_MAX_ECC_BITS / 8];
- uint8_t Qybin[LTC_MAX_ECC_BITS / 8];
- const uint8_t *modbin;
- const uint8_t *aCurveParam;
- const uint8_t *bCurveParam;
- const uint8_t *r2modn;
-
- size = mp_unsigned_bin_size(m);
-
- /* find LTC friendly parameters for the selected curve */
- if (ltc_get_ecc_specs(&modbin, &r2modn, &aCurveParam, &bCurveParam, size) != 0) {
- res = ECC_BAD_ARG_E;
- }
- else {
- res = ltc_get_from_mp_int(Gxbin, mG->x, size);
- if (res == MP_OKAY)
- res = ltc_get_from_mp_int(Gybin, mG->y, size);
- if (res == MP_OKAY)
- res = ltc_get_from_mp_int(Qxbin, mQ->x, size);
- if (res == MP_OKAY)
- res = ltc_get_from_mp_int(Qybin, mQ->y, size);
-
- if (res != MP_OKAY)
- return res;
-
- A.X = Gxbin;
- A.Y = Gybin;
-
- B.X = Qxbin;
- B.Y = Qybin;
-
- status = LTC_PKHA_ECC_PointAdd(LTC_BASE, &A, &B, modbin, r2modn, aCurveParam, bCurveParam, size,
- kLTC_PKHA_IntegerArith, &A);
- if (status != kStatus_Success) {
- res = MP_VAL;
- }
- else {
- ltc_reverse_array(Gxbin, size);
- ltc_reverse_array(Gybin, size);
- res = mp_read_unsigned_bin(mR->x, Gxbin, size);
- if (res == MP_OKAY)
- res = mp_read_unsigned_bin(mR->y, Gybin, size);
- if (res == MP_OKAY)
- res = mp_set(mR->z, 1);
- }
- }
- return res;
-}
-
-#if defined(HAVE_ED25519) || defined(HAVE_CURVE25519)
-/* Weierstrass parameters of prime 2^255 - 19 */
-static const uint8_t curve25519_modbin[32] = {
- 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f};
-/* precomputed R2modN for the curve25519 */
-static const uint8_t r2mod[32] = {
- 0xa4, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
-
-/* invThree = ModInv(3,curve25519_modbin) in LSB first */
-static const uint8_t invThree[32] = {
- 0x49, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
- 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
- 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55};
-
-/*
- *
- * finds square root in finite field when modulus congruent to 5 modulo 8
- * this is fixed to curve25519 modulus 2^255 - 19 which is congruent to 5 modulo 8
- *
- * This function solves equation: res^2 = a mod (2^255 - 19)
- *
-p = prime
-p % 8 must be 5
-
-v = ModularArithmetic.powmod(2*a, (p-5)/8, p)
-i = (2*a*v**2) % p
-r1 = 1*a*v*(i - 1) % p
-r2 = -1*a*v*(i - 1) % p
-puts "Gy=0x#{r2.to_s(16)}"
- */
-status_t LTC_PKHA_Prime25519SquareRootMod(const uint8_t *A, size_t sizeA,
- uint8_t *res, size_t *szRes, int sign)
-{
- status_t status;
- const uint8_t curve25519_param[] = {
- 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f};
- uint8_t twoA[sizeof(curve25519_modbin)] = {0};
- uint8_t V[sizeof(curve25519_modbin)] = {0};
- uint8_t I[sizeof(curve25519_modbin)] = {0};
- uint8_t VV[sizeof(curve25519_modbin)] = {0};
- uint16_t szTwoA = 0;
- uint16_t szV = 0;
- uint16_t szVV = 0;
- uint16_t szI = 0;
- uint16_t szRes16 = 0;
- uint8_t one = 1;
-
- /* twoA = 2*A % p */
- status = LTC_PKHA_ModAdd(LTC_BASE, A, sizeA, A, sizeA, curve25519_modbin,
- sizeof(curve25519_modbin), twoA, &szTwoA, kLTC_PKHA_IntegerArith);
-
- /* V = ModularArithmetic.powmod(twoA, (p-5)/8, p) */
- if (status == kStatus_Success) {
- status =
- LTC_PKHA_ModExp(LTC_BASE, twoA, szTwoA, curve25519_modbin,
- sizeof(curve25519_modbin), curve25519_param,
- sizeof(curve25519_param), V, &szV, kLTC_PKHA_IntegerArith,
- kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized);
- }
-
- /* VV = V*V % p */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, V, szV, V, szV, curve25519_modbin,
- sizeof(curve25519_modbin), VV, &szVV, kLTC_PKHA_IntegerArith,
- kLTC_PKHA_NormalValue, kLTC_PKHA_NormalValue,
- kLTC_PKHA_TimingEqualized);
- }
-
- /* I = twoA * VV = 2*A*V*V % p */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, twoA, szTwoA, VV, szVV,
- curve25519_modbin, sizeof(curve25519_modbin), I, &szI,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue,
- kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized);
- }
-
- /* I = I - 1 */
- XMEMSET(VV, 0xff, sizeof(VV)); /* just temp for maximum integer - for non-modular subtract */
- if (0 <= LTC_PKHA_CompareBigNum(I, szI, &one, sizeof(one))) {
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModSub1(LTC_BASE, I, szI, &one, sizeof(one),
- VV, sizeof(VV), I, &szI);
- }
- }
- else {
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModSub1(LTC_BASE, curve25519_modbin,
- sizeof(curve25519_modbin), &one, sizeof(one), VV, sizeof(VV), I,
- &szI);
- }
- }
-
- /* res = a*v mod p */
- status = LTC_PKHA_ModMul(LTC_BASE, A, sizeA, V, szV, curve25519_modbin,
- sizeof(curve25519_modbin), res, &szRes16, kLTC_PKHA_IntegerArith,
- kLTC_PKHA_NormalValue, kLTC_PKHA_NormalValue,
- kLTC_PKHA_TimingEqualized);
-
- /* res = res * (i-1) mod p */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, res, szRes16, I, szI,
- curve25519_modbin, sizeof(curve25519_modbin), res, &szRes16,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue,
- kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized);
- }
-
- /* if X mod 2 != X_0 then we need the -X
- *
- * X mod 2 get from LSB bit0
- */
- if ((status == kStatus_Success) &&
- ((bool)sign != (bool)(res[0] & 0x01u)))
- {
- status = LTC_PKHA_ModSub1(LTC_BASE, curve25519_modbin,
- sizeof(curve25519_modbin), res, szRes16, VV, sizeof(VV), res,
- &szRes16); /* -a = p - a */
- }
-
- if (status == kStatus_Success) {
- *szRes = szRes16;
- }
-
- return status;
-}
-#endif /* HAVE_ED25519 || HAVE_CURVE25519 */
-
-
-#ifdef HAVE_CURVE25519
-
-/* for LTC we need Weierstrass format of curve25519 parameters
- * these two are base point X and Y.
- * in LSB first format (native for LTC)
- */
-static const ECPoint ecBasePoint = {
- {0x5a, 0x24, 0xad, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x2a},
- {0xd9, 0xd3, 0xce, 0x7e, 0xa2, 0xc5, 0xe9, 0x29, 0xb2, 0x61, 0x7c,
- 0x6d, 0x7e, 0x4d, 0x3d, 0x92, 0x4c, 0xd1, 0x48, 0x77, 0x2c, 0xdd,
- 0x1e, 0xe0, 0xb4, 0x86, 0xa0, 0xb8, 0xa1, 0x19, 0xae, 0x20},
-};
-
-const ECPoint *wc_curve25519_GetBasePoint(void)
-{
- return &ecBasePoint;
-}
-
-static const uint8_t curve25519_aCurveParam[CURVE25519_KEYSIZE] = {
- 0x44, 0xa1, 0x14, 0x49, 0x98, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x2a};
-
-static const uint8_t curve_bCurveParam[CURVE25519_KEYSIZE] = {
- 0x64, 0xc8, 0x10, 0x77, 0x9c, 0x5e, 0x0b, 0x26, 0xb4, 0x97, 0xd0,
- 0x5e, 0x42, 0x7b, 0x09, 0xed,
- 0x25, 0xb4, 0x97, 0xd0, 0x5e, 0x42, 0x7b, 0x09, 0xed, 0x25, 0xb4,
- 0x97, 0xd0, 0x5e, 0x42, 0x7b};
-
-/* transform a point on Montgomery curve to a point on Weierstrass curve */
-status_t LTC_PKHA_Curve25519ToWeierstrass(
- const ltc_pkha_ecc_point_t *ltcPointIn,ltc_pkha_ecc_point_t *ltcPointOut)
-{
- /* offset X point (in Montgomery) so that it becomes Weierstrass */
- const uint8_t offset[] = {
- 0x51, 0x24, 0xad, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x2a};
- uint16_t sizeRes = 0;
- status_t status;
- status = LTC_PKHA_ModAdd(LTC_BASE, ltcPointIn->X, CURVE25519_KEYSIZE,
- offset, sizeof(offset), curve25519_modbin, CURVE25519_KEYSIZE,
- ltcPointOut->X, &sizeRes, kLTC_PKHA_IntegerArith);
-
- if (status == kStatus_Success) {
- if (ltcPointOut->Y != ltcPointIn->Y) {
- XMEMCPY(ltcPointOut->Y, ltcPointIn->Y, CURVE25519_KEYSIZE);
- }
- }
-
- return status;
-}
-
-/* transform a point on Weierstrass curve to a point on Montgomery curve */
-status_t LTC_PKHA_WeierstrassToCurve25519(
- const ltc_pkha_ecc_point_t *ltcPointIn, ltc_pkha_ecc_point_t *ltcPointOut)
-{
- status_t status;
- uint16_t resultSize = 0;
- const uint8_t three = 0x03;
-
- status = LTC_PKHA_ModMul(LTC_BASE, &three, sizeof(three), ltcPointIn->X,
- CURVE25519_KEYSIZE, curve25519_modbin, CURVE25519_KEYSIZE,
- ltcPointOut->X, &resultSize, kLTC_PKHA_IntegerArith,
- kLTC_PKHA_NormalValue, kLTC_PKHA_NormalValue,
- kLTC_PKHA_TimingEqualized);
-
- if (status == kStatus_Success) {
- const uint8_t A[] = {0x06, 0x6d, 0x07};
- if (LTC_PKHA_CompareBigNum(ltcPointOut->X, resultSize, A, sizeof(A))) {
- status = LTC_PKHA_ModSub1(LTC_BASE, ltcPointOut->X, resultSize, A,
- sizeof(A), curve25519_modbin, CURVE25519_KEYSIZE,
- ltcPointOut->X, &resultSize);
- }
- else {
- status = LTC_PKHA_ModSub2(LTC_BASE, ltcPointOut->X, resultSize, A,
- sizeof(A), curve25519_modbin, CURVE25519_KEYSIZE,
- ltcPointOut->X, &resultSize);
- }
- }
-
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, invThree, CURVE25519_KEYSIZE,
- ltcPointOut->X, resultSize, curve25519_modbin, CURVE25519_KEYSIZE,
- ltcPointOut->X, &resultSize, kLTC_PKHA_IntegerArith,
- kLTC_PKHA_NormalValue, kLTC_PKHA_NormalValue,
- kLTC_PKHA_TimingEqualized);
- }
-
- if (status == kStatus_Success) {
- if (ltcPointOut->Y != ltcPointIn->Y) {
- XMEMCPY(ltcPointOut->Y, ltcPointIn->Y, CURVE25519_KEYSIZE);
- }
- }
-
- return status;
-}
-
-/* Y = square root (X^3 + 486662*X^2 + X) */
-status_t LTC_PKHA_Curve25519ComputeY(ltc_pkha_ecc_point_t *ltcPoint)
-{
- uint8_t three = 3;
- const uint8_t A[] = {0x06, 0x6d, 0x07};
- uint8_t U[CURVE25519_KEYSIZE] = {0};
- uint8_t X2[CURVE25519_KEYSIZE] = {0};
- uint16_t sizeU = 0;
- uint16_t sizeX2 = 0;
- size_t szRes = 0;
- status_t status;
-
- /* X^3 */
- status = LTC_PKHA_ModExp(LTC_BASE, ltcPoint->X, CURVE25519_KEYSIZE,
- curve25519_modbin, CURVE25519_KEYSIZE, &three, 1, U, &sizeU,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue,
- kLTC_PKHA_TimingEqualized);
-
- /* X^2 */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, ltcPoint->X, CURVE25519_KEYSIZE,
- ltcPoint->X, CURVE25519_KEYSIZE, curve25519_modbin,
- CURVE25519_KEYSIZE, X2, &sizeX2, kLTC_PKHA_IntegerArith,
- kLTC_PKHA_NormalValue, kLTC_PKHA_NormalValue,
- kLTC_PKHA_TimingEqualized);
- }
-
- /* 486662*X^2 */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, A, sizeof(A), X2, sizeX2,
- curve25519_modbin, CURVE25519_KEYSIZE, X2, &sizeX2,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue,
- kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized);
- }
-
- /* X^3 + 486662*X^2 */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModAdd(LTC_BASE, U, sizeU, X2, sizeX2,
- curve25519_modbin, CURVE25519_KEYSIZE, U, &sizeU,
- kLTC_PKHA_IntegerArith);
- }
-
- /* U = X^3 + 486662*X^2 + X */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModAdd(LTC_BASE, U, sizeU, ltcPoint->X,
- CURVE25519_KEYSIZE, curve25519_modbin, CURVE25519_KEYSIZE, U,
- &sizeU, kLTC_PKHA_IntegerArith);
- }
-
- /* Y = modular square root of U (U is Y^2) */
- if (status == kStatus_Success) {
- status = LTC_PKHA_Prime25519SquareRootMod(U, sizeU, ltcPoint->Y,
- &szRes, 1);
- }
-
- return status;
-}
-
-/* Q = n*P */
-/* if type is set, the input point p is in Montgomery curve coordinates,
- so there is a map to Weierstrass curve */
-/* q output point is always in Montgomery curve coordinates */
-int wc_curve25519(ECPoint *q, byte *n, const ECPoint *p, fsl_ltc_ecc_coordinate_system_t type)
-{
- status_t status;
- ltc_pkha_ecc_point_t ltcPoint;
- ltc_pkha_ecc_point_t ltcPointOut;
- ECPoint pIn = {{0}};
-
- XMEMCPY(&pIn, p, sizeof(*p));
- ltcPoint.X = &pIn.point[0];
- ltcPoint.Y = &pIn.pointY[0];
-
- /* if input point P is on Curve25519 Montgomery curve, transform
- it to Weierstrass equivalent */
- if (type == kLTC_Curve25519) {
- LTC_PKHA_Curve25519ToWeierstrass(&ltcPoint, &ltcPoint);
- }
-
- ltcPointOut.X = &q->point[0];
- ltcPointOut.Y = &q->pointY[0];
- /* curve25519_modbin, r2mod, curve25519_aCurveParam, curve25519_bCurveParam
- * are Weierstrass equivalent with Curve25519 */
- status = LTC_PKHA_ECC_PointMul(LTC_BASE, &ltcPoint, n, CURVE25519_KEYSIZE,
- curve25519_modbin, r2mod, curve25519_aCurveParam,
- curve25519_bCurveParam, CURVE25519_KEYSIZE, kLTC_PKHA_TimingEqualized,
- kLTC_PKHA_IntegerArith, &ltcPointOut, NULL);
-
- /* now need to map from Weierstrass form to Montgomery form */
- if (status == kStatus_Success) {
- status = LTC_PKHA_WeierstrassToCurve25519(&ltcPointOut, &ltcPointOut);
- }
-
- return (status == kStatus_Success) ? 0 : IS_POINT_E;
-}
-
-#endif /* HAVE_CURVE25519 */
-
-
-#ifdef HAVE_ED25519
-/* a and d are Edwards curve parameters -1 and -121665/121666 prime is 2^255 - 19.
- *
- * https://en.wikipedia.org/wiki/Montgomery_curve#Equivalence_with_Edward_curves
- */
-
-/* d parameter of ed25519 */
-static const uint8_t d_coefEd25519[] = {
- 0xa3, 0x78, 0x59, 0x13, 0xca, 0x4d, 0xeb, 0x75, 0xab, 0xd8, 0x41,
- 0x41, 0x4d, 0x0a, 0x70, 0x00, 0x98, 0xe8, 0x79, 0x77, 0x79, 0x40,
- 0xc7, 0x8c, 0x73, 0xfe, 0x6f, 0x2b, 0xee, 0x6c, 0x03, 0x52};
-
-/* Montgomery curve parameter A for a Montgomery curve equivalent with ed25519 */
-static const uint8_t A_coefEd25519[] = {
- 0x06, 0x6d, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
-
-/* Montgomery curve parameter B for a Montgomery curve equivalent with ed25519 */
-static const uint8_t B_coefEd25519[] = {
- 0xe5, 0x92, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f};
-
-/* these are pre-computed constants used in computations */
-
-/* = 3*B */
-static const uint8_t threeB_coefEd25519[] = {
- 0xd5, 0xb8, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f};
-
-/* = -A */
-static const uint8_t minus_A_coefEd25519[] = {
- 0xe7, 0x92, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f};
-
-/* = 1/B */
-static const uint8_t invB_coefEd25519[] = {
-0xc4, 0xa1, 0x29, 0x7b, 0x8d, 0x2c, 0x85, 0x22, 0xd5, 0x89, 0xaf,
- 0xaf, 0x6c, 0xfd, 0xe3, 0xff, 0xd9, 0x85, 0x21, 0xa2, 0xe1, 0x2f,
- 0xce, 0x1c, 0x63, 0x00, 0x24, 0x75, 0xc4, 0x24, 0x7f, 0x6b};
-
-/* = 1/(3*B) */
-static const uint8_t A_mul_invThreeB_coefEd25519[] = {
- 0xb9, 0x3e, 0xe4, 0xad, 0xa1, 0x37, 0xa7, 0x93, 0x1c, 0xa4, 0x35,
- 0xe0, 0x0c, 0x57, 0xbd, 0xaa, 0x6e, 0x51, 0x94, 0x3e, 0x14, 0xe0,
- 0xcb, 0xec, 0xbd, 0xff, 0xe7, 0xb1, 0x27, 0x92, 0x00, 0x63};
-
-/* Weierstrass curve parameter a for a Weierstrass curve equivalent with ed25519 */
-static const uint8_t a_coefEd25519[] = {
- 0x2d, 0x17, 0xbc, 0xf8, 0x8e, 0xe1, 0x71, 0xac, 0xf7, 0x2a, 0xa5,
- 0x0c, 0x5d, 0xb6, 0xb8, 0x6b, 0xd6, 0x3d, 0x7b, 0x61, 0x0d, 0xe1,
- 0x97, 0x31, 0xe6, 0xbe, 0xb9, 0xa5, 0xd3, 0xac, 0x4e, 0x5d};
-
-/* Weierstrass curve parameter b for a Weierstrass curve equivalent with ed25519 */
-static const uint8_t b_coefEd25519[] = {
- 0xa4, 0xb2, 0x64, 0xf3, 0xc1, 0xeb, 0x04, 0x90, 0x32, 0xbc, 0x9f,
- 0x6b, 0x97, 0x31, 0x48, 0xf5, 0xd5, 0x80, 0x57, 0x10, 0x06, 0xdb,
- 0x0d, 0x55, 0xe0, 0xb3, 0xd0, 0xcf, 0x9b, 0xb2, 0x11, 0x1d};
-
-/* Ed25519 basepoint B mapped to Weierstrass equivalent */
-static uint8_t Wx_Ed25519[ED25519_KEY_SIZE] = {
- 0x35, 0xef, 0x5a, 0x02, 0x9b, 0xc8, 0x55, 0xca, 0x9a, 0x7c, 0x61,
- 0x0d, 0xdf, 0x3f, 0xc1, 0xa9, 0x18, 0x06, 0xc2, 0xf1, 0x02, 0x8f,
- 0x0b, 0xf0, 0x39, 0x03, 0x2c, 0xd0, 0x0f, 0xdd, 0x78, 0x2a};
-static uint8_t Wy_Ed25519[ED25519_KEY_SIZE] = {
- 0x14, 0x1d, 0x2c, 0xf6, 0xf3, 0x30, 0x78, 0x9b, 0x65, 0x31, 0x71,
- 0x80, 0x61, 0xd0, 0x6f, 0xcf, 0x23, 0x83, 0x79, 0x63, 0xa5, 0x3b,
- 0x48, 0xbe, 0x2e, 0xa2, 0x1d, 0xc7, 0xa5, 0x44, 0xc6, 0x29};
-
-static const ltc_pkha_ecc_point_t basepointEd25519 = {
- Wx_Ed25519, Wy_Ed25519,
-};
-
-const ltc_pkha_ecc_point_t *LTC_PKHA_Ed25519_BasePoint(void)
-{
- return &basepointEd25519;
-}
-
-/* input point is on Weierstrass curve, typeOut determines the coordinates
- system of output point (either Weierstrass or Ed25519) */
-status_t LTC_PKHA_Ed25519_PointMul(const ltc_pkha_ecc_point_t *ltcPointIn,
- const uint8_t *N,
- size_t sizeN,
- ltc_pkha_ecc_point_t *ltcPointOut,
- fsl_ltc_ecc_coordinate_system_t typeOut)
-{
- uint16_t szN = (uint16_t)sizeN;
- status_t status;
- /* input on W, output in W, W parameters of ECC curve are Ed25519 curve
- parameters mapped to Weierstrass curve */
- status = LTC_PKHA_ECC_PointMul(LTC_BASE, ltcPointIn, N, szN,
- curve25519_modbin, r2mod, a_coefEd25519, b_coefEd25519,
- ED25519_KEY_SIZE, kLTC_PKHA_TimingEqualized, kLTC_PKHA_IntegerArith,
- ltcPointOut, NULL);
-
- /* Weierstrass coordinates to Ed25519 coordinates */
- if ((status == kStatus_Success) && (typeOut == kLTC_Ed25519)) {
- status = LTC_PKHA_WeierstrassToEd25519(ltcPointOut, ltcPointOut);
- }
- return status;
-}
-
-status_t LTC_PKHA_Ed25519ToWeierstrass(const ltc_pkha_ecc_point_t *ltcPointIn,
- ltc_pkha_ecc_point_t *ltcPointOut)
-{
- status_t status;
- uint8_t Mx[ED25519_KEY_SIZE] = {0};
- uint8_t My[ED25519_KEY_SIZE] = {0};
- uint8_t temp[ED25519_KEY_SIZE] = {0};
- uint8_t temp2[ED25519_KEY_SIZE] = {0};
- const uint8_t max[32] = {
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
- const uint8_t *Ex;
- const uint8_t *Ey;
- uint8_t *Gx;
- uint8_t *Gy;
- uint16_t szMx = 0;
- uint16_t szGx = 0;
- uint16_t szMy = 0;
- uint16_t szGy = 0;
- uint16_t szTemp = 0;
- uint16_t szTemp2 = 0;
- uint8_t one = 1;
-
- Ex = ltcPointIn->X;
- Ey = ltcPointIn->Y;
- Gx = ltcPointOut->X;
- Gy = ltcPointOut->Y;
- /* # (Ex, Ey) on Ed (a_ed, d) to (x, y) on M (A,B)
- Mx = (1 + Ey) * ModularArithmetic.invert(1 - Ey, prime) % prime
- My = (1 + Ey) * ModularArithmetic.invert((1 - Ey)*Ex, prime) % prime */
-
- /* Gx = ((Mx * ModularArithmetic.invert(B, prime)) +
- (A * ModularArithmetic.invert(3*B, prime))) % prime
- Gy = (My * ModularArithmetic.invert(B, prime)) % prime */
-
- /* temp = 1 + Ey */
- status = LTC_PKHA_ModAdd(LTC_BASE, Ey, ED25519_KEY_SIZE, &one, sizeof(one),
- curve25519_modbin, sizeof(curve25519_modbin), temp, &szTemp,
- kLTC_PKHA_IntegerArith);
-
- /* temp2 = 1 - Ey = 1 + (p - Ey) */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModSub1(LTC_BASE, curve25519_modbin,
- sizeof(curve25519_modbin), Ey, ED25519_KEY_SIZE, max, sizeof(max),
- temp2, &szTemp2);
- }
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModAdd(LTC_BASE, temp2, szTemp2, &one, sizeof(one),
- curve25519_modbin, sizeof(curve25519_modbin), temp2, &szTemp2,
- kLTC_PKHA_IntegerArith);
- }
-
- /* Mx = ModInv(temp2,prime) */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModInv(LTC_BASE, temp2, szTemp2, curve25519_modbin,
- sizeof(curve25519_modbin), Mx, &szMx, kLTC_PKHA_IntegerArith);
- }
-
- /* Mx = Mx * temp */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, Mx, szMx, temp, szTemp,
- curve25519_modbin, ED25519_KEY_SIZE, Mx, &szMx,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue,
- kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized);
- }
-
- /* My = temp2 * Ex */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, Ex, ED25519_KEY_SIZE, temp2,
- szTemp2, curve25519_modbin, ED25519_KEY_SIZE, My, &szMy,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue,
- kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized);
- }
-
- /* My = ModInv(My, prime) */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModInv(LTC_BASE, My, szMy, curve25519_modbin,
- sizeof(curve25519_modbin), My, &szMy, kLTC_PKHA_IntegerArith);
- }
- /* My = My * temp */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, My, szMy, temp, szTemp,
- curve25519_modbin, ED25519_KEY_SIZE, My, &szMy,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue,
- kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized);
- }
-
- /* Gx = Mx * invB_coefEd25519 + A_mul_invThreeB_coefEd25519 */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, Mx, szMx, invB_coefEd25519,
- sizeof(invB_coefEd25519), curve25519_modbin, ED25519_KEY_SIZE, Gx,
- &szGx, kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue,
- kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized);
- }
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModAdd(LTC_BASE, Gx, szGx,
- A_mul_invThreeB_coefEd25519, sizeof(A_mul_invThreeB_coefEd25519),
- curve25519_modbin, sizeof(curve25519_modbin), Gx, &szGx,
- kLTC_PKHA_IntegerArith);
- }
-
- /* Gy = My * invB_coefEd25519 */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, My, szMy, invB_coefEd25519,
- sizeof(invB_coefEd25519), curve25519_modbin, ED25519_KEY_SIZE, Gy,
- &szGy, kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue,
- kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized);
- }
-
- return status;
-}
-
-/*
-# (Gx, Gy) on W to (Ex, Ey) on E
-My = (B*Gy) % prime
-Mx = ((3*B*Gx-A)*ModularArithmetic.invert(3, prime)) % prime
-Ex = Mx*ModularArithmetic.invert(My, prime) % prime
-Ey = (Mx - 1)*ModularArithmetic.invert(Mx + 1, prime) % prime
-*/
-status_t LTC_PKHA_WeierstrassToEd25519(const ltc_pkha_ecc_point_t *ltcPointIn,
- ltc_pkha_ecc_point_t *ltcPointOut)
-{
- status_t status;
- uint8_t Mx[ED25519_KEY_SIZE] = {0};
- uint8_t My[ED25519_KEY_SIZE] = {0};
- uint8_t temp[ED25519_KEY_SIZE] = {0};
- const uint8_t *Gx;
- const uint8_t *Gy;
- uint8_t *Ex;
- uint8_t *Ey;
- uint16_t szMx = 0;
- uint16_t szEx = 0;
- uint16_t szMy = 0;
- uint16_t szEy = 0;
- uint16_t szTemp = 0;
- uint8_t one = 1;
-
- Gx = ltcPointIn->X;
- Gy = ltcPointIn->Y;
- Ex = ltcPointOut->X;
- Ey = ltcPointOut->Y;
-
- /* My = (B*Gy) % prime */
- status = LTC_PKHA_ModMul(LTC_BASE, B_coefEd25519, sizeof(B_coefEd25519),
- Gy, ED25519_KEY_SIZE, curve25519_modbin, ED25519_KEY_SIZE, My, &szMy,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue, kLTC_PKHA_NormalValue,
- kLTC_PKHA_TimingEqualized);
-
- /* temp = 3*B*Gx mod p */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, threeB_coefEd25519,
- sizeof(threeB_coefEd25519), Gx, ED25519_KEY_SIZE, curve25519_modbin,
- ED25519_KEY_SIZE, temp, &szTemp, kLTC_PKHA_IntegerArith,
- kLTC_PKHA_NormalValue, kLTC_PKHA_NormalValue,
- kLTC_PKHA_TimingEqualized);
- }
- /* temp = (temp - A) mod p */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModAdd(LTC_BASE, temp, szTemp, minus_A_coefEd25519,
- sizeof(minus_A_coefEd25519), curve25519_modbin,
- sizeof(curve25519_modbin), temp, &szTemp, kLTC_PKHA_IntegerArith);
- }
- /* Mx = (temp/3) mod p */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, temp, szTemp, invThree,
- sizeof(invThree), curve25519_modbin, sizeof(curve25519_modbin), Mx,
- &szMx, kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue,
- kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized);
- }
- /* temp = 1/My mod p */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModInv(LTC_BASE, My, szMy, curve25519_modbin,
- sizeof(curve25519_modbin), temp, &szTemp, kLTC_PKHA_IntegerArith);
- }
- /* Ex = Mx * temp mod p */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, temp, szTemp, Mx, szMx,
- curve25519_modbin, sizeof(curve25519_modbin), Ex, &szEx,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue,
- kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized);
- }
-
- /* temp = Mx + 1 mod p */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModAdd(LTC_BASE, Mx, szMx, &one, sizeof(one),
- curve25519_modbin, sizeof(curve25519_modbin), temp, &szTemp,
- kLTC_PKHA_IntegerArith);
- }
- /* temp = 1/temp mod p */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModInv(LTC_BASE, temp, szTemp, curve25519_modbin,
- sizeof(curve25519_modbin), temp, &szTemp, kLTC_PKHA_IntegerArith);
- }
- /* Mx = (Mx - 1) mod p */
- if (status == kStatus_Success) {
- if (LTC_PKHA_CompareBigNum(Mx, szMx, &one, sizeof(one)) >= 0) {
- status = LTC_PKHA_ModSub1(LTC_BASE, Mx, szMx, &one, sizeof(one),
- curve25519_modbin, sizeof(curve25519_modbin), Mx, &szMx);
- }
- else {
- /* Mx is zero, so it is modulus, thus we do modulus - 1 */
- XMEMCPY(Mx, curve25519_modbin, sizeof(curve25519_modbin));
- Mx[0]--;
- }
- }
- /* Ey = Mx * temp mod p */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, temp, szTemp, Mx, szMx,
- curve25519_modbin, sizeof(curve25519_modbin), Ey, &szEy,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue,
- kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized);
- }
-
- return status;
-}
-
-status_t LTC_PKHA_Ed25519_PointDecompress(const uint8_t *pubkey,
- size_t pubKeySize, ltc_pkha_ecc_point_t *ltcPointOut)
-{
- status_t status;
- const uint8_t one = 1;
-
- /* pubkey contains the Y coordinate and a sign of X
- */
-
- /* x^2 = ((y^2 - 1) / (d*y^2 +1)) mod p */
-
- /* decode Y from pubkey */
- XMEMCPY(ltcPointOut->Y, pubkey, pubKeySize);
- ltcPointOut->Y[pubKeySize - 1] &= ~0x80u;
- int sign = (int)(bool)(pubkey[pubKeySize - 1] & 0x80u);
-
- uint8_t U[ED25519_KEY_SIZE] = {0};
- uint8_t V[ED25519_KEY_SIZE] = {0};
- uint8_t *X = ltcPointOut->X;
- uint8_t *Y = ltcPointOut->Y;
- uint16_t szU = 0;
- uint16_t szV = 0;
- size_t szRes = 0;
-
- /* decode X from pubkey */
-
- /* U = y * y mod p */
- status = LTC_PKHA_ModMul(LTC_BASE, Y, ED25519_KEY_SIZE, Y,
- ED25519_KEY_SIZE, curve25519_modbin, ED25519_KEY_SIZE, U, &szU,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue, kLTC_PKHA_NormalValue,
- kLTC_PKHA_TimingEqualized);
- XMEMCPY(V, U, szU);
- szV = szU;
-
- /* U = U - 1 = y^2 - 1 */
- if (status == kStatus_Success) {
- if (LTC_PKHA_CompareBigNum(U, szU, &one, sizeof(one)) >= 0) {
- status = LTC_PKHA_ModSub1(LTC_BASE, U, szU, &one, sizeof(one),
- curve25519_modbin, sizeof(curve25519_modbin), U, &szU);
- }
- else {
- /* U is zero, so it is modulus, thus we do modulus - 1 */
- XMEMCPY(U, curve25519_modbin, sizeof(curve25519_modbin));
- U[0]--;
- }
- }
-
- /* V = d*y*y + 1 */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, V, szV, d_coefEd25519,
- ED25519_KEY_SIZE, curve25519_modbin, ED25519_KEY_SIZE, V, &szV,
- kLTC_PKHA_IntegerArith, kLTC_PKHA_NormalValue,
- kLTC_PKHA_NormalValue, kLTC_PKHA_TimingEqualized);
- }
-
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModAdd(LTC_BASE, V, szV, &one, sizeof(one),
- curve25519_modbin, sizeof(curve25519_modbin), V, &szV,
- kLTC_PKHA_IntegerArith);
- }
-
- /* U = U / V (mod p) */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModInv(LTC_BASE, V, szV, curve25519_modbin,
- sizeof(curve25519_modbin), V, &szV, kLTC_PKHA_IntegerArith);
- }
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, V, szV, U, szU, curve25519_modbin,
- ED25519_KEY_SIZE, U, &szU, kLTC_PKHA_IntegerArith,
- kLTC_PKHA_NormalValue, kLTC_PKHA_NormalValue,
- kLTC_PKHA_TimingEqualized);
- }
-
- /* get square root */
- if (status == kStatus_Success) {
- status = LTC_PKHA_Prime25519SquareRootMod(U, szU, X, &szRes, sign);
- }
-
- return status;
-}
-
-/* LSByte first of Ed25519 parameter l = 2^252 + 27742317777372353535851937790883648493 */
-static const uint8_t l_coefEdDSA[] = {
- 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7,
- 0xa2, 0xde, 0xf9, 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10};
-
-/*
-Input:
- s[0]+256*s[1]+...+256^63*s[63] = s
-
-Output:
- s[0]+256*s[1]+...+256^31*s[31] = s mod l
- where l = 2^252 + 27742317777372353535851937790883648493.
- Overwrites s in place.
-*/
-status_t LTC_PKHA_sc_reduce(uint8_t *a)
-{
- uint16_t szA = 0;
- return LTC_PKHA_ModRed(LTC_BASE, a, 64, l_coefEdDSA, sizeof(l_coefEdDSA),
- a, &szA, kLTC_PKHA_IntegerArith);
-}
-
-/*
-Input:
- a[0]+256*a[1]+...+256^31*a[31] = a
- b[0]+256*b[1]+...+256^31*b[31] = b
- c[0]+256*c[1]+...+256^31*c[31] = c
-
-Output:
- s[0]+256*s[1]+...+256^31*s[31] = (ab+c) mod l
- where l = 2^252 + 27742317777372353535851937790883648493.
-*/
-status_t LTC_PKHA_sc_muladd(uint8_t *s, const uint8_t *a,
- const uint8_t *b, const uint8_t *c)
-{
- uint16_t szS = 0;
- uint16_t szB = 0;
- uint8_t tempB[32] = {0};
- status_t status;
-
- /* Assume only b can be larger than modulus. It is called durind
- * wc_ed25519_sign_msg() where hram (=a) and nonce(=c)
- * have been reduced by LTC_PKHA_sc_reduce()
- * Thus reducing b only.
- */
- status = LTC_PKHA_ModRed(LTC_BASE, b, 32, l_coefEdDSA, sizeof(l_coefEdDSA),
- tempB, &szB, kLTC_PKHA_IntegerArith);
-
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModMul(LTC_BASE, a, 32, tempB, szB, l_coefEdDSA,
- sizeof(l_coefEdDSA), s, &szS, kLTC_PKHA_IntegerArith,
- kLTC_PKHA_NormalValue, kLTC_PKHA_NormalValue,
- kLTC_PKHA_TimingEqualized);
- }
-
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModAdd(LTC_BASE, s, szS, c, 32, l_coefEdDSA, 32, s,
- &szS, kLTC_PKHA_IntegerArith);
- }
-
- return status;
-}
-
-/*
-r = a * A + b * B
-where A is public key point, B is basepoint
-where a = a[0]+256*a[1]+...+256^31 a[31].
-and b = b[0]+256*b[1]+...+256^31 b[31].
-B is the Ed25519 base point (x,4/5) with x positive.
-*/
-status_t LTC_PKHA_SignatureForVerify(uint8_t *rcheck, const unsigned char *a,
- const unsigned char *b, ed25519_key *key)
-{
- /* To verify a signature on a message M, first split the signature
- into two 32-octet halves. Decode the first half as a point R,
- and the second half as an integer s, in the range 0 <= s < q. If
- the decoding fails, the signature is invalid. */
-
- /* Check the group equation 8s B = 8 R + 8k A. */
-
- /*
- Uses a fast single-signature verification SB = R + H(R,A,M)A becomes
- SB - H(R,A,M)A saving decompression of R
- */
- uint8_t X0[ED25519_PUB_KEY_SIZE] = {0};
- uint8_t X1[ED25519_PUB_KEY_SIZE] = {0};
- uint8_t Y0[ED25519_PUB_KEY_SIZE] = {0};
- uint8_t Y1[ED25519_PUB_KEY_SIZE] = {0};
- const uint8_t max[32] = {
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
- ltc_pkha_ecc_point_t ltc0;
- ltc_pkha_ecc_point_t ltc1;
- ltc_pkha_ecc_point_t pubKey;
- status_t status;
-
- /* The equality for the negative of a point P, in affine coordinates,
- is -P = -(x,y) = (x, -y) */
- uint16_t szY = 32;
-
- ltc0.X = X0;
- ltc1.X = X1;
- ltc0.Y = Y0;
- ltc1.Y = Y1;
- pubKey.X = key->pointX;
- pubKey.Y = key->pointY;
-
- /* ltc0 = b*B */
- status = LTC_PKHA_Ed25519_PointMul(LTC_PKHA_Ed25519_BasePoint(), b,
- ED25519_KEY_SIZE, &ltc0, kLTC_Weierstrass /* result in W */);
-
- /* ltc1 = a*A */
- if (status == kStatus_Success) {
- status = LTC_PKHA_Ed25519ToWeierstrass(&pubKey, &ltc1);
- }
- if (status == kStatus_Success) {
- status = LTC_PKHA_Ed25519_PointMul(&ltc1, a, ED25519_KEY_SIZE, &ltc1,
- kLTC_Weierstrass /* result in W */);
- }
-
- /* R = b*B - a*A */
- if (status == kStatus_Success) {
- status = LTC_PKHA_ModSub1(LTC_BASE, curve25519_modbin,
- sizeof(curve25519_modbin), ltc1.Y, szY, max, sizeof(max), ltc1.Y,
- &szY);
- }
- if (status == kStatus_Success) {
- status = LTC_PKHA_ECC_PointAdd(LTC_BASE, &ltc0, &ltc1,
- curve25519_modbin, r2mod, a_coefEd25519, b_coefEd25519,
- ED25519_KEY_SIZE, kLTC_PKHA_IntegerArith, &ltc0);
- }
- /* map to Ed25519 */
- if (status == kStatus_Success) {
- status = LTC_PKHA_WeierstrassToEd25519(&ltc0, &ltc0);
- }
- if (((uint32_t)ltc0.X[0]) & 0x01u) {
- ltc0.Y[ED25519_KEY_SIZE - 1] |= 0x80u;
- }
-
- XMEMCPY(rcheck, ltc0.Y, ED25519_KEY_SIZE);
- return status;
-}
-
-status_t LTC_PKHA_Ed25519_Compress(const ltc_pkha_ecc_point_t *ltcPointIn,
- uint8_t *p)
-{
- /* compress */
- /* get sign of X per https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-02
- * To form the encoding of the point, copy the least
- significant bit of the x-coordinate to the most significant bit of
- the final octet
- */
- XMEMCPY(p, ltcPointIn->Y, ED25519_KEY_SIZE);
- if (((uint32_t)ltcPointIn->X[0]) & 0x01u) {
- p[ED25519_KEY_SIZE - 1] |= 0x80u;
- }
- return kStatus_Success;
-}
-
-#endif /* HAVE_ED25519 */
-#endif /* FREESCALE_LTC_ECC */
-
-
-#undef ERROR_OUT
-
-#endif /* FREESCALE_LTC_TFM || FREESCALE_LTC_ECC */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/st/README.md b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/st/README.md
deleted file mode 100644
index 011dd909b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/st/README.md
+++ /dev/null
@@ -1,132 +0,0 @@
-# ST Ports
-
-Support for the STM32 L4, F1, F2, F4 and F7 on-board crypto hardware acceleration for symmetric AES (ECB/CBC/CTR/GCM) and MD5/SHA1/SHA224/SHA256.
-
-Support for the STSAFE-A100 crypto hardware accelerator co-processor via I2C for ECC supporting NIST or Brainpool 256-bit and 384-bit curves. It requires the ST-Safe SDK including wolf stsafe_interface.c/.h files. Please contact ST for these.
-
-
-For details see our [wolfSSL ST](https://www.wolfssl.com/docs/stm32/) page.
-
-
-## STM32 Symmetric Acceleration
-
-We support using the STM32 CubeMX and Standard Peripheral Library.
-
-### Building
-
-To enable support define one of the following:
-
-```
-#define WOLFSSL_STM32L4
-#define WOLFSSL_STM32F1
-#define WOLFSSL_STM32F2
-#define WOLFSSL_STM32F4
-#define WOLFSSL_STM32F7
-```
-
-To use CubeMX define `WOLFSSL_STM32_CUBEMX` otherwise StdPeriLib is used.
-
-To disable portions of the hardware acceleration you can optionally define:
-
-```
-#define NO_STM32_RNG
-#define NO_STM32_CRYPTO
-#define NO_STM32_HASH
-```
-
-### Coding
-
-In your application you must include <wolfssl/wolfcrypt/settings.h> before any other wolfSSL headers. If building the sources directly we recommend defining `WOLFSSL_USER_SETTINGS` and adding your own `user_settings.h` file. You can find a good reference for this in `IDE/GCC-ARM/Header/user_settings.h`.
-
-
-### Benchmarks
-
-See our [benchmarks](https://www.wolfssl.com/docs/benchmarks/) on the wolfSSL website.
-
-
-
-## STSAFE-A100 ECC Acceleration
-
-Using the wolfSSL PK callbacks and the reference ST Safe reference API's we support an ECC only cipher suite such as ECDHE-ECDSA-AES128-SHA256 for TLS client or server.
-
-At the wolfCrypt level we also support ECC native API's for `wc_ecc_*` using the ST-Safe.
-
-### Building
-
-`./configure --enable-pkcallbacks CFLAGS="-DWOLFSSL_STSAFEA100"`
-
-or
-
-`#define HAVE_PK_CALLBACKS`
-`#define WOLFSSL_STSAFEA100`
-
-
-### Coding
-
-Setup the PK callbacks for TLS using:
-
-```
-/* Setup PK Callbacks for STSAFE-A100 */
-WOLFSSL_CTX* ctx;
-wolfSSL_CTX_SetEccKeyGenCb(ctx, SSL_STSAFE_CreateKeyCb);
-wolfSSL_CTX_SetEccSignCb(ctx, SSL_STSAFE_SignCertificateCb);
-wolfSSL_CTX_SetEccVerifyCb(ctx, SSL_STSAFE_VerifyPeerCertCb);
-wolfSSL_CTX_SetEccSharedSecretCb(ctx, SSL_STSAFE_SharedSecretCb);
-wolfSSL_CTX_SetDevId(ctx, 0); /* enables wolfCrypt `wc_ecc_*` ST-Safe use */
-```
-
-The reference STSAFE-A100 PK callback functions are located in the `wolfcrypt/src/port/st/stsafe.c` file.
-
-Adding a custom context to the callbacks:
-
-```
-/* Setup PK Callbacks context */
-WOLFSSL* ssl;
-void* myOwnCtx;
-wolfSSL_SetEccKeyGenCtx(ssl, myOwnCtx);
-wolfSSL_SetEccVerifyCtx(ssl, myOwnCtx);
-wolfSSL_SetEccSignCtx(ssl, myOwnCtx);
-wolfSSL_SetEccSharedSecretCtx(ssl, myOwnCtx);
-```
-
-### Benchmarks and Memory Use
-
-Software only implementation (STM32L4 120Mhz, Cortex-M4, Fast Math):
-
-```
-ECDHE 256 key gen SW 4 ops took 1.278 sec, avg 319.500 ms, 3.130 ops/sec
-ECDHE 256 agree SW 4 ops took 1.306 sec, avg 326.500 ms, 3.063 ops/sec
-ECDSA 256 sign SW 4 ops took 1.298 sec, avg 324.500 ms, 3.082 ops/sec
-ECDSA 256 verify SW 2 ops took 1.283 sec, avg 641.500 ms, 1.559 ops/sec
-```
-
-Memory Use:
-
-```
-Peak Stack: 18456
-Peak Heap: 2640
-Total: 21096
-```
-
-
-STSAFE-A100 acceleration:
-
-```
-ECDHE 256 key gen HW 8 ops took 1.008 sec, avg 126.000 ms, 7.937 ops/sec
-ECDHE 256 agree HW 6 ops took 1.051 sec, avg 175.167 ms, 5.709 ops/sec
-ECDSA 256 sign HW 14 ops took 1.161 sec, avg 82.929 ms, 12.059 ops/sec
-ECDSA 256 verify HW 8 ops took 1.184 sec, avg 148.000 ms, 6.757 ops/sec
-```
-
-Memory Use:
-
-```
-Peak Stack: 9592
-Peak Heap: 170
-Total: 9762
-```
-
-
-## Support
-
-Email us at [support@wolfssl.com](mailto:support@wolfssl.com).
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/st/stm32.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/st/stm32.c
deleted file mode 100644
index b37dbd845..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/st/stm32.c
+++ /dev/null
@@ -1,879 +0,0 @@
-/* stm32.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-/* Generic STM32 Hashing Function */
-/* Supports CubeMX HAL or Standard Peripheral Library */
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#include <wolfssl/wolfcrypt/port/st/stm32.h>
-#include <wolfssl/wolfcrypt/types.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-#ifndef NO_AES
- #include <wolfssl/wolfcrypt/aes.h>
-#endif
-
-
-#ifdef STM32_HASH
-
-#ifdef WOLFSSL_STM32L4
- #define HASH_STR_NBW HASH_STR_NBLW
-#endif
-
-/* User can override STM32_HASH_CLOCK_ENABLE and STM32_HASH_CLOCK_DISABLE */
-#ifndef STM32_HASH_CLOCK_ENABLE
- static WC_INLINE void wc_Stm32_Hash_Clock_Enable(STM32_HASH_Context* stmCtx)
- {
- #ifdef WOLFSSL_STM32_CUBEMX
- __HAL_RCC_HASH_CLK_ENABLE();
- #else
- RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_HASH, ENABLE);
- #endif
- (void)stmCtx;
- }
- #define STM32_HASH_CLOCK_ENABLE(ctx) wc_Stm32_Hash_Clock_Enable(ctx)
-#endif
-
-#ifndef STM32_HASH_CLOCK_DISABLE
- static WC_INLINE void wc_Stm32_Hash_Clock_Disable(STM32_HASH_Context* stmCtx)
- {
- #ifdef WOLFSSL_STM32_CUBEMX
- __HAL_RCC_HASH_CLK_DISABLE();
- #else
- RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_HASH, DISABLE);
- #endif
- (void)stmCtx;
- }
- #define STM32_HASH_CLOCK_DISABLE(ctx) wc_Stm32_Hash_Clock_Disable(ctx)
-#endif
-
-/* STM32 Port Internal Functions */
-static WC_INLINE void wc_Stm32_Hash_SaveContext(STM32_HASH_Context* ctx)
-{
- int i;
-
- /* save context registers */
- ctx->HASH_IMR = HASH->IMR;
- ctx->HASH_STR = HASH->STR;
- ctx->HASH_CR = HASH->CR;
- for (i=0; i<HASH_CR_SIZE; i++) {
- ctx->HASH_CSR[i] = HASH->CSR[i];
- }
-}
-
-static WC_INLINE int wc_Stm32_Hash_RestoreContext(STM32_HASH_Context* ctx)
-{
- int i;
-
- if (ctx->HASH_CR != 0) {
- /* restore context registers */
- HASH->IMR = ctx->HASH_IMR;
- HASH->STR = ctx->HASH_STR;
- HASH->CR = ctx->HASH_CR;
-
- /* Initialize the hash processor */
- HASH->CR |= HASH_CR_INIT;
-
- /* continue restoring context registers */
- for (i=0; i<HASH_CR_SIZE; i++) {
- HASH->CSR[i] = ctx->HASH_CSR[i];
- }
- return 1;
- }
- return 0;
-}
-
-static WC_INLINE void wc_Stm32_Hash_GetDigest(byte* hash, int digestSize)
-{
- word32 digest[HASH_MAX_DIGEST/sizeof(word32)];
-
- /* get digest result */
- digest[0] = HASH->HR[0];
- digest[1] = HASH->HR[1];
- digest[2] = HASH->HR[2];
- digest[3] = HASH->HR[3];
- if (digestSize >= 20) {
- digest[4] = HASH->HR[4];
- #ifdef HASH_DIGEST
- if (digestSize >= 28) {
- digest[5] = HASH_DIGEST->HR[5];
- digest[6] = HASH_DIGEST->HR[6];
- if (digestSize == 32)
- digest[7] = HASH_DIGEST->HR[7];
- }
- #endif
- }
-
- ByteReverseWords(digest, digest, digestSize);
-
- XMEMCPY(hash, digest, digestSize);
-}
-
-
-/* STM32 Port Exposed Functions */
-static WC_INLINE int wc_Stm32_Hash_WaitDone(void)
-{
- /* wait until hash hardware is not busy */
- int timeout = 0;
- while ((HASH->SR & HASH_SR_BUSY) && ++timeout < STM32_HASH_TIMEOUT) {
-
- }
- /* verify timeout did not occur */
- if (timeout >= STM32_HASH_TIMEOUT) {
- return WC_TIMEOUT_E;
- }
- return 0;
-}
-
-
-void wc_Stm32_Hash_Init(STM32_HASH_Context* stmCtx)
-{
- /* clear context */
- XMEMSET(stmCtx, 0, sizeof(STM32_HASH_Context));
-}
-
-int wc_Stm32_Hash_Update(STM32_HASH_Context* stmCtx, word32 algo,
- const byte* data, int len)
-{
- int ret = 0;
- byte* local = (byte*)stmCtx->buffer;
- int wroteToFifo = 0;
-
- /* check that internal buffLen is valid */
- if (stmCtx->buffLen >= STM32_HASH_REG_SIZE) {
- return BUFFER_E;
- }
-
- /* turn on hash clock */
- STM32_HASH_CLOCK_ENABLE(stmCtx);
-
- /* restore hash context or init as new hash */
- if (wc_Stm32_Hash_RestoreContext(stmCtx) == 0) {
- /* reset the control register */
- HASH->CR &= ~(HASH_CR_ALGO | HASH_CR_DATATYPE | HASH_CR_MODE);
-
- /* configure algorithm, mode and data type */
- HASH->CR |= (algo | HASH_ALGOMODE_HASH | HASH_DATATYPE_8B);
-
- /* reset HASH processor */
- HASH->CR |= HASH_CR_INIT;
- }
-
- /* write 4-bytes at a time into FIFO */
- while (len) {
- word32 add = min(len, STM32_HASH_REG_SIZE - stmCtx->buffLen);
- XMEMCPY(&local[stmCtx->buffLen], data, add);
-
- stmCtx->buffLen += add;
- data += add;
- len -= add;
-
- if (stmCtx->buffLen == STM32_HASH_REG_SIZE) {
- wroteToFifo = 1;
- HASH->DIN = *(word32*)stmCtx->buffer;
-
- stmCtx->loLen += STM32_HASH_REG_SIZE;
- stmCtx->buffLen = 0;
- }
- }
-
- if (wroteToFifo) {
- /* save hash state for next operation */
- wc_Stm32_Hash_SaveContext(stmCtx);
- }
-
- /* turn off hash clock */
- STM32_HASH_CLOCK_DISABLE(stmCtx);
-
- return ret;
-}
-
-int wc_Stm32_Hash_Final(STM32_HASH_Context* stmCtx, word32 algo,
- byte* hash, int digestSize)
-{
- int ret = 0;
- word32 nbvalidbitsdata = 0;
-
- /* turn on hash clock */
- STM32_HASH_CLOCK_ENABLE(stmCtx);
-
- /* restore hash state */
- wc_Stm32_Hash_RestoreContext(stmCtx);
-
- /* finish reading any trailing bytes into FIFO */
- if (stmCtx->buffLen > 0) {
- HASH->DIN = *(word32*)stmCtx->buffer;
- stmCtx->loLen += stmCtx->buffLen;
- }
-
- /* calculate number of valid bits in last word */
- nbvalidbitsdata = 8 * (stmCtx->loLen % STM32_HASH_REG_SIZE);
- HASH->STR &= ~HASH_STR_NBW;
- HASH->STR |= nbvalidbitsdata;
-
- /* start hash processor */
- HASH->STR |= HASH_STR_DCAL;
-
- /* wait for hash done */
- ret = wc_Stm32_Hash_WaitDone();
- if (ret == 0) {
- /* read message digest */
- wc_Stm32_Hash_GetDigest(hash, digestSize);
- }
-
- /* turn off hash clock */
- STM32_HASH_CLOCK_DISABLE(stmCtx);
-
- return ret;
-}
-
-#endif /* STM32_HASH */
-
-
-#ifdef STM32_CRYPTO
-
-#ifndef NO_AES
-#ifdef WOLFSSL_STM32_CUBEMX
-int wc_Stm32_Aes_Init(Aes* aes, CRYP_HandleTypeDef* hcryp)
-{
- int ret;
- word32 keySize;
-
- ret = wc_AesGetKeySize(aes, &keySize);
- if (ret != 0)
- return ret;
-
- XMEMSET(hcryp, 0, sizeof(CRYP_HandleTypeDef));
- switch (keySize) {
- case 16: /* 128-bit key */
- hcryp->Init.KeySize = CRYP_KEYSIZE_128B;
- break;
- #ifdef CRYP_KEYSIZE_192B
- case 24: /* 192-bit key */
- hcryp->Init.KeySize = CRYP_KEYSIZE_192B;
- break;
- #endif
- case 32: /* 256-bit key */
- hcryp->Init.KeySize = CRYP_KEYSIZE_256B;
- break;
- default:
- break;
- }
- hcryp->Instance = CRYP;
- hcryp->Init.DataType = CRYP_DATATYPE_8B;
- hcryp->Init.pKey = (STM_CRYPT_TYPE*)aes->key;
-#ifdef STM32_HAL_V2
- hcryp->Init.DataWidthUnit = CRYP_DATAWIDTHUNIT_BYTE;
-#endif
-
- return 0;
-}
-
-#else /* STD_PERI_LIB */
-
-int wc_Stm32_Aes_Init(Aes* aes, CRYP_InitTypeDef* cryptInit,
- CRYP_KeyInitTypeDef* keyInit)
-{
- int ret;
- word32 keySize;
- word32* aes_key;
-
- ret = wc_AesGetKeySize(aes, &keySize);
- if (ret != 0)
- return ret;
-
- aes_key = aes->key;
-
- /* crypto structure initialization */
- CRYP_KeyStructInit(keyInit);
- CRYP_StructInit(cryptInit);
-
- /* load key into correct registers */
- switch (keySize) {
- case 16: /* 128-bit key */
- cryptInit->CRYP_KeySize = CRYP_KeySize_128b;
- keyInit->CRYP_Key2Left = aes_key[0];
- keyInit->CRYP_Key2Right = aes_key[1];
- keyInit->CRYP_Key3Left = aes_key[2];
- keyInit->CRYP_Key3Right = aes_key[3];
- break;
-
- case 24: /* 192-bit key */
- cryptInit->CRYP_KeySize = CRYP_KeySize_192b;
- keyInit->CRYP_Key1Left = aes_key[0];
- keyInit->CRYP_Key1Right = aes_key[1];
- keyInit->CRYP_Key2Left = aes_key[2];
- keyInit->CRYP_Key2Right = aes_key[3];
- keyInit->CRYP_Key3Left = aes_key[4];
- keyInit->CRYP_Key3Right = aes_key[5];
- break;
-
- case 32: /* 256-bit key */
- cryptInit->CRYP_KeySize = CRYP_KeySize_256b;
- keyInit->CRYP_Key0Left = aes_key[0];
- keyInit->CRYP_Key0Right = aes_key[1];
- keyInit->CRYP_Key1Left = aes_key[2];
- keyInit->CRYP_Key1Right = aes_key[3];
- keyInit->CRYP_Key2Left = aes_key[4];
- keyInit->CRYP_Key2Right = aes_key[5];
- keyInit->CRYP_Key3Left = aes_key[6];
- keyInit->CRYP_Key3Right = aes_key[7];
- break;
-
- default:
- break;
- }
- cryptInit->CRYP_DataType = CRYP_DataType_8b;
-
- return 0;
-}
-#endif /* WOLFSSL_STM32_CUBEMX */
-#endif /* !NO_AES */
-#endif /* STM32_CRYPTO */
-
-#ifdef WOLFSSL_STM32_PKA
-#include <stdint.h>
-#include <stm32wbxx_hal_conf.h>
-#include <stm32wbxx_hal_pka.h>
-
-extern PKA_HandleTypeDef hpka;
-
-/* Reverse array in memory (in place) */
-#ifdef HAVE_ECC
-#include <wolfssl/wolfcrypt/ecc.h>
-
-/* convert from mp_int to STM32 PKA HAL integer, as array of bytes of size sz.
- * if mp_int has less bytes than sz, add zero bytes at most significant byte positions.
- * This is when for example modulus is 32 bytes (P-256 curve)
- * and mp_int has only 31 bytes, we add leading zeros
- * so that result array has 32 bytes, same as modulus (sz).
- */
-static int stm32_get_from_mp_int(uint8_t *dst, mp_int *a, int sz)
-{
- int res;
- int szbin;
- int offset;
-
- if (!a || !dst || (sz < 0))
- return -1;
-
- /* check how many bytes are in the mp_int */
- szbin = mp_unsigned_bin_size(a);
- if ((szbin < 0) || (szbin > sz))
- return -1;
-
- /* compute offset from dst */
- offset = sz - szbin;
- if (offset < 0)
- offset = 0;
- if (offset > sz)
- offset = sz;
-
- /* add leading zeroes */
- if (offset)
- XMEMSET(dst, 0, offset);
-
- /* convert mp_int to array of bytes */
- res = mp_to_unsigned_bin(a, dst + offset);
- return res;
-}
-
-/* ECC specs in lsbyte at lowest address format for direct use by STM32_PKA PKHA driver functions */
-#if defined(HAVE_ECC192) || defined(HAVE_ALL_CURVES)
-#define ECC192
-#endif
-#if defined(HAVE_ECC224) || defined(HAVE_ALL_CURVES)
-#define ECC224
-#endif
-#if !defined(NO_ECC256) || defined(HAVE_ALL_CURVES)
-#define ECC256
-#endif
-#if defined(HAVE_ECC384) || defined(HAVE_ALL_CURVES)
-#define ECC384
-#endif
-
-/* STM32 PKA supports up to 640bit numbers */
-#define STM32_MAX_ECC_SIZE (80)
-
-
-/* P-192 */
-#ifdef ECC192
-#define ECC192_KEYSIZE (24)
-static const uint8_t stm32_ecc192_prime[ECC192_KEYSIZE] = {
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
-};
-static const uint32_t stm32_ecc192_coef_sign = 1U;
-
-static const uint8_t stm32_ecc192_coef[ECC192_KEYSIZE] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03
-};
-
-static const uint8_t stm32_ecc192_pointX[ECC192_KEYSIZE] = {
- 0x18, 0x8D, 0xA8, 0x0E, 0xB0, 0x30, 0x90, 0xF6,
- 0x7C, 0xBF, 0x20, 0xEB, 0x43, 0xA1, 0x88, 0x00,
- 0xF4, 0xFF, 0x0A, 0xFD, 0x82, 0xFF, 0x10, 0x12
-};
-
-const uint8_t stm32_ecc192_pointY[ECC192_KEYSIZE] = {
- 0x07, 0x19, 0x2B, 0x95, 0xFF, 0xC8, 0xDA, 0x78,
- 0x63, 0x10, 0x11, 0xED, 0x6B, 0x24, 0xCD, 0xD5,
- 0x73, 0xF9, 0x77, 0xA1, 0x1E, 0x79, 0x48, 0x11
-};
-
-const uint8_t stm32_ecc192_order[ECC192_KEYSIZE] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0x99, 0xDE, 0xF8, 0x36,
- 0x14, 0x6B, 0xC9, 0xB1, 0xB4, 0xD2, 0x28, 0x31
-};
-const uint32_t stm32_ecc192_cofactor = 1U;
-
-#endif /* ECC192 */
-
-/* P-224 */
-#ifdef ECC224
-#define ECC224_KEYSIZE (28)
-static const uint8_t stm32_ecc224_prime[ECC224_KEYSIZE] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01
-};
-static const uint32_t stm32_ecc224_coef_sign = 1U;
-
-static const uint8_t stm32_ecc224_coef[ECC224_KEYSIZE] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x03
-};
-
-static const uint8_t stm32_ecc224_pointX[ECC224_KEYSIZE] = {
- 0xB7, 0x0E, 0x0C, 0xBD, 0x6B, 0xB4, 0xBF, 0x7F,
- 0x32, 0x13, 0x90, 0xB9, 0x4A, 0x03, 0xC1, 0xD3,
- 0x56, 0xC2, 0x11, 0x22, 0x34, 0x32, 0x80, 0xD6,
- 0x11, 0x5C, 0x1D, 0x21
-};
-
-const uint8_t stm32_ecc224_pointY[ECC224_KEYSIZE] = {
- 0xBD, 0x37, 0x63, 0x88, 0xB5, 0xF7, 0x23, 0xFB,
- 0x4C, 0x22, 0xDF, 0xE6, 0xCD, 0x43, 0x75, 0xA0,
- 0x5A, 0x07, 0x47, 0x64, 0x44, 0xD5, 0x81, 0x99,
- 0x85, 0x00, 0x7E, 0x34
-};
-
-const uint8_t stm32_ecc224_order[ECC224_KEYSIZE] = {
-};
-const uint32_t stm32_ecc224_cofactor = 1U;
-
-#endif /* ECC224 */
-
-/* P-256 */
-#ifdef ECC256
-#define ECC256_KEYSIZE (32)
-
-static const uint8_t stm32_ecc256_prime[ECC256_KEYSIZE] = {
- 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
-};
-static const uint32_t stm32_ecc256_coef_sign = 1U;
-
-static const uint8_t stm32_ecc256_coef[ECC256_KEYSIZE] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03
-};
-
-static const uint8_t stm32_ecc256_pointX[ECC256_KEYSIZE] = {
- 0x6b, 0x17, 0xd1, 0xf2, 0xe1, 0x2c, 0x42, 0x47,
- 0xf8, 0xbc, 0xe6, 0xe5, 0x63, 0xa4, 0x40, 0xf2,
- 0x77, 0x03, 0x7d, 0x81, 0x2d, 0xeb, 0x33, 0xa0,
- 0xf4, 0xa1, 0x39, 0x45, 0xd8, 0x98, 0xc2, 0x96
-};
-
-const uint8_t stm32_ecc256_pointY[ECC256_KEYSIZE] = {
- 0x4f, 0xe3, 0x42, 0xe2, 0xfe, 0x1a, 0x7f, 0x9b,
- 0x8e, 0xe7, 0xeb, 0x4a, 0x7c, 0x0f, 0x9e, 0x16,
- 0x2b, 0xce, 0x33, 0x57, 0x6b, 0x31, 0x5e, 0xce,
- 0xcb, 0xb6, 0x40, 0x68, 0x37, 0xbf, 0x51, 0xf5
-};
-
-const uint8_t stm32_ecc256_order[ECC256_KEYSIZE] = {
- 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xbc, 0xe6, 0xfa, 0xad, 0xa7, 0x17, 0x9e, 0x84,
- 0xf3, 0xb9, 0xca, 0xc2, 0xfc, 0x63, 0x25, 0x51
-};
-const uint32_t stm32_ecc256_cofactor = 1U;
-
-#endif /* ECC256 */
-
-/* P-384 */
-#ifdef ECC384
-#define ECC384_KEYSIZE (48)
-
-static const uint8_t stm32_ecc384_prime[ECC384_KEYSIZE] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
- 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
-};
-static const uint32_t stm32_ecc384_coef_sign = 1U;
-
-static const uint8_t stm32_ecc384_coef[ECC384_KEYSIZE] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03
-};
-
-static const uint8_t stm32_ecc384_pointX[ECC384_KEYSIZE] = {
- 0xAA, 0x87, 0xCA, 0x22, 0xBE, 0x8B, 0x05, 0x37,
- 0x8E, 0xB1, 0xC7, 0x1E, 0xF3, 0x20, 0xAD, 0x74,
- 0x6E, 0x1D, 0x3B, 0x62, 0x8B, 0xA7, 0x9B, 0x98,
- 0x59, 0xF7, 0x41, 0xE0, 0x82, 0x54, 0x2A, 0x38,
- 0x55, 0x02, 0xF2, 0x5D, 0xBF, 0x55, 0x29, 0x6C,
- 0x3A, 0x54, 0x5E, 0x38, 0x72, 0x76, 0x0A, 0xB7,
-};
-
-const uint8_t stm32_ecc384_pointY[ECC384_KEYSIZE] = {
- 0x36, 0x17, 0xDE, 0x4A, 0x96, 0x26, 0x2C, 0x6F,
- 0x5D, 0x9E, 0x98, 0xBF, 0x92, 0x92, 0xDC, 0x29,
- 0xF8, 0xF4, 0x1D, 0xBD, 0x28, 0x9A, 0x14, 0x7C,
- 0xE9, 0xDA, 0x31, 0x13, 0xB5, 0xF0, 0xB8, 0xC0,
- 0x0A, 0x60, 0xB1, 0xCE, 0x1D, 0x7E, 0x81, 0x9D,
- 0x7A, 0x43, 0x1D, 0x7C, 0x90, 0xEA, 0x0E, 0x5F,
-};
-
-const uint8_t stm32_ecc384_order[ECC384_KEYSIZE] = {
-};
-const uint32_t stm32_ecc384_cofactor = 1U;
-
-#endif /* ECC384 */
-static int stm32_get_ecc_specs(const uint8_t **prime, const uint8_t **coef,
- const uint32_t **coef_sign, const uint8_t **GenPointX, const uint8_t **GenPointY,
- const uint8_t **order, int size)
-{
- switch(size) {
- case 32:
- *prime = stm32_ecc256_prime;
- *coef = stm32_ecc256_coef;
- *GenPointX = stm32_ecc256_pointX;
- *GenPointY = stm32_ecc256_pointY;
- *coef_sign = &stm32_ecc256_coef_sign;
- *order = stm32_ecc256_order;
- break;
-#ifdef ECC224
- case 28:
- *prime = stm32_ecc224_prime;
- *coef = stm32_ecc224_coef;
- *GenPointX = stm32_ecc224_pointX;
- *GenPointY = stm32_ecc224_pointY;
- *coef_sign = &stm32_ecc224_coef;
- break;
-#endif
-#ifdef ECC192
- case 24:
- *prime = stm32_ecc192_prime;
- *coef = stm32_ecc192_coef;
- *GenPointX = stm32_ecc192_pointX;
- *GenPointY = stm32_ecc192_pointY;
- *coef_sign = &stm32_ecc192_coef;
- break;
-#endif
-#ifdef ECC384
- case 48:
- *prime = stm32_ecc384_prime;
- *coef = stm32_ecc384_coef;
- *GenPointX = stm32_ecc384_pointX;
- *GenPointY = stm32_ecc384_pointY;
- *coef_sign = &stm32_ecc384_coef;
- break;
-#endif
- default:
- return -1;
- }
- return 0;
-}
-
-
-/**
- Perform a point multiplication (timing resistant)
- k The scalar to multiply by
- G The base point
- R [out] Destination for kG
- modulus The modulus of the field the ECC curve is in
- map Boolean whether to map back to affine or not
- (1==map, 0 == leave in projective)
- return MP_OKAY on success
-*/
-int wc_ecc_mulmod_ex(mp_int *k, ecc_point *G, ecc_point *R, mp_int* a,
- mp_int *modulus, int map, void* heap)
-{
- PKA_ECCMulInTypeDef pka_mul;
- PKA_ECCMulOutTypeDef pka_mul_res;
- uint8_t size;
- int szModulus;
- int szkbin;
- int status;
- int res;
- uint8_t Gxbin[STM32_MAX_ECC_SIZE];
- uint8_t Gybin[STM32_MAX_ECC_SIZE];
- uint8_t kbin[STM32_MAX_ECC_SIZE];
- uint8_t PtXbin[STM32_MAX_ECC_SIZE];
- uint8_t PtYbin[STM32_MAX_ECC_SIZE];
- const uint8_t *prime, *coef, *gen_x, *gen_y, *order;
- const uint32_t *coef_sign;
- (void)a;
- (void)heap;
- XMEMSET(&pka_mul, 0x00, sizeof(PKA_ECCMulInTypeDef));
- XMEMSET(&pka_mul_res, 0x00, sizeof(PKA_ECCMulOutTypeDef));
- pka_mul_res.ptX = PtXbin;
- pka_mul_res.ptY = PtYbin;
-
- if (k == NULL || G == NULL || R == NULL || modulus == NULL) {
- return ECC_BAD_ARG_E;
- }
-
- szModulus = mp_unsigned_bin_size(modulus);
- szkbin = mp_unsigned_bin_size(k);
-
- res = stm32_get_from_mp_int(kbin, k, szkbin);
- if (res == MP_OKAY)
- res = stm32_get_from_mp_int(Gxbin, G->x, szModulus);
- if (res == MP_OKAY)
- res = stm32_get_from_mp_int(Gybin, G->y, szModulus);
-
- if (res != MP_OKAY)
- return res;
-
- size = (uint8_t)szModulus;
- /* find STM32_PKA friendly parameters for the selected curve */
- if (0 != stm32_get_ecc_specs(&prime, &coef, &coef_sign, &gen_x, &gen_y, &order, size)) {
- return ECC_BAD_ARG_E;
- }
- (void)order;
-
- pka_mul.modulusSize = szModulus;
- pka_mul.coefSign = *coef_sign;
- pka_mul.coefA = coef;
- pka_mul.modulus = prime;
- pka_mul.pointX = Gxbin;
- pka_mul.pointY = Gybin;
- pka_mul.scalarMulSize = size;
- pka_mul.scalarMul = kbin;
-
- status = HAL_PKA_ECCMul(&hpka, &pka_mul, HAL_MAX_DELAY);
- if (status != HAL_OK) {
- return WC_HW_E;
- }
- pka_mul_res.ptX = Gxbin;
- pka_mul_res.ptY = Gybin;
- HAL_PKA_ECCMul_GetResult(&hpka, &pka_mul_res);
- res = mp_read_unsigned_bin(R->x, Gxbin, size);
- if (res == MP_OKAY) {
- res = mp_read_unsigned_bin(R->y, Gybin, size);
-#ifndef WOLFSSL_SP_MATH
- /* if k is negative, we compute the multiplication with abs(-k)
- * with result (x, y) and modify the result to (x, -y)
- */
- R->y->sign = k->sign;
-#endif
- }
- if (res == MP_OKAY)
- res = mp_set(R->z, 1);
- HAL_PKA_RAMReset(&hpka);
- return res;
-}
-
-int stm32_ecc_verify_hash_ex(mp_int *r, mp_int *s, const byte* hash,
- word32 hashlen, int* res, ecc_key* key)
-{
- PKA_ECDSAVerifInTypeDef pka_ecc;
- uint8_t size;
- int szModulus;
- int szrbin;
- int status;
- uint8_t Rbin[STM32_MAX_ECC_SIZE];
- uint8_t Sbin[STM32_MAX_ECC_SIZE];
- uint8_t Qxbin[STM32_MAX_ECC_SIZE];
- uint8_t Qybin[STM32_MAX_ECC_SIZE];
- uint8_t Hashbin[STM32_MAX_ECC_SIZE];
- uint8_t privKeybin[STM32_MAX_ECC_SIZE];
- const uint8_t *prime, *coef, *gen_x, *gen_y, *order;
- const uint32_t *coef_sign;
- XMEMSET(&pka_ecc, 0x00, sizeof(PKA_ECDSAVerifInTypeDef));
-
- if (r == NULL || s == NULL || hash == NULL || res == NULL || key == NULL) {
- return ECC_BAD_ARG_E;
- }
- *res = 0;
-
- szModulus = mp_unsigned_bin_size(key->pubkey.x);
- szrbin = mp_unsigned_bin_size(r);
-
- status = stm32_get_from_mp_int(Rbin, r, szrbin);
- if (status == MP_OKAY)
- status = stm32_get_from_mp_int(Sbin, s, szrbin);
- if (status == MP_OKAY)
- status = stm32_get_from_mp_int(Qxbin, key->pubkey.x, szModulus);
- if (status == MP_OKAY)
- status = stm32_get_from_mp_int(Qybin, key->pubkey.y, szModulus);
- if (status == MP_OKAY)
- status = stm32_get_from_mp_int(privKeybin, &key->k, szModulus);
- if (status != MP_OKAY)
- return status;
-
- size = (uint8_t)szModulus;
- /* find parameters for the selected curve */
- if (0 != stm32_get_ecc_specs(&prime, &coef, &coef_sign, &gen_x, &gen_y, &order, size)) {
- return ECC_BAD_ARG_E;
- }
-
-
- pka_ecc.primeOrderSize = size;
- pka_ecc.modulusSize = size;
- pka_ecc.coefSign = *coef_sign;
- pka_ecc.coef = coef;
- pka_ecc.modulus = prime;
- pka_ecc.basePointX = gen_x;
- pka_ecc.basePointY = gen_y;
- pka_ecc.primeOrder = order;
-
- pka_ecc.pPubKeyCurvePtX = Qxbin;
- pka_ecc.pPubKeyCurvePtY = Qybin;
- pka_ecc.RSign = Rbin;
- pka_ecc.SSign = Sbin;
- XMEMSET(Hashbin, 0, STM32_MAX_ECC_SIZE);
- XMEMCPY(Hashbin + (size - hashlen), hash, hashlen);
- pka_ecc.hash = Hashbin;
-
- status = HAL_PKA_ECDSAVerif(&hpka, &pka_ecc, HAL_MAX_DELAY);
- if (status != HAL_OK) {
- HAL_PKA_RAMReset(&hpka);
- return WC_HW_E;
- }
- *res = HAL_PKA_ECDSAVerif_IsValidSignature(&hpka);
- HAL_PKA_RAMReset(&hpka);
- return status;
-}
-
-int stm32_ecc_sign_hash_ex(const byte* hash, word32 hashlen, WC_RNG* rng,
- ecc_key* key, mp_int *r, mp_int *s)
-{
- PKA_ECDSASignInTypeDef pka_ecc;
- PKA_ECDSASignOutTypeDef pka_ecc_out;
- int size;
- int status;
- mp_int gen_k;
- mp_int order_mp;
- uint8_t Keybin[STM32_MAX_ECC_SIZE];
- uint8_t Intbin[STM32_MAX_ECC_SIZE];
- uint8_t Rbin[STM32_MAX_ECC_SIZE];
- uint8_t Sbin[STM32_MAX_ECC_SIZE];
- uint8_t Hashbin[STM32_MAX_ECC_SIZE];
- const uint8_t *prime, *coef, *gen_x, *gen_y, *order;
- const uint32_t *coef_sign;
- XMEMSET(&pka_ecc, 0x00, sizeof(PKA_ECDSASignInTypeDef));
- XMEMSET(&pka_ecc, 0x00, sizeof(PKA_ECDSASignOutTypeDef));
-
- if (r == NULL || s == NULL || hash == NULL || key == NULL) {
- return ECC_BAD_ARG_E;
- }
-
- mp_init(&gen_k);
- mp_init(&order_mp);
-
- size = mp_unsigned_bin_size(key->pubkey.x);
-
- status = stm32_get_from_mp_int(Keybin, &key->k, size);
- if (status != MP_OKAY)
- return status;
-
- /* find parameters for the selected curve */
- if (0 != stm32_get_ecc_specs(&prime, &coef, &coef_sign, &gen_x, &gen_y, &order, size)) {
- return ECC_BAD_ARG_E;
- }
-
- status = mp_read_unsigned_bin(&order_mp, order, size);
- if (status == MP_OKAY)
- status = wc_ecc_gen_k(rng, size, &gen_k, &order_mp);
- if (status == MP_OKAY)
- status = stm32_get_from_mp_int(Intbin, &gen_k, size);
- if (status != MP_OKAY)
- return status;
-
- pka_ecc.primeOrderSize = size;
- pka_ecc.modulusSize = size;
- pka_ecc.coefSign = *coef_sign;
- pka_ecc.coef = coef;
- pka_ecc.modulus = prime;
- pka_ecc.basePointX = gen_x;
- pka_ecc.basePointY = gen_y;
- pka_ecc.primeOrder = order;
-
- XMEMSET(Hashbin, 0, STM32_MAX_ECC_SIZE);
- XMEMCPY(Hashbin + (size - hashlen), hash, hashlen);
- pka_ecc.hash = Hashbin;
- pka_ecc.integer = Intbin;
- pka_ecc.privateKey = Keybin;
-
- /* Assign R, S static buffers */
- pka_ecc_out.RSign = Rbin;
- pka_ecc_out.SSign = Sbin;
-
- status = HAL_PKA_ECDSASign(&hpka, &pka_ecc, HAL_MAX_DELAY);
- if (status != HAL_OK) {
- HAL_PKA_RAMReset(&hpka);
- return WC_HW_E;
- }
- HAL_PKA_ECDSASign_GetResult(&hpka, &pka_ecc_out, NULL);
- status = mp_read_unsigned_bin(r, pka_ecc_out.RSign, size);
- if (status == MP_OKAY)
- status = mp_read_unsigned_bin(s, pka_ecc_out.SSign, size);
- HAL_PKA_RAMReset(&hpka);
- return status;
-}
-
-#endif /* HAVE_ECC */
-#endif /* WOLFSSL_STM32_PKA */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/st/stsafe.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/st/stsafe.c
deleted file mode 100644
index 239b159ae..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/st/stsafe.c
+++ /dev/null
@@ -1,566 +0,0 @@
-/* stsafe.c
- *
- * Copyright (C) 2006-2020 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 <wolfssl/wolfcrypt/port/st/stsafe.h>
-#include <wolfssl/wolfcrypt/logging.h>
-
-#ifndef STSAFE_INTERFACE_PRINTF
-#define STSAFE_INTERFACE_PRINTF(...)
-#endif
-
-#ifdef WOLFSSL_STSAFEA100
-
-int SSL_STSAFE_LoadDeviceCertificate(byte** pRawCertificate,
- word32* pRawCertificateLen)
-{
- int err;
-
- if (pRawCertificate == NULL || pRawCertificateLen == NULL) {
- return BAD_FUNC_ARG;
- }
-
-#ifdef USE_STSAFE_VERBOSE
- WOLFSSL_MSG("SSL_STSAFE_LoadDeviceCertificate");
-#endif
-
- /* Try reading device certificate from ST-SAFE Zone 0 */
- err = stsafe_interface_read_device_certificate_raw(
- pRawCertificate, (uint32_t*)pRawCertificateLen);
- if (err == STSAFE_A_OK) {
- #if 0
- /* example for loading into WOLFSSL_CTX */
- err = wolfSSL_CTX_use_certificate_buffer(ctx,
- *pRawCertificate, *pRawCertificateLen, SSL_FILETYPE_ASN1);
- if (err != WOLFSSL_SUCCESS) {
- /* failed */
- }
- /* can free now */
- XFREE(*pRawCertificate, NULL, DYNAMIC_TEMP_BUFFER);
- *pRawCertificate = NULL;
- #endif
- }
- else {
- err = WC_HW_E;
- }
-
- return err;
-}
-
-#ifdef HAVE_PK_CALLBACKS
-
-/**
- * \brief Key Gen Callback (used by TLS server)
- */
-int SSL_STSAFE_CreateKeyCb(WOLFSSL* ssl, ecc_key* key, word32 keySz,
- int ecc_curve, void* ctx)
-{
- int err;
- byte pubKeyRaw[STSAFE_MAX_PUBKEY_RAW_LEN];
- StSafeA_KeySlotNumber slot;
- StSafeA_CurveId curve_id;
-
- (void)ssl;
- (void)ctx;
-
-#ifdef USE_STSAFE_VERBOSE
- WOLFSSL_MSG("CreateKeyCb: STSAFE");
-#endif
-
- /* get curve */
- curve_id = stsafe_get_ecc_curve_id(ecc_curve);
-
- /* generate new ephemeral key on device */
- err = stsafe_interface_create_key(&slot, curve_id, (uint8_t*)&pubKeyRaw[0]);
- if (err != STSAFE_A_OK) {
- #ifdef USE_STSAFE_VERBOSE
- STSAFE_INTERFACE_PRINTF("stsafe_interface_create_key error: %d\n", err);
- #endif
- err = WC_HW_E;
- return err;
- }
-
- /* load generated public key into key, used by wolfSSL */
- err = wc_ecc_import_unsigned(key, &pubKeyRaw[0], &pubKeyRaw[keySz],
- NULL, ecc_curve);
-
- return err;
-}
-
-/**
- * \brief Verify Peer Cert Callback.
- */
-int SSL_STSAFE_VerifyPeerCertCb(WOLFSSL* ssl,
- const unsigned char* sig, unsigned int sigSz,
- const unsigned char* hash, unsigned int hashSz,
- const unsigned char* keyDer, unsigned int keySz,
- int* result, void* ctx)
-{
- int err;
- byte sigRS[STSAFE_MAX_SIG_LEN];
- byte *r, *s;
- word32 r_len = STSAFE_MAX_SIG_LEN/2, s_len = STSAFE_MAX_SIG_LEN/2;
- byte pubKeyX[STSAFE_MAX_PUBKEY_RAW_LEN/2];
- byte pubKeyY[STSAFE_MAX_PUBKEY_RAW_LEN/2];
- word32 pubKeyX_len = sizeof(pubKeyX);
- word32 pubKeyY_len = sizeof(pubKeyY);
- ecc_key key;
- word32 inOutIdx = 0;
- StSafeA_CurveId curve_id;
- int ecc_curve;
-
- (void)ssl;
- (void)ctx;
-
-#ifdef USE_STSAFE_VERBOSE
- WOLFSSL_MSG("VerifyPeerCertCB: STSAFE");
-#endif
-
- err = wc_ecc_init(&key);
- if (err != 0) {
- return err;
- }
-
- /* Decode the public key */
- err = wc_EccPublicKeyDecode(keyDer, &inOutIdx, &key, keySz);
- if (err == 0) {
- /* Extract Raw X and Y coordinates of the public key */
- err = wc_ecc_export_public_raw(&key, pubKeyX, &pubKeyX_len,
- pubKeyY, &pubKeyY_len);
- }
- if (err == 0) {
- int key_sz;
-
- /* determine curve */
- ecc_curve = key.dp->id;
- curve_id = stsafe_get_ecc_curve_id(ecc_curve);
- key_sz = stsafe_get_key_size(curve_id);
-
- /* Extract R and S from signature */
- XMEMSET(sigRS, 0, sizeof(sigRS));
- r = &sigRS[0];
- s = &sigRS[key_sz];
- err = wc_ecc_sig_to_rs(sig, sigSz, r, &r_len, s, &s_len);
- (void)r_len;
- (void)s_len;
- }
-
- if (err == 0) {
- /* Verify signature */
- err = stsafe_interface_verify(curve_id, (uint8_t*)hash, sigRS,
- pubKeyX, pubKeyY, (int32_t*)result);
- if (err != STSAFE_A_OK) {
- #ifdef USE_STSAFE_VERBOSE
- STSAFE_INTERFACE_PRINTF("stsafe_interface_verify error: %d\n", err);
- #endif
- err = WC_HW_E;
- }
- }
-
- wc_ecc_free(&key);
- return err;
-}
-
-/**
- * \brief Sign Certificate Callback.
- */
-int SSL_STSAFE_SignCertificateCb(WOLFSSL* ssl, const byte* in,
- word32 inSz, byte* out, word32* outSz,
- const byte* key, word32 keySz, void* ctx)
-{
- int err;
- byte digest[STSAFE_MAX_KEY_LEN];
- byte sigRS[STSAFE_MAX_SIG_LEN];
- byte *r, *s;
- StSafeA_CurveId curve_id;
- int key_sz;
-
- (void)ssl;
- (void)ctx;
-
-#ifdef USE_STSAFE_VERBOSE
- WOLFSSL_MSG("SignCertificateCb: STSAFE");
-#endif
-
- curve_id = stsafe_get_curve_mode();
- key_sz = stsafe_get_key_size(curve_id);
-
- /* Build input digest */
- if (inSz > key_sz)
- inSz = key_sz;
- XMEMSET(&digest[0], 0, sizeof(digest));
- XMEMCPY(&digest[key_sz - inSz], in, inSz);
-
- /* Sign using slot 0: Result is R then S */
- /* Sign will always use the curve type in slot 0 (the TLS curve needs to match) */
- XMEMSET(sigRS, 0, sizeof(sigRS));
- err = stsafe_interface_sign(STSAFE_A_SLOT_0, curve_id, digest, sigRS);
- if (err != STSAFE_A_OK) {
- #ifdef USE_STSAFE_VERBOSE
- STSAFE_INTERFACE_PRINTF("stsafe_interface_sign error: %d\n", err);
- #endif
- err = WC_HW_E;
- return err;
- }
-
- /* Convert R and S to signature */
- r = &sigRS[0];
- s = &sigRS[key_sz];
- err = wc_ecc_rs_raw_to_sig((const byte*)r, key_sz, (const byte*)s, key_sz,
- out, outSz);
- if (err != 0) {
- #ifdef USE_STSAFE_VERBOSE
- WOLFSSL_MSG("Error converting RS to Signature");
- #endif
- }
-
- return err;
-}
-
-
-/**
- * \brief Create pre master secret using peer's public key and self private key.
- */
-int SSL_STSAFE_SharedSecretCb(WOLFSSL* ssl, ecc_key* otherKey,
- unsigned char* pubKeyDer, unsigned int* pubKeySz,
- unsigned char* out, unsigned int* outlen,
- int side, void* ctx)
-{
- int err;
- byte otherKeyX[STSAFE_MAX_KEY_LEN];
- byte otherKeyY[STSAFE_MAX_KEY_LEN];
- word32 otherKeyX_len = sizeof(otherKeyX);
- word32 otherKeyY_len = sizeof(otherKeyY);
- byte pubKeyRaw[STSAFE_MAX_PUBKEY_RAW_LEN];
- StSafeA_KeySlotNumber slot;
- StSafeA_CurveId curve_id;
- ecc_key tmpKey;
- int ecc_curve;
- int key_sz;
-
- (void)ssl;
- (void)ctx;
-
-#ifdef USE_STSAFE_VERBOSE
- WOLFSSL_MSG("SharedSecretCb: STSAFE");
-#endif
-
- err = wc_ecc_init(&tmpKey);
- if (err != 0) {
- return err;
- }
-
- /* set curve */
- ecc_curve = otherKey->dp->id;
- curve_id = stsafe_get_ecc_curve_id(ecc_curve);
- key_sz = stsafe_get_key_size(curve_id);
-
- /* for client: create and export public key */
- if (side == WOLFSSL_CLIENT_END) {
- /* Export otherKey raw X and Y */
- err = wc_ecc_export_public_raw(otherKey,
- &otherKeyX[0], (word32*)&otherKeyX_len,
- &otherKeyY[0], (word32*)&otherKeyY_len);
- if (err != 0) {
- return err;
- }
-
- err = stsafe_interface_create_key(&slot, curve_id, (uint8_t*)&pubKeyRaw[0]);
- if (err != STSAFE_A_OK) {
- #ifdef USE_STSAFE_VERBOSE
- STSAFE_INTERFACE_PRINTF("stsafe_interface_create_key error: %d\n", err);
- #endif
- err = WC_HW_E;
- return err;
- }
-
- /* convert raw unsigned public key to X.963 format for TLS */
- err = wc_ecc_init(&tmpKey);
- if (err == 0) {
- err = wc_ecc_import_unsigned(&tmpKey, &pubKeyRaw[0], &pubKeyRaw[key_sz],
- NULL, ecc_curve);
- if (err == 0) {
- err = wc_ecc_export_x963(&tmpKey, pubKeyDer, pubKeySz);
- }
- wc_ecc_free(&tmpKey);
- }
- }
- /* for server: import public key */
- else if (side == WOLFSSL_SERVER_END) {
- /* import peer's key and export as raw unsigned for hardware */
- err = wc_ecc_import_x963_ex(pubKeyDer, *pubKeySz, &tmpKey, ecc_curve);
- if (err == 0) {
- err = wc_ecc_export_public_raw(&tmpKey, otherKeyX, &otherKeyX_len,
- otherKeyY, &otherKeyY_len);
- }
- }
- else {
- err = BAD_FUNC_ARG;
- }
-
- wc_ecc_free(&tmpKey);
-
- if (err != 0) {
- return err;
- }
-
- /* Compute shared secret */
- err = stsafe_interface_shared_secret(curve_id, &otherKeyX[0], &otherKeyY[0],
- out, (int32_t*)outlen);
- if (err != STSAFE_A_OK) {
- #ifdef USE_STSAFE_VERBOSE
- STSAFE_INTERFACE_PRINTF("stsafe_interface_shared_secret error: %d\n", err);
- #endif
- err = WC_HW_E;
- }
-
- return err;
-}
-
-int SSL_STSAFE_SetupPkCallbacks(WOLFSSL_CTX* ctx)
-{
- wolfSSL_CTX_SetEccKeyGenCb(ctx, SSL_STSAFE_CreateKeyCb);
- wolfSSL_CTX_SetEccSignCb(ctx, SSL_STSAFE_SignCertificateCb);
- wolfSSL_CTX_SetEccVerifyCb(ctx, SSL_STSAFE_VerifyPeerCertCb);
- wolfSSL_CTX_SetEccSharedSecretCb(ctx, SSL_STSAFE_SharedSecretCb);
- wolfSSL_CTX_SetDevId(ctx, 0); /* enables wolfCrypt `wc_ecc_*` ST-Safe use */
- return 0;
-}
-
-int SSL_STSAFE_SetupPkCallbackCtx(WOLFSSL* ssl, void* user_ctx)
-{
- wolfSSL_SetEccKeyGenCtx(ssl, user_ctx);
- wolfSSL_SetEccSharedSecretCtx(ssl, user_ctx);
- wolfSSL_SetEccSignCtx(ssl, user_ctx);
- wolfSSL_SetEccVerifyCtx(ssl, user_ctx);
- return 0;
-}
-
-
-#endif /* HAVE_PK_CALLBACKS */
-
-#ifdef WOLF_CRYPTO_CB
-
-int wolfSSL_STSAFE_CryptoDevCb(int devId, wc_CryptoInfo* info, void* ctx)
-{
- int rc = CRYPTOCB_UNAVAILABLE;
- wolfSTSAFE_CryptoCb_Ctx* stsCtx = (wolfSTSAFE_CryptoCb_Ctx*)ctx;
-
- if (info == NULL || ctx == NULL)
- return BAD_FUNC_ARG;
-
- (void)devId;
- (void)stsCtx;
-
- if (info->algo_type == WC_ALGO_TYPE_SEED) {
- /* use the STSAFE hardware for RNG seed */
- #if !defined(WC_NO_RNG) && defined(USE_STSAFE_RNG_SEED)
- while (info->seed.sz > 0) {
- rc = stsafe_interface_getrandom(info->seed.seed, info->seed.sz);
- if (rc < 0) {
- return rc;
- }
- info->seed.seed += rc;
- info->seed.sz -= rc;
- }
- rc = 0;
- #else
- rc = CRYPTOCB_UNAVAILABLE;
- #endif
- }
-#ifdef HAVE_ECC
- else if (info->algo_type == WC_ALGO_TYPE_PK) {
- #ifdef USE_STSAFE_VERBOSE
- STSAFE_INTERFACE_PRINTF("STSAFE Pk: Type %d\n", info->pk.type);
- #endif
-
- if (info->pk.type == WC_PK_TYPE_EC_KEYGEN) {
- byte pubKeyRaw[STSAFE_MAX_PUBKEY_RAW_LEN];
- StSafeA_KeySlotNumber slot;
- StSafeA_CurveId curve_id;
- int ecc_curve, key_sz;
-
- WOLFSSL_MSG("STSAFE: ECC KeyGen");
-
- /* get curve */
- ecc_curve = info->pk.eckg.curveId;
- curve_id = stsafe_get_ecc_curve_id(ecc_curve);
- key_sz = stsafe_get_key_size(curve_id);
-
- /* generate new ephemeral key on device */
- rc = stsafe_interface_create_key(&slot, curve_id,
- (uint8_t*)pubKeyRaw);
- if (rc != STSAFE_A_OK) {
- #ifdef USE_STSAFE_VERBOSE
- STSAFE_INTERFACE_PRINTF("stsafe_interface_create_key error: %d\n", rc);
- #endif
- rc = WC_HW_E;
- return rc;
- }
-
- /* load generated public key into key, used by wolfSSL */
- rc = wc_ecc_import_unsigned(info->pk.eckg.key, pubKeyRaw,
- &pubKeyRaw[key_sz], NULL, ecc_curve);
- }
- else if (info->pk.type == WC_PK_TYPE_ECDSA_SIGN) {
- byte digest[STSAFE_MAX_KEY_LEN];
- byte sigRS[STSAFE_MAX_SIG_LEN];
- byte *r, *s;
- StSafeA_CurveId curve_id;
- word32 inSz = info->pk.eccsign.inlen;
- int key_sz;
-
- WOLFSSL_MSG("STSAFE: ECC Sign");
-
- curve_id = stsafe_get_curve_mode();
- key_sz = stsafe_get_key_size(curve_id);
-
- /* truncate input to match key size */
- if (inSz > key_sz)
- inSz = key_sz;
-
- /* Build input digest */
- XMEMSET(&digest[0], 0, sizeof(digest));
- XMEMCPY(&digest[key_sz - inSz], info->pk.eccsign.in, inSz);
-
- /* Sign using slot 0: Result is R then S */
- /* Sign will always use the curve type in slot 0
- (the TLS curve needs to match) */
- XMEMSET(sigRS, 0, sizeof(sigRS));
- rc = stsafe_interface_sign(STSAFE_A_SLOT_0, curve_id,
- (uint8_t*)info->pk.eccsign.in, sigRS);
- if (rc != STSAFE_A_OK) {
- #ifdef USE_STSAFE_VERBOSE
- STSAFE_INTERFACE_PRINTF("stsafe_interface_sign error: %d\n", rc);
- #endif
- rc = WC_HW_E;
- return rc;
- }
-
- /* Convert R and S to signature */
- r = &sigRS[0];
- s = &sigRS[key_sz];
- rc = wc_ecc_rs_raw_to_sig((const byte*)r, key_sz, (const byte*)s,
- key_sz, info->pk.eccsign.out, info->pk.eccsign.outlen);
- if (rc != 0) {
- WOLFSSL_MSG("Error converting RS to Signature");
- }
- }
- else if (info->pk.type == WC_PK_TYPE_ECDSA_VERIFY) {
- byte sigRS[STSAFE_MAX_SIG_LEN];
- byte *r, *s;
- word32 r_len = STSAFE_MAX_SIG_LEN/2, s_len = STSAFE_MAX_SIG_LEN/2;
- byte pubKeyX[STSAFE_MAX_PUBKEY_RAW_LEN/2];
- byte pubKeyY[STSAFE_MAX_PUBKEY_RAW_LEN/2];
- word32 pubKeyX_len = sizeof(pubKeyX);
- word32 pubKeyY_len = sizeof(pubKeyY);
- StSafeA_CurveId curve_id;
- int ecc_curve, key_sz;
-
- WOLFSSL_MSG("STSAFE: ECC Verify");
-
- if (info->pk.eccverify.key == NULL)
- return BAD_FUNC_ARG;
-
- /* determine curve */
- ecc_curve = info->pk.eccverify.key->dp->id;
- curve_id = stsafe_get_ecc_curve_id(ecc_curve);
- key_sz = stsafe_get_key_size(curve_id);
-
- /* Extract Raw X and Y coordinates of the public key */
- rc = wc_ecc_export_public_raw(info->pk.eccverify.key,
- pubKeyX, &pubKeyX_len,
- pubKeyY, &pubKeyY_len);
- if (rc == 0) {
- /* Extract R and S from signature */
- XMEMSET(sigRS, 0, sizeof(sigRS));
- r = &sigRS[0];
- s = &sigRS[key_sz];
- rc = wc_ecc_sig_to_rs(info->pk.eccverify.sig,
- info->pk.eccverify.siglen, r, &r_len, s, &s_len);
- (void)r_len;
- (void)s_len;
- }
- if (rc == 0) {
- /* Verify signature */
- rc = stsafe_interface_verify(curve_id,
- (uint8_t*)info->pk.eccverify.hash, sigRS, pubKeyX, pubKeyY,
- (int32_t*)info->pk.eccverify.res);
- if (rc != STSAFE_A_OK) {
- #ifdef USE_STSAFE_VERBOSE
- STSAFE_INTERFACE_PRINTF("stsafe_interface_verify error: %d\n", rc);
- #endif
- rc = WC_HW_E;
- }
- }
- }
- else if (info->pk.type == WC_PK_TYPE_ECDH) {
- byte otherKeyX[STSAFE_MAX_KEY_LEN];
- byte otherKeyY[STSAFE_MAX_KEY_LEN];
- word32 otherKeyX_len = sizeof(otherKeyX);
- word32 otherKeyY_len = sizeof(otherKeyY);
- StSafeA_CurveId curve_id;
- int ecc_curve;
-
- WOLFSSL_MSG("STSAFE: PMS");
-
- if (info->pk.ecdh.public_key == NULL)
- return BAD_FUNC_ARG;
-
- /* get curve */
- ecc_curve = info->pk.ecdh.public_key->dp->id;
- curve_id = stsafe_get_ecc_curve_id(ecc_curve);
-
- /* Export otherKey raw X and Y */
- rc = wc_ecc_export_public_raw(info->pk.ecdh.public_key,
- &otherKeyX[0], (word32*)&otherKeyX_len,
- &otherKeyY[0], (word32*)&otherKeyY_len);
- if (rc == 0) {
- /* Compute shared secret */
- *info->pk.ecdh.outlen = 0;
- rc = stsafe_interface_shared_secret(curve_id,
- otherKeyX, otherKeyY,
- info->pk.ecdh.out, (int32_t*)info->pk.ecdh.outlen);
- if (rc != STSAFE_A_OK) {
- #ifdef USE_STSAFE_VERBOSE
- STSAFE_INTERFACE_PRINTF("stsafe_interface_shared_secret error: %d\n", rc);
- #endif
- rc = WC_HW_E;
- }
- }
- }
- }
-#endif /* HAVE_ECC */
-
- /* need to return negative here for error */
- if (rc != 0 && rc != CRYPTOCB_UNAVAILABLE) {
- WOLFSSL_MSG("STSAFE: CryptoCb failed");
- #ifdef USE_STSAFE_VERBOSE
- STSAFE_INTERFACE_PRINTF("STSAFE: CryptoCb failed %d\n", rc);
- #endif
- rc = WC_HW_E;
- }
-
- return rc;
-}
-
-#endif /* WOLF_CRYPTO_CB */
-
-#endif /* WOLFSSL_STSAFEA100 */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/xilinx/xil-aesgcm.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/xilinx/xil-aesgcm.c
deleted file mode 100644
index 6af4b3177..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/xilinx/xil-aesgcm.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/* xil-aesgcm.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#if !defined(NO_AES) && defined(WOLFSSL_XILINX_CRYPT)
-
-#include <wolfssl/wolfcrypt/aes.h>
-
-
-#ifdef HAVE_AESGCM
-/* Make calls to Xilinx hardened AES-GCM crypto */
-
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/logging.h>
-
-#ifdef NO_INLINE
- #include <wolfssl/wolfcrypt/misc.h>
-#else
- #define WOLFSSL_MISC_INCLUDED
- #include <wolfcrypt/src/misc.c>
-#endif
-
-#include "xparameters.h"
-
-enum {
- AEAD_NONCE_SZ = 12,
- AES_GCM_AUTH_SZ = 16, /* AES-GCM Auth Tag length */
-};
-
-
-int wc_AesGcmSetKey_ex(Aes* aes, const byte* key, word32 len, word32 kup)
-{
- XCsuDma_Config* con;
-
- if (aes == NULL || key == NULL) {
- return BAD_FUNC_ARG;
- }
-
- if (len != 32) {
- WOLFSSL_MSG("Expecting a 256 bit key");
- return BAD_FUNC_ARG;
- }
-
- if ((con = XCsuDma_LookupConfig(0)) == NULL) {
- WOLFSSL_MSG("Failed to look up config");
- return MEMORY_E;
- }
-
- /* XST_SUCCESS comes from Xilinx header file */
- if (XCsuDma_CfgInitialize(&(aes->dma), con, con->BaseAddress) !=
- XST_SUCCESS) {
- WOLFSSL_MSG("Failed to initialize hardware");
- return MEMORY_E;
- }
-
- aes->keylen = len;
- aes->kup = kup;
- XMEMCPY((byte*)(aes->key_init), key, len);
-
- return 0;
-}
-
-
-
-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)
-{
- byte* tmp;
- byte scratch[AES_BLOCK_SIZE];
- byte initalCounter[AES_BLOCK_SIZE];
-
- if ((in == NULL && sz > 0) || iv == NULL || authTag == NULL ||
- authTagSz > AES_GCM_AUTH_SZ) {
- return BAD_FUNC_ARG;
- }
-
- if (ivSz != AEAD_NONCE_SZ) {
- WOLFSSL_MSG("Expecting an IV size of 12");
- return BAD_FUNC_ARG;
- }
-
- /* API expects that output is size of input + 16 byte tag. A temporary
- * buffer is created to keep AES encrypt from writing over the end of
- * out buffer. */
- if (in != NULL) {
- if (aes->keylen != 32) {
- WOLFSSL_MSG("Expecting 256 bit AES key");
- return BAD_FUNC_ARG;
- }
-
- tmp = (byte*)XMALLOC(sz + AES_GCM_AUTH_SZ, aes->heap,
- DYNAMIC_TYPE_TMP_BUFFER);
- if (tmp == NULL) {
- return MEMORY_E;
- }
-
- XSecure_AesInitialize(&(aes->xilAes), &(aes->dma), aes->kup, (word32*)iv,
- aes->key_init);
- XSecure_AesEncryptData(&(aes->xilAes), tmp, in, sz);
- XMEMCPY(out, tmp, sz);
- XMEMCPY(authTag, tmp + sz, authTagSz);
- XFREE(tmp, aes->heap, DYNAMIC_TYPE_TMP_BUFFER);
- }
-
- /* handle completing tag with any additional data */
- if (authIn != NULL) {
- /* @TODO avoid hashing out again since Xilinx call already does */
- XMEMSET(initalCounter, 0, AES_BLOCK_SIZE);
- XMEMCPY(initalCounter, iv, ivSz);
- initalCounter[AES_BLOCK_SIZE - 1] = 1;
- GHASH(aes, authIn, authInSz, out, sz, authTag, authTagSz);
- wc_AesEncryptDirect(aes, scratch, initalCounter);
- xorbuf(authTag, scratch, authTagSz);
- }
-
- return 0;
-}
-
-
-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)
-{
- byte* tag;
- byte buf[AES_GCM_AUTH_SZ];
- byte scratch[AES_BLOCK_SIZE];
- byte initalCounter[AES_BLOCK_SIZE];
-
- if (in == NULL || iv == NULL || authTag == NULL ||
- authTagSz < AES_GCM_AUTH_SZ) {
- return BAD_FUNC_ARG;
- }
-
- if (ivSz != AEAD_NONCE_SZ) {
- WOLFSSL_MSG("Expecting an IV size of 12");
- return BAD_FUNC_ARG;
- }
-
- /* account for additional data */
- if (authIn != NULL && authInSz > 0) {
- XMEMSET(initalCounter, 0, AES_BLOCK_SIZE);
- XMEMCPY(initalCounter, iv, ivSz);
- initalCounter[AES_BLOCK_SIZE - 1] = 1;
- tag = buf;
- GHASH(aes, NULL, 0, in, sz, tag, AES_GCM_AUTH_SZ);
- wc_AesEncryptDirect(aes, scratch, initalCounter);
- xorbuf(tag, scratch, AES_GCM_AUTH_SZ);
- }
- else {
- tag = authTag;
- }
-
- /* calls to hardened crypto */
- XSecure_AesInitialize(&(aes->xilAes), &(aes->dma), aes->kup,
- (word32*)iv, aes->key_init);
- XSecure_AesDecryptData(&(aes->xilAes), out, in, sz, tag);
-
- /* account for additional data */
- if (authIn != NULL && authInSz > 0) {
- GHASH(aes, authIn, authInSz, in, sz, tag, AES_GCM_AUTH_SZ);
- wc_AesEncryptDirect(aes, scratch, initalCounter);
- xorbuf(tag, scratch, AES_GCM_AUTH_SZ);
- if (ConstantCompare(authTag, tag, authTagSz) != 0) {
- return AES_GCM_AUTH_E;
- }
- }
-
- return 0;
-
-}
-#endif /* HAVE_AESGCM */
-
-#endif
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/xilinx/xil-sha3.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/xilinx/xil-sha3.c
deleted file mode 100644
index a9db6b955..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/src/port/xilinx/xil-sha3.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* xil-sha3.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-
-#if defined(WOLFSSL_SHA3) && defined(WOLFSSL_XILINX_CRYPT)
-
-#include <wolfssl/wolfcrypt/sha3.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-#include <wolfssl/wolfcrypt/logging.h>
-
-#if !defined(WOLFSSL_NOSHA3_224) || !defined(WOLFSSL_NOSHA3_256) \
- || !defined(WOLFSSL_NOSHA3_512)
- #error sizes of SHA3 other than 384 are not supported
-#endif
-
-/* Initialize hardware for SHA3 operations
- *
- * sha SHA3 structure to initialize
- * heap memory heap hint to use
- * devId used for async operations (currently not supported here)
- */
-int wc_InitSha3_384(wc_Sha3* sha, void* heap, int devId)
-{
- XCsuDma_Config* con;
-
- (void)heap;
- (void)devId;
-
- if (sha == NULL) {
- return BAD_FUNC_ARG;
- }
-
- if ((con = XCsuDma_LookupConfig(0)) == NULL) {
- WOLFSSL_MSG("Unable to look up configure for SHA3");
- return BAD_STATE_E;
- }
-
- /* XST_SUCCESS is success macro from Xilinx header */
- if (XCsuDma_CfgInitialize(&(sha->dma), con, con->BaseAddress) !=
- XST_SUCCESS) {
- WOLFSSL_MSG("Unable to initialize CsuDma");
- return BAD_STATE_E;
- }
-
- XSecure_Sha3Initialize(&(sha->hw), &(sha->dma));
- XSecure_Sha3Start(&(sha->hw));
-
- return 0;
-}
-
-
-/* Update SHA3 state
- *
- * sha SHA3 structure to update
- * data message to update SHA3 state with
- * len length of data buffer
- */
-int wc_Sha3_384_Update(wc_Sha3* sha, const byte* data, word32 len)
-{
- if (sha == NULL || (data == NULL && len > 0)) {
- return BAD_FUNC_ARG;
- }
- XSecure_Sha3Update(&(sha->hw), (byte*)data, len);
-
- return 0;
-}
-
-
-/* Finalize SHA3 state and get digest
- *
- * sha SHA3 structure to get hash
- * out digest out, expected to be large enough to hold SHA3 digest
- */
-int wc_Sha3_384_Final(wc_Sha3* sha, byte* out)
-{
- if (sha == NULL || out == NULL) {
- return BAD_FUNC_ARG;
- }
- XSecure_Sha3Finish(&(sha->hw), out);
-
- return wc_InitSha3_384(sha, NULL, INVALID_DEVID);
-}
-
-
-/* Free SHA3 structure
- *
- * sha SHA3 structure to free
- */
-void wc_Sha3_384_Free(wc_Sha3* sha)
-{
- (void)sha;
- /* nothing to free yet */
-}
-
-
-/* Get SHA3 digest without finalize SHA3 state
- *
- * sha SHA3 structure to get hash
- * out digest out, expected to be large enough to hold SHA3 digest
- */
-int wc_Sha3_384_GetHash(wc_Sha3* sha, byte* out)
-{
- wc_Sha3 s;
-
- if (sha == NULL || out == NULL) {
- return BAD_FUNC_ARG;
- }
-
- if (wc_Sha3_384_Copy(sha, &s) != 0) {
- WOLFSSL_MSG("Unable to copy SHA3 structure");
- return MEMORY_E;
- }
-
- return wc_Sha3_384_Final(&s, out);
-}
-
-
-/* Get copy of SHA3 structure
- *
- * src SHA3 structure to make copy of
- * dst [out]structure to hold copy
- */
-int wc_Sha3_384_Copy(wc_Sha3* src, wc_Sha3* dst)
-{
- if (src == NULL || dst== NULL) {
- return BAD_FUNC_ARG;
- }
-
- XMEMCPY((byte*)dst, (byte*)src, sizeof(wc_Sha3));
- return 0;
-}
-
-#endif
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/test/README.md b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/test/README.md
deleted file mode 100644
index bcf877f9a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/test/README.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# wolfCrypt Test
-
-Tool for performing cryptographic algorithm testing.
-
-## Example Output
-
-Run on Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz.
-
-```sh
-./configure --enable-intelasm --enable-aesni --enable-sp --enable-sp-asm && make
-
-./wolfcrypt/test/testwolfcrypt
-------------------------------------------------------------------------------
- wolfSSL version 4.0.0
-------------------------------------------------------------------------------
-error test passed!
-MEMORY test passed!
-base64 test passed!
-asn test passed!
-MD5 test passed!
-SHA test passed!
-SHA-224 test passed!
-SHA-256 test passed!
-SHA-384 test passed!
-SHA-512 test passed!
-SHA-3 test passed!
-Hash test passed!
-HMAC-MD5 test passed!
-HMAC-SHA test passed!
-HMAC-SHA224 test passed!
-HMAC-SHA256 test passed!
-HMAC-SHA384 test passed!
-HMAC-SHA512 test passed!
-HMAC-SHA3 test passed!
-GMAC test passed!
-Chacha test passed!
-POLY1305 test passed!
-ChaCha20-Poly1305 AEAD test passed!
-AES test passed!
-AES192 test passed!
-AES256 test passed!
-AES-GCM test passed!
-RANDOM test passed!
-RSA test passed!
-DH test passed!
-ECC test passed!
-logging test passed!
-mutex test passed!
-memcb test passed!
-Test complete
-```
-
-
-## Windows Visual Studio
-
-For building wolfCrypt test project in Visual Studio open the `test.sln`. For newer Visual Studio version it may prompt for a one-way upgrade. Then you may have to right-click on the solution and choose `Retarget solution` to update the project files for your Visual Studio version.
-
-If you see an error about `rc.exe` then you'll need to update the "Target Platform Version". You can do this by right-clicking on the test project -> General -> "Target Platform Version" and changing to 8.1 (needs to match the wolfssl library project).
-
-This solution includes the wolfSSL library project at `<wolfssl-root>wolfssl.vcxproj` and will compile the library, then the test project.
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/Makefile.am b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/Makefile.am
deleted file mode 100644
index d9c3ae391..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-AM_CFLAGS=-I m4
-
-#add in wolfssl directory
-AM_CPPFLAGS+=-I$(abs_srcdir)/../../ -I$(srcdir)/include/
-lib_LTLIBRARIES = lib/libusercrypto.la
-lib_libusercrypto_la_CPPFLAGS = $(AM_CPPFLAGS)
-lib_libusercrypto_la_LDFLAGS = $(AM_LDFLAGS)
-lib_libusercrypto_la_SOURCES = src/rsa.c
-include_HEADERS = include/user_rsa.h
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/README.txt b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/README.txt
deleted file mode 100644
index 00b772f7b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/README.txt
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2006-2020 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
- */
-
-
-/*
- Created to use intel's IPP see their license for linking to intel's IPP library
- */
-
-
-##BUILDING ON 64BIT MAC OSX
-Tested and developed on MAC OSX linking to IPP v9.0
-
-for me exporting the IPP library was needed. As an example it was
-export DYLD_LIBRARY_PATH="/opt/intel/ipp/lib"
-
-first go to the root wolfssl dir and run ./autogen.sh && ./configure it with desired settings then make. This is to set up the define options and wolfssl library for the user crypto to link to.
-
-Then go to the wolfssl/user-crypto directory and run ./autogen.sh && ./configure then make make install this creates a usercrypto library to use
-
-Finally go back to the root wolfssl directory and follow these build instructions
-
-building wolfSSL add CPPFLAGS=-I/opt/intel/ipp/include for finding the IPP include files
-An example build would be
-./configure --with-user-crypto CPPFLAGS=-I/opt/intel/ipp/include --enable-lighty
-
-
-##BUILDING IN 32BIT UBUNTU
-Tested on UBUNTU 32 bit linking to IPP v9.0
-
-for me exporting the IPP library. As an example it was
-export LD_LIBRARY_PATH="/opt/intel/ipp/lib/ia32_lin/:$LD_LIBRARY_PATH"
-
-first go to the root wolfssl dir and configure it with desired settings and make install. This is to set up the define options and wolfssl library for the user crypto to link to.
-
-For me on Ubuntu the IPP libraries had been installed into /opt/intel/ipp/lib/ia32_lin/ so the ./configure LDFLAGS=-L/opt/intel/ipp/lib/ia32_lin was needed to be looking at that directory.
-Run make && make install from the directory wolfssl_root/wolfssl/user-crypto/ this creates a usercrypto library to use
-
-Finally go back to the root wolfssl directory and follow these build instructions
-
-building wolfSSL add CPPFLAGS=-I/opt/intel/ipp/include for finding the IPP include files
-
-./configure --with-user-crypto=root_wolfssl/wolfssl/user-crypto CPPFLAGS=-I/opt/intel/ipp/include (plus any desired additional flags)
-
-
-##THINGS TO CHECK FOR IF NOT ABLE TO LINK WITH USERCRYPTO LIB
-Check that the path has been exported for the IPP library. If usercrypto is unable to use the function to init an RSA key then the link to it will fail in configure. Check for this by $DYLD_LIBRARY_PATH on mac or $LD_LIBRARY_PATH on ubuntu. If the directory for the Intel IPP libraries are not displayed than use "export DYLD_LIBRARY_PATH=path_to_ipp_libraries:$DYLD_LIBRARY_PATH".
-
-
-##CREATING OWN RSA CRYPTO PLUGIN
-
-It is required to have a header file named user_rsa.h. This is what is looked for by wolfssl/wolfcrypt/rsa.h and should contain the user defined rsa key struct.
-
-It is required to have a library called usercrypto. This is linked to when configuring wolfSSL with the option --with-user-crypto
-
-It is required when compiled with RSA cert generation to have key struct elements named n and e containing the corresponding big numbers. And the three helper functions to work with the big numbers. These functions are called by wolfcrypt/src/asn.c when working with certificates.
-To view the needed functions look at wolfssl/wolfcrypt/rsa.h they will be extern functions surrounded by HAVE_USER_RSA define.
-Cert Generation for other sign and verify such as ECC are not yet supported.
-
-When building with openssl compatibility layer extra developent needs to be done, having the two functions SetRsaExernal and SetRsaInternal
-
-wolfSSL does not take responsibility for the strength of security of third party cryptography libraries plugged in by the user.
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/autogen.sh b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/autogen.sh
deleted file mode 100644
index 89e475c0b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/autogen.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-#
-# Create configure and makefile stuff...
-#
-
-# Git hooks should come before autoreconf.
-if test -d .git; then
- if ! test -d .git/hooks; then
- mkdir .git/hooks
- fi
- ln -s -f ../../pre-commit.sh .git/hooks/pre-commit
- ln -s -f ../../pre-push.sh .git/hooks/pre-push
-fi
-
-# If this is a source checkout then call autoreconf with error as well
-if test -d .git; then
- WARNINGS="all,error"
-else
- WARNINGS="all"
-fi
-
-autoreconf --install --force --verbose
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/configure.ac b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/configure.ac
deleted file mode 100644
index 561b9ccd9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/configure.ac
+++ /dev/null
@@ -1,44 +0,0 @@
-# -*- Autoconf -*-
-# Process this file with autoconf to produce a configure script.
-
-AC_PREREQ([2.63])
-AC_INIT([usercypto], [0.1], [])
-AC_CONFIG_SRCDIR([src/rsa.c])
-
-AM_INIT_AUTOMAKE([1.11 -Wall -Werror -Wno-portability foreign tar-ustar subdir-objects no-define color-tests])
-
-LT_PREREQ([2.2])
-LT_INIT([disable-static])
-LT_LANG([C++])
-LT_LANG([C])
-
-# Checks for programs.
-AC_PROG_CC
-AC_CONFIG_MACRO_DIR([m4])
-
-# Checks for libraries.
-AM_LDFLAGS=$LDFLAGS
-LDFLAGS="$LDFLAGS -L/opt/intel/ipp/lib -lippcp -lippcore"
-
-# Path to find wolfssl/options and other includes
-AM_CPPFLAGS=$CPPFLAGS
-CPPFLAGS="$CPPFLAGS -I../../ -I/opt/intel/ipp/include"
-AC_CHECK_LIB([ippcore], [ippGetStatusString], [], [AC_MSG_ERROR([ippcore library needed ./configure LDFLAGS=/path/to/ipp/lib])])
-AC_CHECK_LIB([ippcp], [ippsRSA_InitPublicKey], [], [AC_MSG_ERROR([ippcp library needed ./configure LDFLAGS=/path/to/ipp/lib])])
-
-# check headers
-AC_CHECK_HEADER([ippcp.h], [], [AC_MSG_ERROR([ippcp.h not found ./configure CPPFLAGS=-I/ipp/headers])])
-AC_CHECK_HEADER([ipp.h], [], [AC_MSG_ERROR([ipp.h not found ./configure CPPFLAGS=-I/ipp/headers])])
-
-LDFLAGS=$AM_LDFLAGS
-CPPFLAGS=$AM_CPPFLAGS
-
-AM_LDFLAGS="-L/opt/intel/ipp/lib -lippcp -lippcore"
-AM_CPPFLAGS="-I/opt/intel/ipp/include"
-
-AC_SUBST([AM_CPPFLAGS])
-AC_SUBST([AM_LDFLAGS])
-AC_C_INLINE
-
-AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/include.am b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/include.am
deleted file mode 100644
index 6cc8577ab..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/include.am
+++ /dev/null
@@ -1,13 +0,0 @@
-
-if BUILD_FAST_RSA
-include_HEADERS += wolfcrypt/user-crypto/include/user_rsa.h
-endif
-
-# user crypto plug in example
-EXTRA_DIST+= wolfcrypt/user-crypto/configure.ac
-EXTRA_DIST+= wolfcrypt/user-crypto/autogen.sh
-EXTRA_DIST+= wolfcrypt/user-crypto/include/user_rsa.h
-EXTRA_DIST+= wolfcrypt/user-crypto/src/rsa.c
-EXTRA_DIST+= wolfcrypt/user-crypto/lib/.gitkeep
-EXTRA_DIST+= wolfcrypt/user-crypto/README.txt
-EXTRA_DIST+= wolfcrypt/user-crypto/Makefile.am
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/include/user_rsa.h b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/include/user_rsa.h
deleted file mode 100644
index 59fc85d14..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/include/user_rsa.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/* user_rsa.h
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-/*
- Created to use intel's IPP see their license for linking to intel's IPP library
- */
-
-#ifndef USER_WOLF_CRYPT_RSA_H
-#define USER_WOLF_CRYPT_RSA_H
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifndef NO_RSA
-
-#include <wolfssl/wolfcrypt/types.h>
-#include <wolfssl/wolfcrypt/random.h>
-
-/* intels crypto */
-#include <ipp.h>
-#include <ippcp.h>
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* needed for WOLFSSL_RSA type but use macro guard against redefine */
-#if defined(OPENSSL_EXTRA) && !defined(WOLFSSL_TYPES_DEFINED) \
- && !defined(WOLFSSL_RSA_TYPE_DEFINED)
- struct WOLFSSL_RSA;
- typedef struct WOLFSSL_RSA WOLFSSL_RSA;
- #define WOLFSSL_RSA_TYPE_DEFINED
-#endif
-
-
-enum {
- RSA_PUBLIC = 0,
- RSA_PRIVATE = 1,
-};
-
-/* RSA */
-struct RsaKey {
- IppsBigNumState* n;
- IppsBigNumState* e;
- IppsBigNumState* dipp;
- IppsBigNumState* pipp;
- IppsBigNumState* qipp;
- IppsBigNumState* dPipp;
- IppsBigNumState* dQipp;
- IppsBigNumState* uipp;
- int nSz, eSz, dSz;
- IppsRSAPublicKeyState* pPub;
- IppsRSAPrivateKeyState* pPrv;
- word32 prvSz; /* size of private key */
- word32 sz; /* size of signature */
- int type; /* public or private */
- void* heap; /* for user memory overrides */
-};
-
-#ifndef WC_RSAKEY_TYPE_DEFINED
- typedef struct RsaKey RsaKey;
- #define WC_RSAKEY_TYPE_DEFINED
-#endif
-
-WOLFSSL_API int wc_InitRsaKey(RsaKey* key, void*);
-WOLFSSL_API int wc_InitRsaKey_ex(RsaKey* key, void* heap, int devId);
-WOLFSSL_API int wc_FreeRsaKey(RsaKey* key);
-
-WOLFSSL_API int wc_RsaPublicEncrypt(const byte* in, word32 inLen, byte* out,
- word32 outLen, RsaKey* key, WC_RNG* rng);
-WOLFSSL_API int wc_RsaPrivateDecryptInline(byte* in, word32 inLen, byte** out,
- RsaKey* key);
-WOLFSSL_API int wc_RsaPrivateDecrypt(const byte* in, word32 inLen, byte* out,
- word32 outLen, RsaKey* key);
-WOLFSSL_API int wc_RsaSSL_Sign(const byte* in, word32 inLen, byte* out,
- word32 outLen, RsaKey* key, WC_RNG* rng);
-WOLFSSL_API int wc_RsaSSL_VerifyInline(byte* in, word32 inLen, byte** out,
- RsaKey* key);
-WOLFSSL_API int wc_RsaSSL_Verify(const byte* in, word32 inLen, byte* out,
- word32 outLen, RsaKey* key);
-WOLFSSL_API int wc_RsaEncryptSize(RsaKey* key);
-
-WOLFSSL_API int wc_RsaPrivateKeyDecode(const byte* input, word32* inOutIdx,
- RsaKey*, word32);
-WOLFSSL_API int wc_RsaPublicKeyDecode_ex(const byte* input, word32* inOutIdx,
- word32 inSz, const byte** n, word32* nSz, const byte** e, word32* eSz);
-WOLFSSL_API int wc_RsaPublicKeyDecode(const byte* input, word32* inOutIdx,
- RsaKey*, word32);
-WOLFSSL_API int wc_RsaPublicKeyDecodeRaw(const byte* n, word32 nSz,
- const byte* e, word32 eSz, RsaKey* key);
-WOLFSSL_API int wc_RsaKeyToDer(RsaKey*, byte* output, word32 inLen);
-WOLFSSL_API int wc_RsaKeyToPublicDer(RsaKey*, byte* output, word32 inLen);
-#ifdef WOLFSSL_KEY_GEN
- WOLFSSL_API int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng);
-#endif
-WOLFSSL_API int wc_RsaFlattenPublicKey(RsaKey*, byte*, word32*, byte*,
- word32*);
-WOLFSSL_API int wc_RsaSetRNG(RsaKey* key, WC_RNG* rng);
-
-
-#if defined(WOLFSSL_CERT_GEN) || defined(WOLFSSL_KEY_GEN) || defined(OPENSSL_EXTRA)
- /* abstracted BN operations with RSA key */
- WOLFSSL_API int wc_Rsa_leading_bit(void* BN);
- WOLFSSL_API int wc_Rsa_unsigned_bin_size(void* BN);
-
- /* return MP_OKAY on success */
- WOLFSSL_API int wc_Rsa_to_unsigned_bin(void* BN, byte* in, int inLen);
-#endif
-
-#ifdef OPENSSL_EXTRA /* abstracted functions to deal with rsa key */
- WOLFSSL_API int SetRsaExternal(WOLFSSL_RSA* rsa);
- WOLFSSL_API int SetRsaInternal(WOLFSSL_RSA* rsa);
-#endif
-#ifdef __cplusplus
- } /* extern "C" */
-#endif
-
-#endif /* NO_RSA */
-#endif /* USER_WOLF_CRYPT_RSA_H */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/lib/.gitkeep b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/lib/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/lib/.gitkeep
+++ /dev/null
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/src/rsa.c b/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/src/rsa.c
deleted file mode 100644
index a9f5afd8b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfcrypt/user-crypto/src/rsa.c
+++ /dev/null
@@ -1,2790 +0,0 @@
-/* rsa.c
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-#ifdef HAVE_CONFIG_H /* configure options when using autoconf */
- #include <config.h>
-#endif
-
-#include <wolfssl/options.h>
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifndef NO_RSA
-
-#define USER_CRYPTO_ERROR -101
-
-#ifdef OPENSSL_EXTRA
- #include <wolfssl/openssl/rsa.h> /* include for openssl compatibility */
- #include <wolfssl/openssl/bn.h>
-#endif
-#include "user_rsa.h"
-
-#ifdef DEBUG_WOLFSSL /* debug done without variadric to allow older compilers */
- #include <stdio.h>
- #define USER_DEBUG(x) printf x
-#else
- #define USER_DEBUG(x)
-#endif
-
-#define ASN_INTEGER 0x02
-#define ASN_BIT_STRING 0x03
-#define ASN_TAG_NULL 0x05
-#define ASN_OBJECT_ID 0x06
-
-
-/* Make sure compiler doesn't skip -- used from wolfSSL */
-static inline void ForceZero(const void* mem, word32 len)
-{
- volatile byte* z = (volatile byte*)mem;
-
- while (len--) *z++ = 0;
-}
-
-enum {
- RSA_PUBLIC_ENCRYPT = 0,
- RSA_PUBLIC_DECRYPT = 1,
- RSA_PRIVATE_ENCRYPT = 2,
- RSA_PRIVATE_DECRYPT = 3,
-
- RSA_BLOCK_TYPE_1 = 1,
- RSA_BLOCK_TYPE_2 = 2,
-
- RSA_MIN_SIZE = 512,
- RSA_MAX_SIZE = 4096, /* max allowed in IPP library */
-
- RSA_MIN_PAD_SZ = 11 /* separator + 0 + pad value + 8 pads */
-};
-
-
-int wc_InitRsaKey_ex(RsaKey* key, void* heap, int devId)
-{
-
- USER_DEBUG(("Entering wc_InitRsaKey\n"));
-
- if (key == NULL)
- return USER_CRYPTO_ERROR;
-
- /* set full struct as 0 */
- ForceZero(key, sizeof(RsaKey));
-
- USER_DEBUG(("\tExit wc_InitRsaKey\n"));
-
- (void)devId;
- (void)heap;
- return 0;
-}
-
-int wc_InitRsaKey(RsaKey* key, void* heap)
-{
- return wc_InitRsaKey_ex(key, heap, INVALID_DEVID);
-}
-
-
-/* three functions needed for cert and key gen */
-#if defined(WOLFSSL_CERT_GEN) || defined(WOLFSSL_KEY_GEN) || defined(OPENSSL_EXTRA)
-/* return 1 if there is a leading bit*/
-int wc_Rsa_leading_bit(void* bn)
-{
- int ret = 0;
- int dataSz;
- Ipp32u* data;
- Ipp32u q;
- int qSz = sizeof(Ipp32u);
-
- if (ippsExtGet_BN(NULL, &dataSz, NULL, bn) != ippStsNoErr) {
- USER_DEBUG(("ippsExtGet_BN Rsa leading bit error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- /* convert from size in binary to Ipp32u */
- dataSz = dataSz / 32 + ((dataSz % 32)? 1 : 0);
- data = (Ipp32u*)XMALLOC(dataSz * sizeof(Ipp32u), NULL,
- DYNAMIC_TYPE_USER_CRYPTO);
- if (data == NULL) {
- USER_DEBUG(("Rsa leading bit memory error\n"));
- return 0;
- }
-
- /* extract value from BN */
- if (ippsExtGet_BN(NULL, NULL, data, bn) != ippStsNoErr) {
- USER_DEBUG(("Rsa leading bit error\n"));
- XFREE(data, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- return 0;
- }
-
- /* use method like what's used in wolfssl tfm.c */
- q = data[dataSz - 1];
-
- ret = 0;
- while (qSz > 0) {
- if (q != 0)
- ret = (q & 0x80) != 0;
- q >>= 8;
- qSz--;
- }
-
- XFREE(data, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-
- return ret;
-}
-
-
-/* get the size in bytes of BN */
-int wc_Rsa_unsigned_bin_size(void* bn)
-{
- int ret = 0;
- if (ippsExtGet_BN(NULL, &ret, NULL, bn) != ippStsNoErr) {
- USER_DEBUG(("Rsa unsigned bin size error\n"));
- return USER_CRYPTO_ERROR;
- }
- return (ret / 8) + ((ret % 8)? 1: 0); /* size in bytes */
-}
-
-#ifndef MP_OKAY
-#define MP_OKAY 0
-#endif
-
-/* extract the bn value to a unsigned byte array and return MP_OKAY on success */
-int wc_Rsa_to_unsigned_bin(void* bn, byte* in, int inLen)
-{
- if (ippsGetOctString_BN((Ipp8u*)in, inLen, bn) != ippStsNoErr) {
- USER_DEBUG(("Rsa to unsigned bin error\n"));
- return USER_CRYPTO_ERROR;
- }
- return MP_OKAY;
-}
-#endif /* WOLFSSL_CERT_GEN || WOLFSSL_KEY_GEN || OPENSSL_EXTRA */
-
-
-#ifdef OPENSSL_EXTRA /* functions needed for openssl compatibility layer */
-static int SetIndividualExternal(WOLFSSL_BIGNUM** bn, IppsBigNumState* in)
-{
- IppStatus ret;
- byte* data;
- int sz;
-
- USER_DEBUG(("Entering SetIndividualExternal\n"));
-
- if (bn == NULL || in == NULL) {
- USER_DEBUG(("inputs NULL error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (*bn == NULL) {
- *bn = wolfSSL_BN_new();
- if (*bn == NULL) {
- USER_DEBUG(("SetIndividualExternal alloc failed\n"));
- return USER_CRYPTO_ERROR;
- }
- }
-
- /* get size of array needed and extract oct array of data */
- ret = ippsGetSize_BN(in, &sz);
- if (ret != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- data = (byte*)XMALLOC(sz, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- if (data == NULL)
- return USER_CRYPTO_ERROR;
-
- ret = ippsGetOctString_BN(data, sz, in);
- if (ret != ippStsNoErr) {
- XFREE(data, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- return USER_CRYPTO_ERROR;
- }
-
- /* store the data into a wolfSSL Big Number */
- *bn = wolfSSL_BN_bin2bn(data, sz, *bn);
-
- XFREE(data, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-
- return 0;
-}
-
-
-static int SetIndividualInternal(WOLFSSL_BIGNUM* bn, IppsBigNumState** mpi)
-{
- int length, ctxSz, sz;
- IppStatus ret;
- Ipp8u* data;
-
- USER_DEBUG(("Entering SetIndividualInternal\n"));
-
- if (bn == NULL || bn->internal == NULL) {
- USER_DEBUG(("bn NULL error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- length = wolfSSL_BN_num_bytes(bn);
-
- /* if not IPP BN then create one */
- if (*mpi == NULL) {
- ret = ippsBigNumGetSize(length, &ctxSz);
- if (ret != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- *mpi = (IppsBigNumState*)XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
- if (*mpi == NULL)
- return USER_CRYPTO_ERROR;
-
- ret = ippsBigNumInit(length, *mpi);
- if (ret != ippStsNoErr) {
- XFREE(*mpi, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- return USER_CRYPTO_ERROR;
- }
-
- }
-
- /* get the size of array needed and check IPP BigNum */
- if (ippsGetSize_BN(*mpi, &sz) != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- if (sz < length) {
- USER_DEBUG(("big num size is too small\n"));
- return USER_CRYPTO_ERROR;
- }
-
- data = (Ipp8u*)XMALLOC(length, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- if (data == NULL)
- return USER_CRYPTO_ERROR;
-
- /* extract the wolfSSL BigNum and store it into IPP BigNum */
- if (wolfSSL_BN_bn2bin(bn, data) < 0) {
- XFREE(data, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- USER_DEBUG(("error in getting bin from wolfssl bn\n"));
- return USER_CRYPTO_ERROR;
- }
-
- ret = ippsSetOctString_BN(data, length, *mpi);
- if (ret != ippStsNoErr) {
- XFREE(data, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- return USER_CRYPTO_ERROR;
- }
-
- XFREE(data, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-
- return 0;
-}
-
-
-/* WolfSSL -> OpenSSL */
-int SetRsaExternal(WOLFSSL_RSA* rsa)
-{
- RsaKey* key;
- USER_DEBUG(("Entering SetRsaExternal\n"));
-
- if (rsa == NULL || rsa->internal == NULL) {
- USER_DEBUG(("rsa key NULL error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- key = (RsaKey*)rsa->internal;
-
- if (SetIndividualExternal(&rsa->n, key->n) != 0) {
- USER_DEBUG(("rsa n key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (SetIndividualExternal(&rsa->e, key->e) != 0) {
- USER_DEBUG(("rsa e key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (key->type == RSA_PRIVATE) {
- if (SetIndividualExternal(&rsa->d, key->dipp) != 0) {
- USER_DEBUG(("rsa d key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (SetIndividualExternal(&rsa->p, key->pipp) != 0) {
- USER_DEBUG(("rsa p key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (SetIndividualExternal(&rsa->q, key->qipp) != 0) {
- USER_DEBUG(("rsa q key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (SetIndividualExternal(&rsa->dmp1, key->dPipp) != 0) {
- USER_DEBUG(("rsa dP key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (SetIndividualExternal(&rsa->dmq1, key->dQipp) != 0) {
- USER_DEBUG(("rsa dQ key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (SetIndividualExternal(&rsa->iqmp, key->uipp) != 0) {
- USER_DEBUG(("rsa u key error\n"));
- return USER_CRYPTO_ERROR;
- }
- }
-
- rsa->exSet = 1;
-
- /* SSL_SUCCESS */
- return 1;
-}
-
-
-/* Openssl -> WolfSSL */
-int SetRsaInternal(WOLFSSL_RSA* rsa)
-{
- int ctxSz, pSz, qSz;
- IppStatus ret;
- RsaKey* key;
- USER_DEBUG(("Entering SetRsaInternal\n"));
-
- if (rsa == NULL || rsa->internal == NULL) {
- USER_DEBUG(("rsa key NULL error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- key = (RsaKey*)rsa->internal;
-
- if (SetIndividualInternal(rsa->n, &key->n) != 0) {
- USER_DEBUG(("rsa n key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (SetIndividualInternal(rsa->e, &key->e) != 0) {
- USER_DEBUG(("rsa e key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- /* public key */
- key->type = RSA_PUBLIC;
-
- if (rsa->d != NULL) {
- if (SetIndividualInternal(rsa->d, &key->dipp) != 0) {
- USER_DEBUG(("rsa d key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- /* private key */
- key->type = RSA_PRIVATE;
- }
-
- if (rsa->p != NULL &&
- SetIndividualInternal(rsa->p, &key->pipp) != 0) {
- USER_DEBUG(("rsa p key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (rsa->q != NULL &&
- SetIndividualInternal(rsa->q, &key->qipp) != 0) {
- USER_DEBUG(("rsa q key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (rsa->dmp1 != NULL &&
- SetIndividualInternal(rsa->dmp1, &key->dPipp) != 0) {
- USER_DEBUG(("rsa dP key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (rsa->dmq1 != NULL &&
- SetIndividualInternal(rsa->dmq1, &key->dQipp) != 0) {
- USER_DEBUG(("rsa dQ key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (rsa->iqmp != NULL &&
- SetIndividualInternal(rsa->iqmp, &key->uipp) != 0) {
- USER_DEBUG(("rsa u key error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- rsa->inSet = 1;
-
- /* get sizes of IPP BN key states created from input */
- ret = ippsGetSize_BN(key->n, &key->nSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsGetSize_BN error %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- ret = ippsGetSize_BN(key->e, &key->eSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsGetSize_BN error %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- key->sz = key->nSz; /* set modulus size */
-
- /* convert to size in bits */
- key->nSz = key->nSz * 8;
- key->eSz = key->eSz * 8;
-
- /* set up public key state */
- ret = ippsRSA_GetSizePublicKey(key->nSz, key->eSz, &ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_GetSizePublicKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- key->pPub = (IppsRSAPublicKeyState*)XMALLOC(ctxSz, NULL,
- DYNAMIC_TYPE_USER_CRYPTO);
- if (key->pPub == NULL)
- return USER_CRYPTO_ERROR;
-
- ret = ippsRSA_InitPublicKey(key->nSz, key->eSz, key->pPub, ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_InitPublicKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- ret = ippsRSA_SetPublicKey(key->n, key->e, key->pPub);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_SetPublicKey error %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- if (key->pipp != NULL && key->qipp != NULL && key->dipp != NULL &&
- key->dPipp != NULL && key->dQipp != NULL && key->uipp != NULL) {
- /* get bn sizes needed for private key set up */
- ret = ippsGetSize_BN(key->pipp, &pSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsGetSize_BN error %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- ret = ippsGetSize_BN(key->qipp, &qSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsGetSize_BN error %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- /* store sizes needed for creating tmp private keys */
- ret = ippsGetSize_BN(key->dipp, &key->dSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsGetSize_BN error %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- /* convert to size in bits */
- key->dSz = key->dSz * 8;
- pSz = pSz * 8;
- qSz = qSz * 8;
-
- /* set up private key state */
- ret = ippsRSA_GetSizePrivateKeyType2(pSz, qSz, &ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_GetSizePrivateKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- key->prvSz = ctxSz;
- key->pPrv = (IppsRSAPrivateKeyState*)XMALLOC(ctxSz, 0,
- DYNAMIC_TYPE_USER_CRYPTO);
- if (key->pPrv == NULL)
- return USER_CRYPTO_ERROR;
-
- ret = ippsRSA_InitPrivateKeyType2(pSz, qSz, key->pPrv, ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_InitPrivateKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- ret = ippsRSA_SetPrivateKeyType2(key->pipp, key->qipp, key->dPipp,
- key->dQipp, key->uipp, key->pPrv);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_SetPrivateKey error %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
- }
-
- /* SSL_SUCCESS */
- return 1;
-}
-#endif /* OPENSSLEXTRA */
-
-
-/* Padding scheme function used in wolfSSL for signing needed for matching
- existing API signing scheme
- input : the msg to be signed
- inputLen : length of input msg
- pkcsBlock : the outputted padded msg
- pkcsBlockLen : length of outputted padded msg buffer
- padValue : the padded value after first 00 , is either 01 or 02
- rng : random number generator structure
- */
-static int wc_RsaPad(const byte* input, word32 inputLen, byte* pkcsBlock,
- word32 pkcsBlockLen, byte padValue, WC_RNG* rng)
-{
- if (inputLen == 0 || pkcsBlockLen == 0) {
- return USER_CRYPTO_ERROR;
- }
-
- pkcsBlock[0] = 0x0; /* set first byte to zero and advance */
- pkcsBlock++; pkcsBlockLen--;
- pkcsBlock[0] = padValue; /* insert padValue */
-
- if (padValue == RSA_BLOCK_TYPE_1) {
- if (pkcsBlockLen < inputLen + 2) {
- return USER_CRYPTO_ERROR;
- }
-
- /* pad with 0xff bytes */
- XMEMSET(&pkcsBlock[1], 0xFF, pkcsBlockLen - inputLen - 2);
- }
- else {
- /* pad with non-zero random bytes */
- word32 padLen, i;
- int ret;
-
- if (pkcsBlockLen < inputLen + 1) {
- return USER_CRYPTO_ERROR;
- }
-
- padLen = pkcsBlockLen - inputLen - 1;
- ret = wc_RNG_GenerateBlock(rng, &pkcsBlock[1], padLen);
-
- if (ret != 0)
- return ret;
-
- /* remove zeros */
- for (i = 1; i < padLen; i++)
- if (pkcsBlock[i] == 0) pkcsBlock[i] = 0x01;
- }
-
- pkcsBlock[pkcsBlockLen-inputLen-1] = 0; /* separator */
- XMEMCPY(pkcsBlock+pkcsBlockLen-inputLen, input, inputLen);
-
- return 0;
-}
-
-
-/* UnPad plaintext, set start to *output, return length of plaintext,
- * < 0 on error */
-static int RsaUnPad(const byte *pkcsBlock, unsigned int pkcsBlockLen,
- byte **output, byte padValue)
-{
- word32 maxOutputLen = (pkcsBlockLen > 10) ? (pkcsBlockLen - 10) : 0,
- invalid = 0,
- i = 1,
- outputLen;
-
- if (pkcsBlockLen == 0) {
- return USER_CRYPTO_ERROR;
- }
-
- if (pkcsBlock[0] != 0x0) /* skip past zero */
- invalid = 1;
- pkcsBlock++; pkcsBlockLen--;
-
- /* Require block type padValue */
- invalid = (pkcsBlock[0] != padValue) || invalid;
-
- /* verify the padding until we find the separator */
- if (padValue == RSA_BLOCK_TYPE_1) {
- while (i<pkcsBlockLen && pkcsBlock[i++] == 0xFF) {/* Null body */}
- }
- else {
- while (i<pkcsBlockLen && pkcsBlock[i++]) {/* Null body */}
- }
-
- if(!(i==pkcsBlockLen || pkcsBlock[i-1]==0)) {
- USER_DEBUG(("RsaUnPad error, bad formatting\n"));
- return USER_CRYPTO_ERROR;
- }
-
- outputLen = pkcsBlockLen - i;
- invalid = (outputLen > maxOutputLen) || invalid;
-
- if (invalid) {
- USER_DEBUG(("RsaUnPad error, bad formatting\n"));
- return USER_CRYPTO_ERROR;
- }
-
- *output = (byte *)(pkcsBlock + i);
- return outputLen;
-}
-
-
-/* Set up memory and structure for a Big Number
- * returns ippStsNoErr on success
- */
-static IppStatus init_bn(IppsBigNumState** in, int sz)
-{
- int ctxSz;
- IppStatus ret;
-
- ret = ippsBigNumGetSize(sz, &ctxSz);
- if (ret != ippStsNoErr) {
- return ret;
- }
-
- *in = (IppsBigNumState*)XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
- if (*in == NULL) {
- return ippStsNoMemErr;
- }
-
- ret = ippsBigNumInit(sz, *in);
- if (ret != ippStsNoErr) {
- XFREE(*in, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- *in = NULL;
- return ret;
- }
-
- return ippStsNoErr;
-}
-
-
-/* Set up memory and structure for a Montgomery struct
- * returns ippStsNoErr on success
- */
-static IppStatus init_mont(IppsMontState** mont, int* ctxSz,
- IppsBigNumState* modul)
-{
- int mSz;
- Ipp32u* m;
- IppStatus ret;
-
- ret = ippsExtGet_BN(NULL, ctxSz, NULL, modul);
- if (ret != ippStsNoErr) {
- return ret;
- }
-
- /* convert bits to Ipp32u array size and round up
- 32 is number of bits in type */
- mSz = (*ctxSz/32)+((*ctxSz % 32)? 1: 0);
- m = (Ipp32u*)XMALLOC(mSz * sizeof(Ipp32u), 0, DYNAMIC_TYPE_USER_CRYPTO);
- if (m == NULL) {
- XFREE(m, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- return ippStsNoMemErr;
- }
-
- ret = ippsExtGet_BN(NULL, NULL, m, modul);
- if (ret != ippStsNoErr) {
- XFREE(m, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- return ret;
- }
-
- ret = ippsMontGetSize(IppsSlidingWindows, mSz, ctxSz);
- if (ret != ippStsNoErr) {
- XFREE(m, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- return ret;
- }
-
- /* 2. Allocate working buffer using malloc */
- *mont = (IppsMontState*)XMALLOC(*ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
- if (*mont == NULL) {
- XFREE(m, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- return ippStsNoMemErr;
- }
- ret = ippsMontInit(IppsSlidingWindows, mSz, *mont);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsMontInit error of %s\n", ippGetStatusString(ret)));
- XFREE(m, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(*mont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- *mont = NULL;
- return ret;
- }
-
- /* 3. Call the function MontSet to set big number module */
- ret = ippsMontSet(m, mSz, *mont);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsMontSet error of %s\n", ippGetStatusString(ret)));
- XFREE(m, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(*mont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- *mont = NULL;
- return ret;
- }
-
- XFREE(m, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-
- return ippStsNoErr;
-}
-
-
-
-int wc_FreeRsaKey(RsaKey* key)
-{
- if (key == NULL)
- return 0;
-
- USER_DEBUG(("Entering wc_FreeRsaKey\n"));
-
- if (key->pPub != NULL) {
- XFREE(key->pPub, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- key->pPub = NULL;
- }
-
- if (key->pPrv != NULL) {
- /* write over sensitive information */
- ForceZero(key->pPrv, key->prvSz);
- XFREE(key->pPrv, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- key->pPrv = NULL;
- }
-
- if (key->n != NULL) {
- XFREE(key->n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- key->n = NULL;
- }
-
- if (key->e != NULL) {
- XFREE(key->e, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- key->e = NULL;
- }
-
- if (key->dipp != NULL) {
- XFREE(key->dipp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- key->dipp = NULL;
- }
-
- if (key->pipp != NULL) {
- XFREE(key->pipp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- key->pipp = NULL;
- }
-
- if (key->qipp != NULL) {
- XFREE(key->qipp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- key->qipp = NULL;
- }
-
- if (key->dPipp != NULL) {
- XFREE(key->dPipp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- key->dPipp = NULL;
- }
-
- if (key->dQipp != NULL) {
- XFREE(key->dQipp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- key->dQipp = NULL;
- }
-
- if (key->uipp != NULL) {
- XFREE(key->uipp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- key->uipp = NULL;
- }
-
- USER_DEBUG(("\tExit wc_FreeRsaKey\n"));
- (void)key;
-
- return 0;
-}
-
-
-/* Some parsing functions from wolfSSL code needed to match wolfSSL API used */
-static int GetLength(const byte* input, word32* inOutIdx, int* len,
- word32 maxIdx)
-{
- int length = 0;
- word32 idx = *inOutIdx;
- byte b;
-
- *len = 0; /* default length */
-
- if ((idx + 1) > maxIdx) { /* for first read */
- USER_DEBUG(("GetLength bad index on input\n"));
- return USER_CRYPTO_ERROR;
- }
-
- b = input[idx++];
- if (b >= 0x80) {
- word32 bytes = b & 0x7F;
-
- if ((idx + bytes) > maxIdx) { /* for reading bytes */
- USER_DEBUG(("GetLength bad long length\n"));
- return USER_CRYPTO_ERROR;
- }
-
- while (bytes--) {
- b = input[idx++];
- length = (length << 8) | b;
- }
- }
- else
- length = b;
-
- if ((idx + length) > maxIdx) { /* for user of length */
- USER_DEBUG(("GetLength value exceeds buffer length\n"));
- return USER_CRYPTO_ERROR;
- }
-
- *inOutIdx = idx;
- if (length > 0)
- *len = length;
-
- return length;
-}
-
-static int GetASNHeader(const byte* input, byte tag, word32* inOutIdx, int* len,
- word32 maxIdx)
-{
- word32 idx = *inOutIdx;
- byte b;
- int length;
-
- if ((idx + 1) > maxIdx)
- return USER_CRYPTO_ERROR;
-
- b = input[idx++];
- if (b != tag)
- return USER_CRYPTO_ERROR;
-
- if (GetLength(input, &idx, &length, maxIdx) < 0)
- return USER_CRYPTO_ERROR;
-
- *len = length;
- *inOutIdx = idx;
- return length;
-}
-
-static int GetASNInt(const byte* input, word32* inOutIdx, int* len,
- word32 maxIdx)
-{
- int ret;
-
- ret = GetASNHeader(input, ASN_INTEGER, inOutIdx, len, maxIdx);
- if (ret < 0)
- return ret;
-
- if (*len > 0) {
- /* remove leading zero, unless there is only one 0x00 byte */
- if ((input[*inOutIdx] == 0x00) && (*len > 1)) {
- (*inOutIdx)++;
- (*len)--;
-
- if (*len > 0 && (input[*inOutIdx] & 0x80) == 0)
- return USER_CRYPTO_ERROR;
- }
- }
-
- return 0;
-}
-
-static int GetInt(IppsBigNumState** mpi, const byte* input, word32* inOutIdx,
- word32 maxIdx)
-{
- IppStatus ret;
- word32 idx = *inOutIdx;
- int length;
- int ctxSz;
-
- if (GetASNInt(input, &idx, &length, maxIdx) < 0) {
- return USER_CRYPTO_ERROR;
- }
-
- ret = ippsBigNumGetSize(length, &ctxSz);
- if (ret != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- *mpi = (IppsBigNumState*)XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
- if (*mpi == NULL)
- return USER_CRYPTO_ERROR;
-
- ret = ippsBigNumInit(length, *mpi);
- if (ret != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- ret = ippsSetOctString_BN((Ipp8u*)input + idx, length, *mpi);
- if (ret != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- *inOutIdx = idx + length;
- return 0;
-}
-
-
-static int GetSequence(const byte* input, word32* inOutIdx, int* len,
- word32 maxIdx)
-{
- int length = -1;
- word32 idx = *inOutIdx;
-
- if ((idx + 1) > maxIdx)
- return USER_CRYPTO_ERROR;
-
- if (input[idx++] != (0x10 | 0x20) ||
- GetLength(input, &idx, &length, maxIdx) < 0)
- return USER_CRYPTO_ERROR;
-
- *len = length;
- *inOutIdx = idx;
-
- return length;
-}
-
-
-static int GetMyVersion(const byte* input, word32* inOutIdx,
- int* version, word32 maxIdx)
-{
- word32 idx = *inOutIdx;
-
- if ((idx + 3) > maxIdx)
- return USER_CRYPTO_ERROR;
-
- if (input[idx++] != 0x02)
- return USER_CRYPTO_ERROR;
-
- if (input[idx++] != 0x01)
- return USER_CRYPTO_ERROR;
-
- *version = input[idx++];
- *inOutIdx = idx;
-
- return *version;
-}
-
-
-int wc_RsaPrivateKeyDecode(const byte* input, word32* inOutIdx, RsaKey* key,
- word32 inSz)
-{
- int version, length;
- int ctxSz, pSz, qSz;
- IppStatus ret;
-
- if (input == NULL || inOutIdx == NULL || key == NULL) {
- return USER_CRYPTO_ERROR;
- }
-
- USER_DEBUG(("Entering wc_RsaPrivateKeyDecode\n"));
-
- /* read in key information */
- if (GetSequence(input, inOutIdx, &length, inSz) < 0)
- return USER_CRYPTO_ERROR;
-
- if (GetMyVersion(input, inOutIdx, &version, inSz) < 0)
- return USER_CRYPTO_ERROR;
-
- key->type = RSA_PRIVATE;
-
- if (GetInt(&key->n, input, inOutIdx, inSz) < 0 ||
- GetInt(&key->e, input, inOutIdx, inSz) < 0 ||
- GetInt(&key->dipp, input, inOutIdx, inSz) < 0 ||
- GetInt(&key->pipp, input, inOutIdx, inSz) < 0 ||
- GetInt(&key->qipp, input, inOutIdx, inSz) < 0 ||
- GetInt(&key->dPipp, input, inOutIdx, inSz) < 0 ||
- GetInt(&key->dQipp, input, inOutIdx, inSz) < 0 ||
- GetInt(&key->uipp, input, inOutIdx, inSz) < 0 )
- return USER_CRYPTO_ERROR;
-
- /* get sizes of IPP BN key states created from input */
- ret = ippsGetSize_BN(key->n, &key->nSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsGetSize_BN error %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- ret = ippsGetSize_BN(key->e, &key->eSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsGetSize_BN error %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- key->sz = key->nSz; /* set modulus size */
-
- /* convert to size in bits */
- key->nSz = key->nSz * 8;
- key->eSz = key->eSz * 8;
-
- /* set up public key state */
- ret = ippsRSA_GetSizePublicKey(key->nSz, key->eSz, &ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_GetSizePublicKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- key->pPub = (IppsRSAPublicKeyState*)XMALLOC(ctxSz, NULL,
- DYNAMIC_TYPE_USER_CRYPTO);
- if (key->pPub == NULL)
- return USER_CRYPTO_ERROR;
-
- ret = ippsRSA_InitPublicKey(key->nSz, key->eSz, key->pPub, ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_InitPublicKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- ret = ippsRSA_SetPublicKey(key->n, key->e, key->pPub);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_SetPublicKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- /* get bn sizes needed for private key set up */
- ret = ippsGetSize_BN(key->pipp, &pSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsGetSize_BN error %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- ret = ippsGetSize_BN(key->qipp, &qSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsGetSize_BN error %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- /* store sizes needed for creating tmp private keys */
- ret = ippsGetSize_BN(key->dipp, &key->dSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsGetSize_BN error %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- /* convert to size in bits */
- key->dSz = key->dSz * 8;
- pSz = pSz * 8;
- qSz = qSz * 8;
-
- /* set up private key state */
- ret = ippsRSA_GetSizePrivateKeyType2(pSz, qSz, &ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_GetSizePrivateKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- key->prvSz = ctxSz;
- key->pPrv = (IppsRSAPrivateKeyState*)XMALLOC(ctxSz, 0,
- DYNAMIC_TYPE_USER_CRYPTO);
- if (key->pPrv == NULL)
- return USER_CRYPTO_ERROR;
-
- ret = ippsRSA_InitPrivateKeyType2(pSz, qSz, key->pPrv, ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_InitPrivateKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- ret = ippsRSA_SetPrivateKeyType2(key->pipp, key->qipp, key->dPipp,
- key->dQipp, key->uipp, key->pPrv);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_SetPrivateKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- USER_DEBUG(("\tExit wc_RsaPrivateKeyDecode\n"));
-
- return 0;
-}
-
-
-int wc_RsaPublicKeyDecode_ex(const byte* input, word32* inOutIdx,
- word32 inSz, const byte** n, word32* nSz, const byte** e, word32* eSz)
-{
- IppStatus ret = 0;
- int length;
-#if defined(OPENSSL_EXTRA) || defined(RSA_DECODE_EXTRA)
- byte b;
-#endif
-
- if (input == NULL || inOutIdx == NULL) {
- return USER_CRYPTO_ERROR;
- }
-
- USER_DEBUG(("Entering wc_RsaPublicKeyDecode_ex\n"));
-
- if (GetSequence(input, inOutIdx, &length, inSz) < 0)
- return USER_CRYPTO_ERROR;
-
-#if defined(OPENSSL_EXTRA) || defined(RSA_DECODE_EXTRA)
- if ((*inOutIdx + 1) > inSz)
- return USER_CRYPTO_ERROR;
-
- b = input[*inOutIdx];
- if (b != ASN_INTEGER) {
- /* not from decoded cert, will have algo id, skip past */
- if (GetSequence(input, inOutIdx, &length, inSz) < 0)
- return USER_CRYPTO_ERROR;
-
- b = input[(*inOutIdx)++];
- if (b != ASN_OBJECT_ID)
- return USER_CRYPTO_ERROR;
-
- if (GetLength(input, inOutIdx, &length, inSz) < 0)
- return USER_CRYPTO_ERROR;
-
- *inOutIdx += length; /* skip past */
-
- /* could have NULL tag and 0 terminator, but may not */
- b = input[(*inOutIdx)++];
-
- if (b == ASN_TAG_NULL) {
- b = input[(*inOutIdx)++];
- if (b != 0)
- return USER_CRYPTO_ERROR;
- }
- else {
- /* go back, didn't have it */
- (*inOutIdx)--;
- }
-
- /* should have bit tag length and seq next */
- b = input[(*inOutIdx)++];
- if (b != ASN_BIT_STRING)
- return USER_CRYPTO_ERROR;
-
- if (GetLength(input, inOutIdx, &length, inSz) <= 0)
- return USER_CRYPTO_ERROR;
-
- /* could have 0 */
- b = input[(*inOutIdx)++];
- if (b != 0)
- (*inOutIdx)--;
-
- if (GetSequence(input, inOutIdx, &length, inSz) < 0)
- return USER_CRYPTO_ERROR;
- }
-#endif /* OPENSSL_EXTRA || RSA_DECODE_EXTRA */
-
- /* Get modulus */
- ret = GetASNInt(input, inOutIdx, &length, inSz);
- if (ret < 0) {
- return USER_CRYPTO_ERROR;
- }
- if (nSz)
- *nSz = length;
- if (n)
- *n = &input[*inOutIdx];
- *inOutIdx += length;
-
- /* Get exponent */
- ret = GetASNInt(input, inOutIdx, &length, inSz);
- if (ret < 0) {
- return USER_CRYPTO_ERROR;
- }
- if (eSz)
- *eSz = length;
- if (e)
- *e = &input[*inOutIdx];
- *inOutIdx += length;
-
- USER_DEBUG(("\tExit wc_RsaPublicKeyDecode_ex\n"));
-
- return ret;
-}
-
-/* read in a public RSA key */
-int wc_RsaPublicKeyDecode(const byte* input, word32* inOutIdx, RsaKey* key,
- word32 inSz)
-{
- IppStatus ret;
- const byte *n = NULL, *e = NULL;
- word32 nSz = 0, eSz = 0;
-
- if (key == NULL)
- return USER_CRYPTO_ERROR;
-
- USER_DEBUG(("Entering wc_RsaPublicKeyDecode\n"));
-
- ret = wc_RsaPublicKeyDecode_ex(input, inOutIdx, inSz, &n, &nSz, &e, &eSz);
- if (ret == 0) {
- ret = wc_RsaPublicKeyDecodeRaw(n, nSz, e, eSz, key);
- }
-
- USER_DEBUG(("\tExit RsaPublicKeyDecode\n"));
-
- return ret;
-}
-
-/* import RSA public key elements (n, e) into RsaKey structure (key) */
-int wc_RsaPublicKeyDecodeRaw(const byte* n, word32 nSz, const byte* e,
- word32 eSz, RsaKey* key)
-{
- IppStatus ret;
- int ctxSz;
-
- USER_DEBUG(("Entering wc_RsaPublicKeyDecodeRaw\n"));
-
- if (n == NULL || e == NULL || key == NULL)
- return USER_CRYPTO_ERROR;
-
- /* set up IPP key states -- read in n */
- ret = init_bn(&key->n, nSz);
- if (ret != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- ret = ippsSetOctString_BN((Ipp8u*)n, nSz, key->n);
- if (ret != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- /* read in e */
- ret = init_bn(&key->e, eSz);
- if (ret != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- ret = ippsSetOctString_BN((Ipp8u*)e, eSz, key->e);
- if (ret != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- /* store size and convert to binary */
- key->sz = nSz;
- nSz = nSz * 8;
- eSz = eSz * 8;
-
- /* set up public key state */
- ret = ippsRSA_GetSizePublicKey(nSz, eSz, &ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_GetSizePublicKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- key->pPub = (IppsRSAPublicKeyState*)XMALLOC(ctxSz, NULL,
- DYNAMIC_TYPE_USER_CRYPTO);
- if (key->pPub == NULL)
- return USER_CRYPTO_ERROR;
-
- ret = ippsRSA_InitPublicKey(nSz, eSz, key->pPub, ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_InitPublicKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- ret = ippsRSA_SetPublicKey(key->n,key->e, key->pPub);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_SetPublicKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- key->nSz = nSz;
- key->eSz = eSz;
- key->type = RSA_PUBLIC;
-
- return 0;
-}
-
-
-/* encrypt using PKCS v15 */
-int wc_RsaPublicEncrypt(const byte* in, word32 inLen, byte* out, word32 outLen,
- RsaKey* key, WC_RNG* rng)
-{
- IppStatus ret;
- Ipp8u* scratchBuffer;
- int scratchSz;
-
- if (key == NULL || in == NULL || out == NULL)
- return USER_CRYPTO_ERROR;
-
- if (key->pPub == NULL || outLen < key->sz)
- return USER_CRYPTO_ERROR;
-
- /* set size of scratch buffer */
- ret = ippsRSA_GetBufferSizePublicKey(&scratchSz, key->pPub);
- if (ret != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- scratchBuffer = (Ipp8u*)XMALLOC(scratchSz*(sizeof(Ipp8u)), 0,
- DYNAMIC_TYPE_USER_CRYPTO);
- if (scratchBuffer == NULL)
- return USER_CRYPTO_ERROR;
-
- ret = ippsRSAEncrypt_PKCSv15((Ipp8u*)in, inLen, NULL, (Ipp8u*)out,
- key->pPub, scratchBuffer);
- if (ret != ippStsNoErr) {
- XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- USER_DEBUG(("encrypt error of %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-
- (void)rng;
- return key->sz;
-}
-
-
-/* decrypt using PLCS v15 */
-int wc_RsaPrivateDecrypt(const byte* in, word32 inLen, byte* out, word32 outLen,
- RsaKey* key)
-{
- IppStatus ret;
- Ipp8u* scratchBuffer;
- int scratchSz;
- int outSz;
-
- if (in == NULL || out == NULL || key == NULL)
- return USER_CRYPTO_ERROR;
-
- if (key->pPrv == NULL || inLen != key->sz)
- return USER_CRYPTO_ERROR;
-
- outSz = outLen;
-
- /* set size of scratch buffer */
- ret = ippsRSA_GetBufferSizePrivateKey(&scratchSz, key->pPrv);
- if (ret != ippStsNoErr) {
- return USER_CRYPTO_ERROR;
- }
-
- scratchBuffer = (Ipp8u*)XMALLOC(scratchSz*(sizeof(Ipp8u)), 0,
- DYNAMIC_TYPE_USER_CRYPTO);
- if (scratchBuffer == NULL) {
- return USER_CRYPTO_ERROR;
- }
-
- /* perform decryption using IPP */
- ret = ippsRSADecrypt_PKCSv15((Ipp8u*)in, (Ipp8u*)out, &outSz, key->pPrv,
- scratchBuffer);
- if (ret != ippStsNoErr) {
- XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- USER_DEBUG(("decrypt error of %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-
- return outSz;
-}
-
-
-/* out is a pointer that is set to the location in byte array "in" where input
- data has been decrypted */
-int wc_RsaPrivateDecryptInline(byte* in, word32 inLen, byte** out, RsaKey* key)
-{
- int outSz;
- byte* tmp;
-
- USER_DEBUG(("Entering wc_RsaPrivateDecryptInline\n"));
-
- /* allocate a buffer for max decrypted text */
- tmp = (byte*)XMALLOC(key->sz, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- if (tmp == NULL)
- return USER_CRYPTO_ERROR;
-
- outSz = wc_RsaPrivateDecrypt(in, inLen, tmp, key->sz, key);
- if (outSz >= 0) {
- XMEMCPY(in, tmp, outSz);
- *out = in;
- }
- else {
- XFREE(tmp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- return USER_CRYPTO_ERROR;
- }
-
- XFREE(tmp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- USER_DEBUG(("\tExit wc_RsaPrivateDecryptInline\n"));
-
- return outSz;
-}
-
-
-/* Used to clean up memory when exiting, clean up memory used */
-static int FreeHelper(IppsBigNumState* pTxt, IppsBigNumState* cTxt,
- Ipp8u* scratchBuffer, void* pPub)
-{
- if (pTxt != NULL)
- XFREE(pTxt, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- if (cTxt != NULL)
- XFREE(cTxt, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- if (scratchBuffer != NULL)
- XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- if (pPub != NULL)
- XFREE(pPub, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-
- return 0;
-}
-
-
-/* for Rsa Verify
- in : byte array to be verified
- inLen : length of input array
- out : pointer to location of in byte array that has been verified
- */
-int wc_RsaSSL_VerifyInline(byte* in, word32 inLen, byte** out, RsaKey* key)
-{
-
- int ctxSz;
- int scratchSz;
- Ipp8u* scratchBuffer = NULL;
- IppStatus ret;
- IppsRSAPrivateKeyState* pPub = NULL;
- IppsBigNumState* pTxt = NULL;
- IppsBigNumState* cTxt = NULL;
-
- USER_DEBUG(("Entering wc_RsaSSL_VerifyInline\n"));
-
- if (key == NULL || key->n == NULL || key->e == NULL) {
- USER_DEBUG(("n or e element was null\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (in == NULL || inLen == 0 || out == NULL)
- return USER_CRYPTO_ERROR;
-
- /* set up a private key state using public key values */
- ret = ippsRSA_GetSizePrivateKeyType1(key->nSz, key->eSz, &ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_GetSizePrivateKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- pPub = (IppsRSAPrivateKeyState*)XMALLOC(ctxSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
- if (pPub == NULL)
- return USER_CRYPTO_ERROR;
-
- ret = ippsRSA_InitPrivateKeyType1(key->nSz, key->eSz, pPub, ctxSz);
- if (ret != ippStsNoErr) {
- FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
- USER_DEBUG(("ippsRSA_InitPrivateKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- ret = ippsRSA_SetPrivateKeyType1(key->n, key->e, pPub);
- if (ret != ippStsNoErr) {
- FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
- USER_DEBUG(("ippsRSA_SetPrivateKey error %s\n",
- ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- /* set size of scratch buffer */
- ret = ippsRSA_GetBufferSizePrivateKey(&scratchSz, pPub);
- if (ret != ippStsNoErr) {
- FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
- return USER_CRYPTO_ERROR;
- }
-
- scratchBuffer = (Ipp8u*)XMALLOC(scratchSz*(sizeof(Ipp8u)), 0,
- DYNAMIC_TYPE_USER_CRYPTO);
- if (scratchBuffer == NULL) {
- FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
- return USER_CRYPTO_ERROR;
- }
-
- /* load plain and cipher into big num states */
- ret = init_bn(&pTxt, key->sz);
- if (ret != ippStsNoErr) {
- FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
- return USER_CRYPTO_ERROR;
- }
- ret = ippsSetOctString_BN((Ipp8u*)in, key->sz, pTxt);
- if (ret != ippStsNoErr) {
- FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
- return USER_CRYPTO_ERROR;
- }
-
- /* set up cipher to hold signature */
- ret = init_bn(&cTxt, key->sz);
- if (ret != ippStsNoErr) {
- FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
- return USER_CRYPTO_ERROR;
- }
- ret = ippsSetOctString_BN((Ipp8u*)in, key->sz, cTxt);
- if (ret != ippStsNoErr) {
- FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
- return USER_CRYPTO_ERROR;
- }
-
- /* decrypt using public key information */
- ret = ippsRSA_Decrypt(cTxt, pTxt, pPub, scratchBuffer);
- if (ret != ippStsNoErr) {
- FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
- USER_DEBUG(("decrypt error of %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- /* extract big num struct to octet string */
- ret = ippsGetOctString_BN((Ipp8u*)in, key->sz, pTxt);
- if (ret != ippStsNoErr) {
- FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
- USER_DEBUG(("BN get string error of %s\n", ippGetStatusString(ret)));
- return USER_CRYPTO_ERROR;
- }
-
- FreeHelper(pTxt, cTxt, scratchBuffer, pPub);
-
- /* unpad the decrypted information and return size of array */
- return RsaUnPad(in, inLen, out, RSA_BLOCK_TYPE_1);
-}
-
-
-/* sets up and call VerifyInline to verify a signature */
-int wc_RsaSSL_Verify(const byte* in, word32 inLen, byte* out, word32 outLen,
- RsaKey* key)
-{
- int plainLen;
- byte* tmp;
- byte* pad = 0;
-
- if (out == NULL || in == NULL || key == NULL)
- return USER_CRYPTO_ERROR;
-
- tmp = (byte*)XMALLOC(inLen, key->heap, DYNAMIC_TYPE_USER_CRYPTO);
- if (tmp == NULL) {
- return USER_CRYPTO_ERROR;
- }
-
- XMEMCPY(tmp, in, inLen);
-
- /* verify signature and test if output buffer is large enough */
- plainLen = wc_RsaSSL_VerifyInline(tmp, inLen, &pad, key);
- if (plainLen < 0) {
- XFREE(tmp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- return plainLen;
- }
-
- if (plainLen > (int)outLen)
- plainLen = USER_CRYPTO_ERROR;
- else
- XMEMCPY(out, pad, plainLen);
-
- ForceZero(tmp, inLen);
- XFREE(tmp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-
- return plainLen;
-}
-
-
-/* Check if a > b , if so c = a mod b
- return ippStsNoErr on success */
-static IppStatus reduce(IppsBigNumState* a, IppsBigNumState* b,
- IppsBigNumState* c)
-{
- IppStatus ret;
-
- if ((ret = ippsMod_BN(a, b, c)) != ippStsNoErr)
- return ret;
-
- return ippStsNoErr;
-}
-
-
-static IppStatus exptmod(IppsBigNumState* a, IppsBigNumState* b,
- IppsMontState* mont, IppsBigNumState* out, IppsBigNumState* one)
-{
- IppStatus ret;
-
- ret = ippsMontForm(a, mont, a);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsMontForm error of %s\n", ippGetStatusString(ret)));
- return ret;
- }
-
- /* a = a^b mod mont */
- ret = ippsMontExp(a, b, mont, out);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsMontExp error of %s\n", ippGetStatusString(ret)));
- return ret;
- }
-
- /* convert back from montgomery */
- ret = ippsMontMul(out, one, mont, out);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsMontMul error of %s\n", ippGetStatusString(ret)));
- return ret;
- }
-
- return ippStsNoErr;
-}
-
-
-static void Free_BN(IppsBigNumState* bn)
-{
- int sz, ctxSz;
- IppStatus ret;
-
- if (bn != NULL) {
- ret = ippStsNoErr;
- ret |= ippsGetSize_BN(bn, &sz);
- ret |= ippsBigNumGetSize(sz, &ctxSz);
- if (ret == ippStsNoErr) {
- ForceZero(bn, ctxSz);
- }
- else {
- USER_DEBUG(("Issue with clearing a struct in RsaSSL_Sign free\n"));
- }
- XFREE(bn, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- }
-}
-
-
-/* free up memory used during CRT sign operation */
-static void FreeSignHelper(IppsBigNumState* one, IppsBigNumState* tmp,
- IppsBigNumState* tmpP, IppsBigNumState* tmpQ, IppsBigNumState* tmpa,
- IppsBigNumState* tmpb)
-{
- Free_BN(one);
- Free_BN(tmp);
- Free_BN(tmpP);
- Free_BN(tmpQ);
- Free_BN(tmpa);
- Free_BN(tmpb);
-}
-
-
-/* for Rsa Sign */
-int wc_RsaSSL_Sign(const byte* in, word32 inLen, byte* out, word32 outLen,
- RsaKey* key, WC_RNG* rng)
-{
- int sz, pSz, qSz;
- IppStatus ret;
- word32 outSz = outLen;
-
- IppsMontState* pMont = NULL;
- IppsMontState* qMont = NULL;
-
- IppsBigNumState* one = NULL;
- IppsBigNumState* tmp = NULL;
- IppsBigNumState* tmpP = NULL;
- IppsBigNumState* tmpQ = NULL;
- IppsBigNumState* tmpa = NULL;
- IppsBigNumState* tmpb = NULL;
-
- IppsBigNumSGN sa, sb;
-
- Ipp8u o[1];
- o[0] = 1;
-
- USER_DEBUG(("Entering wc_RsaSSL_Sign\n"));
-
- if (in == NULL || out == NULL || key == NULL || rng == NULL) {
- USER_DEBUG(("Bad argument to wc_RsaSSL_Sign\n"));
- return USER_CRYPTO_ERROR;
- }
-
- sz = key->sz;
-
-
- /* sanity check on key being used */
- if (key->pipp == NULL || key->qipp == NULL || key->uipp == NULL ||
- key->dPipp == NULL || key->dQipp == NULL) {
- USER_DEBUG(("Bad key argument to wc_RsaSSL_Sign\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (sz > (int)outLen) {
- USER_DEBUG(("Bad argument outLen to wc_RsaSSL_Sign\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (sz < RSA_MIN_PAD_SZ) {
- USER_DEBUG(("Key size is too small\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (inLen > (word32)(sz - RSA_MIN_PAD_SZ)) {
- USER_DEBUG(("Bad argument inLen to wc_RsaSSL_Sign\n"));
- return USER_CRYPTO_ERROR;
- }
-
- /* Set up needed pkcs v15 padding */
- if (wc_RsaPad(in, inLen, out, sz, RSA_BLOCK_TYPE_1, rng) != 0) {
- USER_DEBUG(("RSA Padding error\n"));
- return USER_CRYPTO_ERROR;
- }
-
- /* tmp = input to sign */
- ret = init_bn(&tmp, sz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("init_BN error of %s\n", ippGetStatusString(ret)));
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
- ret = ippsSetOctString_BN(out, sz, tmp);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsSetOctString_BN error of %s\n",
- ippGetStatusString(ret)));
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- /* tmpP = tmp mod p */
- ret = init_bn(&tmpP, sz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("init_BN error of %s\n", ippGetStatusString(ret)));
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- /* tmpQ = tmp mod q */
- ret = init_bn(&tmpQ, sz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("init_BN error of %s\n", ippGetStatusString(ret)));
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- /* tmpa */
- ret = init_bn(&tmpa, sz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("init_BN error of %s\n", ippGetStatusString(ret)));
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- /* tmpb */
- ret = init_bn(&tmpb, sz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("init_BN error of %s\n", ippGetStatusString(ret)));
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- /* one : used for conversion from Montgomery to classical */
- ret = init_bn(&one, sz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("init_BN error of %s\n", ippGetStatusString(ret)));
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
- ret = ippsSetOctString_BN(o, 1, one);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsSetOctString_BN error of %s\n",
- ippGetStatusString(ret)));
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- /**
- Set up Montgomery state
- */
- ret = init_mont(&pMont, &pSz, key->pipp);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("init_mont error of %s\n", ippGetStatusString(ret)));
- if (pMont != NULL) {
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- }
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- ret = init_mont(&qMont, &qSz, key->qipp);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("init_mont error of %s\n", ippGetStatusString(ret)));
- if (qMont != NULL) {
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- }
- ForceZero(pMont, pSz);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- /**
- Check and reduce input
- This is needed for calls to MontExp since required value of a < modulus
- */
- ret = reduce(tmp, key->pipp, tmpP);
- if (ret != ippStsNoErr)
- {
- USER_DEBUG(("reduce error of %s\n", ippGetStatusString(ret)));
- ForceZero(pMont, pSz);
- ForceZero(qMont, qSz);
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- ret = reduce(tmp, key->qipp, tmpQ);
- if (ret != ippStsNoErr)
- {
- USER_DEBUG(("reduce error of %s\n", ippGetStatusString(ret)));
- ForceZero(pMont, pSz);
- ForceZero(qMont, qSz);
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- /* tmpa = (tmp mod p)^dP mod p */
- ret = exptmod(tmpP, key->dPipp, pMont, tmpa, one);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("exptmod error of %s\n", ippGetStatusString(ret)));
- ForceZero(pMont, pSz);
- ForceZero(qMont, qSz);
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- /* tmpb = (tmp mod q)^dQ mod q */
- ret = exptmod(tmpQ, key->dQipp, qMont, tmpb, one);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("exptmod error of %s\n", ippGetStatusString(ret)));
- ForceZero(pMont, pSz);
- ForceZero(qMont, qSz);
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- /* tmp = (tmpa - tmpb) * qInv (mod p) */
- ret = ippsSub_BN(tmpa, tmpb, tmp);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsSub_BN error of %s\n", ippGetStatusString(ret)));
- ForceZero(pMont, pSz);
- ForceZero(qMont, qSz);
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- ret = ippsMul_BN(tmp, key->uipp, tmp);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsMul_BN error of %s\n", ippGetStatusString(ret)));
- ForceZero(pMont, pSz);
- ForceZero(qMont, qSz);
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- /* mod performed the same was as wolfSSL fp_mod -- tmpa is just scratch */
- ret = ippsDiv_BN(tmp, key->pipp, tmpa, tmp);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsDiv_BN error of %s\n", ippGetStatusString(ret)));
- ForceZero(pMont, pSz);
- ForceZero(qMont, qSz);
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- /* Check sign of values and perform conditional add */
- ret = ippsExtGet_BN(&sa, NULL, NULL, tmp);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsExtGet_BN error of %s\n", ippGetStatusString(ret)));
- ForceZero(pMont, pSz);
- ForceZero(qMont, qSz);
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
- ret = ippsExtGet_BN(&sb, NULL, NULL, key->pipp);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsExtGet_BN error of %s\n", ippGetStatusString(ret)));
- ForceZero(pMont, pSz);
- ForceZero(qMont, qSz);
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
- if (sa != sb) {
- ret = ippsAdd_BN(tmp, key->pipp, tmp);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsAdd_BN error of %s\n", ippGetStatusString(ret)));
- ForceZero(pMont, pSz);
- ForceZero(qMont, qSz);
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
- }
-
- /* tmp = tmpb + q * tmp */
- ret = ippsMul_BN(tmp, key->qipp, tmp);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsSub_BN error of %s\n", ippGetStatusString(ret)));
- ForceZero(pMont, pSz);
- ForceZero(qMont, qSz);
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
-
- ret = ippsAdd_BN(tmp, tmpb, tmp);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsSub_BN error of %s\n", ippGetStatusString(ret)));
- ForceZero(pMont, pSz);
- ForceZero(qMont, qSz);
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- /* Extract the output */
- ret = ippsGetOctString_BN(out, sz, tmp);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsGetOctString_BN error of %s\n",
- ippGetStatusString(ret)));
- ForceZero(pMont, pSz);
- ForceZero(qMont, qSz);
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
- return USER_CRYPTO_ERROR;
- }
-
- outSz = sz;
-
- /* clear memory and free */
- ForceZero(pMont, pSz);
- ForceZero(qMont, qSz);
- XFREE(qMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pMont, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- FreeSignHelper(one, tmp, tmpP, tmpQ, tmpa, tmpb);
-
- return outSz;
-}
-
-
-int wc_RsaEncryptSize(RsaKey* key)
-{
- if (key == NULL)
- return 0;
-
- return key->sz;
-}
-
-
-/* flatten RsaKey structure into individual elements (e, n) */
-int wc_RsaFlattenPublicKey(RsaKey* key, byte* e, word32* eSz, byte* n,
- word32* nSz)
-{
- int sz, bytSz;
- IppStatus ret;
-
- USER_DEBUG(("Entering wc_RsaFlattenPublicKey\n"));
-
- if (key == NULL || e == NULL || eSz == NULL || n == NULL || nSz == NULL)
- return USER_CRYPTO_ERROR;
-
- bytSz = sizeof(byte) * 8;
- ret = ippsExtGet_BN(NULL, &sz, NULL, key->e);
- if (ret != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- /* sz is in bits change to bytes */
- sz = (sz / bytSz) + ((sz % bytSz)? 1 : 0);
-
- if (*eSz < (word32)sz)
- return USER_CRYPTO_ERROR;
-
- ret = ippsGetOctString_BN(e, sz, key->e);
- if (ret != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- *eSz = (word32)sz;
-
- /* flatten n */
- ret = ippsExtGet_BN(NULL, &sz, NULL, key->n);
- if (ret != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- /* sz is in bits change to bytes */
- sz = (sz / bytSz) + ((sz % bytSz)? 1: 0);
-
- if (*nSz < (word32)sz)
- return USER_CRYPTO_ERROR;
-
- ret = ippsGetOctString_BN(n, sz, key->n);
- if (ret != ippStsNoErr)
- return USER_CRYPTO_ERROR;
-
- *nSz = (word32)sz;
-
- return 0;
-}
-
-
-IppStatus wolfSSL_rng(Ipp32u* pData, int nBits, void* pEbsParams);
-IppStatus wolfSSL_rng(Ipp32u* pData, int nBits, void* pEbsParams)
-{
- int nBytes;
-
- if (pData == NULL) {
- USER_DEBUG(("error with wolfSSL_rng argument\n"));
- return ippStsErr;
- }
-
- nBytes = (nBits/8) + ((nBits % 8)? 1: 0);
- if (wc_RNG_GenerateBlock((WC_RNG*)pEbsParams, (byte*)pData, nBytes) != 0) {
- USER_DEBUG(("error in generating random wolfSSL block\n"));
- return ippStsErr;
- }
-
- return ippStsNoErr;
-}
-
-
-#ifdef WOLFSSL_KEY_GEN
-/* Make an RSA key for size bits, with e specified, 65537 is a good e */
-int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
-{
- IppStatus ret;
- int scratchSz;
- int i; /* for trys on calling make key */
- int ctxSz;
-
- IppsBigNumState* pSrcPublicExp = NULL;
- Ipp8u* scratchBuffer = NULL;
- Ipp8u eAry[8];
- int trys = 8; /* Miller-Rabin test parameter */
- IppsPrimeState* pPrime = NULL;
-
- int qBitSz; /* size of q factor */
- int bytSz; /* size of key in bytes */
- int leng;
-
- USER_DEBUG(("Entering wc_MakeRsaKey\n"));
-
- /* get byte size and individual private key size -- round up */
- qBitSz = (size / 2) + ((size % 2)? 1: 0);
- bytSz = (size / 8) + ((size % 8)? 1: 0);
-
- if (key == NULL || rng == NULL) {
- USER_DEBUG(("Error, NULL argument passed in\n"));
- return USER_CRYPTO_ERROR;
- }
-
- if (e < 3 || (e&1) == 0)
- return USER_CRYPTO_ERROR;
-
- if (size > RSA_MAX_SIZE || size < RSA_MIN_SIZE)
- return USER_CRYPTO_ERROR;
-
- key->type = RSA_PRIVATE;
- key->sz = bytSz;
-
- /* initialize prime number */
- ret = ippsPrimeGetSize(size, &ctxSz); /* size in bits */
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsPrimeGetSize error of %s\n", ippGetStatusString(ret)));
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- pPrime = (IppsPrimeState*)XMALLOC(ctxSz, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- if (pPrime == NULL) {
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- ret = ippsPrimeInit(size, pPrime);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsPrimeInit error of %s\n", ippGetStatusString(ret)));
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* define RSA privete key type 2 */
- /* length in bits of p and q factors */
- ret = ippsRSA_GetSizePrivateKeyType2(qBitSz, qBitSz, &ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_GetSizePrivateKeyType2 error of %s\n",
- ippGetStatusString(ret)));
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- key->prvSz = ctxSz; /* used when freeing private key */
- key->pPrv = (IppsRSAPrivateKeyState*)XMALLOC(ctxSz, NULL,
- DYNAMIC_TYPE_USER_CRYPTO);
- if (key->pPrv == NULL) {
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* length in bits of p and q factors */
- ret = ippsRSA_InitPrivateKeyType2(qBitSz, qBitSz, key->pPrv, ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_InitPrivateKeyType2 error of %s\n",
- ippGetStatusString(ret)));
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* allocate scratch buffer */
- ret = ippsRSA_GetBufferSizePrivateKey(&scratchSz, key->pPrv);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_GetBufferSizePrivateKey error of %s\n",
- ippGetStatusString(ret)));
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- scratchBuffer = (Ipp8u*)XMALLOC(scratchSz, 0, DYNAMIC_TYPE_USER_CRYPTO);
- if (scratchBuffer == NULL) {
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* set up initial value of pScrPublicExp */
- leng = (int)sizeof(long); /* # of Ipp32u in long */
-
- /* place the value of e into the array eAry then load into BN */
- for (i = 0; i < leng; i++) {
- eAry[i] = (e >> (8 * (leng - 1 - i))) & 0XFF;
- }
- ret = init_bn(&pSrcPublicExp, leng);
- if (ret != ippStsNoErr) {
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- ret = ippsSetOctString_BN(eAry, leng, pSrcPublicExp);
- if (ret != ippStsNoErr) {
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* initializing key->n */
- ret = init_bn(&key->n, bytSz);
- if (ret != ippStsNoErr) {
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* initializing public exponent key->e */
- ret = init_bn(&key->e, leng);
- if (ret != ippStsNoErr) {
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* private exponent key->dipp */
- ret = init_bn(&key->dipp, bytSz);
- if (ret != ippStsNoErr) {
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* call IPP to generate keys, if inseficent entropy error call again */
- ret = ippStsInsufficientEntropy;
- while (ret == ippStsInsufficientEntropy) {
- ret = ippsRSA_GenerateKeys(pSrcPublicExp, key->n, key->e,
- key->dipp, key->pPrv, scratchBuffer, trys, pPrime,
- wolfSSL_rng, rng);
- if (ret == ippStsNoErr) {
- break;
- }
-
- /* catch all errors other than entropy error */
- if (ret != ippStsInsufficientEntropy) {
- USER_DEBUG(("ippsRSA_GeneratKeys error of %s\n",
- ippGetStatusString(ret)));
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
- }
-
- /* get bn sizes needed for private key set up */
- ret = ippsExtGet_BN(NULL, &key->eSz, NULL, key->e);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsGetSize_BN error %s\n", ippGetStatusString(ret)));
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- ret = ippsExtGet_BN(NULL, &key->nSz, NULL, key->n);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsGetSize_BN error %s\n", ippGetStatusString(ret)));
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* set up public key state */
- ret = ippsRSA_GetSizePublicKey(key->nSz, key->eSz, &ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_GetSizePublicKey error %s nSz = %d eSz = %d\n",
- ippGetStatusString(ret), key->nSz, key->eSz));
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- key->pPub = (IppsRSAPublicKeyState*)XMALLOC(ctxSz, NULL,
- DYNAMIC_TYPE_USER_CRYPTO);
- if (key->pPub == NULL) {
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- ret = ippsRSA_InitPublicKey(key->nSz, key->eSz, key->pPub, ctxSz);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_InitPublicKey error %s\n",
- ippGetStatusString(ret)));
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- ret = ippsRSA_SetPublicKey(key->n, key->e, key->pPub);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_SetPublicKey error %s\n",
- ippGetStatusString(ret)));
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* get private key information for key struct */
- leng = size/16; /* size of q, p, u, dP, dQ */
- ret = init_bn(&key->pipp, leng);
- if (ret != ippStsNoErr) {
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* set up q BN for key */
- ret = init_bn(&key->qipp, leng);
- if (ret != ippStsNoErr) {
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* set up dP BN for key */
- ret = init_bn(&key->dPipp, leng);
- if (ret != ippStsNoErr) {
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* set up dQ BN for key */
- ret = init_bn(&key->dQipp, leng);
- if (ret != ippStsNoErr) {
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* set up u BN for key */
- ret = init_bn(&key->uipp, leng);
- if (ret != ippStsNoErr) {
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
-
- /* get values from created key */
- ret = ippsRSA_GetPrivateKeyType2(key->pipp, key->qipp, key->dPipp,
- key->dQipp, key->uipp, key->pPrv);
- if (ret != ippStsNoErr) {
- USER_DEBUG(("ippsRSA_GetPrivateKeyType2 error %s\n",
- ippGetStatusString(ret)));
- ret = USER_CRYPTO_ERROR;
- goto makeKeyEnd;
- }
- ret = 0; /* success case */
-
-makeKeyEnd:
- /* clean up memory used */
- XFREE(pSrcPublicExp, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(scratchBuffer, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(pPrime, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-
- if (ret != 0) { /* with fail case free RSA components created */
- wc_FreeRsaKey(key);
- }
-
- return ret;
-}
-
-#endif
-
-#if defined(WOLFSSL_KEY_GEN) || defined(OPENSSL_EXTRA)
-
-/********** duplicate code needed -- future refactor */
-#define MAX_VERSION_SZ 5
-#define MAX_SEQ_SZ 5
-#define ASN_CONTEXT_SPECIFIC 0x80
-#define ASN_CONSTRUCTED 0x20
-#define ASN_LONG_LENGTH 0x80
-#define ASN_SEQUENCE 0x10
-#define RSA_INTS 8
-#define FALSE 0
-#define TRUE 1
-
-#define MAX_LENGTH_SZ 4
-#define RSAk 645
-#define keyType 2
-#define MAX_RSA_INT_SZ 517
-#define MAX_RSA_E_SZ 16
-#define MAX_ALGO_SZ 20
-
-static word32 BytePrecision(word32 value)
-{
- word32 i;
- for (i = sizeof(value); i; --i)
- if (value >> ((i - 1) * WOLFSSL_BIT_SIZE))
- break;
-
- return i;
-}
-
-
-static int SetMyVersion(word32 version, byte* output, int header)
-{
- int i = 0;
-
- if (output == NULL)
- return USER_CRYPTO_ERROR;
-
- if (header) {
- output[i++] = ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED;
- output[i++] = ASN_BIT_STRING;
- }
- output[i++] = ASN_INTEGER;
- output[i++] = 0x01;
- output[i++] = (byte)version;
-
- return i;
-}
-
-
-static word32 SetLength(word32 length, byte* output)
-{
- word32 i = 0, j;
-
- if (length < 0x80)
- output[i++] = (byte)length;
- else {
- output[i++] = (byte)(BytePrecision(length) | ASN_LONG_LENGTH);
-
- for (j = BytePrecision(length); j; --j) {
- output[i] = (byte)(length >> ((j - 1) * WOLFSSL_BIT_SIZE));
- i++;
- }
- }
-
- return i;
-}
-
-
-static word32 SetSequence(word32 len, byte* output)
-{
- output[0] = ASN_SEQUENCE | ASN_CONSTRUCTED;
- return SetLength(len, output + 1) + 1;
-}
-
-
-static word32 SetAlgoID(int algoOID, byte* output, int type, int curveSz)
-{
- /* adding TAG_NULL and 0 to end */
-
- /* RSA keyType */
- #ifndef NO_RSA
- static const byte RSA_AlgoID[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
- 0x01, 0x01, 0x01, 0x05, 0x00};
- #endif /* NO_RSA */
-
- int algoSz = 0;
- int tagSz = 2; /* tag null and terminator */
- word32 idSz, seqSz;
- const byte* algoName = 0;
- byte ID_Length[MAX_LENGTH_SZ];
- byte seqArray[MAX_SEQ_SZ + 1]; /* add object_id to end */
-
- if (type == keyType) { /* keyType */
- switch (algoOID) {
- #ifndef NO_RSA
- case RSAk:
- algoSz = sizeof(RSA_AlgoID);
- algoName = RSA_AlgoID;
- break;
- #endif /* NO_RSA */
- default:
- /* unknown key algo */
- return 0;
- }
- }
- else {
- /* unknown algo type */
- return 0;
- }
-
- idSz = SetLength(algoSz - tagSz, ID_Length); /* don't include tags */
- seqSz = SetSequence(idSz + algoSz + 1 + curveSz, seqArray);
- /* +1 for object id, curveID of curveSz follows for ecc */
- seqArray[seqSz++] = ASN_OBJECT_ID;
-
- XMEMCPY(output, seqArray, seqSz);
- XMEMCPY(output + seqSz, ID_Length, idSz);
- XMEMCPY(output + seqSz + idSz, algoName, algoSz);
-
- return seqSz + idSz + algoSz;
-
-}
-
-
-/* Write a public RSA key to output */
-static int SetRsaPublicKey(byte* output, RsaKey* key,
- int outLen, int with_header)
-{
-#ifdef WOLFSSL_SMALL_STACK
- byte* n = NULL;
- byte* e = NULL;
-#else
- byte n[MAX_RSA_INT_SZ];
- byte e[MAX_RSA_E_SZ];
-#endif
- byte seq[MAX_SEQ_SZ];
- byte len[MAX_LENGTH_SZ + 1]; /* trailing 0 */
- int nSz;
- int eSz;
- int seqSz;
- int lenSz;
- int idx;
- int rawLen;
- int leadingBit;
- int err;
-
- if (output == NULL || key == NULL || outLen < MAX_SEQ_SZ)
- return USER_CRYPTO_ERROR;
-
- /* n */
-#ifdef WOLFSSL_SMALL_STACK
- n = (byte*)XMALLOC(MAX_RSA_INT_SZ, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- if (n == NULL)
- return USER_CRYPTO_ERROR;
-#endif
-
- leadingBit = wc_Rsa_leading_bit(key->n);
- rawLen = wc_Rsa_unsigned_bin_size(key->n);
- if ((int)rawLen < 0) {
- return USER_CRYPTO_ERROR;
- }
-
- rawLen = rawLen + leadingBit;
- n[0] = ASN_INTEGER;
- nSz = SetLength(rawLen, n + 1) + 1; /* int tag */
-
- if ( (nSz + rawLen) < MAX_RSA_INT_SZ) {
- if (leadingBit)
- n[nSz] = 0;
- err = ippsGetOctString_BN((Ipp8u*)n + nSz, rawLen - leadingBit, key->n);
- if (err == ippStsNoErr)
- nSz += rawLen;
- else {
-#ifdef WOLFSSL_SMALL_STACK
- XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-#endif
- return USER_CRYPTO_ERROR;
- }
- }
- else {
-#ifdef WOLFSSL_SMALL_STACK
- XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-#endif
- return USER_CRYPTO_ERROR;
- }
-
- /* e */
-#ifdef WOLFSSL_SMALL_STACK
- e = (byte*)XMALLOC(MAX_RSA_E_SZ, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- if (e == NULL) {
-#ifdef WOLFSSL_SMALL_STACK
- XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-#endif
- return USER_CRYPTO_ERROR;
- }
-#endif
-
- leadingBit = wc_Rsa_leading_bit(key->e);
- rawLen = wc_Rsa_unsigned_bin_size(key->e);
- if ((int)rawLen < 0) {
- return USER_CRYPTO_ERROR;
- }
-
- rawLen = rawLen + leadingBit;
- e[0] = ASN_INTEGER;
- eSz = SetLength(rawLen, e + 1) + 1; /* int tag */
-
- if ( (eSz + rawLen) < MAX_RSA_E_SZ) {
- if (leadingBit)
- e[eSz] = 0;
- err = ippsGetOctString_BN((Ipp8u*)e + eSz, rawLen - leadingBit, key->e);
- if (err == ippStsNoErr)
- eSz += rawLen;
- else {
-#ifdef WOLFSSL_SMALL_STACK
- XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(e, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-#endif
- return USER_CRYPTO_ERROR;
- }
- }
- else {
-#ifdef WOLFSSL_SMALL_STACK
- XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(e, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-#endif
- return USER_CRYPTO_ERROR;
- }
-
- seqSz = SetSequence(nSz + eSz, seq);
-
- /* check output size */
- if ( (seqSz + nSz + eSz) > outLen) {
-#ifdef WOLFSSL_SMALL_STACK
- XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(e, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-#endif
- return USER_CRYPTO_ERROR;
- }
-
- /* headers */
- if (with_header) {
- int algoSz;
-#ifdef WOLFSSL_SMALL_STACK
- byte* algo;
-
- algo = (byte*)XMALLOC(MAX_ALGO_SZ, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- if (algo == NULL) {
- XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(e, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- return USER_CRYPTO_ERROR;
- }
-#else
- byte algo[MAX_ALGO_SZ];
-#endif
- algoSz = SetAlgoID(RSAk, algo, keyType, 0);
- lenSz = SetLength(seqSz + nSz + eSz + 1, len);
- len[lenSz++] = 0; /* trailing 0 */
-
- /* write, 1 is for ASN_BIT_STRING */
- idx = SetSequence(nSz + eSz + seqSz + lenSz + 1 + algoSz, output);
-
- /* check output size */
- if ( (idx + algoSz + 1 + lenSz + seqSz + nSz + eSz) > outLen) {
- #ifdef WOLFSSL_SMALL_STACK
- XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(e, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(algo, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- #endif
-
- return USER_CRYPTO_ERROR;
- }
-
- /* algo */
- XMEMCPY(output + idx, algo, algoSz);
- idx += algoSz;
- /* bit string */
- output[idx++] = ASN_BIT_STRING;
- /* length */
- XMEMCPY(output + idx, len, lenSz);
- idx += lenSz;
-#ifdef WOLFSSL_SMALL_STACK
- XFREE(algo, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-#endif
- }
- else
- idx = 0;
-
- /* seq */
- XMEMCPY(output + idx, seq, seqSz);
- idx += seqSz;
- /* n */
- XMEMCPY(output + idx, n, nSz);
- idx += nSz;
- /* e */
- XMEMCPY(output + idx, e, eSz);
- idx += eSz;
-
-#ifdef WOLFSSL_SMALL_STACK
- XFREE(n, NULL, DYNAMIC_TYPE_USER_CRYPTO);
- XFREE(e, NULL, DYNAMIC_TYPE_USER_CRYPTO);
-#endif
-
- return idx;
-}
-
-
-static IppsBigNumState* GetRsaInt(RsaKey* key, int idx)
-{
- if (idx == 0)
- return key->n;
- if (idx == 1)
- return key->e;
- if (idx == 2)
- return key->dipp;
- if (idx == 3)
- return key->pipp;
- if (idx == 4)
- return key->qipp;
- if (idx == 5)
- return key->dPipp;
- if (idx == 6)
- return key->dQipp;
- if (idx == 7)
- return key->uipp;
-
- return NULL;
-}
-
-
-/* Release Tmp RSA resources */
-static WC_INLINE void FreeTmpRsas(byte** tmps, void* heap)
-{
- int i;
-
- (void)heap;
-
- for (i = 0; i < RSA_INTS; i++)
- XFREE(tmps[i], heap, DYNAMIC_TYPE_USER_CRYPTO);
-}
-
-
-/* Convert RsaKey key to DER format, write to output (inLen), return bytes
- written */
-int wc_RsaKeyToDer(RsaKey* key, byte* output, word32 inLen)
-{
- word32 seqSz, verSz, rawLen, intTotalLen = 0;
- word32 sizes[RSA_INTS];
- int i, j, outLen, ret = 0, lbit;
-
- byte seq[MAX_SEQ_SZ];
- byte ver[MAX_VERSION_SZ];
- byte* tmps[RSA_INTS];
-
- USER_DEBUG(("Entering RsaKeyToDer\n"));
-
- if (!key)
- return USER_CRYPTO_ERROR;
-
- if (key->type != RSA_PRIVATE)
- return USER_CRYPTO_ERROR;
-
- for (i = 0; i < RSA_INTS; i++)
- tmps[i] = NULL;
-
- /* write all big ints from key to DER tmps */
- for (i = 0; i < RSA_INTS; i++) {
- Ipp32u isZero;
- IppsBigNumState* keyInt = GetRsaInt(key, i);
-
- ippsCmpZero_BN(keyInt, &isZero); /* makes isZero 0 if true */
- rawLen = wc_Rsa_unsigned_bin_size(keyInt);
- if ((int)rawLen < 0) {
- return USER_CRYPTO_ERROR;
- }
-
- /* leading zero */
- if (!isZero || wc_Rsa_leading_bit(keyInt))
- lbit = 1;
- else
- lbit = 0;
-
- rawLen += lbit;
-
- tmps[i] = (byte*)XMALLOC(rawLen + MAX_SEQ_SZ, key->heap,
- DYNAMIC_TYPE_USER_CRYPTO);
- if (tmps[i] == NULL) {
- ret = USER_CRYPTO_ERROR;
- break;
- }
-
- tmps[i][0] = ASN_INTEGER;
- sizes[i] = SetLength(rawLen, tmps[i] + 1) + 1 + lbit; /* tag & lbit */
-
- if (sizes[i] <= MAX_SEQ_SZ) {
- int err;
-
- /* leading zero */
- if (lbit)
- tmps[i][sizes[i]-1] = 0x00;
-
- /* extract data*/
- err = ippsGetOctString_BN((Ipp8u*)(tmps[i] + sizes[i]),
- rawLen - lbit, keyInt);
- if (err == ippStsOk) {
- sizes[i] += (rawLen-lbit); /* lbit included in rawLen */
- intTotalLen += sizes[i];
- ret = 0;
- }
- else {
- ret = USER_CRYPTO_ERROR;
- USER_DEBUG(("ippsGetOctString_BN error %s\n",
- ippGetStatusString(err)));
- break;
- }
- }
- else {
- ret = USER_CRYPTO_ERROR;
- break;
- }
- }
-
- if (ret != 0) {
- FreeTmpRsas(tmps, key->heap);
- return ret;
- }
-
- /* make headers */
- verSz = SetMyVersion(0, ver, FALSE);
- seqSz = SetSequence(verSz + intTotalLen, seq);
-
- outLen = seqSz + verSz + intTotalLen;
- if (output) {
- if (outLen > (int)inLen) {
- return USER_CRYPTO_ERROR;
- }
-
- /* write to output */
- XMEMCPY(output, seq, seqSz);
- j = seqSz;
- XMEMCPY(output + j, ver, verSz);
- j += verSz;
-
- for (i = 0; i < RSA_INTS; i++) {
- XMEMCPY(output + j, tmps[i], sizes[i]);
- j += sizes[i];
- }
- }
- FreeTmpRsas(tmps, key->heap);
-
- return outLen;
-}
-
-
-/* Convert Rsa Public key to DER format, write to output (inLen), return bytes
- written
-*/
-int wc_RsaKeyToPublicDer(RsaKey* key, byte* output, word32 inLen)
-{
- return SetRsaPublicKey(output, key, inLen, 1);
-}
-
-
-#endif /* WOLFSSL_KEY_GEN || OPENSSL_EXTRA */
-
-#ifdef WC_RSA_BLINDING
-
-int wc_RsaSetRNG(RsaKey* key, WC_RNG* rng)
-{
- if (key == NULL)
- return USER_CRYPTO_ERROR;
-
- (void)rng;
-
- return 0;
-}
-
-#endif /* WC_RSA_BLINDING */
-
-#endif /* NO_RSA */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl-ntru.sln b/FreeRTOS-Plus/Source/WolfSSL/wolfssl-ntru.sln
deleted file mode 100644
index c43e1cf19..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl-ntru.sln
+++ /dev/null
@@ -1,65 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual C++ Express 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wolfssl", "wolfssl-ntru.vcproj", "{73973223-5EE8-41CA-8E88-1D60E89A237B}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsuite", "testsuite\testsuite-ntru.vcproj", "{611E8971-46E0-4D0A-B5A1-632C3B00CB80}"
- ProjectSection(ProjectDependencies) = postProject
- {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoserver", "examples\echoserver\echoserver-ntru.vcproj", "{07D97C48-E08F-4E34-9F67-3064039FF2CB}"
- ProjectSection(ProjectDependencies) = postProject
- {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoclient", "examples\echoclient\echoclient-ntru.vcproj", "{8362A816-C5DC-4E22-B5C5-9E6806387073}"
- ProjectSection(ProjectDependencies) = postProject
- {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "examples\client\client-ntru.vcproj", "{3ADE9549-582D-4D8E-9826-B172197A7959}"
- ProjectSection(ProjectDependencies) = postProject
- {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "examples\server\server-ntru.vcproj", "{E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}"
- ProjectSection(ProjectDependencies) = postProject
- {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Debug|Win32.ActiveCfg = Debug|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Debug|Win32.Build.0 = Debug|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Release|Win32.ActiveCfg = Release|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Release|Win32.Build.0 = Release|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Debug|Win32.ActiveCfg = Debug|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Debug|Win32.Build.0 = Debug|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Release|Win32.ActiveCfg = Release|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Release|Win32.Build.0 = Release|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Debug|Win32.ActiveCfg = Debug|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Debug|Win32.Build.0 = Debug|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Release|Win32.ActiveCfg = Release|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Release|Win32.Build.0 = Release|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Debug|Win32.ActiveCfg = Debug|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Debug|Win32.Build.0 = Debug|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Release|Win32.ActiveCfg = Release|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Release|Win32.Build.0 = Release|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Debug|Win32.ActiveCfg = Debug|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Debug|Win32.Build.0 = Debug|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Release|Win32.ActiveCfg = Release|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Release|Win32.Build.0 = Release|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Debug|Win32.ActiveCfg = Debug|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Debug|Win32.Build.0 = Debug|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Release|Win32.ActiveCfg = Release|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl-ntru.vcproj b/FreeRTOS-Plus/Source/WolfSSL/wolfssl-ntru.vcproj
deleted file mode 100644
index 18964c739..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl-ntru.vcproj
+++ /dev/null
@@ -1,349 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="wolfssl"
- ProjectGUID="{73973223-5EE8-41CA-8E88-1D60E89A237B}"
- RootNamespace="wolfssl"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="./;NTRU/include"
- PreprocessorDefinitions="OPENSSL_EXTRA;WOLFSSL_RIPEMD;WOLFSSL_SHA512;HAVE_NTRU;NO_PSK;WIN32"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="./;NTRU/include"
- PreprocessorDefinitions="OPENSSL_EXTRA;WOLFSSL_RIPEMD;WOLFSSL_SHA512;HAVE_NTRU;NO_PSK;WIN32"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\wolfcrypt\src\aes.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\arc4.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\asm.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\asn.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\blake2b.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\camellia.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\coding.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\chacha.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\chacha20_poly1305.c"
- >
- </File>
- <File
- RelativePath=".\src\crl.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\des3.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\dh.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\dsa.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\ecc.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\error.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\hash.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\hc128.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\hmac.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\integer.c"
- >
- </File>
- <File
- RelativePath=".\src\internal.c"
- >
- </File>
- <File
- RelativePath=".\src\wolfio.c"
- >
- </File>
- <File
- RelativePath=".\src\keys.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\logging.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\md4.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\md5.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\memory.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\misc.c"
- >
- </File>
- <File
- RelativePath=".\src\ocsp.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\pkcs7.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\poly1305.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\wc_port.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\wolfmath.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\pwdbased.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\rabbit.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\random.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\ripemd.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\rsa.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\sha.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\sha256.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\sha512.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\signature.c"
- >
- </File>
- <File
- RelativePath=".\src\ssl.c"
- >
- </File>
- <File
- RelativePath=".\src\tls.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\wc_encrypt.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\wolfevent.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl.rc b/FreeRTOS-Plus/Source/WolfSSL/wolfssl.rc
deleted file mode 100644
index 1f5bcd15c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl.rc
+++ /dev/null
Binary files differ
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl.sln b/FreeRTOS-Plus/Source/WolfSSL/wolfssl.sln
deleted file mode 100644
index 15fa6f791..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl.sln
+++ /dev/null
@@ -1,74 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual C++ Express 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wolfssl", "wolfssl.vcproj", "{73973223-5EE8-41CA-8E88-1D60E89A237B}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsuite", "testsuite\testsuite.vcproj", "{611E8971-46E0-4D0A-B5A1-632C3B00CB80}"
- ProjectSection(ProjectDependencies) = postProject
- {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sslSniffer", "sslSniffer\sslSniffer.vcproj", "{34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}"
- ProjectSection(ProjectDependencies) = postProject
- {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoserver", "examples\echoserver\echoserver.vcproj", "{07D97C48-E08F-4E34-9F67-3064039FF2CB}"
- ProjectSection(ProjectDependencies) = postProject
- {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoclient", "examples\echoclient\echoclient.vcproj", "{8362A816-C5DC-4E22-B5C5-9E6806387073}"
- ProjectSection(ProjectDependencies) = postProject
- {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "examples\client\client.vcproj", "{3ADE9549-582D-4D8E-9826-B172197A7959}"
- ProjectSection(ProjectDependencies) = postProject
- {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "examples\server\server.vcproj", "{E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}"
- ProjectSection(ProjectDependencies) = postProject
- {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Debug|Win32.ActiveCfg = Debug|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Debug|Win32.Build.0 = Debug|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Release|Win32.ActiveCfg = Release|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Release|Win32.Build.0 = Release|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Debug|Win32.ActiveCfg = Debug|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Debug|Win32.Build.0 = Debug|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Release|Win32.ActiveCfg = Release|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Release|Win32.Build.0 = Release|Win32
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Debug|Win32.ActiveCfg = Debug|Win32
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Debug|Win32.Build.0 = Debug|Win32
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Release|Win32.ActiveCfg = Release|Win32
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Release|Win32.Build.0 = Release|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Debug|Win32.ActiveCfg = Debug|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Debug|Win32.Build.0 = Debug|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Release|Win32.ActiveCfg = Release|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Release|Win32.Build.0 = Release|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Debug|Win32.ActiveCfg = Debug|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Debug|Win32.Build.0 = Debug|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Release|Win32.ActiveCfg = Release|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Release|Win32.Build.0 = Release|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Debug|Win32.ActiveCfg = Debug|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Debug|Win32.Build.0 = Debug|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Release|Win32.ActiveCfg = Release|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Release|Win32.Build.0 = Release|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Debug|Win32.ActiveCfg = Debug|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Debug|Win32.Build.0 = Debug|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Release|Win32.ActiveCfg = Release|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl.vcproj b/FreeRTOS-Plus/Source/WolfSSL/wolfssl.vcproj
deleted file mode 100644
index 5505e4912..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl.vcproj
+++ /dev/null
@@ -1,406 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="wolfssl"
- ProjectGUID="{73973223-5EE8-41CA-8E88-1D60E89A237B}"
- RootNamespace="wolfssl"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="./;./IDE/WIN"
- PreprocessorDefinitions="WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="4"
- DebugInformationFormat="4"
- DisableSpecificWarnings="4206,4214,4706"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="./;./IDE/WIN"
- PreprocessorDefinitions="WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLibrarianTool"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\src\crl.c"
- >
- </File>
- <File
- RelativePath=".\src\internal.c"
- >
- </File>
- <File
- RelativePath=".\src\keys.c"
- >
- </File>
- <File
- RelativePath=".\src\ocsp.c"
- >
- </File>
- <File
- RelativePath=".\src\ssl.c"
- >
- </File>
- <File
- RelativePath=".\src\tls.c"
- >
- </File>
- <File
- RelativePath=".\src\tls13.c"
- >
- </File>
- <File
- RelativePath=".\src\wolfio.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\aes.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\aes_asm.asm"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\arc4.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\asn.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\blake2b.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\blake2s.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\camellia.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\coding.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\chacha.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\chacha20_poly1305.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\des3.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\dh.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\dsa.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\ecc.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\error.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\fe_low_mem.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\fe_operations.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\ge_low_mem.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\ge_operations.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\hash.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\hc128.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\hmac.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\integer.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\logging.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\md2.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\md4.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\md5.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\memory.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\pkcs7.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\pkcs12.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\poly1305.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\pwdbased.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\rabbit.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\random.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\ripemd.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\rsa.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\sha.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\sha256.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\sha512.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\sp_c32.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\sp_c64.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\sp_int.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\sp_x86_64.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\signature.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\tfm.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\wc_encrypt.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\wc_pkcs11.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\wc_port.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\wolfmath.c"
- >
- </File>
- <File
- RelativePath=".\wolfcrypt\src\wolfevent.c"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath="IDE\WIN\user_settings.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl.vcxproj b/FreeRTOS-Plus/Source/WolfSSL/wolfssl.vcxproj
deleted file mode 100644
index 834c307e0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl.vcxproj
+++ /dev/null
@@ -1,372 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Debug|Win32">
- <Configuration>DLL Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Debug|x64">
- <Configuration>DLL Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Release|Win32">
- <Configuration>DLL Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DLL Release|x64">
- <Configuration>DLL Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{73973223-5EE8-41CA-8E88-1D60E89A237B}</ProjectGuid>
- <RootNamespace>wolfssl</RootNamespace>
- <Keyword>Win32Proj</Keyword>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>StaticLibrary</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>StaticLibrary</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>StaticLibrary</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>StaticLibrary</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">
- <OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'">
- <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
- <IntDir>$(Configuration)\obj\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>./;./IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader />
- <WarningLevel>Level4</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- <DisableSpecificWarnings>4206;4214;4706;%(DisableSpecificWarnings)</DisableSpecificWarnings>
- </ClCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>./;./IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WOLFSSL_LIB;BUILDING_WOLFSSL;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level4</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- <DisableSpecificWarnings>4206;4214;4706;%(DisableSpecificWarnings)</DisableSpecificWarnings>
- </ClCompile>
- <Link>
- <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <OptimizeReferences>false</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>./;./IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level4</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- <DisableSpecificWarnings>4206;4214;4706;%(DisableSpecificWarnings)</DisableSpecificWarnings>
- </ClCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>./;./IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WOLFSSL_LIB;BUILDING_WOLFSSL;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level4</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- <DisableSpecificWarnings>4206;4214;4706;%(DisableSpecificWarnings)</DisableSpecificWarnings>
- </ClCompile>
- <Link>
- <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <OptimizeReferences>false</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>./;./IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader />
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>./;./IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WOLFSSL_LIB;BUILDING_WOLFSSL;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>./;./IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WOLFSSL_LIB;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>./;./IDE/WIN;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WOLFSSL_LIB;BUILDING_WOLFSSL;WOLFSSL_DLL;WOLFSSL_USER_SETTINGS;CYASSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="src\crl.c" />
- <ClCompile Include="src\internal.c" />
- <ClCompile Include="src\wolfio.c" />
- <ClCompile Include="src\keys.c" />
- <ClCompile Include="src\ocsp.c" />
- <ClCompile Include="src\ssl.c" />
- <ClCompile Include="src\tls.c" />
- <ClCompile Include="src\tls13.c" />
- <ClCompile Include="wolfcrypt\src\aes.c" />
- <ClCompile Include="wolfcrypt\src\arc4.c" />
- <ClCompile Include="wolfcrypt\src\asn.c" />
- <ClCompile Include="wolfcrypt\src\blake2b.c" />
- <ClCompile Include="wolfcrypt\src\blake2s.c" />
- <ClCompile Include="wolfcrypt\src\camellia.c" />
- <ClCompile Include="wolfcrypt\src\chacha.c" />
- <ClCompile Include="wolfcrypt\src\chacha20_poly1305.c" />
- <ClCompile Include="wolfcrypt\src\cmac.c" />
- <ClCompile Include="wolfcrypt\src\coding.c" />
- <ClCompile Include="wolfcrypt\src\curve25519.c" />
- <ClCompile Include="wolfcrypt\src\cpuid.c" />
- <ClCompile Include="wolfcrypt\src\des3.c" />
- <ClCompile Include="wolfcrypt\src\dh.c" />
- <ClCompile Include="wolfcrypt\src\dsa.c" />
- <ClCompile Include="wolfcrypt\src\ecc.c" />
- <ClCompile Include="wolfcrypt\src\ed25519.c" />
- <ClCompile Include="wolfcrypt\src\error.c" />
- <ClCompile Include="wolfcrypt\src\fe_operations.c" />
- <ClCompile Include="wolfcrypt\src\ge_low_mem.c" />
- <ClCompile Include="wolfcrypt\src\ge_operations.c" />
- <ClCompile Include="wolfcrypt\src\hash.c" />
- <ClCompile Include="wolfcrypt\src\hc128.c" />
- <ClCompile Include="wolfcrypt\src\hmac.c" />
- <ClCompile Include="wolfcrypt\src\idea.c" />
- <ClCompile Include="wolfcrypt\src\integer.c" />
- <ClCompile Include="wolfcrypt\src\logging.c" />
- <ClCompile Include="wolfcrypt\src\md2.c" />
- <ClCompile Include="wolfcrypt\src\md4.c" />
- <ClCompile Include="wolfcrypt\src\md5.c" />
- <ClCompile Include="wolfcrypt\src\memory.c" />
- <ClCompile Include="wolfcrypt\src\pkcs7.c" />
- <ClCompile Include="wolfcrypt\src\pkcs12.c" />
- <ClCompile Include="wolfcrypt\src\poly1305.c" />
- <ClCompile Include="wolfcrypt\src\pwdbased.c" />
- <ClCompile Include="wolfcrypt\src\rabbit.c" />
- <ClCompile Include="wolfcrypt\src\random.c" />
- <ClCompile Include="wolfcrypt\src\ripemd.c" />
- <ClCompile Include="wolfcrypt\src\rsa.c" />
- <ClCompile Include="wolfcrypt\src\sha.c" />
- <ClCompile Include="wolfcrypt\src\sha256.c" />
- <ClCompile Include="wolfcrypt\src\sha3.c" />
- <ClCompile Include="wolfcrypt\src\sha512.c" />
- <ClCompile Include="wolfcrypt\src\signature.c" />
- <ClCompile Include="wolfcrypt\src\sp_c32.c" />
- <ClCompile Include="wolfcrypt\src\sp_c64.c" />
- <ClCompile Include="wolfcrypt\src\sp_int.c" />
- <ClCompile Include="wolfcrypt\src\sp_x86_64.c" />
- <ClCompile Include="wolfcrypt\src\srp.c" />
- <ClCompile Include="wolfcrypt\src\tfm.c" />
- <ClCompile Include="wolfcrypt\src\wc_encrypt.c" />
- <ClCompile Include="wolfcrypt\src\wc_pkcs11.c" />
- <ClCompile Include="wolfcrypt\src\wc_port.c" />
- <ClCompile Include="wolfcrypt\src\wolfmath.c" />
- <ClCompile Include="wolfcrypt\src\wolfevent.c" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="resource.h" />
- <CustomBuild Include="wolfcrypt\src\aes_asm.asm">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">false</ExcludedFromBuild>
- <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ml64.exe /c /Zi /Fo"$(OutDir)%(Filename).obj" %(Identity)</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">ml64.exe /c /Zi /Fo"$(IntDir)%(Filename).obj" %(Identity)</Command>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(OutDir)%(Filename).obj</Outputs>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">$(IntDir)%(Filename).obj</Outputs>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">false</ExcludedFromBuild>
- <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ml64.exe /c /Zi /Fo"$(OutDir)%(Filename).obj" %(Identity)</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">ml64.exe /c /Zi /Fo"$(IntDir)%(Filename).obj" %(Identity)</Command>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(OutDir)%(Filename).obj</Outputs>
- <Outputs Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">$(IntDir)%(Filename).obj</Outputs>
- </CustomBuild>
- <ClInclude Include="IDE\WIN\user_settings.h" />
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="wolfssl.rc">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- </ResourceCompile>
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h
deleted file mode 100644
index 0e342db3a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/* esp32-crypt.h
- *
- * Copyright (C) 2006-2020 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 __ESP32_CRYPT_H__
-
-#define __ESP32_CRYPT_H__
-
-#include "esp_idf_version.h"
-#include "esp_types.h"
-#include "esp_log.h"
-
-#ifdef WOLFSSL_ESP32WROOM32_CRYPT_DEBUG
-#undef LOG_LOCAL_LEVEL
-#define LOG_LOCAL_LEVEL ESP_LOG_DEBUG
-#else
-#undef LOG_LOCAL_LEVEL
-#define LOG_LOCAL_LEVEL ESP_LOG_ERROR
-#endif
-
-#include <freertos/FreeRTOS.h>
-#include "soc/dport_reg.h"
-#include "soc/hwcrypto_reg.h"
-#include "soc/cpu.h"
-#include "driver/periph_ctrl.h"
-#if ESP_IDF_VERSION_MAJOR >= 4 && ESP_IDF_VERSION_MINOR >= 1
-#include <esp32/rom/ets_sys.h>
-#else
-#include <rom/ets_sys.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int esp_CryptHwMutexInit(wolfSSL_Mutex* mutex);
-int esp_CryptHwMutexLock(wolfSSL_Mutex* mutex, TickType_t xBloxkTime);
-int esp_CryptHwMutexUnLock(wolfSSL_Mutex* mutex);
-
-#ifndef NO_AES
-
-#if ESP_IDF_VERSION_MAJOR >= 4 && ESP_IDF_VERSION_MINOR >= 1
-#include "esp32/rom/aes.h"
-#else
-#include "rom/aes.h"
-#endif
-
-typedef enum tagES32_AES_PROCESS {
- ESP32_AES_LOCKHW = 1,
- ESP32_AES_UPDATEKEY_ENCRYPT = 2,
- ESP32_AES_UPDATEKEY_DECRYPT = 3,
- ESP32_AES_UNLOCKHW = 4
-} ESP32_AESPROCESS;
-
-struct Aes;
-int wc_esp32AesCbcEncrypt(struct Aes* aes, byte* out, const byte* in, word32 sz);
-int wc_esp32AesCbcDecrypt(struct Aes* aes, byte* out, const byte* in, word32 sz);
-int wc_esp32AesEncrypt(struct Aes *aes, const byte* in, byte* out);
-int wc_esp32AesDecrypt(struct Aes *aes, const byte* in, byte* out);
-
-#endif
-
-#ifdef WOLFSSL_ESP32WROOM32_CRYPT_DEBUG
-
-void wc_esp32TimerStart();
-uint64_t wc_esp32elapsedTime();
-
-#endif /* WOLFSSL_ESP32WROOM32_CRYPT_DEBUG */
-
-#if (!defined(NO_SHA) || !defined(NO_SHA256) || defined(WOLFSSL_SHA384) || \
- defined(WOLFSSL_SHA512)) && \
- !defined(NO_WOLFSSL_ESP32WROOM32_CRYPT_HASH)
-
-/* RAW hash function APIs are not implemented with esp32 hardware acceleration*/
-#define WOLFSSL_NO_HASH_RAW
-#if ESP_IDF_VERSION_MAJOR >= 4 && ESP_IDF_VERSION_MINOR >= 1
-#include "esp32/rom/sha.h"
-#else
-#include "rom/sha.h"
-#endif
-
-typedef enum {
- ESP32_SHA_INIT = 0,
- ESP32_SHA_HW = 1,
- ESP32_SHA_SW = 2,
-} ESP32_DOSHA;
-
-typedef struct {
- byte isfirstblock;
- /* 0 , 1 hard, 2 soft */
- byte mode;
- /* sha_type */
- enum SHA_TYPE sha_type;
-} WC_ESP32SHA;
-
-int esp_sha_try_hw_lock(WC_ESP32SHA* ctx);
-void esp_sha_hw_unlock( void );
-
-struct wc_Sha;
-int esp_sha_digest_process(struct wc_Sha* sha, byte bockprocess);
-int esp_sha_process(struct wc_Sha* sha, const byte* data);
-
-#ifndef NO_SHA256
- struct wc_Sha256;
- int esp_sha256_digest_process(struct wc_Sha256* sha, byte bockprocess);
- int esp_sha256_process(struct wc_Sha256* sha, const byte* data);
-#endif
-
-#if defined(WOLFSSL_SHA512) || defined(WOLFSSL_SHA384)
- struct wc_Sha512;
- int esp_sha512_process(struct wc_Sha512* sha);
- int esp_sha512_digest_process(struct wc_Sha512* sha, byte blockproc);
-#endif
-
-#endif /* NO_SHA && */
-
-#if !defined(NO_RSA) || defined(HAVE_ECC)
-
-#ifndef ESP_RSA_TIMEOUT
- #define ESP_RSA_TIMEOUT 0xFFFFF
-#endif
-
-struct fp_int;
-int esp_mp_mul(struct fp_int* X, struct fp_int* Y, struct fp_int* Z);
-int esp_mp_exptmod(struct fp_int* G, struct fp_int* X, word32 Xbits, struct fp_int* P,
- struct fp_int* Y);
-int esp_mp_mulmod(struct fp_int* X, struct fp_int* Y, struct fp_int* M,
- struct fp_int* Z);
-
-#endif /* NO_RSA || HAVE_ECC*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __ESP32_CRYPT_H__ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/Renesas/renesas-tsip-crypt.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/Renesas/renesas-tsip-crypt.h
deleted file mode 100644
index 2055ee024..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/Renesas/renesas-tsip-crypt.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* renesas-tsip-crypt.h
- *
- * Copyright (C) 2006-2020 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 __RENESAS_TSIP_CRYPT_H__
-#define __RENESAS_TSIP_CRYPT_H__
-
-#if defined(WOLFSSL_RENESAS_TSIP_IAREWRX)
- #include "r_bsp/mcu/all/r_rx_compiler.h"
- #include "r_bsp/platform.h"
-#else
- #include "platform.h"
-#endif
-
-#include "r_tsip_rx_if.h"
-#include <wolfssl/wolfcrypt/logging.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
- tsip_Key_SESSION = 1,
- tsip_Key_AES128 = 2,
- tsip_Key_AES256 = 3,
- tsip_Key_RSA1024 = 4,
- tsip_Key_RSA2048 = 5,
- tsip_Key_tls_Rsa2048 = 6,
- tsip_Key_unknown = -1,
-} wolfssl_TSIP_KEY_IV;
-
-enum {
- l_TLS_RSA_WITH_AES_128_CBC_SHA = 0x2F,
- l_TLS_RSA_WITH_AES_128_CBC_SHA256 = 0x3c,
- l_TLS_RSA_WITH_AES_256_CBC_SHA = 0x35,
- l_TLS_RSA_WITH_AES_256_CBC_SHA256 = 0x3d,
-};
-
-typedef struct
-{
- uint8_t *encrypted_session_key;
- uint8_t *iv;
- uint8_t *encrypted_user_tls_key;
- tsip_tls_ca_certification_public_key_index_t user_rsa2048_tls_pubindex;
-} tsip_key_data;
-
-struct WOLFSSL;
-
-int tsip_Open( );
-void tsip_Close( );
-int tsip_hw_lock();
-void tsip_hw_unlock( void );
-int tsip_usable(const struct WOLFSSL *ssl);
-void tsip_inform_sflash_signedcacert(const byte *ps_flash,
- const byte *psigned_ca_cert, word32 len);
-void tsip_inform_cert_sign(const byte *sign);
-/* set / get key */
-void tsip_inform_user_keys(byte *encrypted_session_key, byte *iv,
- byte *encrypted_user_tls_key);
-
-byte tsip_rootCAverified( );
-byte tsip_checkCA(word32 cmIdx);
-int tsip_tls_RootCertVerify(const byte *cert , word32 cert_len,
- word32 key_n_start, word32 key_n_len,
- word32 key_e_start, word32 key_e_len,
- word32 cm_row);
-int tsip_tls_CertVerify(const byte *cert, word32 certSz,
- const byte *signature, word32 sigSz,
- word32 key_n_start, word32 key_n_len,
- word32 key_e_start, word32 key_e_len,
- byte *tsip_encRsaKeyIdx);
-void tsip_inform_key_position(const word32 key_n_start, const word32 key_n_len,
- const word32 key_e_start, const word32 key_e_len);
-int tsip_generatePremasterSecret(byte *premaster, word32 preSz);
-int tsip_generateEncryptPreMasterSecret(struct WOLFSSL *ssl, byte *out,
- word32 *outSz);
-int tsip_generateMasterSecret(const byte *pre, const byte *cr,const byte *sr,
- byte *ms);
-int tsip_generateSeesionKey(struct WOLFSSL *ssl);
-int tsip_Sha256Hmac(const struct WOLFSSL *ssl, const byte *myInner,
- word32 innerSz, const byte *in, word32 sz, byte *digest,
- word32 verify);
-int tsip_Sha1Hmac(const struct WOLFSSL *ssl, const byte *myInner,
- word32 innerSz, const byte *in, word32 sz, byte *digest,
- word32 verify);
-
-#if (!defined(NO_SHA) || !defined(NO_SHA256)) && \
- !defined(NO_WOLFSSL_RENESAS_TSIP_CRYPT_HASH)
-
-typedef enum {
- TSIP_SHA1 = 0,
- TSIP_SHA256 = 1,
-} TSIP_SHA_TYPE;
-
-typedef struct {
- byte* msg;
- void* heap;
- word32 used;
- word32 len;
- word32 sha_type;
-} wolfssl_TSIP_Hash;
-
-/* RAW hash function APIs are not implemented with TSIP */
-#define WOLFSSL_NO_HASH_RAW
-
-typedef wolfssl_TSIP_Hash wc_Sha;
-
-#if !defined(NO_SHA256)
- typedef wolfssl_TSIP_Hash wc_Sha256;
-#endif
-
-#endif /* NO_SHA */
-
-#if defined(WOLFSSL_RENESAS_TSIP_TLS_AES_CRYPT)
-typedef struct {
- tsip_aes_key_index_t tsip_keyIdx;
- word32 keySize;
-} TSIP_AES_CTX;
-
- struct Aes;
- int wc_tsip_AesCbcEncrypt(struct Aes* aes, byte* out, const byte* in,
- word32 sz);
- int wc_tsip_AesCbcDecrypt(struct Aes* aes, byte* out, const byte* in,
- word32 sz);
-
-#endif /* WOLFSSL_RENESAS_TSIP_TLS_AES */
-
-#if defined(WOLFSSL_RENESAS_TSIP_CRYPT_DEBUG)
-byte *ret2err(word32 ret);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __RENESAS_TSIP_CRYPT_H__ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/af_alg/afalg_hash.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/af_alg/afalg_hash.h
deleted file mode 100644
index bd02913e2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/af_alg/afalg_hash.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* afalg_hash.h
- *
- * Copyright (C) 2006-2020 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 WOLF_CRYPT_AFALG_HASH_H
-#define WOLF_CRYPT_AFALG_HASH_H
-
-#include <wolfssl/wolfcrypt/types.h>
-
-#undef WOLFSSL_NO_HASH_RAW
-#define WOLFSSL_NO_HASH_RAW
-
-typedef struct {
- byte* msg;
- void* heap;
- word32 used;
- word32 len;
- int alFd;
- int rdFd;
-} wolfssl_AFALG_Hash;
-
-
-
-#if !defined(NO_SHA256) && defined(WOLFSSL_AFALG_HASH)
- typedef wolfssl_AFALG_Hash wc_Sha256;
-#endif
-#if defined(WOLFSSL_SHA3) && defined(WOLFSSL_AFALG_XILINX_SHA3)
- typedef wolfssl_AFALG_Hash wc_Sha3;
-#endif
-
-#endif /* WOLF_CRYPT_AFALG_HASH_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/af_alg/wc_afalg.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/af_alg/wc_afalg.h
deleted file mode 100644
index d9f5b7155..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/af_alg/wc_afalg.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* wc_afalg.h
- *
- * Copyright (C) 2006-2020 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_AFALG_H
-#define WOLFSSL_AFALG_H
-
-#include <wolfssl/wolfcrypt/types.h>
-
-#include <sys/socket.h>
-#include <linux/if_alg.h>
-#include <linux/socket.h>
-
-#define WC_SOCK_NOTSET -1
-
-/* In some cases these flags are not set in AF_ALG header files.
- * Documentation provided at kernel.org/doc/html/v4.16/crypto/userspace-if.html
- * suggests using these values if not set */
-#ifndef AF_ALG
- #define AF_ALG 38
-#endif
-#ifndef SOL_ALG
- #define SOL_ALG 279
-#endif
-
-WOLFSSL_LOCAL void wc_Afalg_SockAddr(struct sockaddr_alg* in, const char* type, const char* name);
-WOLFSSL_LOCAL int wc_Afalg_Accept(struct sockaddr_alg* in, int inSz, int sock);
-WOLFSSL_LOCAL int wc_Afalg_Socket(void);
-WOLFSSL_LOCAL int wc_Afalg_CreateRead(int sock, const char* type, const char* name);
-WOLFSSL_LOCAL int wc_Afalg_SetIv(struct cmsghdr* cmsg, byte* iv, word32 ivSz);
-WOLFSSL_LOCAL int wc_Afalg_SetOp(struct cmsghdr* cmsg, int dir);
-WOLFSSL_LOCAL int wc_Afalg_SetAad(struct cmsghdr* cmsg, word32 sz);
-
-#endif /* WOLFSSL_AFALG_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/arm/cryptoCell.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/arm/cryptoCell.h
deleted file mode 100644
index 5ca2d8c19..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/arm/cryptoCell.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/* cryptoCell.h
- *
- * Copyright (C) 2020 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_CRYPTOCELL_H
-#define WOLFSSL_CRYPTOCELL_H
-
-#if defined(WOLFSSL_CRYPTOCELL)
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <wolfssl/wolfcrypt/types.h>
-
-#include "sns_silib.h"
-
-#ifndef NO_SHA256
- #include "crys_hash.h"
- #include "crys_hash_error.h"
- /* largest possible input data on CC310 DMA. */
- #define CC310_MAX_LENGTH_DMA (0xFFFF)
-#endif
-
-#ifndef NO_AES
- #include "ssi_aes.h"
-
- typedef struct aes_context_t {
- SaSiAesUserContext_t user_ctx; /* CC310 AES User context */
- SaSiAesUserKeyData_t key; /* CC310 AES key structure */
- SaSiAesEncryptMode_t mode; /* encrypt or decrypt */
- } aes_context_t;
- #define CC310_MAX_LENGTH_DMA_AES (0xFFF0)
-#endif /* NO_AES */
-
-#if !defined(WC_NO_RNG)
- #if defined(WOLFSSL_nRF5x_SDK_15_2)
-
-/* To fix warning. MIN/MAX are defined in tfm.h and Nordic (re)defines them */
- #undef MIN
- #undef MAX
-/* includes to use RNG on the nRF52 */
- #include "nrf_drv_rng.h"
- #include "nrf_assert.h"
- #endif
-
- /*RNG Global variables*/
- extern CRYS_RND_State_t wc_rndState;
- extern CRYS_RND_WorkBuff_t wc_rndWorkBuff;
- extern SaSiRndGenerateVectWorkFunc_t wc_rndGenVectFunc;
- int cc310_random_generate(byte* output, word32 size);
-#endif
-
-#ifndef NO_RSA
- #include "crys_rsa_types.h"
- #include "crys_rnd.h"
- #include "crys_rsa_schemes.h"
- #include "crys_rsa_kg.h"
- #include "crys_rsa_build.h"
-
- typedef struct rsa_context_t {
- CRYS_RSAUserPrivKey_t privKey;
- CRYS_RSAUserPubKey_t pubKey;
- } rsa_context_t;
-CRYS_RSA_HASH_OpMode_t cc310_hashModeRSA(enum wc_HashType hash_type, int isHashed);
-#endif
-
-#ifdef HAVE_ECC
- #include "crys_ecpki_kg.h"
- #include "crys_ecpki_dh.h"
- #include "crys_ecpki_build.h"
- #include "crys_ecpki_domain.h"
- #include "crys_ecpki_ecdsa.h"
-
- typedef struct ecc_context_t {
- CRYS_ECPKI_UserPrivKey_t privKey;
- CRYS_ECPKI_UserPublKey_t pubKey;
- } ecc_context_t;
-
-CRYS_ECPKI_DomainID_t cc310_mapCurve(int curve_id);
-CRYS_ECPKI_HASH_OpMode_t cc310_hashModeECC(int hash_size);
-#endif /* HAVE_ECC */
-
-#if !defined(NO_CRYPT_BENCHMARK) && defined(WOLFSSL_nRF5x_SDK_15_2)
- /* includes to use Real-time counter (RTC) on nRF52840 */
- #include "nrf_gpio.h"
- #include "nrf_drv_rtc.h"
- #include "nrf_drv_clock.h"
- #include "boards.h"
- #include <stdint.h>
- #include <stdbool.h>
-#endif /* NO_CRYPT_BENCHMARK && WOLFSSL_nRF5x_SDK_15_2*/
-
-int cc310_Init(void);
-void cc310_Free(void);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* WOLFSSL_CRYPTOCELL */
-#endif /* WOLFSSL_CRYPTOCELL_H */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/atmel/atmel.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/atmel/atmel.h
deleted file mode 100644
index 70035130c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/atmel/atmel.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* atmel.h
- *
- * Copyright (C) 2006-2020 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 _ATECC508_H_
-#define _ATECC508_H_
-
-#include <stdint.h>
-
-#include <wolfssl/wolfcrypt/settings.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-
-#if defined(WOLFSSL_ATECC508A) || defined(WOLFSSL_ATECC_PKCB)
- #undef SHA_BLOCK_SIZE
- #define SHA_BLOCK_SIZE SHA_BLOCK_SIZE_REMAP
- #include <cryptoauthlib.h>
- #undef SHA_BLOCK_SIZE
-#endif
-
-/* ATECC508A only supports ECC P-256 */
-#define ATECC_KEY_SIZE (32)
-#define ATECC_PUBKEY_SIZE (ATECC_KEY_SIZE*2) /* X and Y */
-#define ATECC_SIG_SIZE (ATECC_KEY_SIZE*2) /* R and S */
-#ifndef ATECC_MAX_SLOT
-#define ATECC_MAX_SLOT (0x8) /* Only use 0-7 */
-#endif
-#define ATECC_INVALID_SLOT (0xFF)
-
-/* Device Key for signing */
-#ifndef ATECC_SLOT_AUTH_PRIV
-#define ATECC_SLOT_AUTH_PRIV (0x0)
-#endif
-/* Ephemeral key */
-#ifndef ATECC_SLOT_ECDHE_PRIV
-#define ATECC_SLOT_ECDHE_PRIV (0x2)
-#endif
-/* Symmetric encryption key */
-#ifndef ATECC_SLOT_I2C_ENC
-#define ATECC_SLOT_I2C_ENC (0x04)
-#endif
-/* Parent encryption key */
-#ifndef ATECC_SLOT_ENC_PARENT
-#define ATECC_SLOT_ENC_PARENT (0x7)
-#endif
-
-/* ATECC_KEY_SIZE required for ecc.h */
-#include <wolfssl/wolfcrypt/ecc.h>
-
-struct WOLFSSL;
-struct WOLFSSL_CTX;
-struct WOLFSSL_X509_STORE_CTX;
-struct ecc_key;
-
-/* Atmel port functions */
-int atmel_init(void);
-void atmel_finish(void);
-int atmel_get_random_number(uint32_t count, uint8_t* rand_out);
-#ifndef ATMEL_GET_RANDOM_BLOCK_DEFINED
- int atmel_get_random_block(unsigned char* output, unsigned int sz);
- #define ATMEL_GET_RANDOM_BLOCK_DEFINED
-#endif
-long atmel_get_curr_time_and_date(long* tm);
-
-#ifdef WOLFSSL_ATECC508A
-
-enum atmelSlotType {
- ATMEL_SLOT_ANY,
- ATMEL_SLOT_ENCKEY,
- ATMEL_SLOT_DEVICE,
- ATMEL_SLOT_ECDHE,
- ATMEL_SLOT_ECDHE_ENC,
-};
-
-int atmel_ecc_alloc(int slotType);
-void atmel_ecc_free(int slotId);
-
-typedef int (*atmel_slot_alloc_cb)(int);
-typedef void (*atmel_slot_dealloc_cb)(int);
-int atmel_set_slot_allocator(atmel_slot_alloc_cb alloc,
- atmel_slot_dealloc_cb dealloc);
-
-int atmel_ecc_translate_err(int status);
-int atmel_get_rev_info(word32* revision);
-void atmel_show_rev_info(void);
-
-/* The macro ATECC_GET_ENC_KEY can be set to override the default
- encryption key with your own at build-time */
-#ifndef ATECC_GET_ENC_KEY
- #define ATECC_GET_ENC_KEY(enckey, keysize) atmel_get_enc_key_default((enckey), (keysize))
-#endif
-int atmel_get_enc_key_default(byte* enckey, word16 keysize);
-int atmel_ecc_create_pms(int slotId, const uint8_t* peerKey, uint8_t* pms);
-int atmel_ecc_create_key(int slotId, byte* peerKey);
-int atmel_ecc_sign(int slotId, const byte* message, byte* signature);
-int atmel_ecc_verify(const byte* message, const byte* signature,
- const byte* pubkey, int* verified);
-
-#endif /* WOLFSSL_ATECC508A */
-
-#ifdef HAVE_PK_CALLBACKS
- int atcatls_create_key_cb(struct WOLFSSL* ssl, struct ecc_key* key, unsigned int keySz,
- int ecc_curve, void* ctx);
- int atcatls_create_pms_cb(struct WOLFSSL* ssl, struct ecc_key* otherKey,
- unsigned char* pubKeyDer, word32* pubKeySz,
- unsigned char* out, word32* outlen,
- int side, void* ctx);
- int atcatls_sign_certificate_cb(struct WOLFSSL* ssl, const byte* in, unsigned int inSz,
- byte* out, word32* outSz, const byte* key, unsigned int keySz, void* ctx);
- int atcatls_verify_signature_cb(struct WOLFSSL* ssl, const byte* sig, unsigned int sigSz,
- const byte* hash, unsigned int hashSz, const byte* key, unsigned int keySz,
- int* result, void* ctx);
-
- int atcatls_set_callbacks(struct WOLFSSL_CTX* ctx);
- int atcatls_set_callback_ctx(struct WOLFSSL* ssl, void* user_ctx);
-#endif
-
-#endif /* _ATECC508_H_ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/caam/caam_driver.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/caam/caam_driver.h
deleted file mode 100644
index cac1742c0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/caam/caam_driver.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/* caam_driver.h
- *
- * Copyright (C) 2006-2020 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 CAAM_DRIVER_H
-#define CAAM_DRIVER_H
-
-#define CAAM_BASE 0xf2100000
-
-#define CAAM_PAGE 0xf0100000
-#define CAAM_PAGE_MAX 6
-
-/******************************************************************************
- Basic Descriptors
- ****************************************************************************/
-
-/* descriptor commands */
-#define CAAM_KEY 0x00000000
-#define CAAM_LOAD 0x10000000
-#define CAAM_LOAD_CTX 0x10200000
-#define CAAM_IMM 0x00800000
-#define CAAM_FIFO_L 0x20000000
-#define CAAM_FIFO_S 0x60000000
-#define CAAM_FIFO_S_SKEY 0x60260000
-#define CAAM_STORE 0x50000000
-#define CAAM_STORE_CTX 0x50200000
-#define CAAM_MOVE 0x78000000
-#define CAAM_OP 0x80000000
-#define CAAM_SIG 0x90000000
-#define CAAM_JUMP 0xA0000000
-#define CAAM_SEQI 0xF0000000/* SEQ in */
-#define CAAM_SEQO 0xF8000000/* SEQ out */
-#define CAAM_HEAD 0xB0800000
-#define CAAM_NWB 0x00200000
-
-#define CAAM_BLOB_ENCAP 0x07000000
-#define CAAM_BLOB_DECAP 0x06000000
-#define CAAM_OPID_BLOB 0x000D0000
-
-/* algorithms modes and types */
-#define CAAM_CLASS1 0x02000000/* i.e. AES */
-#define CAAM_CLASS2 0x04000000/* i.e. hash algos */
-
-#define CAAM_ENC 0x00000001
-#define CAAM_DEC 0x00000000
-#define CAAM_ALG_INIT 0x00000004
-#define CAAM_ALG_INITF 0x0000000C
-#define CAAM_ALG_UPDATE 0x00000000
-#define CAAM_ALG_FINAL 0x00000008
-
- /* AES 10h */
-#define CAAM_AESCTR 0x00100000
-#define CAAM_AESCBC 0x00100100
-#define CAAM_AESECB 0x00100200
-#define CAAM_AESCFB 0x00100300
-#define CAAM_AESOFB 0x00100400
-#define CAAM_CMAC 0x00100600
-#define CAAM_AESCCM 0x00100800
-
- /* HASH 40h */
-#define CAAM_MD5 0x00400000
-#define CAAM_SHA 0x00410000
-#define CAAM_SHA224 0x00420000
-#define CAAM_SHA256 0x00430000
-#define CAAM_SHA384 0x00440000
-#define CAAM_SHA512 0x00450000
-
- /* HMAC 40h + 10 AAI */
-#define CAAM_HMAC_MD5 0x00400010
-#define CAAM_HMAC_SHA 0x00410010
-#define CAAM_HMAC_SHA224 0x00420010
-#define CAAM_HMAC_SHA256 0x00430010
-#define CAAM_HMAC_SHA384 0x00440010
-#define CAAM_HMAC_SHA512 0x00450010
-
-#define CAAM_MD5_CTXSZ (16 + 8)
-#define CAAM_SHA_CTXSZ (20 + 8)
-#define CAAM_SHA224_CTXSZ (32 + 8)
-#define CAAM_SHA256_CTXSZ (32 + 8)
-#define CAAM_SHA384_CTXSZ (64 + 8)
-#define CAAM_SHA512_CTXSZ (64 + 8)
-
- /* RNG 50h */
-#define CAAM_RNG 0x00500000
-
- /* Used to get raw entropy from TRNG */
-#define CAAM_ENTROPY 0x00500001
-
-#define FIFOL_TYPE_MSG 0x00100000
-#define FIFOL_TYPE_AAD 0x00300000
-#define FIFOL_TYPE_FC1 0x00010000
-#define FIFOL_TYPE_LC1 0x00020000
-#define FIFOL_TYPE_LC2 0x00040000
-
-#define FIFOS_TYPE_MSG 0x00300000
-
-/* continue bit set if more output is expected */
-#define CAAM_FIFOS_CONT 0x00800000
-
-#define CAAM_PAGE_SZ 4096
-
-/* RNG Registers */
-#define CAAM_RTMCTL CAAM_BASE + 0X0600
-#define CAAM_RTSDCTL CAAM_BASE + 0X0610
-#define CAAM_RTFRQMIN CAAM_BASE + 0X0618
-#define CAAM_RTFRQMAX CAAM_BASE + 0X061C
-#define CAAM_RDSTA CAAM_BASE + 0X06C0
-#define CAAM_RTSTATUS CAAM_BASE + 0x063C
-
-/* each of the following 11 RTENT registers are an offset of 4 from RTENT0 */
-#define CAAM_RTENT0 CAAM_BASE + 0x0640
-#define CAAM_RTENT11 CAAM_BASE + 0x066C /* Max RTENT register */
-
-/* RNG Masks/Values */
-#ifndef CAAM_ENT_DLY
- #define CAAM_ENT_DLY 1200 /* @TODO lower value may gain performance */
-#endif
-#define CAAM_PRGM 0x00010000 /* Set RTMCTL to program state */
-#define CAAM_TRNG 0x00000020 /* Set TRNG access */
-#define CAAM_CTLERR 0x00001000
-#define CAAM_ENTVAL 0x00000400 /* checking RTMCTL for entropy ready */
-
-/* Input Job Ring Registers */
-#define CAAM_IRBAR0 CAAM_BASE + 0x1004
-#define CAAM_IRSR0 CAAM_BASE + 0x100C
-#define CAAM_IRJAR0 CAAM_BASE + 0x101C
-
-/* Output Job Ring Registers */
-#define CAAM_ORBAR0 CAAM_BASE + 0x1024
-#define CAAM_ORSR0 CAAM_BASE + 0x102C
-#define CAAM_ORJAR0 CAAM_BASE + 0x103C
-
-
-/* Status Registers */
-#define CAAM_STATUS CAAM_BASE + 0x0FD4
-#define CAAM_VERSION_MS CAAM_BASE + 0x0FE8
-#define CAAM_VERSION_LS CAAM_BASE + 0x0FEC
-#define CAMM_SUPPORT_MS CAAM_BASE + 0x0FF0
-#define CAMM_SUPPORT_LS CAAM_BASE + 0x0FF4
-
-
-#define CAAM_C1DSR_LS CAAM_BASE + 0x8014
-#define CAAM_C1MR CAAM_BASE + 0x8004
-
-
-/* output FIFO is 16 entries deep and each entry has a two 4 byte registers */
-#define CAAM_FIFOO_MS CAAM_BASE + 0x87F0
-#define CAAM_FIFOO_LS CAAM_BASE + 0x87F4
-
-/* input FIFO is 16 entries deep with each entry having two 4 byte registers
- All data written to it from IP bus should be in big endian format */
-#define CAAM_FIFOI_LS CAAM_BASE + 0x87E0
-
-/* offset of 4 with range 0 .. 13 */
-#define CAAM_CTX1 CAAM_BASE + 0x8100
-#define CAAM_CTRIV CAAM_CTX1 + 8 /* AES-CTR iv is in 2 and 3 */
-#define CAAM_CBCIV CAAM_CTX1 /* AES-CBC iv is in 1 and 2 */
-
-
-/* instantiate RNG and create JDKEK, TDKEK, and TDSK key */
-static unsigned int wc_rng_start[] = {
- CAAM_HEAD | 0x00000006,
- CAAM_OP | CAAM_CLASS1 | CAAM_RNG | 0x00000004, /* Instantiate RNG handle 0 with TRNG */
- CAAM_JUMP | 0x02000001, /* wait for Class1 RNG and jump to next cmd */
- CAAM_LOAD | 0x00880004, /* Load to clear written register */
- 0x00000001, /* reset done interrupt */
- CAAM_OP | CAAM_CLASS1 | CAAM_RNG | 0x00001000 /* Generate secure keys */
-};
-
-#endif /* CAAM_DRIVER_H */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/caam/wolfcaam.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/caam/wolfcaam.h
deleted file mode 100644
index 8c39605d7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/caam/wolfcaam.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* wolfcaam.h
- *
- * Copyright (C) 2006-2020 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 WOLF_CRYPT_CAAM_INIT_H
-#define WOLF_CRYPT_CAAM_INIT_H
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#if defined(WOLFSSL_IMX6_CAAM) || defined(WOLFSSL_IMX6_CAAM_RNG)
-
-#include <wolfssl/wolfcrypt/types.h>
-
-#if defined(__INTEGRITY) || defined(INTEGRITY)
- #include <INTEGRITY.h>
-#endif
-
-WOLFSSL_LOCAL int wc_caamInit(void);
-WOLFSSL_LOCAL int wc_caamFree(void);
-WOLFSSL_LOCAL int wc_caamInitRng(void);
-WOLFSSL_LOCAL int wc_caamFreeRng(void);
-
-WOLFSSL_LOCAL word32 wc_caamReadRegister(word32 reg);
-WOLFSSL_LOCAL void wc_caamWriteRegister(word32 reg, word32 value);
-WOLFSSL_LOCAL int wc_caamAddAndWait(Buffer* buf, word32 arg[4], word32 type);
-
-WOLFSSL_API int wc_caamSetResource(IODevice ioDev);
-
-WOLFSSL_API int wc_caamOpenBlob(byte* data, word32 dataSz, byte* out,
- word32* outSz);
-WOLFSSL_API int wc_caamCreateBlob(byte* data, word32 dataSz, byte* out,
- word32* outSz);
-
-/* additional size that is added by CAAM when creating a blob */
-#define WC_CAAM_BLOB_SZ 48
-
-#ifndef WC_CAAM_READ
- #define WC_CAAM_READ(reg) wc_caamReadRegister((reg))
-#endif
-#ifndef WC_CAAM_WRITE
- #define WC_CAAM_WRITE(reg, x) wc_caamWriteRegister((reg), (x))
-#endif
-
-#endif /* WOLFSSL_IMX6_CAAM */
-
-#endif /* WOLF_CRYPT_CAAM_INIT_H */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/caam/wolfcaam_sha.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/caam/wolfcaam_sha.h
deleted file mode 100644
index 9f5eaf8b5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/caam/wolfcaam_sha.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* wolfcaam_sha.h
- *
- * Copyright (C) 2006-2020 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 WOLF_CRYPT_CAAM_SHA_H
-#define WOLF_CRYPT_CAAM_SHA_H
-
-#include <wolfssl/wolfcrypt/settings.h>
-
-#ifdef WOLFSSL_IMX6_CAAM
-
-#include <wolfssl/wolfcrypt/types.h>
-
-#define WOLFSSL_NO_HASH_RAW
-
-#ifndef WC_CAAM_CTXLEN
-/* last 8 bytes of context is for length */
-#define WC_CAAM_CTXLEN 8
-#endif
-
-#ifndef WC_CAAM_HASH_BLOCK
-/* define sha structures and also get the max possible digest. Start with SHA
- digest size */
-#define WC_CAAM_HASH_BLOCK 64
-#endif
-
-#ifndef WC_CAAM_MAX_DIGEST
-#define WC_CAAM_MAX_DIGEST 20
-#ifdef WOLFSSL_SHA224
- #undef WC_CAAM_MAX_DIGEST
- #define WC_CAAM_MAX_DIGEST 32
-#endif
-
-#ifndef NO_SHA256
- #undef WC_CAAM_MAX_DIGEST
- #define WC_CAAM_MAX_DIGEST 32
-#endif
-
-#ifdef WOLFSSL_SHA384
- #undef WC_CAAM_MAX_DIGEST
- #define WC_CAAM_MAX_DIGEST 64
-#endif
-
-#ifdef WOLFSSL_SHA512
- #undef WC_CAAM_MAX_DIGEST
- #define WC_CAAM_MAX_DIGEST 64
-#endif
-#endif /* WC_CAAM_MAX_DIGEST */
-
-
-typedef struct wc_Sha {
- word32 ctx[(WC_CAAM_MAX_DIGEST + WC_CAAM_CTXLEN) / sizeof(word32)];
- word32 buffLen; /* in bytes */
- word32 buffer[WC_CAAM_HASH_BLOCK / sizeof(word32)];
-} wc_Sha;
-
-#ifndef NO_MD5
- typedef struct wc_Sha wc_Md5;
-#endif
-
-#ifndef NO_SHA256
- typedef struct wc_Sha wc_Sha256;
-#endif
-
-#ifdef WOLFSSL_SHA512
- typedef struct wc_Sha wc_Sha512;
-#endif
-
-#endif /* WOLFSSL_IMX6_CAAM */
-
-#endif /* WOLF_CRYPT_CAAM_SHA_H */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/cavium/cavium_nitrox.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/cavium/cavium_nitrox.h
deleted file mode 100644
index e69de29bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/cavium/cavium_nitrox.h
+++ /dev/null
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/cavium/cavium_octeon_sync.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/cavium/cavium_octeon_sync.h
deleted file mode 100644
index f7914b8e7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/cavium/cavium_octeon_sync.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* cavium_octeon_sync.h
- *
- * Copyright (C) 2006-2020 wolfSSL Inc.
- *
- * This file is part of wolfSSL. (formerly known as CyaSSL)
- *
- * 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-1301, USA
- */
-
-#ifndef _CAVIUM_OCTEON_SYNC_H_
-#define _CAVIUM_OCTEON_SYNC_H_
-
-#ifdef HAVE_CAVIUM_OCTEON_SYNC
-
-WOLFSSL_API int wc_CryptoCb_InitOcteon(void);
-WOLFSSL_API void wc_CryptoCb_CleanupOcteon(int* id);
-
-#endif /* HAVE_CAVIUM_OCTEON_SYNC */
-#endif /* _CAVIUM_OCTEON_SYNC_H_ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/devcrypto/wc_devcrypto.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/devcrypto/wc_devcrypto.h
deleted file mode 100644
index c8ddbe7b9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/devcrypto/wc_devcrypto.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* wc_devcrypto.h
- *
- * Copyright (C) 2006-2020 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_DEVCRYPTO_H
-#define WOLFSSL_DEVCRYPTO_H
-
-#include <wolfssl/wolfcrypt/types.h>
-
-#ifdef WOLFSSL_DEVCRYPTO
-
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <crypto/cryptodev.h>
-
-typedef struct WC_CRYPTODEV {
- int cfd;
- struct session_op sess;
-} WC_CRYPTODEV;
-
-WOLFSSL_LOCAL int wc_DevCryptoCreate(WC_CRYPTODEV* ctx, int type, byte* key, word32 keySz);
-WOLFSSL_LOCAL void wc_DevCryptoFree(WC_CRYPTODEV* ctx);
-WOLFSSL_LOCAL void wc_SetupCrypt(struct crypt_op* crt, WC_CRYPTODEV* dev,
- byte* src, int srcSz, byte* dst, byte* dig, int flag);
-WOLFSSL_LOCAL void wc_SetupCryptSym(struct crypt_op* crt, WC_CRYPTODEV* dev,
- byte* src, word32 srcSz, byte* dst, byte* iv, int flag);
-WOLFSSL_LOCAL void wc_SetupCryptAead(struct crypt_auth_op* crt, WC_CRYPTODEV* dev,
- byte* src, word32 srcSz, byte* dst, byte* iv, word32 ivSz, int flag,
- byte* authIn, word32 authInSz, byte* authTag, word32 authTagSz);
-
-#endif /* WOLFSSL_DEVCRYPTO */
-#endif /* WOLFSSL_DEVCRYPTO_H */
-
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/intel/quickassist.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/intel/quickassist.h
deleted file mode 100644
index e69de29bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/intel/quickassist.h
+++ /dev/null
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/intel/quickassist_mem.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/intel/quickassist_mem.h
deleted file mode 100644
index e69de29bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/intel/quickassist_mem.h
+++ /dev/null
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/intel/quickassist_sync.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/intel/quickassist_sync.h
deleted file mode 100644
index 8eb9421f9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/intel/quickassist_sync.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* quickassist_sync.h
- *
- * Copyright (C) 2006-2020 wolfSSL Inc.
- *
- * This file is part of wolfSSL. (formerly known as CyaSSL)
- *
- * 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-1301, USA
- */
-
-#ifndef _INTEL_QUICKASSIST_SYNC_H_
-#define _INTEL_QUICKASSIST_SYNC_H_
-
-#ifdef HAVE_INTEL_QA_SYNC
-
-WOLFSSL_API int wc_CryptoCb_InitIntelQa(void);
-WOLFSSL_API void wc_CryptoCb_CleanupIntelQa(int* id);
-
-WOLFSSL_API void* wc_CryptoCb_IntelQaMalloc(size_t size,
- void* heap, int type
-#ifdef WOLFSSL_DEBUG_MEMORY
- , const char* func, unsigned int line
-#endif
-);
-
-WOLFSSL_API void wc_CryptoCb_IntelQaFree(void *ptr,
- void* heap, int type
-#ifdef WOLFSSL_DEBUG_MEMORY
- , const char* func, unsigned int line
-#endif
-);
-
-WOLFSSL_API void* wc_CryptoCb_IntelQaRealloc(void *ptr,
- size_t size, void* heap, int type
-#ifdef WOLFSSL_DEBUG_MEMORY
- , const char* func, unsigned int line
-#endif
-);
-
-#endif /* HAVE_INTEL_QA_SYNC */
-
-#endif /* _INTEL_QUICKASSIST_SYNC_H_ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/nrf51.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/nrf51.h
deleted file mode 100644
index b18b0400a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/nrf51.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* nrf51.h
- *
- * Copyright (C) 2006-2020 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_NRF51_PORT_H
-#define WOLFSSL_NRF51_PORT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <wolfssl/wolfcrypt/types.h>
-
-/* Public Functions */
-int nrf51_random_generate(byte* output, word32 sz);
-
-int nrf51_aes_set_key(const byte* key);
-int nrf51_aes_encrypt(const byte* in, const byte* key, word32 rounds, byte* out);
-
-double current_time(int reset);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* WOLFSSL_NRF51_PORT_H */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/nxp/ksdk_port.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/nxp/ksdk_port.h
deleted file mode 100644
index 749a3eeb5..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/nxp/ksdk_port.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* ksdk_port.h
- *
- * Copyright (C) 2006-2020 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 _KSDK_PORT_H_
-#define _KSDK_PORT_H_
-
-#include <wolfssl/wolfcrypt/settings.h>
-#ifdef USE_FAST_MATH
- #include <wolfssl/wolfcrypt/tfm.h>
-#elif defined WOLFSSL_SP_MATH
- #include <wolfssl/wolfcrypt/sp_int.h>
-#else
- #include <wolfssl/wolfcrypt/integer.h>
-#endif
-#include <wolfssl/wolfcrypt/ecc.h>
-#include <wolfssl/wolfcrypt/curve25519.h>
-#include <wolfssl/wolfcrypt/ed25519.h>
-
-
-/* API to init required hardware */
-int ksdk_port_init(void);
-
-/* software algorithm, by wolfcrypt */
-#if defined(FREESCALE_LTC_TFM)
- int wolfcrypt_mp_mul(mp_int *A, mp_int *B, mp_int *C);
- int wolfcrypt_mp_mod(mp_int *a, mp_int *b, mp_int *c);
- int wolfcrypt_mp_mulmod(mp_int *a, mp_int *b, mp_int *c, mp_int *d);
- int wolfcrypt_mp_mod(mp_int *a, mp_int *b, mp_int *c);
- int wolfcrypt_mp_invmod(mp_int *a, mp_int *b, mp_int *c);
- int wolfcrypt_mp_exptmod(mp_int *G, mp_int *X, mp_int *P, mp_int *Y);
-
- /* Exported mp_mulmod function */
- int mp_mulmod(mp_int *a, mp_int *b, mp_int *c, mp_int *d);
-
-#endif /* FREESCALE_LTC_TFM */
-
-#if defined(FREESCALE_LTC_ECC)
- #include "fsl_ltc.h"
-
- typedef enum _fsl_ltc_ecc_coordinate_system
- {
- kLTC_Weierstrass = 0U, /*< Point coordinates on an elliptic curve in Weierstrass form */
- kLTC_Curve25519 = 1U, /*< Point coordinates on an Curve25519 elliptic curve in Montgomery form */
- kLTC_Ed25519 = 2U, /*< Point coordinates on an Ed25519 elliptic curve in twisted Edwards form */
- } fsl_ltc_ecc_coordinate_system_t;
-
- int wc_ecc_point_add(ecc_point *mG, ecc_point *mQ, ecc_point *mR, mp_int *m);
-
- #ifdef HAVE_CURVE25519
- int wc_curve25519(ECPoint *q, byte *n, const ECPoint *p, fsl_ltc_ecc_coordinate_system_t type);
- const ECPoint *wc_curve25519_GetBasePoint(void);
- status_t LTC_PKHA_Curve25519ToWeierstrass(const ltc_pkha_ecc_point_t *ltcPointIn, ltc_pkha_ecc_point_t *ltcPointOut);
- status_t LTC_PKHA_WeierstrassToCurve25519(const ltc_pkha_ecc_point_t *ltcPointIn, ltc_pkha_ecc_point_t *ltcPointOut);
- status_t LTC_PKHA_Curve25519ComputeY(ltc_pkha_ecc_point_t *ltcPoint);
- #endif
-
- #ifdef HAVE_ED25519
- status_t LTC_PKHA_Ed25519ToWeierstrass(const ltc_pkha_ecc_point_t *ltcPointIn, ltc_pkha_ecc_point_t *ltcPointOut);
- status_t LTC_PKHA_WeierstrassToEd25519(const ltc_pkha_ecc_point_t *ltcPointIn, ltc_pkha_ecc_point_t *ltcPointOut);
- status_t LTC_PKHA_Ed25519_PointMul(const ltc_pkha_ecc_point_t *ltcPointIn,
- const uint8_t *N,
- size_t sizeN,
- ltc_pkha_ecc_point_t *ltcPointOut,
- fsl_ltc_ecc_coordinate_system_t typeOut);
- const ltc_pkha_ecc_point_t *LTC_PKHA_Ed25519_BasePoint(void);
- status_t LTC_PKHA_Ed25519_PointDecompress(const uint8_t *pubkey, size_t pubKeySize, ltc_pkha_ecc_point_t *ltcPointOut);
- status_t LTC_PKHA_sc_reduce(uint8_t *a);
- status_t LTC_PKHA_sc_muladd(uint8_t *s, const uint8_t *a, const uint8_t *b, const uint8_t *c);
- status_t LTC_PKHA_SignatureForVerify(uint8_t *rcheck, const unsigned char *a, const unsigned char *b, ed25519_key *key);
- status_t LTC_PKHA_Ed25519_Compress(const ltc_pkha_ecc_point_t *ltcPointIn, uint8_t *p);
- #endif
-
-#endif /* FREESCALE_LTC_ECC */
-
-#endif /* _KSDK_PORT_H_ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/st/stm32.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/st/stm32.h
deleted file mode 100644
index 4b461a113..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/st/stm32.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* stm32.h
- *
- * Copyright (C) 2006-2020 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 _WOLFPORT_STM32_H_
-#define _WOLFPORT_STM32_H_
-
-/* Generic STM32 Hashing and Crypto Functions */
-/* Supports CubeMX HAL or Standard Peripheral Library */
-
-#include <wolfssl/wolfcrypt/settings.h>
-#include <wolfssl/wolfcrypt/types.h>
-
-#if defined(WOLFSSL_STM32_PKA) && defined(HAVE_ECC)
- #include <wolfssl/wolfcrypt/integer.h>
- #include <wolfssl/wolfcrypt/ecc.h>
-#endif
-
-#ifdef STM32_HASH
-
-#define WOLFSSL_NO_HASH_RAW
-
-#ifdef HASH_DIGEST
- /* The HASH_DIGEST register indicates SHA224/SHA256 support */
- #define STM32_HASH_SHA2
- #define HASH_CR_SIZE 54
- #define HASH_MAX_DIGEST 32
-#else
- #define HASH_CR_SIZE 50
- #define HASH_MAX_DIGEST 20
-#endif
-
-/* Handle hash differences between CubeMX and StdPeriLib */
-#if !defined(HASH_ALGOMODE_HASH) && defined(HASH_AlgoMode_HASH)
- #define HASH_ALGOMODE_HASH HASH_AlgoMode_HASH
-#endif
-#if !defined(HASH_DATATYPE_8B) && defined(HASH_DataType_8b)
- #define HASH_DATATYPE_8B HASH_DataType_8b
-#endif
-
-#ifndef STM32_HASH_TIMEOUT
- #define STM32_HASH_TIMEOUT 0xFFFF
-#endif
-
-
-/* STM32 register size in bytes */
-#define STM32_HASH_REG_SIZE 4
-
-/* STM32 Hash Context */
-typedef struct {
- /* Context switching registers */
- uint32_t HASH_IMR;
- uint32_t HASH_STR;
- uint32_t HASH_CR;
- uint32_t HASH_CSR[HASH_CR_SIZE];
-
- /* Hash state / buffers */
- word32 buffer[STM32_HASH_REG_SIZE / sizeof(word32)]; /* partial word buffer */
- word32 buffLen; /* partial word remain */
- word32 loLen; /* total update bytes
- (only lsb 6-bits is used for nbr valid bytes in last word) */
-} STM32_HASH_Context;
-
-
-/* API's */
-void wc_Stm32_Hash_Init(STM32_HASH_Context* stmCtx);
-int wc_Stm32_Hash_Update(STM32_HASH_Context* stmCtx, word32 algo,
- const byte* data, int len);
-int wc_Stm32_Hash_Final(STM32_HASH_Context* stmCtx, word32 algo,
- byte* hash, int digestSize);
-
-#endif /* STM32_HASH */
-
-
-#ifdef STM32_CRYPTO
-
-#ifndef NO_AES
- #if !defined(STM32_CRYPTO_AES_GCM) && (defined(WOLFSSL_STM32F4) || \
- defined(WOLFSSL_STM32F7) || defined(WOLFSSL_STM32L4))
- /* Hardware supports AES GCM acceleration */
- #define STM32_CRYPTO_AES_GCM
- #endif
-
- #ifdef WOLFSSL_STM32L4
- #define STM32_CRYPTO_AES_ONLY /* crypto engine only supports AES */
- #define CRYP AES
- #endif
-
- /* Detect newer CubeMX crypto HAL (HAL_CRYP_Encrypt / HAL_CRYP_Decrypt) */
- #if !defined(STM32_HAL_V2) && \
- defined(WOLFSSL_STM32F7) && defined(CRYP_AES_GCM)
- #define STM32_HAL_V2
- #endif
-
- /* The datatype for STM32 CubeMX HAL Crypt calls */
- #ifdef STM32_HAL_V2
- #define STM_CRYPT_TYPE uint32_t
- #else
- #define STM_CRYPT_TYPE uint8_t
- #endif
-
- /* CRYPT_AES_GCM starts the IV with 2 */
- #define STM32_GCM_IV_START 2
-
- struct Aes;
- #ifdef WOLFSSL_STM32_CUBEMX
- int wc_Stm32_Aes_Init(struct Aes* aes, CRYP_HandleTypeDef* hcryp);
- #else /* STD_PERI_LIB */
- int wc_Stm32_Aes_Init(struct Aes* aes, CRYP_InitTypeDef* cryptInit,
- CRYP_KeyInitTypeDef* keyInit);
- #endif /* WOLFSSL_STM32_CUBEMX */
-#endif /* !NO_AES */
-
-#endif /* STM32_CRYPTO */
-
-#if defined(WOLFSSL_STM32_PKA) && defined(HAVE_ECC)
-int stm32_ecc_verify_hash_ex(mp_int *r, mp_int *s, const byte* hash,
- word32 hashlen, int* res, ecc_key* key);
-
-int stm32_ecc_sign_hash_ex(const byte* hash, word32 hashlen, WC_RNG* rng,
- ecc_key* key, mp_int *r, mp_int *s);
-#endif
-
-
-#endif /* _WOLFPORT_STM32_H_ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/st/stsafe.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/st/stsafe.h
deleted file mode 100644
index 3cee4461d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/st/stsafe.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* stsafe.h
- *
- * Copyright (C) 2006-2020 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 _WOLFPORT_STSAFE_H_
-#define _WOLFPORT_STSAFE_H_
-
-#include <wolfssl/wolfcrypt/settings.h>
-#include <wolfssl/wolfcrypt/ecc.h>
-#include <wolfssl/wolfcrypt/error-crypt.h>
-
-#ifdef WOLF_CRYPTO_CB
-#include <wolfssl/wolfcrypt/cryptocb.h>
-#endif
-
-#if !defined(WOLFCRYPT_ONLY) && defined(HAVE_PK_CALLBACKS)
-#include <wolfssl/ssl.h>
-#endif
-
-#ifdef WOLFSSL_STSAFEA100
-
-/* The wolf STSAFE interface layer */
-/* Please contact wolfSSL for the STSAFE port files */
-#include "stsafe_interface.h"
-
-#ifndef STSAFE_MAX_KEY_LEN
- #define STSAFE_MAX_KEY_LEN ((uint32_t)48) /* for up to 384-bit keys */
-#endif
-#ifndef STSAFE_MAX_PUBKEY_RAW_LEN
- #define STSAFE_MAX_PUBKEY_RAW_LEN ((uint32_t)STSAFE_MAX_KEY_LEN * 2) /* x/y */
-#endif
-#ifndef STSAFE_MAX_SIG_LEN
- #define STSAFE_MAX_SIG_LEN ((uint32_t)STSAFE_MAX_KEY_LEN * 2) /* r/s */
-#endif
-
-WOLFSSL_API int SSL_STSAFE_LoadDeviceCertificate(byte** pRawCertificate,
- word32* pRawCertificateLen);
-
-#if !defined(WOLFCRYPT_ONLY) && defined(HAVE_PK_CALLBACKS)
-WOLFSSL_API int SSL_STSAFE_CreateKeyCb(WOLFSSL* ssl, ecc_key* key, word32 keySz,
- int ecc_curve, void* ctx);
-WOLFSSL_API int SSL_STSAFE_VerifyPeerCertCb(WOLFSSL* ssl,
- const unsigned char* sig, unsigned int sigSz,
- const unsigned char* hash, unsigned int hashSz,
- const unsigned char* keyDer, unsigned int keySz,
- int* result, void* ctx);
-WOLFSSL_API int SSL_STSAFE_SignCertificateCb(WOLFSSL* ssl,
- const byte* in, word32 inSz,
- byte* out, word32* outSz,
- const byte* key, word32 keySz, void* ctx);
-WOLFSSL_API int SSL_STSAFE_SharedSecretCb(WOLFSSL* ssl,
- ecc_key* otherKey,
- unsigned char* pubKeyDer, unsigned int* pubKeySz,
- unsigned char* out, unsigned int* outlen,
- int side, void* ctx);
-
-/* Helper API's for setting up callbacks */
-WOLFSSL_API int SSL_STSAFE_SetupPkCallbacks(WOLFSSL_CTX* ctx);
-WOLFSSL_API int SSL_STSAFE_SetupPkCallbackCtx(WOLFSSL* ssl, void* user_ctx);
-#endif /* HAVE_PK_CALLBACKS */
-
-
-#ifdef WOLF_CRYPTO_CB
-
-/* Device ID that's unique and valid (not INVALID_DEVID -2) */
-#define WOLF_STSAFE_DEVID 0x53545341; /* STSA */
-
-typedef struct wolfSTSAFE_CryptoCb_Ctx {
-#ifdef HAVE_ECC
- ecc_key wolfEccKey;
-#endif
- int devId;
-} wolfSTSAFE_CryptoCb_Ctx;
-
-WOLFSSL_API int wolfSSL_STSAFE_CryptoDevCb(int devId, wc_CryptoInfo* info,
- void* ctx);
-
-#endif /* WOLF_CRYPTO_CB */
-
-#endif /* WOLFSSL_STSAFEA100 */
-
-#endif /* _WOLFPORT_STSAFE_H_ */
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/xilinx/xil-sha3.h b/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/xilinx/xil-sha3.h
deleted file mode 100644
index 47b462424..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl/wolfcrypt/port/xilinx/xil-sha3.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* xil-sha3.h
- *
- * Copyright (C) 2006-2020 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 WOLF_XIL_CRYPT_SHA3_H
-#define WOLF_XIL_CRYPT_SHA3_H
-
-#ifdef WOLFSSL_SHA3
-#include "xsecure_sha.h"
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/* Sha3 digest */
-typedef struct Sha3 {
- XSecure_Sha3 hw;
- XCsuDma dma;
-} wc_Sha3;
-
-#ifdef __cplusplus
- } /* extern "C" */
-#endif
-
-#endif /* WOLFSSL_SHA3 */
-#endif /* WOLF_XIL_CRYPT_SHA3_H */
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wolfssl64.sln b/FreeRTOS-Plus/Source/WolfSSL/wolfssl64.sln
deleted file mode 100644
index 54f495c87..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wolfssl64.sln
+++ /dev/null
@@ -1,142 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wolfssl", "wolfssl.vcxproj", "{73973223-5EE8-41CA-8E88-1D60E89A237B}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsuite", "testsuite\testsuite.vcxproj", "{611E8971-46E0-4D0A-B5A1-632C3B00CB80}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sslSniffer", "sslSniffer\sslSniffer.vcxproj", "{34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoserver", "examples\echoserver\echoserver.vcxproj", "{07D97C48-E08F-4E34-9F67-3064039FF2CB}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "echoclient", "examples\echoclient\echoclient.vcxproj", "{8362A816-C5DC-4E22-B5C5-9E6806387073}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "examples\client\client.vcxproj", "{3ADE9549-582D-4D8E-9826-B172197A7959}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "examples\server\server.vcxproj", "{E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Debug|x64 = Debug|x64
- DLL Debug|Win32 = DLL Debug|Win32
- DLL Debug|x64 = DLL Debug|x64
- DLL Release|Win32 = DLL Release|Win32
- DLL Release|x64 = DLL Release|x64
- Release|Win32 = Release|Win32
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Debug|Win32.ActiveCfg = Debug|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Debug|Win32.Build.0 = Debug|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Debug|x64.ActiveCfg = Debug|x64
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Debug|x64.Build.0 = Debug|x64
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Debug|x64.Build.0 = DLL Debug|x64
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Release|Win32.Build.0 = DLL Release|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Release|x64.ActiveCfg = DLL Release|x64
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Release|x64.Build.0 = DLL Release|x64
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Release|Win32.ActiveCfg = Release|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Release|Win32.Build.0 = Release|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Release|x64.ActiveCfg = Release|x64
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.Release|x64.Build.0 = Release|x64
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Debug|Win32.ActiveCfg = Debug|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Debug|Win32.Build.0 = Debug|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Debug|x64.ActiveCfg = Debug|x64
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Debug|x64.Build.0 = Debug|x64
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Debug|x64.Build.0 = DLL Debug|x64
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Release|Win32.Build.0 = DLL Release|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Release|x64.ActiveCfg = DLL Release|x64
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Release|x64.Build.0 = DLL Release|x64
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Release|Win32.ActiveCfg = Release|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Release|Win32.Build.0 = Release|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Release|x64.ActiveCfg = Release|x64
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.Release|x64.Build.0 = Release|x64
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Debug|Win32.ActiveCfg = Debug|Win32
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Debug|Win32.Build.0 = Debug|Win32
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Debug|x64.ActiveCfg = Debug|x64
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Debug|x64.Build.0 = Debug|x64
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.DLL Release|x64.ActiveCfg = DLL Release|x64
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Release|Win32.ActiveCfg = Release|Win32
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Release|Win32.Build.0 = Release|Win32
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Release|x64.ActiveCfg = Release|x64
- {34FAE5A6-2B0F-4B55-86FE-0C43E4810F4D}.Release|x64.Build.0 = Release|x64
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Debug|Win32.ActiveCfg = Debug|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Debug|Win32.Build.0 = Debug|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Debug|x64.ActiveCfg = Debug|x64
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Debug|x64.Build.0 = Debug|x64
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.DLL Debug|x64.Build.0 = DLL Debug|x64
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.DLL Release|Win32.Build.0 = DLL Release|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.DLL Release|x64.ActiveCfg = DLL Release|x64
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.DLL Release|x64.Build.0 = DLL Release|x64
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Release|Win32.ActiveCfg = Release|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Release|Win32.Build.0 = Release|Win32
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Release|x64.ActiveCfg = Release|x64
- {07D97C48-E08F-4E34-9F67-3064039FF2CB}.Release|x64.Build.0 = Release|x64
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Debug|Win32.ActiveCfg = Debug|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Debug|Win32.Build.0 = Debug|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Debug|x64.ActiveCfg = Debug|x64
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Debug|x64.Build.0 = Debug|x64
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.DLL Debug|x64.Build.0 = DLL Debug|x64
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.DLL Release|Win32.Build.0 = DLL Release|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.DLL Release|x64.ActiveCfg = DLL Release|x64
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.DLL Release|x64.Build.0 = DLL Release|x64
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Release|Win32.ActiveCfg = Release|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Release|Win32.Build.0 = Release|Win32
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Release|x64.ActiveCfg = Release|x64
- {8362A816-C5DC-4E22-B5C5-9E6806387073}.Release|x64.Build.0 = Release|x64
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Debug|Win32.ActiveCfg = Debug|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Debug|Win32.Build.0 = Debug|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Debug|x64.ActiveCfg = Debug|x64
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Debug|x64.Build.0 = Debug|x64
- {3ADE9549-582D-4D8E-9826-B172197A7959}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
- {3ADE9549-582D-4D8E-9826-B172197A7959}.DLL Debug|x64.Build.0 = DLL Debug|x64
- {3ADE9549-582D-4D8E-9826-B172197A7959}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.DLL Release|Win32.Build.0 = DLL Release|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.DLL Release|x64.ActiveCfg = DLL Release|x64
- {3ADE9549-582D-4D8E-9826-B172197A7959}.DLL Release|x64.Build.0 = DLL Release|x64
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Release|Win32.ActiveCfg = Release|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Release|Win32.Build.0 = Release|Win32
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Release|x64.ActiveCfg = Release|x64
- {3ADE9549-582D-4D8E-9826-B172197A7959}.Release|x64.Build.0 = Release|x64
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Debug|Win32.ActiveCfg = Debug|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Debug|Win32.Build.0 = Debug|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Debug|x64.ActiveCfg = Debug|x64
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Debug|x64.Build.0 = Debug|x64
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.DLL Debug|x64.Build.0 = DLL Debug|x64
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.DLL Release|Win32.Build.0 = DLL Release|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.DLL Release|x64.ActiveCfg = DLL Release|x64
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.DLL Release|x64.Build.0 = DLL Release|x64
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Release|Win32.ActiveCfg = Release|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Release|Win32.Build.0 = Release|Win32
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Release|x64.ActiveCfg = Release|x64
- {E9FB0BA5-BA46-4A59-A953-39C18CD1DCB1}.Release|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/include.am b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/include.am
deleted file mode 100644
index b0ec4f83d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/include.am
+++ /dev/null
@@ -1,41 +0,0 @@
-# wolfSSL CSharp wrapper files
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-DTLS-PSK-Server/App.config
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-DTLS-PSK-Server/Properties/AssemblyInfo.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-DTLS-PSK-Server/wolfSSL-DTLS-PSK-Server.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-DTLS-PSK-Server/wolfSSL-DTLS-PSK-Server.csproj
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-DTLS-Server/App.config
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-DTLS-Server/Properties/AssemblyInfo.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-DTLS-Server/wolfSSL-DTLS-Server.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-DTLS-Server/wolfSSL-DTLS-Server.csproj
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-PSK-Server/App.config
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-PSK-Server/Properties/AssemblyInfo.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-PSK-Server/wolfSSL-TLS-PSK-Server.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-PSK-Server/wolfSSL-TLS-PSK-Server.csproj
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-Server/App.config
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-Server/Properties/AssemblyInfo.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-Server/Properties/Settings.Designer.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-Server/Properties/Settings.settings
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.csproj
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-ServerThreaded/App.config
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/AssemblyInfo.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/Settings.Designer.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/Settings.settings
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-ServerThreaded/wolfSSL-TLS-ServerThreaded.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-ServerThreaded/wolfSSL-TLS-ServerThreaded.csproj
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-Example-IOCallbacks/App.config
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-Example-IOCallbacks/Properties/AssemblyInfo.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-Example-IOCallbacks/wolfSSL-Example-IOCallbacks.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-Example-IOCallbacks/wolfSSL-Example-IOCallbacks.csproj
-EXTRA_DIST+= wrapper/CSharp/wolfSSL_CSharp.sln
-EXTRA_DIST+= wrapper/CSharp/wolfSSL_CSharp/Properties/AssemblyInfo.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL_CSharp/Properties/Resources.Designer.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL_CSharp/Properties/Resources.resx
-EXTRA_DIST+= wrapper/CSharp/wolfSSL_CSharp/wolfSSL.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL_CSharp/wolfSSL_CSharp.csproj
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-Client/App.config
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-Client/Properties/AssemblyInfo.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-Client/Properties/Settings.Designer.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-Client/Properties/Settings.settings
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-Client/wolfSSL-TLS-Client.cs
-EXTRA_DIST+= wrapper/CSharp/wolfSSL-TLS-Client/wolfSSL-TLS-Client.csproj
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/App.config b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/App.config
deleted file mode 100644
index fad249e40..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
- </startup>
-</configuration> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/Properties/AssemblyInfo.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/Properties/AssemblyInfo.cs
deleted file mode 100644
index 2ee49afdb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("wolfSSL-DTLS-PSK-Server")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("wolfSSL")]
-[assembly: AssemblyProduct("wolfSSL-DTLS-PSK-Server")]
-[assembly: AssemblyCopyright("Copyright wolfSSL 2020")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("77149dab-52f6-4b83-a9bd-da5beb402621")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.1.0.0")]
-[assembly: AssemblyFileVersion("1.1.0.0")]
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/wolfSSL-DTLS-PSK-Server.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/wolfSSL-DTLS-PSK-Server.cs
deleted file mode 100644
index 269603045..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/wolfSSL-DTLS-PSK-Server.cs
+++ /dev/null
@@ -1,221 +0,0 @@
-/* wolfSSL-DTLS-PSK-Server.cs
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-using System;
-
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Threading;
-using System.IO;
-using System.Net;
-using System.Net.Sockets;
-using wolfSSL.CSharp;
-
-
-
-public class wolfSSL_DTLS_PSK_Server
-{
-
-
- /// <summary>
- /// Example of a PSK function call back
- /// </summary>
- /// <param name="ssl">pointer to ssl structure</param>
- /// <param name="identity">identity of client connecting</param>
- /// <param name="key">buffer to hold key</param>
- /// <param name="max_key">max key size</param>
- /// <returns>size of key set</returns>
- public static uint my_psk_server_cb(IntPtr ssl, string identity, IntPtr key, uint max_key)
- {
- /* perform a check on the identity sent across
- * log function must be set for print out of logging information
- */
- wolfssl.log(wolfssl.INFO_LOG, "PSK Client Identity = " + identity);
-
- /* Use desired key, note must be a key smaller than max key size parameter
- Replace this with desired key. Is trivial one for testing */
- if (max_key < 4)
- return 0;
- byte[] tmp = { 26, 43, 60, 77 };
- Marshal.Copy(tmp, 0, key, 4);
-
- return (uint)4;
- }
-
-
- private static void clean(IntPtr ssl, IntPtr ctx)
- {
- wolfssl.free(ssl);
- wolfssl.CTX_free(ctx);
- wolfssl.Cleanup();
- }
-
-
- public static void Main(string[] args)
- {
- IntPtr ctx;
- IntPtr ssl;
-
- /* These paths should be changed according to use */
- string fileCert = @"server-cert.pem";
- string fileKey = @"server-key.pem";
- StringBuilder dhparam = new StringBuilder("dh2048.pem");
-
- wolfssl.psk_delegate psk_cb = new wolfssl.psk_delegate(my_psk_server_cb);
-
- StringBuilder buff = new StringBuilder(1024);
- StringBuilder reply = new StringBuilder("Hello, this is the wolfSSL C# wrapper");
-
- wolfssl.Init();
-
- Console.WriteLine("Calling ctx Init from wolfSSL");
- ctx = wolfssl.CTX_dtls_new(wolfssl.useDTLSv1_2_server());
- if (ctx == IntPtr.Zero)
- {
- Console.WriteLine("Error creating ctx structure");
- return;
- }
-
- Console.WriteLine("Finished init of ctx .... now load in cert and key");
-
- if (!File.Exists(fileCert) || !File.Exists(fileKey))
- {
- Console.WriteLine("Could not find cert or key file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
-
- if (wolfssl.CTX_use_certificate_file(ctx, fileCert, wolfssl.SSL_FILETYPE_PEM) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error setting cert file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
-
- if (wolfssl.CTX_use_PrivateKey_file(ctx, fileKey, wolfssl.SSL_FILETYPE_PEM) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error setting key file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
-
- /* Test psk use with DHE */
- StringBuilder hint = new StringBuilder("cyassl server");
- if (wolfssl.CTX_use_psk_identity_hint(ctx, hint) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error setting hint");
- wolfssl.CTX_free(ctx);
- return;
- }
- wolfssl.CTX_set_psk_server_callback(ctx, psk_cb);
-
- short minDhKey = 128;
- wolfssl.CTX_SetMinDhKey_Sz(ctx, minDhKey);
- Console.Write("Setting cipher suite to ");
- StringBuilder set_cipher = new StringBuilder("DHE-PSK-AES128-CBC-SHA256");
- Console.WriteLine(set_cipher);
- if (wolfssl.CTX_set_cipher_list(ctx, set_cipher) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Failed to set cipher suite");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- IPAddress ip = IPAddress.Parse("0.0.0.0");
- UdpClient udp = new UdpClient(11111);
- IPEndPoint ep = new IPEndPoint(ip, 11111);
- Console.WriteLine("Started UDP and waiting for a connection");
-
- ssl = wolfssl.new_ssl(ctx);
- if (ssl == IntPtr.Zero)
- {
- Console.WriteLine("Error creating ssl object");
- udp.Close();
- wolfssl.CTX_free(ctx);
- return;
- }
-
- if (wolfssl.SetTmpDH_file(ssl, dhparam, wolfssl.SSL_FILETYPE_PEM) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error in setting dhparam");
- Console.WriteLine(wolfssl.get_error(ssl));
- udp.Close();
- clean(ssl, ctx);
- return;
- }
-
- if (wolfssl.set_dtls_fd(ssl, udp, ep) != wolfssl.SUCCESS)
- {
- Console.WriteLine(wolfssl.get_error(ssl));
- udp.Close();
- clean(ssl, ctx);
- return;
- }
-
- if (wolfssl.accept(ssl) != wolfssl.SUCCESS)
- {
- Console.WriteLine(wolfssl.get_error(ssl));
- udp.Close();
- clean(ssl, ctx);
- return;
- }
-
- /* print out results of TLS/SSL accept */
- Console.WriteLine("SSL version is " + wolfssl.get_version(ssl));
- Console.WriteLine("SSL cipher suite is " + wolfssl.get_current_cipher(ssl));
-
- /* get connection information and print ip - port */
- wolfssl.DTLS_con con = wolfssl.get_dtls_fd(ssl);
- Console.Write("Connected to ip ");
- Console.Write(con.ep.Address.ToString());
- Console.Write(" on port ");
- Console.WriteLine(con.ep.Port.ToString());
-
- /* read information sent and send a reply */
- if (wolfssl.read(ssl, buff, 1023) < 0)
- {
- Console.WriteLine("Error reading message");
- Console.WriteLine(wolfssl.get_error(ssl));
- udp.Close();
- clean(ssl, ctx);
- return;
- }
- Console.WriteLine(buff);
-
- if (wolfssl.write(ssl, reply, reply.Length) != reply.Length)
- {
- Console.WriteLine("Error writing message");
- Console.WriteLine(wolfssl.get_error(ssl));
- udp.Close();
- clean(ssl, ctx);
- return;
- }
-
- Console.WriteLine("At the end freeing stuff");
- wolfssl.shutdown(ssl);
- udp.Close();
- clean(ssl, ctx);
- }
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/wolfSSL-DTLS-PSK-Server.csproj b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/wolfSSL-DTLS-PSK-Server.csproj
deleted file mode 100644
index 50a590a1a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-PSK-Server/wolfSSL-DTLS-PSK-Server.csproj
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{77AEF1BE-4BE3-4837-8188-2A06E4D963F5}</ProjectGuid>
- <OutputType>Exe</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>wolfSSL_DTLS_PSK_Server</RootNamespace>
- <AssemblyName>wolfSSL-DTLS-PSK-Server</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
- <DebugSymbols>true</DebugSymbols>
- <OutputPath>..\x64\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <DebugType>full</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
- <OutputPath>..\x64\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <Optimize>true</Optimize>
- <DebugType>pdbonly</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="wolfSSL-DTLS-PSK-Server.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\wolfSSL_CSharp\wolfSSL_CSharp.csproj">
- <Project>{52609808-0418-46d3-8e17-141927a1a39a}</Project>
- <Name>wolfSSL_CSharp</Name>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <PropertyGroup>
- <PreBuildEvent>
- </PreBuildEvent>
- </PropertyGroup>
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/App.config b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/App.config
deleted file mode 100644
index fad249e40..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
- </startup>
-</configuration> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/Properties/AssemblyInfo.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/Properties/AssemblyInfo.cs
deleted file mode 100644
index 56a4dcf9e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("wolfSSL-DTLS-Server")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("wolfSSL")]
-[assembly: AssemblyProduct("wolfSSL-DTLS-Server")]
-[assembly: AssemblyCopyright("Copyright wolfSSL 2020")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("9da922fb-8459-479f-ab06-42b5c0378d2f")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.1.0.0")]
-[assembly: AssemblyFileVersion("1.1.0.0")]
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/wolfSSL-DTLS-Server.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/wolfSSL-DTLS-Server.cs
deleted file mode 100644
index c7cdd43a7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/wolfSSL-DTLS-Server.cs
+++ /dev/null
@@ -1,181 +0,0 @@
-/* wolfSSL-DTLS-Server.cs
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-using System;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Threading;
-using System.IO;
-using System.Net;
-using System.Net.Sockets;
-using wolfSSL.CSharp;
-
-public class wolfSSL_DTLS_Server
-{
- /// <summary>
- /// Example of a logging function
- /// </summary>
- /// <param name="lvl">level of log</param>
- /// <param name="msg">message to log</param>
- public static void standard_log(int lvl, StringBuilder msg)
- {
- Console.WriteLine(msg);
- }
-
-
- private static void clean(IntPtr ssl, IntPtr ctx)
- {
- wolfssl.free(ssl);
- wolfssl.CTX_free(ctx);
- wolfssl.Cleanup();
- }
-
-
- public static void Main(string[] args)
- {
- IntPtr ctx;
- IntPtr ssl;
-
- /* These paths should be changed for use */
- string fileCert = @"server-cert.pem";
- string fileKey = @"server-key.pem";
- StringBuilder dhparam = new StringBuilder("dh2048.pem");
-
- StringBuilder buff = new StringBuilder(1024);
- StringBuilder reply = new StringBuilder("Hello, this is the wolfSSL C# wrapper");
-
- //example of function used for setting logging
- wolfssl.SetLogging(standard_log);
-
- wolfssl.Init();
-
- Console.WriteLine("Calling ctx Init from wolfSSL");
- ctx = wolfssl.CTX_dtls_new(wolfssl.useDTLSv1_2_server());
- if (ctx == IntPtr.Zero)
- {
- Console.WriteLine("Error creating ctx structure");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- Console.WriteLine("Finished init of ctx .... now load in cert and key");
- if (!File.Exists(fileCert) || !File.Exists(fileKey))
- {
- Console.WriteLine("Could not find cert or key file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
-
- if (wolfssl.CTX_use_certificate_file(ctx, fileCert, wolfssl.SSL_FILETYPE_PEM) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error setting cert file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
-
- if (wolfssl.CTX_use_PrivateKey_file(ctx, fileKey, wolfssl.SSL_FILETYPE_PEM) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error setting key file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- short minDhKey = 128;
- wolfssl.CTX_SetMinDhKey_Sz(ctx, minDhKey);
-
- IPAddress ip = IPAddress.Parse("0.0.0.0");
- UdpClient udp = new UdpClient(11111);
- IPEndPoint ep = new IPEndPoint(ip, 11111);
- Console.WriteLine("Started UDP and waiting for a connection");
-
- ssl = wolfssl.new_ssl(ctx);
- if (ssl == IntPtr.Zero)
- {
- Console.WriteLine("Error creating ssl object");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- if (wolfssl.SetTmpDH_file(ssl, dhparam, wolfssl.SSL_FILETYPE_PEM) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error in setting dhparam");
- Console.WriteLine(wolfssl.get_error(ssl));
- udp.Close();
- clean(ssl, ctx);
- return;
- }
-
- if (wolfssl.set_dtls_fd(ssl, udp, ep) != wolfssl.SUCCESS)
- {
- Console.WriteLine(wolfssl.get_error(ssl));
- udp.Close();
- clean(ssl, ctx);
- return;
- }
-
- if (wolfssl.accept(ssl) != wolfssl.SUCCESS)
- {
- Console.WriteLine(wolfssl.get_error(ssl));
- udp.Close();
- clean(ssl, ctx);
- return;
- }
-
- /* print out results of TLS/SSL accept */
- Console.WriteLine("SSL version is " + wolfssl.get_version(ssl));
- Console.WriteLine("SSL cipher suite is " + wolfssl.get_current_cipher(ssl));
-
- /* get connection information and print ip - port */
- wolfssl.DTLS_con con = wolfssl.get_dtls_fd(ssl);
- Console.Write("Connected to ip ");
- Console.Write(con.ep.Address.ToString());
- Console.Write(" on port ");
- Console.WriteLine(con.ep.Port.ToString());
-
- /* read information sent and send a reply */
- if (wolfssl.read(ssl, buff, 1023) < 0)
- {
- Console.WriteLine("Error reading message");
- Console.WriteLine(wolfssl.get_error(ssl));
- udp.Close();
- clean(ssl, ctx);
- return;
- }
- Console.WriteLine(buff);
-
- if (wolfssl.write(ssl, reply, reply.Length) != reply.Length)
- {
- Console.WriteLine("Error writing message");
- Console.WriteLine(wolfssl.get_error(ssl));
- udp.Close();
- clean(ssl, ctx);
- return;
- }
-
- Console.WriteLine("At the end freeing stuff");
- wolfssl.shutdown(ssl);
- udp.Close();
- clean(ssl, ctx);
- }
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/wolfSSL-DTLS-Server.csproj b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/wolfSSL-DTLS-Server.csproj
deleted file mode 100644
index 915ed3201..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-DTLS-Server/wolfSSL-DTLS-Server.csproj
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{730F047E-37A6-498F-A543-B6C98AA7B338}</ProjectGuid>
- <OutputType>Exe</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>wolfSSL_DTLS_Server</RootNamespace>
- <AssemblyName>wolfSSL-DTLS-Server</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
- <DebugSymbols>true</DebugSymbols>
- <OutputPath>..\x64\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <DebugType>full</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- <WarningLevel>0</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
- <OutputPath>..\x64\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <Optimize>true</Optimize>
- <DebugType>pdbonly</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="wolfSSL-DTLS-Server.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\wolfSSL_CSharp\wolfSSL_CSharp.csproj">
- <Project>{52609808-0418-46d3-8e17-141927a1a39a}</Project>
- <Name>wolfSSL_CSharp</Name>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <PropertyGroup>
- <PreBuildEvent>
- </PreBuildEvent>
- </PropertyGroup>
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/App.config b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/App.config
deleted file mode 100644
index fad249e40..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
- </startup>
-</configuration> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/Properties/AssemblyInfo.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/Properties/AssemblyInfo.cs
deleted file mode 100644
index 066aa71c2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("wolfSSL-Example-IOCallbacks")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("wolfSSL")]
-[assembly: AssemblyProduct("wolfSSL-Example-IOCallbacks")]
-[assembly: AssemblyCopyright("Copyright wolfSSL 2020")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("c0ac38b1-1984-4659-b36a-20362dc47f99")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.1.0.0")]
-[assembly: AssemblyFileVersion("1.1.0.0")]
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/wolfSSL-Example-IOCallbacks.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/wolfSSL-Example-IOCallbacks.cs
deleted file mode 100644
index f57a63224..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/wolfSSL-Example-IOCallbacks.cs
+++ /dev/null
@@ -1,280 +0,0 @@
-/* wolfSSL-Example-IOCallbacks.cs
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Net;
-using System.Net.Sockets;
-using System.Runtime.InteropServices;
-using System.IO;
-using wolfSSL.CSharp;
-
-
-class wolfSSL_Example_IOCallbacks
-{
- /// <summary>
- /// Example call back to allow receiving TLS information
- /// </summary>
- /// <param name="ssl">structure of ssl passed in</param>
- /// <param name="buf">buffer to contain received msg</param>
- /// <param name="sz">size of buffer for receiving</param>
- /// <param name="ctx">information passed in from set_fd</param>
- /// <returns>size of message received</returns>
- private static int wolfSSLCbIORecv(IntPtr ssl, IntPtr buf, int sz, IntPtr ctx)
- {
- if (sz <= 0)
- {
- wolfssl.log(wolfssl.ERROR_LOG, "wolfssl receive error, size less than 0");
- return wolfssl.CBIO_ERR_GENERAL;
- }
-
- int amtRecv = 0;
-
- try
- {
- System.Runtime.InteropServices.GCHandle gch;
- gch = GCHandle.FromIntPtr(ctx);
- Socket con = (System.Net.Sockets.Socket)gch.Target;
-
- Byte[] msg = new Byte[sz];
- amtRecv = con.Receive(msg, msg.Length, 0);
- Marshal.Copy(msg, 0, buf, sz);
- }
- catch (Exception e)
- {
- wolfssl.log(wolfssl.ENTER_LOG, "Error in receive " + e.ToString());
- return wolfssl.CBIO_ERR_CONN_CLOSE;
- }
-
- Console.WriteLine("Example custom receive got {0:D} bytes", amtRecv);
- return amtRecv;
- }
-
-
- /// <summary>
- /// Example call back used for sending TLS information
- /// </summary>
- /// <param name="ssl">pointer to ssl struct</param>
- /// <param name="buf">buffer containing information to send</param>
- /// <param name="sz">size of buffer to send</param>
- /// <param name="ctx">object that was set as fd</param>
- /// <returns>amount of information sent</returns>
- private static int wolfSSLCbIOSend(IntPtr ssl, IntPtr buf, int sz, IntPtr ctx)
- {
- if (sz <= 0)
- {
- wolfssl.log(wolfssl.ERROR_LOG, "wolfssl send error, size less than 0");
- return wolfssl.CBIO_ERR_GENERAL;
- }
-
- try
- {
- System.Runtime.InteropServices.GCHandle gch;
- gch = GCHandle.FromIntPtr(ctx);
- Socket con = (System.Net.Sockets.Socket)gch.Target;
-
- Byte[] msg = new Byte[sz];
- Marshal.Copy(buf, msg, 0, sz);
-
- con.Send(msg, 0, msg.Length, SocketFlags.None);
- Console.WriteLine("Example custom send sent {0:D} bytes", sz);
- return sz;
- }
- catch (Exception e)
- {
- wolfssl.log(wolfssl.ERROR_LOG, "socket connection issue " + e.ToString());
- return wolfssl.CBIO_ERR_CONN_CLOSE;
- }
- }
-
-
- /// <summary>
- /// Example of a PSK function call back
- /// </summary>
- /// <param name="ssl">pointer to ssl structure</param>
- /// <param name="identity">identity of client connecting</param>
- /// <param name="key">buffer to hold key</param>
- /// <param name="max_key">max key size</param>
- /// <returns>size of key set</returns>
- public static uint my_psk_server_cb(IntPtr ssl, string identity, IntPtr key, uint max_key)
- {
- /* perform a check on the identity sent across
- * log function must be set for print out of logging information
- */
- wolfssl.log(wolfssl.INFO_LOG, "PSK Client Identity = " + identity);
-
- /* Use desired key, note must be a key smaller than max key size parameter
- Replace this with desired key. Is trivial one for testing */
- if (max_key < 4)
- return 0;
- byte[] tmp = { 26, 43, 60, 77 };
- Marshal.Copy(tmp, 0, key, 4);
-
- return (uint)4;
- }
-
-
- private static void clean(IntPtr ssl, IntPtr ctx)
- {
- wolfssl.free(ssl);
- wolfssl.CTX_free(ctx);
- wolfssl.Cleanup();
- }
-
-
- static void Main(string[] args)
- {
- IntPtr ctx;
- IntPtr ssl;
- Socket fd;
-
- wolfssl.psk_delegate psk_cb = new wolfssl.psk_delegate(my_psk_server_cb);
-
- /* These paths should be changed according to use */
- string fileCert = @"server-cert.pem";
- string fileKey = @"server-key.pem";
-
- StringBuilder buff = new StringBuilder(1024);
- StringBuilder reply = new StringBuilder("Hello, this is the wolfSSL C# wrapper");
-
- wolfssl.Init();
-
- Console.WriteLine("Calling ctx Init from wolfSSL");
- ctx = wolfssl.CTX_new(wolfssl.useTLSv1_2_server());
- if (ctx == IntPtr.Zero)
- {
- Console.WriteLine("Error creating ctx structure");
- return;
- }
- Console.WriteLine("Finished init of ctx .... now load in cert and key");
-
- if (!File.Exists(fileCert) || !File.Exists(fileKey))
- {
- Console.WriteLine("Could not find cert or key file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- if (wolfssl.CTX_use_certificate_file(ctx, fileCert, wolfssl.SSL_FILETYPE_PEM) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error in setting cert file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- if (wolfssl.CTX_use_PrivateKey_file(ctx, fileKey, wolfssl.SSL_FILETYPE_PEM) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error in setting key file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- StringBuilder ciphers = new StringBuilder(new String(' ', 4096));
- wolfssl.get_ciphers(ciphers, 4096);
- Console.WriteLine("Ciphers : " + ciphers.ToString());
-
- Console.Write("Setting cipher suite to ");
- /* To use static PSK build wolfSSL with WOLFSSL_STATIC_PSK preprocessor flag */
- StringBuilder set_cipher = new StringBuilder("PSK-AES128-CBC-SHA256");
- Console.WriteLine(set_cipher);
- if (wolfssl.CTX_set_cipher_list(ctx, set_cipher) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Failed to set cipher suite");
- Console.WriteLine("If using static PSK make sure wolfSSL was built with preprocessor flag WOLFSSL_STATIC_PSK");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- /* Test psk use */
- StringBuilder hint = new StringBuilder("cyassl server");
- if (wolfssl.CTX_use_psk_identity_hint(ctx, hint) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error setting hint");
- return;
- }
- wolfssl.CTX_set_psk_server_callback(ctx, psk_cb);
-
- /* Set using custom IO callbacks
- delegate memory is allocated when calling SetIO**** function and freed with ctx free
- */
- wolfssl.SetIORecv(ctx, new wolfssl.CallbackIORecv_delegate(wolfSSLCbIORecv));
- wolfssl.SetIOSend(ctx, new wolfssl.CallbackIOSend_delegate(wolfSSLCbIOSend));
-
- /* set up TCP socket */
- IPAddress ip = IPAddress.Parse("0.0.0.0"); //bind to any
- TcpListener tcp = new TcpListener(ip, 11111);
- tcp.Start();
-
- Console.WriteLine("Started TCP and waiting for a connection");
- fd = tcp.AcceptSocket();
- ssl = wolfssl.new_ssl(ctx);
-
- Console.WriteLine("Connection made wolfSSL_accept ");
- if (wolfssl.set_fd(ssl, fd) != wolfssl.SUCCESS)
- {
- /* get and print out the error */
- Console.WriteLine(wolfssl.get_error(ssl));
- tcp.Stop();
- clean(ssl, ctx);
- return;
- }
-
- if (wolfssl.accept(ssl) != wolfssl.SUCCESS)
- {
- /* get and print out the error */
- Console.WriteLine(wolfssl.get_error(ssl));
- tcp.Stop();
- clean(ssl, ctx);
- return;
- }
-
- /* print out results of TLS/SSL accept */
- Console.WriteLine("SSL version is " + wolfssl.get_version(ssl));
- Console.WriteLine("SSL cipher suite is " + wolfssl.get_current_cipher(ssl));
-
- /* read and print out the message then reply */
- if (wolfssl.read(ssl, buff, 1023) < 0)
- {
- Console.WriteLine("Error in read");
- tcp.Stop();
- clean(ssl, ctx);
- return;
- }
- Console.WriteLine(buff);
-
- if (wolfssl.write(ssl, reply, reply.Length) != reply.Length)
- {
- Console.WriteLine("Error in write");
- tcp.Stop();
- clean(ssl, ctx);
- return;
- }
-
- wolfssl.shutdown(ssl);
- fd.Close();
- tcp.Stop();
- clean(ssl, ctx);
- }
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/wolfSSL-Example-IOCallbacks.csproj b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/wolfSSL-Example-IOCallbacks.csproj
deleted file mode 100644
index 8b9bd133e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-Example-IOCallbacks/wolfSSL-Example-IOCallbacks.csproj
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{E2415718-0A15-48DB-A774-01FB0093B626}</ProjectGuid>
- <OutputType>Exe</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>wolfSSL_Example_IOCallbacks</RootNamespace>
- <AssemblyName>wolfSSL-Example-IOCallbacks</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
- <DebugSymbols>true</DebugSymbols>
- <OutputPath>..\x64\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <DebugType>full</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
- <OutputPath>..\x64\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <Optimize>true</Optimize>
- <DebugType>pdbonly</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- <WarningLevel>0</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="wolfSSL-Example-IOCallbacks.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\wolfSSL_CSharp\wolfSSL_CSharp.csproj">
- <Project>{52609808-0418-46d3-8e17-141927a1a39a}</Project>
- <Name>wolfSSL_CSharp</Name>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/App.config b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/App.config
deleted file mode 100644
index b540b1fdf..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
- </startup>
-</configuration> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/Properties/AssemblyInfo.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/Properties/AssemblyInfo.cs
deleted file mode 100644
index a1063125b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("wolfSSL-TLS-Client")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("wolfSSL")]
-[assembly: AssemblyProduct("wolfSSL-TLS-Client")]
-[assembly: AssemblyCopyright("Copyright wolfSSL 2020")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("05aad2b4-445e-4f0e-8e16-8f8512696505")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.1.0.0")]
-[assembly: AssemblyFileVersion("1.1.0.0")]
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/Properties/Settings.Designer.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/Properties/Settings.Designer.cs
deleted file mode 100644
index 524c01375..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.17929
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace wolfSSL_TLS_CSharp.Properties {
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default {
- get {
- return defaultInstance;
- }
- }
- }
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/Properties/Settings.settings b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/Properties/Settings.settings
deleted file mode 100644
index 049245f40..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/Properties/Settings.settings
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
- <Profiles>
- <Profile Name="(Default)" />
- </Profiles>
-</SettingsFile>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/wolfSSL-TLS-Client.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/wolfSSL-TLS-Client.cs
deleted file mode 100644
index dcba3568e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/wolfSSL-TLS-Client.cs
+++ /dev/null
@@ -1,210 +0,0 @@
-/* wolfSSL-TLS-Client.cs
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-using System;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.IO;
-using System.Net;
-using System.Net.Sockets;
-using wolfSSL.CSharp;
-
-public class wolfSSL_TLS_Client
-{
- /// <summary>
- /// Example of a logging function
- /// </summary>
- /// <param name="lvl">level of log</param>
- /// <param name="msg">message to log</param>
- public static void standard_log(int lvl, StringBuilder msg)
- {
- Console.WriteLine(msg);
- }
-
-
- private static void clean(IntPtr ssl, IntPtr ctx)
- {
- wolfssl.free(ssl);
- wolfssl.CTX_free(ctx);
- wolfssl.Cleanup();
- }
-
- /// <summary>
- /// Verification callback
- /// </summary>
- /// <param name="preverify">1=Verify Okay, 0=Failure</param>
- /// <param name="x509_ctx">Certificate in WOLFSSL_X509_STORE_CTX format</param>
- private static int myVerify(int preverify, IntPtr x509_ctx)
- {
- /* Use the provided verification */
- /* Can optionally override failures by returning non-zero value */
- return preverify;
- }
-
- public static void Main(string[] args)
- {
- IntPtr ctx;
- IntPtr ssl;
- Socket tcp;
-
- /* These paths should be changed for use */
- string caCert = @"ca-cert.pem";
- StringBuilder dhparam = new StringBuilder("dh2048.pem");
-
- StringBuilder buff = new StringBuilder(1024);
- StringBuilder reply = new StringBuilder("Hello, this is the wolfSSL C# wrapper");
-
- //example of function used for setting logging
- wolfssl.SetLogging(standard_log);
-
- wolfssl.Init();
-
-
- Console.WriteLine("Calling ctx Init from wolfSSL");
- ctx = wolfssl.CTX_new(wolfssl.usev23_client());
- if (ctx == IntPtr.Zero)
- {
- Console.WriteLine("Error in creating ctx structure");
- return;
- }
- Console.WriteLine("Finished init of ctx .... now load in CA");
-
-
- if (!File.Exists(caCert))
- {
- Console.WriteLine("Could not find CA cert file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
-
- if (wolfssl.CTX_load_verify_locations(ctx, caCert, null)
- != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error loading CA cert");
- }
-
- StringBuilder ciphers = new StringBuilder(new String(' ', 4096));
- wolfssl.get_ciphers(ciphers, 4096);
- Console.WriteLine("Ciphers : " + ciphers.ToString());
-
- /* Uncomment Section to enable specific cipher suite */
-#if false
- ciphers = new StringBuilder("ECDHE-ECDSA-AES128-GCM-SHA256");
- if (wolfssl.CTX_set_cipher_list(ctx, ciphers) != wolfssl.SUCCESS)
- {
- Console.WriteLine("ERROR CTX_set_cipher_list()");
- wolfssl.CTX_free(ctx);
- return;
- }
-#endif
-
- short minDhKey = 128;
- wolfssl.CTX_SetMinDhKey_Sz(ctx, minDhKey);
-
- /* Setup Verify Callback */
- if (wolfssl.CTX_set_verify(ctx, wolfssl.SSL_VERIFY_PEER, myVerify)
- != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error setting verify callback!");
- }
-
-
- /* set up TCP socket */
- tcp = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
- ProtocolType.Tcp);
- try
- {
- tcp.Connect("localhost", 11111);
- }
- catch (Exception e)
- {
- Console.WriteLine("tcp.Connect() error " + e.ToString());
- wolfssl.CTX_free(ctx);
- return;
- }
- if (!tcp.Connected)
- {
- Console.WriteLine("tcp.Connect() failed!");
- tcp.Close();
- wolfssl.CTX_free(ctx);
- return;
- }
-
- Console.WriteLine("Connected TCP");
- ssl = wolfssl.new_ssl(ctx);
- if (ssl == IntPtr.Zero)
- {
- Console.WriteLine("Error in creating ssl object");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- Console.WriteLine("Connection made wolfSSL_connect ");
- if (wolfssl.set_fd(ssl, tcp) != wolfssl.SUCCESS)
- {
- /* get and print out the error */
- Console.WriteLine(wolfssl.get_error(ssl));
- tcp.Close();
- clean(ssl, ctx);
- return;
- }
-
- wolfssl.SetTmpDH_file(ssl, dhparam, wolfssl.SSL_FILETYPE_PEM);
-
- if (wolfssl.connect(ssl) != wolfssl.SUCCESS)
- {
- /* get and print out the error */
- Console.WriteLine(wolfssl.get_error(ssl));
- tcp.Close();
- clean(ssl, ctx);
- return;
- }
-
- /* print out results of TLS/SSL accept */
- Console.WriteLine("SSL version is " + wolfssl.get_version(ssl));
- Console.WriteLine("SSL cipher suite is " + wolfssl.get_current_cipher(ssl));
-
-
- if (wolfssl.write(ssl, reply, reply.Length) != reply.Length)
- {
- Console.WriteLine("Error in write");
- tcp.Close();
- clean(ssl, ctx);
- return;
- }
-
- /* read and print out the message then reply */
- if (wolfssl.read(ssl, buff, 1023) < 0)
- {
- Console.WriteLine("Error in read");
- tcp.Close();
- clean(ssl, ctx);
- return;
- }
- Console.WriteLine(buff);
-
- wolfssl.shutdown(ssl);
- tcp.Close();
- clean(ssl, ctx);
- }
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/wolfSSL-TLS-Client.csproj b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/wolfSSL-TLS-Client.csproj
deleted file mode 100644
index 2959f6f90..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Client/wolfSSL-TLS-Client.csproj
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{B9DF2972-38F6-4B42-B228-E3C1A47DF8E8}</ProjectGuid>
- <OutputType>Exe</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>wolfSSL_TLS_Client</RootNamespace>
- <AssemblyName>wolfSSL-TLS-Client</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <PublishUrl>publish\</PublishUrl>
- <Install>true</Install>
- <InstallFrom>Disk</InstallFrom>
- <UpdateEnabled>false</UpdateEnabled>
- <UpdateMode>Foreground</UpdateMode>
- <UpdateInterval>7</UpdateInterval>
- <UpdateIntervalUnits>Days</UpdateIntervalUnits>
- <UpdatePeriodically>false</UpdatePeriodically>
- <UpdateRequired>false</UpdateRequired>
- <MapFileExtensions>true</MapFileExtensions>
- <ApplicationRevision>0</ApplicationRevision>
- <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>false</IsWebBootstrapper>
- <UseApplicationTrust>false</UseApplicationTrust>
- <BootstrapperEnabled>true</BootstrapperEnabled>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>3</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup>
- <StartupObject />
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
- <DebugSymbols>true</DebugSymbols>
- <OutputPath>..\x64\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <WarningLevel>4</WarningLevel>
- <DebugType>full</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
- <OutputPath>..\x64\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <Optimize>true</Optimize>
- <DebugType>pdbonly</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="Properties\Settings.Designer.cs">
- <AutoGen>True</AutoGen>
- <DesignTimeSharedInput>True</DesignTimeSharedInput>
- <DependentUpon>Settings.settings</DependentUpon>
- </Compile>
- <Compile Include="wolfSSL-TLS-Client.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- <None Include="Properties\Settings.settings">
- <Generator>SettingsSingleFileGenerator</Generator>
- <LastGenOutput>Settings.Designer.cs</LastGenOutput>
- </None>
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\wolfSSL_CSharp\wolfSSL_CSharp.csproj">
- <Project>{52609808-0418-46d3-8e17-141927a1a39a}</Project>
- <Name>wolfSSL_CSharp</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <BootstrapperPackage Include=".NETFramework,Version=v4.5">
- <Visible>False</Visible>
- <ProductName>Microsoft .NET Framework 4.5 %28x86 and x64%29</ProductName>
- <Install>true</Install>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
- <Visible>False</Visible>
- <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
- <Install>false</Install>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
- <Visible>False</Visible>
- <ProductName>.NET Framework 3.5 SP1</ProductName>
- <Install>false</Install>
- </BootstrapperPackage>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <PropertyGroup>
- <PreBuildEvent>
- </PreBuildEvent>
- </PropertyGroup>
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/App.config b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/App.config
deleted file mode 100644
index fad249e40..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
- </startup>
-</configuration> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/Properties/AssemblyInfo.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/Properties/AssemblyInfo.cs
deleted file mode 100644
index 5704ac236..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("wolfSSL-TLS-PSK-Server")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("wolfSSL")]
-[assembly: AssemblyProduct("wolfSSL-TLS-PSK-Server")]
-[assembly: AssemblyCopyright("Copyright wolfSSL 2020")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("1de70ade-16d5-4c90-9657-c19c2762bca6")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.1.0.0")]
-[assembly: AssemblyFileVersion("1.1.0.0")]
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/wolfSSL-TLS-PSK-Server.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/wolfSSL-TLS-PSK-Server.cs
deleted file mode 100644
index e8697062a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/wolfSSL-TLS-PSK-Server.cs
+++ /dev/null
@@ -1,212 +0,0 @@
-/* wolfSSL-TLS-PSK-Server.cs
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-using System;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Threading;
-using System.IO;
-using System.Net;
-using System.Net.Sockets;
-using wolfSSL.CSharp;
-
-
-
-public class wolfSSL_TLS_PSK_Server
-{
-
-
- /// <summary>
- /// Example of a PSK function call back
- /// </summary>
- /// <param name="ssl">pointer to ssl structure</param>
- /// <param name="identity">identity of client connecting</param>
- /// <param name="key">buffer to hold key</param>
- /// <param name="max_key">max key size</param>
- /// <returns>size of key set</returns>
- public static uint my_psk_server_cb(IntPtr ssl, string identity, IntPtr key, uint max_key)
- {
- /* perform a check on the identity sent across
- * log function must be set for print out of logging information
- */
- wolfssl.log(wolfssl.INFO_LOG, "PSK Client Identity = " + identity);
-
- /* Use desired key, note must be a key smaller than max key size parameter
- Replace this with desired key. Is trivial one for testing */
- if (max_key < 4)
- return 0;
- byte[] tmp = { 26, 43, 60, 77 };
- Marshal.Copy(tmp, 0, key, 4);
-
- return (uint)4;
- }
-
-
- private static void clean(IntPtr ssl, IntPtr ctx)
- {
- wolfssl.free(ssl);
- wolfssl.CTX_free(ctx);
- wolfssl.Cleanup();
- }
-
-
- public static void Main(string[] args)
- {
- IntPtr ctx;
- IntPtr ssl;
- Socket fd;
-
- wolfssl.psk_delegate psk_cb = new wolfssl.psk_delegate(my_psk_server_cb);
-
- /* These paths should be changed according to use */
- string fileCert = @"server-cert.pem";
- string fileKey = @"server-key.pem";
- StringBuilder dhparam = new StringBuilder("dh2048.pem");
-
- StringBuilder buff = new StringBuilder(1024);
- StringBuilder reply = new StringBuilder("Hello, this is the wolfSSL C# wrapper");
-
- wolfssl.Init();
-
- Console.WriteLine("Calling ctx Init from wolfSSL");
- ctx = wolfssl.CTX_new(wolfssl.useTLSv1_2_server());
- if (ctx == IntPtr.Zero)
- {
- Console.WriteLine("Error creating ctx structure");
- return;
- }
- Console.WriteLine("Finished init of ctx .... now load in cert and key");
-
- if (!File.Exists(fileCert) || !File.Exists(fileKey))
- {
- Console.WriteLine("Could not find cert or key file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- if (wolfssl.CTX_use_certificate_file(ctx, fileCert, wolfssl.SSL_FILETYPE_PEM) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error in setting cert file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- if (wolfssl.CTX_use_PrivateKey_file(ctx, fileKey, wolfssl.SSL_FILETYPE_PEM) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error in setting key file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
-
- StringBuilder ciphers = new StringBuilder(new String(' ', 4096));
- wolfssl.get_ciphers(ciphers, 4096);
- Console.WriteLine("Ciphers : " + ciphers.ToString());
-
- short minDhKey = 128;
- wolfssl.CTX_SetMinDhKey_Sz(ctx, minDhKey);
- Console.Write("Setting cipher suite to ");
-
- /* In order to use static PSK build wolfSSL with the preprocessor flag WOLFSSL_STATIC_PSK */
- StringBuilder set_cipher = new StringBuilder("DHE-PSK-AES128-CBC-SHA256");
- Console.WriteLine(set_cipher);
- if (wolfssl.CTX_set_cipher_list(ctx, set_cipher) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Failed to set cipher suite");
- return;
- }
-
- /* Test psk use with DHE */
- StringBuilder hint = new StringBuilder("cyassl server");
- if (wolfssl.CTX_use_psk_identity_hint(ctx, hint) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error setting hint");
- wolfssl.CTX_free(ctx);
- return;
- }
- wolfssl.CTX_set_psk_server_callback(ctx, psk_cb);
-
- /* set up TCP socket */
- IPAddress ip = IPAddress.Parse("0.0.0.0"); //bind to any
- TcpListener tcp = new TcpListener(ip, 11111);
- tcp.Start();
-
- Console.WriteLine("Started TCP and waiting for a connection");
- fd = tcp.AcceptSocket();
- ssl = wolfssl.new_ssl(ctx);
- if (ssl == IntPtr.Zero)
- {
- Console.WriteLine("Error creating ssl object");
- tcp.Stop();
- wolfssl.CTX_free(ctx);
- return;
- }
-
- Console.WriteLine("Connection made wolfSSL_accept ");
- if (wolfssl.set_fd(ssl, fd) != wolfssl.SUCCESS)
- {
- /* get and print out the error */
- Console.WriteLine(wolfssl.get_error(ssl));
- tcp.Stop();
- clean(ssl, ctx);
- return;
- }
-
- wolfssl.SetTmpDH_file(ssl, dhparam, wolfssl.SSL_FILETYPE_PEM);
-
- if (wolfssl.accept(ssl) != wolfssl.SUCCESS)
- {
- /* get and print out the error */
- Console.WriteLine(wolfssl.get_error(ssl));
- tcp.Stop();
- clean(ssl, ctx);
- return;
- }
-
- /* print out results of TLS/SSL accept */
- Console.WriteLine("SSL version is " + wolfssl.get_version(ssl));
- Console.WriteLine("SSL cipher suite is " + wolfssl.get_current_cipher(ssl));
-
- /* read and print out the message then reply */
- if (wolfssl.read(ssl, buff, 1023) < 0)
- {
- Console.WriteLine("Error in read");
- tcp.Stop();
- clean(ssl, ctx);
- return;
- }
- Console.WriteLine(buff);
-
- if (wolfssl.write(ssl, reply, reply.Length) != reply.Length)
- {
- Console.WriteLine("Error in write");
- tcp.Stop();
- clean(ssl, ctx);
- return;
- }
-
- wolfssl.shutdown(ssl);
- fd.Close();
- tcp.Stop();
- clean(ssl, ctx);
- }
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/wolfSSL-TLS-PSK-Server.csproj b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/wolfSSL-TLS-PSK-Server.csproj
deleted file mode 100644
index b9bdf26eb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-PSK-Server/wolfSSL-TLS-PSK-Server.csproj
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{030431C7-26AB-4447-815B-F27E88BE5D5B}</ProjectGuid>
- <OutputType>Exe</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>wolfSSL_TLS_PSK_Server</RootNamespace>
- <AssemblyName>wolfSSL-TLS-PSK-Server</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
- <DebugSymbols>true</DebugSymbols>
- <OutputPath>..\x64\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <DebugType>full</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
- <OutputPath>..\x64\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <Optimize>true</Optimize>
- <DebugType>pdbonly</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="wolfSSL-TLS-PSK-Server.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\wolfSSL_CSharp\wolfSSL_CSharp.csproj">
- <Project>{52609808-0418-46d3-8e17-141927a1a39a}</Project>
- <Name>wolfSSL_CSharp</Name>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <PropertyGroup>
- <PreBuildEvent>
- </PreBuildEvent>
- </PropertyGroup>
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/App.config b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/App.config
deleted file mode 100644
index fad249e40..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
- </startup>
-</configuration> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/Properties/AssemblyInfo.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/Properties/AssemblyInfo.cs
deleted file mode 100644
index ef8b02522..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("wolfSSL-TLS-Server")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("wolfSSL")]
-[assembly: AssemblyProduct("wolfSSL-TLS-Server")]
-[assembly: AssemblyCopyright("Copyright wolfSSL 2020")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("716e8f30-1318-4e3b-b788-d0380b397a4c")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.1.0.0")]
-[assembly: AssemblyFileVersion("1.1.0.0")]
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/Properties/Settings.Designer.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/Properties/Settings.Designer.cs
deleted file mode 100644
index 6409d3ec6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.17929
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace wolfSSL_TLS_CSharp.Properties {
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default {
- get {
- return defaultInstance;
- }
- }
- }
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/Properties/Settings.settings b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/Properties/Settings.settings
deleted file mode 100644
index 15034e76c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/Properties/Settings.settings
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
- <Profiles>
- <Profile Name="(Default)" />
- </Profiles>
-</SettingsFile>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.cs
deleted file mode 100644
index 262bd74be..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.cs
+++ /dev/null
@@ -1,173 +0,0 @@
-/* wolfSSL-TLS-Server.cs
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-using System;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.IO;
-using System.Net;
-using System.Net.Sockets;
-using wolfSSL.CSharp;
-
-public class wolfSSL_TLS_CSHarp
-{
- /// <summary>
- /// Example of a logging function
- /// </summary>
- /// <param name="lvl">level of log</param>
- /// <param name="msg">message to log</param>
- public static void standard_log(int lvl, StringBuilder msg)
- {
- Console.WriteLine(msg);
- }
-
-
- private static void clean(IntPtr ssl, IntPtr ctx)
- {
- wolfssl.free(ssl);
- wolfssl.CTX_free(ctx);
- wolfssl.Cleanup();
- }
-
-
- public static void Main(string[] args)
- {
- IntPtr ctx;
- IntPtr ssl;
- Socket fd;
-
- /* These paths should be changed for use */
- string fileCert = @"server-cert.pem";
- string fileKey = @"server-key.pem";
- StringBuilder dhparam = new StringBuilder("dh2048.pem");
-
- StringBuilder buff = new StringBuilder(1024);
- StringBuilder reply = new StringBuilder("Hello, this is the wolfSSL C# wrapper");
-
- //example of function used for setting logging
- wolfssl.SetLogging(standard_log);
-
- wolfssl.Init();
-
-
- Console.WriteLine("Calling ctx Init from wolfSSL");
- ctx = wolfssl.CTX_new(wolfssl.usev23_server());
- if (ctx == IntPtr.Zero)
- {
- Console.WriteLine("Error in creating ctx structure");
- return;
- }
- Console.WriteLine("Finished init of ctx .... now load in cert and key");
-
- if (!File.Exists(fileCert) || !File.Exists(fileKey))
- {
- Console.WriteLine("Could not find cert or key file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- if (wolfssl.CTX_use_certificate_file(ctx, fileCert, wolfssl.SSL_FILETYPE_PEM) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error in setting cert file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- if (wolfssl.CTX_use_PrivateKey_file(ctx, fileKey, wolfssl.SSL_FILETYPE_PEM) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error in setting key file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
-
- StringBuilder ciphers = new StringBuilder(new String(' ', 4096));
- wolfssl.get_ciphers(ciphers, 4096);
- Console.WriteLine("Ciphers : " + ciphers.ToString());
-
- short minDhKey = 128;
- wolfssl.CTX_SetMinDhKey_Sz(ctx, minDhKey);
-
- /* set up TCP socket */
- IPAddress ip = IPAddress.Parse("0.0.0.0"); /* bind to any */
- TcpListener tcp = new TcpListener(ip, 11111);
- tcp.Start();
-
- Console.WriteLine("Started TCP and waiting for a connection");
- fd = tcp.AcceptSocket();
- ssl = wolfssl.new_ssl(ctx);
- if (ssl == IntPtr.Zero)
- {
- Console.WriteLine("Error in creating ssl object");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- Console.WriteLine("Connection made wolfSSL_accept ");
- if (wolfssl.set_fd(ssl, fd) != wolfssl.SUCCESS)
- {
- /* get and print out the error */
- Console.WriteLine(wolfssl.get_error(ssl));
- tcp.Stop();
- clean(ssl, ctx);
- return;
- }
-
- wolfssl.SetTmpDH_file(ssl, dhparam, wolfssl.SSL_FILETYPE_PEM);
-
- if (wolfssl.accept(ssl) != wolfssl.SUCCESS)
- {
- /* get and print out the error */
- Console.WriteLine(wolfssl.get_error(ssl));
- tcp.Stop();
- clean(ssl, ctx);
- return;
- }
-
- /* print out results of TLS/SSL accept */
- Console.WriteLine("SSL version is " + wolfssl.get_version(ssl));
- Console.WriteLine("SSL cipher suite is " + wolfssl.get_current_cipher(ssl));
-
- /* read and print out the message then reply */
- if (wolfssl.read(ssl, buff, 1023) < 0)
- {
- Console.WriteLine("Error in read");
- tcp.Stop();
- clean(ssl, ctx);
- return;
- }
- Console.WriteLine(buff);
-
- if (wolfssl.write(ssl, reply, reply.Length) != reply.Length)
- {
- Console.WriteLine("Error in write");
- tcp.Stop();
- clean(ssl, ctx);
- return;
- }
-
- wolfssl.shutdown(ssl);
- fd.Close();
- tcp.Stop();
- clean(ssl, ctx);
- }
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.csproj b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.csproj
deleted file mode 100644
index 7ab3a6f07..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.csproj
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{8921AD35-4E62-4DAC-8FEE-8C9F8E57DDD2}</ProjectGuid>
- <OutputType>Exe</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>wolfSSL_TLS_Server</RootNamespace>
- <AssemblyName>wolfSSL-TLS-Server</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <PublishUrl>publish\</PublishUrl>
- <Install>true</Install>
- <InstallFrom>Disk</InstallFrom>
- <UpdateEnabled>false</UpdateEnabled>
- <UpdateMode>Foreground</UpdateMode>
- <UpdateInterval>7</UpdateInterval>
- <UpdateIntervalUnits>Days</UpdateIntervalUnits>
- <UpdatePeriodically>false</UpdatePeriodically>
- <UpdateRequired>false</UpdateRequired>
- <MapFileExtensions>true</MapFileExtensions>
- <ApplicationRevision>0</ApplicationRevision>
- <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>false</IsWebBootstrapper>
- <UseApplicationTrust>false</UseApplicationTrust>
- <BootstrapperEnabled>true</BootstrapperEnabled>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>3</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup>
- <StartupObject />
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
- <DebugSymbols>true</DebugSymbols>
- <OutputPath>..\x64\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <WarningLevel>4</WarningLevel>
- <DebugType>full</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
- <OutputPath>..\x64\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <Optimize>true</Optimize>
- <DebugType>pdbonly</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="Properties\Settings.Designer.cs">
- <AutoGen>True</AutoGen>
- <DesignTimeSharedInput>True</DesignTimeSharedInput>
- <DependentUpon>Settings.settings</DependentUpon>
- </Compile>
- <Compile Include="wolfSSL-TLS-Server.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- <None Include="Properties\Settings.settings">
- <Generator>SettingsSingleFileGenerator</Generator>
- <LastGenOutput>Settings.Designer.cs</LastGenOutput>
- </None>
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\wolfSSL_CSharp\wolfSSL_CSharp.csproj">
- <Project>{52609808-0418-46d3-8e17-141927a1a39a}</Project>
- <Name>wolfSSL_CSharp</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <BootstrapperPackage Include=".NETFramework,Version=v4.5">
- <Visible>False</Visible>
- <ProductName>Microsoft .NET Framework 4.5 %28x86 and x64%29</ProductName>
- <Install>true</Install>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
- <Visible>False</Visible>
- <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
- <Install>false</Install>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
- <Visible>False</Visible>
- <ProductName>.NET Framework 3.5 SP1</ProductName>
- <Install>false</Install>
- </BootstrapperPackage>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <PropertyGroup>
- <PreBuildEvent>
- </PreBuildEvent>
- </PropertyGroup>
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/App.config b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/App.config
deleted file mode 100644
index 8e1564635..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
- <startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
- </startup>
-</configuration> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/AssemblyInfo.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/AssemblyInfo.cs
deleted file mode 100644
index e786a4dd2..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("wolfSSL-TLS-Server")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("wolfSSL")]
-[assembly: AssemblyProduct("wolfSSL-TLS-Server")]
-[assembly: AssemblyCopyright("Copyright wolfSSL 2020")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("716e8f30-1318-4e3b-b788-d0380b397a4c")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.1.0.0")]
-[assembly: AssemblyFileVersion("1.1.0.0")]
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/Settings.Designer.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/Settings.Designer.cs
deleted file mode 100644
index 524c01375..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.17929
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace wolfSSL_TLS_CSharp.Properties {
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default {
- get {
- return defaultInstance;
- }
- }
- }
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/Settings.settings b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/Settings.settings
deleted file mode 100644
index 049245f40..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/Properties/Settings.settings
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
- <Profiles>
- <Profile Name="(Default)" />
- </Profiles>
-</SettingsFile>
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/wolfSSL-TLS-ServerThreaded.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/wolfSSL-TLS-ServerThreaded.cs
deleted file mode 100644
index 2f9da4e24..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/wolfSSL-TLS-ServerThreaded.cs
+++ /dev/null
@@ -1,194 +0,0 @@
-/* wolfSSL-TLS-ServerThreaded.cs
- *
- * Copyright (C) 2006-2020 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
- */
-
-
-using System;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.IO;
-using System.Net;
-using System.Net.Sockets;
-using System.Threading;
-
-using wolfSSL.CSharp;
-
-public class wolfSSL_TLS_ServerThread
-{
- private IntPtr _ctx;
- private Socket _fd;
-
- public wolfSSL_TLS_ServerThread(IntPtr ctx, Socket fd)
- {
- _ctx = ctx;
- _fd = fd;
- }
-
- private const int kEchoBufSz = 1024;
- public void start_client()
- {
- StringBuilder buff = new StringBuilder(kEchoBufSz);
- IntPtr ssl = wolfssl.new_ssl(_ctx);
- if (ssl == IntPtr.Zero)
- {
- Console.WriteLine("Error in creating ssl object");
- return;
- }
-
- if (wolfssl.set_fd(ssl, _fd) != wolfssl.SUCCESS)
- {
- /* get and print out the error */
- Console.WriteLine(wolfssl.get_error(ssl));
- _fd.Close();
- wolfssl.free(ssl);
- return;
- }
-
- Console.WriteLine("Starting TLS handshake");
- if (wolfssl.accept(ssl) != wolfssl.SUCCESS)
- {
- /* get and print out the error */
- Console.WriteLine("Failed " + wolfssl.get_error(ssl));
- _fd.Close();
- wolfssl.free(ssl);
- return;
- }
-
- /* print out results of TLS/SSL accept */
- Console.WriteLine("SSL version is " + wolfssl.get_version(ssl));
- Console.WriteLine("SSL cipher suite is " + wolfssl.get_current_cipher(ssl));
-
- /* echo data until error */
- while (true)
- {
- /* read and print out the message then reply */
- if (wolfssl.read(ssl, buff, kEchoBufSz-1) < 0)
- {
- Console.WriteLine("Error in read");
- break;
- }
- Console.WriteLine(buff);
-
- if (wolfssl.write(ssl, buff, buff.Length) != buff.Length)
- {
- Console.WriteLine("Error in write");
- break;
- }
- }
-
- Console.WriteLine("Closing " + wolfssl.get_error(ssl));
- _fd.Close();
- wolfssl.free(ssl);
- }
-}
-
-public class wolfSSL_TLS_ServerThreaded
-{
- /// <summary>
- /// Example of a logging function
- /// </summary>
- /// <param name="lvl">level of log</param>
- /// <param name="msg">message to log</param>
- public static void standard_log(int lvl, StringBuilder msg)
- {
- Console.WriteLine(msg);
- }
-
- public static void Main(string[] args)
- {
- IntPtr ctx;
-
- /* These paths should be changed for use */
- string fileCert = @"server-cert.pem";
- string fileKey = @"server-key.pem";
- StringBuilder dhparam = new StringBuilder("dh2048.pem");
-
- /* example of function used for setting logging */
- wolfssl.SetLogging(standard_log);
- wolfssl.Init();
-
- Console.WriteLine("Calling ctx Init from wolfSSL");
- ctx = wolfssl.CTX_new(wolfssl.usev23_server());
- if (ctx == IntPtr.Zero)
- {
- Console.WriteLine("Error in creating ctx structure");
- return;
- }
- Console.WriteLine("Finished init of ctx .... now load in cert and key");
-
- if (!File.Exists(fileCert) || !File.Exists(fileKey))
- {
- Console.WriteLine("Could not find cert or key file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- if (wolfssl.CTX_use_certificate_file(ctx, fileCert, wolfssl.SSL_FILETYPE_PEM) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error in setting cert file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- if (wolfssl.CTX_use_PrivateKey_file(ctx, fileKey, wolfssl.SSL_FILETYPE_PEM) != wolfssl.SUCCESS)
- {
- Console.WriteLine("Error in setting key file");
- wolfssl.CTX_free(ctx);
- return;
- }
-
- StringBuilder ciphers = new StringBuilder(new String(' ', 4096));
- wolfssl.get_ciphers(ciphers, 4096);
- Console.WriteLine("Ciphers : " + ciphers.ToString());
-
- short minDhKey = 128;
- wolfssl.CTX_SetMinDhKey_Sz(ctx, minDhKey);
- wolfssl.CTX_SetTmpDH_file(ctx, dhparam, wolfssl.SSL_FILETYPE_PEM);
-
- /* set up TCP socket */
- IPAddress ip = IPAddress.Parse("0.0.0.0"); /* bind to any */
- TcpListener tcp = new TcpListener(ip, 11111);
- tcp.Start();
-
- Console.WriteLine("Started TCP and waiting for a connection");
-
- while (true) {
- try
- {
- Socket fd = tcp.AcceptSocket();
- Console.WriteLine("Got client connection");
-
- /* Spin up thread for client */
- wolfSSL_TLS_ServerThread thread = new wolfSSL_TLS_ServerThread(ctx, fd);
- Thread thr = new Thread(new ThreadStart(thread.start_client));
- thr.Start();
- }
- catch(Exception ex)
- {
- Console.WriteLine("Server Exception " + ex.ToString());
- break;
- }
- }
-
- tcp.Stop();
- wolfssl.CTX_free(ctx);
- wolfssl.Cleanup();
- }
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/wolfSSL-TLS-ServerThreaded.csproj b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/wolfSSL-TLS-ServerThreaded.csproj
deleted file mode 100644
index bbbe57a4e..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL-TLS-ServerThreaded/wolfSSL-TLS-ServerThreaded.csproj
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{8ABD2E8F-AEE7-40ED-A966-900ACFAE555F}</ProjectGuid>
- <OutputType>Exe</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>wolfSSL_TLS_ServerThreaded</RootNamespace>
- <AssemblyName>wolfSSL-TLS-ServerThreaded</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <PublishUrl>publish\</PublishUrl>
- <Install>true</Install>
- <InstallFrom>Disk</InstallFrom>
- <UpdateEnabled>false</UpdateEnabled>
- <UpdateMode>Foreground</UpdateMode>
- <UpdateInterval>7</UpdateInterval>
- <UpdateIntervalUnits>Days</UpdateIntervalUnits>
- <UpdatePeriodically>false</UpdatePeriodically>
- <UpdateRequired>false</UpdateRequired>
- <MapFileExtensions>true</MapFileExtensions>
- <ApplicationRevision>0</ApplicationRevision>
- <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>false</IsWebBootstrapper>
- <UseApplicationTrust>false</UseApplicationTrust>
- <BootstrapperEnabled>true</BootstrapperEnabled>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>3</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup>
- <StartupObject />
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
- <DebugSymbols>true</DebugSymbols>
- <OutputPath>..\x64\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <WarningLevel>4</WarningLevel>
- <DebugType>full</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
- <OutputPath>..\x64\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <Optimize>true</Optimize>
- <DebugType>pdbonly</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- <Prefer32Bit>true</Prefer32Bit>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="Properties\Settings.Designer.cs">
- <AutoGen>True</AutoGen>
- <DesignTimeSharedInput>True</DesignTimeSharedInput>
- <DependentUpon>Settings.settings</DependentUpon>
- </Compile>
- <Compile Include="wolfSSL-TLS-ServerThreaded.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="App.config" />
- <None Include="Properties\Settings.settings">
- <Generator>SettingsSingleFileGenerator</Generator>
- <LastGenOutput>Settings.Designer.cs</LastGenOutput>
- </None>
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\wolfSSL_CSharp\wolfSSL_CSharp.csproj">
- <Project>{52609808-0418-46d3-8e17-141927a1a39a}</Project>
- <Name>wolfSSL_CSharp</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <BootstrapperPackage Include=".NETFramework,Version=v4.5">
- <Visible>False</Visible>
- <ProductName>Microsoft .NET Framework 4.5 %28x86 and x64%29</ProductName>
- <Install>true</Install>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
- <Visible>False</Visible>
- <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
- <Install>false</Install>
- </BootstrapperPackage>
- <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
- <Visible>False</Visible>
- <ProductName>.NET Framework 3.5 SP1</ProductName>
- <Install>false</Install>
- </BootstrapperPackage>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <PropertyGroup>
- <PreBuildEvent>
- </PreBuildEvent>
- </PropertyGroup>
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp.sln b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp.sln
deleted file mode 100644
index f3b4dc707..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp.sln
+++ /dev/null
@@ -1,173 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wolfSSL_CSharp", "wolfSSL_CSharp\wolfSSL_CSharp.csproj", "{52609808-0418-46D3-8E17-141927A1A39A}"
- ProjectSection(ProjectDependencies) = postProject
- {73973223-5EE8-41CA-8E88-1D60E89A237B} = {73973223-5EE8-41CA-8E88-1D60E89A237B}
- EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wolfSSL-TLS-Server", "wolfSSL-TLS-Server\wolfSSL-TLS-Server.csproj", "{8921AD35-4E62-4DAC-8FEE-8C9F8E57DDD2}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wolfSSL-TLS-PSK-Server", "wolfSSL-TLS-PSK-Server\wolfSSL-TLS-PSK-Server.csproj", "{030431C7-26AB-4447-815B-F27E88BE5D5B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wolfSSL-DTLS-Server", "wolfSSL-DTLS-Server\wolfSSL-DTLS-Server.csproj", "{730F047E-37A6-498F-A543-B6C98AA7B338}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wolfSSL-DTLS-PSK-Server", "wolfSSL-DTLS-PSK-Server\wolfSSL-DTLS-PSK-Server.csproj", "{77AEF1BE-4BE3-4837-8188-2A06E4D963F5}"
- ProjectSection(ProjectDependencies) = postProject
- {52609808-0418-46D3-8E17-141927A1A39A} = {52609808-0418-46D3-8E17-141927A1A39A}
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wolfSSL", "wolfSSL", "{252D09D0-D007-4AEB-9F7A-A74408039A8A}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wolfssl", "..\..\wolfssl.vcxproj", "{73973223-5EE8-41CA-8E88-1D60E89A237B}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsuite", "..\..\testsuite\testsuite.vcxproj", "{611E8971-46E0-4D0A-B5A1-632C3B00CB80}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wolfSSL-Example-IOCallbacks", "wolfSSL-Example-IOCallbacks\wolfSSL-Example-IOCallbacks.csproj", "{E2415718-0A15-48DB-A774-01FB0093B626}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wolfSSL-TLS-Client", "wolfSSL-TLS-Client\wolfSSL-TLS-Client.csproj", "{B9DF2972-38F6-4B42-B228-E3C1A47DF8E8}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wolfSSL-TLS-ServerThreaded", "wolfSSL-TLS-ServerThreaded\wolfSSL-TLS-ServerThreaded.csproj", "{8ABD2E8F-AEE7-40ED-A966-900ACFAE555F}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- DLL Debug|Any CPU = DLL Debug|Any CPU
- DLL Debug|Win32 = DLL Debug|Win32
- DLL Debug|x64 = DLL Debug|x64
- DLL Release|Any CPU = DLL Release|Any CPU
- DLL Release|Win32 = DLL Release|Win32
- DLL Release|x64 = DLL Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {52609808-0418-46D3-8E17-141927A1A39A}.DLL Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {52609808-0418-46D3-8E17-141927A1A39A}.DLL Debug|Any CPU.Build.0 = Debug|Any CPU
- {52609808-0418-46D3-8E17-141927A1A39A}.DLL Debug|Win32.ActiveCfg = Debug|Any CPU
- {52609808-0418-46D3-8E17-141927A1A39A}.DLL Debug|Win32.Build.0 = Debug|Any CPU
- {52609808-0418-46D3-8E17-141927A1A39A}.DLL Debug|x64.ActiveCfg = Debug|x64
- {52609808-0418-46D3-8E17-141927A1A39A}.DLL Debug|x64.Build.0 = Debug|x64
- {52609808-0418-46D3-8E17-141927A1A39A}.DLL Release|Any CPU.ActiveCfg = Release|Any CPU
- {52609808-0418-46D3-8E17-141927A1A39A}.DLL Release|Any CPU.Build.0 = Release|Any CPU
- {52609808-0418-46D3-8E17-141927A1A39A}.DLL Release|Win32.ActiveCfg = Release|Any CPU
- {52609808-0418-46D3-8E17-141927A1A39A}.DLL Release|Win32.Build.0 = Release|Any CPU
- {52609808-0418-46D3-8E17-141927A1A39A}.DLL Release|x64.ActiveCfg = Release|x64
- {52609808-0418-46D3-8E17-141927A1A39A}.DLL Release|x64.Build.0 = Release|x64
- {8921AD35-4E62-4DAC-8FEE-8C9F8E57DDD2}.DLL Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8921AD35-4E62-4DAC-8FEE-8C9F8E57DDD2}.DLL Debug|Any CPU.Build.0 = Debug|Any CPU
- {8921AD35-4E62-4DAC-8FEE-8C9F8E57DDD2}.DLL Debug|Win32.ActiveCfg = Debug|Any CPU
- {8921AD35-4E62-4DAC-8FEE-8C9F8E57DDD2}.DLL Debug|Win32.Build.0 = Debug|Any CPU
- {8921AD35-4E62-4DAC-8FEE-8C9F8E57DDD2}.DLL Debug|x64.ActiveCfg = Debug|x64
- {8921AD35-4E62-4DAC-8FEE-8C9F8E57DDD2}.DLL Debug|x64.Build.0 = Debug|x64
- {8921AD35-4E62-4DAC-8FEE-8C9F8E57DDD2}.DLL Release|Any CPU.ActiveCfg = Release|Any CPU
- {8921AD35-4E62-4DAC-8FEE-8C9F8E57DDD2}.DLL Release|Any CPU.Build.0 = Release|Any CPU
- {8921AD35-4E62-4DAC-8FEE-8C9F8E57DDD2}.DLL Release|Win32.ActiveCfg = Release|Any CPU
- {8921AD35-4E62-4DAC-8FEE-8C9F8E57DDD2}.DLL Release|Win32.Build.0 = Release|Any CPU
- {8921AD35-4E62-4DAC-8FEE-8C9F8E57DDD2}.DLL Release|x64.ActiveCfg = Release|x64
- {8921AD35-4E62-4DAC-8FEE-8C9F8E57DDD2}.DLL Release|x64.Build.0 = Release|x64
- {030431C7-26AB-4447-815B-F27E88BE5D5B}.DLL Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {030431C7-26AB-4447-815B-F27E88BE5D5B}.DLL Debug|Any CPU.Build.0 = Debug|Any CPU
- {030431C7-26AB-4447-815B-F27E88BE5D5B}.DLL Debug|Win32.ActiveCfg = Debug|Any CPU
- {030431C7-26AB-4447-815B-F27E88BE5D5B}.DLL Debug|Win32.Build.0 = Debug|Any CPU
- {030431C7-26AB-4447-815B-F27E88BE5D5B}.DLL Debug|x64.ActiveCfg = Debug|x64
- {030431C7-26AB-4447-815B-F27E88BE5D5B}.DLL Debug|x64.Build.0 = Debug|x64
- {030431C7-26AB-4447-815B-F27E88BE5D5B}.DLL Release|Any CPU.ActiveCfg = Release|Any CPU
- {030431C7-26AB-4447-815B-F27E88BE5D5B}.DLL Release|Any CPU.Build.0 = Release|Any CPU
- {030431C7-26AB-4447-815B-F27E88BE5D5B}.DLL Release|Win32.ActiveCfg = Release|Any CPU
- {030431C7-26AB-4447-815B-F27E88BE5D5B}.DLL Release|Win32.Build.0 = Release|Any CPU
- {030431C7-26AB-4447-815B-F27E88BE5D5B}.DLL Release|x64.ActiveCfg = Release|x64
- {030431C7-26AB-4447-815B-F27E88BE5D5B}.DLL Release|x64.Build.0 = Release|x64
- {730F047E-37A6-498F-A543-B6C98AA7B338}.DLL Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {730F047E-37A6-498F-A543-B6C98AA7B338}.DLL Debug|Any CPU.Build.0 = Debug|Any CPU
- {730F047E-37A6-498F-A543-B6C98AA7B338}.DLL Debug|Win32.ActiveCfg = Debug|Any CPU
- {730F047E-37A6-498F-A543-B6C98AA7B338}.DLL Debug|Win32.Build.0 = Debug|Any CPU
- {730F047E-37A6-498F-A543-B6C98AA7B338}.DLL Debug|x64.ActiveCfg = Debug|x64
- {730F047E-37A6-498F-A543-B6C98AA7B338}.DLL Debug|x64.Build.0 = Debug|x64
- {730F047E-37A6-498F-A543-B6C98AA7B338}.DLL Release|Any CPU.ActiveCfg = Release|Any CPU
- {730F047E-37A6-498F-A543-B6C98AA7B338}.DLL Release|Any CPU.Build.0 = Release|Any CPU
- {730F047E-37A6-498F-A543-B6C98AA7B338}.DLL Release|Win32.ActiveCfg = Release|Any CPU
- {730F047E-37A6-498F-A543-B6C98AA7B338}.DLL Release|Win32.Build.0 = Release|Any CPU
- {730F047E-37A6-498F-A543-B6C98AA7B338}.DLL Release|x64.ActiveCfg = Release|x64
- {730F047E-37A6-498F-A543-B6C98AA7B338}.DLL Release|x64.Build.0 = Release|x64
- {77AEF1BE-4BE3-4837-8188-2A06E4D963F5}.DLL Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {77AEF1BE-4BE3-4837-8188-2A06E4D963F5}.DLL Debug|Any CPU.Build.0 = Debug|Any CPU
- {77AEF1BE-4BE3-4837-8188-2A06E4D963F5}.DLL Debug|Win32.ActiveCfg = Debug|Any CPU
- {77AEF1BE-4BE3-4837-8188-2A06E4D963F5}.DLL Debug|Win32.Build.0 = Debug|Any CPU
- {77AEF1BE-4BE3-4837-8188-2A06E4D963F5}.DLL Debug|x64.ActiveCfg = Debug|x64
- {77AEF1BE-4BE3-4837-8188-2A06E4D963F5}.DLL Debug|x64.Build.0 = Debug|x64
- {77AEF1BE-4BE3-4837-8188-2A06E4D963F5}.DLL Release|Any CPU.ActiveCfg = Release|Any CPU
- {77AEF1BE-4BE3-4837-8188-2A06E4D963F5}.DLL Release|Any CPU.Build.0 = Release|Any CPU
- {77AEF1BE-4BE3-4837-8188-2A06E4D963F5}.DLL Release|Win32.ActiveCfg = Release|Any CPU
- {77AEF1BE-4BE3-4837-8188-2A06E4D963F5}.DLL Release|Win32.Build.0 = Release|Any CPU
- {77AEF1BE-4BE3-4837-8188-2A06E4D963F5}.DLL Release|x64.ActiveCfg = Release|x64
- {77AEF1BE-4BE3-4837-8188-2A06E4D963F5}.DLL Release|x64.Build.0 = Release|x64
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Debug|Any CPU.ActiveCfg = DLL Debug|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Debug|Any CPU.Build.0 = DLL Debug|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Debug|x64.Build.0 = DLL Debug|x64
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Release|Any CPU.ActiveCfg = DLL Release|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Release|Any CPU.Build.0 = DLL Release|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Release|Win32.Build.0 = DLL Release|Win32
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Release|x64.ActiveCfg = DLL Release|x64
- {73973223-5EE8-41CA-8E88-1D60E89A237B}.DLL Release|x64.Build.0 = DLL Release|x64
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Debug|Any CPU.ActiveCfg = DLL Debug|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Debug|Any CPU.Build.0 = DLL Debug|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Debug|Win32.Build.0 = DLL Debug|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Debug|x64.ActiveCfg = DLL Debug|x64
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Debug|x64.Build.0 = DLL Debug|x64
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Release|Any CPU.ActiveCfg = DLL Release|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Release|Any CPU.Build.0 = DLL Release|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Release|Win32.ActiveCfg = DLL Release|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Release|Win32.Build.0 = DLL Release|Win32
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Release|x64.ActiveCfg = DLL Release|x64
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80}.DLL Release|x64.Build.0 = DLL Release|x64
- {E2415718-0A15-48DB-A774-01FB0093B626}.DLL Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E2415718-0A15-48DB-A774-01FB0093B626}.DLL Debug|Any CPU.Build.0 = Debug|Any CPU
- {E2415718-0A15-48DB-A774-01FB0093B626}.DLL Debug|Win32.ActiveCfg = Debug|Any CPU
- {E2415718-0A15-48DB-A774-01FB0093B626}.DLL Debug|Win32.Build.0 = Debug|Any CPU
- {E2415718-0A15-48DB-A774-01FB0093B626}.DLL Debug|x64.ActiveCfg = Debug|x64
- {E2415718-0A15-48DB-A774-01FB0093B626}.DLL Debug|x64.Build.0 = Debug|x64
- {E2415718-0A15-48DB-A774-01FB0093B626}.DLL Release|Any CPU.ActiveCfg = Release|Any CPU
- {E2415718-0A15-48DB-A774-01FB0093B626}.DLL Release|Any CPU.Build.0 = Release|Any CPU
- {E2415718-0A15-48DB-A774-01FB0093B626}.DLL Release|Win32.ActiveCfg = Release|Any CPU
- {E2415718-0A15-48DB-A774-01FB0093B626}.DLL Release|Win32.Build.0 = Release|Any CPU
- {E2415718-0A15-48DB-A774-01FB0093B626}.DLL Release|x64.ActiveCfg = Release|x64
- {E2415718-0A15-48DB-A774-01FB0093B626}.DLL Release|x64.Build.0 = Release|x64
- {B9DF2972-38F6-4B42-B228-E3C1A47DF8E8}.DLL Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B9DF2972-38F6-4B42-B228-E3C1A47DF8E8}.DLL Debug|Any CPU.Build.0 = Debug|Any CPU
- {B9DF2972-38F6-4B42-B228-E3C1A47DF8E8}.DLL Debug|Win32.ActiveCfg = Debug|Any CPU
- {B9DF2972-38F6-4B42-B228-E3C1A47DF8E8}.DLL Debug|Win32.Build.0 = Debug|Any CPU
- {B9DF2972-38F6-4B42-B228-E3C1A47DF8E8}.DLL Debug|x64.ActiveCfg = Debug|x64
- {B9DF2972-38F6-4B42-B228-E3C1A47DF8E8}.DLL Debug|x64.Build.0 = Debug|x64
- {B9DF2972-38F6-4B42-B228-E3C1A47DF8E8}.DLL Release|Any CPU.ActiveCfg = Release|Any CPU
- {B9DF2972-38F6-4B42-B228-E3C1A47DF8E8}.DLL Release|Any CPU.Build.0 = Release|Any CPU
- {B9DF2972-38F6-4B42-B228-E3C1A47DF8E8}.DLL Release|Win32.ActiveCfg = Release|Any CPU
- {B9DF2972-38F6-4B42-B228-E3C1A47DF8E8}.DLL Release|Win32.Build.0 = Release|Any CPU
- {B9DF2972-38F6-4B42-B228-E3C1A47DF8E8}.DLL Release|x64.ActiveCfg = Release|x64
- {B9DF2972-38F6-4B42-B228-E3C1A47DF8E8}.DLL Release|x64.Build.0 = Release|x64
- {8ABD2E8F-AEE7-40ED-A966-900ACFAE555F}.DLL Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8ABD2E8F-AEE7-40ED-A966-900ACFAE555F}.DLL Debug|Any CPU.Build.0 = Debug|Any CPU
- {8ABD2E8F-AEE7-40ED-A966-900ACFAE555F}.DLL Debug|Win32.ActiveCfg = Debug|Any CPU
- {8ABD2E8F-AEE7-40ED-A966-900ACFAE555F}.DLL Debug|Win32.Build.0 = Debug|Any CPU
- {8ABD2E8F-AEE7-40ED-A966-900ACFAE555F}.DLL Debug|x64.ActiveCfg = Debug|x64
- {8ABD2E8F-AEE7-40ED-A966-900ACFAE555F}.DLL Debug|x64.Build.0 = Debug|x64
- {8ABD2E8F-AEE7-40ED-A966-900ACFAE555F}.DLL Release|Any CPU.ActiveCfg = Release|Any CPU
- {8ABD2E8F-AEE7-40ED-A966-900ACFAE555F}.DLL Release|Any CPU.Build.0 = Release|Any CPU
- {8ABD2E8F-AEE7-40ED-A966-900ACFAE555F}.DLL Release|Win32.ActiveCfg = Release|Any CPU
- {8ABD2E8F-AEE7-40ED-A966-900ACFAE555F}.DLL Release|Win32.Build.0 = Release|Any CPU
- {8ABD2E8F-AEE7-40ED-A966-900ACFAE555F}.DLL Release|x64.ActiveCfg = Release|x64
- {8ABD2E8F-AEE7-40ED-A966-900ACFAE555F}.DLL Release|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {73973223-5EE8-41CA-8E88-1D60E89A237B} = {252D09D0-D007-4AEB-9F7A-A74408039A8A}
- {611E8971-46E0-4D0A-B5A1-632C3B00CB80} = {252D09D0-D007-4AEB-9F7A-A74408039A8A}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {63D316F8-C4EE-449A-B9A6-FC673C4D5D31}
- EndGlobalSection
-EndGlobal
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/Properties/AssemblyInfo.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/Properties/AssemblyInfo.cs
deleted file mode 100644
index d34afd6b9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("wolfSSL.CSharp")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("wolfSSL")]
-[assembly: AssemblyProduct("wolfSSL.CSharp")]
-[assembly: AssemblyCopyright("Copyright wolfSSL 2020")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("b50b8d16-ff19-4ea4-8881-13cf972765db")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.1.0.0")]
-[assembly: AssemblyFileVersion("1.1.0.0")]
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/Properties/Resources.Designer.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/Properties/Resources.Designer.cs
deleted file mode 100644
index dd0327fd4..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/Properties/Resources.Designer.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.17929
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace wolfssl_wrapper.Properties {
- using System;
-
-
- /// <summary>
- /// A strongly-typed resource class, for looking up localized strings, etc.
- /// </summary>
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources() {
- }
-
- /// <summary>
- /// Returns the cached ResourceManager instance used by this class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager {
- get {
- if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("wolfSSL.CSharp.Properties.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- /// <summary>
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
- }
- set {
- resourceCulture = value;
- }
- }
- }
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/Properties/Resources.resx b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/Properties/Resources.resx
deleted file mode 100644
index 85c909092..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/Properties/Resources.resx
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 1.3
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">1.3</resheader>
- <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
- <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
- <data name="Name1">this is my long string</data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- [base64 mime encoded serialized .NET Framework object]
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- [base64 mime encoded string representing a byte array form of the .NET Framework object]
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
-
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>1.3</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
-</root> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/wolfSSL.cs b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/wolfSSL.cs
deleted file mode 100644
index 7acbe77ea..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/wolfSSL.cs
+++ /dev/null
@@ -1,1889 +0,0 @@
-/* wolfSSL.cs
- *
- * Copyright (C) 2006-2020 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
- */
-
-using System;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Threading;
-using System.IO;
-using System.Net;
-using System.Net.Sockets;
-
-namespace wolfSSL.CSharp {
- public class wolfssl
- {
- private const string wolfssl_dll = "wolfssl.dll";
-
- /* wait for 6 seconds default on TCP socket state poll if timeout not set */
- private const int WC_WAIT = 6000000;
-
- /********************************
- * Class for DTLS connections
- */
- /// <summary>
- /// Contains information regarding a DTLS connection having UdpClient udp and IPEndPoint ep.
- /// Used to keep memory alive.
- /// </summary>
- public class DTLS_con
- {
- public UdpClient udp;
- public IPEndPoint ep;
- }
-
-
- /********************************
- * Class for keeping ctx handles alive
- */
- [StructLayout(LayoutKind.Sequential)]
- private class ctx_handle
- {
- private GCHandle rec_cb;
- private GCHandle snd_cb;
- private GCHandle psk_cb;
- private IntPtr ctx;
-
- public void set_receive(GCHandle input)
- {
- this.rec_cb = input;
- }
- public GCHandle get_receive()
- {
- return this.rec_cb;
- }
-
- public void set_send(GCHandle input)
- {
- this.snd_cb = input;
- }
- public GCHandle get_send()
- {
- return this.snd_cb;
- }
-
- public void set_psk(GCHandle input)
- {
- this.psk_cb = input;
- }
- public GCHandle get_psk()
- {
- return this.psk_cb;
- }
-
- public void set_ctx(IntPtr input)
- {
- this.ctx = input;
- }
- public IntPtr get_ctx()
- {
- return this.ctx;
- }
-
- /// <summary>
- /// Called to free the pointers keeping handles alive
- /// </summary>
- public void free()
- {
- log(INFO_LOG, "freeing ctx handle");
- if (!Object.Equals(this.rec_cb, default(GCHandle)))
- {
- this.rec_cb.Free();
- }
- if (!Object.Equals(this.snd_cb, default(GCHandle)))
- {
- this.snd_cb.Free();
- }
- if (!Object.Equals(this.psk_cb, default(GCHandle)))
- {
- this.psk_cb.Free();
- }
- }
- }
-
- /********************************
- * Class for keeping ssl handle alive
- */
- [StructLayout(LayoutKind.Sequential)]
- private class ssl_handle
- {
- private GCHandle fd_pin;
- private GCHandle psk_cb;
- private IntPtr ssl;
-
- public void set_fd(GCHandle input)
- {
- this.fd_pin = input;
- }
- public GCHandle get_fd()
- {
- return this.fd_pin;
- }
-
- public void set_psk(GCHandle input)
- {
- this.psk_cb = input;
- }
- public GCHandle get_psk()
- {
- return this.psk_cb;
- }
-
- public void set_ssl(IntPtr input)
- {
- this.ssl = input;
- }
- public IntPtr get_ssl()
- {
- return this.ssl;
- }
- public void free()
- {
- log(INFO_LOG, "freeing ssl handle");
-
- if (!Object.Equals(this.fd_pin, default(GCHandle)))
- {
- this.fd_pin.Free();
- }
- if (!Object.Equals(this.psk_cb, default(GCHandle)))
- {
- this.psk_cb.Free();
- }
- }
- }
-
-
- /********************************
- * Init wolfSSL library
- */
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_Init();
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_Cleanup();
-
-
- /********************************
- * Methods of connection
- */
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfTLSv1_2_server_method();
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfTLSv1_3_server_method();
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfSSLv23_server_method();
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfTLSv1_2_client_method();
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfTLSv1_3_client_method();
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfSSLv23_client_method();
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfDTLSv1_2_server_method();
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfDTLSv1_2_client_method();
-
-
- /********************************
- * Call backs
- */
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- public delegate int CallbackIORecv_delegate(IntPtr ssl, IntPtr buf, int sz, IntPtr ctx);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_CTX_SetIORecv(IntPtr ctx, CallbackIORecv_delegate recv);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_SetIOReadCtx(IntPtr ssl, IntPtr rctx);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfSSL_GetIOReadCtx(IntPtr ssl);
-
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- public delegate int CallbackIOSend_delegate(IntPtr ssl, IntPtr buf, int sz, IntPtr ctx);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_CTX_SetIOSend(IntPtr ctx, CallbackIOSend_delegate send);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_SetIOWriteCtx(IntPtr ssl, IntPtr wctx);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfSSL_GetIOWriteCtx(IntPtr ssl);
-
-
- /********************************
- * CTX structure
- */
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfSSL_CTX_new(IntPtr method);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_CTX_use_certificate_file(IntPtr ctx, string file, int type);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_CTX_load_verify_locations(IntPtr ctx, string file, string path);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_CTX_use_PrivateKey_file(IntPtr ctx, string file, int type);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static void wolfSSL_CTX_free(IntPtr ctx);
-
-
-
- /********************************
- * PSK
- */
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- public delegate uint psk_delegate(IntPtr ssl, string identity, IntPtr key, uint max_sz);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- public delegate uint psk_client_delegate(IntPtr ssl, string hint, IntPtr identity, uint id_max_len, IntPtr key, uint max_sz);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static void wolfSSL_set_psk_server_callback(IntPtr ssl, psk_delegate psk_cb);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static void wolfSSL_CTX_set_psk_server_callback(IntPtr ctx, psk_delegate psk_cb);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static void wolfSSL_CTX_set_psk_client_callback(IntPtr ctx, psk_client_delegate psk_cb);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_CTX_use_psk_identity_hint(IntPtr ctx, StringBuilder identity);
-
-
- /********************************
- * SSL Structure
- */
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfSSL_new(IntPtr ctx);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_accept(IntPtr ssl);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_connect(IntPtr ssl);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_read(IntPtr ssl, IntPtr buf, int sz);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_write(IntPtr ssl, IntPtr buf, int sz);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_shutdown(IntPtr ssl);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static void wolfSSL_free(IntPtr ssl);
-
-
- /********************************
- * Cipher lists
- */
- /* only supports full name from cipher_name[] delimited by : */
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_CTX_set_cipher_list(IntPtr ctx, StringBuilder ciphers);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_set_cipher_list(IntPtr ssl, StringBuilder ciphers);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_get_ciphers(StringBuilder ciphers, int sz);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfSSL_get_cipher(IntPtr ssl);
- [DllImport(wolfssl_dll, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfSSL_CIPHER_get_name(IntPtr cipher);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfSSL_get_current_cipher(IntPtr ssl);
- [DllImport(wolfssl_dll, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfSSL_get_version(IntPtr ssl);
- [DllImport(wolfssl_dll, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
- private extern static IntPtr wolfSSL_get_cipher_list(IntPtr ssl);
-
-
- /********************************
- * Error logging
- */
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl, CharSet=CharSet.Ansi)]
- private extern static IntPtr wolfSSL_ERR_error_string(uint err, StringBuilder errOut);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_get_error(IntPtr ssl, int err);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- public delegate void loggingCb(int lvl, StringBuilder msg);
- private static loggingCb internal_log;
-
-
- /********************************
- * DH
- */
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_CTX_SetMinDhKey_Sz(IntPtr ctx, short size);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_SetTmpDH_file(IntPtr ssl, StringBuilder dhParam, int type);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static int wolfSSL_CTX_SetTmpDH_file(IntPtr ctx, StringBuilder dhParam, int type);
-
-
- /********************************
- * Verify Callback
- */
- public delegate int CallbackVerify_delegate(int ret, IntPtr x509_ctx);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static void wolfSSL_CTX_set_verify(IntPtr ctx, int mode, CallbackVerify_delegate vc);
- [DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
- private extern static void wolfSSL_set_verify(IntPtr ssl, int mode, CallbackVerify_delegate vc);
-
-
- /********************************
- * Enum types from wolfSSL library
- */
- public static readonly int SSL_FILETYPE_PEM = 1;
- public static readonly int SSL_FILETYPE_ASN1= 2;
- public static readonly int SSL_FILETYPE_RAW = 3;
-
- public static readonly int SSL_VERIFY_NONE = 0;
- public static readonly int SSL_VERIFY_PEER = 1;
- public static readonly int SSL_VERIFY_FAIL_IF_NO_PEER_CERT = 2;
- public static readonly int SSL_VERIFY_CLIENT_ONCE = 4;
- public static readonly int SSL_VERIFY_FAIL_EXCEPT_PSK = 8;
-
- public static readonly int CBIO_ERR_GENERAL = -1;
- public static readonly int CBIO_ERR_WANT_READ = -2;
- public static readonly int CBIO_ERR_WANT_WRITE = -2;
- public static readonly int CBIO_ERR_CONN_RST = -3;
- public static readonly int CBIO_ERR_ISR = -4;
- public static readonly int CBIO_ERR_CONN_CLOSE = -5;
- public static readonly int CBIO_ERR_TIMEOUT = -6;
-
- public static readonly int ERROR_LOG = 0;
- public static readonly int INFO_LOG = 1;
- public static readonly int ENTER_LOG = 2;
- public static readonly int LEAVE_LOG = 3;
- public static readonly int OTHER_LOG = 4;
-
- public static readonly int SUCCESS = 1;
- public static readonly int FAILURE = 0;
-
-
- private static IntPtr unwrap_ctx(IntPtr ctx)
- {
- try {
- GCHandle gch = GCHandle.FromIntPtr(ctx);
- ctx_handle handles = (ctx_handle)gch.Target;
- return handles.get_ctx();
- } catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl ctx pointer is incorrect " + e);
- return IntPtr.Zero;
- }
- }
- private static IntPtr unwrap_ssl(IntPtr ssl)
- {
- try {
- GCHandle gch = GCHandle.FromIntPtr(ssl);
- ssl_handle handles = (ssl_handle)gch.Target;
- return handles.get_ssl();
- } catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl pointer is incorrect " + e);
- return IntPtr.Zero;
- }
- }
-
-
- /// <summary>
- /// Call back to allow receiving TLS information
- /// </summary>
- /// <param name="ssl">structure of ssl passed in</param>
- /// <param name="buf">buffer to contain received msg</param>
- /// <param name="sz">size of buffer</param>
- /// <param name="ctx">optional information passed in</param>
- /// <returns>size of message received</returns>
- private static int wolfSSLCbIORecv(IntPtr ssl, IntPtr buf, int sz, IntPtr ctx)
- {
- if (sz <= 0)
- {
- log(ERROR_LOG, "wolfssl receive error, size less than 0");
- return wolfssl.CBIO_ERR_GENERAL;
- }
-
- int amtRecv = 0;
-
- try
- {
- System.Runtime.InteropServices.GCHandle gch;
- gch = GCHandle.FromIntPtr(ctx);
- Socket con = (System.Net.Sockets.Socket)gch.Target;
- Byte[] msg = new Byte[sz];
- amtRecv = con.Receive(msg, msg.Length, 0);
- if (amtRecv == 0)
- {
- /* No data received so check for a response to see if connection is still open */
- if (con.Poll((con.ReceiveTimeout > 0) ? con.ReceiveTimeout : WC_WAIT, SelectMode.SelectRead))
- {
- log(ERROR_LOG, "socket connection issue, suspected connection termination.");
- return wolfssl.CBIO_ERR_CONN_CLOSE;
- }
- }
- Marshal.Copy(msg, 0, buf, sz);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "Error in receive " + e.ToString());
- return wolfssl.CBIO_ERR_CONN_CLOSE;
- }
-
- return amtRecv;
- }
-
-
- /// <summary>
- /// Call back used for sending TLS information
- /// </summary>
- /// <param name="ssl">pointer to ssl struct</param>
- /// <param name="buf">buffer containing information to send</param>
- /// <param name="sz">size of buffer to send</param>
- /// <param name="ctx">optional information</param>
- /// <returns>amount of information sent</returns>
- private static int wolfSSLCbIOSend(IntPtr ssl, IntPtr buf, int sz, IntPtr ctx)
- {
- if (sz <= 0)
- {
- log(ERROR_LOG, "wolfssl send error, size less than 0");
- return wolfssl.CBIO_ERR_GENERAL;
- }
-
- try
- {
- System.Runtime.InteropServices.GCHandle gch;
- gch = GCHandle.FromIntPtr(ctx);
-
- Socket con = (System.Net.Sockets.Socket)gch.Target;
- Byte[] msg = new Byte[sz];
- Marshal.Copy(buf, msg, 0, sz);
- if (con.Send(msg, 0, msg.Length, SocketFlags.None) == 0 && sz !=0)
- {
- /* no data sent and msg size is larger then 0, check for lost connection */
- if (con.Poll((con.SendTimeout > 0) ? con.SendTimeout : WC_WAIT, SelectMode.SelectWrite))
- {
- log(ERROR_LOG, "socket connection issue, suspect connection termination");
- return wolfssl.CBIO_ERR_CONN_CLOSE;
- }
- }
- return sz;
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "socket connection issue "+ e.ToString());
- return wolfssl.CBIO_ERR_CONN_CLOSE;
- }
- }
-
-
- /// <summary>
- /// Call back used for sending DTLS information
- /// </summary>
- /// <param name="ssl">pointer to ssl struct</param>
- /// <param name="buf">buffer containing information to send</param>
- /// <param name="sz">size of buffer to send</param>
- /// <param name="ctx">optional information</param>
- /// <returns>amount of information sent</returns>
- private static int wolfSSL_dtlsCbIOSend(IntPtr ssl, IntPtr buf, int sz, IntPtr ctx)
- {
- if (sz <= 0)
- {
- log(ERROR_LOG, "wolfssl dtls send error, size less than 0");
- return wolfssl.CBIO_ERR_GENERAL;
- }
-
- try
- {
- System.Runtime.InteropServices.GCHandle gch;
- gch = GCHandle.FromIntPtr(ctx);
-
- DTLS_con con = (DTLS_con)gch.Target;
-
- Byte[] msg = new Byte[sz];
- Marshal.Copy(buf, msg, 0, sz);
- con.udp.Send(msg, msg.Length, con.ep);
- return msg.Length;
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "socket connection issue " + e.ToString());
- return wolfssl.CBIO_ERR_CONN_CLOSE;
- }
- }
-
-
- /// <summary>
- /// Call back to allow receiving DTLS information
- /// </summary>
- /// <param name="ssl">structure of ssl passed in</param>
- /// <param name="buf">buffer to contain received msg</param>
- /// <param name="sz">size of buffer</param>
- /// <param name="ctx">optional information passed in</param>
- /// <returns>size of message received</returns>
- private static int wolfSSL_dtlsCbIORecv(IntPtr ssl, IntPtr buf, int sz, IntPtr ctx)
- {
- if (sz <= 0)
- {
- log(ERROR_LOG, "wolfssl dtls receive error, size less than 0");
- return wolfssl.CBIO_ERR_GENERAL;
- }
-
- try
- {
- System.Runtime.InteropServices.GCHandle gch;
- gch = GCHandle.FromIntPtr(ctx);
- DTLS_con con = (DTLS_con)gch.Target;
-
- Byte[] msg = con.udp.Receive(ref con.ep);
- if (msg.Length > sz)
- {
- log(ERROR_LOG, "wolfssl DTLS packet received was larger than buffer");
- return wolfssl.CBIO_ERR_GENERAL;
- }
-
- Marshal.Copy(msg, 0, buf, msg.Length);
- return msg.Length;
- }
- catch (Exception e)
- {
- /* issue with receive or size of buffer */
- log(ERROR_LOG, "socket read issue "+ e.ToString());
- return wolfssl.CBIO_ERR_CONN_CLOSE;
- }
- }
-
-
- /// <summary>
- /// Create a new ssl structure
- /// </summary>
- /// <param name="ctx">structure to create ssl structure from</param>
- /// <returns>pointer to ssl structure</returns>
- public static IntPtr new_ssl(IntPtr ctx)
- {
- if (ctx == IntPtr.Zero)
- return IntPtr.Zero;
-
- try
- {
- ssl_handle io;
- IntPtr local_ctx = unwrap_ctx(ctx);
- if (local_ctx == IntPtr.Zero)
- {
- log(ERROR_LOG, "new_ssl ctx unwrap error");
- return IntPtr.Zero;
- }
-
- io = new ssl_handle();
- io.set_ssl(wolfSSL_new(local_ctx));
-
- /* check if null */
- if (io.get_ssl() == IntPtr.Zero)
- {
- return IntPtr.Zero;
- }
-
- /* keep memory pinned to be able to reference by address */
- return GCHandle.ToIntPtr(GCHandle.Alloc(io, GCHandleType.Pinned));
- }
- catch (Exception e)
- {
- log(ERROR_LOG, e.ToString());
- return IntPtr.Zero;
- }
- }
-
-
- /// <summary>
- /// Used for a server to accept a connection
- /// </summary>
- /// <param name="ssl">structure containing info for connection</param>
- /// <returns>1 on success</returns>
- public static int accept(IntPtr ssl)
- {
- if (ssl == IntPtr.Zero)
- return FAILURE;
- try
- {
- IntPtr sslCtx = unwrap_ssl(ssl);
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "accept ssl unwrap error");
- return FAILURE;
- }
-
- return wolfSSL_accept(sslCtx);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "accept error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Used for a client to connect
- /// </summary>
- /// <param name="ssl">structure containing connection info</param>
- /// <returns>1 on success</returns>
- public static int connect(IntPtr ssl)
- {
- if (ssl == IntPtr.Zero)
- return FAILURE;
- try
- {
- IntPtr sslCtx = unwrap_ssl(ssl);
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "connect ssl unwrap error");
- return FAILURE;
- }
-
- return wolfSSL_connect(sslCtx);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "connect error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Read message from secure connection
- /// </summary>
- /// <param name="ssl">structure containing info about connection</param>
- /// <param name="buf">object to hold incoming message (Unicode format)</param>
- /// <param name="sz">size of available memory in buf</param>
- /// <returns>amount of data read on success</returns>
- public static int read(IntPtr ssl, StringBuilder buf, int sz)
- {
- if (ssl == IntPtr.Zero)
- return FAILURE;
- try
- {
- IntPtr sslCtx = unwrap_ssl(ssl);
- IntPtr data;
- int ret;
- byte[] msg;
-
- buf.Clear(); /* Clear incomming buffer */
-
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "read ssl unwrap error");
- return FAILURE;
- }
- data = Marshal.AllocHGlobal(sz);
-
- ret = wolfSSL_read(sslCtx, data, sz);
-
- if (ret >= 0)
- {
- /* Get data that was sent across and store it using a literal read of
- * the conversion from bytes to character. Takes care of if
- * a null terminator is part of the message read.
- */
- msg = new byte[ret];
- Marshal.Copy(data, msg, 0, ret);
- for (int i = 0; i < ret; i++)
- {
- buf.Append(@Convert.ToChar(msg[i]));
- }
- }
- Marshal.FreeHGlobal(data);
-
- return ret;
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl read error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Read message from secure connection using a byte array
- /// </summary>
- /// <param name="ssl">structure containing info about connection</param>
- /// <param name="buf">object to hold incoming message (raw bytes)</param>
- /// <param name="sz">size of available memory in buf</param>
- /// <returns>amount of data read on success</returns>
- public static int read(IntPtr ssl, byte[] buf, int sz)
- {
- if (ssl == IntPtr.Zero)
- return FAILURE;
- try
- {
- IntPtr sslCtx = unwrap_ssl(ssl);
- IntPtr data;
- int ret;
-
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "read ssl unwrap error");
- return FAILURE;
- }
- data = Marshal.AllocHGlobal(sz);
-
- ret = wolfSSL_read(sslCtx, data, sz);
-
- if (ret >= 0)
- {
- Marshal.Copy(data, buf, 0, ret);
- }
- Marshal.FreeHGlobal(data);
-
- return ret;
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl read error " + e.ToString());
- return FAILURE;
- }
- }
-
-
-
- /// <summary>
- /// Write message to secure connection
- /// </summary>
- /// <param name="ssl">structure containing connection info</param>
- /// <param name="buf">message to send</param>
- /// <param name="sz">size of the message</param>
- /// <returns>amount sent on success</returns>
- public static int write(IntPtr ssl, StringBuilder buf, int sz)
- {
- if (ssl == IntPtr.Zero)
- return FAILURE;
- try
- {
- IntPtr sslCtx = unwrap_ssl(ssl);
- IntPtr data;
- int ret;
-
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "write ssl unwrap error");
- return FAILURE;
- }
-
- data = Marshal.AllocHGlobal(sz);
- Marshal.Copy(System.Text.Encoding.Default.GetBytes(buf.ToString()), 0,
- data, System.Text.Encoding.Default.GetByteCount(buf.ToString()));
- ret = wolfSSL_write(sslCtx, data, sz);
- Marshal.FreeHGlobal(data);
- return ret;
-
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl write error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Write message to secure connection
- /// </summary>
- /// <param name="ssl">structure containing connection info</param>
- /// <param name="buf">message to send</param>
- /// <param name="sz">size of the message</param>
- /// <returns>amount sent on success</returns>
- public static int write(IntPtr ssl, byte[] buf, int sz)
- {
- if (ssl == IntPtr.Zero)
- return FAILURE;
- try
- {
- IntPtr sslCtx = unwrap_ssl(ssl);
- IntPtr data;
- int ret;
-
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "write ssl unwrap error");
- return FAILURE;
- }
- data = Marshal.AllocHGlobal(sz);
- Marshal.Copy(buf, 0, data, sz);
- ret = wolfSSL_write(sslCtx, data, sz);
- Marshal.FreeHGlobal(data);
- return ret;
-
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl write error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Free information stored in ssl struct
- /// </summary>
- /// <param name="ssl">pointer to ssl struct to free</param>
- public static void free(IntPtr ssl)
- {
- try
- {
- IntPtr sslCtx;
- GCHandle gch = GCHandle.FromIntPtr(ssl);
- ssl_handle handles = (ssl_handle)gch.Target;
-
- sslCtx = handles.get_ssl();
- wolfSSL_free(sslCtx);
- handles.free();
- gch.Free();
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl free error " + e.ToString());
- }
- }
-
-
- /// <summary>
- /// Shutdown a connection
- /// </summary>
- /// <param name="ssl">pointer to ssl struct to close connection of</param>
- /// <returns>1 on success</returns>
- public static int shutdown(IntPtr ssl)
- {
- if (ssl == IntPtr.Zero)
- return FAILURE;
- try
- {
- IntPtr sslCtx = unwrap_ssl(ssl);
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "shutdown ssl unwrap error");
- return FAILURE;
- }
-
- return wolfSSL_shutdown(sslCtx);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl shutdwon error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Optional, can be used to set a custom receive function
- /// </summary>
- /// <param name="ctx">structure to set receive function in</param>
- /// <param name="func">function to use when reading socket</param>
- public static void SetIORecv(IntPtr ctx, CallbackIORecv_delegate func)
- {
- try
- {
- GCHandle gch = GCHandle.FromIntPtr(ctx);
- ctx_handle handles = (ctx_handle)gch.Target;
-
- /* check if already stored handle needs freed */
- gch = handles.get_receive();
- if (!Object.Equals(gch, default(GCHandle)))
- {
- gch.Free();
- }
-
- /* keep new function alive */
- handles.set_receive(GCHandle.Alloc(func));
-
- wolfSSL_CTX_SetIORecv(handles.get_ctx(), func);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl setIORecv error " + e.ToString());
- }
- }
-
-
- /// <summary>
- /// Optional, can be used to set a custom send function
- /// </summary>
- /// <param name="ctx">structure to set function in</param>
- /// <param name="func">function to use when sending data</param>
- public static void SetIOSend(IntPtr ctx, CallbackIOSend_delegate func)
- {
- try
- {
- GCHandle gch = GCHandle.FromIntPtr(ctx);
- ctx_handle handles = (ctx_handle)gch.Target;
-
- /* check if already stored handle needs freed */
- gch = handles.get_send();
- if (!Object.Equals(gch, default(GCHandle)))
- {
- gch.Free();
- }
-
- /* keep new function alive */
- handles.set_send(GCHandle.Alloc(func));
-
- wolfSSL_CTX_SetIOSend(handles.get_ctx(), func);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl setIOSend error " + e.ToString());
- }
- }
-
-
- /// <summary>
- /// Create a new CTX structure
- /// </summary>
- /// <param name="method">method to use such as TLSv1.2</param>
- /// <returns>pointer to CTX structure</returns>
- public static IntPtr CTX_new(IntPtr method)
- {
- try
- {
- IntPtr ctx = wolfSSL_CTX_new(method);
- if (ctx == IntPtr.Zero)
- return ctx;
-
- ctx_handle io = new ctx_handle();
- io.set_ctx(ctx);
-
- CallbackIORecv_delegate recv = new CallbackIORecv_delegate(wolfssl.wolfSSLCbIORecv);
- io.set_receive(GCHandle.Alloc(recv));
- wolfSSL_CTX_SetIORecv(ctx, recv);
-
- CallbackIOSend_delegate send = new CallbackIOSend_delegate(wolfssl.wolfSSLCbIOSend);
- io.set_send(GCHandle.Alloc(send));
- wolfSSL_CTX_SetIOSend(ctx, send);
-
- /* keep memory pinned */
- return GCHandle.ToIntPtr(GCHandle.Alloc(io, GCHandleType.Pinned));
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "ctx_new error " + e.ToString());
- return IntPtr.Zero;
- }
- }
-
-
- /// <summary>
- /// Create a new CTX structure for a DTLS connection
- /// </summary>
- /// <param name="method">Method to use in connection ie DTLSv1.2</param>
- /// <returns></returns>
- public static IntPtr CTX_dtls_new(IntPtr method)
- {
- try
- {
- IntPtr ctx = wolfSSL_CTX_new(method);
- if (ctx == IntPtr.Zero)
- return ctx;
-
- ctx_handle io = new ctx_handle();
- io.set_ctx(ctx);
-
- CallbackIORecv_delegate recv = new CallbackIORecv_delegate(wolfssl.wolfSSL_dtlsCbIORecv);
- io.set_receive(GCHandle.Alloc(recv));
- wolfSSL_CTX_SetIORecv(ctx, recv);
-
- CallbackIOSend_delegate send = new CallbackIOSend_delegate(wolfssl.wolfSSL_dtlsCbIOSend);
- io.set_send(GCHandle.Alloc(send));
- wolfSSL_CTX_SetIOSend(ctx, send);
-
- /* keep memory pinned */
- return GCHandle.ToIntPtr(GCHandle.Alloc(io, GCHandleType.Pinned));
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "ctx_dtls_new error " + e.ToString());
- return IntPtr.Zero;
- }
- }
-
-
- /// <summary>
- /// Free information used in CTX structure
- /// </summary>
- /// <param name="ctx">structure to free</param>
- public static void CTX_free(IntPtr ctx)
- {
- try
- {
- GCHandle gch = GCHandle.FromIntPtr(ctx);
- ctx_handle handles = (ctx_handle)gch.Target;
- wolfSSL_CTX_free(handles.get_ctx());
- handles.free();
- gch.Free();
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl ctx free error " + e.ToString());
- }
- }
-
-
- /// <summary>
- /// Set identity hint to use
- /// </summary>
- /// <param name="ctx">pointer to structure of ctx to set hint in</param>
- /// <param name="hint">hint to use</param>
- /// <returns>1 on success</returns>
- public static int CTX_use_psk_identity_hint(IntPtr ctx, StringBuilder hint)
- {
- try
- {
- IntPtr local_ctx = unwrap_ctx(ctx);
- if (local_ctx == IntPtr.Zero)
- {
- log(ERROR_LOG, "CTX use psk identity hint unwrap error");
- return FAILURE;
- }
-
- return wolfSSL_CTX_use_psk_identity_hint(local_ctx, hint);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl psk identity hint error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Set the function to use for PSK connections
- /// </summary>
- /// <param name="ctx">pointer to CTX that the function is set in</param>
- /// <param name="psk_cb">PSK function to use</param>
- public static void CTX_set_psk_server_callback(IntPtr ctx, psk_delegate psk_cb)
- {
- try
- {
- GCHandle gch = GCHandle.FromIntPtr(ctx);
- ctx_handle handles = (ctx_handle)gch.Target;
-
- handles.set_psk(GCHandle.Alloc(psk_cb));
- wolfSSL_CTX_set_psk_server_callback(handles.get_ctx(), psk_cb);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl psk server callback error " + e.ToString());
- }
- }
-
-
- /// <summary>
- /// Set the function to use for PSK connections
- /// </summary>
- /// <param name="ctx">pointer to CTX that the function is set in</param>
- /// <param name="psk_cb">PSK function to use</param>
- public static void CTX_set_psk_client_callback(IntPtr ctx, psk_client_delegate psk_cb)
- {
- try
- {
- GCHandle gch = GCHandle.FromIntPtr(ctx);
- ctx_handle handles = (ctx_handle)gch.Target;
-
- handles.set_psk(GCHandle.Alloc(psk_cb));
- wolfSSL_CTX_set_psk_client_callback(handles.get_ctx(), psk_cb);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl psk client callback error " + e.ToString());
- }
- }
-
-
- /// <summary>
- /// Set the function to use for PSK connections on a single TLS/DTLS connection
- /// </summary>
- /// <param name="ctx">pointer to SSL that the function is set in</param>
- /// <param name="psk_cb">PSK function to use</param>
- public static void set_psk_server_callback(IntPtr ssl, psk_delegate psk_cb)
- {
- try
- {
- GCHandle gch = GCHandle.FromIntPtr(ssl);
- ssl_handle handles = (ssl_handle)gch.Target;
-
- handles.set_psk(GCHandle.Alloc(psk_cb));
- wolfSSL_set_psk_server_callback(handles.get_ssl(), psk_cb);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl psk server callback error " + e.ToString());
- }
- }
-
-
- /// <summary>
- /// Set Socket for TLS connection
- /// </summary>
- /// <param name="ssl">structure to set Socket in</param>
- /// <param name="fd">Socket to use</param>
- /// <returns>1 on success</returns>
- public static int set_fd(IntPtr ssl, Socket fd)
- {
- /* sanity check on inputs */
- if (ssl == IntPtr.Zero)
- {
- return FAILURE;
- }
-
- try
- {
- if (!fd.Equals(null))
- {
- GCHandle gch = GCHandle.FromIntPtr(ssl);
- ssl_handle handles = (ssl_handle)gch.Target;
- IntPtr sslCtx = handles.get_ssl();
- IntPtr ptr;
- GCHandle fd_pin = GCHandle.Alloc(fd);
-
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "wolfssl error setting up fd!!");
- return FAILURE;
- }
-
- handles.set_fd(fd_pin);
- ptr = GCHandle.ToIntPtr(fd_pin);
- wolfSSL_SetIOWriteCtx(sslCtx, ptr); //pass along the socket for writing to
- wolfSSL_SetIOReadCtx(sslCtx, ptr); //pass along the socket for reading from
-
- return SUCCESS;
- }
-
- return FAILURE;
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "Error setting up fd!! " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Get socket of a TLS connection
- /// </summary>
- /// <param name="ssl">structure to get socket from</param>
- /// <returns>Socket object used for connection</returns>
- public static Socket get_fd(IntPtr ssl)
- {
- try
- {
- IntPtr ptr;
- IntPtr sslCtx = unwrap_ssl(ssl);
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "wolfssl get_fd error");
- return null;
- }
-
- ptr = wolfSSL_GetIOReadCtx(sslCtx);
- if (ptr != IntPtr.Zero)
- {
- GCHandle gch = GCHandle.FromIntPtr(ptr);
- return (System.Net.Sockets.Socket)gch.Target;
- }
- return null;
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl get_fd error " + e.ToString());
- return null;
- }
- }
-
-
-
- /// <summary>
- /// Set information needed to send and receive a DTLS connection
- /// </summary>
- /// <param name="ssl">structure to set information in</param>
- /// <param name="udp">UDP object to send and receive</param>
- /// <param name="ep">End point of connection</param>
- /// <returns>1 on success</returns>
- public static int set_dtls_fd(IntPtr ssl, UdpClient udp, IPEndPoint ep)
- {
- /* sanity check on inputs */
- if (ssl == IntPtr.Zero)
- {
- return FAILURE;
- }
-
- try
- {
- if (!udp.Equals(null) && !ep.Equals(null))
- {
- IntPtr ptr;
- DTLS_con con;
- GCHandle gch = GCHandle.FromIntPtr(ssl);
- ssl_handle handles = (ssl_handle)gch.Target;
- GCHandle fd_pin;
-
- con = new DTLS_con();
- con.udp = udp;
- con.ep = ep;
- fd_pin = GCHandle.Alloc(con);
- handles.set_fd(fd_pin);
- ptr = GCHandle.ToIntPtr(fd_pin);
- wolfSSL_SetIOWriteCtx(handles.get_ssl(), ptr); //pass along the socket for writing to
- wolfSSL_SetIOReadCtx(handles.get_ssl(), ptr); //pass along the socket for reading from
-
- return SUCCESS;
- }
- return FAILURE;
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "Error setting up fd!! " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Get the pointer to DTLS_con class used for connection
- /// </summary>
- /// <param name="ssl">structure to get connection from</param>
- /// <returns>DTLS_con object</returns>
- public static DTLS_con get_dtls_fd(IntPtr ssl)
- {
- try
- {
- IntPtr ptr;
- IntPtr sslCtx = unwrap_ssl(ssl);
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "wolfssl get_dtls_fd error");
- return null;
- }
-
- ptr = wolfSSL_GetIOReadCtx(sslCtx);
- if (ptr != IntPtr.Zero)
- {
- GCHandle gch = GCHandle.FromIntPtr(ptr);
- return (DTLS_con)gch.Target;
- }
- return null;
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl get_dtls_fd error " + e.ToString());
- return null;
- }
- }
-
-
- /// <summary>
- /// Get available cipher suites
- /// </summary>
- /// <param name="list">list to fill with cipher suite names</param>
- /// <param name="sz">size of list available to fill</param>
- /// <returns>1 on success</returns>
- public static int get_ciphers(StringBuilder list, int sz)
- {
- try
- {
- return wolfSSL_get_ciphers(list, sz);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl get_ciphers error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Initialize wolfSSL library
- /// </summary>
- /// <returns>1 on success</returns>
- public static int Init()
- {
- try
- {
- return wolfSSL_Init();
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl init error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Clean up wolfSSL library memory
- /// </summary>
- /// <returns>1 on success</returns>
- public static int Cleanup()
- {
- try
- {
- return wolfSSL_Cleanup();
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl cleanup error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Set up TLS version 1.2 method
- /// </summary>
- /// <returns>pointer to TLSv1.2 method</returns>
- public static IntPtr useTLSv1_2_server()
- {
- try
- {
- return wolfTLSv1_2_server_method();
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl error " + e.ToString());
- return IntPtr.Zero;
- }
- }
-
- /// <summary>
- /// Set up TLS version 1.3 method
- /// </summary>
- /// <returns>pointer to TLSv1.3 method</returns>
- public static IntPtr useTLSv1_3_server()
- {
- try
- {
- return wolfTLSv1_3_server_method();
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl error " + e.ToString());
- return IntPtr.Zero;
- }
- }
-
-
- /// <summary>
- /// Use any TLS version
- /// </summary>
- /// <returns>pointer to method</returns>
- public static IntPtr usev23_server()
- {
- try
- {
- return wolfSSLv23_server_method();
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl error " + e.ToString());
- return IntPtr.Zero;
- }
- }
-
-
- /// <summary>
- /// Set up TLS version 1.2 method
- /// </summary>
- /// <returns>pointer to TLSv1.2 method</returns>
- public static IntPtr useTLSv1_2_client()
- {
- try
- {
- return wolfTLSv1_2_client_method();
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl error " + e.ToString());
- return IntPtr.Zero;
- }
- }
-
- /// <summary>
- /// Set up TLS version 1.3 method
- /// </summary>
- /// <returns>pointer to TLSv1.3 method</returns>
- public static IntPtr useTLSv1_3_client()
- {
- try
- {
- return wolfTLSv1_3_client_method();
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl error " + e.ToString());
- return IntPtr.Zero;
- }
- }
-
- /// <summary>
- /// Use any TLS version
- /// </summary>
- /// <returns>pointer to method</returns>
- public static IntPtr usev23_client()
- {
- try
- {
- return wolfSSLv23_client_method();
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl error " + e.ToString());
- return IntPtr.Zero;
- }
- }
-
-
- /// <summary>
- /// Set up DTLS version 1.2
- /// </summary>
- /// <returns>pointer to DTLSv1.2 method</returns>
- public static IntPtr useDTLSv1_2_server()
- {
- try
- {
- return wolfDTLSv1_2_server_method();
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl error " + e.ToString());
- return IntPtr.Zero;
- }
- }
-
-
- /// <summary>
- /// Set up DTLS version 1.2
- /// </summary>
- /// <returns>pointer to DTLSv1.2 method</returns>
- public static IntPtr useDTLSv1_2_client()
- {
- try
- {
- return wolfDTLSv1_2_client_method();
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl error " + e.ToString());
- return IntPtr.Zero;
- }
- }
-
-
- /// <summary>
- /// Gets the current cipher suite being used in connection
- /// </summary>
- /// <param name="ssl">SSL struct to get cipher suite from</param>
- /// <returns>string containing current cipher suite</returns>
- public static string get_current_cipher(IntPtr ssl)
- {
- if (ssl == IntPtr.Zero)
- return null;
- try
- {
- IntPtr ssl_cipher;
- IntPtr ssl_cipher_ptr;
- string ssl_cipher_str;
-
- IntPtr sslCtx = unwrap_ssl(ssl);
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "wolfssl get_current_cipher error");
- return null;
- }
-
- ssl_cipher = wolfSSL_get_current_cipher(sslCtx);
- ssl_cipher_ptr = wolfSSL_CIPHER_get_name(ssl_cipher);
- ssl_cipher_str = Marshal.PtrToStringAnsi(ssl_cipher_ptr);
-
- return ssl_cipher_str;
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl get current cipher error " + e.ToString());
- return null;
- }
- }
-
-
- /// <summary>
- /// Set available cipher suites for all ssl structs created from ctx
- /// </summary>
- /// <param name="ctx">CTX structure to set</param>
- /// <param name="list">List full of ciphers suites</param>
- /// <returns>1 on success</returns>
- public static int CTX_set_cipher_list(IntPtr ctx, StringBuilder list)
- {
- try
- {
- IntPtr local_ctx = unwrap_ctx(ctx);
- if (local_ctx == IntPtr.Zero)
- {
- log(ERROR_LOG, "CTX set cipher list error");
- return FAILURE;
- }
-
- return wolfSSL_CTX_set_cipher_list(local_ctx, list);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl ctx set cipher list error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Set available cipher suite in local connection
- /// </summary>
- /// <param name="ssl">Structure to set cipher suite in</param>
- /// <param name="list">List of cipher suites</param>
- /// <returns>1 on success</returns>
- public static int set_cipher_list(IntPtr ssl, StringBuilder list)
- {
- try
- {
- IntPtr sslCtx = unwrap_ssl(ssl);
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "wolfssl set_cipher_list error");
- return FAILURE;
- }
-
- return wolfSSL_set_cipher_list(sslCtx, list);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl set cipher error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Gets the version of the connection made ie TLSv1.2
- /// </summary>
- /// <param name="ssl">SSL struct to get version of</param>
- /// <returns>string containing version</returns>
- public static string get_version(IntPtr ssl)
- {
- if (ssl == IntPtr.Zero)
- return null;
-
- try
- {
- IntPtr version_ptr;
- string version;
-
- IntPtr sslCtx = unwrap_ssl(ssl);
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "wolfssl get_version error");
- return null;
- }
-
- version_ptr = wolfSSL_get_version(sslCtx);
- version = Marshal.PtrToStringAnsi(version_ptr);
-
- return version;
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl get version error " + e.ToString());
- return null;
- }
- }
-
-
- /// <summary>
- /// Get a string containing error value and reason
- /// </summary>
- /// <param name="ssl">SSL struct that had error</param>
- /// <returns>String containing error value and reason</returns>
- public static string get_error(IntPtr ssl)
- {
- if (ssl == IntPtr.Zero)
- return null;
-
- try
- {
- int err;
- StringBuilder err_name;
- StringBuilder ret;
-
- IntPtr sslCtx = unwrap_ssl(ssl);
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "wolfssl get_error error");
- return null;
- }
-
- /* wolfSSL max error length is 80 */
- ret = new StringBuilder(' ', 100);
- err = wolfSSL_get_error(sslCtx, 0);
- err_name = new StringBuilder(new String(' ', 80));
- wolfSSL_ERR_error_string((uint)err, err_name);
- ret.Append("Error " + err + " " + err_name.ToString());
-
- return ret.ToString();
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl get error, error " + e.ToString());
- return null;
- }
- }
-
-
- /// <summary>
- /// Used to load in the certificate file
- /// </summary>
- /// <param name="ctx">CTX structure for TLS/SSL connections</param>
- /// <param name="fileCert">Name of the file to load including absolute path</param>
- /// <param name="type">Type of file ie PEM or DER</param>
- /// <returns>1 on success</returns>
- public static int CTX_use_certificate_file(IntPtr ctx, string fileCert, int type)
- {
- try
- {
- IntPtr local_ctx = unwrap_ctx(ctx);
- if (local_ctx == IntPtr.Zero)
- {
- log(ERROR_LOG, "CTX use certificate file error");
- return FAILURE;
- }
-
- return wolfSSL_CTX_use_certificate_file(local_ctx, fileCert, type);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl ctx use cert file error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Used to load in the peer trusted root file
- /// </summary>
- /// <param name="ctx">CTX structure for TLS/SSL connections</param>
- /// <param name="fileCert">Name of the file to load including absolute path</param>
- /// <param name="type">path to multiple certificates (try to load all in path) </param>
- /// <returns>1 on success</returns>
- public static int CTX_load_verify_locations(IntPtr ctx, string fileCert, string path)
- {
- try
- {
- IntPtr local_ctx = unwrap_ctx(ctx);
- if (local_ctx == IntPtr.Zero)
- {
- log(ERROR_LOG, "CTX load verify locations certificate file error");
- return FAILURE;
- }
-
- return wolfSSL_CTX_load_verify_locations(local_ctx, fileCert, path);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl ctx load verify locations file error " + e.ToString());
- return FAILURE;
- }
- }
-
- /// <summary>
- /// Used to load in the private key from a file
- /// </summary>
- /// <param name="ctx">CTX structure for TLS/SSL connections </param>
- /// <param name="fileKey">Name of the file, includeing absolute directory</param>
- /// <param name="type">Type of file ie PEM or DER</param>
- /// <returns>1 on success</returns>
- public static int CTX_use_PrivateKey_file(IntPtr ctx, string fileKey, int type)
- {
- try
- {
- IntPtr local_ctx = unwrap_ctx(ctx);
- if (local_ctx == IntPtr.Zero)
- {
- log(ERROR_LOG, "CTX use PrivateKey file error");
- return FAILURE;
- }
-
- return wolfSSL_CTX_use_PrivateKey_file(local_ctx, fileKey, type);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl ctx use key file error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Set temporary DH parameters
- /// </summary>
- /// <param name="ssl">Structure to set in</param>
- /// <param name="dhparam">file name</param>
- /// <param name="file_type">type of file ie PEM</param>
- /// <returns>1 on success</returns>
- public static int SetTmpDH_file(IntPtr ssl, StringBuilder dhparam, int file_type)
- {
- try
- {
- IntPtr sslCtx = unwrap_ssl(ssl);
- if (sslCtx == IntPtr.Zero)
- {
- log(ERROR_LOG, "SetTmpDH_file ssl unwrap error");
- return FAILURE;
- }
-
- return wolfSSL_SetTmpDH_file(sslCtx, dhparam, file_type);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "SetTmpDH_file error " + e.ToString());
- return FAILURE;
- }
- }
-
- /// <summary>
- /// Set temporary DH parameters
- /// </summary>
- /// <param name="ctx">Structure to set in</param>
- /// <param name="dhparam">file name</param>
- /// <param name="file_type">type of file ie PEM</param>
- /// <returns>1 on success</returns>
- public static int CTX_SetTmpDH_file(IntPtr ctx, StringBuilder dhparam, int file_type)
- {
- try
- {
- IntPtr local_ctx = unwrap_ctx(ctx);
- if (local_ctx == IntPtr.Zero)
- {
- log(ERROR_LOG, "CTX_SetTmpDH_file ctx unwrap error");
- return FAILURE;
- }
-
- return wolfSSL_CTX_SetTmpDH_file(local_ctx, dhparam, file_type);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "CTX_SetTmpDH_file error " + e.ToString());
- return FAILURE;
- }
- }
-
-
- /// <summary>
- /// Used to set the minimum size of DH key
- /// </summary>
- /// <param name="ctx">Structure to store key size</param>
- /// <param name="minDhKey">Min key size </param>
- /// <returns>1 on success</returns>
- public static int CTX_SetMinDhKey_Sz(IntPtr ctx, short minDhKey)
- {
- try
- {
- IntPtr local_ctx = unwrap_ctx(ctx);
- if (local_ctx == IntPtr.Zero)
- {
- log(ERROR_LOG, "CTX SetMinDhKey_Sz error");
- return FAILURE;
- }
-
- return wolfSSL_CTX_SetMinDhKey_Sz(local_ctx, minDhKey);
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl ctx set min dh key error " + e.ToString());
- return FAILURE;
- }
- }
-
- /// <summary>
- /// Set the certificate verification mode and optional callback function
- /// </summary>
- /// <param name="ctx">pointer to CTX that the function is set in</param>
- /// <param name="mode">See SSL_VERIFY options</param>
- /// <param name="vc">Optional verify callback function to use</param>
- public static int CTX_set_verify(IntPtr ctx, int mode, CallbackVerify_delegate vc)
- {
- try
- {
- IntPtr local_ctx = unwrap_ctx(ctx);
- if (local_ctx == IntPtr.Zero)
- {
- log(ERROR_LOG, "CTX set_verify error");
- return FAILURE;
- }
-
- wolfSSL_CTX_set_verify(local_ctx, mode, vc);
- return SUCCESS;
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl ctx set verify error " + e.ToString());
- return FAILURE;
- }
- }
-
- /// <summary>
- /// Set the certificate verification mode and optional callback function
- /// </summary>
- /// <param name="ctx">pointer to SSL object that the function is set in</param>
- /// <param name="mode">See SSL_VERIFY options</param>
- /// <param name="vc">Optional verify callback function to use</param>
- public static int set_verify(IntPtr ssl, int mode, CallbackVerify_delegate vc)
- {
- try
- {
- IntPtr local_ssl = unwrap_ssl(ssl);
- if (local_ssl == IntPtr.Zero)
- {
- log(ERROR_LOG, "set_verify error");
- return FAILURE;
- }
-
- wolfSSL_set_verify(local_ssl, mode, vc);
- return SUCCESS;
- }
- catch (Exception e)
- {
- log(ERROR_LOG, "wolfssl set verify error " + e.ToString());
- return FAILURE;
- }
-
- }
-
- /// <summary>
- /// Set the function to use for logging
- /// </summary>
- /// <param name="input">Function that conforms as to loggingCb</param>
- /// <returns>1 on success</returns>
- public static int SetLogging(loggingCb input)
- {
- internal_log = input;
- return SUCCESS;
- }
-
-
- /// <summary>
- /// Log a message to set logging function
- /// </summary>
- /// <param name="lvl">Level of log message</param>
- /// <param name="msg">Message to log</param>
- public static void log(int lvl, string msg)
- {
- /* if log is not set then print nothing */
- if (internal_log == null)
- return;
- StringBuilder ptr = new StringBuilder(msg);
- internal_log(lvl, ptr);
- }
- }
-}
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/wolfSSL_CSharp.csproj b/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/wolfSSL_CSharp.csproj
deleted file mode 100644
index 128b84a37..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/CSharp/wolfSSL_CSharp/wolfSSL_CSharp.csproj
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{52609808-0418-46D3-8E17-141927A1A39A}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>wolfSSL.CSharp</RootNamespace>
- <AssemblyName>wolfSSL_CSharp</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>..\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>3</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>..\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
- <DebugSymbols>true</DebugSymbols>
- <OutputPath>..\x64\DLL Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <WarningLevel>3</WarningLevel>
- <DebugType>full</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
- <OutputPath>..\x64\DLL Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <Optimize>true</Optimize>
- <DebugType>pdbonly</DebugType>
- <PlatformTarget>x64</PlatformTarget>
- <ErrorReport>prompt</ErrorReport>
- <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="wolfSSL.cs" />
- </ItemGroup>
- <ItemGroup>
- <WCFMetadata Include="Service References\" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <PropertyGroup>
- <PreBuildEvent>xcopy "$(ProjectDir)..\..\..\certs\server-key.pem" "$(TargetDir)" /Y /R
-xcopy "$(ProjectDir)..\..\..\certs\server-cert.pem" "$(TargetDir)" /Y /R
-xcopy "$(ProjectDir)..\..\..\certs\dh2048.pem" "$(TargetDir)" /Y /R
-xcopy "$(ProjectDir)..\..\..\certs\ca-cert.pem" "$(TargetDir)" /Y /R</PreBuildEvent>
- </PropertyGroup>
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/include.am b/FreeRTOS-Plus/Source/WolfSSL/wrapper/include.am
deleted file mode 100644
index 5185523e6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/include.am
+++ /dev/null
@@ -1,7 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-include wrapper/python/wolfcrypt/include.am
-include wrapper/python/wolfssl/include.am
-include wrapper/CSharp/include.am
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/.gitignore b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/.gitignore
deleted file mode 100644
index 5e6f6f9bd..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/.gitignore
+++ /dev/null
@@ -1,18 +0,0 @@
-# Byte-compiled / optimized / DLL files
-__pycache__/
-*.py[cod]
-*$py.class
-
-# Distribution
-build/
-dist/
-.eggs/
-*.egg-info/
-
-# Unit test
-.tox/
-# Sphinx documentation
-docs/_build/
-
-# Virtual env
-.env
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/LICENSING.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/LICENSING.rst
deleted file mode 100644
index a7f0f3727..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/LICENSING.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-Licensing
----------
-
-wolfSSL’s software is available under two distinct licensing models:
-open source and standard commercial licensing. Please see the relevant
-section below for information on each type of license.
-
-Open Source
-~~~~~~~~~~~
-
-wolfCrypt and wolfSSL software are free software downloads and may be modified
-to the needs of the user as long as the user adheres to version two of the GPL
-License. The GPLv2 license can be found on the `gnu.org website
-<http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>`_.
-
-Commercial Licensing
-~~~~~~~~~~~~~~~~~~~~
-
-Businesses and enterprises who wish to incorporate wolfSSL products into
-proprietary appliances or other commercial software products for
-re-distribution must license commercial versions. Licenses are generally issued
-for one product and include unlimited royalty-free distribution. Custom
-licensing terms are also available at licensing@wolfssl.com.
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/MANIFEST.in b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/MANIFEST.in
deleted file mode 100644
index 3c56fcf44..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/MANIFEST.in
+++ /dev/null
@@ -1 +0,0 @@
-include LICENSING.rst
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/README.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/README.rst
deleted file mode 100644
index 1732c906b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/README.rst
+++ /dev/null
@@ -1,144 +0,0 @@
-
-
-wolfcrypt: the wolfSSL Crypto Engine
-====================================
-
-**wolfCrypt Python**, a.k.a. ``wolfcrypt`` is a Python library that encapsulates
-**wolfSSL's wolfCrypt API**.
-
-`wolfCrypt <https://wolfssl.com/wolfSSL/Products-wolfcrypt.html>`_ is a
-lightweight, portable, C-language-based crypto library
-targeted at IoT, embedded, and RTOS environments primarily because of its size,
-speed, and feature set. It works seamlessly in desktop, enterprise, and cloud
-environments as well. It is the crypto engine behind `wolfSSl's embedded ssl
-library <https://wolfssl.com/wolfSSL/Products-wolfssl.html>`_.
-
-
-Installation
-------------
-
-In order to use ``wolfcrypt``, first you'll need to install ``wolfssl`` C
-embedded ssl library.
-
-Installing ``wolfssl`` :
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Mac OSX**
-
-.. code-block:: console
-
- brew install wolfssl
-
-or
-
-.. code-block:: console
-
- git clone https://github.com/wolfssl/wolfssl.git
- cd wolfssl/
- ./autogen.sh
- ./configure --enable-sha512
- make
- sudo make install
-
-
-**Ubuntu**
-
-.. code-block:: console
-
- sudo apt-get update
- sudo apt-get install -y git autoconf libtool
-
- git clone https://github.com/wolfssl/wolfssl.git
- cd wolfssl/
- ./autogen.sh
- ./configure --enable-sha512
- make
- sudo make install
-
- sudo ldconfig
-
-**CentOS**
-
-.. code-block:: console
-
- sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm
- sudo yum update
- sudo yum install -y git autoconf libtool
-
- git clone git@github.com:wolfssl/wolfssl.git
- cd wolfssl
- ./autogen.sh
- ./configure --enable-sha512
- make
- sudo make install
-
- echo /usr/local/lib > wolfssl.conf
- sudo mv wolfssl.conf /etc/ld.so.conf
- sudo ldconfig
-
-
-Installing ``wolfcrypt`` :
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Mac OSX**
-
-.. code-block:: console
-
- sudo -H pip install wolfcrypt
-
-
-**Ubuntu**
-
-.. code-block:: console
-
- sudo apt-get install -y python-dev python3-dev python-pip libffi-dev
- sudo -H pip install wolfcrypt
-
-
-**CentOS**
-
-.. code-block:: console
-
- sudo yum install -y python-devel python3-devel python-pip libffi-devel
- sudo -H pip install wolfcrypt
-
-
-Testing ``wolfcrypt`` :
-~~~~~~~~~~~~~~~~~~~~~~~
-
-.. code-block:: console
-
- python -c "from wolfcrypt.hashes import Sha; print Sha().hexdigest()"
-
-expected output: **da39a3ee5e6b4b0d3255bfef95601890afd80709**
-
-
-Testing ``wolfcrypt``'s source code with ``tox`` :
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To run the unit tests in the source code, you'll need ``tox`` and a few other
-requirements. The source code relies at 'WOLFSSL_DIR/wrapper/python/wolfcrypt'
-where WOLFSSL_DIR is the path of ``wolfssl``'s source code.
-
-1. Make sure that the testing requirements are installed:
-
-.. code-block:: console
-
- $ sudo -H pip install -r requirements-testing.txt
-
-
-2. Run ``tox``:
-
-.. code-block:: console
-
- $ tox
- ...
- _________________________________ summary _________________________________
- py27: commands succeeded
- SKIPPED: py34: InterpreterNotFound: python3.4
- py35: commands succeeded
- congratulations :)
-
-Note: the test is performed using multiple versions of python. If you are
-missing a version the test will be skipped with an **InterpreterNotFound
-error**.
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/Makefile b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/Makefile
deleted file mode 100644
index c552bc9b3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/Makefile
+++ /dev/null
@@ -1,230 +0,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = sphinx-build
-PAPER =
-BUILDDIR = _build
-
-# User-friendly check for sphinx-build
-ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
- $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don\'t have Sphinx installed, grab it from http://sphinx-doc.org/)
-endif
-
-# Internal variables.
-PAPEROPT_a4 = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-# the i18n builder cannot share the environment and doctrees with the others
-I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-
-.PHONY: help
-help:
- @echo "Please use \`make <target>' where <target> is one of"
- @echo " html to make standalone HTML files"
- @echo " dirhtml to make HTML files named index.html in directories"
- @echo " singlehtml to make a single large HTML file"
- @echo " pickle to make pickle files"
- @echo " json to make JSON files"
- @echo " htmlhelp to make HTML files and a HTML help project"
- @echo " qthelp to make HTML files and a qthelp project"
- @echo " applehelp to make an Apple Help Book"
- @echo " devhelp to make HTML files and a Devhelp project"
- @echo " epub to make an epub"
- @echo " epub3 to make an epub3"
- @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
- @echo " latexpdf to make LaTeX files and run them through pdflatex"
- @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
- @echo " text to make text files"
- @echo " man to make manual pages"
- @echo " texinfo to make Texinfo files"
- @echo " info to make Texinfo files and run them through makeinfo"
- @echo " gettext to make PO message catalogs"
- @echo " changes to make an overview of all changed/added/deprecated items"
- @echo " xml to make Docutils-native XML files"
- @echo " pseudoxml to make pseudoxml-XML files for display purposes"
- @echo " linkcheck to check all external links for integrity"
- @echo " doctest to run all doctests embedded in the documentation (if enabled)"
- @echo " coverage to run coverage check of the documentation (if enabled)"
- @echo " dummy to check syntax errors of document sources"
-
-.PHONY: clean
-clean:
- rm -rf $(BUILDDIR)/*
-
-.PHONY: html
-html:
- $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
- @echo
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
-
-.PHONY: dirhtml
-dirhtml:
- $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
- @echo
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
-
-.PHONY: singlehtml
-singlehtml:
- $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
- @echo
- @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
-
-.PHONY: pickle
-pickle:
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
- @echo
- @echo "Build finished; now you can process the pickle files."
-
-.PHONY: json
-json:
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
- @echo
- @echo "Build finished; now you can process the JSON files."
-
-.PHONY: htmlhelp
-htmlhelp:
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
- @echo
- @echo "Build finished; now you can run HTML Help Workshop with the" \
- ".hhp project file in $(BUILDDIR)/htmlhelp."
-
-.PHONY: qthelp
-qthelp:
- $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
- @echo
- @echo "Build finished; now you can run "qcollectiongenerator" with the" \
- ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
- @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/wolfcrypt.qhcp"
- @echo "To view the help file:"
- @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/wolfcrypt.qhc"
-
-.PHONY: applehelp
-applehelp:
- $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
- @echo
- @echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
- @echo "N.B. You won't be able to view it unless you put it in" \
- "~/Library/Documentation/Help or install it in your application" \
- "bundle."
-
-.PHONY: devhelp
-devhelp:
- $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
- @echo
- @echo "Build finished."
- @echo "To view the help file:"
- @echo "# mkdir -p $$HOME/.local/share/devhelp/wolfcrypt"
- @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/wolfcrypt"
- @echo "# devhelp"
-
-.PHONY: epub
-epub:
- $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
- @echo
- @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
-
-.PHONY: epub3
-epub3:
- $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
- @echo
- @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
-
-.PHONY: latex
-latex:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo
- @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
- @echo "Run \`make' in that directory to run these through (pdf)latex" \
- "(use \`make latexpdf' here to do that automatically)."
-
-.PHONY: latexpdf
-latexpdf:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo "Running LaTeX files through pdflatex..."
- $(MAKE) -C $(BUILDDIR)/latex all-pdf
- @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-.PHONY: latexpdfja
-latexpdfja:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo "Running LaTeX files through platex and dvipdfmx..."
- $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
- @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-.PHONY: text
-text:
- $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
- @echo
- @echo "Build finished. The text files are in $(BUILDDIR)/text."
-
-.PHONY: man
-man:
- $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
- @echo
- @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
-
-.PHONY: texinfo
-texinfo:
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
- @echo
- @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
- @echo "Run \`make' in that directory to run these through makeinfo" \
- "(use \`make info' here to do that automatically)."
-
-.PHONY: info
-info:
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
- @echo "Running Texinfo files through makeinfo..."
- make -C $(BUILDDIR)/texinfo info
- @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
-
-.PHONY: gettext
-gettext:
- $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
- @echo
- @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
-
-.PHONY: changes
-changes:
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
- @echo
- @echo "The overview file is in $(BUILDDIR)/changes."
-
-.PHONY: linkcheck
-linkcheck:
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
- @echo
- @echo "Link check complete; look for any errors in the above output " \
- "or in $(BUILDDIR)/linkcheck/output.txt."
-
-.PHONY: doctest
-doctest:
- $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
- @echo "Testing of doctests in the sources finished, look at the " \
- "results in $(BUILDDIR)/doctest/output.txt."
-
-.PHONY: coverage
-coverage:
- $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
- @echo "Testing of coverage in the sources finished, look at the " \
- "results in $(BUILDDIR)/coverage/python.txt."
-
-.PHONY: xml
-xml:
- $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
- @echo
- @echo "Build finished. The XML files are in $(BUILDDIR)/xml."
-
-.PHONY: pseudoxml
-pseudoxml:
- $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
- @echo
- @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
-
-.PHONY: dummy
-dummy:
- $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
- @echo
- @echo "Build finished. Dummy builder generates no files."
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/asymmetric.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/asymmetric.rst
deleted file mode 100644
index 970078dee..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/asymmetric.rst
+++ /dev/null
@@ -1,74 +0,0 @@
-Asymmetric Key Algorithms
-=========================
-
-.. module:: wolfcrypt.ciphers
-
-**Asymmetric key algorithms** are encryption algorithms that use **a pair
-of cryptographic keys**, one for data encryption and signing and the other
-one for data decryption and signature verification.
-
-``wolfcrypt`` provides access to the following **Asymmetric Key Ciphers**:
-
-Asymmetric Key Encryption Classes
----------------------------------
-
-.. autoclass:: RsaPublic
- :members:
- :inherited-members:
-
-.. autoclass:: RsaPrivate
- :members:
- :inherited-members:
-
-
-Example
--------
-
- >>> from wolfcrypt.ciphers import RsaPrivate, RsaPublic
- >>> from wolfcrypt.utils import h2b
- >>>
- >>> private = "3082025C02010002818100BC730EA849F374A2A9EF18A5DA559921F9C8ECB36D" \
- ... + "48E53535757737ECD161905F3ED9E4D5DF94CAC1A9D719DA86C9E84DC4613682" \
- ... + "FEABAD7E7725BB8D11A5BC623AA838CC39A20466B4F7F7F3AADA4D020EBB5E8D" \
- ... + "6948DC77C9280E22E96BA426BA4CE8C1FD4A6F2B1FEF8AAEF69062E5641EEB2B" \
- ... + "3C67C8DC2700F6916865A902030100010281801397EAE8387825A25C04CE0D40" \
- ... + "7C31E5C470CD9B823B5809863B665FDC3190F14FD5DB15DDDED73B9593311831" \
- ... + "0E5EA3D6A21A716E81481C4BCFDB8E7A866132DCFB55C1166D279224458BF1B8" \
- ... + "48B14B1DACDEDADD8E2FC291FBA5A96EF83A6AF1FD5018EF9FE7C3CA78EA56D3" \
- ... + "D3725B96DD4E064E3AC3D9BE72B66507074C01024100FA47D47A7C923C55EF81" \
- ... + "F041302DA3CF8F1CE6872705700DDF9835D6F18B382F24B5D084B6794F712994" \
- ... + "5AF0646AACE772C6ED4D59983E673AF3742CF9611769024100C0C1820D0CEBC6" \
- ... + "2FDC92F99D821A31E9E9F74BF282871CEE166AD11D188270F3C0B62FF6F3F71D" \
- ... + "F18623C84EEB8F568E8FF5BFF1F72BB5CC3DC657390C1B54410241009D7E05DE" \
- ... + "EDF4B7B2FBFC304B551DE32F0147966905CD0E2E2CBD8363B6AB7CB76DCA5B64" \
- ... + "A7CEBE86DF3B53DE61D21EEBA5F637EDACAB78D94CE755FBD71199C102401898" \
- ... + "1829E61E2739702168AC0A2FA172C121869538C65890A0579CBAE3A7B115C8DE" \
- ... + "F61BC2612376EFB09D1C44BE1343396717C89DCAFBF545648B38822CF2810240" \
- ... + "3989E59C195530BAB7488C48140EF49F7E779743E1B419353123759C3B44AD69" \
- ... + "1256EE0061641666D37C742B15B4A2FEBF086B1A5D3F9012B105863129DBD9E2"
- >>>
- >>> prv = RsaPrivate(h2b(private))
- >>>
- >>> public = "30819F300D06092A864886F70D010101050003818D0030818902818100BC730E" \
- ... + "A849F374A2A9EF18A5DA559921F9C8ECB36D48E53535757737ECD161905F3ED9" \
- ... + "E4D5DF94CAC1A9D719DA86C9E84DC4613682FEABAD7E7725BB8D11A5BC623AA8" \
- ... + "38CC39A20466B4F7F7F3AADA4D020EBB5E8D6948DC77C9280E22E96BA426BA4C" \
- ... + "E8C1FD4A6F2B1FEF8AAEF69062E5641EEB2B3C67C8DC2700F6916865A90203010001"
- >>>
- >>> pub = RsaPublic(h2b(public))
- >>>
- >>> plaintext = b"Everyone gets Friday off."
- >>>
- >>> ciphertext = pub.encrypt(plaintext)
- >>> ciphertext # doctest: +SKIP
- b'e\xb7\xc2\xad\x0c\x04.\xefU8\x17QB\x852\x03\x01\xef\xbe=\xb4\xaf\xaf\x97\x9e4\x96\x9f\xc3\x8e\x87\x9a8o$.|_e\x1d\xa2yi?\x83\x18\xf9Yr|\x1fQ\x1a\x18\x1e\xab\xd17\xc5\x8c\xae\x08c)\xbc\nIr\x8d\xc3\x88\x7f\xde\x1f\x1a^lB\r\xf1\xc0\xfd0\xdeA\xf3\xd2\xe5q\x9a0\xee\xb4,\x97\x80\xa4|U;\xe6\x11\xf0\xc2Q\x987\xe1>F\xf5\x14\x186@G~(Q\xf2;\xcb\x05\xee\x88\x0b\xd8\xa7'
- >>>
- >>> prv.decrypt(ciphertext)
- b'Everyone gets Friday off.'
- >>>
- >>> signature = prv.sign(plaintext)
- >>> signature # doctest: +SKIP
- b'~\xc4\xe65\x15\xb17\x7fX\xaf,\xc2lw\xbd\x8f\t\x9d\xbf\xac\xdez\x90\xb4\x9f\x1aM\x88#Z\xea\xcb\xa6\xdb\x99\xf55\xd0\xfe|Mu\xb6\xb79(t\x81+h\xf2\xcd\x88v\xa8\xbaM\x86\xcfk\xe8\xf3\x0b\xb8\x8ew\xda>\xf8\xd5[H\xeaAh\xc6\xdaQlo]\xdd\xf8w\xe7#M-\x12f\xae,\xdd\xa6d FP<;R\xa2\x96hJ\xee_\x1fh\xaa\xc8\xdfAJ\xa5\xdd\x05\xc4\x89\x0c\xd7\xa0C\xb7u"U\x03'
- >>>
- >>> pub.verify(signature)
- b'Everyone gets Friday off.'
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/conf.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/conf.py
deleted file mode 100644
index 3e9de701c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/conf.py
+++ /dev/null
@@ -1,299 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# wolfcrypt documentation build configuration file, created by
-# sphinx-quickstart on Fri Apr 29 16:47:53 2016.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-import sys
-import os
-import sphinx_rtd_theme
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.insert(0, os.path.abspath('.'))
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-extensions = [
- 'sphinx.ext.autodoc',
- 'sphinx.ext.doctest',
- 'sphinx.ext.coverage',
- 'sphinx.ext.viewcode',
- 'sphinx.ext.githubpages',
-]
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The encoding of source files.
-#source_encoding = 'utf-8-sig'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-project = u'wolfcrypt'
-copyright = u'2016, wolfSSL Inc. All rights reserved'
-author = u'wolfSSL'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-
-base_dir = os.path.join(os.path.dirname(__file__), os.pardir)
-about = {}
-with open(os.path.join(base_dir, "wolfcrypt", "__about__.py")) as f:
- exec(f.read(), about)
-
-version = release = about["__version__"]
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
-
-# The reST default role (used for this markup: `text`) to use for all
-# documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-# If true, keep warnings as "system message" paragraphs in the built documents.
-#keep_warnings = False
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-html_theme = 'sphinx_rtd_theme'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#html_theme_options = {}
-
-# Add any paths that contain custom themes here, relative to this directory.
-html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
-
-# The name for this set of Sphinx documents.
-# "<project> v<release> documentation" by default.
-#html_title = u'%s v%s' % (project, release)
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#html_logo = None
-
-# The name of an image file (relative to this directory) to use as a favicon of
-# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-#html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Add any extra paths that contain custom files (such as robots.txt or
-# .htaccess) here, relative to this directory. These files are copied
-# directly to the root of the documentation.
-#html_extra_path = []
-
-# If not None, a 'Last updated on:' timestamp is inserted at every page
-# bottom, using the given strftime format.
-# The empty string is equivalent to '%b %d, %Y'.
-#html_last_updated_fmt = None
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_domain_indices = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#html_show_sphinx = True
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-#html_show_copyright = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it. The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# This is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = None
-
-# Language to be used for generating the HTML full-text search index.
-# Sphinx supports the following languages:
-# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
-# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh'
-#html_search_language = 'en'
-
-# A dictionary with options for the search language support, empty by default.
-# 'ja' uses this config value.
-# 'zh' user can custom change `jieba` dictionary path.
-#html_search_options = {'type': 'default'}
-
-# The name of a javascript file (relative to the configuration directory) that
-# implements a search results scorer. If empty, the default will be used.
-#html_search_scorer = 'scorer.js'
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'wolfcrypt-pydoc'
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
-# The paper size ('letterpaper' or 'a4paper').
-#'papersize': 'letterpaper',
-
-# The font size ('10pt', '11pt' or '12pt').
-#'pointsize': '10pt',
-
-# Additional stuff for the LaTeX preamble.
-#'preamble': '',
-
-# Latex figure (float) alignment
-#'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'wolfcrypt.tex', u'wolfcrypt Python Documentation',
- u'wolfSSL', 'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# If true, show page references after internal links.
-#latex_show_pagerefs = False
-
-# If true, show URL addresses after external links.
-#latex_show_urls = False
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_domain_indices = True
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'wolfcrypt', u'wolfcrypt Python Documentation',
- [author], 1)
-]
-
-# If true, show URL addresses after external links.
-#man_show_urls = False
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'wolfcrypt', u'wolfcrypt Python Documentation',
- author, 'wolfcrypt', 'One line description of project.',
- 'Miscellaneous'),
-]
-
-# Documents to append as an appendix to all manuals.
-#texinfo_appendices = []
-
-# If false, no module index is generated.
-#texinfo_domain_indices = True
-
-# How to display URL addresses: 'footnote', 'no', or 'inline'.
-#texinfo_show_urls = 'footnote'
-
-# If true, do not generate a @detailmenu in the "Top" node's menu.
-#texinfo_no_detailmenu = False
-
-# Preserves the order of the members, doesn't sorts them alphabetically.
-autodoc_member_order = 'bysource'
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/digest.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/digest.rst
deleted file mode 100644
index 0d79f8ef0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/digest.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-Message Digests
-===============
-
-.. module:: wolfcrypt.hashes
-
-A **message digest** is the output of a **cryptographic hash function**
-containing a string of bytes created by a **one-way formula** using the
-original message as input.
-
-Message digests are designed to protect the integrity of a piece of data or
-media to detect changes and alterations to any part of a message.
-
-
-Hashing Classes
----------------
-
-Interface
-~~~~~~~~~
-
-All Hashing Functions available in this module implements the following
-interface:
-
-.. autoclass:: _Hash
- :members:
-
-SHA-1
-~~~~~
-
-.. attention::
-
- NIST has deprecated SHA-1 in favor of the SHA-2 variants. New applications
- are strongly suggested to use SHA-2 over SHA-1.
-
-.. autoclass:: Sha
-
-SHA-2 family
-~~~~~~~~~~~~
-
-.. autoclass:: Sha256
-
-
-.. autoclass:: Sha384
-
-
-.. autoclass:: Sha512
-
-
-Example
--------
-
-.. doctest::
-
- >>> from wolfcrypt.hashes import Sha256
- >>>
- >>> s = Sha256()
- >>> s.update(b'wolf')
- >>> s.update(b'crypt')
- >>> s.digest()
- b'\x96\xe0.{\x1c\xbc\xd6\xf1\x04\xfe\x1f\xdbFR\x02zU\x05\xb6\x86R\xb7\x00\x95\xc61\x8f\x9d\xce\r\x18D'
- >>> s.hexdigest()
- b'96e02e7b1cbcd6f104fe1fdb4652027a5505b68652b70095c6318f9dce0d1844'
- >>>
- >>> s.update(b'rocks')
- >>> s.hexdigest()
- b'e1a50df419d65715c48316bdc6a6f7f0485f4b26c1b107228faf17988b61c83f'
- >>>
- >>> Sha256(b'wolfcryptrocks').hexdigest()
- b'e1a50df419d65715c48316bdc6a6f7f0485f4b26c1b107228faf17988b61c83f'
- >>>
- >>> Sha256.new(b'wolfcryptrocks').hexdigest()
- b'e1a50df419d65715c48316bdc6a6f7f0485f4b26c1b107228faf17988b61c83f'
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/index.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/index.rst
deleted file mode 100644
index efd3431a8..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/index.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-.. include:: ../README.rst
-
-Summary
--------
-
-.. toctree::
- :maxdepth: 1
-
- symmetric
- asymmetric
- digest
- mac
- random
-
-.. include:: ../LICENSING.rst
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/mac.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/mac.rst
deleted file mode 100644
index 14b39cd78..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/mac.rst
+++ /dev/null
@@ -1,74 +0,0 @@
-Message Authentication Codes
-============================
-
-.. module:: wolfcrypt.hashes
-
-A **message authentication code** (MAC) is a short piece of information used
-to authenticate a message — in other words, to confirm that the message came
-from the stated sender (its authenticity) and has not been changed in transit
-(its integrity).
-
-``wolfcrypt`` implements the **Hash-based message authentication code** (HMAC),
-which uses a cryptographic hash function coupled with a secret key to produce
-**message authentication codes**.
-
-
-Hmac Classes
-------------
-
-Interface
-~~~~~~~~~
-
-All Hmac classes available in this module implements the following
-interface:
-
-.. autoclass:: _Hmac
- :members:
- :inherited-members:
-
-SHA-1
-~~~~~
-
-.. attention::
-
- NIST has deprecated SHA-1 in favor of the SHA-2 variants. New applications
- are strongly suggested to use SHA-2 over SHA-1.
-
-.. autoclass:: HmacSha
-
-SHA-2 family
-~~~~~~~~~~~~
-
-.. autoclass:: HmacSha256
-
-
-.. autoclass:: HmacSha384
-
-
-.. autoclass:: HmacSha512
-
-
-Example
--------
-
-.. doctest::
-
- >>> from wolfcrypt.hashes import HmacSha256
- >>>
- >>> h = HmacSha256('secret')
- >>> h.update("wolf")
- >>> h.update("crypt")
- >>> h.digest()
- b'\x18\xbf*\t9\xa2o\xdf\\\xc8\xe0\xc2U\x94,\x8dY\x02;\x1c<Q\xdf\x8d\xdb\x863\xfb\xc1f#o'
- >>> h.hexdigest()
- b'18bf2a0939a26fdf5cc8e0c255942c8d59023b1c3c51df8ddb8633fbc166236f'
- >>>
- >>> h.update("rocks")
- >>> h.hexdigest()
- b'85dc8c1995d20b17942d52773d8a597d028ad958e5736beafb59a4742f63889e'
- >>>
- >>> HmacSha256('secret', 'wolfcryptrocks').hexdigest()
- b'85dc8c1995d20b17942d52773d8a597d028ad958e5736beafb59a4742f63889e'
- >>>
- >>> HmacSha256.new('secret', 'wolfcryptrocks').hexdigest()
- b'85dc8c1995d20b17942d52773d8a597d028ad958e5736beafb59a4742f63889e'
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/random.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/random.rst
deleted file mode 100644
index ba8e33bda..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/random.rst
+++ /dev/null
@@ -1,30 +0,0 @@
-Random Number Generation
-========================
-
-A **cryptographically secure pseudo-random number generator** (CSPRNG) is a
-**pseudo-random number generator** (PRNG) with properties that make it suitable
-for use in cryptography.
-
-Using the standard random module APIs for cryptographic keys or initialization
-vectors can result in major security issues depending on the algorithms in use.
-
-``wolfcrypt`` provides the following CSPRNG implementation:
-
-.. module:: wolfcrypt.random
-
-.. autoclass:: Random
- :members:
-
-
-Example
--------
-
- >>> from wolfcrypt.random import Random
- >>>
- >>> r = Random()
- >>> b = r.byte()
- >>> b # doctest: +SKIP
- b'\x8c'
- >>> b16 = r.bytes(16)
- >>> b16 # doctest: +SKIP
- b']\x93nk\x95\xbc@\xffX\xab\xdcB\xda\x11\xf7\x03'
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/symmetric.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/symmetric.rst
deleted file mode 100644
index a4939838d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/docs/symmetric.rst
+++ /dev/null
@@ -1,42 +0,0 @@
-Symmetric Key Algorithms
-========================
-
-.. module:: wolfcrypt.ciphers
-
-**Symmetric key algorithms** are encryption algorithms that use the **same
-cryptographic keys** for both encryption and decryption of data.
-This operation is also known as **Symmetric Key Encryption**.
-
-``wolfcrypt`` provides access to the following **Symmetric Key Ciphers**:
-
-Symmetric Key Encryption Classes
---------------------------------
-
-Interface
-~~~~~~~~~
-
-All **Symmetric Key Ciphers** available in this module implements the following
-interface:
-
-.. autoclass:: _Cipher
- :members:
-
-Classes
-~~~~~~~
-
-.. autoclass:: Aes
-
-
-Example
--------
-
-.. doctest::
-
- >>> from wolfcrypt.ciphers import Aes, MODE_CBC
- >>>
- >>> cipher = Aes(b'0123456789abcdef', MODE_CBC, b'1234567890abcdef')
- >>> ciphertext = cipher.encrypt('now is the time ')
- >>> ciphertext
- b'\x95\x94\x92W_B\x81S,\xcc\x9dFw\xa23\xcb'
- >>> cipher.decrypt(ciphertext)
- b'now is the time '
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/include.am b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/include.am
deleted file mode 100644
index 4d62bcf51..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/include.am
+++ /dev/null
@@ -1,30 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-EXTRA_DIST+= wrapper/python/wolfcrypt/.gitignore
-EXTRA_DIST+= wrapper/python/wolfcrypt/docs/asymmetric.rst
-EXTRA_DIST+= wrapper/python/wolfcrypt/docs/conf.py
-EXTRA_DIST+= wrapper/python/wolfcrypt/docs/digest.rst
-EXTRA_DIST+= wrapper/python/wolfcrypt/docs/index.rst
-EXTRA_DIST+= wrapper/python/wolfcrypt/docs/mac.rst
-EXTRA_DIST+= wrapper/python/wolfcrypt/docs/Makefile
-EXTRA_DIST+= wrapper/python/wolfcrypt/docs/random.rst
-EXTRA_DIST+= wrapper/python/wolfcrypt/docs/symmetric.rst
-EXTRA_DIST+= wrapper/python/wolfcrypt/LICENSING.rst
-EXTRA_DIST+= wrapper/python/wolfcrypt/MANIFEST.in
-EXTRA_DIST+= wrapper/python/wolfcrypt/README.rst
-EXTRA_DIST+= wrapper/python/wolfcrypt/requirements-testing.txt
-EXTRA_DIST+= wrapper/python/wolfcrypt/setup.py
-EXTRA_DIST+= wrapper/python/wolfcrypt/test/test_ciphers.py
-EXTRA_DIST+= wrapper/python/wolfcrypt/test/test_hashes.py
-EXTRA_DIST+= wrapper/python/wolfcrypt/test/test_random.py
-EXTRA_DIST+= wrapper/python/wolfcrypt/tox.ini
-EXTRA_DIST+= wrapper/python/wolfcrypt/wolfcrypt/__about__.py
-EXTRA_DIST+= wrapper/python/wolfcrypt/wolfcrypt/__init__.py
-EXTRA_DIST+= wrapper/python/wolfcrypt/wolfcrypt/build_ffi.py
-EXTRA_DIST+= wrapper/python/wolfcrypt/wolfcrypt/ciphers.py
-EXTRA_DIST+= wrapper/python/wolfcrypt/wolfcrypt/exceptions.py
-EXTRA_DIST+= wrapper/python/wolfcrypt/wolfcrypt/hashes.py
-EXTRA_DIST+= wrapper/python/wolfcrypt/wolfcrypt/random.py
-EXTRA_DIST+= wrapper/python/wolfcrypt/wolfcrypt/utils.py
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/requirements-testing.txt b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/requirements-testing.txt
deleted file mode 100644
index 61def5278..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/requirements-testing.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-pytest>=2.9.1
-cffi>=1.6.0
-tox>=2.3.1
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/setup.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/setup.py
deleted file mode 100644
index c22149a58..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/setup.py
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# Python 2.7 Standard Library
-from __future__ import absolute_import
-import os
-import sys
-from wolfcrypt.__about__ import metadata
-from setuptools import setup, find_packages
-
-os.chdir(os.path.dirname(sys.argv[0]) or ".")
-
-long_description = open("README.rst", "rt").read().replace(
- ".. include:: LICENSING.rst\n",
- open("LICENSING.rst", "rt").read()
-)
-
-info = dict(
- metadata = {k[2:-2]: metadata[k] for k in metadata},
- contents = {
- "long_description": long_description,
- "package_data": {"": ["*.txt"]},
- "packages": find_packages(),
- "cffi_modules": ["./wolfcrypt/build_ffi.py:ffi"],
- },
- requirements = {
- "setup_requires": ["cffi>=1.6.0"],
- "install_requires": ["cffi>=1.6.0"],
- },
- scripts = {},
- plugins = {},
- tests = {},
-)
-
-if __name__ == "__main__":
- kwargs = {k:v for dct in info.values() for (k,v) in dct.items()}
- setup(**kwargs)
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/test/test_ciphers.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/test/test_ciphers.py
deleted file mode 100644
index 24ccb897b..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/test/test_ciphers.py
+++ /dev/null
@@ -1,192 +0,0 @@
-# test_ciphers.py
-#
-# Copyright (C) 2006-2020 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
-#/
-import unittest
-from wolfcrypt.ciphers import *
-from wolfcrypt.utils import t2b, h2b
-
-
-class TestAes(unittest.TestCase):
- key = "0123456789abcdef"
- IV = "1234567890abcdef"
- plain = t2b("now is the time ")
- cipher = h2b("959492575f4281532ccc9d4677a233cb")
-
-
- def setUp(self):
- self.aes = Aes.new(self.key, MODE_CBC, self.IV)
-
-
- def test_raises(self):
- # invalid key length
- self.assertRaises(ValueError, Aes.new, "key", MODE_CBC, self.IV)
-
- # invalid mode
- self.assertRaises(ValueError, Aes.new, self.key, MODE_ECB, self.IV)
-
- # invalid iv length
- self.assertRaises(ValueError, Aes.new, self.key, MODE_CBC, "IV")
-
- # invalid data length
- self.assertRaises(ValueError, self.aes.encrypt, "foo")
- self.assertRaises(ValueError, self.aes.decrypt, "bar")
-
-
- def test_single_encryption(self):
- assert self.aes.encrypt(self.plain) == self.cipher
-
-
- def test_multi_encryption(self):
- result = t2b("")
- segments = tuple(self.plain[i:i + self.aes.block_size] \
- for i in range(0, len(self.plain), self.aes.block_size))
-
- for segment in segments:
- result += self.aes.encrypt(segment)
-
- assert result == self.cipher
-
-
- def test_single_decryption(self):
- assert self.aes.decrypt(self.cipher) == self.plain
-
-
- def test_multi_decryption(self):
- result = t2b("")
- segments = tuple(self.cipher[i:i + self.aes.block_size] \
- for i in range(0, len(self.cipher), self.aes.block_size))
-
- for segment in segments:
- result += self.aes.decrypt(segment)
-
- assert result == self.plain
-
-
-class TestRsaPrivate(unittest.TestCase):
- key = "3082025C02010002818100BC730EA849F374A2A9EF18A5DA559921F9C8ECB36D" \
- + "48E53535757737ECD161905F3ED9E4D5DF94CAC1A9D719DA86C9E84DC4613682" \
- + "FEABAD7E7725BB8D11A5BC623AA838CC39A20466B4F7F7F3AADA4D020EBB5E8D" \
- + "6948DC77C9280E22E96BA426BA4CE8C1FD4A6F2B1FEF8AAEF69062E5641EEB2B" \
- + "3C67C8DC2700F6916865A902030100010281801397EAE8387825A25C04CE0D40" \
- + "7C31E5C470CD9B823B5809863B665FDC3190F14FD5DB15DDDED73B9593311831" \
- + "0E5EA3D6A21A716E81481C4BCFDB8E7A866132DCFB55C1166D279224458BF1B8" \
- + "48B14B1DACDEDADD8E2FC291FBA5A96EF83A6AF1FD5018EF9FE7C3CA78EA56D3" \
- + "D3725B96DD4E064E3AC3D9BE72B66507074C01024100FA47D47A7C923C55EF81" \
- + "F041302DA3CF8F1CE6872705700DDF9835D6F18B382F24B5D084B6794F712994" \
- + "5AF0646AACE772C6ED4D59983E673AF3742CF9611769024100C0C1820D0CEBC6" \
- + "2FDC92F99D821A31E9E9F74BF282871CEE166AD11D188270F3C0B62FF6F3F71D" \
- + "F18623C84EEB8F568E8FF5BFF1F72BB5CC3DC657390C1B54410241009D7E05DE" \
- + "EDF4B7B2FBFC304B551DE32F0147966905CD0E2E2CBD8363B6AB7CB76DCA5B64" \
- + "A7CEBE86DF3B53DE61D21EEBA5F637EDACAB78D94CE755FBD71199C102401898" \
- + "1829E61E2739702168AC0A2FA172C121869538C65890A0579CBAE3A7B115C8DE" \
- + "F61BC2612376EFB09D1C44BE1343396717C89DCAFBF545648B38822CF2810240" \
- + "3989E59C195530BAB7488C48140EF49F7E779743E1B419353123759C3B44AD69" \
- + "1256EE0061641666D37C742B15B4A2FEBF086B1A5D3F9012B105863129DBD9E2"
-
- plain = t2b("Everyone gets Friday off.")
-
-
- def setUp(self):
- self.rsa = RsaPrivate(h2b(self.key))
-
-
- def test_raises(self):
- # invalid key
- self.assertRaises(WolfCryptError, RsaPrivate, 'key')
-
-
- def test_output_size(self):
- assert self.rsa.output_size == 1024 / 8
-
-
- def test_encrypt_decrypt(self):
- cipher = self.rsa.encrypt(self.plain)
- result = self.rsa.decrypt(cipher)
-
- assert len(cipher) == self.rsa.output_size == 1024 / 8
- assert self.plain == result
-
-
- def test_sign_verify(self):
- signature = self.rsa.sign(self.plain)
- result = self.rsa.verify(signature)
-
- assert len(signature) == self.rsa.output_size == 1024 / 8
- assert self.plain == result
-
-
-class TestRsaPublic(unittest.TestCase):
- prv = "3082025C02010002818100BC730EA849F374A2A9EF18A5DA559921F9C8ECB36D" \
- + "48E53535757737ECD161905F3ED9E4D5DF94CAC1A9D719DA86C9E84DC4613682" \
- + "FEABAD7E7725BB8D11A5BC623AA838CC39A20466B4F7F7F3AADA4D020EBB5E8D" \
- + "6948DC77C9280E22E96BA426BA4CE8C1FD4A6F2B1FEF8AAEF69062E5641EEB2B" \
- + "3C67C8DC2700F6916865A902030100010281801397EAE8387825A25C04CE0D40" \
- + "7C31E5C470CD9B823B5809863B665FDC3190F14FD5DB15DDDED73B9593311831" \
- + "0E5EA3D6A21A716E81481C4BCFDB8E7A866132DCFB55C1166D279224458BF1B8" \
- + "48B14B1DACDEDADD8E2FC291FBA5A96EF83A6AF1FD5018EF9FE7C3CA78EA56D3" \
- + "D3725B96DD4E064E3AC3D9BE72B66507074C01024100FA47D47A7C923C55EF81" \
- + "F041302DA3CF8F1CE6872705700DDF9835D6F18B382F24B5D084B6794F712994" \
- + "5AF0646AACE772C6ED4D59983E673AF3742CF9611769024100C0C1820D0CEBC6" \
- + "2FDC92F99D821A31E9E9F74BF282871CEE166AD11D188270F3C0B62FF6F3F71D" \
- + "F18623C84EEB8F568E8FF5BFF1F72BB5CC3DC657390C1B54410241009D7E05DE" \
- + "EDF4B7B2FBFC304B551DE32F0147966905CD0E2E2CBD8363B6AB7CB76DCA5B64" \
- + "A7CEBE86DF3B53DE61D21EEBA5F637EDACAB78D94CE755FBD71199C102401898" \
- + "1829E61E2739702168AC0A2FA172C121869538C65890A0579CBAE3A7B115C8DE" \
- + "F61BC2612376EFB09D1C44BE1343396717C89DCAFBF545648B38822CF2810240" \
- + "3989E59C195530BAB7488C48140EF49F7E779743E1B419353123759C3B44AD69" \
- + "1256EE0061641666D37C742B15B4A2FEBF086B1A5D3F9012B105863129DBD9E2"
-
- pub = "30819F300D06092A864886F70D010101050003818D0030818902818100BC730E" \
- + "A849F374A2A9EF18A5DA559921F9C8ECB36D48E53535757737ECD161905F3ED9" \
- + "E4D5DF94CAC1A9D719DA86C9E84DC4613682FEABAD7E7725BB8D11A5BC623AA8" \
- + "38CC39A20466B4F7F7F3AADA4D020EBB5E8D6948DC77C9280E22E96BA426BA4C" \
- + "E8C1FD4A6F2B1FEF8AAEF69062E5641EEB2B3C67C8DC2700F6916865A90203010001"
-
- plain = t2b("Everyone gets Friday off.")
-
-
- def setUp(self):
- self.private = RsaPrivate(h2b(self.prv))
- self.public = RsaPublic(h2b(self.pub))
-
-
- def test_raises(self):
- # invalid key
- self.assertRaises(WolfCryptError, RsaPublic, 'key')
-
-
- def test_output_size(self):
- assert self.public.output_size == 1024 / 8
-
-
- def test_encrypt_decrypt(self):
- cipher = self.public.encrypt(self.plain)
- result = self.private.decrypt(cipher)
-
- assert len(cipher) == self.public.output_size == 1024 / 8
- assert self.plain == result
-
-
- def test_sign_verify(self):
- signature = self.private.sign(self.plain)
- result = self.public.verify(signature)
-
- assert len(signature) == self.public.output_size == 1024 / 8
- assert self.plain == result
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/test/test_hashes.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/test/test_hashes.py
deleted file mode 100644
index b9f2ccc20..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/test/test_hashes.py
+++ /dev/null
@@ -1,150 +0,0 @@
-# test_hashes.py
-#
-# Copyright (C) 2006-2020 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
-#/
-import unittest
-from wolfcrypt.hashes import *
-from wolfcrypt.utils import t2b, h2b
-
-
-class TestSha(unittest.TestCase):
- _class = Sha
- digest = t2b("1b6182d68ae91ce0853bd9c6b6edfedd4b6a510d")
-
-
- def setUp(self):
- self.hash = self._class()
-
-
- def test_new(self):
- # update inside constructor
- assert self._class.new("wolfcrypt").hexdigest() == self.digest
-
-
- def test_hash_update_001(self):
- self.hash.update("wolfcrypt")
-
- assert self.hash.hexdigest() == self.digest
- assert self.hash.digest() == h2b(self.digest)
-
-
- def test_hash_update_002(self):
- self.hash.update("wolf")
- self.hash.update("crypt")
-
- assert self.hash.hexdigest() == self.digest
- assert self.hash.digest() == h2b(self.digest)
-
-
- def test_hash_copy(self):
- copy = self.hash.copy()
-
- assert self.hash.hexdigest() == copy.hexdigest()
-
- self.hash.update("wolfcrypt")
-
- assert self.hash.hexdigest() != copy.hexdigest()
-
- copy.update("wolfcrypt")
-
- assert self.hash.hexdigest() == copy.hexdigest() == self.digest
-
-
-class TestSha256(TestSha):
- _class = Sha256
- digest = t2b("96e02e7b1cbcd6f104fe1fdb4652027a" \
- + "5505b68652b70095c6318f9dce0d1844")
-
-
-class TestSha384(TestSha):
- _class = Sha384
- digest = t2b("4c79d80531203a16f91bee325f18c6aada47f9382fe44fc1" \
- + "1f92917837e9b7902f5dccb7d3656f667a1dce3460bc884b")
-
-
-class TestSha512(TestSha):
- _class = Sha512
- digest = t2b("88fcf67ffd8558d713f9cedcd852db47" \
- + "9e6573f0bd9955610a993f609637553c" \
- + "e8fff55e644ee8a106aae19c07f91b3f" \
- + "2a2a6d40dfa7302c0fa6a1a9a5bfa03f")
-
-
-_HMAC_KEY = "python"
-
-
-class TestHmacSha(unittest.TestCase):
- _class = HmacSha
- digest = t2b("5dfabcfb3a25540824867cd21f065f52f73491e0")
-
-
- def setUp(self):
- self.hash = self._class(_HMAC_KEY)
-
-
- def test_new(self):
- # update inside constructor
- assert self._class.new(_HMAC_KEY,"wolfcrypt").hexdigest() == self.digest
-
-
- def test_hash_update_001(self):
- self.hash.update("wolfcrypt")
-
- assert self.hash.hexdigest() == self.digest
-
-
- def test_hash_update_002(self):
- self.hash.update("wolf")
- self.hash.update("crypt")
-
- assert self.hash.hexdigest() == self.digest
-
-
- def test_hash_copy(self):
- copy = self.hash.copy()
-
- assert self.hash.hexdigest() == copy.hexdigest()
-
- self.hash.update("wolfcrypt")
-
- assert self.hash.hexdigest() != copy.hexdigest()
-
- copy.update("wolfcrypt")
-
- assert self.hash.hexdigest() == copy.hexdigest() == self.digest
-
-
-class TestHmacSha256(TestHmacSha):
- _class = HmacSha256
- digest = t2b("4b641d721493d80f019d9447830ebfee" \
- + "89234a7d594378b89f8bb73873576bf6")
-
-
-class TestHmacSha384(TestHmacSha):
- _class = HmacSha384
- digest = t2b("e72c72070c9c5c78e3286593068a510c1740cdf9dc34b512" \
- + "ccec97320295db1fe673216b46fe72e81f399a9ec04780ab")
-
-
-class TestHmacSha512(TestHmacSha):
- _class = HmacSha512
- digest = t2b("c7f48db79314fc2b5be9a93fd58601a1" \
- + "bf42f397ec7f66dba034d44503890e6b" \
- + "5708242dcd71a248a78162d815c685f6" \
- + "038a4ac8cb34b8bf18986dbd300c9b41")
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/test/test_random.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/test/test_random.py
deleted file mode 100644
index 1425f370c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/test/test_random.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# test_random.py
-#
-# Copyright (C) 2006-2020 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
-#/
-import unittest
-from wolfcrypt.random import *
-
-
-class TestRandom(unittest.TestCase):
-
-
- def setUp(self):
- self.random = Random()
-
-
- def test_byte(self):
- assert len(self.random.byte()) == 1
-
-
- def test_bytes(self):
- assert len(self.random.bytes(1)) == 1
- assert len(self.random.bytes(10)) == 10
- assert len(self.random.bytes(100)) == 100
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/tox.ini b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/tox.ini
deleted file mode 100644
index 98ec7f995..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/tox.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[tox]
-envlist=py27,py34,py35
-skip_missing_interpreters=true
-
-[testenv]
-deps=-rrequirements-testing.txt
-commands=py.test test/
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/__about__.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/__about__.py
deleted file mode 100644
index d3c58086d..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/__about__.py
+++ /dev/null
@@ -1,46 +0,0 @@
-# __about__.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-metadata = dict(
- __name__ = "wolfcrypt",
- __version__ = "0.1.9",
- __license__ = "GPLv2 or Commercial License",
- __author__ = "wolfSSL Inc.",
- __author_email__ = "info@wolfssl.com",
- __url__ = "https://wolfssl.github.io/wolfcrypt-py",
- __description__ = \
- u"A Python library that encapsulates wolfSSL's wolfCrypt API.",
- __keywords__ = "security, cryptography, ssl, embedded, embedded ssl",
- __classifiers__ = [
- u"License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
- u"License :: Other/Proprietary License",
- u"Operating System :: OS Independent",
- u"Programming Language :: Python :: 2.7",
- u"Programming Language :: Python :: 3.5",
- u"Topic :: Security",
- u"Topic :: Security :: Cryptography",
- u"Topic :: Software Development"
- ]
-)
-
-globals().update(metadata)
-
-__all__ = list(metadata.keys())
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/__init__.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/__init__.py
deleted file mode 100644
index 31d0235ef..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# __init__.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-from .__about__ import *
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/build_ffi.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/build_ffi.py
deleted file mode 100644
index ac03955cc..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/build_ffi.py
+++ /dev/null
@@ -1,128 +0,0 @@
-# build_ffi.py
-#
-# Copyright (C) 2006-2020 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
-#/
-import os
-
-from cffi import FFI
-
-ffi = FFI()
-
-ffi.set_source("wolfcrypt._ffi",
- """
- #include <wolfssl/options.h>
-
- #include <wolfssl/wolfcrypt/sha.h>
- #include <wolfssl/wolfcrypt/sha256.h>
- #include <wolfssl/wolfcrypt/sha512.h>
-
- #include <wolfssl/wolfcrypt/hmac.h>
-
- #include <wolfssl/wolfcrypt/aes.h>
- #include <wolfssl/wolfcrypt/des3.h>
- #include <wolfssl/wolfcrypt/asn.h>
-
- #include <wolfssl/wolfcrypt/random.h>
-
- #include <wolfssl/wolfcrypt/rsa.h>
- """,
- include_dirs=["/usr/local/include"],
- library_dirs=["/usr/local/lib"],
- libraries=["wolfssl"],
-)
-
-ffi.cdef(
-"""
-
- typedef unsigned char byte;
- typedef unsigned int word32;
-
- typedef struct { ...; } Sha;
-
- int wc_InitSha(Sha*);
- int wc_ShaUpdate(Sha*, const byte*, word32);
- int wc_ShaFinal(Sha*, byte*);
-
-
- typedef struct { ...; } Sha256;
-
- int wc_InitSha256(Sha256*);
- int wc_Sha256Update(Sha256*, const byte*, word32);
- int wc_Sha256Final(Sha256*, byte*);
-
-
- typedef struct { ...; } Sha384;
-
- int wc_InitSha384(Sha384*);
- int wc_Sha384Update(Sha384*, const byte*, word32);
- int wc_Sha384Final(Sha384*, byte*);
-
-
- typedef struct { ...; } Sha512;
-
- int wc_InitSha512(Sha512*);
- int wc_Sha512Update(Sha512*, const byte*, word32);
- int wc_Sha512Final(Sha512*, byte*);
-
-
- typedef struct { ...; } Hmac;
-
- int wc_HmacSetKey(Hmac*, int, const byte*, word32);
- int wc_HmacUpdate(Hmac*, const byte*, word32);
- int wc_HmacFinal(Hmac*, byte*);
-
-
- typedef struct { ...; } Aes;
-
- int wc_AesSetKey(Aes*, const byte*, word32, const byte*, int);
- int wc_AesCbcEncrypt(Aes*, byte*, const byte*, word32);
- int wc_AesCbcDecrypt(Aes*, byte*, const byte*, word32);
-
-
- typedef struct { ...; } WC_RNG;
-
- int wc_InitRng(WC_RNG*);
- int wc_RNG_GenerateBlock(WC_RNG*, byte*, word32);
- int wc_RNG_GenerateByte(WC_RNG*, byte*);
- int wc_FreeRng(WC_RNG*);
-
-
- typedef struct {...; } RsaKey;
-
- int wc_InitRsaKey(RsaKey* key, void*);
- int wc_RsaSetRNG(RsaKey* key, WC_RNG* rng);
- int wc_FreeRsaKey(RsaKey* key);
-
- int wc_RsaPrivateKeyDecode(const byte*, word32*, RsaKey*, word32);
- int wc_RsaPublicKeyDecode(const byte*, word32*, RsaKey*, word32);
- int wc_RsaEncryptSize(RsaKey*);
-
- int wc_RsaPrivateDecrypt(const byte*, word32, byte*, word32,
- RsaKey* key);
- int wc_RsaPublicEncrypt(const byte*, word32, byte*, word32,
- RsaKey*, WC_RNG*);
-
- int wc_RsaSSL_Sign(const byte*, word32, byte*, word32, RsaKey*, WC_RNG*);
- int wc_RsaSSL_Verify(const byte*, word32, byte*, word32, RsaKey*);
-
-"""
-)
-
-if __name__ == "__main__":
- ffi.compile(verbose=1)
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/ciphers.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/ciphers.py
deleted file mode 100644
index c02cdbe33..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/ciphers.py
+++ /dev/null
@@ -1,326 +0,0 @@
-# ciphers.py
-#
-# Copyright (C) 2006-2020 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
-#/
-from wolfcrypt._ffi import ffi as _ffi
-from wolfcrypt._ffi import lib as _lib
-from wolfcrypt.utils import t2b
-from wolfcrypt.random import Random
-
-from wolfcrypt.exceptions import *
-
-
-# key direction flags
-_ENCRYPTION = 0
-_DECRYPTION = 1
-
-
-# feedback modes
-MODE_ECB = 1 # Electronic Code Book
-MODE_CBC = 2 # Cipher Block Chaining
-MODE_CFB = 3 # Cipher Feedback
-MODE_OFB = 5 # Output Feedback
-MODE_CTR = 6 # Counter
-
-_FEEDBACK_MODES = [MODE_ECB, MODE_CBC, MODE_CFB, MODE_OFB, MODE_CTR]
-
-
-class _Cipher(object):
- """
- A **PEP 272: Block Encryption Algorithms** compliant
- **Symmetric Key Cipher**.
- """
- def __init__(self, key, mode, IV=None):
- if mode not in _FEEDBACK_MODES:
- raise ValueError("this mode is not supported")
-
- if mode == MODE_CBC:
- if IV is None:
- raise ValueError("this mode requires an 'IV' string")
- else:
- raise ValueError("this mode is not supported by this cipher")
-
- if self.key_size:
- if self.key_size != len(key):
- raise ValueError("key must be %d in length" % self.key_size)
- elif self._key_sizes:
- if len(key) not in self._key_sizes:
- raise ValueError("key must be %s in length" % self._key_sizes)
- else:
- if not len(key):
- raise ValueError("key must not be 0 in length")
-
- if IV is not None and len(IV) != self.block_size:
- raise ValueError("IV must be %d in length" % self.block_size)
-
- self._native_object = _ffi.new(self._native_type)
- self._enc = None
- self._dec = None
- self._key = t2b(key)
-
- if IV:
- self._IV = t2b(IV)
- else:
- self._IV = t2b("\0" * self.block_size)
-
-
- @classmethod
- def new(cls, key, mode, IV=None, **kwargs):
- """
- Returns a ciphering object, using the secret key contained in
- the string **key**, and using the feedback mode **mode**, which
- must be one of MODE_* defined in this module.
-
- If **mode** is MODE_CBC or MODE_CFB, **IV** must be provided and
- must be a string of the same length as the block size. Not
- providing a value of **IV** will result in a ValueError exception
- being raised.
- """
- return cls(key, mode, IV)
-
-
- def encrypt(self, string):
- """
- Encrypts a non-empty string, using the key-dependent data in
- the object, and with the appropriate feedback mode. The
- string's length must be an exact multiple of the algorithm's
- block size or, in CFB mode, of the segment size. Returns a
- string containing the ciphertext.
- """
- string = t2b(string)
-
- if not string or len(string) % self.block_size:
- raise ValueError(
- "string must be a multiple of %d in length" % self.block_size)
-
- if self._enc is None:
- self._enc = _ffi.new(self._native_type)
- ret = self._set_key(_ENCRYPTION)
- if ret < 0:
- raise WolfCryptError("Invalid key error (%d)" % ret)
-
- result = t2b("\0" * len(string))
- ret = self._encrypt(result, string)
- if ret < 0:
- raise WolfCryptError("Encryption error (%d)" % ret)
-
- return result
-
-
- def decrypt(self, string):
- """
- Decrypts **string**, using the key-dependent data in the
- object and with the appropriate feedback mode. The string's
- length must be an exact multiple of the algorithm's block
- size or, in CFB mode, of the segment size. Returns a string
- containing the plaintext.
- """
- string = t2b(string)
-
- if not string or len(string) % self.block_size:
- raise ValueError(
- "string must be a multiple of %d in length" % self.block_size)
-
- if self._dec is None:
- self._dec = _ffi.new(self._native_type)
- ret = self._set_key(_DECRYPTION)
- if ret < 0:
- raise WolfCryptError("Invalid key error (%d)" % ret)
-
- result = t2b("\0" * len(string))
- ret = self._decrypt(result, string)
- if ret < 0:
- raise WolfCryptError("Decryption error (%d)" % ret)
-
- return result
-
-
-class Aes(_Cipher):
- """
- The **Advanced Encryption Standard** (AES), a.k.a. Rijndael, is
- a symmetric-key cipher standardized by **NIST**.
- """
- block_size = 16
- key_size = None # 16, 24, 32
- _key_sizes = [16, 24, 32]
- _native_type = "Aes *"
-
-
- def _set_key(self, direction):
- if direction == _ENCRYPTION:
- return _lib.wc_AesSetKey(
- self._enc, self._key, len(self._key), self._IV, _ENCRYPTION)
- else:
- return _lib.wc_AesSetKey(
- self._dec, self._key, len(self._key), self._IV, _DECRYPTION)
-
-
- def _encrypt(self, destination, source):
- return _lib.wc_AesCbcEncrypt(self._enc, destination, source,len(source))
-
-
- def _decrypt(self, destination, source):
- return _lib.wc_AesCbcDecrypt(self._dec, destination, source,len(source))
-
-
-class _Rsa(object):
- RSA_MIN_PAD_SIZE = 11
-
- def __init__(self):
- self.native_object = _ffi.new("RsaKey *")
- ret = _lib.wc_InitRsaKey(self.native_object, _ffi.NULL)
- if ret < 0:
- raise WolfCryptError("Invalid key error (%d)" % ret)
-
- self._random = Random()
- ret = _lib.wc_RsaSetRNG(self.native_object, self._random.native_object)
- if ret < 0:
- raise WolfCryptError("Key initialization error (%d)" % ret)
-
-
- def __del__(self):
- if self.native_object:
- _lib.wc_FreeRsaKey(self.native_object)
-
-
-class RsaPublic(_Rsa):
- def __init__(self, key):
- key = t2b(key)
-
- _Rsa.__init__(self)
-
- idx = _ffi.new("word32*")
- idx[0] = 0
-
- ret = _lib.wc_RsaPublicKeyDecode(key, idx, self.native_object, len(key))
- if ret < 0:
- raise WolfCryptError("Invalid key error (%d)" % ret)
-
- self.output_size = _lib.wc_RsaEncryptSize(self.native_object)
- if self.output_size <= 0:
- raise WolfCryptError("Invalid key error (%d)" % self.output_size)
-
-
- def encrypt(self, plaintext):
- """
- Encrypts **plaintext**, using the public key data in the
- object. The plaintext's length must not be greater than:
-
- **self.output_size - self.RSA_MIN_PAD_SIZE**
-
- Returns a string containing the ciphertext.
- """
-
- plaintext = t2b(plaintext)
- ciphertext = t2b("\0" * self.output_size)
-
- ret = _lib.wc_RsaPublicEncrypt(plaintext, len(plaintext),
- ciphertext, len(ciphertext),
- self.native_object,
- self._random.native_object)
-
- if ret != self.output_size:
- raise WolfCryptError("Encryption error (%d)" % ret)
-
- return ciphertext
-
-
- def verify(self, signature):
- """
- Verifies **signature**, using the public key data in the
- object. The signature's length must be equal to:
-
- **self.output_size**
-
- Returns a string containing the plaintext.
- """
- signature = t2b(signature)
- plaintext = t2b("\0" * self.output_size)
-
- ret = _lib.wc_RsaSSL_Verify(signature, len(signature),
- plaintext, len(plaintext),
- self.native_object)
-
- if ret < 0:
- raise WolfCryptError("Verify error (%d)" % ret)
-
- return plaintext[:ret]
-
-
-class RsaPrivate(RsaPublic):
- def __init__(self, key):
- key = t2b(key)
-
- _Rsa.__init__(self)
-
- idx = _ffi.new("word32*")
- idx[0] = 0
-
- ret = _lib.wc_RsaPrivateKeyDecode(key, idx, self.native_object,len(key))
- if ret < 0:
- raise WolfCryptError("Invalid key error (%d)" % ret)
-
- self.output_size = _lib.wc_RsaEncryptSize(self.native_object)
- if self.output_size <= 0:
- raise WolfCryptError("Invalid key error (%d)" % self.output_size)
-
-
- def decrypt(self, ciphertext):
- """
- Decrypts **ciphertext**, using the private key data in the
- object. The ciphertext's length must be equal to:
-
- **self.output_size**
-
- Returns a string containing the plaintext.
- """
- ciphertext = t2b(ciphertext)
- plaintext = t2b("\0" * self.output_size)
-
- ret = _lib.wc_RsaPrivateDecrypt(ciphertext, len(ciphertext),
- plaintext, len(plaintext),
- self.native_object)
-
- if ret < 0:
- raise WolfCryptError("Decryption error (%d)" % ret)
-
- return plaintext[:ret]
-
-
- def sign(self, plaintext):
- """
- Signs **plaintext**, using the private key data in the object.
- The plaintext's length must not be greater than:
-
- **self.output_size - self.RSA_MIN_PAD_SIZE**
-
- Returns a string containing the signature.
- """
- plaintext = t2b(plaintext)
- signature = t2b("\0" * self.output_size)
-
- ret = _lib.wc_RsaSSL_Sign(plaintext, len(plaintext),
- signature, len(signature),
- self.native_object,
- self._random.native_object)
-
- if ret != self.output_size:
- raise WolfCryptError("Signature error (%d)" % ret)
-
- return signature
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/exceptions.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/exceptions.py
deleted file mode 100644
index 26322b364..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/exceptions.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# exceptions.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-
-class WolfCryptError(Exception):
- pass
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/hashes.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/hashes.py
deleted file mode 100644
index 346cb7bc0..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/hashes.py
+++ /dev/null
@@ -1,303 +0,0 @@
-# hashes.py
-#
-# Copyright (C) 2006-2020 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
-#/
-from wolfcrypt._ffi import ffi as _ffi
-from wolfcrypt._ffi import lib as _lib
-from wolfcrypt.utils import t2b, b2h
-
-from wolfcrypt.exceptions import *
-
-class _Hash(object):
- """
- A **PEP 247: Cryptographic Hash Functions** compliant
- **Hash Function Interface**.
- """
- def __init__(self, string=None):
- self._native_object = _ffi.new(self._native_type)
- ret = self._init()
- if ret < 0:
- raise WolfCryptError("Hash init error (%d)" % ret)
-
- if (string):
- self.update(string)
-
-
- @classmethod
- def new(cls, string=None):
- """
- Creates a new hashing object and returns it. The optional
- **string** parameter, if supplied, will be immediately
- hashed into the object's starting state, as if
- obj.update(string) was called.
- """
- return cls(string)
-
-
- def copy(self):
- """
- Returns a separate copy of this hashing object. An update
- to this copy won't affect the original object.
- """
- copy = self.new("")
-
- _ffi.memmove(copy._native_object,
- self._native_object,
- self._native_size)
-
- return copy
-
-
- def update(self, string):
- """
- Hashes **string** into the current state of the hashing
- object. update() can be called any number of times during
- a hashing object's lifetime.
- """
- string = t2b(string)
-
- ret = self._update(string)
- if ret < 0:
- raise WolfCryptError("Hash update error (%d)" % ret)
-
-
- def digest(self):
- """
- Returns the hash value of this hashing object as a string
- containing 8-bit data. The object is not altered in any
- way by this function; you can continue updating the object
- after calling this function.
- """
- result = t2b("\0" * self.digest_size)
-
- if self._native_object:
- obj = _ffi.new(self._native_type)
-
- _ffi.memmove(obj, self._native_object, self._native_size)
-
- ret = self._final(obj, result)
- if ret < 0:
- raise WolfCryptError("Hash finalize error (%d)" % ret)
-
- return result
-
-
- def hexdigest(self):
- """
- Returns the hash value of this hashing object as a string
- containing hexadecimal digits. Lowercase letters are used
- for the digits 'a' through 'f'. Like the .digest() method,
- this method doesn't alter the object.
- """
- return b2h(self.digest())
-
-
-class Sha(_Hash):
- """
- **SHA-1** is a cryptographic hash function standardized by **NIST**.
-
- It produces an [ **160-bit | 20 bytes** ] message digest.
- """
- digest_size = 20
- _native_type = "Sha *"
- _native_size = _ffi.sizeof("Sha")
-
-
- def _init(self):
- return _lib.wc_InitSha(self._native_object)
-
-
- def _update(self, data):
- return _lib.wc_ShaUpdate(self._native_object, data, len(data))
-
-
- def _final(self, obj, ret):
- return _lib.wc_ShaFinal(obj, ret)
-
-
-class Sha256(_Hash):
- """
- **SHA-256** is a cryptographic hash function from the
- **SHA-2 family** and is standardized by **NIST**.
-
- It produces a [ **256-bit | 32 bytes** ] message digest.
- """
- digest_size = 32
- _native_type = "Sha256 *"
- _native_size = _ffi.sizeof("Sha256")
-
-
- def _init(self):
- return _lib.wc_InitSha256(self._native_object)
-
-
- def _update(self, data):
- return _lib.wc_Sha256Update(self._native_object, data, len(data))
-
-
- def _final(self, obj, ret):
- return _lib.wc_Sha256Final(obj, ret)
-
-
-class Sha384(_Hash):
- """
- **SHA-384** is a cryptographic hash function from the
- **SHA-2 family** and is standardized by **NIST**.
-
- It produces a [ **384-bit | 48 bytes** ] message digest.
- """
- digest_size = 48
- _native_type = "Sha384 *"
- _native_size = _ffi.sizeof("Sha384")
-
-
- def _init(self):
- return _lib.wc_InitSha384(self._native_object)
-
-
- def _update(self, data):
- return _lib.wc_Sha384Update(self._native_object, data, len(data))
-
-
- def _final(self, obj, ret):
- return _lib.wc_Sha384Final(obj, ret)
-
-
-class Sha512(_Hash):
- """
- **SHA-512** is a cryptographic hash function from the
- **SHA-2 family** and is standardized by **NIST**.
-
- It produces a [ **512-bit | 64 bytes** ] message digest.
- """
- digest_size = 64
- _native_type = "Sha512 *"
- _native_size = _ffi.sizeof("Sha512")
-
-
- def _init(self):
- return _lib.wc_InitSha512(self._native_object)
-
-
- def _update(self, data):
- return _lib.wc_Sha512Update(self._native_object, data, len(data))
-
-
- def _final(self, obj, ret):
- return _lib.wc_Sha512Final(obj, ret)
-
-
-# Hmac types
-
-_TYPE_SHA = 1
-_TYPE_SHA256 = 2
-_TYPE_SHA384 = 5
-_TYPE_SHA512 = 4
-_HMAC_TYPES = [_TYPE_SHA, _TYPE_SHA256, _TYPE_SHA384, _TYPE_SHA512]
-
-
-class _Hmac(_Hash):
- """
- A **PEP 247: Cryptographic Hash Functions** compliant
- **Keyed Hash Function Interface**.
- """
- digest_size = None
- _native_type = "Hmac *"
- _native_size = _ffi.sizeof("Hmac")
-
-
- def __init__(self, key, string=None):
- key = t2b(key)
-
- self._native_object = _ffi.new(self._native_type)
- ret = self._init(self._type, key)
- if ret < 0:
- raise WolfCryptError("Hmac init error (%d)" % ret)
-
- if (string):
- self.update(string)
-
-
-
- @classmethod
- def new(cls, key, string=None):
- """
- Creates a new hashing object and returns it. **key** is
- a required parameter containing a string giving the key
- to use. The optional **string** parameter, if supplied,
- will be immediately hashed into the object's starting
- state, as if obj.update(string) was called.
- """
- return cls(key, string)
-
-
- def _init(self, type, key):
- return _lib.wc_HmacSetKey(self._native_object, type, key, len(key))
-
-
- def _update(self, data):
- return _lib.wc_HmacUpdate(self._native_object, data, len(data))
-
-
- def _final(self, obj, ret):
- return _lib.wc_HmacFinal(obj, ret)
-
-
-class HmacSha(_Hmac):
- """
- A HMAC function using **SHA-1** as it's cryptographic
- hash function.
-
- It produces a [ **512-bit | 64 bytes** ] message digest.
- """
- _type = _TYPE_SHA
- digest_size = Sha.digest_size
-
-
-class HmacSha256(_Hmac):
- """
- A HMAC function using **SHA-256** as it's cryptographic
- hash function.
-
- It produces a [ **512-bit | 64 bytes** ] message digest.
- """
- _type = _TYPE_SHA256
- digest_size = Sha256.digest_size
-
-
-class HmacSha384(_Hmac):
- """
- A HMAC function using **SHA-384** as it's cryptographic
- hash function.
-
- It produces a [ **512-bit | 64 bytes** ] message digest.
- """
- _type = _TYPE_SHA384
- digest_size = Sha384.digest_size
-
-
-class HmacSha512(_Hmac):
- """
- A HMAC function using **SHA-512** as it's cryptographic
- hash function.
-
- It produces a [ **512-bit | 64 bytes** ] message digest.
- """
- _type = _TYPE_SHA512
- digest_size = Sha512.digest_size
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/random.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/random.py
deleted file mode 100644
index f32b9b77c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/random.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# random.py
-#
-# Copyright (C) 2006-2020 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
-#/
-from wolfcrypt._ffi import ffi as _ffi
-from wolfcrypt._ffi import lib as _lib
-from wolfcrypt.utils import t2b
-
-from wolfcrypt.exceptions import *
-
-
-class Random(object):
- """
- A Cryptographically Secure Pseudo Random Number Generator - CSPRNG
- """
- def __init__(self):
- self.native_object = _ffi.new("WC_RNG *")
-
- ret = _lib.wc_InitRng(self.native_object)
- if ret < 0:
- self.native_object = None
- raise WolfCryptError("RNG init error (%d)" % ret)
-
-
- def __del__(self):
- if self.native_object:
- try:
- _lib.wc_FreeRng(self.native_object)
- except AttributeError:
- # Can occur during interpreter shutdown
- pass
-
-
- def byte(self):
- """
- Generate and return a random byte.
- """
- result = _ffi.new('byte[1]')
-
- ret = _lib.wc_RNG_GenerateByte(self.native_object, result)
- if ret < 0:
- raise WolfCryptError("RNG generate byte error (%d)" % ret)
-
- return _ffi.buffer(result, 1)[:]
-
-
- def bytes(self, length):
- """
- Generate and return a random sequence of length bytes.
- """
- result = _ffi.new('byte[%d]' % length)
-
- ret = _lib.wc_RNG_GenerateBlock(self.native_object, result, length)
- if ret < 0:
- raise WolfCryptError("RNG generate block error (%d)" % ret)
-
- return _ffi.buffer(result, length)[:]
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/utils.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/utils.py
deleted file mode 100644
index 537800f4c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfcrypt/wolfcrypt/utils.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# utils.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# pylint: disable=unused-import, undefined-variable
-
-import sys
-from binascii import hexlify as b2h, unhexlify as h2b
-
-_PY3 = sys.version_info[0] == 3
-_TEXT_TYPE = str if _PY3 else unicode
-_BINARY_TYPE = bytes if _PY3 else str
-
-def t2b(string):
- """
- Converts text to bynary.
- """
- if isinstance(string, _BINARY_TYPE):
- return string
- return _TEXT_TYPE(string).encode("utf-8")
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/.centos-provisioner.sh b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/.centos-provisioner.sh
deleted file mode 100644
index fc0ec19a7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/.centos-provisioner.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-[ "$(whoami)" != "root" ] && echo "Sorry, you are not root." && exit 1
-
-rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
-
-yum install -y \
- git autoconf libtool libffi-devel python-devel python34-devel python2-pip
-
-pip install -U pip setuptools
-
-git clone --depth 1 https://github.com/wolfssl/wolfssl.git
-[ $? -ne 0 ] && echo "\n\nCouldn't download wolfssl.\n\n" && exit 1
-
-pushd wolfssl
-
-./autogen.sh
-./configure
-make
-make install
-echo /usr/local/lib > wolfssl.conf
-mv wolfssl.conf /etc/ld.so.conf
-ldconfig
-
-popd
-
-rm -rf wolfssl
-
-pushd /vagrant
-
-pip install -r requirements-testing.txt
-
-make clean
-
-tox -epy27,py34 -- -v
-
-popd
-
-# pip install wolfssl
-# [ $? -ne 0 ] && echo "\n\nCouldn't install wolfssl.\n\n" && exit 1
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/.gitignore b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/.gitignore
deleted file mode 100644
index d3d507b23..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/.gitignore
+++ /dev/null
@@ -1,21 +0,0 @@
-# Byte-compiled / optimized / DLL files
-__pycache__/
-*.py[cod]
-*$py.class
-
-# Distribution
-build/
-dist/
-.eggs/
-*.egg-info/
-
-# Unit test
-.tox/
-htmlcov/
-.coverage
-
-# Sphinx documentation
-docs/_build/
-
-# Certificates
-certs/ \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/.ubuntu-provisioner.sh b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/.ubuntu-provisioner.sh
deleted file mode 100644
index 30ee7f6fc..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/.ubuntu-provisioner.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-[ "$(whoami)" != "root" ] && echo "Sorry, you are not root." && exit 1
-
-apt-get update
-
-apt-get install -y \
- git autoconf libtool python-dev python3-dev python-pip libffi-dev
-
-pip install -U pip setuptools
-
-git clone --depth 1 https://github.com/wolfssl/wolfssl.git
-[ $? -ne 0 ] && echo "\n\nCouldn't download wolfssl.\n\n" && exit 1
-
-pushd wolfssl
-
-./autogen.sh
-./configure
-make
-make install
-ldconfig
-
-popd
-
-rm -rf wolfssl
-
-pushd /vagrant
-
-pip install -r requirements-testing.txt
-
-make clean
-
-tox -epy27,py34 -- -v
-
-popd
-
-# pip install wolfssl
-# [ $? -ne 0 ] && echo -e "\n\nCouldn't install wolfssl.\n\n" && exit 1
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/LICENSING.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/LICENSING.rst
deleted file mode 100644
index 2fc46fc9c..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/LICENSING.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-Licensing
-=========
-
-wolfSSL’s software is available under two distinct licensing models:
-open source and standard commercial licensing. Please see the relevant
-section below for information on each type of license.
-
-Open Source
------------
-
-wolfCrypt and wolfSSL software are free software downloads and may be modified
-to the needs of the user as long as the user adheres to version two of the GPL
-License. The GPLv2 license can be found on the `gnu.org website
-<http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>`_.
-
-Commercial Licensing
---------------------
-
-Businesses and enterprises who wish to incorporate wolfSSL products into
-proprietary appliances or other commercial software products for
-re-distribution must license commercial versions. Licenses are generally
-issued for one product and include unlimited royalty-free distribution.
-Custom licensing terms are also available at licensing@wolfssl.com.
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/MANIFEST.in b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/MANIFEST.in
deleted file mode 100644
index 31b8bcfa9..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/MANIFEST.in
+++ /dev/null
@@ -1,2 +0,0 @@
-include LICENSING.rst
-recursive-include certs *.pem
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/Makefile b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/Makefile
deleted file mode 100644
index 5b3f9f869..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/Makefile
+++ /dev/null
@@ -1,59 +0,0 @@
-# Makefile
-#
-# Copyright (C) 2006-2020 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
-#/
-
-.PHONY : all clean clean-test clean-build clean-pyc install test check upload
-
-# builds the module
-all :
- python ./setup.py build
-
-#builds and installs the module
-install : all
- python ./setup.py install
-
-## removes all build, test, coverage and Python artifacts
-clean : clean-test clean-build clean-pyc
-
-## removes test and coverage artifacts
-clean-test :
- rm -rf .coverage .tox/ htmlcov/
-
-## removes build artifacts
-clean-build :
- rm -rf build/ dist/ .eggs/
- find . -name '*.egg-info' -exec rm -rf {} +
- find . -name '*.egg' -exec rm -v {} +
-
-## removes Python file artifacts
-clean-pyc :
- find src test -name '__pycache__' -exec rm -rf {} +
- find src test -name '*.pyc' -exec rm -f {} +
- find src test -name '*.pyo' -exec rm -f {} +
-
-# runs unit tests
-check : test
-
-test : clean-pyc
- tox
-
-# publishes module at pypi
-upload : test
- python ./setup.py sdist upload
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/README.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/README.rst
deleted file mode 100644
index 1a8e7250a..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/README.rst
+++ /dev/null
@@ -1,96 +0,0 @@
-Welcome
-=======
-
-``wolfssl Python`` is a Python module that encapsulates ``wolfssl C``, a `lightweight C-language-based SSL/TLS library <https://wolfssl.com/wolfSSL/Products-wolfssl.html>`_ targeted for embedded, RTOS, or
-resource-constrained environments primarily because of its small size, speed,
-and portability.
-
-Installation
-============
-
-In order to use ``wolfssl Python``, you'll also need to install ``wolfssl C``.
-
-Mac OSX
--------
-
-Installing from ``homebrew`` and ``pip`` package managers:
-
-.. code-block:: shell
-
- # wolfssl C installation
- brew install wolfssl
-
- # wolfssl Python installation
- sudo -H pip install wolfssl
-
-Installing from ``source code``:
-
-.. code-block:: shell
-
- # wolfssl C installation
- git clone https://github.com/wolfssl/wolfssl.git
- cd wolfssl/
- ./autogen.sh
- ./configure --enable-sha512
- make
- sudo make install
-
- # wolfssl Python installation
- cd wrapper/python/wolfssl
- sudo make install
-
-
-Linux
------
-
-.. code-block:: shell
-
- # dependencies installation
- sudo apt-get update
- sudo apt-get install -y git autoconf libtool
- sudo apt-get install -y python-dev python3-dev python-pip libffi-dev
-
- # wolfssl C installation
- git clone https://github.com/wolfssl/wolfssl.git
- cd wolfssl/
- ./autogen.sh
- ./configure --enable-sha512
- make
- sudo make install
-
- sudo ldconfig
-
- # wolfssl Python installation
- sudo -H pip install wolfssl
-
-
-Testing
-=======
-
-To run the tox tests in the source code, you'll need ``tox`` and a few other
-requirements. The source code relies at **WOLFSSL_DIR/wrapper/python/wolfssl**
-where **WOLFSSL_DIR** is the path of ``wolfssl C``'s source code.
-
-1. Make sure that the testing requirements are installed:
-
-.. code-block:: shell
-
- sudo -H pip install -r requirements-testing.txt
-
-
-2. Run ``make check``:
-
-.. code-block:: console
-
- $ make check
- ...
- _________________________________ summary _________________________________
- py27: commands succeeded
- SKIPPED: py34: InterpreterNotFound: python3.4
- py35: commands succeeded
- py36: commands succeeded
- congratulations :)
-
-Note: the test is performed using multiple versions of python. If you are
-missing a version the test will be skipped with an **InterpreterNotFound
-error**.
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/Vagrantfile b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/Vagrantfile
deleted file mode 100644
index cd83995c6..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/Vagrantfile
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- mode: ruby -*-
-# vi: set ft=ruby :
-VAGRANTFILE_API_VERSION = "2"
-
-Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
-
- config.vm.define "default" do |default|
- default.vm.box = "ubuntu/trusty64"
- default.vm.provision "shell", path: ".ubuntu-provisioner.sh"
- end
-
- config.vm.define "centos", autostart: false do |centos|
- centos.vm.box = "moisesguimaraes/centos72-64"
- centos.vm.provision "shell", path: ".centos-provisioner.sh"
- end
-
-end \ No newline at end of file
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/Makefile b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/Makefile
deleted file mode 100644
index 7d24fb014..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/Makefile
+++ /dev/null
@@ -1,60 +0,0 @@
-# Makefile
-#
-# Copyright (C) 2006-2020 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
-#/
-
-.PHONY : all clean html pdf man
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = sphinx-build
-PAPER = a4
-BUILDDIR = _build
-
-# Internal variables.
-PAPEROPT_a4 = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-
-all:
- @echo "Please use \`make <target>' where <target> is one of"
- @echo " html to make a single large HTML file"
- @echo " pdf to make LaTeX files and run them through pdflatex"
- @echo " man to make manual pages"
- @echo " doctest to run all doctests embedded in the documentation (if enabled)"
- @echo " coverage to run coverage check of the documentation (if enabled)"
-
-clean:
- rm -rf $(BUILDDIR)/*
-
-html:
- $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
- @echo
- @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
-
-pdf:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo "Running LaTeX files through pdflatex..."
- $(MAKE) -C $(BUILDDIR)/latex all-pdf
- @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-man:
- $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
- @echo
- @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/api.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/api.rst
deleted file mode 100644
index e6d2538ae..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/api.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-API Documentation
-=================
-
-.. module:: wolfssl
-
-wrap_socket
------------
-
-.. autofunction:: wrap_socket
-
-SSL/TLS Context
----------------
-
-.. autoclass:: SSLContext
- :members:
-
-SSL/TLS Socket
---------------
-
-.. autoclass:: SSLSocket
- :members:
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/conf.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/conf.py
deleted file mode 100644
index 612116f38..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/conf.py
+++ /dev/null
@@ -1,300 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# wolfcrypt documentation build configuration file, created by
-# sphinx-quickstart on Fri Apr 29 16:47:53 2016.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# pylint: disable=invalid-name, redefined-builtin, exec-used
-
-import os
-import sphinx_rtd_theme
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.insert(0, os.path.abspath('.'))
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-extensions = [
- 'sphinx.ext.autodoc',
- 'sphinx.ext.doctest',
- 'sphinx.ext.coverage',
- 'sphinx.ext.viewcode',
- 'sphinx.ext.githubpages',
-]
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
-
-# The encoding of source files.
-#source_encoding = 'utf-8-sig'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-project = u'wolfssl Python'
-copyright = u'2017, wolfSSL Inc. All rights reserved'
-author = u'wolfSSL'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-
-base_dir = os.path.join(os.path.dirname(__file__), os.pardir, "src")
-about = {}
-with open(os.path.join(base_dir, "wolfssl", "__about__.py")) as f:
- exec(f.read(), about)
-
-version = release = about["__version__"]
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
-
-# The reST default role (used for this markup: `text`) to use for all
-# documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-# If true, keep warnings as "system message" paragraphs in the built documents.
-#keep_warnings = False
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-html_theme = 'sphinx_rtd_theme'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#html_theme_options = {}
-
-# Add any paths that contain custom themes here, relative to this directory.
-html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
-
-# The name for this set of Sphinx documents.
-# "<project> v<release> documentation" by default.
-#html_title = u'%s v%s' % (project, release)
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#html_logo = None
-
-# The name of an image file (relative to this directory) to use as a favicon of
-# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-#html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Add any extra paths that contain custom files (such as robots.txt or
-# .htaccess) here, relative to this directory. These files are copied
-# directly to the root of the documentation.
-#html_extra_path = []
-
-# If not None, a 'Last updated on:' timestamp is inserted at every page
-# bottom, using the given strftime format.
-# The empty string is equivalent to '%b %d, %Y'.
-#html_last_updated_fmt = None
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_domain_indices = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#html_show_sphinx = True
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-#html_show_copyright = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it. The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# This is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = None
-
-# Language to be used for generating the HTML full-text search index.
-# Sphinx supports the following languages:
-# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
-# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh'
-#html_search_language = 'en'
-
-# A dictionary with options for the search language support, empty by default.
-# 'ja' uses this config value.
-# 'zh' user can custom change `jieba` dictionary path.
-#html_search_options = {'type': 'default'}
-
-# The name of a javascript file (relative to the configuration directory) that
-# implements a search results scorer. If empty, the default will be used.
-#html_search_scorer = 'scorer.js'
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'wolfssl-pydoc'
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
-# The paper size ('letterpaper' or 'a4paper').
-#'papersize': 'letterpaper',
-
-# The font size ('10pt', '11pt' or '12pt').
-#'pointsize': '10pt',
-
-# Additional stuff for the LaTeX preamble.
-#'preamble': '',
-
-# Latex figure (float) alignment
-#'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'wolfssl.tex', u'wolfssl Python Documentation',
- u'wolfSSL', 'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# If true, show page references after internal links.
-#latex_show_pagerefs = False
-
-# If true, show URL addresses after external links.
-#latex_show_urls = False
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_domain_indices = True
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'wolfssl', u'wolfssl Python Documentation',
- [author], 1)
-]
-
-# If true, show URL addresses after external links.
-#man_show_urls = False
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'wolfssl', u'wolfssl Python Documentation',
- author, 'wolfssl', 'One line description of project.',
- 'Miscellaneous'),
-]
-
-# Documents to append as an appendix to all manuals.
-#texinfo_appendices = []
-
-# If false, no module index is generated.
-#texinfo_domain_indices = True
-
-# How to display URL addresses: 'footnote', 'no', or 'inline'.
-#texinfo_show_urls = 'footnote'
-
-# If true, do not generate a @detailmenu in the "Top" node's menu.
-#texinfo_no_detailmenu = False
-
-# Preserves the order of the members, doesn't sorts them alphabetically.
-autodoc_member_order = 'bysource'
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/examples.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/examples.rst
deleted file mode 100644
index 5d2279f62..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/examples.rst
+++ /dev/null
@@ -1,95 +0,0 @@
-Client and Server Examples
-==========================
-
-SSL/TLS Client Example
-----------------------
-
-.. code-block:: python
-
- import socket
- import wolfssl
-
- CA_DATA = \
- """
- -----BEGIN CERTIFICATE-----
- MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
- MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
- d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
- ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
- MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
- LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
- RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
- +9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
- PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
- xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
- Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
- hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
- EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
- MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
- FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
- nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
- eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
- hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
- Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
- vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
- +OkuE6N36B9K
- -----END CERTIFICATE-----
- """
-
- bind_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
-
- context = wolfssl.SSLContext(wolfssl.PROTOCOL_TLSv1_2)
-
- context.verify_mode = wolfssl.CERT_REQUIRED
- context.load_verify_locations(cadata=CA_DATA)
-
- secure_socket = context.wrap_socket(bind_socket)
-
- secure_socket.connect(("www.python.org", 443))
-
- secure_socket.write(b"GET / HTTP/1.1\n\n")
-
- print(secure_socket.read())
-
- secure_socket.close()
-
-
-SSL/TLS Server Example
-----------------------
-
-.. code-block:: python
-
- import socket
- import wolfssl
-
- bind_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
-
- bind_socket.bind(("", 4433))
- bind_socket.listen(5)
-
- context = wolfssl.SSLContext(wolfssl.PROTOCOL_TLSv1_2, server_side=True)
-
- context.load_cert_chain("certs/server-cert.pem", "certs/server-key.pem")
-
- while True:
- try:
- secure_socket = None
-
- new_socket, from_addr = bind_socket.accept()
-
- secure_socket = context.wrap_socket(new_socket)
-
- print("Connection received from", from_addr)
-
- print("\n", secure_socket.read(), "\n")
- secure_socket.write(b"I hear you fa shizzle!")
-
- except KeyboardInterrupt:
- print()
- break
-
- finally:
- if secure_socket:
- secure_socket.close()
-
- bind_socket.close()
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/index.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/index.rst
deleted file mode 100644
index 344919f7f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-.. toctree::
- :maxdepth: 2
-
- installation
- usage
- api
- examples
- licensing
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/installation.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/installation.rst
deleted file mode 100644
index 72a335581..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/installation.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../README.rst
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/licensing.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/licensing.rst
deleted file mode 100644
index f5cc633bb..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/licensing.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../LICENSING.rst
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/requirements.txt b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/requirements.txt
deleted file mode 100644
index ab3f3dd41..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/requirements.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Sphinx
-sphinx_rtd_theme
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/usage.rst b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/usage.rst
deleted file mode 100644
index 47c2f0981..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/docs/usage.rst
+++ /dev/null
@@ -1,87 +0,0 @@
-Basic Usage
-===========
-
-The SSL/TLS protocol works securing an underlying TCP connection, this module
-adds the secure layer around the Python standard library
-`socket <https://docs.python.org/3.6/library/socket.html>`_ module.
-
-There are three different paths to secure a socket in this module:
-
-* Using the top level function wolfssl.wrap_socket();
-* Using the method wrap_socket() from a SSLContext instance;
-* Creating an SSLSocket object from the scratch.
-
-Note 1:
- It is possible to use the same SSLContext for multiple SSLSockets to save
- time and resources.
-
-Note 2:
- Each path provides its own options for fine-tuning the securint parameters.
- Check them out in the API documentation.
-
-
-Using the top level function wolfssl.wrap_socket()
---------------------------------------------------
-
-.. code-block:: python
-
- >>> import socket
- >>> import wolfssl
- >>>
- >>> sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
- >>>
- >>> secure_socket = wolfssl.wrap_socket(sock)
- >>>
- >>> secure_socket.connect(("www.python.org", 443))
- >>>
- >>> secure_socket.write(b"GET / HTTP/1.1\n\n")
- >>>
- >>> print(secure_socket.read())
- b'HTTP/1.1 500 Domain Not Found\r\nServer: Varnish\r\nRetry-After: 0\r\ncontent-type: text/html\r\nCache-Control: private, no-cache\r\nconnection: keep-alive\r\nContent-Length: 179\r\nAccept-Ranges: bytes\r\nDate: Sun, 05 Feb 2017 21:26:48 GMT\r\nVia: 1.1 varnish\r\nConnection: keep-alive\r\n\r\n\n<html>\n<head>\n<title>Fastly error: unknown domain </title>\n</head>\n<body>\nFastly error: unknown domain: . Please check that this domain has been added to a service.</body></html>'
- >>>
- >>> secure_socket.close()
-
-
-Using the method wrap_socket() from a SSLContext instance
----------------------------------------------------------
-
-.. code-block:: python
-
- >>> import socket
- >>> import wolfssl
- >>>
- >>> sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
- >>>
- >>> context = wolfssl.SSLContext(wolfssl.PROTOCOL_TLSv1_2)
- >>>
- >>> secure_socket = context.wrap_socket(sock)
- >>>
- >>> secure_socket.connect(("www.python.org", 443))
- >>>
- >>> secure_socket.write(b"GET / HTTP/1.1\n\n")
- >>>
- >>> print(secure_socket.read())
- b'HTTP/1.1 500 Domain Not Found\r\nServer: Varnish\r\nRetry-After: 0\r\ncontent-type: text/html\r\nCache-Control: private, no-cache\r\nconnection: keep-alive\r\nContent-Length: 179\r\nAccept-Ranges: bytes\r\nDate: Sun, 05 Feb 2017 21:26:48 GMT\r\nVia: 1.1 varnish\r\nConnection: keep-alive\r\n\r\n\n<html>\n<head>\n<title>Fastly error: unknown domain </title>\n</head>\n<body>\nFastly error: unknown domain: . Please check that this domain has been added to a service.</body></html>'
- >>>
- >>> secure_socket.close()
-
-Creating an SSLSocket object from the scratch
----------------------------------------------
-
-.. code-block:: python
-
- >>> import socket
- >>> import wolfssl
- >>>
- >>> sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
- >>>
- >>> secure_socket = wolfssl.SSLSocket(sock)
- >>>
- >>> secure_socket.connect(("www.python.org", 443))
- >>>
- >>> secure_socket.write(b"GET / HTTP/1.1\n\n")
- >>>
- >>> print(secure_socket.read())
- b'HTTP/1.1 500 Domain Not Found\r\nServer: Varnish\r\nRetry-After: 0\r\ncontent-type: text/html\r\nCache-Control: private, no-cache\r\nconnection: keep-alive\r\nContent-Length: 179\r\nAccept-Ranges: bytes\r\nDate: Sun, 05 Feb 2017 21:26:48 GMT\r\nVia: 1.1 varnish\r\nConnection: keep-alive\r\n\r\n\n<html>\n<head>\n<title>Fastly error: unknown domain </title>\n</head>\n<body>\nFastly error: unknown domain: . Please check that this domain has been added to a service.</body></html>'
- >>>
- >>> secure_socket.close()
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/examples/client.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/examples/client.py
deleted file mode 100644
index 0ae7d57ce..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/examples/client.py
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/usr/bin/env python
-#
-# -*- coding: utf-8 -*-
-#
-# client.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# pylint: disable=missing-docstring, invalid-name, import-error
-
-import sys
-import socket
-import argparse
-
-try:
- import wolfssl
-except ImportError:
- print("You must run 'python setup.py install' to use the examples")
- sys.exit()
-
-def build_arg_parser():
- parser = argparse.ArgumentParser(add_help=False)
-
- parser.add_argument(
- "-?", "--help", action="help",
- help="show this help message and exit"
- )
-
- parser.add_argument(
- "-h", metavar="host", default="127.0.0.1",
- help="Host to connect to, default 127.0.0.1"
- )
-
- parser.add_argument(
- "-p", metavar="port", type=int, default=11111,
- help="Port to connect on, not 0, default 11111"
- )
-
- parser.add_argument(
- "-v", metavar="version", type=int, choices=[0, 1, 2, 3], default=3,
- help="SSL version [0-3], SSLv3(0) - TLS1.2(3)), default 3"
- )
-
- parser.add_argument(
- "-l", metavar="ciphers", type=str, default="",
- help="Cipher suite list (: delimited)"
- )
-
- parser.add_argument(
- "-c", metavar="certificate", default="./certs/client-cert.pem",
- help="Certificate file, default ./certs/client-cert.pem"
- )
-
- parser.add_argument(
- "-k", metavar="key", default="./certs/client-key.pem",
- help="Key file, default ./certs/client-key.pem"
- )
-
- parser.add_argument(
- "-A", metavar="ca_file", default="./certs/ca-cert.pem",
- help="Certificate Authority file, default ./certs/ca-cert.pem"
- )
-
- parser.add_argument(
- "-d", action="store_true",
- help="Disable client cert check"
- )
-
- parser.add_argument(
- "-g", action="store_true",
- help="Send server HTTP GET"
- )
-
- return parser
-
-
-def get_method(index):
- return (
- wolfssl.PROTOCOL_SSLv3,
- wolfssl.PROTOCOL_TLSv1,
- wolfssl.PROTOCOL_TLSv1_1,
- wolfssl.PROTOCOL_TLSv1_2
- )[index]
-
-
-def main():
- args = build_arg_parser().parse_args()
-
- bind_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
-
- context = wolfssl.SSLContext(get_method(args.v))
-
- context.load_cert_chain(args.c, args.k)
-
- if args.d:
- context.verify_mode = wolfssl.CERT_NONE
- else:
- context.verify_mode = wolfssl.CERT_REQUIRED
- context.load_verify_locations(args.A)
-
- if args.l:
- context.set_ciphers(args.l)
-
- try:
- secure_socket = context.wrap_socket(bind_socket)
-
- secure_socket.connect((args.h, args.p))
-
- if args.g:
- secure_socket.write(b"GET / HTTP/1.1\n\n")
- else:
- secure_socket.write(b"hello wolfssl")
-
- print("\n", secure_socket.read(), "\n")
-
- except KeyboardInterrupt:
- print()
-
- finally:
- secure_socket.close()
-
-
-if __name__ == '__main__':
- main()
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/examples/server.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/examples/server.py
deleted file mode 100644
index a44b7e116..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/examples/server.py
+++ /dev/null
@@ -1,153 +0,0 @@
-#!/usr/bin/env python
-#
-# -*- coding: utf-8 -*-
-#
-# server.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# pylint: disable=missing-docstring, invalid-name, import-error
-
-import sys
-import socket
-import argparse
-
-try:
- import wolfssl
-except ImportError:
- print("You must run 'python setup.py install' to use the examples")
- sys.exit()
-
-def build_arg_parser():
- parser = argparse.ArgumentParser(add_help=False)
-
- parser.add_argument(
- "-?", "--help", action="help",
- help="show this help message and exit"
- )
-
- parser.add_argument(
- "-p", metavar="port", type=int, default=11111,
- help="Port to listen on, not 0, default 11111"
- )
-
- parser.add_argument(
- "-v", metavar="version", type=int, choices=[0, 1, 2, 3], default=3,
- help="SSL version [0-3], SSLv3(0) - TLS1.2(3)), default 3"
- )
-
- parser.add_argument(
- "-l", metavar="ciphers", type=str, default="",
- help="Cipher suite list (: delimited)"
- )
-
- parser.add_argument(
- "-c", metavar="certificate", default="./certs/server-cert.pem",
- help="Certificate file, default ./certs/server-cert.pem"
- )
-
- parser.add_argument(
- "-k", metavar="key", default="./certs/server-key.pem",
- help="Key file, default ./certs/server-key.pem"
- )
-
- parser.add_argument(
- "-A", metavar="ca_file", default="./certs/client-cert.pem",
- help="Certificate Authority file, default ./certs/client-cert.pem"
- )
-
- parser.add_argument(
- "-d", action="store_true",
- help="Disable client cert check"
- )
-
- parser.add_argument(
- "-b", action="store_true",
- help="Bind to any interface instead of localhost only"
- )
-
- parser.add_argument(
- "-i", action="store_true",
- help="Loop indefinitely (allow repeated connections)"
- )
-
- return parser
-
-
-def get_method(index):
- return (
- wolfssl.PROTOCOL_SSLv3,
- wolfssl.PROTOCOL_TLSv1,
- wolfssl.PROTOCOL_TLSv1_1,
- wolfssl.PROTOCOL_TLSv1_2
- )[index]
-
-
-def main():
- args = build_arg_parser().parse_args()
-
- bind_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
- bind_socket.bind(("" if args.b else "localhost", args.p))
- bind_socket.listen(5)
-
- print("Server listening on port", bind_socket.getsockname()[1])
-
- context = wolfssl.SSLContext(get_method(args.v), server_side=True)
-
- context.load_cert_chain(args.c, args.k)
-
- if args.d:
- context.verify_mode = wolfssl.CERT_NONE
- else:
- context.verify_mode = wolfssl.CERT_REQUIRED
- context.load_verify_locations(args.A)
-
- if args.l:
- context.set_ciphers(args.l)
-
- while True:
- try:
- secure_socket = None
-
- new_socket, from_addr = bind_socket.accept()
-
- secure_socket = context.wrap_socket(new_socket)
-
- print("Connection received from", from_addr)
-
- print("\n", secure_socket.read(), "\n")
- secure_socket.write(b"I hear you fa shizzle!")
-
- except KeyboardInterrupt:
- print()
- break
-
- finally:
- if secure_socket:
- secure_socket.close()
-
- if not args.i:
- break
-
- bind_socket.close()
-
-
-if __name__ == '__main__':
- main()
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/include.am b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/include.am
deleted file mode 100644
index 0c5d06bc1..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/include.am
+++ /dev/null
@@ -1,38 +0,0 @@
-# vim:ft=automake
-# included from Top Level Makefile.am
-# All paths should be given relative to the root
-
-EXTRA_DIST+= wrapper/python/wolfssl/.gitignore
-EXTRA_DIST+= wrapper/python/wolfssl/docs/api.rst
-EXTRA_DIST+= wrapper/python/wolfssl/docs/conf.py
-EXTRA_DIST+= wrapper/python/wolfssl/docs/examples.rst
-EXTRA_DIST+= wrapper/python/wolfssl/docs/index.rst
-EXTRA_DIST+= wrapper/python/wolfssl/docs/installation.rst
-EXTRA_DIST+= wrapper/python/wolfssl/docs/Makefile
-EXTRA_DIST+= wrapper/python/wolfssl/docs/licensing.rst
-EXTRA_DIST+= wrapper/python/wolfssl/docs/requirements.txt
-EXTRA_DIST+= wrapper/python/wolfssl/docs/usage.rst
-EXTRA_DIST+= wrapper/python/wolfssl/examples/client.py
-EXTRA_DIST+= wrapper/python/wolfssl/examples/server.py
-EXTRA_DIST+= wrapper/python/wolfssl/test/conftest.py
-EXTRA_DIST+= wrapper/python/wolfssl/test/test_client.py
-EXTRA_DIST+= wrapper/python/wolfssl/test/test_context.py
-EXTRA_DIST+= wrapper/python/wolfssl/test/test_methods.py
-EXTRA_DIST+= wrapper/python/wolfssl/src/wolfssl/__about__.py
-EXTRA_DIST+= wrapper/python/wolfssl/src/wolfssl/__init__.py
-EXTRA_DIST+= wrapper/python/wolfssl/src/wolfssl/build_ffi.py
-EXTRA_DIST+= wrapper/python/wolfssl/src/wolfssl/_memory.py
-EXTRA_DIST+= wrapper/python/wolfssl/src/wolfssl/_methods.py
-EXTRA_DIST+= wrapper/python/wolfssl/src/wolfssl/exceptions.py
-EXTRA_DIST+= wrapper/python/wolfssl/src/wolfssl/utils.py
-EXTRA_DIST+= wrapper/python/wolfssl/LICENSING.rst
-EXTRA_DIST+= wrapper/python/wolfssl/Makefile
-EXTRA_DIST+= wrapper/python/wolfssl/MANIFEST.in
-EXTRA_DIST+= wrapper/python/wolfssl/README.rst
-EXTRA_DIST+= wrapper/python/wolfssl/requirements-testing.txt
-EXTRA_DIST+= wrapper/python/wolfssl/setup.py
-EXTRA_DIST+= wrapper/python/wolfssl/tox.ini
-EXTRA_DIST+= wrapper/python/wolfssl/Vagrantfile
-EXTRA_DIST+= wrapper/python/wolfssl/.centos-provisioner.sh
-EXTRA_DIST+= wrapper/python/wolfssl/.ubuntu-provisioner.sh
-
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/requirements-testing.txt b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/requirements-testing.txt
deleted file mode 100644
index c422b4d23..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/requirements-testing.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-pytest
-cffi
-tox
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/setup.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/setup.py
deleted file mode 100644
index 217b59700..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/setup.py
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-# setup.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# Python 2.7 Standard Library
-
-# pylint: disable=import-error, wrong-import-position
-
-from __future__ import absolute_import
-import os
-import sys
-import shutil
-from setuptools import setup, find_packages
-
-sys.path.insert(0, 'src')
-from wolfssl.__about__ import METADATA
-
-os.chdir(os.path.dirname(sys.argv[0]) or ".")
-
-LONG_DESCRIPTION = open("README.rst", "rt").read().replace(
- ".. include:: LICENSING.rst\n",
- open("LICENSING.rst", "rt").read()
-)
-
-INFO = dict(
- metadata={k[2:-2]: METADATA[k] for k in METADATA},
- contents={
- "long_description" : LONG_DESCRIPTION,
- "package_data" : {"": ["*.txt"]},
- "packages" : find_packages("src"),
- "package_dir" : {"": "src"},
- "cffi_modules" : ["./src/wolfssl/build_ffi.py:ffi"],
- },
- requirements={
- "setup_requires" : ["cffi>=1.6.0"],
- "install_requires" : ["cffi>=1.6.0"],
- },
- scripts={},
- plugins={},
- tests={},
-)
-
-
-def update_certs():
- c_certs_dir = "../../../certs"
- py_certs_dir = "certs"
- certs = [
- "ca-cert.pem",
- "client-cert.pem",
- "client-key.pem",
- "server-cert.pem",
- "server-key.pem",
- "external/ca-digicert-ev.pem"
- ]
-
- if os.path.isdir(c_certs_dir):
- if not os.path.isdir(py_certs_dir):
- os.makedirs(py_certs_dir)
-
- for cert in certs:
- shutil.copy(os.path.join(c_certs_dir, cert), py_certs_dir)
-
-
-if __name__ == "__main__":
- update_certs()
-
- KWARGS = {k:v for dct in INFO.values() for (k, v) in dct.items()}
- setup(**KWARGS)
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/__about__.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/__about__.py
deleted file mode 100644
index 35b983ab7..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/__about__.py
+++ /dev/null
@@ -1,50 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# __about__.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# pylint: disable=missing-docstring
-
-METADATA = dict(
- __name__="wolfssl",
- __version__="0.1.0",
- __license__="GPLv2 or Commercial License",
- __author__="wolfSSL Inc.",
- __author_email__="info@wolfssl.com",
- __url__="https://wolfssl.github.io/wolfssl-py",
- __description__= \
- u"A Python module that encapsulates wolfSSL's C SSL/TLS library.",
- __keywords__="security, cryptography, ssl, embedded, embedded ssl",
- __classifiers__=[
- u"License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
- u"License :: Other/Proprietary License",
- u"Operating System :: OS Independent",
- u"Programming Language :: Python :: 2.7",
- u"Programming Language :: Python :: 3.5",
- u"Topic :: Security",
- u"Topic :: Security :: Cryptography",
- u"Topic :: Software Development"
- ]
-)
-
-globals().update(METADATA)
-
-__all__ = list(METADATA.keys())
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/__init__.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/__init__.py
deleted file mode 100644
index decef9595..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/__init__.py
+++ /dev/null
@@ -1,678 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# __init__.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-import sys
-import errno
-from socket import (
- socket, AF_INET, SOCK_STREAM, SOL_SOCKET, SO_TYPE, error as socket_error
-)
-
-try:
- from wolfssl._ffi import ffi as _ffi
- from wolfssl._ffi import lib as _lib
-except ImportError:
- pass
-
-from wolfssl.utils import t2b
-
-from wolfssl.exceptions import (
- CertificateError, SSLError, SSLEOFError, SSLSyscallError,
- SSLWantReadError, SSLWantWriteError, SSLZeroReturnError
-)
-
-from wolfssl._methods import (
- PROTOCOL_SSLv23, PROTOCOL_SSLv3, PROTOCOL_TLSv1,
- PROTOCOL_TLSv1_1, PROTOCOL_TLSv1_2, PROTOCOL_TLS,
- WolfSSLMethod as _WolfSSLMethod
-)
-
-from wolfssl.__about__ import (
- __all__, METADATA
-)
-
-globals().update(METADATA)
-
-CERT_NONE = 0
-CERT_REQUIRED = 1
-
-_VERIFY_MODE_LIST = [CERT_NONE, CERT_REQUIRED]
-
-_SSL_SUCCESS = 1
-_SSL_FILETYPE_PEM = 1
-_SSL_ERROR_WANT_READ = 2
-
-_WOLFSSL_ECC_SECP160K1 = 15
-_WOLFSSL_ECC_SECP160R1 = 16
-_WOLFSSL_ECC_SECP160R2 = 17
-_WOLFSSL_ECC_SECP192K1 = 18
-_WOLFSSL_ECC_SECP192R1 = 19
-_WOLFSSL_ECC_SECP224K1 = 20
-_WOLFSSL_ECC_SECP224R1 = 21
-_WOLFSSL_ECC_SECP256K1 = 22
-_WOLFSSL_ECC_SECP256R1 = 23
-_WOLFSSL_ECC_SECP384R1 = 24
-_WOLFSSL_ECC_SECP521R1 = 25
-_WOLFSSL_ECC_BRAINPOOLP256R1 = 26
-_WOLFSSL_ECC_BRAINPOOLP384R1 = 27
-_WOLFSSL_ECC_BRAINPOOLP512R1 = 28
-
-_SUPPORTED_CURVES = [
- _WOLFSSL_ECC_SECP160K1, _WOLFSSL_ECC_SECP160R1, _WOLFSSL_ECC_SECP160R2,
- _WOLFSSL_ECC_SECP192K1, _WOLFSSL_ECC_SECP192R1, _WOLFSSL_ECC_SECP224K1,
- _WOLFSSL_ECC_SECP224R1, _WOLFSSL_ECC_SECP256K1, _WOLFSSL_ECC_SECP256R1,
- _WOLFSSL_ECC_SECP384R1, _WOLFSSL_ECC_SECP521R1,
- _WOLFSSL_ECC_BRAINPOOLP256R1, _WOLFSSL_ECC_BRAINPOOLP384R1,
- _WOLFSSL_ECC_BRAINPOOLP512R1
-]
-
-_PY3 = sys.version_info[0] == 3
-
-class SSLContext(object):
- """
- An SSLContext holds various SSL-related configuration options and
- data, such as certificates and possibly a private key.
- """
-
- def __init__(self, protocol, server_side=False):
- method = _WolfSSLMethod(protocol, server_side)
-
- self.protocol = protocol
- self._side = server_side
- self._verify_mode = None
- self.native_object = _lib.wolfSSL_CTX_new(method.native_object)
-
- # wolfSSL_CTX_new() takes ownership of the method.
- # the method is freed later inside wolfSSL_CTX_free()
- # or if wolfSSL_CTX_new() failed to allocate the context object.
- method.native_object = _ffi.NULL
-
- if self.native_object == _ffi.NULL:
- raise MemoryError("Unnable to allocate context object")
-
- # verify_mode initialization needs a valid native_object.
- self.verify_mode = CERT_NONE
-
- if not server_side:
- for curve in _SUPPORTED_CURVES:
- ret = _lib.wolfSSL_CTX_UseSupportedCurve(self.native_object,
- curve)
- if ret != _SSL_SUCCESS:
- raise SSLError("unnable to set curve (%d)" % curve)
-
-
- def __del__(self):
- if getattr(self, 'native_object', _ffi.NULL) != _ffi.NULL:
- _lib.wolfSSL_CTX_free(self.native_object)
-
-
- @property
- def verify_mode(self):
- """
- Whether to try to verify other peers’ certificates and how to behave
- if verification fails. This attribute must be one of CERT_NONE,
- CERT_OPTIONAL or CERT_REQUIRED.
- """
- return self._verify_mode
-
-
- @verify_mode.setter
- def verify_mode(self, value):
- if value not in _VERIFY_MODE_LIST:
- raise ValueError("verify_mode must be one of CERT_NONE, "
- "CERT_OPTIONAL or CERT_REQUIRED")
-
- if value != self._verify_mode:
- self._verify_mode = value
- _lib.wolfSSL_CTX_set_verify(self.native_object,
- self._verify_mode,
- _ffi.NULL)
-
-
- def wrap_socket(self, sock, server_side=False,
- do_handshake_on_connect=True,
- suppress_ragged_eofs=True):
- """
- Wrap an existing Python socket sock and return an SSLSocket object.
- sock must be a SOCK_STREAM socket; other socket types are unsupported.
-
- The returned SSL socket is tied to the context, its settings and
- certificates. The parameters server_side, do_handshake_on_connect and
- suppress_ragged_eofs have the same meaning as in the top-level
- wrap_socket() function.
- """
- return SSLSocket(sock=sock, server_side=server_side,
- do_handshake_on_connect=do_handshake_on_connect,
- suppress_ragged_eofs=suppress_ragged_eofs,
- _context=self)
-
-
- def set_ciphers(self, ciphers):
- """
- Set the available ciphers for sockets created with this context. It
- should be a string in the wolfSSL cipher list format. If no cipher can
- be selected (because compile-time options or other configuration forbids
- use of all the specified ciphers), an SSLError will be raised.
- """
- ret = _lib.wolfSSL_CTX_set_cipher_list(self.native_object, t2b(ciphers))
-
- if ret != _SSL_SUCCESS:
- raise SSLError("Unnable to set cipher list")
-
-
- def load_cert_chain(self, certfile, keyfile=None, password=None):
- """
- Load a private key and the corresponding certificate. The certfile
- string must be the path to a single file in PEM format containing
- the certificate as well as any number of CA certificates needed to
- establish the certificate's authenticity.
-
- The keyfile string, if present, must point to a file containing the
- private key in.
-
- The password parameter is not supported yet.
- """
-
- if password is not None:
- raise NotImplementedError("password callback support not "
- "implemented yet")
-
- if certfile is not None:
- ret = _lib.wolfSSL_CTX_use_certificate_chain_file(
- self.native_object, t2b(certfile))
- if ret != _SSL_SUCCESS:
- raise SSLError("Unnable to load certificate chain. Err %d"% ret)
- else:
- raise TypeError("certfile should be a valid filesystem path")
-
- if keyfile is not None:
- ret = _lib.wolfSSL_CTX_use_PrivateKey_file(
- self.native_object, t2b(keyfile), _SSL_FILETYPE_PEM)
- if ret != _SSL_SUCCESS:
- raise SSLError("Unnable to load private key. Err %d" % ret)
-
-
- def load_verify_locations(self, cafile=None, capath=None, cadata=None):
- """
- Load a set of "certification authority" (CA) certificates used to
- validate other peers' certificates when verify_mode is other than
- CERT_NONE. At least one of cafile or capath must be specified.
-
- The cafile string, if present, is the path to a file of concatenated
- CA certificates in PEM format.
-
- The capath string, if present, is the path to a directory containing
- several CA certificates in PEM format.
- """
-
- if cafile is None and capath is None and cadata is None:
- raise TypeError("cafile, capath and cadata cannot be all omitted")
-
- if cafile is not None or capath is not None:
- ret = _lib.wolfSSL_CTX_load_verify_locations(
- self.native_object,
- t2b(cafile) if cafile else _ffi.NULL,
- t2b(capath) if capath else _ffi.NULL)
-
- if ret != _SSL_SUCCESS:
- raise SSLError("Unnable to load verify locations. Err %d" % ret)
-
- if cadata is not None:
- ret = _lib.wolfSSL_CTX_load_verify_buffer(
- self.native_object, t2b(cadata), len(cadata), _SSL_FILETYPE_PEM)
-
- if ret != _SSL_SUCCESS:
- raise SSLError("Unnable to load verify locations. Err %d" % ret)
-
-
-class SSLSocket(socket):
- """
- This class implements a subtype of socket.socket that wraps the
- underlying OS socket in an SSL/TLS connection, providing secure
- read and write methods over that channel.
- """
-
- def __init__(self, sock=None, keyfile=None, certfile=None,
- server_side=False, cert_reqs=CERT_NONE,
- ssl_version=PROTOCOL_TLS, ca_certs=None,
- do_handshake_on_connect=True, family=AF_INET,
- sock_type=SOCK_STREAM, proto=0, fileno=None,
- suppress_ragged_eofs=True, ciphers=None,
- _context=None):
-
- # set options
- self.do_handshake_on_connect = do_handshake_on_connect
- self.suppress_ragged_eofs = suppress_ragged_eofs
- self.server_side = server_side
-
- # set context
- if _context:
- self._context = _context
- else:
- if server_side and not certfile:
- raise ValueError("certfile must be specified for server-side "
- "operations")
-
- if keyfile and not certfile:
- raise ValueError("certfile must be specified")
-
- if certfile and not keyfile:
- keyfile = certfile
-
- self._context = SSLContext(ssl_version, server_side)
- self._context.verify_mode = cert_reqs
- if ca_certs:
- self._context.load_verify_locations(ca_certs)
- if certfile:
- self._context.load_cert_chain(certfile, keyfile)
- if ciphers:
- self._context.set_ciphers(ciphers)
-
- self.keyfile = keyfile
- self.certfile = certfile
- self.cert_reqs = cert_reqs
- self.ssl_version = ssl_version
- self.ca_certs = ca_certs
- self.ciphers = ciphers
-
- # preparing socket
- if sock is not None:
- # Can't use sock.type as other flags (such as SOCK_NONBLOCK) get
- # mixed in.
- if sock.getsockopt(SOL_SOCKET, SO_TYPE) != SOCK_STREAM:
- raise NotImplementedError("only stream sockets are supported")
-
- if _PY3:
- socket.__init__(self,
- family=sock.family,
- type=sock.type,
- proto=sock.proto,
- fileno=sock.fileno())
- else:
- socket.__init__(self, _sock=sock._sock)
-
- self.settimeout(sock.gettimeout())
-
- if _PY3:
- sock.detach()
-
- elif fileno is not None:
- socket.__init__(self, fileno=fileno)
-
- else:
- socket.__init__(self, family=family, type=sock_type,
- proto=proto)
-
- # see if we are connected
- try:
- self.getpeername()
- except socket_error as exception:
- if exception.errno != errno.ENOTCONN:
- raise
- connected = False
- else:
- connected = True
-
- self._closed = False
- self._connected = connected
-
- # create the SSL object
- self.native_object = _lib.wolfSSL_new(self.context.native_object)
- if self.native_object == _ffi.NULL:
- raise MemoryError("Unnable to allocate ssl object")
-
- ret = _lib.wolfSSL_set_fd(self.native_object, self.fileno())
- if ret != _SSL_SUCCESS:
- self._release_native_object()
- raise ValueError("Unnable to set fd to ssl object")
-
- if connected:
- try:
- if do_handshake_on_connect:
- self.do_handshake()
- except:
- self._release_native_object()
- self.close()
- raise
-
-
- def __del__(self):
- self._release_native_object()
-
-
- def _release_native_object(self):
- if getattr(self, 'native_object', _ffi.NULL) != _ffi.NULL:
- _lib.wolfSSL_CTX_free(self.native_object)
- self.native_object = _ffi.NULL
-
-
- @property
- def context(self):
- """
- Returns the context used by this object.
- """
- return self._context
-
-
- def dup(self):
- raise NotImplementedError("Can't dup() %s instances" %
- self.__class__.__name__)
-
-
- def _check_closed(self, call=None):
- if self.native_object == _ffi.NULL:
- raise ValueError("%s on closed or unwrapped secure channel" % call)
-
- def _check_connected(self):
- if not self._connected:
- # getpeername() will raise ENOTCONN if the socket is really
- # not connected; note that we can be connected even without
- # _connected being set, e.g. if connect() first returned
- # EAGAIN.
- self.getpeername()
-
-
- def write(self, data):
- """
- Write DATA to the underlying secure channel.
- Returns number of bytes of DATA actually transmitted.
- """
- self._check_closed("write")
- self._check_connected()
-
- data = t2b(data)
-
- return _lib.wolfSSL_write(self.native_object, data, len(data))
-
-
- def send(self, data, flags=0):
- if flags != 0:
- raise NotImplementedError("non-zero flags not allowed in calls to "
- "send() on %s" % self.__class__)
-
- return self.write(data)
-
-
- def sendall(self, data, flags=0):
- if flags != 0:
- raise NotImplementedError("non-zero flags not allowed in calls to "
- "sendall() on %s" % self.__class__)
-
- length = len(data)
- sent = 0
-
- while sent < length:
- sent += self.write(data[sent:])
-
- return sent
-
-
- def sendto(self, data, flags_or_addr, addr=None):
- # Ensure programs don't send unencrypted data trying to use this method
- raise NotImplementedError("sendto not allowed on instances "
- "of %s" % self.__class__)
-
-
- def sendmsg(self, *args, **kwargs):
- # Ensure programs don't send unencrypted data trying to use this method
- raise NotImplementedError("sendmsg not allowed on instances "
- "of %s" % self.__class__)
-
-
- def sendfile(self, file, offset=0, count=None):
- # Ensure programs don't send unencrypted files trying to use this method
- raise NotImplementedError("sendfile not allowed on instances "
- "of %s" % self.__class__)
-
-
- def read(self, length=1024, buffer=None):
- """
- Read up to LENGTH bytes and return them.
- Return zero-length string on EOF.
- """
- self._check_closed("read")
- self._check_connected()
-
- if buffer is not None:
- raise ValueError("buffer not allowed in calls to "
- "read() on %s" % self.__class__)
-
- data = _ffi.new('byte[%d]' % length)
- length = _lib.wolfSSL_read(self.native_object, data, length)
-
- if length < 0:
- err = _lib.wolfSSL_get_error(self.native_object, 0)
- if err == _SSL_ERROR_WANT_READ:
- raise SSLWantReadError()
- else:
- raise SSLError("wolfSSL_read error (%d)" % err)
-
- return _ffi.buffer(data, length)[:] if length > 0 else b''
-
-
- def recv(self, length=1024, flags=0):
- if flags != 0:
- raise NotImplementedError("non-zero flags not allowed in calls to "
- "recv() on %s" % self.__class__)
-
- return self.read(self, length)
-
-
- def recv_into(self, buffer, nbytes=None, flags=0):
- raise NotImplementedError("recv_into not allowed on instances "
- "of %s" % self.__class__)
-
-
- def recvfrom(self, length=1024, flags=0):
- # Ensure programs don't receive encrypted data trying to use this method
- raise NotImplementedError("recvfrom not allowed on instances "
- "of %s" % self.__class__)
-
-
- def recvfrom_into(self, buffer, nbytes=None, flags=0):
- # Ensure programs don't receive encrypted data trying to use this method
- raise NotImplementedError("recvfrom_into not allowed on instances "
- "of %s" % self.__class__)
-
-
- def recvmsg(self, *args, **kwargs):
- raise NotImplementedError("recvmsg not allowed on instances of %s" %
- self.__class__)
-
-
- def recvmsg_into(self, *args, **kwargs):
- raise NotImplementedError("recvmsg_into not allowed on instances of "
- "%s" % self.__class__)
-
-
- def shutdown(self, how):
- if self.native_object != _ffi.NULL:
- _lib.wolfSSL_shutdown(self.native_object)
- self._release_native_object()
- socket.shutdown(self, how)
-
-
- def unwrap(self):
- """
- Unwraps the underlying OS socket from the SSL/TLS connection.
- Returns the wrapped OS socket.
- """
- if self.native_object != _ffi.NULL:
- _lib.wolfSSL_set_fd(self.native_object, -1)
-
- sock = socket(family=self.family,
- sock_type=self.type,
- proto=self.proto,
- fileno=self.fileno())
- sock.settimeout(self.gettimeout())
- self.detach()
-
- return sock
-
-
- def do_handshake(self, block=False):
- """
- Perform a TLS/SSL handshake.
- """
- self._check_closed("do_handshake")
- self._check_connected()
-
- ret = _lib.wolfSSL_negotiate(self.native_object)
- if ret != _SSL_SUCCESS:
- raise SSLError("do_handshake failed with error %d" % ret)
-
-
- def _real_connect(self, addr, connect_ex):
- if self.server_side:
- raise ValueError("can't connect in server-side mode")
-
- # Here we assume that the socket is client-side, and not
- # connected at the time of the call. We connect it, then wrap it.
- if self._connected:
- raise ValueError("attempt to connect already-connected SSLSocket!")
-
- if connect_ex:
- err = socket.connect_ex(self, addr)
- else:
- err = 0
- socket.connect(self, addr)
-
- if err == 0:
- self._connected = True
- if self.do_handshake_on_connect:
- self.do_handshake()
-
- return err
-
-
- def connect(self, addr):
- """
- Connects to remote ADDR, and then wraps the connection in a secure
- channel.
- """
- self._real_connect(addr, False)
-
-
- def connect_ex(self, addr):
- """
- Connects to remote ADDR, and then wraps the connection in a secure
- channel.
- """
- return self._real_connect(addr, True)
-
-
- def accept(self):
- """
- Accepts a new connection from a remote client, and returns a tuple
- containing that new connection wrapped with a server-side secure
- channel, and the address of the remote client.
- """
- if not self.server_side:
- raise ValueError("can't accept in client-side mode")
-
- newsock, addr = socket.accept(self)
- newsock = self.context.wrap_socket(
- newsock,
- do_handshake_on_connect=self.do_handshake_on_connect,
- suppress_ragged_eofs=self.suppress_ragged_eofs,
- server_side=True)
-
- return newsock, addr
-
-
-def wrap_socket(sock, keyfile=None, certfile=None, server_side=False,
- cert_reqs=CERT_NONE, ssl_version=PROTOCOL_TLS, ca_certs=None,
- do_handshake_on_connect=True, suppress_ragged_eofs=True,
- ciphers=None):
- """
- Takes an instance sock of socket.socket, and returns an instance of
- wolfssl.SSLSocket, wrapping the underlying socket in an SSL context.
-
- The sock parameter must be a SOCK_STREAM socket; other socket types are
- unsupported.
-
- The keyfile and certfile parameters specify optional files with proper
- key and the certificates used to identify the local side of the connection.
-
- The parameter server_side is a boolean which identifies whether server-side
- or client-side behavior is desired from this socket.
-
- The parameter cert_reqs specifies whether a certificate is required from the
- other side of the connection, and whether it will be validated if provided.
- It must be one of the three values:
-
- * CERT_NONE (certificates ignored)
- * CERT_OPTIONAL (not required, but validated if provided)
- * CERT_REQUIRED (required and validated)
-
- If the value of this parameter is not CERT_NONE, then the ca_certs parameter
- must point to a file of CA certificates.
-
- The ca_certs file contains a set of concatenated “certification authority”
- certificates, which are used to validate certificates passed from the other
- end of the connection.
-
- The parameter ssl_version specifies which version of the SSL protocol to
- use. Typically, the server chooses a particular protocol version, and the
- client must adapt to the server’s choice. Most of the versions are not
- interoperable with the other versions. If not specified, the default is
- PROTOCOL_TLS; it provides the most compatibility with other versions.
-
- Here’s a table showing which versions in a client (down the side) can
- connect to which versions in a server (along the top):
-
- +------------------+-------+-----+-------+---------+---------+
- | client \\ server | SSLv3 | TLS | TLSv1 | TLSv1.1 | TLSv1.2 |
- +------------------+-------+-----+-------+---------+---------+
- | SSLv3 | yes | yes | no | no | no |
- +------------------+-------+-----+-------+---------+---------+
- | TLS (SSLv23) | yes | yes | yes | yes | yes |
- +------------------+-------+-----+-------+---------+---------+
- | TLSv1 | no | yes | yes | no | no |
- +------------------+-------+-----+-------+---------+---------+
- | TLSv1.1 | no | yes | no | yes | no |
- +------------------+-------+-----+-------+---------+---------+
- | TLSv1.2 | no | yes | no | no | yes |
- +------------------+-------+-----+-------+---------+---------+
-
- Note:
- Which connections succeed will vary depending on the versions of the ssl
- providers on both sides of the communication.
-
- The ciphers parameter sets the available ciphers for this SSL object. It
- should be a string in the wolfSSL cipher list format.
-
- The parameter do_handshake_on_connect specifies whether to do the SSL
- handshake automatically after doing a socket.connect(), or whether the
- application program will call it explicitly, by invoking the
- SSLSocket.do_handshake() method. Calling SSLSocket.do_handshake() explicitly
- gives the program control over the blocking behavior of the socket I/O
- involved in the handshake.
-
- The parameter suppress_ragged_eofs is not supported yet.
- """
- return SSLSocket(sock=sock, keyfile=keyfile, certfile=certfile,
- server_side=server_side, cert_reqs=cert_reqs,
- ssl_version=ssl_version, ca_certs=ca_certs,
- do_handshake_on_connect=do_handshake_on_connect,
- suppress_ragged_eofs=suppress_ragged_eofs,
- ciphers=ciphers)
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/_memory.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/_memory.py
deleted file mode 100644
index 0b6bb9f82..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/_memory.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# _memory.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# pylint: disable=missing-docstring
-
-try:
- from wolfssl._ffi import ffi as _ffi
- from wolfssl._ffi import lib as _lib
-except ImportError:
- pass
-
-_DYNAMIC_TYPE_METHOD = 11
-
-def _native_free(native_object, dynamic_type):
- _lib.wolfSSL_Free(native_object, _ffi.NULL, dynamic_type)
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/_methods.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/_methods.py
deleted file mode 100644
index bde5eb1bf..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/_methods.py
+++ /dev/null
@@ -1,83 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# _methods.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# pylint: disable=missing-docstring, invalid-name
-
-try:
- from wolfssl._ffi import ffi as _ffi
- from wolfssl._ffi import lib as _lib
-except ImportError:
- pass
-
-from wolfssl._memory import (
- _native_free, _DYNAMIC_TYPE_METHOD
-)
-
-
-PROTOCOL_SSLv23 = 1
-PROTOCOL_SSLv3 = 2
-PROTOCOL_TLS = 1
-PROTOCOL_TLSv1 = 3
-PROTOCOL_TLSv1_1 = 4
-PROTOCOL_TLSv1_2 = 5
-
-_PROTOCOL_LIST = [PROTOCOL_SSLv23, PROTOCOL_SSLv3, PROTOCOL_TLS,
- PROTOCOL_TLSv1, PROTOCOL_TLSv1_1, PROTOCOL_TLSv1_2]
-
-
-class WolfSSLMethod(object):
- """
- An SSLMethod holds SSL-related configuration options such as
- protocol version and communication side.
- """
-
- def __init__(self, protocol, server_side):
- if protocol not in _PROTOCOL_LIST:
- raise ValueError("this protocol is not supported")
-
- elif protocol == PROTOCOL_SSLv3:
- raise ValueError("this protocol is not supported")
-
- elif protocol == PROTOCOL_TLSv1:
- raise ValueError("this protocol is not supported")
-
- elif protocol == PROTOCOL_TLSv1_1:
- raise ValueError("this protocol is not supported")
-
- elif protocol == PROTOCOL_TLSv1_2:
- self.native_object = \
- _lib.wolfTLSv1_2_server_method() if server_side else \
- _lib.wolfTLSv1_2_client_method()
-
- elif protocol in [PROTOCOL_SSLv23, PROTOCOL_TLS]:
- self.native_object = \
- _lib.wolfSSLv23_server_method() if server_side else \
- _lib.wolfSSLv23_client_method()
-
- if self.native_object == _ffi.NULL:
- raise MemoryError("Unnable to allocate method object")
-
-
- def __del__(self):
- if getattr(self, 'native_object', _ffi.NULL) != _ffi.NULL:
- _native_free(self.native_object, _DYNAMIC_TYPE_METHOD)
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/build_ffi.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/build_ffi.py
deleted file mode 100644
index acfe013da..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/build_ffi.py
+++ /dev/null
@@ -1,80 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# build_ffi.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# pylint: disable=missing-docstring, invalid-name
-
-from cffi import FFI
-
-ffi = FFI()
-
-ffi.set_source(
- "wolfssl._ffi",
- """
- #include <wolfssl/options.h>
- #include <wolfssl/ssl.h>
-
- void wolfSSL_Free(void *ptr, void* heap, int type);
- """,
- include_dirs=["/usr/local/include"],
- library_dirs=["/usr/local/lib"],
- libraries=["wolfssl"],
-)
-
-ffi.cdef(
- """
- typedef unsigned char byte;
- typedef unsigned int word32;
-
- void wolfSSL_Free(void*, void*, int);
-
- void* wolfSSLv23_server_method(void);
- void* wolfSSLv23_client_method(void);
- void* wolfTLSv1_2_server_method(void);
- void* wolfTLSv1_2_client_method(void);
-
- void* wolfSSL_CTX_new(void*);
- void wolfSSL_CTX_free(void*);
-
- void wolfSSL_CTX_set_verify(void*, int, void*);
- int wolfSSL_CTX_set_cipher_list(void*, const char*);
- int wolfSSL_CTX_use_PrivateKey_file(void*, const char*, int);
- int wolfSSL_CTX_load_verify_locations(void*, const char*, const char*);
- int wolfSSL_CTX_load_verify_buffer(void*, const unsigned char*, long, int);
- int wolfSSL_CTX_use_certificate_chain_file(void*, const char *);
- int wolfSSL_CTX_UseSupportedCurve(void*, short);
-
-
- void* wolfSSL_new(void*);
- void wolfSSL_free(void*);
-
- int wolfSSL_set_fd(void*, int);
- int wolfSSL_get_error(void*, int);
- int wolfSSL_negotiate(void*);
- int wolfSSL_write(void*, const void*, int);
- int wolfSSL_read(void*, void*, int);
- int wolfSSL_shutdown(void*);
- """
-)
-
-if __name__ == "__main__":
- ffi.compile(verbose=1)
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/exceptions.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/exceptions.py
deleted file mode 100644
index 748732254..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/exceptions.py
+++ /dev/null
@@ -1,89 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# exceptions.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# pylint: disable=missing-docstring
-
-from socket import error as socket_error
-
-
-class SSLError(socket_error):
- """
- Raised to signal an error from the wolfSSL's SSL/TLS library. This signifies
- some problem in the higher-level encryption and authentication layer that's
- superimposed on the underlying network connection. This error is a subtype
- of socket.error, which in turn is a subtype of IOError. The error code and
- message of SSLError instances are provided by the wolfSSL library.
- """
- pass
-
-
-class SSLZeroReturnError(SSLError):
- """
- A subclass of SSLError raised when trying to read or write and the SSL
- connection has been closed cleanly. Note that this doesn't mean that the
- underlying transport (read TCP) has been closed.
- """
- pass
-
-
-class SSLWantReadError(SSLError):
- """
- A subclass of SSLError raised by a non-blocking SSL socket when trying to
- read or write data, but more data needs to be received on the underlying TCP
- transport before the request can be fulfilled.
- """
- pass
-
-
-class SSLWantWriteError(SSLError):
- """
- A subclass of SSLError raised by a non-blocking SSL socket when trying to
- read or write data, but more data needs to be sent on the underlying TCP
- transport before the request can be fulfilled.
- """
- pass
-
-
-class SSLSyscallError(SSLError):
- """
- A subclass of SSLError raised when a system error was encountered while
- trying to fulfill an operation on a SSL socket. Unfortunately, there is no
- easy way to inspect the original errno number.
- """
- pass
-
-
-class SSLEOFError(SSLError):
- """
- A subclass of SSLError raised when the SSL connection has been terminated
- abruptly. Generally, you shouldn't try to reuse the underlying transport
- when this error is encountered.
- """
- pass
-
-class CertificateError(ValueError):
- """
- Raised to signal an error with a certificate (such as mismatching hostname).
- Certificate errors detected by wolfSSL, though, raise an SSLError.
- """
- pass
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/utils.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/utils.py
deleted file mode 100644
index 721f2b96f..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/src/wolfssl/utils.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# utils.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# pylint: disable=missing-docstring, unused-import, undefined-variable
-
-import sys
-from binascii import hexlify as b2h, unhexlify as h2b
-
-_PY3 = sys.version_info[0] == 3
-_TEXT_TYPE = str if _PY3 else unicode
-_BINARY_TYPE = bytes if _PY3 else str
-
-def t2b(string):
- """
- Converts text to bynary.
- """
- if isinstance(string, _BINARY_TYPE):
- return string
- return _TEXT_TYPE(string).encode("utf-8")
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/conftest.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/conftest.py
deleted file mode 100644
index d87164325..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/conftest.py
+++ /dev/null
@@ -1,47 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# conftest.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# pylint: disable=missing-docstring, redefined-outer-name
-
-import sys
-import ssl
-import wolfssl
-import pytest
-
-@pytest.fixture
-def tcp_socket():
- import socket
- from contextlib import closing
-
- with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as sock:
- yield sock
-
-@pytest.fixture(
- params=[ssl, wolfssl] if sys.version_info.major == 3 else [wolfssl],
- ids=["ssl", "wolfssl"] if sys.version_info.major == 3 else ["wolfssl"])
-def ssl_provider(request):
- return request.param
-
-@pytest.fixture
-def ssl_context(ssl_provider):
- return ssl_provider.SSLContext(ssl_provider.PROTOCOL_SSLv23)
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/test_client.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/test_client.py
deleted file mode 100644
index 7ebf91fee..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/test_client.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# test_client.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# pylint: disable=missing-docstring, invalid-name, import-error
-# pylint: disable=redefined-outer-name
-
-import pytest
-
-HOST = "www.python.org"
-PORT = 443
-CA_CERTS = "certs/ca-digicert-ev.pem"
-
-@pytest.fixture(
- params=["wrap_socket", "wrap_socket_with_ca",
- "wrap_socket_from_context", "ssl_socket"])
-def secure_socket(request, ssl_provider, tcp_socket):
- sock = None
-
- if request.param == "wrap_socket":
- sock = ssl_provider.wrap_socket(tcp_socket)
-
- elif request.param == "wrap_socket_with_ca":
- sock = ssl_provider.wrap_socket(
- tcp_socket, cert_reqs=ssl_provider.CERT_REQUIRED, ca_certs=CA_CERTS)
-
- elif request.param == "wrap_socket_from_context":
- ctx = ssl_provider.SSLContext(ssl_provider.PROTOCOL_TLSv1_2)
-
- ctx.verify_mode = ssl_provider.CERT_REQUIRED
- ctx.load_verify_locations(CA_CERTS)
-
- sock = ctx.wrap_socket(tcp_socket)
-
- elif request.param == "ssl_socket":
- sock = ssl_provider.SSLSocket(
- tcp_socket, cert_reqs=ssl_provider.CERT_REQUIRED, ca_certs=CA_CERTS)
-
- if sock:
- yield sock
- sock.close()
-
-def test_secure_connection(secure_socket):
- secure_socket.connect((HOST, PORT))
-
- secure_socket.write(b"GET / HTTP/1.1\n\n")
- assert secure_socket.read(4) == b"HTTP"
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/test_context.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/test_context.py
deleted file mode 100644
index 6575ed6da..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/test_context.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# test_context.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# pylint: disable=missing-docstring, invalid-name, import-error
-# pylint: disable=redefined-outer-name
-
-import pytest
-
-with open("certs/ca-cert.pem") as ca:
- _CADATA = ca.read()
-
-def test_context_creation(ssl_context):
- assert ssl_context != None
-
-def test_verify_mode(ssl_provider, ssl_context):
- with pytest.raises(ValueError):
- ssl_context.verify_mode = -1
-
- assert ssl_context.verify_mode == ssl_provider.CERT_NONE
-
- ssl_context.verify_mode = ssl_provider.CERT_REQUIRED
- assert ssl_context.verify_mode == ssl_provider.CERT_REQUIRED
-
-def test_set_ciphers(ssl_context):
- ssl_context.set_ciphers("DHE-RSA-AES256-SHA256")
-
- with pytest.raises(Exception):
- ssl_context.set_ciphers("foo")
-
-def test_load_cert_chain_raises(ssl_context):
- with pytest.raises(TypeError):
- ssl_context.load_cert_chain(None)
-
-def test_load_cert_chain(ssl_context):
- ssl_context.load_cert_chain("certs/client-cert.pem",
- "certs/client-key.pem")
-
-def test_load_verify_locations_raises(ssl_context):
- with pytest.raises(TypeError):
- ssl_context.load_verify_locations(None)
-
-def test_load_verify_locations_with_cafile(ssl_context):
- ssl_context.load_verify_locations(cafile="certs/ca-cert.pem")
-
-def test_load_verify_locations_with_cadata(ssl_provider, ssl_context):
- ssl_context.load_verify_locations(cadata=_CADATA)
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/test_methods.py b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/test_methods.py
deleted file mode 100644
index f94038341..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/test/test_methods.py
+++ /dev/null
@@ -1,59 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# test_methods.py
-#
-# Copyright (C) 2006-2020 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
-#/
-
-# pylint: disable=missing-docstring, redefined-outer-name, import-error
-
-import pytest
-from wolfssl._methods import (WolfSSLMethod, PROTOCOL_SSLv3, PROTOCOL_SSLv23,
- PROTOCOL_TLS, PROTOCOL_TLSv1, PROTOCOL_TLSv1_1,
- PROTOCOL_TLSv1_2)
-from wolfssl._ffi import ffi as _ffi
-
-@pytest.fixture(
- params=[-1, PROTOCOL_SSLv3, PROTOCOL_TLSv1, PROTOCOL_TLSv1_1],
- ids=["invalid", "SSLv3", "TLSv1", "TLSv1_1"])
-def unsupported_method(request):
- yield request.param
-
-@pytest.fixture(
- params=[PROTOCOL_SSLv23, PROTOCOL_TLS, PROTOCOL_TLSv1_2],
- ids=["SSLv23", "TLS", "TLSv1_2"])
-def supported_method(request):
- yield request.param
-
-
-def test_unsupported_method(unsupported_method):
- with pytest.raises(ValueError):
- WolfSSLMethod(unsupported_method, False)
-
- with pytest.raises(ValueError):
- WolfSSLMethod(unsupported_method, True)
-
-def test_supported_method(supported_method):
- client = WolfSSLMethod(supported_method, False)
- server = WolfSSLMethod(supported_method, True)
-
- assert isinstance(client, WolfSSLMethod)
- assert isinstance(server, WolfSSLMethod)
- assert client.native_object != _ffi.NULL
- assert server.native_object != _ffi.NULL
diff --git a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/tox.ini b/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/tox.ini
deleted file mode 100644
index d552f72b3..000000000
--- a/FreeRTOS-Plus/Source/WolfSSL/wrapper/python/wolfssl/tox.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[tox]
-envlist=py27,py34,py35,py36
-skip_missing_interpreters=true
-
-[testenv]
-deps=-rrequirements-testing.txt
-commands=py.test test/ {posargs}