Skip to content

Conversation

@dgarske
Copy link
Contributor

@dgarske dgarske commented Dec 26, 2025

Description

This PR adds Doxygen documentation for native wolfSSL API functions that were previously undocumented. It includes documentation notes for APIs gated on specific preprocessor macros:

  • WOLF_PRIVATE_KEY_ID: _Id and _Label init helpers (wc_AesInit_Id, wc_AesInit_Label, wc_ecc_init_id, wc_ecc_init_label, wc_InitRsaKey_Id, wc_InitRsaKey_Label) require this for PKCS11 support

  • WC_NO_CONSTRUCTORS: New/Delete constructor functions (wc_AesNew/Delete, wc_curve25519_new/delete, wc_ed25519_new/delete, wc_NewRsaKey/DeleteRsaKey) are only available when this is not defined. WC_NO_CONSTRUCTORS is automatically defined when WOLFSSL_NO_MALLOC is defined.

  • WOLFSSL_PUBLIC_ASN: ASN functions marked with WOLFSSL_ASN_API include notes indicating they are not public by default

  • WOLFSSL_DUAL_ALG_CERTS: wc_GeneratePreTBS and wc_MakeSigWithBitStr for Post-Quantum dual algorithm certificate signing

The New/Delete functions are documented as being exposed to support allocation of structures using dynamic memory to provide better ABI compatibility.

Based on work started by Devin: #9467

Testing

Built documentation for wolfssl.

Checklist

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

@devin-ai-integration
Copy link
Contributor

🛟 Devin Lifeguard found 1 likely issues in this PR

  • no-void-functions snippet: Change wc_Arc4Free (and the other newly-added void APIs) to return an int status code (e.g., 0 on success, negative on error) instead of void, updating their implementations accordingly.

@dgarske
please take a look at the above issues which Devin flagged. Devin will not fix these issues automatically.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds comprehensive Doxygen documentation for numerous previously undocumented native wolfSSL API functions across multiple modules. The documentation covers functions gated by specific preprocessor macros including WOLF_PRIVATE_KEY_ID (for PKCS11 support), WC_NO_CONSTRUCTORS (for dynamic memory allocation APIs), WOLFSSL_PUBLIC_ASN, and WOLFSSL_DUAL_ALG_CERTS (for Post-Quantum dual algorithm certificates).

Key changes include:

  • Added documentation for I/O, encryption, hashing, and cryptographic operation APIs
  • Documented constructor/destructor functions (New/Delete) for better ABI compatibility
  • Included notes about preprocessor macro requirements for specific APIs
  • Provided example code for each documented function

Reviewed changes

Copilot reviewed 35 out of 35 changed files in this pull request and generated no comments.

Show a summary per file
File Description
wolfio.h Documents socket I/O, HTTP/OCSP/CRL operations, and BIO callbacks
wc_port.h Documents atomic operations, mutex/RwLock APIs, memory tracking, and file operations
wc_encrypt.h Documents AES CBC encryption with key and buffer key encrypt/decrypt
types.h Documents string manipulation, threading, and condition variable APIs
srp.h Documents SRP initialization with extended parameters
signature.h Documents signature verification/generation with hash functions
sha512.h Documents SHA512/SHA384 variants with extended init and helper functions
sha256.h Documents SHA256/SHA224 with extended functions and transforms
sha.h Documents SHA-1 with extended init and utility functions
rsa.h Documents RSA key management, PSS signing, verification, and padding operations
random.h Documents RNG initialization variants, seed generation, and health tests
quic.h Documents QUIC handshake function
pwdbased.h Documents PBKDF1/2, PKCS12_PBKDF, and scrypt with extended parameters
psa.h Documents PSA crypto API wrappers for random and AES operations
poly1305.h Documents Poly1305 padding and size encoding functions
pkcs7.h Documents extensive PKCS7 operations including signing, encryption, and recipients
iotsafe.h Documents IoT-Safe ECC export with extended key ID support
ed25519.h Documents Ed25519 signing/verification with context and streaming operations
ecc.h Documents extensive ECC operations including key management, curve operations, and encryption
dsa.h Documents DSA parameter import/export and signing with extended functions
dh.h Documents DH parameter operations, key generation, and named group support
des3.h Documents DES/3DES ECB decryption and extended initialization
curve448.h Documents Curve448 public key generation from private key
cryptocb.h Documents crypto callback device management and debugging
compress.h Documents compression with extended parameters and dynamic allocation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

This PR adds Doxygen documentation for native wolfSSL API functions that were previously undocumented. It includes documentation notes for APIs gated on specific preprocessor macros:

- WOLF_PRIVATE_KEY_ID: _Id and _Label init helpers (wc_AesInit_Id, wc_AesInit_Label, wc_ecc_init_id, wc_ecc_init_label, wc_InitRsaKey_Id, wc_InitRsaKey_Label) require this for PKCS11 support

- WC_NO_CONSTRUCTORS: New/Delete constructor functions (wc_AesNew/Delete, wc_curve25519_new/delete, wc_ed25519_new/delete, wc_NewRsaKey/DeleteRsaKey) are only available when this is not defined. WC_NO_CONSTRUCTORS is automatically defined when WOLFSSL_NO_MALLOC is defined.

- WOLFSSL_PUBLIC_ASN: ASN functions marked with WOLFSSL_ASN_API include  notes indicating they are not public by default

- WOLFSSL_DUAL_ALG_CERTS: wc_GeneratePreTBS and wc_MakeSigWithBitStr for Post-Quantum dual algorithm certificate signing

The New/Delete functions are documented as being exposed to support allocation of structures using dynamic memory to provide better ABI compatibility.
@dgarske dgarske force-pushed the add-missing-api-docs branch from 31f009f to 77d9410 Compare December 26, 2025 16:45
@dgarske
Copy link
Contributor Author

dgarske commented Dec 26, 2025

Jenkins retest this please: "AgentOfflineException"

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