SiLabs: README and include updates

This commit is contained in:
Elms
2020-11-30 16:04:27 -08:00
parent 9f7ef0b3e6
commit e1e8ca48c3
3 changed files with 49 additions and 24 deletions

View File

@ -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 \

View File

@ -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).

View File

@ -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 \