![]() |
Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface X509Extension
Расширения, определенные для X.509 v3 Certificates
и v2 CRLs
(Списки аннулированных сертификатов) обеспечивают методы для того, чтобы они связали дополнительные атрибуты с пользователями или открытыми ключами, для того, чтобы управлять иерархией сертификации, и для того, чтобы управлять распределением CRL. Формат расширений X.509 также позволяет сообществам определять частные расширения, чтобы перенести информацию, уникальную для тех сообществ.
Каждое расширение в сертификате/CRL может определяться как критическое или некритическое. certificate/CRL-using система (приложение, проверяющее сертификата/CRL), должна отклонить сертификат/CRL, если это встречается с критическим расширением, это не распознает. Некритическое расширение может быть проигнорировано, если оно не распознается.
Определение ASN.1 для этого:
Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension Extension ::= SEQUENCE { extnId OBJECT IDENTIFIER, critical BOOLEAN DEFAULT FALSE, extnValue OCTET STRING -- contains a DER encoding of a value -- of the type registered for use with -- the extnId object identifier value }С тех пор не все расширения известны,
getExtensionValue
метод возвращает DER-закодированную СТРОКУ ОКТЕТА значения расширения (то есть, extnValue
). Это может тогда быть обработано Классом, который понимает расширение.Модификатор и Тип | Метод и Описание |
---|---|
Set<String> |
getCriticalExtensionOIDs()
Получает ряд строк OID для расширения (й), отмеченного КРИТИЧЕСКИЙ в сертификате/CRL, которым управляет объект, реализовывая этот интерфейс.
|
byte[] |
getExtensionValue(String oid)
Получает DER-закодированную строку ОКТЕТА для значения расширения (extnValue) идентифицированный переданным - в
oid Строка. |
Set<String> |
getNonCriticalExtensionOIDs()
Получает ряд строк OID для расширения (й), отмеченного НЕКРИТИЧЕСКИЙ в сертификате/CRL, которым управляет объект, реализовывая этот интерфейс.
|
boolean |
hasUnsupportedCriticalExtension()
Проверьте, есть ли критическое расширение, которое не поддерживается.
|
boolean hasUnsupportedCriticalExtension()
Set<String> getCriticalExtensionOIDs()
X509Certificate cert = null; try (InputStream inStrm = new FileInputStream("DER-encoded-Cert")) { CertificateFactory cf = CertificateFactory.getInstance("X.509"); cert = (X509Certificate)cf.generateCertificate(inStrm); }
Set
critSet = cert.getCriticalExtensionOIDs(); if (critSet != null && !critSet.isEmpty()) { System.out.println("Set of critical extensions:"); for (String oid : critSet) { System.out.println(oid); } }
Set<String> getNonCriticalExtensionOIDs()
CertificateFactory cf = null; X509CRL crl = null; try (InputStream inStrm = new FileInputStream("DER-encoded-CRL")) { cf = CertificateFactory.getInstance("X.509"); crl = (X509CRL)cf.generateCRL(inStrm); }
byte[] certData = <DER-encoded certificate data> ByteArrayInputStream bais = new ByteArrayInputStream(certData); X509Certificate cert = (X509Certificate)cf.generateCertificate(bais); X509CRLEntry badCert = crl.getRevokedCertificate(cert.getSerialNumber());
if (badCert != null) { Set
nonCritSet = badCert.getNonCriticalExtensionOIDs();
if (nonCritSet != null) for (String oid : nonCritSet) { System.out.println(oid); } }
byte[] getExtensionValue(String oid)
oid
Строка. oid
строка представляется рядом неотрицательных целых чисел, разделенных периодами. Например:
OID (Объектный Идентификатор) | Имя расширения |
---|---|
2.5.29.14 | SubjectKeyIdentifier |
2.5.29.15 | KeyUsage |
2.5.29.16 | PrivateKeyUsage |
2.5.29.17 | SubjectAlternativeName |
2.5.29.18 | IssuerAlternativeName |
2.5.29.19 | BasicConstraints |
2.5.29.30 | NameConstraints |
2.5.29.33 | PolicyMappings |
2.5.29.35 | AuthorityKeyIdentifier |
2.5.29.36 | PolicyConstraints |
oid
- Объектный Идентификатор оценивает за расширение.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92