Skip to content

Commit dcafe9a

Browse files
dgarskedanielinux
authored andcommitted
Add STM32H5 PKA support.
1 parent fe7b6f1 commit dcafe9a

File tree

3 files changed

+65
-37
lines changed

3 files changed

+65
-37
lines changed

IDE/STM32Cube/STM32_Benchmarks.md

Lines changed: 61 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1249,51 +1249,75 @@ Benchmark Test: Return code 0
12491249
12501250
## STM32H563ZI
12511251
1252-
Cortex-M33 at 150MHz
1252+
Cortex-M33 at 250MHz with STM32 RNG, Hash and PKA
12531253
1254-
### STM32H563ZI (No STM HW Crypto, SP Math ASM Cortex M)
1254+
### STM32H563ZI (STM32 RNG and Hash, SP Math ASM Cortex M)
12551255
12561256
```
12571257
------------------------------------------------------------------------------
1258-
wolfSSL version 5.6.0
1258+
wolfSSL version 5.8.2
12591259
------------------------------------------------------------------------------
12601260
Running wolfCrypt Benchmarks...
12611261
wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each)
1262-
RNG 2 MB took 1.011 seconds, 1.950 MB/s
1263-
AES-128-CBC-enc 4 MB took 1.000 seconds, 3.686 MB/s
1264-
AES-128-CBC-dec 4 MB took 1.004 seconds, 3.723 MB/s
1265-
AES-192-CBC-enc 3 MB took 1.004 seconds, 3.187 MB/s
1266-
AES-192-CBC-dec 3 MB took 1.000 seconds, 3.046 MB/s
1267-
AES-256-CBC-enc 3 MB took 1.000 seconds, 2.816 MB/s
1268-
AES-256-CBC-dec 3 MB took 1.004 seconds, 2.728 MB/s
1269-
AES-128-GCM-enc 2 MB took 1.000 seconds, 2.048 MB/s
1270-
AES-128-GCM-dec 2 MB took 1.004 seconds, 2.091 MB/s
1271-
AES-192-GCM-enc 2 MB took 1.008 seconds, 1.879 MB/s
1272-
AES-192-GCM-dec 2 MB took 1.011 seconds, 1.874 MB/s
1273-
AES-256-GCM-enc 2 MB took 1.000 seconds, 1.741 MB/s
1274-
AES-256-GCM-dec 2 MB took 1.012 seconds, 1.745 MB/s
1275-
AES-128-GCM-enc-no_AAD 2 MB took 1.008 seconds, 2.057 MB/s
1276-
AES-128-GCM-dec-no_AAD 2 MB took 1.008 seconds, 2.108 MB/s
1277-
AES-192-GCM-enc-no_AAD 2 MB took 1.000 seconds, 1.894 MB/s
1278-
AES-192-GCM-dec-no_AAD 2 MB took 1.000 seconds, 1.894 MB/s
1279-
AES-256-GCM-enc-no_AAD 2 MB took 1.004 seconds, 1.759 MB/s
1280-
AES-256-GCM-dec-no_AAD 2 MB took 1.004 seconds, 1.759 MB/s
1281-
GMAC Table 4-bit 4 MB took 1.000 seconds, 4.400 MB/s
1282-
CHACHA 8 MB took 1.000 seconds, 8.448 MB/s
1283-
CHA-POLY 6 MB took 1.000 seconds, 5.683 MB/s
1284-
POLY1305 26 MB took 1.000 seconds, 25.574 MB/s
1285-
SHA-256 5 MB took 1.004 seconds, 4.972 MB/s
1286-
HMAC-SHA256 5 MB took 1.000 seconds, 4.941 MB/s
1287-
RSA 2048 public 122 ops took 1.000 sec, avg 8.197 ms, 122.000 ops/sec
1288-
RSA 2048 private 4 ops took 1.231 sec, avg 307.750 ms, 3.249 ops/sec
1289-
DH 2048 key gen 7 ops took 1.000 sec, avg 142.857 ms, 7.000 ops/sec
1290-
DH 2048 agree 8 ops took 1.141 sec, avg 142.625 ms, 7.011 ops/sec
1291-
ECC [ SECP256R1] 256 key gen 204 ops took 1.000 sec, avg 4.902 ms, 204.000 ops/sec
1292-
ECDHE [ SECP256R1] 256 agree 94 ops took 1.007 sec, avg 10.713 ms, 93.347 ops/sec
1293-
ECDSA [ SECP256R1] 256 sign 136 ops took 1.012 sec, avg 7.441 ms, 134.387 ops/sec
1294-
ECDSA [ SECP256R1] 256 verify 66 ops took 1.012 sec, avg 15.333 ms, 65.217 ops/sec
1262+
RNG 400 KiB took 1.015 seconds, 394.089 KiB/s
1263+
AES-128-CBC-enc 3 MiB took 1.000 seconds, 2.881 MiB/s
1264+
AES-128-CBC-dec 3 MiB took 1.004 seconds, 2.723 MiB/s
1265+
AES-192-CBC-enc 3 MiB took 1.000 seconds, 2.515 MiB/s
1266+
AES-192-CBC-dec 2 MiB took 1.004 seconds, 2.286 MiB/s
1267+
AES-256-CBC-enc 2 MiB took 1.004 seconds, 2.237 MiB/s
1268+
AES-256-CBC-dec 2 MiB took 1.004 seconds, 2.116 MiB/s
1269+
AES-128-GCM-enc 2 MiB took 1.008 seconds, 1.695 MiB/s
1270+
AES-128-GCM-dec 2 MiB took 1.008 seconds, 1.671 MiB/s
1271+
AES-192-GCM-enc 2 MiB took 1.004 seconds, 1.556 MiB/s
1272+
AES-192-GCM-dec 2 MiB took 1.004 seconds, 1.532 MiB/s
1273+
AES-256-GCM-enc 1 MiB took 1.008 seconds, 1.405 MiB/s
1274+
AES-256-GCM-dec 1 MiB took 1.015 seconds, 1.419 MiB/s
1275+
AES-128-GCM-enc-no_AAD 2 MiB took 1.000 seconds, 1.709 MiB/s
1276+
AES-128-GCM-dec-no_AAD 2 MiB took 1.004 seconds, 1.678 MiB/s
1277+
AES-192-GCM-enc-no_AAD 2 MiB took 1.000 seconds, 1.562 MiB/s
1278+
AES-192-GCM-dec-no_AAD 2 MiB took 1.000 seconds, 1.538 MiB/s
1279+
AES-256-GCM-enc-no_AAD 1 MiB took 1.004 seconds, 1.410 MiB/s
1280+
AES-256-GCM-dec-no_AAD 1 MiB took 1.007 seconds, 1.430 MiB/s
1281+
GMAC Table 4-bit 4 MiB took 1.000 seconds, 3.897 MiB/s
1282+
AES-128-CFB 950 KiB took 1.008 seconds, 942.460 KiB/s
1283+
AES-192-CFB 3 MiB took 1.008 seconds, 2.495 MiB/s
1284+
AES-256-CFB 2 MiB took 1.000 seconds, 2.222 MiB/s
1285+
CHACHA 9 MiB took 1.000 seconds, 9.009 MiB/s
1286+
CHA-POLY 6 MiB took 1.000 seconds, 5.591 MiB/s
1287+
MD5 20 MiB took 1.000 seconds, 20.312 MiB/s
1288+
POLY1305 24 MiB took 1.000 seconds, 23.584 MiB/s
1289+
SHA 21 MiB took 1.000 seconds, 21.045 MiB/s
1290+
SHA-224 21 MiB took 1.000 seconds, 20.752 MiB/s
1291+
SHA-256 21 MiB took 1.000 seconds, 20.703 MiB/s
1292+
SHA-384 22 MiB took 1.000 seconds, 21.729 MiB/s
1293+
SHA-512 22 MiB took 1.000 seconds, 21.631 MiB/s
1294+
SHA-512/224 22 MiB took 1.000 seconds, 21.655 MiB/s
1295+
SHA-512/256 22 MiB took 1.000 seconds, 21.655 MiB/s
1296+
SHA3-224 2 MiB took 1.000 seconds, 2.026 MiB/s
1297+
SHA3-256 2 MiB took 1.008 seconds, 1.913 MiB/s
1298+
SHA3-384 1 MiB took 1.008 seconds, 1.477 MiB/s
1299+
SHA3-512 1 MiB took 1.016 seconds, 1.033 MiB/s
1300+
HMAC-MD5 20 MiB took 1.000 seconds, 20.068 MiB/s
1301+
HMAC-SHA 20 MiB took 1.000 seconds, 20.288 MiB/s
1302+
HMAC-SHA224 20 MiB took 1.000 seconds, 19.751 MiB/s
1303+
HMAC-SHA256 20 MiB took 1.000 seconds, 19.727 MiB/s
1304+
HMAC-SHA384 20 MiB took 1.000 seconds, 20.435 MiB/s
1305+
HMAC-SHA512 20 MiB took 1.000 seconds, 20.361 MiB/s
1306+
PBKDF2 320 bytes took 1.043 seconds, 306.807 bytes/s
1307+
RSA 2048 public 186 ops took 1.000 sec, avg 5.376 ms, 186.000 ops/sec
1308+
RSA 2048 private 6 ops took 1.024 sec, avg 170.667 ms, 5.859 ops/sec
1309+
DH 2048 key gen 13 ops took 1.040 sec, avg 80.000 ms, 12.500 ops/sec
1310+
DH 2048 agree 14 ops took 1.118 sec, avg 79.857 ms, 12.522 ops/sec
1311+
ECC [ SECP256R1] 256 key gen 330 ops took 1.000 sec, avg 3.030 ms, 330.000 ops/sec
1312+
ECDHE [ SECP256R1] 256 agree 174 ops took 1.004 sec, avg 5.770 ms, 173.307 ops/sec
1313+
ECDSA [ SECP256R1] 256 sign 192 ops took 1.000 sec, avg 5.208 ms, 192.000 ops/sec
1314+
ECDSA [ SECP256R1] 256 verify 116 ops took 1.015 sec, avg 8.750 ms, 114.286 ops/sec
1315+
CURVE 25519 key gen 5 ops took 1.047 sec, avg 209.400 ms, 4.776 ops/sec
1316+
CURVE 25519 agree 6 ops took 1.251 sec, avg 208.500 ms, 4.796 ops/sec
1317+
ED 25519 key gen 5 ops took 1.058 sec, avg 211.600 ms, 4.726 ops/sec
1318+
ED 25519 sign 6 ops took 1.294 sec, avg 215.667 ms, 4.637 ops/sec
1319+
ED 25519 verify 4 ops took 1.769 sec, avg 442.250 ms, 2.261 ops/sec
12951320
Benchmark complete
1296-
Benchmark Test: Return code 0
12971321
```
12981322
12991323

IDE/STM32Cube/default_conf.ftl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ extern ${variable.value} ${variable.name};
221221
#define WOLFSSL_STM32H5
222222
#define STM32_HAL_V2
223223
#undef NO_STM32_HASH
224+
#define WOLFSSL_STM32_PKA
224225
#ifndef HAL_CONSOLE_UART
225226
#define HAL_CONSOLE_UART huart3
226227
#endif

wolfcrypt/src/port/st/stm32.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@
7070
#elif defined(WOLFSSL_STM32N6)
7171
#include <stm32n6xx_hal_conf.h>
7272
#include <stm32n6xx_hal_pka.h>
73+
#elif defined(WOLFSSL_STM32H5)
74+
#include <stm32h5xx_hal_conf.h>
75+
#include <stm32h5xx_hal_pka.h>
7376
#else
7477
#error Please add the hal_pk.h include
7578
#endif

0 commit comments

Comments
 (0)