/** clang-extract: from /usr/lib64/clang/20/include/__stddef_size_t.h:18:1 */
typedef __SIZE_TYPE__ size_t;

/** clang-extract: from /usr/include/bits/types.h:41:1 */
typedef signed int __int32_t;

/** clang-extract: from /usr/include/bits/stdint-intn.h:26:1 */
typedef __int32_t int32_t;

#define STACK_OF(type) struct stack_st_##type
/** clang-extract: from include/openssl/types.h:57:1 */
typedef struct asn1_string_st ASN1_INTEGER;

/** clang-extract: from include/openssl/types.h:58:1 */
typedef struct asn1_string_st ASN1_ENUMERATED;

/** clang-extract: from include/openssl/types.h:59:1 */
typedef struct asn1_string_st ASN1_BIT_STRING;

/** clang-extract: from include/openssl/types.h:60:1 */
typedef struct asn1_string_st ASN1_OCTET_STRING;

/** clang-extract: from include/openssl/types.h:61:1 */
typedef struct asn1_string_st ASN1_PRINTABLESTRING;

/** clang-extract: from include/openssl/types.h:62:1 */
typedef struct asn1_string_st ASN1_T61STRING;

/** clang-extract: from include/openssl/types.h:63:1 */
typedef struct asn1_string_st ASN1_IA5STRING;

/** clang-extract: from include/openssl/types.h:64:1 */
typedef struct asn1_string_st ASN1_GENERALSTRING;

/** clang-extract: from include/openssl/types.h:65:1 */
typedef struct asn1_string_st ASN1_UNIVERSALSTRING;

/** clang-extract: from include/openssl/types.h:66:1 */
typedef struct asn1_string_st ASN1_BMPSTRING;

/** clang-extract: from include/openssl/types.h:67:1 */
typedef struct asn1_string_st ASN1_UTCTIME;

/** clang-extract: from include/openssl/types.h:69:1 */
typedef struct asn1_string_st ASN1_GENERALIZEDTIME;

/** clang-extract: from include/openssl/types.h:70:1 */
typedef struct asn1_string_st ASN1_VISIBLESTRING;

/** clang-extract: from include/openssl/types.h:71:1 */
typedef struct asn1_string_st ASN1_UTF8STRING;

/** clang-extract: from include/openssl/types.h:72:1 */
typedef struct asn1_string_st ASN1_STRING;

/** clang-extract: from include/openssl/types.h:73:1 */
typedef int ASN1_BOOLEAN;

/** clang-extract: from include/openssl/types.h:77:1 */
typedef struct asn1_type_st ASN1_TYPE;

/** clang-extract: from include/openssl/types.h:78:1 */
typedef struct asn1_object_st ASN1_OBJECT;

/** clang-extract: from include/openssl/types.h:104:1 */
typedef struct evp_cipher_st EVP_CIPHER;

/** clang-extract: from include/openssl/types.h:161:1 */
typedef struct X509_algor_st X509_ALGOR;

/** clang-extract: from include/openssl/types.h:218:1 */
typedef struct ossl_lib_ctx_st OSSL_LIB_CTX;

/** clang-extract: from include/openssl/asn1.h:132:1 */
struct stack_st_X509_ALGOR;/* Full definition was removed.  */

/** clang-extract: from include/openssl/asn1.h:186:1 */
struct asn1_string_st;/* Full definition was removed.  */

/** clang-extract: from include/openssl/asn1.h:279:1 */
typedef struct ASN1_VALUE_st ASN1_VALUE;

/** clang-extract: from include/openssl/asn1.h:523:1 */
struct asn1_type_st;/* Full definition was removed.  */

#define NULL ((void*)0)
/** clang-extract: from include/openssl/x509.h:179:1 */
struct X509_algor_st;/* Full definition was removed.  */

/** clang-extract: from include/openssl/x509.h:255:1 */
struct stack_st_X509_ATTRIBUTE;/* Full definition was removed.  */

/** clang-extract: from include/openssl/cms.h:34:1 */
typedef struct CMS_ContentInfo_st CMS_ContentInfo;

/** clang-extract: from include/openssl/cms.h:44:1 */
struct stack_st_CMS_SignerInfo;/* Full definition was removed.  */

/** clang-extract: from include/openssl/cms.h:96:1 */
struct stack_st_CMS_RecipientInfo;/* Full definition was removed.  */

/** clang-extract: from include/openssl/cms.h:122:1 */
struct stack_st_CMS_RevocationInfoChoice;/* Full definition was removed.  */

/** clang-extract: from crypto/cms/cms_local.h:22:1 */
typedef struct CMS_EncapsulatedContentInfo_st CMS_EncapsulatedContentInfo;

/** clang-extract: from crypto/cms/cms_local.h:24:1 */
typedef struct CMS_SignedData_st CMS_SignedData;

/** clang-extract: from crypto/cms/cms_local.h:26:1 */
typedef struct CMS_OriginatorInfo_st CMS_OriginatorInfo;

