|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--iaik.me.x509.X509Extension
This is the central class for X.509 certificate extensions. It may be used for creating
some extension from its ASN.1
representation.
Objects of this class are immutable, i.e. they cannot be modified once they have been created.
The values contained in the object can be retrieved using the appropriate get*()
method
using one of the X_*
constants valid for the object, i.e.
getByteArray()
for byte[] values (e.g. SubjectKeyIdentiifer, etc.),
getInteger()
for Integer values (e.g. pathLenConstraint of BasicConstraints, etc.)
getBoolean()
for Boolean values (e.g. pathLenConstraint of BasicConstraints, etc.)
getEnumeration()
if an extension holds more than value (e.g. extended key usage OIDs)
Example:
To create a secret key:
// the ASN1 representation of a BasicConstraints extension ASN1 asn1 = ...; // create the X509Extension object X509Extension basicConstraints = new X509Extension(asn1); // get the cA value boolean cA = basicConstraints.getBoolean(X509Extension.X_BC_IS_CA); // get the pathLenConstraint value boolean pathLenConstraint = basicConstraints.getInteger(X509Extension.X_BC_LENGTH);The following extensions are supported (i.e. can be parsed by this class):
getByteArray
using the X_ENCODING key as
parameter:
byte[] enc = ext.getByteArray(X509Extension.X_ENCODING);The same applies if errors in extensions (which cannot be parsed properly) occur. To get the keyusage have a look at this:
X509Extension ex1= x509.getExtension(X509Extension.OID_KEY_USAGE); int a = ex1.getInteger(ex1.X_KEY_USAGE); if ( b && X509Extension.KU_CRL_SIGN) { System.out.println("CRL SIGN"); break; } case X509Extension.KU_DATA_ENCIPHERMENT: { System.out.println("DATA ENC"); break; } case X509Extension.KU_DECIPHER_ONLY:{ System.out.println("DEC ONLY"); break; } case X509Extension.KU_DIGITAL_SIGNATURE:{ System.out.println("DIGITAL SIG"); break; } case X509Extension.KU_ENCIPHER_ONLY: { System.out.println("ENC ONLY"); break; } case X509Extension.KU_KEY_AGREEMENT: { System.out.println("CRL SIGN"); break; } case X509Extension.KU_KEY_CERT_SIGN: { System.out.println("CET SIGN"); break; } case X509Extension.KU_KEY_ENCIPHERMENT: { System.out.println("KEY_ENC"); break; } case X509Extension.KU_NON_REPUDIATION: { System.out.println("NON REP"); break; } default: { System.out.println("Unknown EXT!"); b = b >> 1; }
Constructor Summary | |
X509Extension(ASN1 ext)
|
Method Summary | |
boolean |
getBoolean(int param)
Returns an extension value as Boolean. |
byte[] |
getByteArray(int param)
This method returns a specific extension value as Object. |
Enumeration |
getEnumeration(int param)
This method returns an enumeration of all values a parameter can have. |
int |
getInteger(int param)
Returns an extension value as Integer. |
String |
getObjectID()
Returns the Object ID of the current Extension. |
String |
getString(int param)
Returns an extension value as String. |
Object |
getValue(int param)
This method returns a specific extension value as Object. |
boolean |
isCritical()
This method returns the critical flag if the extension. |
String |
toString()
This method returns information about the extension including: critical flag and the extension parameters and values. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public static final String OID_ERROR
public static final String OID_BASIC_CONSTRAINTS
public static final String OID_KEY_USAGE
public static final String OID_EXTENDED_KEY_USAGE
public static final String OID_SUBJECT_ALT_NAME
public static final String OID_ISSUER_ALT_NAME
public static final String OID_SUBJECT_KEY_IDENTIFIER
public static final String OID_AUTHORITY_KEY_IDENTIFIER
public static final String OID_CERTIFICATE_POLICIES
public static final String OID_QCSTATEMENTS
public static final String OID_NETSCAPE_CERT_TYPE
public static final String OID_NETSCAPE_COMMENT
public static final String OID_NETSCAPE_SSL_SERVER_NAME
public static final String OID_EKU_SERVER_AUTH
public static final String OID_EKU_CLIENT_AUTH
public static final String OID_EKU_CODE_SIGNING
public static final String OID_EKU_EMAIL_PROTECTION
public static final String OID_EKU_TIME_STAMPING
public static final int X_ENCODING
public static final int X_ORIGINAL_OID
public static final int X_BC_IS_CA
public static final int X_BC_LENGTH
public static final int X_KEY_USAGE
public static final int X_EXT_KEY_USAGE
public static final int X_ALT_NAME_EMAIL
public static final int X_ALT_NAME_DNS
public static final int X_ALT_NAME_URI
public static final int X_KEY_ID
public static final int X_NS_CERT_TYPE
public static final int X_NS_COMMENT
public static final int X_NS_SERVER_NAME
public static final int KU_DIGITAL_SIGNATURE
public static final int KU_NON_REPUDIATION
public static final int KU_KEY_ENCIPHERMENT
public static final int KU_DATA_ENCIPHERMENT
public static final int KU_KEY_AGREEMENT
public static final int KU_KEY_CERT_SIGN
public static final int KU_CRL_SIGN
public static final int KU_ENCIPHER_ONLY
public static final int KU_DECIPHER_ONLY
public static final int NSTYPE_SSL_CLIENT
public static final int NSTYPE_SSL_SERVER
public static final int NSTYPE_SMIME
public static final int NSTYPE_OBJECT_SIGNING
public static final int NSTYPE_SSL_CA
public static final int NSTYPE_SMIME_CA
public static final int NSTYPE_OBJECT_SIGNING_CA
Constructor Detail |
public X509Extension(ASN1 ext) throws IOException
Method Detail |
public String getObjectID()
public boolean isCritical()
public Object getValue(int param)
public byte[] getByteArray(int param)
public int getInteger(int param)
param
- the value of the extension:public boolean getBoolean(int param)
param
- the value of the extensionpublic String getString(int param)
param
- the value of the extensionpublic Enumeration getEnumeration(int param)
The enumeration point to this values which can now be processed.
param
- the X_...id of the param for e.g: X_KEY_USAGEpublic String toString()
toString
in class Object
|
This Javadoc may contain text parts from IETF Internet Standard specifications, see copyright note) and RSA Data Security Public-Key Cryptography Standards (see copyright note). | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |