Class X509Name
- java.lang.Object
-
- org.gudy.bouncycastle.asn1.ASN1Encodable
-
- org.gudy.bouncycastle.asn1.x509.X509Name
-
- All Implemented Interfaces:
DEREncodable
- Direct Known Subclasses:
X509Principal
public class X509Name extends ASN1Encodable
RDNSequence ::= SEQUENCE OF RelativeDistinguishedName RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue AttributeTypeAndValue ::= SEQUENCE { type OBJECT IDENTIFIER, value ANY }
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Vector
added
static DERObjectIdentifier
BUSINESS_CATEGORY
businessCategory - DirectoryString(SIZE(1..128)static DERObjectIdentifier
C
country code - StringType(SIZE(2))static DERObjectIdentifier
CN
common name - StringType(SIZE(1..64))private X509NameEntryConverter
converter
static DERObjectIdentifier
COUNTRY_OF_CITIZENSHIP
RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166 codes onlystatic DERObjectIdentifier
COUNTRY_OF_RESIDENCE
RFC 3039 CountryOfResidence - PrintableString (SIZE (2)) -- ISO 3166 codes onlystatic DERObjectIdentifier
DATE_OF_BIRTH
RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Zstatic DERObjectIdentifier
DC
static java.util.Hashtable
DefaultLookUp
look up table translating common symbols into their OIDS.static boolean
DefaultReverse
determines whether or not strings should be processed and printed from back to front.static java.util.Hashtable
DefaultSymbols
default look up table translating OID values into their common symbols following the convention in RFC 2253 with a few extrasstatic DERObjectIdentifier
DN_QUALIFIER
dnQualifier - DirectoryString(SIZE(1..64)static DERObjectIdentifier
E
email address in Verisign certificatesstatic DERObjectIdentifier
EmailAddress
Email address (RSA PKCS#9 extension) - IA5String.private static java.lang.Boolean
FALSE
static DERObjectIdentifier
GENDER
RFC 3039 Gender - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"static DERObjectIdentifier
GENERATION
static DERObjectIdentifier
GIVENNAME
static DERObjectIdentifier
INITIALS
static DERObjectIdentifier
L
locality name - StringType(SIZE(1..64))static DERObjectIdentifier
NAME_AT_BIRTH
ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)static DERObjectIdentifier
O
organization - StringType(SIZE(1..64))static java.util.Hashtable
OIDLookUp
look up table translating OID values into their common symbols - this static is scheduled for deletionprivate java.util.Vector
ordering
static DERObjectIdentifier
OU
organizational unit name - StringType(SIZE(1..64))static DERObjectIdentifier
PLACE_OF_BIRTH
RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)static DERObjectIdentifier
POSTAL_ADDRESS
RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF DirectoryString(SIZE(1..30))static DERObjectIdentifier
POSTAL_CODE
postalCode - DirectoryString(SIZE(1..40)static DERObjectIdentifier
PSEUDONYM
RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)static java.util.Hashtable
RFC1779Symbols
look up table translating OID values into their common symbols following the convention in RFC 1779static java.util.Hashtable
RFC2253Symbols
look up table translating OID values into their common symbols following the convention in RFC 2253private ASN1Sequence
seq
static DERObjectIdentifier
SERIALNUMBER
device serial number name - StringType(SIZE(1..64))static DERObjectIdentifier
SN
device serial number name - StringType(SIZE(1..64))static DERObjectIdentifier
ST
state, or province name - StringType(SIZE(1..64))static DERObjectIdentifier
STREET
street - StringType(SIZE(1..64))static DERObjectIdentifier
SURNAME
Naming attributes of type X520namestatic java.util.Hashtable
SymbolLookUp
look up table translating string values into their OIDS - this static is scheduled for deletionstatic DERObjectIdentifier
T
Titleprivate static java.lang.Boolean
TRUE
static DERObjectIdentifier
UID
LDAP User id.static DERObjectIdentifier
UNIQUE_IDENTIFIER
static DERObjectIdentifier
UnstructuredAddress
static DERObjectIdentifier
UnstructuredName
more from PKCS#9private java.util.Vector
values
-
Fields inherited from class org.gudy.bouncycastle.asn1.ASN1Encodable
BER, DER
-
-
Constructor Summary
Constructors Constructor Description X509Name(boolean reverse, java.lang.String dirName)
Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or some such, converting it into an ordered set of name attributes.X509Name(boolean reverse, java.lang.String dirName, X509NameEntryConverter converter)
Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or some such, converting it into an ordered set of name attributes with each string value being converted to its associated ASN.1 type using the passed in converter.X509Name(boolean reverse, java.util.Hashtable lookUp, java.lang.String dirName)
Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or some such, converting it into an ordered set of name attributes.X509Name(boolean reverse, java.util.Hashtable lookUp, java.lang.String dirName, X509NameEntryConverter converter)
Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or some such, converting it into an ordered set of name attributes.X509Name(java.lang.String dirName)
Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or some such, converting it into an ordered set of name attributes.X509Name(java.lang.String dirName, X509NameEntryConverter converter)
Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or some such, converting it into an ordered set of name attributes with each string value being converted to its associated ASN.1 type using the passed in converter.X509Name(java.util.Hashtable attributes)
Deprecated.use an ordered constructor! The hashtable ordering is rarely correctX509Name(java.util.Vector ordering, java.util.Hashtable attributes)
Constructor from a table of attributes with ordering.X509Name(java.util.Vector ordering, java.util.Hashtable attributes, X509NameEntryConverter converter)
Constructor from a table of attributes with ordering.X509Name(java.util.Vector oids, java.util.Vector values)
Takes two vectors one of the oids and the other of the values.X509Name(java.util.Vector oids, java.util.Vector values, X509NameEntryConverter converter)
Takes two vectors one of the oids and the other of the values.X509Name(ASN1Sequence seq)
Constructor from ASN1Sequence the principal will be a list of constructed sets, each containing an (OID, String) pair.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
appendValue(java.lang.StringBuffer buf, java.util.Hashtable oidSymbols, DERObjectIdentifier oid, java.lang.String value)
private java.lang.String
bytesToString(byte[] data)
private DERObjectIdentifier
decodeOID(java.lang.String name, java.util.Hashtable lookUp)
boolean
equals(java.lang.Object obj)
test for equality - note: case is ignored.boolean
equals(java.lang.Object obj, boolean inOrder)
private boolean
equivalentStrings(java.lang.String s1, java.lang.String s2)
static X509Name
getInstance(java.lang.Object obj)
static X509Name
getInstance(ASN1TaggedObject obj, boolean explicit)
Return a X509Name based on the passed in tagged object.java.util.Vector
getOIDs()
return a vector of the oids in the name, in the order they were found.java.util.Vector
getValues()
return a vector of the values found in the name, in the order they were found.java.util.Vector
getValues(DERObjectIdentifier oid)
return a vector of the values found in the name, in the order they were found, with the DN label corresponding to passed in oid.int
hashCode()
private java.lang.String
stripInternalSpaces(java.lang.String str)
DERObject
toASN1Object()
java.lang.String
toString()
java.lang.String
toString(boolean reverse, java.util.Hashtable oidSymbols)
convert the structure to a string - if reverse is true the oids and values are listed out starting with the last element in the sequence (ala RFC 2253), otherwise the string will begin with the first element of the structure.-
Methods inherited from class org.gudy.bouncycastle.asn1.ASN1Encodable
getDEREncoded, getDERObject, getEncoded, getEncoded
-
-
-
-
Field Detail
-
C
public static final DERObjectIdentifier C
country code - StringType(SIZE(2))
-
O
public static final DERObjectIdentifier O
organization - StringType(SIZE(1..64))
-
OU
public static final DERObjectIdentifier OU
organizational unit name - StringType(SIZE(1..64))
-
T
public static final DERObjectIdentifier T
Title
-
CN
public static final DERObjectIdentifier CN
common name - StringType(SIZE(1..64))
-
SN
public static final DERObjectIdentifier SN
device serial number name - StringType(SIZE(1..64))
-
STREET
public static final DERObjectIdentifier STREET
street - StringType(SIZE(1..64))
-
SERIALNUMBER
public static final DERObjectIdentifier SERIALNUMBER
device serial number name - StringType(SIZE(1..64))
-
L
public static final DERObjectIdentifier L
locality name - StringType(SIZE(1..64))
-
ST
public static final DERObjectIdentifier ST
state, or province name - StringType(SIZE(1..64))
-
SURNAME
public static final DERObjectIdentifier SURNAME
Naming attributes of type X520name
-
GIVENNAME
public static final DERObjectIdentifier GIVENNAME
-
INITIALS
public static final DERObjectIdentifier INITIALS
-
GENERATION
public static final DERObjectIdentifier GENERATION
-
UNIQUE_IDENTIFIER
public static final DERObjectIdentifier UNIQUE_IDENTIFIER
-
BUSINESS_CATEGORY
public static final DERObjectIdentifier BUSINESS_CATEGORY
businessCategory - DirectoryString(SIZE(1..128)
-
POSTAL_CODE
public static final DERObjectIdentifier POSTAL_CODE
postalCode - DirectoryString(SIZE(1..40)
-
DN_QUALIFIER
public static final DERObjectIdentifier DN_QUALIFIER
dnQualifier - DirectoryString(SIZE(1..64)
-
PSEUDONYM
public static final DERObjectIdentifier PSEUDONYM
RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)
-
DATE_OF_BIRTH
public static final DERObjectIdentifier DATE_OF_BIRTH
RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z
-
PLACE_OF_BIRTH
public static final DERObjectIdentifier PLACE_OF_BIRTH
RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)
-
GENDER
public static final DERObjectIdentifier GENDER
RFC 3039 Gender - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"
-
COUNTRY_OF_CITIZENSHIP
public static final DERObjectIdentifier COUNTRY_OF_CITIZENSHIP
RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166 codes only
-
COUNTRY_OF_RESIDENCE
public static final DERObjectIdentifier COUNTRY_OF_RESIDENCE
RFC 3039 CountryOfResidence - PrintableString (SIZE (2)) -- ISO 3166 codes only
-
NAME_AT_BIRTH
public static final DERObjectIdentifier NAME_AT_BIRTH
ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)
-
POSTAL_ADDRESS
public static final DERObjectIdentifier POSTAL_ADDRESS
RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF DirectoryString(SIZE(1..30))
-
EmailAddress
public static final DERObjectIdentifier EmailAddress
Email address (RSA PKCS#9 extension) - IA5String.Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.
-
UnstructuredName
public static final DERObjectIdentifier UnstructuredName
more from PKCS#9
-
UnstructuredAddress
public static final DERObjectIdentifier UnstructuredAddress
-
E
public static final DERObjectIdentifier E
email address in Verisign certificates
-
DC
public static final DERObjectIdentifier DC
-
UID
public static final DERObjectIdentifier UID
LDAP User id.
-
OIDLookUp
public static java.util.Hashtable OIDLookUp
look up table translating OID values into their common symbols - this static is scheduled for deletion
-
DefaultReverse
public static boolean DefaultReverse
determines whether or not strings should be processed and printed from back to front.
-
DefaultSymbols
public static java.util.Hashtable DefaultSymbols
default look up table translating OID values into their common symbols following the convention in RFC 2253 with a few extras
-
RFC2253Symbols
public static java.util.Hashtable RFC2253Symbols
look up table translating OID values into their common symbols following the convention in RFC 2253
-
RFC1779Symbols
public static java.util.Hashtable RFC1779Symbols
look up table translating OID values into their common symbols following the convention in RFC 1779
-
SymbolLookUp
public static java.util.Hashtable SymbolLookUp
look up table translating string values into their OIDS - this static is scheduled for deletion
-
DefaultLookUp
public static java.util.Hashtable DefaultLookUp
look up table translating common symbols into their OIDS.
-
TRUE
private static final java.lang.Boolean TRUE
-
FALSE
private static final java.lang.Boolean FALSE
-
converter
private X509NameEntryConverter converter
-
ordering
private java.util.Vector ordering
-
values
private java.util.Vector values
-
added
private java.util.Vector added
-
seq
private ASN1Sequence seq
-
-
Constructor Detail
-
X509Name
public X509Name(ASN1Sequence seq)
Constructor from ASN1Sequence the principal will be a list of constructed sets, each containing an (OID, String) pair.
-
X509Name
public X509Name(java.util.Hashtable attributes)
Deprecated.use an ordered constructor! The hashtable ordering is rarely correctconstructor from a table of attributes.it's is assumed the table contains OID/String pairs, and the contents of the table are copied into an internal table as part of the construction process.
Note: if the name you are trying to generate should be following a specific ordering, you should use the constructor with the ordering specified below.
-
X509Name
public X509Name(java.util.Vector ordering, java.util.Hashtable attributes)
Constructor from a table of attributes with ordering.it's is assumed the table contains OID/String pairs, and the contents of the table are copied into an internal table as part of the construction process. The ordering vector should contain the OIDs in the order they are meant to be encoded or printed in toString.
-
X509Name
public X509Name(java.util.Vector ordering, java.util.Hashtable attributes, X509NameEntryConverter converter)
Constructor from a table of attributes with ordering.it's is assumed the table contains OID/String pairs, and the contents of the table are copied into an internal table as part of the construction process. The ordering vector should contain the OIDs in the order they are meant to be encoded or printed in toString.
The passed in converter will be used to convert the strings into their ASN.1 counterparts.
-
X509Name
public X509Name(java.util.Vector oids, java.util.Vector values)
Takes two vectors one of the oids and the other of the values.
-
X509Name
public X509Name(java.util.Vector oids, java.util.Vector values, X509NameEntryConverter converter)
Takes two vectors one of the oids and the other of the values.The passed in converter will be used to convert the strings into their ASN.1 counterparts.
-
X509Name
public X509Name(java.lang.String dirName)
Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or some such, converting it into an ordered set of name attributes.
-
X509Name
public X509Name(java.lang.String dirName, X509NameEntryConverter converter)
Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or some such, converting it into an ordered set of name attributes with each string value being converted to its associated ASN.1 type using the passed in converter.
-
X509Name
public X509Name(boolean reverse, java.lang.String dirName)
Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or some such, converting it into an ordered set of name attributes. If reverse is true, create the encoded version of the sequence starting from the last element in the string.
-
X509Name
public X509Name(boolean reverse, java.lang.String dirName, X509NameEntryConverter converter)
Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or some such, converting it into an ordered set of name attributes with each string value being converted to its associated ASN.1 type using the passed in converter. If reverse is true the ASN.1 sequence representing the DN will be built by starting at the end of the string, rather than the start.
-
X509Name
public X509Name(boolean reverse, java.util.Hashtable lookUp, java.lang.String dirName)
Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or some such, converting it into an ordered set of name attributes. lookUp should provide a table of lookups, indexed by lowercase only strings and yielding a DERObjectIdentifier, other than that OID. and numeric oids will be processed automatically.
If reverse is true, create the encoded version of the sequence starting from the last element in the string.- Parameters:
reverse
- true if we should start scanning from the end (RFC 2553).lookUp
- table of names and their oids.dirName
- the X.500 string to be parsed.
-
X509Name
public X509Name(boolean reverse, java.util.Hashtable lookUp, java.lang.String dirName, X509NameEntryConverter converter)
Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or some such, converting it into an ordered set of name attributes. lookUp should provide a table of lookups, indexed by lowercase only strings and yielding a DERObjectIdentifier, other than that OID. and numeric oids will be processed automatically. The passed in converter is used to convert the string values to the right of each equals sign to their ASN.1 counterparts.- Parameters:
reverse
- true if we should start scanning from the end, false otherwise.lookUp
- table of names and oids.dirName
- the string dirNameconverter
- the converter to convert string values into their ASN.1 equivalents
-
-
Method Detail
-
getInstance
public static X509Name getInstance(ASN1TaggedObject obj, boolean explicit)
Return a X509Name based on the passed in tagged object.- Parameters:
obj
- tag object holding name.explicit
- true if explicitly tagged false otherwise.- Returns:
- the X509Name
-
getInstance
public static X509Name getInstance(java.lang.Object obj)
-
decodeOID
private DERObjectIdentifier decodeOID(java.lang.String name, java.util.Hashtable lookUp)
-
getOIDs
public java.util.Vector getOIDs()
return a vector of the oids in the name, in the order they were found.
-
getValues
public java.util.Vector getValues()
return a vector of the values found in the name, in the order they were found.
-
getValues
public java.util.Vector getValues(DERObjectIdentifier oid)
return a vector of the values found in the name, in the order they were found, with the DN label corresponding to passed in oid.
-
toASN1Object
public DERObject toASN1Object()
- Specified by:
toASN1Object
in classASN1Encodable
-
equals
public boolean equals(java.lang.Object obj, boolean inOrder)
- Parameters:
inOrder
- if true the order of both X509 names must be the same, as well as the values associated with each element.
-
equals
public boolean equals(java.lang.Object obj)
test for equality - note: case is ignored.- Overrides:
equals
in classASN1Encodable
-
equivalentStrings
private boolean equivalentStrings(java.lang.String s1, java.lang.String s2)
-
stripInternalSpaces
private java.lang.String stripInternalSpaces(java.lang.String str)
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classASN1Encodable
-
appendValue
private void appendValue(java.lang.StringBuffer buf, java.util.Hashtable oidSymbols, DERObjectIdentifier oid, java.lang.String value)
-
toString
public java.lang.String toString(boolean reverse, java.util.Hashtable oidSymbols)
convert the structure to a string - if reverse is true the oids and values are listed out starting with the last element in the sequence (ala RFC 2253), otherwise the string will begin with the first element of the structure. If no string definition for the oid is found in oidSymbols the string value of the oid is added. Two standard symbol tables are provided DefaultSymbols, and RFC2253Symbols as part of this class.- Parameters:
reverse
- if true start at the end of the sequence and work back.oidSymbols
- look up table strings for oids.
-
bytesToString
private java.lang.String bytesToString(byte[] data)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-