Skip to content

Conversation

@devin-ai-integration
Copy link
Contributor

Description

This PR adds comprehensive Doxygen documentation for 2239 previously undocumented public API functions across 52 header files in the wolfSSL project. The documentation follows the existing wolfSSL Doxygen format and conventions.

Scope of Changes

All changes are documentation-only additions to files in doc/dox_comments/header_files/. No functional code was modified.

Files documented (52 total):

  • Cryptographic primitives: aes.h, arc4.h, ascon.h, camellia.h, chacha.h, chacha20_poly1305.h, des3.h, idea.h, rabbit.h, rc2.h
  • Hash functions: md2.h, md4.h, md5.h, sha.h, sha256.h, sha3.h, sha512.h, ripemd.h, hash.h
  • MACs: hmac.h, cmac.h, poly1305.h
  • Public key crypto: rsa.h, ecc.h, dh.h, dsa.h, ed25519.h, ed448.h, curve25519.h, curve448.h
  • ASN.1/X.509: asn.h, asn_public.h
  • PKI: ocsp.h, pkcs7.h, pkcs11.h, pkcs12.h, pem.h
  • TLS/SSL: ssl.h (72 newly documented functions including ECH, SRTP, multicast, session management, and more)
  • Utilities: random.h, pwdbased.h, signature.h, compress.h, error-crypt.h, logging.h, types.h, wc_encrypt.h, wc_port.h, wolfio.h, srp.h

Documentation Format

Each function includes:

  • \ingroup tag for categorization
  • \brief description (wrapped at 80 characters)
  • \return statements for all possible return values
  • \param descriptions for each parameter
  • _Example_ section with realistic usage code (where applicable)
  • \sa cross-references to related functions

Key Statistics

  • Total commits: 108 documentation commits
  • Lines added: ~23,423 lines to ssl.h alone, plus thousands more across other files
  • Functions documented: 2239 functions across 52 header files
  • Branch: devin/1763748386-add-missing-api-docs

Link to Devin run: https://app.devin.ai/sessions/09417bcfdab948d6afcd5012e2c7597c
Requested by: andrew@wolfssl.com

Testing

Documentation generation was attempted using doc/generate_documentation.sh -html but encountered environment issues (missing doxygen tool). The documentation follows existing patterns and conventions found in the codebase.

Manual verification performed:

  • All documentation follows existing Doxygen format
  • 80-character line limit maintained throughout
  • Parameter names match function signatures
  • Return value descriptions included
  • Usage examples use relative paths (no absolute machine-specific paths)
  • Cross-references point to related functions

Checklist

  • added tests - N/A (documentation only)
  • updated/added doxygen - Yes, this is the entire purpose of the PR
  • updated appropriate READMEs - N/A (documentation only)
  • Updated manual and documentation - Yes, via Doxygen comments

Review Focus Areas

Given the large scale of this PR (2239 functions documented), reviewers should focus on:

  1. Format consistency: Verify a sample of functions follow the existing Doxygen conventions
  2. Line length: Spot-check that lines don't exceed 80 characters
  3. Parameter accuracy: Verify parameter descriptions match function signatures
  4. Return value accuracy: Check that return value descriptions are correct
  5. Example code: Review example code blocks for syntax and correctness
  6. Cross-references: Verify \sa tags point to valid related functions
  7. Group tags: Check that \ingroup tags are appropriate for each function

Note: Due to the volume of changes, it may be practical to review a representative sample from each header file rather than every single function. The documentation was generated systematically following the same patterns throughout.

Potential risks:

  • Documentation accuracy: Descriptions were inferred from function signatures and may need technical review
  • Example code: Usage examples weren't compiled/tested and may contain errors
  • Completeness: Some edge cases or special behaviors may not be fully documented

devin-ai-integration bot and others added 30 commits November 21, 2025 18:14
… ascon.h (4 functions)

- Added comprehensive Doxygen documentation for all missing AES functions
- Documented ARC4 initialization and cleanup functions
- Documented Ascon hash and AEAD allocation functions
- All documentation follows 80-character line limit
- Included usage examples for each function
- Added cross-references to related functions

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_BerToDer for BER to DER conversion
- Documented FreeAltNames for freeing alternative name lists
- Documented wc_SetUnknownExtCallbackEx for extension callbacks
- Documented wc_CheckCertSignature for certificate verification
- Documented wc_EncodeObjectId for OID encoding
- Documented SetAlgoID for algorithm identifier encoding
- Documented wc_DhPublicKeyDecode for DH public key decoding
- All documentation follows 80-character line limit
- Included usage examples for each function

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_XChacha_SetKey for XChaCha cipher initialization
- Follows 80-character line limit
- Included usage example

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented Base64_Decode_nonCT for non-constant-time Base64 decoding
- Follows 80-character line limit
- Included usage example

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_curve448_make_pub for generating public key from private
- Follows 80-character line limit
- Included usage example

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- srp.h: Documented wc_SrpInit_ex (1 function)
- error-crypt.h: Documented wc_backtrace_render (1 function)
- iotsafe.h: Documented wc_iotsafe_ecc_export_public_ex and
  wc_iotsafe_ecc_gen_k_ex (2 functions)
- Follows 80-character line limit
- Included usage examples

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- compress.h: Documented wc_Compress_ex, wc_DeCompress_ex,
  wc_DeCompressDynamic (3 functions)
- cryptocb.h: Documented wc_CryptoCb_DefaultDevID,
  wc_CryptoCb_SetDeviceFindCb, wc_CryptoCb_InfoString (3 functions)
- Follows 80-character line limit
- Included usage examples

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- md4.h: Documented wolfSSL_MD4_Init, wolfSSL_MD4_Update,
  wolfSSL_MD4_Final (3 functions)
- poly1305.h: Documented wc_Poly1305_Pad, wc_Poly1305_EncodeSizes,
  wc_Poly1305_EncodeSizes64 (3 functions)
- ripemd.h: Documented wolfSSL_RIPEMD_Init, wolfSSL_RIPEMD_Update,
  wolfSSL_RIPEMD_Final (3 functions)
- Follows 80-character line limit
- Included usage examples

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- wc_encrypt.h: Documented wc_AesCbcEncryptWithKey,
  wc_BufferKeyDecrypt, wc_BufferKeyEncrypt (3 functions)
- des3.h: Documented wc_Des_EcbDecrypt, wc_Des3_EcbDecrypt,
  wc_Des3Init, wc_Des3Free (4 functions)
- Follows 80-character line limit
- Included usage examples

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- signature.h: Documented wc_SignatureVerifyHash,
  wc_SignatureGenerateHash, wc_SignatureGenerateHash_ex,
  wc_SignatureGenerate_ex (4 functions)
- psa.h: Documented wc_psa_get_random, wc_psa_aes_encrypt_decrypt,
  wc_AesEncrypt, wc_AesDecrypt (4 functions)
- Follows 80-character line limit
- Included usage examples

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wolfSSL_quic_do_handshake
- Follows 80-character line limit
- Included usage example

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_curve25519_make_pub, wc_curve25519_make_pub_blind,
  wc_curve25519_generic, wc_curve25519_generic_blind,
  wc_curve25519_make_priv, wc_curve25519_init_ex,
  wc_curve25519_set_rng, wc_curve25519_new, wc_curve25519_delete
- Follows 80-character line limit
- Included usage examples

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wolfSSL_MD5_Init, wolfSSL_MD5_Update,
  wolfSSL_MD5_Final, wolfSSL_MD5_Transform, wc_InitMd5_ex,
  wc_Md5Transform, wc_Md5Copy, wc_Md5SizeSet, wc_Md5SetFlags,
  wc_Md5GetFlags
- Follows 80-character line limit
- Included usage examples

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_GenerateSeed, wc_rng_new, wc_rng_new_ex,
  wc_rng_free, wc_InitRng_ex, wc_InitRngNonce,
  wc_InitRngNonce_ex, wc_SetSeed_Cb, wc_RNG_DRBG_Reseed,
  wc_RNG_TestSeed, wc_RNG_HealthTest_ex,
  wc_Entropy_GetRawEntropy, wc_Entropy_Get,
  wc_Entropy_OnDemandTest
- Follows 80-character line limit
- Included usage examples

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_ChaCha20Poly1305_CheckTag,
  wc_ChaCha20Poly1305_Init, wc_ChaCha20Poly1305_UpdateAad,
  wc_ChaCha20Poly1305_UpdateData, wc_ChaCha20Poly1305_Final,
  wc_XChaCha20Poly1305_Init, wc_XChaCha20Poly1305_Encrypt,
  wc_XChaCha20Poly1305_Decrypt
- Follows 80-character line limit
- Included usage examples

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wolfSSL_CMAC_CTX_new, wolfSSL_CMAC_CTX_free,
  wolfSSL_CMAC_CTX_get0_cipher_ctx, wolfSSL_CMAC_Init,
  wolfSSL_CMAC_Update, wolfSSL_CMAC_Final,
  wc_AesCmacGenerate_ex, wc_AesCmacVerify_ex
- Follows 80-character line limit
- Included usage examples

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wolfSSL_HMAC, wolfSSL_HMAC_CTX_new,
  wolfSSL_HMAC_CTX_Init, wolfSSL_HMAC_CTX_copy,
  wolfSSL_HMAC_Init, wolfSSL_HMAC_Init_ex, wolfSSL_HMAC_Update,
  wolfSSL_HMAC_Final, wolfSSL_HMAC_cleanup,
  wolfSSL_HMAC_CTX_cleanup, wolfSSL_HMAC_CTX_free,
  wolfSSL_HMAC_size, wc_HmacSetKey_ex, wc_HmacSetKey_Software,
  wc_HmacUpdate_Software, wc_HmacFinal_Software,
  wc_HmacSizeByType, wc_HmacInit, wc_HmacInit_Id,
  wc_HmacInit_Label, wc_HmacFree, wc_HKDF_ex
- Follows 80-character line limit
- Included usage examples

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wolfSSL_GetLoggingCb, wolfSSL_CertDebugging_ON,
  wolfSSL_CertDebugging_OFF, wolfSSL_SetLoggingPrefix,
  wc_SetLoggingHeap, wc_ERR_remove_state,
  wc_ERR_print_errors_fp, WOLFSSL_START, WOLFSSL_END,
  WOLFSSL_TIME, WOLFSSL_MSG_CERT, WOLFSSL_MSG_CERT_EX,
  WOLFSSL_ENTER, WOLFSSL_LEAVE, WOLFSSL_IS_DEBUG_ON,
  WOLFSSL_MSG_EX, WOLFSSL_MSG, WOLFSSL_MSG2, WOLFSSL_ENTER2,
  WOLFSSL_LEAVE2, WOLFSSL_MSG_EX2, WOLFSSL_BUFFER,
  WOLFSSL_ERROR_LINE, WOLFSSL_ERROR, WOLFSSL_ERROR_MSG,
  wolfSSL_Arduino_Serial_Print
- Follows 80-character line limit
- Included usage examples

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wolfSSL_i2d_DHparams, wolfSSL_DH_new,
  wolfSSL_DH_new_by_nid, wolfSSL_DH_free, wolfSSL_DH_dup,
  wolfSSL_DH_up_ref, wolfSSL_DH_check, wolfSSL_DH_size,
  wolfSSL_DH_generate_key, wolfSSL_DH_compute_key,
  wolfSSL_DH_compute_key_padded, wolfSSL_DH_LoadDer,
  wolfSSL_DH_set_length, wolfSSL_DH_set0_pqg,
  wolfSSL_DH_get_2048_256, wc_Dh_ffdhe2048_Get,
  wc_Dh_ffdhe3072_Get, wc_Dh_ffdhe4096_Get,
  wc_Dh_ffdhe6144_Get, wc_Dh_ffdhe8192_Get, wc_InitDhKey_ex,
  wc_DhAgree_ct, wc_DhSetNamedKey, wc_DhGetNamedKeyParamSize,
  wc_DhGetNamedKeyMinSize, wc_DhCmpNamedKey, wc_DhCopyNamedKey,
  wc_DhGeneratePublic, wc_DhImportKeyPair, wc_DhExportKeyPair,
  wc_DhCheckPubValue
