Класс CertificateFactorySpi
public abstract class CertificateFactorySpi extends Object
CertificateFactory. Все абстрактные методы этого класса должны быть реализованы каждым поставщиком криптографических услуг, который желает предоставить реализацию фабрики сертификатов для определённого типа сертификатов, например X.509. Фабрики сертификатов используются для создания объектов сертификатов, путей сертификации (CertPath) и списков отзыва сертификатов (CRL) на основе их кодировок.
Фабрика сертификатов для X.509 должна возвращать сертификаты, являющиеся экземплярами java.security.cert.X509Certificate, а также CRL, являющиеся экземплярами java.security.cert.X509CRL.
- Начиная с версии:
- 1.2
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
CertificateFactorySpi() |
Конструктор для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Certificate |
engineGenerateCertificate |
Создаёт объект сертификата и инициализирует его данными, прочитанными из входного потока inStream. |
abstract Collection |
engineGenerateCertificates |
Возвращает представление коллекции (возможно, пустой) сертификатов, прочитанных из заданного входного потока inStream. |
CertPath |
engineGenerateCertPath |
Создаёт объект CertPath и инициализирует его данными, прочитанными из InputStream inStream. |
CertPath |
engineGenerateCertPath |
Создаёт объект CertPath и инициализирует его данными, прочитанными из InputStream inStream. |
CertPath |
engineGenerateCertPath |
Создаёт объект CertPath и инициализирует его List сертификатов Certificate. |
abstract CRL |
engineGenerateCRL |
Создаёт объект списка отзыва сертификатов (CRL) и инициализирует его данными, прочитанными из входного потока inStream. |
abstract Collection |
engineGenerateCRLs |
Возвращает представление коллекции (возможно, пустой) CRL, прочитанных из заданного входного потока inStream. |
Iterator |
engineGetCertPathEncodings() |
Возвращает итератор по кодировкам CertPath, поддерживаемым этой фабрикой сертификатов; кодировка по умолчанию указана первой. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Показывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело, подлежит удалению: этот элемент API может быть удалён в будущей версии. Финализация устарела и подлежит удалению в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
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—InputStream, содержащий данные - Возвращает:
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—InputStream, содержащий данные -
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». Попытки изменить возвращённый Iterator с помощью его метода remove приводят к UnsupportedOperationException.
Этот метод был добавлен в версию 1.4 Java 2 Platform Standard Edition. Для обеспечения обратной совместимости с существующими поставщиками услуг этот метод не может быть abstract и по умолчанию выбрасывает UnsupportedOperationException.
- Возвращает:
Iteratorпо именам поддерживаемых кодировок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. Например, если эта фабрика сертификатов реализует CRL X.509, элементы возвращённой коллекции можно привести к классу X509CRL.
Для фабрики сертификатов X.509 inStream может содержать один CRL в кодировке DER. Кроме того, inStream может содержать набор CRL PKCS#7. Это объект PKCS#7 SignedData, в котором значимым является только поле crls. В частности, подпись и содержимое игнорируются. Этот формат позволяет загружать сразу несколько CRL. Если CRL отсутствуют, возвращается пустая коллекция.
Обратите внимание: если заданный входной поток не поддерживает mark и reset, этот метод прочитает весь входной поток.
- Параметры:
-
inStream— входной поток с CRL. - Возвращает:
- представление коллекции (возможно, пустой) объектов java.security.cert.CRL, инициализированных данными из входного потока.
- Выбрасывает:
-
CRLException— при ошибках разбора.
© 1993, 2025, 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.