org.bouncycastle.jce

## Class X509Principal

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Encodable
  - - org.bouncycastle.asn1.x509.X509Name
    - - org.bouncycastle.jce.X509Principal

All Implemented Interfaces:
  java.security.Principal, DEREncodable

    public class X509Principal
    extends X509Name
    implements java.security.Principal

a general extension of X509Name with a couple of extra methods and constructors.

Objects of this type can be created from certificates and CRLs using the PrincipalUtil class.

See Also:
  `PrincipalUtil`

### Field Summary

### Fields inherited from class org.bouncycastle.asn1.x509.X509Name

`BUSINESS_CATEGORY, C, CN, COUNTRY_OF_CITIZENSHIP, COUNTRY_OF_RESIDENCE, DATE_OF_BIRTH, DC, DefaultLookUp, DefaultReverse, DefaultSymbols, DMD_NAME, DN_QUALIFIER, E, EmailAddress, GENDER, GENERATION, GIVENNAME, INITIALS, L, NAME, NAME_AT_BIRTH, O, OIDLookUp, OU, PLACE_OF_BIRTH, POSTAL_ADDRESS, POSTAL_CODE, PSEUDONYM, RFC1779Symbols, RFC2253Symbols, SERIALNUMBER, SN, ST, STREET, SURNAME, SymbolLookUp, T, TELEPHONE_NUMBER, UID, UNIQUE_IDENTIFIER, UnstructuredAddress, UnstructuredName`

### Fields inherited from class org.bouncycastle.asn1.ASN1Encodable

`BER, DER`

### Constructor Summary

Constructors
Constructor and Description

`X509Principal(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.

`X509Principal(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.
`X509Principal(byte[] bytes)` Constructor from an encoded byte array.
`X509Principal(java.util.Hashtable attributes)` constructor from a table of attributes.
`X509Principal(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.
`X509Principal(java.util.Vector ordering, java.util.Hashtable attributes)` constructor from a table of attributes and a vector giving the specific ordering required for encoding or conversion to a string.
`X509Principal(java.util.Vector oids, java.util.Vector values)` constructor from a vector of attribute values and a vector of OIDs.
`X509Principal(X509Name name)` Constructor from an X509Name object.

### Method Summary

Methods
`byte[]` `getEncoded()` return a DER encoded byte array representing this object
`java.lang.String` `getName()`

### Methods inherited from class org.bouncycastle.asn1.x509.X509Name

`equals, equals, getInstance, getInstance, getOIDs, getValues, getValues, hashCode, toASN1Object, toString, toString`

### Methods inherited from class org.bouncycastle.asn1.ASN1Encodable

`getDEREncoded, getDERObject, getEncoded`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface java.security.Principal

`equals, hashCode, toString`

### Constructor Detail

#### X509Principal

    public X509Principal(byte[] bytes)
                  throws java.io.IOException

Constructor from an encoded byte array.

Throws:
  `java.io.IOException`

#### X509Principal

    public X509Principal(X509Name name)

Constructor from an X509Name object.

#### X509Principal

    public X509Principal(java.util.Hashtable attributes)

constructor from a table of attributes.

it's is assumed the table contains OID/String pairs.

#### X509Principal

    public X509Principal(java.util.Vector ordering,
                 java.util.Hashtable attributes)

constructor from a table of attributes and a vector giving the specific ordering required for encoding or conversion to a string.

it's is assumed the table contains OID/String pairs.

#### X509Principal

    public X509Principal(java.util.Vector oids,
                 java.util.Vector values)

constructor from a vector of attribute values and a vector of OIDs.

#### X509Principal

    public X509Principal(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.

#### X509Principal

    public X509Principal(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 false the dir name will be encoded in the order of the (name, value) pairs presented, otherwise the encoding will start with the last (name, value) pair and work back.

#### X509Principal

    public X509Principal(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.

### Method Detail

#### getName

    public java.lang.String getName()

Specified by:
  `getName` in interface `java.security.Principal`

#### getEncoded

    public byte[] getEncoded()

return a DER encoded byte array representing this object

Overrides:
  `getEncoded` in class `ASN1Encodable`
Returns:
  BER/DER byte encoded object.