- Follows 80-character line limit
- Included usage examples

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_InitCert_ex, wc_MakeCert_ex, wc_MakeCertReq_ex,
  wc_SignCert_ex, wc_MakeSigWithBitStr, wc_GetCertDates
- Follows 80-character line limit
- Included usage examples
- 55 more functions remaining in this file

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_InitCert_ex, wc_MakeCert_ex, wc_MakeCertReq_ex,
  wc_SignCert_ex, wc_MakeSigWithBitStr, wc_GetCertDates,
  wc_SetAuthKeyIdFromPublicKey_ex,
  wc_SetSubjectKeyIdFromPublicKey_ex
- Follows 80-character line limit
- Included usage examples
- 53 more functions remaining in this file

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_InitCert_ex, wc_MakeCert_ex, wc_MakeCertReq_ex,
  wc_SignCert_ex, wc_MakeSigWithBitStr, wc_GetCertDates,
  wc_SetAuthKeyIdFromPublicKey_ex,
  wc_SetSubjectKeyIdFromPublicKey_ex, wc_SetExtKeyUsage,
  wc_SetExtKeyUsageOID
- Follows 80-character line limit
- Included usage examples
- 51 more functions remaining in this file

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_InitCert_ex, wc_MakeCert_ex, wc_MakeCertReq_ex,
  wc_SignCert_ex, wc_MakeSigWithBitStr, wc_GetCertDates,
  wc_SetAuthKeyIdFromPublicKey_ex,
  wc_SetSubjectKeyIdFromPublicKey_ex, wc_SetExtKeyUsage,
  wc_SetExtKeyUsageOID, wc_GetDateInfo, wc_GetDateAsCalendarTime
- Follows 80-character line limit
- Included usage examples
- 49 more functions remaining in this file

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_InitCert_ex, wc_MakeCert_ex, wc_MakeCertReq_ex,
  wc_SignCert_ex, wc_MakeSigWithBitStr, wc_GetCertDates,
  wc_SetAuthKeyIdFromPublicKey_ex,
  wc_SetSubjectKeyIdFromPublicKey_ex, wc_SetExtKeyUsage,
  wc_SetExtKeyUsageOID, wc_GetDateInfo, wc_GetDateAsCalendarTime,
  wc_PemPubKeyToDer_ex, wc_PemCertToDer_ex
- Follows 80-character line limit
- Included usage examples
- 47 more functions remaining in this file

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_InitCert_ex, wc_MakeCert_ex, wc_MakeCertReq_ex,
  wc_SignCert_ex, wc_MakeSigWithBitStr, wc_GetCertDates,
  wc_SetAuthKeyIdFromPublicKey_ex,
  wc_SetSubjectKeyIdFromPublicKey_ex, wc_SetExtKeyUsage,
  wc_SetExtKeyUsageOID, wc_GetDateInfo, wc_GetDateAsCalendarTime,
  wc_PemPubKeyToDer_ex, wc_PemCertToDer_ex, wc_PemGetHeaderFooter,
  wc_AllocDer, wc_FreeDer, wc_PemToDer
- Follows 80-character line limit
- Included usage examples
- 43 more functions remaining in this file

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_InitCert_ex, wc_MakeCert_ex, wc_MakeCertReq_ex,
  wc_SignCert_ex, wc_MakeSigWithBitStr, wc_GetCertDates,
  wc_SetAuthKeyIdFromPublicKey_ex,
  wc_SetSubjectKeyIdFromPublicKey_ex, wc_SetExtKeyUsage,
  wc_SetExtKeyUsageOID, wc_GetDateInfo, wc_GetDateAsCalendarTime,
  wc_PemPubKeyToDer_ex, wc_PemCertToDer_ex, wc_PemGetHeaderFooter,
  wc_AllocDer, wc_FreeDer, wc_PemToDer, wc_PkcsPad,
  wc_RsaPublicKeyDecode_ex, wc_RsaPublicKeyDerSize,
  wc_RsaPrivateKeyValidate
