JavaTM 2
Platform
Std.  Ed.  v1. 4.0

java.security.cert
ÀÎÅÍÆäÀ̽º X509Extension

±âÁ¸ÀÇ ±¸Çö Ŭ·¡½ºÀÇ À϶÷:
X509Certificate , X509CRL , X509CRLEntry

public interface X509Extension

X. 509 È®Àå ±â´ÉÀ» À§ÇÑ ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù.

X. 509 v3 Certificates ¹× v2 CRLs (Áõ¸í¼­ÀÇ Ãë¼Ò ¸®½ºÆ®)·Î Á¤ÀǵǴ ȮÀå ±â´ÉÀº Ãß°¡ ¼Ó¼ºÀ» À¯Àú ¶Ç´Â °ø°³¿­¼è¿¡ °ü·ÃÁþ°Å³ª ÀÎÁõÀÇ °èÃþÀ» °ü¸®Çϰųª 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 ·Î encode µÈ OCTET STRING ¸¦ µ¹·ÁÁÝ´Ï´Ù. À̰ÍÀº È®Àå ±â´ÉÀ» ÀνÄÇÒ ¼ö ÀÖ´Â Class ¿¡ ÀÇÇØ ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.


¸Þ¼ÒµåÀÇ °³¿ä
 Set getCriticalExtensionOIDs ()
          ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ¿ÀºêÁ§Æ®¿¡ ÀÇÇØ °ü¸®µÇ°í ÀÖ´Â Áõ¸í¼­ ¶Ç´Â CRL ·Î, CRITICAL ·Î¼­ ¸¶Å· µÇ°í ÀÖ´Â È®ÀåÀÇ OID ij¸¯ÅÍ ¶óÀÎÀÇ Set ¸¦ ÃëµæÇÕ´Ï´Ù.
 byte[] getExtensionValue (String  oid)
          °Ç³×¹ÞÀº oid String ·Î ½Äº°µÇ´Â È®ÀåÄ¡ (extnValue)ÀÇ, DER ·Î encode µÈ OCTET ij¸¯ÅÍ ¶óÀÎÀ» ÃëµæÇÕ´Ï´Ù.
 Set getNonCriticalExtensionOIDs ()
          ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ¿ÀºêÁ§Æ®¿¡ ÀÇÇØ °ü¸®µÇ°í ÀÖ´Â Áõ¸í¼­ ¶Ç´Â CRL ·Î, NON-CRITICAL ·Î¼­ ¸¶Å· µÇ°í ÀÖ´Â È®ÀåÀÇ OID ij¸¯ÅÍ ¶óÀÎÀÇ Set ¸¦ ÃëµæÇÕ´Ï´Ù.
 boolean hasUnsupportedCriticalExtension ()
          ¼­Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº À§±âÀÎ È®Àå ±â´ÉÀÌ ÀÖ´ÂÁö¸¦ üũÇÕ´Ï´Ù.
 

¸Þ¼ÒµåÀÇ »ó¼¼

hasUnsupportedCriticalExtension

public boolean hasUnsupportedCriticalExtension()
¼­Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº À§±âÀÎ È®Àå ±â´ÉÀÌ ÀÖ´ÂÁö¸¦ üũÇÕ´Ï´Ù.

¹Ýȯ°ª:
¼­Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº À§±âÀÎ È®Àå ±â´ÉÀÌ ¹ß°ßµÇ¾úÀ» °æ¿ì´Â true, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false

getCriticalExtensionOIDs

public Set  getCriticalExtensionOIDs()
ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ¿ÀºêÁ§Æ®¿¡ ÀÇÇØ °ü¸®µÇ°í ÀÖ´Â Áõ¸í¼­ ¶Ç´Â CRL ·Î, CRITICAL ·Î¼­ ¸¶Å· µÇ°í ÀÖ´Â È®ÀåÀÇ OID ij¸¯ÅÍ ¶óÀÎÀÇ Set ¸¦ ÃëµæÇÕ´Ï´Ù. ´ÙÀ½ÀÇ ÄÚµù¿¹´Â X509Certificate ·ÎºÎÅÍ À§±âÀÎ È®Àå ±â´ÉÀÇ Set ¸¦ ÃëµæÇØ, OID ¸¦ Ãâ·ÂÇÏ´Â ¿¹ÀÔ´Ï´Ù.

 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); } }

