Class PKCS12Attribute

All Implemented Interfaces:
KeyStore.Entry.Attribute
public final class PKCS12Attribute
extends Object
implements KeyStore.Entry.Attribute

An attribute associated with a PKCS12 keystore entry. The attribute name is an ASN.1 Object Identifier and the attribute value is a set of ASN.1 types.

Since:
1.8

Constructor Summary

Constructors
Constructor Description
PKCS12Attribute​(byte[] encoded)

Constructs a PKCS12 attribute from its ASN.1 DER encoding.

PKCS12Attribute​(String name, String value)

Constructs a PKCS12 attribute from its name and value.

Method Summary

All Methods Instance Methods Concrete Methods
Modifier and Type Method Description
boolean equals​(Object obj)

Compares this PKCS12Attribute and a specified object for equality.

byte[] getEncoded()

Returns the attribute's ASN.1 DER encoding.

String getName()

Returns the attribute's ASN.1 Object Identifier represented as a list of dot-separated integers.

String getValue()

Returns the attribute's ASN.1 DER-encoded value as a string.

int hashCode()

Returns the hashcode for this PKCS12Attribute.

String toString()

Returns a string representation of this PKCS12Attribute.

Methods declared in class java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Constructor Detail

PKCS12Attribute

public PKCS12Attribute​(String name,
                       String value)

Constructs a PKCS12 attribute from its name and value. The name is an ASN.1 Object Identifier represented as a list of dot-separated integers. A string value is represented as the string itself. A binary value is represented as a string of colon-separated pairs of hexadecimal digits. Multi-valued attributes are represented as a comma-separated list of values, enclosed in square brackets. See Arrays.toString(java.lang.Object[]).

A string value will be DER-encoded as an ASN.1 UTF8String and a binary value will be DER-encoded as an ASN.1 Octet String.

Parameters:
name - the attribute's identifier
value - the attribute's value
Throws:
NullPointerException - if name or value is null
IllegalArgumentException - if name or value is incorrectly formatted

PKCS12Attribute

public PKCS12Attribute​(byte[] encoded)

Constructs a PKCS12 attribute from its ASN.1 DER encoding. The DER encoding is specified by the following ASN.1 definition:

Attribute ::= SEQUENCE {
     type   AttributeType,
     values SET OF AttributeValue
 }
 AttributeType ::= OBJECT IDENTIFIER
 AttributeValue ::= ANY defined by type
Parameters:
encoded - the attribute's ASN.1 DER encoding. It is cloned to prevent subsequent modificaion.
Throws:
NullPointerException - if encoded is null
IllegalArgumentException - if encoded is incorrectly formatted

Method Detail

getName

public String getName()

Returns the attribute's ASN.1 Object Identifier represented as a list of dot-separated integers.

Specified by:
getName in interface KeyStore.Entry.Attribute
Returns:
the attribute's identifier

getValue

public String getValue()

Returns the attribute's ASN.1 DER-encoded value as a string. An ASN.1 DER-encoded value is returned in one of the following String formats:

  • the DER encoding of a basic ASN.1 type that has a natural string representation is returned as the string itself. Such types are currently limited to BOOLEAN, INTEGER, OBJECT IDENTIFIER, UTCTime, GeneralizedTime and the following six ASN.1 string types: UTF8String, PrintableString, T61String, IA5String, BMPString and GeneralString.
  • the DER encoding of any other ASN.1 type is not decoded but returned as a binary string of colon-separated pairs of hexadecimal digits.
Multi-valued attributes are represented as a comma-separated list of values, enclosed in square brackets. See Arrays.toString(java.lang.Object[]).
Specified by:
getValue in interface KeyStore.Entry.Attribute
Returns:
the attribute value's string encoding

getEncoded

public byte[] getEncoded()

Returns the attribute's ASN.1 DER encoding.

Returns:
a clone of the attribute's DER encoding

equals

public boolean equals​(Object obj)

Compares this PKCS12Attribute and a specified object for equality.

Overrides:
equals in class Object
Parameters:
obj - the comparison object
Returns:
true if obj is a PKCS12Attribute and their DER encodings are equal.
See Also:
Object.hashCode(), HashMap

hashCode

public int hashCode()

Returns the hashcode for this PKCS12Attribute. The hash code is computed from its DER encoding.

Overrides:
hashCode in class Object
Returns:
the hash code
See Also:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

toString

public String toString()

Returns a string representation of this PKCS12Attribute.

Overrides:
toString in class Object
Returns:
a name/value pair separated by an 'equals' symbol