- Follows 80-character line limit
- Included usage examples
- 39 more functions remaining in this file

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_InitCert_ex, wc_MakeCert_ex, wc_MakeCertReq_ex,
  wc_SignCert_ex, wc_MakeSigWithBitStr, wc_GetCertDates,
  wc_SetAuthKeyIdFromPublicKey_ex,
  wc_SetSubjectKeyIdFromPublicKey_ex, wc_SetExtKeyUsage,
  wc_SetExtKeyUsageOID, wc_GetDateInfo, wc_GetDateAsCalendarTime,
  wc_PemPubKeyToDer_ex, wc_PemCertToDer_ex, wc_PemGetHeaderFooter,
  wc_AllocDer, wc_FreeDer, wc_PemToDer, wc_PkcsPad,
  wc_RsaPublicKeyDecode_ex, wc_RsaPublicKeyDerSize,
  wc_RsaPrivateKeyValidate, wc_DsaParamsDecode,
  wc_DsaKeyToParamsDer, wc_DsaKeyToParamsDer_ex,
  wc_DhParamsToDer, wc_DhPubKeyToDer, wc_DhPrivKeyToDer
- Follows 80-character line limit
- Included usage examples
- 33 more functions remaining in this file

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_InitCert_ex, wc_MakeCert_ex, wc_MakeCertReq_ex,
  wc_SignCert_ex, wc_MakeSigWithBitStr, wc_GetCertDates,
  wc_SetAuthKeyIdFromPublicKey_ex,
  wc_SetSubjectKeyIdFromPublicKey_ex, wc_SetExtKeyUsage,
  wc_SetExtKeyUsageOID, wc_GetDateInfo, wc_GetDateAsCalendarTime,
  wc_PemPubKeyToDer_ex, wc_PemCertToDer_ex, wc_PemGetHeaderFooter,
  wc_AllocDer, wc_FreeDer, wc_PemToDer, wc_PkcsPad,
  wc_RsaPublicKeyDecode_ex, wc_RsaPublicKeyDerSize,
  wc_RsaPrivateKeyValidate, wc_DsaParamsDecode,
  wc_DsaKeyToParamsDer, wc_DsaKeyToParamsDer_ex,
  wc_DhParamsToDer, wc_DhPubKeyToDer, wc_DhPrivKeyToDer,
  wc_EccPrivateKeyToDer, wc_EccKeyDerSize,
  wc_EccPrivateKeyToPKCS8, wc_EccKeyToPKCS8,
  wc_EccPublicKeyDerSize
- Follows 80-character line limit
- Included usage examples
- 28 more functions remaining in this file

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_InitCert_ex, wc_MakeCert_ex, wc_MakeCertReq_ex,
  wc_SignCert_ex, wc_MakeSigWithBitStr, wc_GetCertDates,
  wc_SetAuthKeyIdFromPublicKey_ex,
  wc_SetSubjectKeyIdFromPublicKey_ex, wc_SetExtKeyUsage,
  wc_SetExtKeyUsageOID, wc_GetDateInfo, wc_GetDateAsCalendarTime,
  wc_PemPubKeyToDer_ex, wc_PemCertToDer_ex, wc_PemGetHeaderFooter,
  wc_AllocDer, wc_FreeDer, wc_PemToDer, wc_PkcsPad,
  wc_RsaPublicKeyDecode_ex, wc_RsaPublicKeyDerSize,
  wc_RsaPrivateKeyValidate, wc_DsaParamsDecode,
  wc_DsaKeyToParamsDer, wc_DsaKeyToParamsDer_ex,
  wc_DhParamsToDer, wc_DhPubKeyToDer, wc_DhPrivKeyToDer,
  wc_EccPrivateKeyToDer, wc_EccKeyDerSize,
  wc_EccPrivateKeyToPKCS8, wc_EccKeyToPKCS8,
  wc_EccPublicKeyDerSize, wc_Ed25519PrivateKeyDecode,
  wc_Ed25519PublicKeyDecode, wc_Ed25519KeyToDer,
  wc_Ed25519PrivateKeyToDer, wc_Ed25519PublicKeyToDer
