Angus Gratton
88b264cfce
mbedTLS SHA: Fix cloning of SHA-384 digests
...
Hardware unit only reads 384 bits of state for SHA-384 LOAD,
which is enough for final digest but not enough if you plan to
resume digest in software.
2016-11-25 19:26:30 +11:00
Angus Gratton
dfcb241850
mbedTLS SHA Acceleration: Add missing esp_sha_lock_engine() function
2016-11-22 20:57:01 +11:00
Angus Gratton
2561b68af8
hwcrypto: Fixes for disabling one hardware unit causing reset of a different unit
...
ROM functions reset related units, but this can have problems in a
multithreaded environment.
2016-11-22 20:42:38 +11:00
Angus Gratton
c48612e516
mbedTLS SHA acceleration: Allow concurrent digest calculation, works with TLS
...
SHA hardware allows each of SHA1, SHA256, SHA384&SHA512 to calculate digests
concurrently.
Currently incompatible with AES acceleration due to a hardware reset problem.
Ref TW7111.
2016-11-22 20:42:38 +11:00
Angus Gratton
46a9754b8e
hwcrypto sha: Fix initialisation of SHA hardware in esp_shaX_start functions
...
Problem exposed by previous commit.
2016-09-09 14:27:53 +10:00
Wu Jian Gang
95defc7d32
mbedtls: Use hardware accelerated AES, SHA, bignum
2016-09-08 17:41:43 +08:00
Angus Gratton
2211759cc0
hwcrypto aes: Fix bugs w/ ECB decrypt, CFB modes
2016-09-08 17:02:52 +08:00
Angus Gratton
d951ab2661
hwcrypto aes: Performance tweak, only write key to hardware once
...
Shaves ~10% off time to compute AES-CBC
2016-09-08 16:47:37 +08:00
Angus Gratton
a32e954f67
hwcrypto sha: Feed one block at a time to hardware SHA implementation
...
Fixes a bug where some longer block sizes produced incorrect results.
2016-09-08 16:47:34 +08:00
Angus Gratton
0a970e3a25
hwcrypto: Match API completely to mbedTLS naming conventions
2016-09-08 16:47:31 +08:00
Angus Gratton
2580c07ae6
esp32 hwcrypto: Make SHA-224 an obvious no-op for now
...
This is not the long term solution...
2016-09-08 16:47:28 +08:00
Angus Gratton
0647d1e922
esp32 hwcrypto: Rework hardware crypto locking
...
Should protect against concurrent use of hardware crypto primitives,
with good performance.
Not necessary to call esp_aes_acquire_hardware(),
esp_sha_acquire_hardware(), etc when using these APIs. These are
provided for external users calling the hardware crypto hardware
directly, to coexist with this implementation.
2016-09-08 16:47:13 +08:00
Angus Gratton
4167b68eef
esp32: Move hardware crypto implementation/headers to hwcrypto directories
2016-09-08 16:46:28 +08:00