public class InfoTypeAndValue extends AttributeTypeAndValue
The CMP specification lists several pairs of information types and values (optional) but, technically, any valid pair of ASN1ObjectID
and ASN1Object
may be used. For ease of use, the classes representing the type an value pairs defined in CMP provide methods for accessing their values that are tailored to their particular structures. For this reason, it is desirable that an information type an dvalue be cast-able to its subclass type after being input from, for example, a stream.
To facilitate this behavior, a static inputInstance(java.io.InputStream)
method is provided in the InfoTypeAndValue
base class. For defined/recognized controls, the method returns an instance of the appropriate InfoTypeAndValue
subclass, which can then be cast to its real type. For all other valid type and value pairs, an instance of the InfoTypeAndValue
base class is returned.
Modifier and Type | Field and Description |
---|---|
protected boolean |
decoded
This field is used for coordinating ASN.1 input with the superclass.
|
protected boolean |
encoded
This field is used for coordinating ASN.1 output with the superclass.
|
Constructor and Description |
---|
InfoTypeAndValue()
Creates a new, empty information type and value.
|
InfoTypeAndValue(oracle.security.crypto.asn1.ASN1ObjectID type) |
InfoTypeAndValue(oracle.security.crypto.asn1.ASN1ObjectID type, oracle.security.crypto.asn1.ASN1Object value) |
InfoTypeAndValue(java.io.InputStream is) |
Modifier and Type | Method and Description |
---|---|
protected void |
decodeValue()
Decodes the baseclass'
ASN1Object value to populate this control's fields. |
protected void |
encodeValue()
Encodes this control's fields as an
ASN1Object for the baseclass. |
oracle.security.crypto.asn1.ASN1ObjectID |
getType()
Returns the type.
|
oracle.security.crypto.asn1.ASN1Object |
getValue()
Returns the value.
|
void |
input(java.io.InputStream is)
Defines this attribute type-value pair by reading its encoding from the given input stream.
|
static InfoTypeAndValue |
inputInstance(java.io.InputStream is)
Creates a new CMP
InfoTypeAndValue by reading its encoding from the given input stream. |
int |
length() |
void |
output(java.io.OutputStream os) |
void |
setValue(oracle.security.crypto.asn1.ASN1Object value)
Sets the value.
|
java.lang.String |
toString() |
readExternal, writeExternal
protected boolean encoded
encoded
must be set to false
. When the new value has been communicated to the superclass, encoded
must be set to true
.
The initial value is false
.
protected boolean decoded
decoded
must be set to false
. When the new value has been communicated to the subclass, decoded
must be set to true
.
The initial value is true
.
public InfoTypeAndValue()
public InfoTypeAndValue(oracle.security.crypto.asn1.ASN1ObjectID type, oracle.security.crypto.asn1.ASN1Object value)
public InfoTypeAndValue(oracle.security.crypto.asn1.ASN1ObjectID type)
public InfoTypeAndValue(java.io.InputStream is) throws java.io.IOException
java.io.IOException
public static InfoTypeAndValue inputInstance(java.io.InputStream is) throws java.io.IOException
InfoTypeAndValue
by reading its encoding from the given input stream.is
- the input stream.java.io.IOException
- if an I/O error occurs during input, or the encoding does not have the correct format.public oracle.security.crypto.asn1.ASN1ObjectID getType()
getType
in class AttributeTypeAndValue
public oracle.security.crypto.asn1.ASN1Object getValue()
getValue
in class AttributeTypeAndValue
public void setValue(oracle.security.crypto.asn1.ASN1Object value)
setValue
in class AttributeTypeAndValue
protected void encodeValue()
ASN1Object
for the baseclass.
Subclasses must override this method to properly test and set the encoded
field, and invoke the superclass setValue(oracle.security.crypto.asn1.ASN1Object)
method to set the encoded structure.
protected void decodeValue()
ASN1Object
value to populate this control's fields.
Subclasses must override this method to invoke the getValue()
method to get the structure to decode, and properly test and set the decoded
field.
public java.lang.String toString()
toString
in class java.lang.Object
public void input(java.io.InputStream is) throws java.io.IOException
input
in interface oracle.security.crypto.util.Streamable
input
in class AttributeTypeAndValue
is
- the input streamjava.io.IOException
public void output(java.io.OutputStream os) throws java.io.IOException
output
in interface oracle.security.crypto.util.Streamable
output
in class AttributeTypeAndValue
java.io.IOException
public int length()
length
in interface oracle.security.crypto.util.Streamable
length
in class AttributeTypeAndValue