- Follows 80-character line limit
- Included usage examples
- 23 more functions remaining in this file

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
- Documented wc_InitCert_ex, wc_MakeCert_ex, wc_MakeCertReq_ex,
  wc_SignCert_ex, wc_MakeSigWithBitStr, wc_GetCertDates,
  wc_SetAuthKeyIdFromPublicKey_ex,
  wc_SetSubjectKeyIdFromPublicKey_ex, wc_SetExtKeyUsage,
  wc_SetExtKeyUsageOID, wc_GetDateInfo, wc_GetDateAsCalendarTime,
  wc_PemPubKeyToDer_ex, wc_PemCertToDer_ex, wc_PemGetHeaderFooter,
  wc_AllocDer, wc_FreeDer, wc_PemToDer, wc_PkcsPad,
  wc_RsaPublicKeyDecode_ex, wc_RsaPublicKeyDerSize,
  wc_RsaPrivateKeyValidate, wc_DsaParamsDecode,
  wc_DsaKeyToParamsDer, wc_DsaKeyToParamsDer_ex,
  wc_DhParamsToDer, wc_DhPubKeyToDer, wc_DhPrivKeyToDer,
  wc_EccPrivateKeyToDer, wc_EccKeyDerSize,
  wc_EccPrivateKeyToPKCS8, wc_EccKeyToPKCS8,
  wc_EccPublicKeyDerSize, wc_Ed25519PrivateKeyDecode,
  wc_Ed25519PublicKeyDecode, wc_Ed25519KeyToDer,
  wc_Ed25519PrivateKeyToDer, wc_Ed25519PublicKeyToDer,
  wc_Ed448PrivateKeyDecode, wc_Ed448PublicKeyDecode,
  wc_Ed448KeyToDer, wc_Ed448PrivateKeyToDer,
  wc_Ed448PublicKeyToDer, wc_Curve448PrivateKeyDecode,
  wc_Curve448PublicKeyDecode, wc_Curve448PrivateKeyToDer,
  wc_Curve448PublicKeyToDer
- Follows 80-character line limit
- Included usage examples
- 14 more functions remaining in this file

Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
devin-ai-integration bot and others added 27 commits November 21, 2025 21:03
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
Co-Authored-By: andrew@wolfssl.com <andrew@wolfssl.com>
@devin-ai-integration
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@wolfSSL-Bot
Copy link

Can one of the admins verify this patch?

\sa wc_AesCtsEncryptFinal
*/
int wc_AesCtsDecryptFinal(Aes* aes, byte* out, word32* outSz);

Copy link
Contributor

Choose a reason for hiding this comment

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

Compatibility API docs need to be in separate doxy files. And one can argue they shouldn’t be here in wolfSSL at all and to see the OpenSSL documentation

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thank you for the feedback! I want to clarify the desired approach for OpenSSL compatibility API documentation before making changes.

Scope Identified

I've documented approximately 774 OpenSSL compatibility API functions across the files (about 34.5% of the 2239 total):

  • aes.h: 9 wolfSSL_AES_* functions (AES compatibility layer)
  • evp.h: 212 EVP_* functions (almost the entire file)
  • ssl.h: 432 BIO_*, X509_*, ASN1_*, PKCS* functions
  • pem.h: ~32 PEM_* functions (likely compatibility)

Questions for Guidance

  1. Remove or Move?

    • Should I remove OpenSSL compatibility API docs entirely and defer to OpenSSL documentation?
    • Or move them into separate Doxygen files with a dedicated group?
  2. If Moving:

    • What directory and naming convention should I use? (e.g., doc/dox_comments/compat/openssl_aes.h)
    • What \ingroup tag should they use? (e.g., OpenSSLCompat)
    • Does the Doxygen generator already include a compat directory, or should I keep files under header_files/ with a different naming pattern?
  3. Documentation Style:

    • Are minimal stubs acceptable (e.g., "Compatibility layer for OpenSSL's AES_set_encrypt_key. See OpenSSL documentation.")?
    • Or would you prefer short wolfSSL-specific notes highlighting differences and caveats?
  4. Scope:

    • Should I apply the same treatment to all compatibility APIs (EVP, BIO, X509, PEM, etc.)?
  5. Pilot Approach:

    • Would it be helpful if I start by moving just the 9 AES compatibility functions as a small test case to align on structure and grouping before proceeding with the larger sets?

I'm happy to implement whichever approach the project prefers. Please let me know your preference and I'll proceed accordingly.

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.

3 participants