-
Notifications
You must be signed in to change notification settings - Fork 913
Add missing API documentation #9585
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
🛟 Devin Lifeguard found 1 likely issues in this PR
@dgarske |
There was a problem hiding this 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.
31f009f to
77d9410
Compare
|
Jenkins retest this please: "AgentOfflineException" |
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