首页 > 解决方案 > X509 在 openssl 中的定义(typedef,define,等等)在哪里?

问题描述

我是这个领域的新手......也就是说,openssl 中的任何基本编程都必须处理 X509 证书和类型的定义:

     X509 *certificate 

我试图在 /usr/include/openssl/*.h 的 openssl 包含中对 X509 进行 grep,但找不到 X509 的定义,尽管有很多相同的用法。有太多文件需要手动浏览。你能指出包含文件和定义/声明/宏或 X509 的任何内容吗?也许我找错地方了。

标签: copensslx509certificate

解决方案


您可以在include/crypto/x509.h中找到描述

struct x509_st {
    X509_CINF cert_info;
    X509_ALGOR sig_alg;
    ASN1_BIT_STRING signature;
    X509_SIG_INFO siginf;
    CRYPTO_REF_COUNT references;
    CRYPTO_EX_DATA ex_data;
    /* These contain copies of various extension values */
    long ex_pathlen;
    long ex_pcpathlen;
    uint32_t ex_flags;
    uint32_t ex_kusage;
    uint32_t ex_xkusage;
    uint32_t ex_nscert;
    ASN1_OCTET_STRING *skid;
    AUTHORITY_KEYID *akid;
    X509_POLICY_CACHE *policy_cache;
    STACK_OF(DIST_POINT) *crldp;
    STACK_OF(GENERAL_NAME) *altname;
    NAME_CONSTRAINTS *nc;
# ifndef OPENSSL_NO_RFC3779
    STACK_OF(IPAddressFamily) *rfc3779_addr;
    struct ASIdentifiers_st *rfc3779_asid;
# endif
    unsigned char sha1_hash[SHA_DIGEST_LENGTH];
    X509_CERT_AUX *aux;
    CRYPTO_RWLOCK *lock;
    volatile int ex_cached;

    /* Set on live certificates for authentication purposes */
    ASN1_OCTET_STRING *distinguishing_id;
} /* X509 */ ;

推荐阅读