Класс CertificateFactorySpi
public abstract class CertificateFactorySpi extends Object
CertificateFactory. Все абстрактные методы в этом классе должны быть реализованы каждым поставщиком криптографических сервисов, желающим предоставить реализацию фабрики сертификатов для определённого типа сертификата, например, X.509. Фабрики сертификатов используются для генерации объектов сертификата, цепочки сертификации (CertPath) и списка отзыва сертификатов (CRL) из их кодировок.
Фабрика сертификатов для X.509 должна возвращать сертификаты, являющиеся экземплярами java.security.cert.X509Certificate, и CRL, являющиеся экземплярами java.security.cert.X509CRL.
- Since:
- 1.2
- See Also:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
CertificateFactorySpi() |
Конструктор для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Certificate |
engineGenerateCertificate |
Генерирует объект сертификата и инициализирует его данными, прочитанными из входного потока inStream. |
abstract Collection<? extends Certificate> |
engineGenerateCertificates |
Возвращает (возможно пустой) коллекционный вид сертификатов, прочитанных из указанного входного потока inStream. |
CertPath |
engineGenerateCertPath |
Генерирует объект CertPath и инициализирует его данными, прочитанными из входного потока InputStream inStream. |
CertPath |
engineGenerateCertPath |
Генерирует объект CertPath и инициализирует его данными, прочитанными из входного потока InputStream inStream. |
CertPath |
engineGenerateCertPath |
Генерирует объект CertPath и инициализирует его списком List объектов Certificate. |
abstract CRL |
engineGenerateCRL |
Генерирует объект списка отзыва сертификатов (CRL) и инициализирует его данными, прочитанными из входного потока inStream. |
abstract Collection<? extends CRL> |
engineGenerateCRLs |
Возвращает (возможно пустой) коллекционный вид CRL, прочитанных из указанного входного потока inStream. |
Iterator<String> |
engineGetCertPathEncodings() |
Возвращает итератор CertPath кодировок, поддерживаемых этой фабрикой сертификатов, с первой — по умолчанию. |
Подробное описание конструкторов
CertificateFactorySpi
public CertificateFactorySpi()
Подробное описание методов
engineGenerateCertificate
public abstract Certificate engineGenerateCertificate(InputStream inStream) throws CertificateException
inStream. Для использования специализированного формата сертификатов, поддерживаемого этим фабрикой сертификатов, возвращаемый объект сертификата можно привести к соответствующему классу сертификатов. Например, если этот фабрика сертификатов реализует сертификаты X.509, возвращаемый объект сертификата можно привести к классу X509Certificate.
В случае фабрики сертификатов для сертификатов X.509, сертификат, предоставленный в inStream, должен быть закодирован в формате DER и может быть предоставлен в двоичном или печатном (Base64) кодировании. Если сертификат предоставляется в кодировании Base64, он должен быть ограничен в начале строкой -----BEGIN CERTIFICATE-----, и должен быть ограничен в конце строкой -----END CERTIFICATE-----.
Обратите внимание, что если предоставленный поток ввода не поддерживает mark и reset, этот метод прочитает весь поток ввода. В противном случае каждый вызов этого метода считывает один сертификат, а позиция чтения потока ввода устанавливается на следующий байт после внутреннего маркера конца сертификата. Если данные в потоке ввода не содержат внутреннего маркера конца сертификата (кроме EOF) и после разбора сертификата имеются хвостовые данные, выбрасывается CertificateException.
- Параметры:
-
inStream- поток ввода с данными сертификата. - Возвращает:
- объект сертификата, инициализированный данными из потока ввода.
- Исключение:
-
CertificateException- при ошибках разбора.
engineGenerateCertPath
public CertPath engineGenerateCertPath(InputStream inStream) throws CertificateException
CertPath и инициализирует его данными, считанными из потока ввода InputStream inStream. Данные предполагаются в кодировании по умолчанию. Этот метод был добавлен в версию 1.4 Java 2 Platform Standard Edition. Для сохранения обратной совместимости с существующими поставщиками услуг, этот метод не может быть abstract и по умолчанию выбрасывает UnsupportedOperationException.
- Параметры:
-
inStream- поток ввода, содержащий данные - Возвращает:
- объект
CertPath, инициализированный данными из потока вводаInputStream - Исключение:
-
CertificateException- если при декодировании произошла ошибка -
UnsupportedOperationException- если метод не поддерживается - С:
- 1.4
engineGenerateCertPath
public CertPath engineGenerateCertPath(InputStream inStream, String encoding) throws CertificateException
CertPath и инициализирует его данными, считанными из потока ввода InputStream inStream. Данные предполагаются в указанном кодировании. Этот метод был добавлен в версию 1.4 Java 2 Platform Standard Edition. Для сохранения обратной совместимости с существующими поставщиками услуг, этот метод не может быть abstract и по умолчанию выбрасывает UnsupportedOperationException.
- Параметры:
-
inStream- поток ввода, содержащий данные -
encoding- кодировка, используемая для данных - Возвращает:
- объект
CertPath, инициализированный данными из потока вводаInputStream - Исключение:
-
CertificateException- если при декодировании произошла ошибка или запрошенная кодировка не поддерживается -
UnsupportedOperationException- если метод не поддерживается - С:
- 1.4
engineGenerateCertPath
public CertPath engineGenerateCertPath(List<? extends Certificate> certificates) throws CertificateException
CertPath и инициализирует его списком List сертификатов Certificate. Предоставленные сертификаты должны быть типа, поддерживаемого CertificateFactory. Они будут скопированы из предоставленного объекта List.
Этот метод был добавлен в версию 1.4 Java 2 Platform Standard Edition. Для сохранения обратной совместимости с существующими поставщиками услуг, этот метод не может быть abstract и по умолчанию выбрасывает UnsupportedOperationException.
- Параметры:
-
certificates- списокListсертификатовCertificate - Возвращает:
- объект
CertPath, инициализированный предоставленным списком сертификатов - Исключение:
-
CertificateException- если произошла ошибка -
UnsupportedOperationException- если метод не поддерживается - С:
- 1.4
engineGetCertPathEncodings
public Iterator<String> engineGetCertPathEncodings()
CertPath этим фабрикой сертификатов, начиная с кодировки по умолчанию. См. раздел «Кодировки CertPath» в спецификации Стандартных имён алгоритмов Java Security для получения информации о стандартных именах кодировок. Попытки изменить возвращаемый итератор через метод remove приводят к исключению UnsupportedOperationException.
Этот метод был добавлен в версию 1.4 Java 2 Platform Standard Edition. Для сохранения обратной совместимости с существующими поставщиками услуг, этот метод не может быть abstract и по умолчанию выбрасывает UnsupportedOperationException.
- Возвращает:
- итератор по именам поддерживаемых кодировок
CertPath(какString) - Исключение:
-
UnsupportedOperationException- если метод не поддерживается - С:
- 1.4
engineGenerateCertificates
public abstract Collection<? extends Certificate> engineGenerateCertificates(InputStream inStream) throws CertificateException
inStream. Для использования специализированного формата сертификатов, поддерживаемого этой фабрикой сертификатов, каждый элемент в возвращаемом наборе представлений коллекций может быть приведён к соответствующему классу сертификатов. Например, если этот фабрика сертификатов реализует сертификаты X.509, элементы в возвращаемом наборе можно привести к классу X509Certificate.
В случае фабрики сертификатов для сертификатов X.509, inStream может содержать один сертификат в формате DER, описанном для generateCertificate. Кроме того, inStream может содержать цепочку сертификатов PKCS#7. Это объект PKCS#7 SignedData с единственным важным полем certificates. В частности, подпись и содержимое игнорируются. Этот формат позволяет загружать несколько сертификатов одновременно. Если сертификатов нет, возвращается пустой набор.
Обратите внимание, что если предоставленный поток ввода не поддерживает mark и reset, этот метод прочитает весь поток ввода.
- Параметры:
-
inStream- поток ввода с сертификатами. - Возвращает:
- (возможно, пустой) набор представлений коллекций объектов java.security.cert.Certificate, инициализированных данными из потока ввода.
- Исключение:
-
CertificateException- при ошибках разбора.
engineGenerateCRL
public abstract CRL engineGenerateCRL(InputStream inStream) throws CRLException
inStream. Для использования специализированного формата CRL, поддерживаемого этим фабрикой сертификатов, возвращаемый объект CRL можно привести к соответствующему классу CRL. Например, если этот фабрика сертификатов реализует CRL X.509, возвращаемый объект CRL можно привести к классу X509CRL.
Обратите внимание, что если предоставленный поток ввода не поддерживает mark и reset, этот метод прочитает весь поток ввода. В противном случае каждый вызов этого метода считывает один CRL, и позиция чтения потока ввода устанавливается на следующий байт после внутреннего маркера конца CRL. Если данные в потоке ввода не содержат внутреннего маркера конца CRL (кроме EOF) и после разбора CRL имеются хвостовые данные, выбрасывается CRLException.
- Параметры:
-
inStream- поток ввода с данными CRL. - Возвращает:
- объект CRL, инициализированный данными из потока ввода.
- Исключение:
-
CRLException- при ошибках разбора.
engineGenerateCRLs
public abstract Collection<? extends CRL> engineGenerateCRLs(InputStream inStream) throws CRLException
inStream. Для использования специализированного формата CRL, поддерживаемого этим фабричным объектом сертификатов, каждый элемент в возвращаемом представлении коллекции можно привести к соответствующему классу CRL. Например, если этот фабричный объект реализует X.509 CRL, элементы в возвращаемой коллекции можно привести к классу X509CRL.
В случае фабричного объекта сертификатов для X.509 CRL, inStream может содержать один закодированный в DER CRL. Кроме того, inStream может содержать набор CRL в формате PKCS#7. Это объект PKCS#7 SignedData, единственным значимым полем которого является crls. В частности, подпись и содержимое игнорируются. Этот формат позволяет загружать сразу несколько CRL. Если CRL нет, возвращается пустая коллекция.
Обратите внимание, что если заданный поток ввода не поддерживает mark и reset, этот метод прочитает весь поток ввода.
- Parameters:
-
inStream- поток ввода с CRL. - Returns:
- представление (возможно, пустой) коллекции объектов java.security.cert.CRL, инициализированных данными из потока ввода.
- Throws:
-
CRLException- при ошибках разбора.
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/security/cert/CertificateFactorySpi.html