28.openssl编程——CRL
28.1 CRL介绍
证书撤销列表(Certificate Revocation List, 简称CRL),是液体中包含撤销的证书列表的签名数据结构。CRL是证书撤销状态的公布形式,CRL就像信用卡的黑名单,用于公布某些数字证书不在有效。
CRL是一种离线的证书状态信息。他一一定的周期进行更新。CRL可以分为完全CRL和增量CRL。在完全CRL中包含了所有的被撤销证书信息,增量CRL由一些列的CRL来表明被撤销的证书信息,他每次发布的CRL是对签名发布CRL的增量扩充
基本的CRL信息由:
被撤销证书序列号
撤销时间
撤销原因
签名者
CRL签名等
28.2 数据结构
typedef struct X509_revoked_st
{
ASN1_INTEGER serialNumber; 被撤销证书的序列号
ASN1_TIME *revocationDate; 撤销时间
STACK_OF(X509_EXTENSION) *extensions; 扩展项
STACK_OF(GENERAL_NAME) *issuer;
int reason;
int sequence;
}
typedef struct X509_ctl_info_st {
ASN1_INTEGER *version; crl版本
X509_ALGOR sig_alg; crl签名法
X509_NAME *issuer; 签发者信息
ASN1_TIME *lastUpdate; 上次更新时间
ASN1_TIME *nextUpdate; 下次更新时间
STACK_OF(X509_REVOKED) *revoked; 被撤销证书信息
STACK_OF(X509_EXTENSION) *extensions; 扩展项
ASN1_ENCODING enc;
}
struct X509_crt_st {
X509_CRL_INFO crl;
X509_ALGOR sig_alg;
ASN1_BIT_STRING signature;
CRYPTO_REF_COUNT refernces;
int flags;
AUTHORITY_KEYID *akid;
ISSUING_DIST_POINT *idp;
int idp_flags;
int idp_reasons;
ASN1_INTEGER *crl_number;
ASN1_INTEGER *base_crl_number;
STACK_OF(GENERAL_NAMES) *issuers;
unsgined char sha1_hash【SHA_DIGEST_LENGTH】
const X509_CRL_METHOD *meth;
void *meth_data;
CRYPTO_RWLOCK *lock;
}
28.3 CRL函数
CRL函数主要是set和get函数