Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
a95a4fa
F-8673 - Lock the cached empty user PIN state
aidangarske Oct 6, 2026
09bc036
F-8662 - Clear the derived key and decoded objects on failed login
aidangarske Oct 6, 2026
7976f1c
F-5080 - Keep the PIN lockout armed when failed logins race
aidangarske Oct 6, 2026
33fa0d8
F-4962 - Apply the SO login lockout to C_SetPIN
aidangarske Oct 6, 2026
d0bc59a
F-6495 - Apply the user login lockout to C_SetPIN
aidangarske Oct 6, 2026
f0084eb
F-13244 - Decide and log out on last session close under one lock
aidangarske Oct 6, 2026
4f84455
F-5253 - Hold the token lock while walking session objects in find
aidangarske Oct 6, 2026
a433096
F-8663 - Protect every token object on logout despite a failure
aidangarske Oct 6, 2026
03b7f2e
F-8642 - Stop token reset when token initialization fails
aidangarske Oct 6, 2026
fb34434
F-4958 - Read login state under the slot lock when finding objects
aidangarske Oct 6, 2026
f286ea1
F-4267 - Read object flags under the token lock in object lookup
aidangarske Oct 6, 2026
12f06a5
F-11509 - Invalidate private session objects on logout
aidangarske Oct 6, 2026
77cc056
F-4262 - Reject negative stored array lengths when loading token objects
aidangarske Oct 6, 2026
2ed90d3
F-5078 - Grow stored array buffers only as data is read
aidangarske Oct 6, 2026
6725f11
F-13814 - Set data object lengths only after a successful storage read
aidangarske Oct 6, 2026
d45a080
F-4264 - Reject stored private key records shorter than the tag
aidangarske Oct 6, 2026
c6de882
F-4733 - Bound stored DH public key length to the key buffer
aidangarske Oct 6, 2026
fbbe1e8
F-3641 - Reject stored trust records that are not the trust size
aidangarske Oct 6, 2026
340cc37
F-3404 - Write the encoded TPM key into the caller's buffer
aidangarske Oct 6, 2026
b800037
F-8643 - Keep key buffer allocation errors in TPM RSA and ECC encoders
aidangarske Oct 6, 2026
3ba23ff
F-13813 - Release DH and symmetric key data when encoding fails
aidangarske Oct 6, 2026
90210fe
F-3017 - Zeroize encoded private keys when RSA, ECC or ML-DSA encodin…
aidangarske Oct 6, 2026
b1b9fe5
F-3413 - Zeroize decrypted private key buffers on every decode path
aidangarske Oct 6, 2026
d154ded
F-8667 - Scrub symmetric and DH key buffers after a failed decrypt
aidangarske Oct 6, 2026
9bd0d5c
F-10400 - Authenticate stored object policy with the key encryption
aidangarske Oct 7, 2026
af26c4c
F-5763 - Release the replaced operation when a new one is initialized
aidangarske Oct 6, 2026
259e67c
F-8664 - Release operation state on terminating error paths
aidangarske Oct 6, 2026
2cd7e9a
F-11514 - Free buffered AES-GCM data when GCM parameters are reset
aidangarske Oct 6, 2026
907ac56
F-11506 - Free AES and HMAC contexts when key setup fails
aidangarske Oct 6, 2026
7bd40a4
F-12480 - Drop the session reference to a destroyed AES key read at o…
aidangarske Oct 6, 2026
bbe87e4
F-4071 - Scrub accumulated MAC input before growing or freeing it
aidangarske Oct 6, 2026
38c005e
F-8660 - Release accumulated MAC input when the session operation ends
aidangarske Oct 6, 2026
f37f753
F-8641 - Require an active digest before saving operation state
aidangarske Oct 6, 2026
1180d43
F-5871 - Release the active operation before restoring saved state
aidangarske Oct 6, 2026
9ad23fa
F-11510 - Validate saved operation state before changing the session
aidangarske Oct 6, 2026
913a2e6
F-5870 - Reject key handles when restoring a keyless operation state
aidangarske Oct 6, 2026
02662a2
F-10394 - Cancel the active operation when Init is called with a NULL…
aidangarske Oct 6, 2026
e679458
F-2769 - Blank pad fixed-length info fields
aidangarske Oct 7, 2026
718aee1
F-6230 - Report the token clock only when a valid UTC time is available
aidangarske Oct 7, 2026
ff6ac8e
F-6053 - Advertise wrap and unwrap only for mechanisms C_WrapKey supp…
aidangarske Oct 7, 2026
955d785
F-12477 - Report generic secret key generation sizes in bits
aidangarske Oct 7, 2026
cfe9def
F-13248 - Advertise PBKDF2 and PKCS#12 PBE key generation only with HMAC
aidangarske Oct 7, 2026
00854e7
F-8634 - Report C_OpenSession failures instead of returning CKR_OK
aidangarske Oct 7, 2026
e96c802
F-10370 - Document how C_Initialize uses pInitArgs
aidangarske Oct 7, 2026
e91ec4b
F-10371 - Remove the wrong NULL pulCount return from C_GetMechanismLi…
aidangarske Oct 7, 2026
75da0eb
F-10372 - Document CKR_PIN_LEN_RANGE for C_InitToken PIN length
aidangarske Oct 7, 2026
2ab8f0c
F-10373 - Document CKR_PIN_LEN_RANGE for C_InitPIN PIN length
aidangarske Oct 7, 2026
5fcc280
F-10374 - Document CKR_PIN_LEN_RANGE for the C_SetPIN new PIN length
aidangarske Oct 7, 2026
ab24e28
F-9413 - Correct the WP11_Slot_UserLogin return code docs
aidangarske Oct 7, 2026
260edee
F-10378 - Fix file store path lookup build with WOLFPKCS11_NO_ENV
aidangarske Oct 6, 2026
b3b3607
F-10379 - Keep token object count intact when an object store fails
aidangarske Oct 6, 2026
6ca778e
F-10386 - Report token store commit failures to the caller
aidangarske Oct 6, 2026
d03529f
F-10384 - Keep the stored token record until the new one is committed
aidangarske Oct 6, 2026
4fd257e
F-11505 - Report token store failures from C_Finalize
aidangarske Oct 6, 2026
e1d073d
F-8645 - Undo partial library initialization on failure
aidangarske Oct 6, 2026
26b4e77
F-10385 - Handle a failed object allocation without freeing NULL
aidangarske Oct 6, 2026
39cccd1
F-13243 - Report token object unstore failures from object destroy
aidangarske Oct 6, 2026
25a9415
F-2791 - Zeroize token state with wc_ForceZero on finalize
aidangarske Oct 6, 2026
ea58fe1
F-11502 - Propagate token flag read errors during token load
aidangarske Oct 6, 2026
6b08c14
F-10386 - Stage TPM store records in memory until commit
aidangarske Oct 6, 2026
eb5cd91
F-10380 - Size and index post-quantum key records in the TPM store
aidangarske Oct 6, 2026
bd3f285
F-10396 - Reject ECDH shared data when the KDF is CKD_NULL
aidangarske Oct 6, 2026
874aee9
F-4272 - Bound the ECDH public data length before sizing the secret
aidangarske Oct 6, 2026
b24642b
F-1610 - Keep the raw point fallback for an unsupported DER length form
aidangarske Oct 6, 2026
1e912fa
F-5159 - Bound the DER point length by the ECDH public data length
aidangarske Oct 6, 2026
3e96bd3
F-10383 - Clear the ECDH key RNG before freeing the stack RNG
aidangarske Oct 6, 2026
a82c511
F-6959 - Require user login to derive a private key object
aidangarske Oct 6, 2026
adbed87
F-13818 - Set derived key initial states before adding the object
aidangarske Oct 6, 2026
1ef632d
F-13816 - Derive key historical flags from the base key history
aidangarske Oct 6, 2026
aafebc1
F-3403 - Map derived key length failures to a PKCS#11 return value
aidangarske Oct 6, 2026
f1b1e84
F-4687 - Reject HKDF salt and info lengths beyond 32 bits
aidangarske Oct 6, 2026
1e870ae
F-4804 - Reject an extended master secret session hash length beyond …
aidangarske Oct 6, 2026
31a0d8b
F-4274 - Bound the DH peer public value length by the largest support…
aidangarske Oct 6, 2026
6e33db0
F-5077 - Reject an AES-CBC encrypt-data length beyond 32 bits
aidangarske Oct 6, 2026
8ed5274
F-10389 - Require whole-byte sizes for each TLS key material field
aidangarske Oct 6, 2026
1c38060
F-10381 - Use one feature guard for the derive key locals and helpers
aidangarske Oct 6, 2026
5d9ee7b
F-11518 - Require TLS random and session hash pointers before deriving
aidangarske Oct 6, 2026
9dad180
F-4066 - Report an unsupported TLS master secret version as a paramet…
aidangarske Oct 6, 2026
97cf676
F-13245 - Reject a derived key length larger than the derived secret
aidangarske Oct 6, 2026
1970c0a
F-3636 - Set derive historical flags on TLS key material keys
aidangarske Oct 6, 2026
bcbee91
F-4074 - Add TLS key material keys only after all attributes are set
aidangarske Oct 6, 2026
28c52a6
F-8644 - Require an HKDF salt key handle to be a symmetric secret key
aidangarske Oct 6, 2026
edebd5f
F-11503 - Default companion RSA public key to a session object on unwrap
aidangarske Oct 6, 2026
94cdb13
F-12460 - Validate CKA_TOKEN as a boolean attribute
aidangarske Oct 6, 2026
4e9c014
F-5255 - Reject oversized attribute counts in SetAttributeValue
aidangarske Oct 6, 2026
1ae757b
F-5254 - Reject oversized attribute counts in C_GetAttributeValue
aidangarske Oct 6, 2026
49470e2
F-5256 - Use a CK_ULONG index in C_FindObjects
aidangarske Oct 6, 2026
8cb395e
F-13831 - Reject post-creation changes to copy-only attributes
aidangarske Oct 6, 2026
62e98c3
F-11511 - Reject derived key state attributes in creation templates
aidangarske Oct 6, 2026
4755132
F-8670 - Reject a conflicting CKA_CLASS during object creation
aidangarske Oct 6, 2026
7d9971c
F-13242 - Validate the whole template before applying attribute updates
aidangarske Oct 6, 2026
d7bbd36
F-4268 - Reject attribute lengths that do not fit the object setters
aidangarske Oct 6, 2026
21bda74
F-2773 - Reject CKA_ALWAYS_AUTHENTICATE since it cannot be enforced
aidangarske Oct 6, 2026
9ab7067
F-11517 - Reject NULL values with a non-zero length for data attributes
aidangarske Oct 6, 2026
c1bc294
F-6234 - Accept an empty CKA_START_DATE or CKA_END_DATE to clear the …
aidangarske Oct 6, 2026
2e00fa6
F-12462 - Keep the previous attribute value when a replacement fails
aidangarske Oct 6, 2026
79fa060
F-2030 - Read CKA_CERTIFICATE_CATEGORY as a full CK_ULONG
aidangarske Oct 6, 2026
4e7984e
F-11500 - Reject key material changes on existing objects
aidangarske Oct 6, 2026
5d2e8ca
F-10387 - Validate a secret key update before replacing the key
aidangarske Oct 6, 2026
b8ad670
F-10399 - Clear the whole DH key buffer before storing a private value
aidangarske Oct 6, 2026
5bf7c45
F-11515 - Test that asymmetric private components stay fixed after cr…
aidangarske Oct 6, 2026
5e6251b
F-13815 - Require the EC curve before importing EC key material
aidangarske Oct 6, 2026
915d77a
F-5158 - Reject RSA modulus sizes larger than the supported maximum
aidangarske Oct 6, 2026
ee58c75
F-12458 - Keep the certificate value when an update omits CKA_VALUE
aidangarske Oct 6, 2026
b7e4404
F-4528 - Allocate the new certificate value before freeing the old one
aidangarske Oct 6, 2026
276407d
F-11501 - Drop the storage alias when replacing a loaded certificate …
aidangarske Oct 7, 2026
aad61a3
F-4318 - Reject DH domain parameters larger than the supported key size
aidangarske Oct 7, 2026
b538bb1
F-6660 - Require a certificate value when creating a certificate object
aidangarske Oct 7, 2026
baa638e
F-6661 - Require a key value when creating a secret key object
aidangarske Oct 7, 2026
25bdd95
F-11507 - Require RSA and EC key material when creating key objects
aidangarske Oct 7, 2026
c2db83e
F-6662 - Allow data objects to be created without CKA_VALUE
aidangarske Oct 7, 2026
fdd6c2d
F-10382 - Report unavailable EC and PQ key attributes as errors
aidangarske Oct 7, 2026
c0848e0
F-6955 - Return CKA_CERTIFICATE_CATEGORY from certificate objects
aidangarske Oct 7, 2026
213113d
F-6956 - Expose key CKA_SUBJECT and restrict issuer and serial to certs
aidangarske Oct 7, 2026
82a5fb0
F-6658 - Preserve CKA_LOCAL when copying an object
aidangarske Oct 7, 2026
92deb0a
F-4061 - Set the ML-DSA parameter set length on a successful read
aidangarske Oct 7, 2026
b9d961b
F-4062 - Answer size queries for trust object certificate hashes
aidangarske Oct 7, 2026
f86ccac
F-6235 - Check the buffer size before encoding the EC curve OID
aidangarske Oct 7, 2026
0f5de67
F-10377 - Report AES-CBC-PAD final block length from C_EncryptFinal
aidangarske Oct 6, 2026
f56b5c5
F-10393 - Reject OAEP source data that is NULL with a non-zero length
aidangarske Oct 6, 2026
ef3bcb8
F-11513 - Restrict AES-CCM nonce length to 7 through 13 bytes
aidangarske Oct 6, 2026
08eb447
F-3143 - Fix AES-CTR C_Decrypt size query to check the output buffer
aidangarske Oct 6, 2026
87dbb2a
F-2378 - Reject AES-CBC and AES-ECB data that is not block aligned
aidangarske Oct 6, 2026
449e8fb
F-12459 - Compute AES check value from a single zero block
aidangarske Oct 6, 2026
d72cf13
F-4963 - Reject out-of-range AES-GCM parameter lengths at init
aidangarske Oct 6, 2026
423182a
F-4959 - Reject out-of-range AES-CCM parameter and MAC lengths at init
aidangarske Oct 6, 2026
51df5b3
F-4735 - Reject OAEP source lengths that do not fit an int
aidangarske Oct 6, 2026
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
10 changes: 10 additions & 0 deletions .github/workflows/unit-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ jobs:
with:
config: --enable-singlethreaded --enable-wolftpm --disable-dh C_EXTRA_FLAGS="-DWOLFPKCS11_TPM_STORE"
check: ./tests/pkcs11str && ./tests/pkcs11test && ./tests/rsa_session_persistence_test
tpm_debug:
uses: ./.github/workflows/build-workflow.yml
with:
config: --enable-singlethreaded --enable-wolftpm --disable-dh --enable-debug C_EXTRA_FLAGS="-DWOLFPKCS11_TPM_STORE"
check: ./tests/token_store_test

