public class CertificateFactory extends Object
CertPath
)和证书撤销列表(CRL)的编码对象。
对于由多个证书编码,当你想解析收藏证书使用generateCertificates
可能无关。否则,当你想生成一个CertPath
使用generateCertPath
(证书链)和随后验证它与CertPathValidator
。
一个X.509证书的工厂必须返回,是java.security.cert.X509Certificate
实例证书和CRL是java.security.cert.X509CRL
实例。
下面的示例将一个文件用Base64编码的证书,这是每一个有界的-----开始证书-----,和有界在年底结束----- -----证书。我们将FileInputStream
(不支持mark
和reset
)一BufferedInputStream
(支持这些方法),所以,每次调用generateCertificate
只消耗一个证书,和输入流读取的位置定位到文件中的下一个证书:
FileInputStream fis = new FileInputStream(filename);
BufferedInputStream bis = new BufferedInputStream(fis);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
while (bis.available() > 0) {
Certificate cert = cf.generateCertificate(bis);
System.out.println(cert.toString());
}
下面的示例分析和#回复7-formatted证书存储在一个文件中提取的所有证书:
FileInputStream FIS =新的输入(文件名);certificatefactory CF = certificatefactory getInstance(“证书”);收集C = cf.generatecertificates(FIS);迭代器我= C();而(我hasnext()){认证证书(证书)我next() =;系统,println(CERT);}
java平台的每种实现都要求支持以下标准CertificateFactory
型:
X.509
PKCS7
PkiPath
CertPath
编码类型和编码的描述在
CertificateFactory section和java加密体系标准算法名称文件
CertPath Encodings section。咨询文件释放你的实施是否有其它类型或编码的支持。
Certificate
,
X509Certificate
,
CertPath
,
CRL
,
X509CRL
Modifier | Constructor and Description |
---|---|
protected |
CertificateFactory(CertificateFactorySpi certFacSpi, Provider provider, String type)
创建一个certificatefactory给定类型的对象,并封装了提供程序实现(SPI对象)在这。
|
Modifier and Type | Method and Description |
---|---|
Certificate |
generateCertificate(InputStream inStream)
生成一个证书对象并初始化它的数据从输入流中读取
inStream 。
|
Collection<? extends Certificate> |
generateCertificates(InputStream inStream)
返回一个(可能为空)从给定的输入流读取证书
inStream 集合视图。
|
CertPath |
generateCertPath(InputStream inStream)
生成一个
CertPath 对象并初始化它的数据从
InputStream 河道读。
|
CertPath |
generateCertPath(InputStream inStream, String encoding)
生成一个
CertPath 对象并初始化它的数据从
InputStream 河道读。
|
CertPath |
generateCertPath(List<? extends Certificate> certificates)
生成一个
CertPath 对象并将它初始化一个
List 的
Certificate s。
|
CRL |
generateCRL(InputStream inStream)
生成一个证书撤销列表(CRL)对象并将它初始化和数据从输入流中读取
inStream 。
|
Collection<? extends CRL> |
generateCRLs(InputStream inStream)
返回一个(可能为空)从给定的输入流读取的CRL
inStream 集合视图。
|
Iterator<String> |
getCertPathEncodings()
返回由该证书的工厂支持
CertPath 编码迭代,第一默认编码。
|
static CertificateFactory |
getInstance(String type)
返回实现指定证书类型的证书工厂对象。
|
static CertificateFactory |
getInstance(String type, Provider provider)
返回指定证书类型的证书工厂对象。
|
static CertificateFactory |
getInstance(String type, String provider)
返回指定证书类型的证书工厂对象。
|
Provider |
getProvider()
返回此证书工厂的提供程序。
|
String |
getType()
返回与此证书工厂关联的证书类型的名称。
|
protected CertificateFactory(CertificateFactorySpi certFacSpi, Provider provider, String type)
certFacSpi
-提供程序实现。
provider
-供应商。
type
-证书类型。
public static final CertificateFactory getInstance(String type) throws CertificateException
该方法通过注册安全提供商列表,从最开始的首选供应商。一个新的certificatefactory对象封装certificatefactoryspi实施支持指定类型的第一个提供程序返回。
注意,注册商的列表可以通过Security.getProviders()
检索方法。
type
-请求的证书类型的名称。看到有关标准证书类型信息在
Java Cryptography Architecture Standard Algorithm Name Documentation的certificatefactory节。
CertificateException
-如果没有供应商的支持为指定的类型certificatefactoryspi实施。
Provider
public static final CertificateFactory getInstance(String type, String provider) throws CertificateException, NoSuchProviderException
一个新的certificatefactory对象封装certificatefactoryspi实现从指定的提供程序返回。指定的提供程序必须在安全提供程序列表中注册。
注意,注册商的列表可以通过Security.getProviders()
检索方法。
type
-证书类型。看到有关标准证书类型信息在
Java Cryptography Architecture Standard Algorithm Name Documentation的certificatefactory节。
provider
-提供者的名称。
CertificateException
-如果一个指定的算法certificatefactoryspi执行不可从指定的供应商。
NoSuchProviderException
-如果指定的供应商不在安全提供商注册名单。
IllegalArgumentException
如果提供者名称为空或空。
Provider
public static final CertificateFactory getInstance(String type, Provider provider) throws CertificateException
一个新的certificatefactory对象封装certificatefactoryspi实现从指定的提供程序对象返回。请注意,指定的提供程序对象不必在提供者列表中注册。
type
-证书类型。看到有关标准证书类型信息在
Java Cryptography Architecture Standard Algorithm Name Documentation的certificatefactory节。
provider
-供应商。
CertificateException
-如果一个指定的算法certificatefactoryspi执行不可从指定的提供程序对象。
IllegalArgumentException
-如果
provider
是空的。
Provider
public final Provider getProvider()
public final String getType()
public final Certificate generateCertificate(InputStream inStream) throws CertificateException
为了充分利用专业证书的证书格式工厂支持,返回的证明对象可以强制转换为相应的证书班。例如,如果该证书的工厂实现了X.509证书,证书可以返回对象转换到X509Certificate
类。
在一个X.509证书认证的工厂的情况下,该证书必须提供inStream
DER编码可以以二进制或打印(base64编码提供)。如果证书是Base64编码提供,它必须是有界的-----开始证书-----,必须有界最后的结束----- -----证书。
注意,如果给定的输入流不支持mark
和reset
,这种方法会消耗整个输入流。否则,每个调用这个方法消耗一个证书和输入流的读取位置被定位到下一个可用字节后的固有结束的证书标记。如果输入流中的数据不包含证书标记一个固有的结束(除EOF)和有尾的数据证书后解析,一CertificateException
抛出。
inStream
。
inStream
与证书数据输入流。
CertificateException
-解析错误。
public final Iterator<String> getCertPathEncodings()
CertPath
编码迭代,第一默认编码。见性的编码部分的
Java Cryptography Architecture Standard Algorithm Name Documentation有关标准编码名称和格式的信息。
尝试修改返回的Iterator
通过在UnsupportedOperationException
其remove
方法结果。
CertPath
编码名称
Iterator
(如
String
s)
public final CertPath generateCertPath(InputStream inStream) throws CertificateException
CertPath
对象并初始化它的数据从
InputStream
河道读。该数据被假定为在默认的编码。默认的编码名称是由
getCertPathEncodings
方法返回第一个元素的
Iterator
。
inStream
-
InputStream
包含数据
CertPath
从
InputStream
数据初始化
CertificateException
-如果异常发生在解码
public final CertPath generateCertPath(InputStream inStream, String encoding) throws CertificateException
CertPath
对象并初始化它的数据从
InputStream
河道读。该数据被假定为在指定的编码。见性的编码部分的
Java Cryptography Architecture Standard Algorithm Name Documentation有关标准编码名称和格式的信息。
inStream
-
InputStream
包含数据
encoding
-使用的编码数据
CertPath
从
InputStream
数据初始化
CertificateException
-如果异常发生在解码或编码不支持请求
public final CertPath generateCertPath(List<? extends Certificate> certificates) throws CertificateException
CertPath
对象并将它初始化一个
List
的
提供的证书必须是一个类型的CertificateFactory
支持。他们将复制出的对象提供List
。
Certificate
s。
certificates
-
List
的
Certificate
s
CertPath
初始化与提供的证书列表
CertificateException
-如果发生异常
public final Collection<? extends Certificate> generateCertificates(InputStream inStream) throws CertificateException
inStream
集合视图。
为了充分利用专业证书的证书格式工厂支持,在返回的集合视图的每一个元素都可以转换为相应的证书班。例如,如果该证书的工厂实现了X.509证书,在返回的集合中的元素可以被转换到X509Certificate
类。
在一个X.509证书认证的工厂的情况下,inStream
可能包含一个序列的DER编码的证书了generateCertificate
格式。此外,inStream
可能包含一个# PKCS 7证书链。这是一个# PKCS 7 signeddata对象,与唯一重要的领域证书。特别是,签名和内容被忽略。此格式允许多个证书立即下载。如果没有证书,则返回一个空集合。
inStream
与证书的输入流。
CertificateException
-解析错误。
public final CRL generateCRL(InputStream inStream) throws CRLException
inStream
。
为了充分利用专业的证书CRL格式工厂支持,返回的CRL对象可以转换为相应的CRL类。例如,如果该证书工厂实行X.509 CRL,CRL的返回对象可以转换到X509CRL
类。
注意,如果给定的输入流不支持mark
和reset
,这种方法会消耗整个输入流。否则,每次调用这个方法,消耗一个CRL和输入流读取的位置定位到下一个可用的字节的CRL标记的内在结束后。如果输入流中的数据不包含CRL标记固有的结束(除EOF)和有尾的数据后,CRL是解析的,一个CRLException
抛出。
inStream
与CRL数据输入流。
CRLException
-解析错误。
public final Collection<? extends CRL> generateCRLs(InputStream inStream) throws CRLException
inStream
集合视图。
为了充分利用专业的证书CRL格式工厂支持,在返回的集合视图的每一个元素都可以转换为相应的CRL类。例如,如果该证书工厂实行X.509 CRL,在返回的集合中的元素可以被转换到X509CRL
类。
在一个X.509 CRL证书工厂的情况下,inStream
可能包含一系列的DER编码CRL。此外,inStream
可能包含PKCS 7集# CRL。这是一个# PKCS 7 signeddata对象,与唯一的重要领域是CRL。特别是,签名和内容被忽略。这种格式允许多个CRL被下载一次。如果没有CRL存在,则返回一个空集合。
inStream
与CRL的输入流。
CRLException
-解析错误。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.