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.509PKCS7PkiPathCertPath编码类型和编码的描述在
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的
Certificates。
|
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(如
Strings)
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。
Certificates。
certificates -
List的
Certificates
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.