no_rsa:
uses: ./.github/workflows/build-workflow.yml
Expand Down Expand Up @@ -50,6 +55,11 @@ jobs:
uses: ./.github/workflows/build-workflow.yml
with:
config: CFLAGS="-DWOLFPKCS11_NO_STORE"
no_env:
uses: ./.github/workflows/build-workflow.yml
with:
config: C_EXTRA_FLAGS="-DWOLFPKCS11_NO_ENV -DWOLFPKCS11_DEFAULT_TOKEN_PATH=./store/default"
check: mkdir -p store && ./tests/pkcs11test
no_aesgcm:
uses: ./.github/workflows/build-workflow.yml
with:
Expand Down
3 changes: 1 addition & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -158,8 +158,7 @@ if(NOT WOLFPKCS11_SINGLE_THREADED)
"-D_POSIX_THREADS")
endif()
else()
set(SINGLE_THREADED 1)
list(APPEND WOLFPKCS11_DEFINITIONS "-DSINGLE_THREADED")
list(APPEND WOLFPKCS11_DEFINITIONS "-DWOLFPKCS11_SINGLE_THREADED")
endif()


Expand Down
4 changes: 2 additions & 2 deletions cmake/options.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ extern "C" {
#endif
#undef DEBUG_WOLFPKCS11
#cmakedefine DEBUG_WOLFPKCS11
#undef SINGLE_THREADED
#cmakedefine SINGLE_THREADED
#undef WOLFPKCS11_SINGLE_THREADED
#cmakedefine WOLFPKCS11_SINGLE_THREADED
#undef NO_RSA
#cmakedefine NO_RSA
#undef WC_NO_RSA_OAEP
Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ AS_IF([ test "x$ENABLED_SINGLETHREADED" = "xno" ],[
])
])

AS_IF([ test "x$ENABLED_SINGLETHREADED" = "xyes" ],[ AM_CFLAGS="-DSINGLE_THREADED $AM_CFLAGS" ])
AS_IF([ test "x$ENABLED_SINGLETHREADED" = "xyes" ],[ AM_CFLAGS="-DWOLFPKCS11_SINGLE_THREADED $AM_CFLAGS" ])

HAVE_PTHREAD=0
AS_IF([test "x$ax_pthread_ok" = "xyes"],[HAVE_PTHREAD=1])
Expand Down
Loading
Loading