/** clang-extract: from crypto/cms/cms_local.h:27:1 */
typedef struct CMS_EncryptedContentInfo_st CMS_EncryptedContentInfo;

/** clang-extract: from crypto/cms/cms_local.h:28:1 */
typedef struct CMS_EnvelopedData_st CMS_EnvelopedData;

/** clang-extract: from crypto/cms/cms_local.h:29:1 */
typedef struct CMS_DigestedData_st CMS_DigestedData;

/** clang-extract: from crypto/cms/cms_local.h:30:1 */
typedef struct CMS_EncryptedData_st CMS_EncryptedData;

/** clang-extract: from crypto/cms/cms_local.h:31:1 */
typedef struct CMS_AuthenticatedData_st CMS_AuthenticatedData;

/** clang-extract: from crypto/cms/cms_local.h:32:1 */
typedef struct CMS_AuthEnvelopedData_st CMS_AuthEnvelopedData;

/** clang-extract: from crypto/cms/cms_local.h:33:1 */
typedef struct CMS_CompressedData_st CMS_CompressedData;

/** clang-extract: from crypto/cms/cms_local.h:47:1 */
typedef struct CMS_CTX_st CMS_CTX;

/** clang-extract: from crypto/cms/cms_local.h:49:1 */
struct CMS_CTX_st {
    OSSL_LIB_CTX *libctx;
    char *propq;
};

/** clang-extract: from crypto/cms/cms_local.h:54:1 */
struct CMS_ContentInfo_st {
    ASN1_OBJECT *contentType;
    union {
        ASN1_OCTET_STRING *data;
        CMS_SignedData *signedData;
        CMS_EnvelopedData *envelopedData;
        CMS_DigestedData *digestedData;
        CMS_EncryptedData *encryptedData;
        CMS_AuthEnvelopedData *authEnvelopedData;
        CMS_AuthenticatedData *authenticatedData;
        CMS_CompressedData *compressedData;
        ASN1_TYPE *other;
        /* Other types ... */
        void *otherData;
    } d;
    CMS_CTX ctx;
};

/** clang-extract: from crypto/cms/cms_local.h:72:1 */
struct stack_st_CMS_CertificateChoices;/* Full definition was removed.  */

/** clang-extract: from crypto/cms/cms_local.h:74:1 */
struct CMS_SignedData_st;/* Full definition was removed.  */

/** clang-extract: from crypto/cms/cms_local.h:83:1 */
struct CMS_EncapsulatedContentInfo_st;/* Full definition was removed.  */

/** clang-extract: from crypto/cms/cms_local.h:115:1 */
struct CMS_EnvelopedData_st;/* Full definition was removed.  */

/** clang-extract: from crypto/cms/cms_local.h:123:1 */
struct CMS_OriginatorInfo_st;/* Full definition was removed.  */

/** clang-extract: from crypto/cms/cms_local.h:128:1 */
struct CMS_EncryptedContentInfo_st;/* Full definition was removed.  */

/** clang-extract: from crypto/cms/cms_local.h:251:1 */
struct CMS_DigestedData_st;/* Full definition was removed.  */

/** clang-extract: from crypto/cms/cms_local.h:258:1 */
struct CMS_EncryptedData_st;/* Full definition was removed.  */

/** clang-extract: from crypto/cms/cms_local.h:264:1 */
struct CMS_AuthenticatedData_st;/* Full definition was removed.  */

/** clang-extract: from crypto/cms/cms_local.h:276:1 */
struct CMS_AuthEnvelopedData_st;/* Full definition was removed.  */

/** clang-extract: from crypto/cms/cms_local.h:286:1 */
struct CMS_CompressedData_st;/* Full definition was removed.  */

/** clang-extract: from crypto/cms/cms_local.h:392:1 */
const CMS_CTX *ossl_cms_get0_cmsctx(const CMS_ContentInfo *cms);

/** clang-extract: from crypto/cms/cms_local.h:393:1 */
OSSL_LIB_CTX *ossl_cms_ctx_get0_libctx(const CMS_CTX *ctx);

/** clang-extract: from crypto/cms/cms_local.h:394:1 */
const char *ossl_cms_ctx_get0_propq(const CMS_CTX *ctx);

/** clang-extract: from crypto/cms/cms_lib.c:84:1 */
const CMS_CTX *ossl_cms_get0_cmsctx(const CMS_ContentInfo *cms)
{
    return cms != NULL ? &cms->ctx : NULL;
}

/** clang-extract: from crypto/cms/cms_lib.c:89:1 */
OSSL_LIB_CTX *ossl_cms_ctx_get0_libctx(const CMS_CTX *ctx)
{
    return ctx != NULL ? ctx->libctx : NULL;
}

/** clang-extract: from crypto/cms/cms_lib.c:94:1 */
const char *ossl_cms_ctx_get0_propq(const CMS_CTX *ctx)
{
    return ctx != NULL ? ctx->propq : NULL;
}

