查看源代码 ssl_crl_cache_api 行为 (ssl v11.2.6)
用于 TLS CRL(证书撤销列表)缓存的 API。
当 TLS 根据 RFC 5280 执行证书路径验证时,它也应该执行 CRL 验证检查。要启用 CRL 检查,应用程序需要访问 CRL。CRL 数据库可以通过多种不同的方式设置。此模块提供了将任意 CRL 缓存与 erlang ssl 应用程序集成的 API 行为。应用程序本身也使用它来提供 CRL 缓存的简单默认实现。
概要
回调
fun fresh_crl/2
将用作 public_key:pkix_crls_validate/3
的输入选项 update_crl
。
向后兼容,已替换为 lookup/3
查找属于分发点 Distributionpoint
的 CRL。此函数可以选择仅在缓存中查找,或根据缓存的管理方式跟踪分发点链接。
选择缓存中由 Issuer
颁发的 CRL,除非该值是所谓的通用名称列表,请参阅 X509 证书记录,它源自 #'DistributionPoint'.cRLissuer
并表示获取 CRL 的不同机制。缓存回调需要使用适当的条目来检索 CRL,如果不存在,则返回一个空列表。
类型
-type crl_cache_ref() :: any().
CRL 缓存的引用。
-type dist_point() :: #'DistributionPoint'{distributionPoint :: term(), reasons :: term(), cRLIssuer :: term()}.
有关描述,请参见X509 证书记录
-type logger_info() :: {logger:level(), Report :: #{description => string(), reason => term()}, logger:metadata()}.
供 ssl 应用程序使用的 Logger(3) 信息
回调
-callback fresh_crl(DistPoint :: dist_point(), CRL :: public_key:der_encoded()) -> public_key:der_encoded() | {logger, logger_info(), public_key:der_encoded()}.
fun fresh_crl/2
将用作 public_key:pkix_crls_validate/3
的输入选项 update_crl
。
从 OTP 22.2 开始,可以返回日志记录器信息,TLS 连接将使用这些信息来生成日志事件。
-callback lookup(DistPoint :: dist_point(), CacheRef :: crl_cache_ref()) -> not_available | [public_key:der_encoded()] | {{logger, logger_info()}, [public_key:der_encoded()]}.
向后兼容,已替换为 lookup/3
-callback lookup(Distpoint :: dist_point(), Issuer :: public_key:issuer_name(), CacheRef :: crl_cache_ref()) -> not_available | [public_key:der_encoded()] | {{logger, logger_info()}, [public_key:der_encoded()]}.
查找属于分发点 Distributionpoint
的 CRL。此函数可以选择仅在缓存中查找,或根据缓存的管理方式跟踪分发点链接。
Issuer
参数包含要检查的证书的颁发者名称。通常,返回的 CRL 应该由此颁发者颁发,除非 DistributionPoint
的 cRLIssuer
字段有值,在这种情况下,应该使用该值。
在此 API 的早期版本中,lookup
函数接收两个参数,省略了 Issuer
。为了兼容性,仍然支持此功能:如果回调模块中没有 lookup/3
函数,则会调用 lookup/2
函数。
从 OTP 22.2 开始,可以返回日志记录器信息,TLS 连接将使用这些信息来生成日志事件。
-callback select(IssuerOrDPLocations, CacheRef) -> [CRL] | {logger, logger_info(), [CRL]} when CRL :: public_key:der_encoded(), IssuerOrDPLocations :: public_key:issuer_name() | list(), CacheRef :: crl_cache_ref().
选择缓存中由 Issuer
颁发的 CRL,除非该值是所谓的通用名称列表,请参阅 X509 证书记录,它源自 #'DistributionPoint'.cRLissuer
并表示获取 CRL 的不同机制。缓存回调需要使用适当的条目来检索 CRL,如果不存在,则返回一个空列表。
从 OTP 22.2 开始,可以返回日志记录器信息,TLS 连接将使用这些信息来生成日志事件。