¹Ýȯ°ª:
À§±â·Î¼­ ¸¶Å· µÇ°í ÀÖ´Â È®Àå ±â´ÉÀÇ È®Àå OID ij¸¯ÅÍ ¶óÀÎÀÇ Set. À§±â·Î¼­ ¸¶Å· µÇ°í ÀÖ´Â È®Àå ±â´ÉÀÌ ¾ø´Â °æ¿ì´Â ÇÏ´ÃÀÇ Set. È®Àå ±â´ÉÀÌ ¾ø´Â °æ¿ì´Â null

getNonCriticalExtensionOIDs

public Set  getNonCriticalExtensionOIDs()
ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ¿ÀºêÁ§Æ®¿¡ ÀÇÇØ °ü¸®µÇ°í ÀÖ´Â Áõ¸í¼­ ¶Ç´Â CRL ·Î, NON-CRITICAL ·Î¼­ ¸¶Å· µÇ°í ÀÖ´Â È®ÀåÀÇ OID ij¸¯ÅÍ ¶óÀÎÀÇ Set ¸¦ ÃëµæÇÕ´Ï´Ù. ´ÙÀ½ÀÇ ÄÚµù¿¹´Â X509CRL Ãë¼Ò Áõ¸í¼­ ¿£Æ®¸®·ÎºÎÅÍ ºñÀ§±âÀÎ È®Àå ±â´ÉÀÇ Set ¸¦ ÃëµæÇØ, OID ¸¦ Ãâ·ÂÇÏ´Â ¿¹ÀÔ´Ï´Ù.

 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); } }

¹Ýȯ°ª:
ºñÀ§±â·Î¼­ ¸¶Å· µÇ°í ÀÖ´Â È®Àå ±â´ÉÀÇ È®Àå OID ij¸¯ÅÍ ¶óÀÎÀÇ Set. ºñÀ§±â·Î¼­ ¸¶Å· µÇ°í ÀÖ´Â È®Àå ±â´ÉÀÌ ¾ø´Â °æ¿ì´Â ÇÏ´ÃÀÇ Set. È®ÀåÀÌ ¾ø´Â °æ¿ì´Â null

getExtensionValue

public byte[] getExtensionValue(String  oid)
°Ç³×¹ÞÀº oid String ·Î ½Äº°µÇ´Â È®ÀåÄ¡ (extnValue)ÀÇ, DER ·Î encode µÈ OCTET ij¸¯ÅÍ ¶óÀÎÀ» ÃëµæÇÕ´Ï´Ù. oid ij¸¯ÅÍ ¶óÀÎÀº ÇǸ®¾îµå·Î ´Ü¶ôÁö¾îÁø Á¤ÀÇ Á¤¼ö¼¼Æ®¿¡ ÀÇÇØ ³ªÅ¸³»Áý´Ï´Ù.

·Ê:
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 - È®Àå ±â´ÉÀÇ ¿ÀºêÁ§Æ® ½Äº°ÀÚÀÇ °ª
¹Ýȯ°ª:
È®ÀåÄ¡ÀÇ DER ·Î encode µÈ 8Áßâ ij¸¯ÅÍ ¶óÀÎ. ÀÌ Ä³¸¯ÅÍ ¶óÀÎÀÌ ¾ø´Â °æ¿ì´Â null

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

¹ö±×ÀÇ º¸°í¿Í ±â´ÉÀÇ ¸®Äù½ºÆ®
ÀÌ¿ÜÀÇ API ·¹ÆÛ·±½º ¹× °³¹ßÀÚ¿ë ¹®¼­¿¡ ´ëÇØ¼­´Â Java 2 SDK SE °³¹ßÀÚ¿ë ¹®¼­¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. °³¹ßÀÚÀü¿ëÀÇ »ó¼¼ÇÑ ÇØ¼³, °³³äÀÇ °³¿ä, ¿ë¾îÀÇ Á¤ÀÇ, ¹ö±×ÀÇ È¸ÇÇÃ¥, ¹× ÄÚµå ½Ç·Ê°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ À־ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.