public class CertPathBuilder
extends Object
java.lang.Object | |
↳ | java.security.cert.CertPathBuilder |
建立认证路径的类(也称为证书链)。
这个类使用基于提供者的架构。 要创建一个CertPathBuilder
,请调用静态getInstance
方法之一,传入CertPathBuilder
所需的算法名称以及可选的所需提供者的名称。
一旦创建了CertPathBuilder
对象,就可以通过调用build
方法并向其传递算法特定的一组参数来构建认证路径。 如果成功,则结果(包括构建的CertPath
)将返回到实现CertPathBuilderResult
接口的对象中。
该getRevocationChecker()
方法允许应用程序指定用于由附加特定算法的参数和选项CertPathBuilder
检查证书的撤销状态时。 下面是一个演示PKIX算法如何使用的例子:
CertPathBuilder cpb = CertPathBuilder.getInstance("PKIX"); PKIXRevocationChecker rc = (PKIXRevocationChecker)cpb.getRevocationChecker(); rc.setOptions(EnumSet.of(Option.PREFER_CRLS)); params.addCertPathChecker(rc); CertPathBuilderResult cpbr = cpb.build(params);
Android提供了以下 CertPathBuilder
算法:
Name | Supported (API Levels) |
---|---|
PKIX | 1+ |
并发访问
这个类的静态方法保证是线程安全的。 多线程可能会同时调用此类中定义的静态方法,而不会产生不良影响。
但是,对于由此类定义的非静态方法,这不是真的。 除非通过特定的供应商提供了其他凭证,需要线程访问单个CertPathBuilder
实例同时应该在它们之间实现同步并提供所需的锁定。 每个操作不同CertPathBuilder
实例的多个线程无需同步。
也可以看看:
Protected constructors |
|
---|---|
CertPathBuilder(CertPathBuilderSpi builderSpi, Provider provider, String algorithm) 创建给定算法的 |
Public methods |
|
---|---|
final CertPathBuilderResult |
build(CertPathParameters params) 尝试使用指定的算法参数集来构建认证路径。 |
final String |
getAlgorithm() 返回此 |
static final String |
getDefaultType() 返回 |
static CertPathBuilder |
getInstance(String algorithm) 返回实现指定算法的 |
static CertPathBuilder |
getInstance(String algorithm, String provider) 返回实现指定算法的 |
static CertPathBuilder |
getInstance(String algorithm, Provider provider) 返回实现指定算法的 |
final Provider |
getProvider() 返回此 |
final CertPathChecker |
getRevocationChecker() 返回 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
CertPathBuilder (CertPathBuilderSpi builderSpi, Provider provider, String algorithm)
创建给定算法的 CertPathBuilder
对象,并封装给定的提供者实现(SPI对象)。
Parameters | |
---|---|
builderSpi |
CertPathBuilderSpi : the provider implementation |
provider |
Provider : the provider |
algorithm |
String : the algorithm name |
CertPathBuilderResult build (CertPathParameters params)
尝试使用指定的算法参数集来构建认证路径。
Parameters | |
---|---|
params |
CertPathParameters : the algorithm parameters |
Returns | |
---|---|
CertPathBuilderResult |
the result of the build algorithm |
Throws | |
---|---|
CertPathBuilderException |
if the builder is unable to construct a certification path that satisfies the specified parameters |
InvalidAlgorithmParameterException |
if the specified parameters are inappropriate for this CertPathBuilder |
String getAlgorithm ()
返回此 CertPathBuilder
算法的 CertPathBuilder
。
Returns | |
---|---|
String |
the name of the algorithm of this CertPathBuilder |
String getDefaultType ()
返回 certpathbuilder.type
安全属性指定的默认 CertPathBuilder
类型,如果不存在此类属性,则返回字符串“PKIX”。
当调用 getInstance
方法之一时,不想使用硬编码类型的应用程序可以使用默认的 CertPathBuilder
类型,并且希望在用户未指定其自己的情况下提供默认类型。
可以通过将 certpathbuilder.type
安全属性的值设置为所需的类型来更改默认的 CertPathBuilder
类型。
Returns | |
---|---|
String |
the default CertPathBuilder type as specified by the certpathbuilder.type security property, or the string "PKIX" if no such property exists. |
也可以看看:
CertPathBuilder getInstance (String algorithm)
返回实现指定算法的 CertPathBuilder
对象。
该方法遍历注册安全提供程序的列表,从最优先的提供程序开始。 返回封装来自支持指定算法的第一个Provider的CertPathBuilderSpi实现的新CertPathBuilder对象。
请注意,注册供应商列表可能通过 Security.getProviders()
方法检索。
Parameters | |
---|---|
algorithm |
String : the name of the requested CertPathBuilder algorithm. See the CertPathBuilder section in the Java Cryptography Architecture Standard Algorithm Name Documentation for information about standard algorithm names. |
Returns | |
---|---|
CertPathBuilder |
a CertPathBuilder object that implements the specified algorithm. |
Throws | |
---|---|
NoSuchAlgorithmException |
if no Provider supports a CertPathBuilderSpi implementation for the specified algorithm. |
也可以看看:
CertPathBuilder getInstance (String algorithm, String provider)
返回实现指定算法的 CertPathBuilder
对象。
返回封装指定提供程序的CertPathBuilderSpi实现的新CertPathBuilder对象。 指定的提供者必须在安全提供者列表中注册。
请注意,可以通过 Security.getProviders()
方法检索注册供应商列表。
Parameters | |
---|---|
algorithm |
String : the name of the requested CertPathBuilder algorithm. See the CertPathBuilder section in the Java Cryptography Architecture Standard Algorithm Name Documentation for information about standard algorithm names. |
provider |
String : the name of the provider. |
Returns | |
---|---|
CertPathBuilder |
a CertPathBuilder object that implements the specified algorithm. |
Throws | |
---|---|
NoSuchAlgorithmException |
if a CertPathBuilderSpi implementation for the specified algorithm is not available from the specified provider. |
NoSuchProviderException |
if the specified provider is not registered in the security provider list. |
IllegalArgumentException |
if the provider is null or empty. |
也可以看看:
CertPathBuilder getInstance (String algorithm, Provider provider)
返回实现指定算法的 CertPathBuilder
对象。
返回封装指定Provider对象的CertPathBuilderSpi实现的新CertPathBuilder对象。 请注意,指定的Provider对象不必在提供程序列表中注册。
Parameters | |
---|---|
algorithm |
String : the name of the requested CertPathBuilder algorithm. See the CertPathBuilder section in the Java Cryptography Architecture Standard Algorithm Name Documentation for information about standard algorithm names. |
provider |
Provider : the provider. |
Returns | |
---|---|
CertPathBuilder |
a CertPathBuilder object that implements the specified algorithm. |
Throws | |
---|---|
NoSuchAlgorithmException |
if a CertPathBuilderSpi implementation for the specified algorithm is not available from the specified Provider object. |
IllegalArgumentException |
if the provider is null. |
也可以看看:
Provider getProvider ()
返回此 CertPathBuilder
的提供者。
Returns | |
---|---|
Provider |
the provider of this CertPathBuilder |
CertPathChecker getRevocationChecker ()
返回CertPathChecker
,该封装CertPathBuilderSpi
实现使用检查证书的吊销状态。 PKIX实现返回PKIXRevocationChecker
类型的PKIXRevocationChecker
。 每次调用此方法都会返回一个新的CertPathChecker
实例。
此方法的主要目的是允许调用者指定特定于撤销检查的其他输入参数和选项。 查看示例的类描述。
Returns | |
---|---|
CertPathChecker |
a CertPathChecker |
Throws | |
---|---|
UnsupportedOperationException |
if the service provider does not support this method |