Module java.base
Package java.security

Class PKCS12Attribute

java.lang.Object
java.security.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

    Modifier and Type
    Method
    Description
    boolean
    equals​(Object obj)
    Compares this PKCS12Attribute and a specified object for equality.
    byte[]
    Returns the attribute's ASN.1 DER encoding.
    Returns the attribute's ASN.1 Object Identifier represented as a list of dot-separated integers.
    Returns the attribute's ASN.1 DER-encoded value as a string.
    int
    Returns the hashcode for this PKCS12Attribute.
    Returns a string representation of this PKCS12Attribute.

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • 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 modification.
      Throws:
      NullPointerException - if encoded is null
      IllegalArgumentException - if encoded is incorrectly formatted
  • Method Details

    • 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