mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-31 03:07:29 +02:00
SiLabs: README and include updates
This commit is contained in:
@ -68,7 +68,9 @@ EXTRA_DIST += wolfcrypt/src/port/ti/ti-aes.c \
|
|||||||
wolfcrypt/src/port/caam/caam_sha.c \
|
wolfcrypt/src/port/caam/caam_sha.c \
|
||||||
wolfcrypt/src/port/caam/caam_doc.pdf \
|
wolfcrypt/src/port/caam/caam_doc.pdf \
|
||||||
wolfcrypt/src/port/silabs/silabs_aes.c \
|
wolfcrypt/src/port/silabs/silabs_aes.c \
|
||||||
|
wolfcrypt/src/port/silabs/silabs_ecc.c \
|
||||||
wolfcrypt/src/port/silabs/silabs_hash.c \
|
wolfcrypt/src/port/silabs/silabs_hash.c \
|
||||||
|
wolfcrypt/src/port/silabs/silabs_random.c \
|
||||||
wolfcrypt/src/port/silabs/README.md \
|
wolfcrypt/src/port/silabs/README.md \
|
||||||
wolfcrypt/src/port/st/stm32.c \
|
wolfcrypt/src/port/st/stm32.c \
|
||||||
wolfcrypt/src/port/st/stsafe.c \
|
wolfcrypt/src/port/st/stsafe.c \
|
||||||
|
@ -1,48 +1,69 @@
|
|||||||
# Silicon Labs (sliabs) Port
|
# Silicon Labs (silabs) Port
|
||||||
|
|
||||||
Support for the ERF32 Gecko
|
Support for the Silicon Labs hardware acceleration
|
||||||
* Series 2 device config 1 (Secure Element)
|
|
||||||
https://docs.silabs.com/mcu/latest/efr32mg21/group-SE
|
|
||||||
https://docs.silabs.com/mcu/latest/efr32bg21/group-SE
|
|
||||||
https://docs.silabs.com/mcu/5.9/efr32bg21/group-SE
|
|
||||||
https://docs.silabs.com/mcu/5.9/efr32mg21/group-SE
|
|
||||||
|
|
||||||
|
Tested on ERF32 Gecko Series 2 device config 1 (Secure Element)
|
||||||
|
|
||||||
For details see our [](https://www.wolfssl.com/docs/)
|
* https://docs.silabs.com/mcu/latest/efr32mg21/group-SE
|
||||||
|
* https://docs.silabs.com/gecko-platform/latest/service/api/group-sl-se-manager
|
||||||
|
|
||||||
|
## Building
|
||||||
|
|
||||||
### Building
|
To enable support define the following:
|
||||||
|
|
||||||
To enable support define one of the following:
|
|
||||||
|
|
||||||
```
|
```
|
||||||
#define WOLFSSL_SILABS_SE_ACCEL
|
#define WOLFSSL_SILABS_SE_ACCEL
|
||||||
```
|
```
|
||||||
|
|
||||||
### Coding
|
## Caveats
|
||||||
|
|
||||||
In your application you must include <wolfssl/wolfcrypt/settings.h>
|
:warning: **Be sure to update the SE firmware** Testing and results were done using SE firmware `1.2.6`
|
||||||
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`.
|
|
||||||
|
|
||||||
### Caveats
|
Update was preformed under Simplicity Studio directory:
|
||||||
|
`./developer/adapter_packs/commander/commander flash ./offline/efr32/firmware/series2config1/se_firmware_package/s2c1_se_fw_upgrade_app_1v2p6.hex`
|
||||||
|
|
||||||
* AES GCM tags length >= 16 bytes
|
* AES GCM tags length >= 16 bytes
|
||||||
* By default random generator is seeded by the TRNG, but not used to
|
* By default random generator is seeded by the TRNG, but not used to
|
||||||
generate all random data. `WOLFSSL_SILABS_TRNG` can be set to
|
generate all random data. `WOLFSSL_SILABS_TRNG` can be set to
|
||||||
generate all random data with hardware TRNG, but requesting too
|
generate all random data with hardware TRNG. On early SE firmware
|
||||||
much data or too quickly may result in system reset and setting
|
versions requesting too much data or too quickly may result in
|
||||||
`SESYSREQ`.
|
system reset and setting `SESYSREQ`.
|
||||||
|
|
||||||
### Benchmarks
|
## Benchmarks
|
||||||
|
|
||||||
See our [benchmarks](https://www.wolfssl.com/docs/benchmarks/) on the wolfSSL website.
|
See our [benchmarks](https://www.wolfssl.com/docs/benchmarks/) on the wolfSSL website.
|
||||||
|
|
||||||
|
```
|
||||||
|
RNG 2 MB took 1.004 seconds, 1.897 MB/s
|
||||||
|
AES-128-CBC-enc 5 MB took 1.001 seconds, 4.902 MB/s
|
||||||
|
AES-128-CBC-dec 5 MB took 1.004 seconds, 4.912 MB/s
|
||||||
|
AES-192-CBC-enc 5 MB took 1.002 seconds, 4.800 MB/s
|
||||||
|
AES-192-CBC-dec 5 MB took 1.000 seconds, 4.810 MB/s
|
||||||
|
AES-256-CBC-enc 5 MB took 1.001 seconds, 4.707 MB/s
|
||||||
|
AES-256-CBC-dec 5 MB took 1.005 seconds, 4.713 MB/s
|
||||||
|
AES-128-GCM-enc 4 MB took 1.000 seconds, 4.468 MB/s
|
||||||
|
AES-128-GCM-dec 4 MB took 1.005 seconds, 4.324 MB/s
|
||||||
|
AES-192-GCM-enc 4 MB took 1.003 seconds, 4.381 MB/s
|
||||||
|
AES-192-GCM-dec 4 MB took 1.001 seconds, 4.244 MB/s
|
||||||
|
AES-256-GCM-enc 4 MB took 1.005 seconds, 4.300 MB/s
|
||||||
|
AES-256-GCM-dec 4 MB took 1.002 seconds, 4.166 MB/s
|
||||||
|
AES-CCM-Enc 4 MB took 1.005 seconds, 4.203 MB/s
|
||||||
|
AES-CCM-Dec 4 MB took 1.005 seconds, 4.057 MB/s
|
||||||
|
SHA 7 MB took 1.000 seconds, 7.202 MB/s
|
||||||
|
SHA-224 7 MB took 1.001 seconds, 7.341 MB/s
|
||||||
|
SHA-256 7 MB took 1.000 seconds, 7.349 MB/s
|
||||||
|
HMAC-SHA 6 MB took 1.001 seconds, 6.390 MB/s
|
||||||
|
HMAC-SHA224 6 MB took 1.003 seconds, 6.475 MB/s
|
||||||
|
HMAC-SHA256 6 MB took 1.000 seconds, 6.470 MB/s
|
||||||
|
ECC 256 key gen 169 ops took 1.003 sec, avg 5.935 ms, 168.495 ops/sec
|
||||||
|
ECDHE 256 agree 184 ops took 1.003 sec, avg 5.451 ms, 183.450 ops/sec
|
||||||
|
ECDSA 256 sign 158 ops took 1.010 sec, avg 6.392 ms, 156.436 ops/sec
|
||||||
|
ECDSA 256 verify 148 ops took 1.001 sec, avg 6.764 ms, 147.852 ops/sec
|
||||||
|
```
|
||||||
|
|
||||||
### Benchmarks and Memory Use
|
### Benchmarks and Memory Use
|
||||||
|
|
||||||
Software only implementation (ERF32, Fast Math):
|
Software only implementation (SILABS_SE_ACCEL, Fast Math):
|
||||||
|
|
||||||
```
|
```
|
||||||
```
|
```
|
||||||
@ -55,6 +76,6 @@ Peak Heap:
|
|||||||
Total:
|
Total:
|
||||||
```
|
```
|
||||||
|
|
||||||
## Support
|
# Support
|
||||||
|
|
||||||
Email us at [support@wolfssl.com](mailto:support@wolfssl.com).
|
Email us at [support@wolfssl.com](mailto:support@wolfssl.com).
|
||||||
|
@ -81,7 +81,9 @@ noinst_HEADERS+= \
|
|||||||
wolfssl/wolfcrypt/port/caam/wolfcaam.h \
|
wolfssl/wolfcrypt/port/caam/wolfcaam.h \
|
||||||
wolfssl/wolfcrypt/port/caam/wolfcaam_sha.h \
|
wolfssl/wolfcrypt/port/caam/wolfcaam_sha.h \
|
||||||
wolfssl/wolfcrypt/port/silabs/silabs_aes.h \
|
wolfssl/wolfcrypt/port/silabs/silabs_aes.h \
|
||||||
|
wolfssl/wolfcrypt/port/silabs/silabs_ecc.h \
|
||||||
wolfssl/wolfcrypt/port/silabs/silabs_hash.h \
|
wolfssl/wolfcrypt/port/silabs/silabs_hash.h \
|
||||||
|
wolfssl/wolfcrypt/port/silabs/silabs_random.h \
|
||||||
wolfssl/wolfcrypt/port/st/stm32.h \
|
wolfssl/wolfcrypt/port/st/stm32.h \
|
||||||
wolfssl/wolfcrypt/port/st/stsafe.h \
|
wolfssl/wolfcrypt/port/st/stsafe.h \
|
||||||
wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h \
|
wolfssl/wolfcrypt/port/Espressif/esp32-crypt.h \
|
||||||
|
Reference in New Issue
Block a user