Spec-Zone .ru
спецификации, руководства, описания, API
|
public class CertificateFactory extends Object
CertPath
) и список аннулированных сертификатов (CRL) возражает от их кодировок. Для кодировок, состоящих из многократных сертификатов, использовать generateCertificates
когда Вы хотите проанализировать набор возможно несвязанных сертификатов. Иначе, использовать generateCertPath
когда Вы хотите генерировать a CertPath
(цепочка сертификата), и впоследствии проверяют этого с a CertPathValidator
.
Фабрика сертификата для X.509 должна возвратить сертификаты, которые являются экземпляром java.security.cert.X509Certificate
, и CRL, которые являются экземпляром java.security.cert.X509CRL
.
Следующий пример читает файл с Base64 закодированные сертификаты, которые каждый ограничиваются вначале-----, НАЧИНАЮТ СЕРТИФИКАТ-----, и ограниченный в конце СЕРТИФИКАТОМ КОНЦА---------. Мы преобразовываем FileInputStream
(который не поддерживает mark
и reset
) к a 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()); }
Следующий пример анализирует PKCS#7-formatted ответ сертификата, сохраненный в файле, и извлекает все сертификаты из него:
FileInputStream fis = new FileInputStream(filename); CertificateFactory cf = CertificateFactory.getInstance("X.509"); Collection c = cf.generateCertificates(fis); Iterator i = c.iterator(); while (i.hasNext()) { Certificate cert = (Certificate)i.next(); System.out.println(cert); }
Каждая реализация платформы Java обязана поддерживать следующий стандарт CertificateFactory
введите:
CertPath
кодировки: Certificate
, X509Certificate
, CertPath
, CRL
, X509CRL
Модификатор | Конструктор и Описание |
---|---|
protected |
CertificateFactory(CertificateFactorySpi certFacSpi, Provider provider, String type)
Создает объект CertificateFactory данного типа, и инкапсулирует данную реализацию провайдера (объект SPI) в этом.
|
Модификатор и Тип | Метод и Описание |
---|---|
Сертификат |
generateCertificate(InputStream inStream)
Генерирует объект сертификата и инициализирует это с данными, считанными из входного потока
inStream . |
Collection<? extends Certificate> |
generateCertificates(InputStream inStream)
Возвращается (возможно пустой) представление набора сертификатов, считанных из данного входного потока
inStream . |
CertPath |
generateCertPath(InputStream inStream)
Генерирует a
CertPath возразите и инициализирует это с данными, считанными из InputStream inStream. |
CertPath |
generateCertPath(InputStream inStream, String encoding)
Генерирует a
CertPath возразите и инициализирует это с данными, считанными из InputStream inStream. |
CertPath |
generateCertPath(List<? extends Certificate> certificates)
Генерирует a
CertPath возразите и инициализирует это с a 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)
Возвращает объект фабрики сертификата для указанного типа сертификата.
|
Провайдер |
getProvider()
Возвращает провайдера этой фабрики сертификата.
|
Строка |
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
- имя требуемого типа сертификата. См. раздел CertificateFactory в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных типах сертификата.CertificateException
- если никакой Провайдер не поддерживает реализацию CertificateFactorySpi для указанного типа.Provider
public static final CertificateFactory getInstance(String type, String provider) throws CertificateException, NoSuchProviderException
Возвращается новый объект CertificateFactory инкапсуляция реализации CertificateFactorySpi от указанного провайдера. Указанный провайдер должен быть зарегистрирован в списке поставщика систем обеспечения безопасности.
Отметьте, что список зарегистрированных провайдеров может быть получен через Security.getProviders()
метод.
type
- тип сертификата. См. раздел CertificateFactory в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных типах сертификата.provider
- имя провайдера.CertificateException
- если реализация CertificateFactorySpi для указанного алгоритма не доступна от указанного провайдера.NoSuchProviderException
- если указанный провайдер не регистрируется в списке поставщика систем обеспечения безопасности.IllegalArgumentException
- если имя провайдера является нулем или пустой.Provider
public static final CertificateFactory getInstance(String type, Provider provider) throws CertificateException
Возвращается новый объект CertificateFactory инкапсуляция реализации CertificateFactorySpi от указанного объекта Провайдера. Отметьте, что указанный объект Провайдера не должен быть зарегистрирован в списке провайдера.
type
- тип сертификата. См. раздел CertificateFactory в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных типах сертификата.provider
- провайдер.CertificateException
- если реализация CertificateFactorySpi для указанного алгоритма не доступна от указанного объекта Провайдера.IllegalArgumentException
- если provider
нуль.Provider
public final Provider getProvider()
public final String getType()
public final Certificate generateCertificate(InputStream inStream) throws CertificateException
inStream
. Чтобы использовать в своих интересах специализированный формат сертификата, поддерживаемый этой фабрикой сертификата, возвращенный объект сертификата может быть преобразован тип к соответствующему сертификату class. Например, если эта фабрика сертификата реализует сертификаты X.509, возвращенный объект сертификата может быть преобразован тип к X509Certificate
class.
В случае фабрики сертификата для сертификатов X.509, сертификат, обеспеченный в inStream
должен быть DER-закодирован и может быть предоставлен в двоичном или печатаемом (Base64) кодирование. Если сертификат обеспечивается в кодировании Base64, он должен быть ограничен вначале-----, НАЧИНАЮТ СЕРТИФИКАТ-----, и должен быть ограничен в конце СЕРТИФИКАТОМ КОНЦА---------.
Отметьте это, если данный входной поток не поддерживает mark
и reset
, этот метод использует весь входной поток. Иначе, каждый звонок в этот метод использует один сертификат, и позиция чтения входного потока располагается в следующий доступный байт после свойственного маркера конца сертификата. Если данные во входном потоке не содержат свойственный маркер конца сертификата (кроме EOF) и там запаздывают данные после того, как сертификат анализируется, a CertificateException
бросается.
inStream
- входной поток с данными сертификата.CertificateException
- при парсинге ошибок.public final Iterator<String> getCertPathEncodings()
CertPath
кодировки, поддерживаемые этой фабрикой сертификата, с кодировкой по умолчанию сначала. См. раздел Кодировок CertPath в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах кодирования и их форматах. Попытки изменить возвращенный Iterator
через remove
результат метода в UnsupportedOperationException
.
Iterator
по именам поддерживаемого CertPath
кодировки (как String
s)public final CertPath generateCertPath(InputStream inStream) throws CertificateException
CertPath
возразите и инициализирует это с данными, считанными из InputStream
inStream. Данные, как предполагается, находятся в кодировке по умолчанию. Имя кодировки по умолчанию является первым элементом Iterator
возвращенный getCertPathEncodings
метод.inStream
- InputStream
содержа данныеCertPath
инициализированный с данными от InputStream
CertificateException
- если исключение происходит, декодируяpublic final CertPath generateCertPath(InputStream inStream, String encoding) throws CertificateException
CertPath
возразите и инициализирует это с данными, считанными из InputStream
inStream. Данные, как предполагается, находятся в указанном кодировании. См. раздел Кодировок CertPath в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах кодирования и их форматах.inStream
- InputStream
содержа данныеencoding
- кодирование используется для данныхCertPath
инициализированный с данными от InputStream
CertificateException
- если исключение происходит, декодируя, или кодирование, которое требуют, не поддерживаетсяpublic final CertPath generateCertPath(List<? extends Certificate> certificates) throws CertificateException
CertPath
возразите и инициализирует это с a List
из Certificate
s. Предоставленные сертификаты должны иметь тип, поддерживаемый CertificateFactory
. Они будут скопированы из предоставленного List
объект.
certificates
- a List
из Certificate
sCertPath
инициализированный с предоставленным списком сертификатовCertificateException
- если исключение происходитpublic final Collection<? extends Certificate> generateCertificates(InputStream inStream) throws CertificateException
inStream
. Чтобы использовать в своих интересах специализированный формат сертификата, поддерживаемый этой фабрикой сертификата, каждый элемент в возвращенном представлении набора может быть преобразован тип к соответствующему сертификату class. Например, если эта фабрика сертификата реализует сертификаты X.509, элементы в возвращенном наборе могут быть преобразованы тип к X509Certificate
class.
В случае фабрики сертификата для сертификатов X.509, inStream
может содержать последовательность DER-закодированных сертификатов в форматах, описанных для generateCertificate
. Кроме того, inStream
может содержать PKCS#7 цепочка сертификата. Это PKCS#7 объект SignedData с единственным существенным полем, являющимся сертификатами. В частности подпись и содержание игнорируются. Этот формат позволяет многократным сертификатам быть загруженными сразу. Если никакие сертификаты не присутствуют, пустой набор возвращается.
Отметьте это, если данный входной поток не поддерживает mark
и reset
, этот метод использует весь входной поток.
inStream
- входной поток с сертификатами.CertificateException
- при парсинге ошибок.public final CRL generateCRL(InputStream inStream) throws CRLException
inStream
. Чтобы использовать в своих интересах специализированный формат CRL, поддерживаемый этой фабрикой сертификата, возвращенный объект CRL может быть преобразован тип к соответствующему CRL class. Например, если эта фабрика сертификата реализует CRL X.509, возвращенный объект CRL может быть преобразован тип к X509CRL
class.
Отметьте это, если данный входной поток не поддерживает mark
и reset
, этот метод использует весь входной поток. Иначе, каждый звонок в этот метод использует один CRL, и позиция чтения входного потока располагается в следующий доступный байт после свойственного маркера конца CRL. Если данные во входном потоке не содержат свойственный маркер конца CRL (кроме EOF) и там запаздывают данные после того, как CRL анализируется, a CRLException
бросается.
inStream
- входной поток с данными CRL.CRLException
- при парсинге ошибок.public final Collection<? extends CRL> generateCRLs(InputStream inStream) throws CRLException
inStream
. Чтобы использовать в своих интересах специализированный формат CRL, поддерживаемый этой фабрикой сертификата, каждый элемент в возвращенном представлении набора может быть преобразован тип к соответствующему CRL class. Например, если эта фабрика сертификата реализует CRL X.509, элементы в возвращенном наборе могут быть преобразованы тип к X509CRL
class.
В случае фабрики сертификата для CRL X.509, inStream
может содержать последовательность DER-закодированных CRL. Кроме того, inStream
может содержать PKCS#7 набор CRL. Это PKCS#7 объект SignedData с единственным существенным полем, являющимся crls. В частности подпись и содержание игнорируются. Этот формат позволяет многократным CRL быть загруженными сразу. Если никакие CRL не присутствуют, пустой набор возвращается.
Отметьте это, если данный входной поток не поддерживает mark
и reset
, этот метод использует весь входной поток.
inStream
- входной поток с CRL.CRLException
- при парсинге ошибок.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92