查看源代码 ssl_crl_cache_api 行为 (ssl v11.2.6)

用于 TLS CRL(证书撤销列表)缓存的 API。

当 TLS 根据 RFC 5280 执行证书路径验证时,它也应该执行 CRL 验证检查。要启用 CRL 检查,应用程序需要访问 CRL。CRL 数据库可以通过多种不同的方式设置。此模块提供了将任意 CRL 缓存与 erlang ssl 应用程序集成的 API 行为。应用程序本身也使用它来提供 CRL 缓存的简单默认实现。

概要

类型

CRL 缓存的引用。

有关描述,请参见X509 证书记录

供 ssl 应用程序使用的 Logger(3) 信息

回调

fun fresh_crl/2 将用作 public_key:pkix_crls_validate/3 的输入选项 update_crl

向后兼容,已替换为 lookup/3

查找属于分发点 Distributionpoint 的 CRL。此函数可以选择仅在缓存中查找,或根据缓存的管理方式跟踪分发点链接。

选择缓存中由 Issuer 颁发的 CRL,除非该值是所谓的通用名称列表,请参阅 X509 证书记录,它源自 #'DistributionPoint'.cRLissuer 并表示获取 CRL 的不同机制。缓存回调需要使用适当的条目来检索 CRL,如果不存在,则返回一个空列表。

类型

此类型的链接

crl_cache_ref()

查看源代码 (自 OTP 18.0 起)
-type crl_cache_ref() :: any().

CRL 缓存的引用。

此类型的链接

dist_point()

查看源代码 (自 OTP 18.0 起)
-type dist_point() ::
          #'DistributionPoint'{distributionPoint :: term(), reasons :: term(), cRLIssuer :: term()}.

有关描述,请参见X509 证书记录

此类型的链接

logger_info()

查看源代码 (自 OTP 18.0 起)
-type logger_info() ::
          {logger:level(), Report :: #{description => string(), reason => term()}, logger:metadata()}.

供 ssl 应用程序使用的 Logger(3) 信息

回调

此回调的链接

fresh_crl(DistPoint, CRL)

查看源代码 (自 OTP 18.0 起)
-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 连接将使用这些信息来生成日志事件。

此回调的链接

lookup(DistPoint, CacheRef)

查看源代码 (可选) (自 OTP 18.0 起)
-callback lookup(DistPoint :: dist_point(), CacheRef :: crl_cache_ref()) ->
                    not_available |
                    [public_key:der_encoded()] |
                    {{logger, logger_info()}, [public_key:der_encoded()]}.

向后兼容,已替换为 lookup/3

此回调的链接

lookup(Distpoint, Issuer, CacheRef)

查看源代码 (自 OTP 19.0 起)
-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 应该由此颁发者颁发,除非 DistributionPointcRLIssuer 字段有值,在这种情况下,应该使用该值。

在此 API 的早期版本中,lookup 函数接收两个参数,省略了 Issuer。为了兼容性,仍然支持此功能:如果回调模块中没有 lookup/3 函数,则会调用 lookup/2 函数。

从 OTP 22.2 开始,可以返回日志记录器信息,TLS 连接将使用这些信息来生成日志事件。

此回调的链接

select(IssuerOrDPLocations, CacheRef)

查看源代码 (自 OTP 18.0 起)
-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 连接将使用这些信息来生成日志事件。