|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface X509Extension
X.509 拡張機能のためのインタフェースです。
X.509 v3 Certificates
および v2 CRL
(証明書の取り消しリスト) で定義される拡張機能は、追加属性をユーザーまたは公開鍵に関連付けたり、認証の階層を管理したり、CRL の配布を管理したりする方法を提供します。また、X.509 拡張機能形式では、コミュニティーに固有の情報を伝えるために、コミュニティー専用の拡張機能を定義することもできます。
証明書または CRL の各拡張機能は、クリティカルとしても非クリティカルとしても指定できます。証明書または CRL を使うシステム (証明書または 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
メソッドは、拡張値 (extnValue
) の DER で符号化された OCTET STRING を返します。これは拡張機能を認識できる Class によって処理できます。
メソッドの概要 | |
---|---|
Set<String> |
getCriticalExtensionOIDs()
このインタフェースを実装するオブジェクトによって管理されている証明書または CRL で、CRITICAL としてマーキングされている拡張の OID 文字列の Set を取得します。 |
byte[] |
getExtensionValue(String oid)
渡された oid String で識別される拡張値 (extnValue) の、DER で符号化された OCTET 文字列を取得します。 |
Set<String> |
getNonCriticalExtensionOIDs()
このインタフェースを実装するオブジェクトによって管理されている証明書または CRL で、NON-CRITICAL としてマーキングされている拡張機能の OID 文字列の Set を取得します。 |
boolean |
hasUnsupportedCriticalExtension()
サポートされていないクリティカルな拡張機能があるかをチェックします。 |
メソッドの詳細 |
---|
boolean hasUnsupportedCriticalExtension()
Set<String> getCriticalExtensionOIDs()
InputStream inStrm = new FileInputStream("DER-encoded-Cert");
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate)cf.generateCertificate(inStrm);
inStrm.close();
Set critSet = cert.getCriticalExtensionOIDs();
if (critSet != null && !critSet.isEmpty()) {
System.out.println("Set of critical extensions:");
for (Iterator i = critSet.iterator(); i.hasNext();) {
String oid = (String)i.next();
System.out.println(oid);
}
}
Set<String> getNonCriticalExtensionOIDs()
InputStream inStrm = new FileInputStream("DER-encoded-CRL");
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509CRL crl = (X509CRL)cf.generateCRL(inStrm);
inStrm.close();
byte[] certData = <DER-encoded certificate data>
ByteArrayInputStream bais = new ByteArrayInputStream(certData);
X509Certificate cert = (X509Certificate)cf.generateCertificate(bais);
bais.close();
X509CRLEntry badCert =
crl.getRevokedCertificate(cert.getSerialNumber());
if (badCert != null) {
Set nonCritSet = badCert.getNonCriticalExtensionOIDs();
if (nonCritSet != null)
for (Iterator i = nonCritSet.iterator(); i.hasNext();) {
String oid = (String)i.next();
System.out.println(oid);
}
}
byte[] getExtensionValue(String oid)
oid
String で識別される拡張値 (extnValue) の、DER で符号化された OCTET 文字列を取得します。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
- 拡張機能のオブジェクト識別子の値
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。