Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .skoll-known.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Known issues

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this file relevant to the PR?


Findings already investigated and closed. A scan that raises one of these again is re-reporting settled work; check the code before acting on it.

## EdgeLock (els_pkc) port

- **ECDSA sign/verify stack overflow for digests over 80 bytes.** Not present. Both guards are `inlen > 255 || inlen > sizeof(hash)` (and `hashLen` likewise); the buffer bound is the second half of the condition, and reading only the first half suggests an overflow that cannot happen. `ElsPkcEccSign` and `ElsPkcEccVerify` in `wolfcrypt/src/port/nxp/els_pkc_port.c`, covered by the "oversized digest does not overflow the port buffer" check in the Zephyr sample.
- **`ElsRandom` violating the ELS DRBG word-multiple contract.** Handled deliberately: the whole-word part is generated into the caller's buffer and the remainder comes from a word-sized scratch, because declining would fail the call rather than fall back. Sizes 1 through 33 are exercised in the sample.
- **`ElsSha256Copy` leaking the destination's `msg` and `W` buffers.** Closed: `wc_Sha256Free(dst)` runs before the struct copy, for exactly this reason.
- **`ElsEccKeyGen` not validating the slot with `ElsCheckSlot()`.** By design. On a key generation the reference is a request rather than a lookup: the slot is empty and the key does not exist until the call returns, so a check requiring an active key would reject every valid keygen.
- **`wc_ElsPkc_HashOffloadCount` overstating the offload.** Fixed 2026-09-01; it now increments only after `ElsWait()` succeeds, so it counts engine runs rather than accepted updates.
- **No HMAC arm in the dispatch table.** Deliberate. The ELS HMAC command is one-shot while wolfCrypt drives HMAC incrementally, so an arm would have to buffer whole messages. HMAC is accelerated anyway because the inner hash inherits the devId.
- **RSA encrypt/decrypt (OAEP) declined.** Blocked upstream: every `MCUXCLRSA_ENCRYPT_*` and `_DECRYPT_*` workarea macro in NXP's `mcuxClRsa_MemoryConsumption.h` for rw61x is an unsubstituted `$(...)` template placeholder and will not compile.
- **AES-192, Ed448, deterministic ECDSA, SHA-1/SHA-3, AES-CCM/XTS/CFB/OFB declined.** The hardware has no such capability; each decline sits next to a comment saying so.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4546,6 +4546,7 @@ if(WOLFSSL_EXAMPLES)
tests/api/test_hpke.c
tests/api/test_kdf.c
tests/api/test_she.c
tests/api/test_keystore.c
tests/api/test_async.c
tests/api/test_des3.c
tests/api/test_chacha.c
Expand Down
3 changes: 3 additions & 0 deletions cmake/functions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -1296,6 +1296,9 @@ function(generate_lib_src_list LIB_SOURCES)
# Corresponds to wolfcrypt/src/include.am
if(BUILD_CRYPTOCB)
list(APPEND LIB_SOURCES wolfcrypt/src/cryptocb.c)
# entirely #ifdef WOLF_CRYPTO_CB_KEYSTORE, so it costs nothing when the
# key store facility is not enabled
list(APPEND LIB_SOURCES wolfcrypt/src/wc_keystore.c)
endif()

if(BUILD_SHE)
Expand Down
9 changes: 6 additions & 3 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -11744,7 +11744,7 @@ fi

# Crypto Callbacks Utils (Copy/Free/etc)
AC_ARG_ENABLE([cryptocbutils],
[AS_HELP_STRING([--enable-cryptocbutils@<:@=copy,free,setkey,export,...@:>@],
[AS_HELP_STRING([--enable-cryptocbutils@<:@=copy,free,setkey,export,keystore,...@:>@],
[Enable crypto callback utilities (default: all)])],
[ ENABLED_CRYPTOCB_UTILS=$enableval ],
[ ENABLED_CRYPTOCB_UTILS=no ]
Expand All @@ -11757,7 +11757,7 @@ if test "$ENABLED_CRYPTOCB_UTILS" != "no"; then

if test "$ENABLED_CRYPTOCB_UTILS" = "yes"; then
# Enable all utilities
AM_CFLAGS="$AM_CFLAGS -DWOLF_CRYPTO_CB_COPY -DWOLF_CRYPTO_CB_FREE -DWOLF_CRYPTO_CB_SETKEY -DWOLF_CRYPTO_CB_EXPORT_KEY"
AM_CFLAGS="$AM_CFLAGS -DWOLF_CRYPTO_CB_COPY -DWOLF_CRYPTO_CB_FREE -DWOLF_CRYPTO_CB_SETKEY -DWOLF_CRYPTO_CB_EXPORT_KEY -DWOLF_CRYPTO_CB_KEYSTORE"
else
# Parse comma-separated list
OIFS="$IFS"
Expand All @@ -11776,8 +11776,11 @@ if test "$ENABLED_CRYPTOCB_UTILS" != "no"; then
export)
AM_CFLAGS="$AM_CFLAGS -DWOLF_CRYPTO_CB_EXPORT_KEY"
;;
keystore)
AM_CFLAGS="$AM_CFLAGS -DWOLF_CRYPTO_CB_KEYSTORE"
;;
*)
AC_MSG_ERROR([Unknown cryptocbutils option: $util. Valid options: copy, free, setkey, export])
AC_MSG_ERROR([Unknown cryptocbutils option: $util. Valid options: copy, free, setkey, export, keystore])
;;
esac
done
Expand Down
Loading
Loading