public class RegistrationControl extends AttributeTypeAndValue
The CRMF specification (RFC 2511) defines several registration controls and their OIDs (e.g., id-regCtrl-pkiPublicationInfo) but, technically, any valid attributeTypeAndValue structure may be used. For ease of use, the classes representing the controls defined in CRMF provide methods for accessing their values that are tailored to their particular structures. For this reason, it is desirable that a registration control 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 RegistrationControl
base class. For defined/recognized controls, the method returns an instance of the appropriate RegistrationControl
subclass, which can then be cast to its real type. For all other valid AttributeTypeAndValue
objects, an instance of the RegistrationControl
base class is returned, which can be manipulated using its AttributeTypeAndValue
superclass methods.
AttributeTypeAndValue
, Serialized FormModifier 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 |
---|
RegistrationControl(oracle.security.crypto.asn1.ASN1ObjectID type, oracle.security.crypto.asn1.ASN1Object value)
Creates a new
RegistrationControl instance. |
Modifier and Type | Method and Description |
---|---|
protected void |
decodeValue()
Decodes the superclass
AttributeTypeAndValue 's ASN1Object value to populate this control's fields. |
protected void |
encodeValue()
Encodes this control's fields as an
ASN1Object for the superclass AttributeTypeAndValue 's value. |
void |
input(java.io.InputStream is)
Defines this attribute type-value pair by reading its encoding from the given input stream.
|
static RegistrationControl |
inputInstance(java.io.InputStream is)
Creates a new CRMF
RegistrationControl 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.
|
getType, getValue, 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 RegistrationControl(oracle.security.crypto.asn1.ASN1ObjectID type, oracle.security.crypto.asn1.ASN1Object value)
RegistrationControl
instance.public void setValue(oracle.security.crypto.asn1.ASN1Object value)
AttributeTypeAndValue
setValue
in class AttributeTypeAndValue
protected void encodeValue()
ASN1Object
for the superclass AttributeTypeAndValue
's value.
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()
AttributeTypeAndValue
's ASN1Object
value to populate this control's fields.
Subclasses must override this method to invoke the superclass AttributeTypeAndValue.getValue()
method to get the structure to decode, and properly test and set the decoded
field.
public static RegistrationControl inputInstance(java.io.InputStream is) throws java.io.IOException
RegistrationControl
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 void input(java.io.InputStream is) throws java.io.IOException
AttributeTypeAndValue
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