Skip to content

p11 rsa pad#1

Open
ColtonWilley wants to merge 6 commits into
masterfrom
my_p11_rsa_pad
Open

p11 rsa pad#1
ColtonWilley wants to merge 6 commits into
masterfrom
my_p11_rsa_pad

Conversation

@ColtonWilley

Copy link
Copy Markdown
Owner

Description

Please describe the scope of the fix or feature addition.

Fixes zd#

Testing

How did you test?

Checklist

  • added tests
  • updated/added doxygen
  • updated appropriate READMEs
  • Updated manual and documentation

space88man and others added 6 commits July 25, 2024 07:40
- add struct RsaPadding to pass padding information to CryptoCb
- OAEP decryption: struct RsaPadding is used to return 'unpadded'
  status flag to skip software unpadding
- wc_pkcs11.h: add utility functions to map wc constants
  to CKM constants (hash / mgf)
- add support for RSA_PKCS, RSA_PKCS_PSS, RSA_PKCS_OAEP
- support private key sign: RSA_PKCS, RSA_PKCS_PSS
- support private key encrypt: RSA_PKCS_OAEP
- no support for token public key PKCS
- compile-time gated by -DNO_PKCS11_RSA_PKCS
- add version of wc_CryptoCb_Rsa that includes padding
  information for use by device callback
- adds support for passing padding information to RSA callback for
  device-supported  RSA padding.
- compile-time gated by -DWOLF_CRYPTO_CB_NOPAD
ColtonWilley pushed a commit that referenced this pull request Jun 4, 2026
1. BasicConstraints pathLenConstraint absent vs. 0 —
get_ext_d2i/set_ext/V3_EXT_d2i now distinguish "no constraint" from 0
per RFC 5280 §4.2.1.9, using the existing basicConstPlSet flag.
2. GENERAL_NAME_print GEN_DIRNAME — added missing return-value
normalization so the directory name is actually printed (was emitting
only DirName:).
3. GENERAL_NAME_print GEN_DNS — use ASN1_STRING_print like the EMAIL/URI
cases, avoiding NULL-strData deref and NUL-truncation.
4. X509_print BasicConstraints — print , pathlen:N to match OpenSSL.
5. X509_print Extended Key Usage — print Any Extended Key Usage (was
omitted).
6. get_ext_d2i CRL_DIST_OID double-free — null gn immediately after
ownership transfers to dp, so an error from the next push doesn't free
it twice.
7. X509V3_EXT_print SAN truncation/failure — match XSNPRINTF size cap to
the allocation; was truncating at indent==1 and failing at indent>=2.
8. X509V3_EXT_print AUTH_KEY/SUBJ_KEY NULL deref — NULL-check
i2s_ASN1_STRING return before passing to %s.
9. X509_add_ext SAN type confusion — reject DIRNAME/RID/X400/EDIPARTY;
only the ASN1_STRING*-backed types are read via gn->d.ia5. Was
performing a wild-pointer XMEMCPY in add_altname_ex.

Also: extracted the SAN and WOLFSSL_CUSTOM_OID arms of X509_add_ext into
static helpers (behavior-preserving).

Regression tests added for #1–5 and wolfSSL#9; existing GENERAL_NAME_print test
hardened (gives GEN_DIRNAME a real directoryName, eliminating an OOB
read that the print fix would otherwise expose).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants