Class Asn
- All Implemented Interfaces:
AutoCloseable
Load, inspect, build, edit, and encode ASN.1 structures in DER or XML form.
Chilkat.Asn represents an ASN.1 item and its optional child
items. It can load ASN.1 from binary DER, encoded DER strings, files, or
BinData; expose tags, tag values, primitive content, boolean
and integer values, and child counts; build constructed structures such as
SEQUENCE and SET; append common primitive types
such as booleans, integers, big integers, bit strings, octets, OIDs, strings,
times, null values, and context-specific items; convert ASN.1 to XML; reload
from that XML form; and write the final structure back to DER.
Load DER data
Load ASN.1 from binary DER bytes, encoded text such as Base64 or hex,
files, or existing BinData objects.
Inspect ASN.1 items
Read the item tag, tag value, constructed/primitive state, sub-item count, string content, boolean value, or integer value.
Build sequences and sets
Append constructed SEQUENCE and SET items,
then add child ASN.1 values beneath them.
Append primitive values
Add booleans, integers, big integers, bit strings, octet strings, OIDs, strings, times, null values, and encoded byte content.
Context-specific tags
Add context-specific primitive or constructed items when working with ASN.1 formats that use tagged application-specific structures.
DER and XML conversion
Convert ASN.1 to XML for inspection or editing, load ASN.1 back from XML, and output the result as binary or encoded DER.
Common pattern:
Load existing DER with LoadBinary, LoadEncoded,
LoadBd, or LoadBinaryFile, inspect the tree with
Tag, Constructed, NumSubItems, and
GetSubItem, then extract primitive content or convert to XML
with AsnToXml. To create ASN.1, start with a constructed item,
append child values, and write the final DER with GetBinaryDer,
GetEncodedDer, WriteBd, or
WriteBinaryDer.
</section>
Instances hold a native Chilkat object: close them with ChilkatObject.close() (try-with-resources) when
done; an unclosed instance is freed when it becomes unreachable.
- See Also:
- Online reference
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidappendBigInt(String encodedBytes, String encoding)Appends an ASN.1 integer, but one that is a big (huge) integer that is too large to be represented by an integer variable.voidappendBits(String encodedBytes, String encoding)Appends an ASN.1 bit string to the caller's sub-items.voidappendBool(boolean value)Appends an ASN.1 boolean item to the caller's sub-items.voidappendContextConstructed(int tag)Appends an ASN.1 context-specific constructed item to the caller's sub-items.voidappendContextPrimitive(int tag, String encodedBytes, String encoding)Appends an ASN.1 context-specific primitive item to the caller's sub-items.voidappendInt(int value)Appends an ASN.1 integer item to the caller's sub-items.voidAppends an ASN.1 null item to the caller's sub-items.voidappendOctets(String encodedBytes, String encoding)Appends an ASN.1 octet string to the caller's sub-items.voidAppends an ASN.1 OID (object identifier) to the caller's sub-items.voidAppends an ASN.1 sequence item to the caller's sub-items.voidAppends an ASN.1 sequence item to the caller's sub-items, and updates the internal reference to point to the newly appended sequence item.Appends an ASN.1 sequence item to the caller's sub-items, and returns the newly appended sequence item.voidAppends an ASN.1 set item to the caller's sub-items.voidAppends an ASN.1 set item to the caller's sub-items, and updates the internal reference to point to the newly appended set item.Appends an ASN.1 set item to the caller's sub-items, and returns the newly appended set item.voidappendString(String strType, String value)Appends a string item to the caller's sub-items.voidappendTime(String timeFormat, String dateTimeStr)Appends a UTCTime item to the caller's sub-items.asnToXml()Converts ASN.1 to XML and returns the XML string.voiddeleteSubItem(int index)Discards the Nth sub-item.booleanThe ASN.1 item's boolean value if it is a boolean item.booleantrueif this ASN.1 item is a constructed item.The ASN.1 item's content if it is an ASN.1 string type (such as Utf8String, BmpString, PrintableString, VisibleString, T61String, IA5String, NumericString, or UniversalString).getEncodedContent(String encoding)Returns the content of the ASN.1 item in encoded string form.getEncodedDer(String encoding)Returns the binary DER in encoded string form.intThe ASN.1 item's integer value if it is a small integer item.Returns the last ASN.1 sub-item.intThe number of sub-items contained within this ASN.1 item.getSubItem(int index)Returns the Nth ASN.1 sub-item.getTag()The ASN.1 item's tag as a descriptive string.intThe ASN.1 item's tag as a integer value.voidloadAsnXml(String xmlStr)Loads ASN.1 from the XML representation (such as that created by the AsnToXml method).voidLoads ASN.1 from the binary DER contained inbd.voidloadBinaryFile(String path)Loads ASN.1 from a binary DER file.voidloadEncoded(String asnContent, String encoding)Loads ASN.1 from an encoded string.voidsetBoolValue(boolean value)Sets theBoolValueproperty; seegetBoolValue().voidsetContentStr(String value)Sets theContentStrproperty; seegetContentStr().voidsetEncodedContent(String encodedBytes, String encoding)Sets the content of this primitive ASN.1 item.voidsetIntValue(int value)Sets theIntValueproperty; seegetIntValue().voidAppends the ASN.1 in binary DER format tobd.voidwriteBinaryDer(String path)Writes the ASN.1 in binary DER form to a file.Methods inherited from class com.chilkatsoft.chilkat2.ChilkatObject
close, getDebugLogFilePath, getLastErrorHtml, getLastErrorText, getLastErrorXml, getLastMethodSuccess, getVerboseLogging, getVersion, isClosed, setDebugLogFilePath, setLastMethodSuccess, setVerboseLogging, toString
-
Constructor Details
-
Asn
public Asn()Creates a newAsnobject.
-
-
Method Details
-
getBoolValue
public boolean getBoolValue()The ASN.1 item's boolean value if it is a boolean item.- Returns:
- the value of the
BoolValueproperty
-
setBoolValue
public void setBoolValue(boolean value)Sets theBoolValueproperty; seegetBoolValue().- Parameters:
value- the new value
-
getConstructed
public boolean getConstructed()trueif this ASN.1 item is a constructed item. Sequence and Set items are constructed and can contain sub-items. All other tags (boolean, integer, octets, utf8String, etc.) are primitive (non-constructed).- Returns:
- the value of the
Constructedproperty (read-only)
-
getContentStr
The ASN.1 item's content if it is an ASN.1 string type (such as Utf8String, BmpString, PrintableString, VisibleString, T61String, IA5String, NumericString, or UniversalString).- Returns:
- the value of the
ContentStrproperty
-
setContentStr
Sets theContentStrproperty; seegetContentStr().- Parameters:
value- the new value (notnull)
-
getIntValue
public int getIntValue()The ASN.1 item's integer value if it is a small integer item.- Returns:
- the value of the
IntValueproperty
-
setIntValue
public void setIntValue(int value)Sets theIntValueproperty; seegetIntValue().- Parameters:
value- the new value
-
getNumSubItems
public int getNumSubItems()The number of sub-items contained within this ASN.1 item. Only constructed items, such as Sequence and Set will contain sub-iitems. Primitive items such as OIDs, octet strings, integers, etc. will never contain sub-items.- Returns:
- the value of the
NumSubItemsproperty (read-only)
-
getTag
The ASN.1 item's tag as a descriptive string. Possible values are:boolean integer bitString octets null oid utf8String relativeOid sequence set numericString printableString t61String ia5String utcTime bmpString
- Returns:
- the value of the
Tagproperty (read-only)
-
getTagValue
public int getTagValue()The ASN.1 item's tag as a integer value. The integer values for possible tags are as follows:boolean (1) integer (2) bitString (3) octets (4) null (5) oid (6) utf8String (12) relativeOid (13) sequence (16) set (17) numericString (18) printableString (19) t61String (20) ia5String (22) utcTime (23) bmpString (30)
- Returns:
- the value of the
TagValueproperty (read-only)
-
appendBigInt
Appends an ASN.1 integer, but one that is a big (huge) integer that is too large to be represented by an integer variable. The bytes composing the integer are passed in encoded string format (such as base64, hex, etc.). The byte order must be big-endian. Theencodingmay be any of the following encodings:Base64,Hex,Base58,modBase64,Base32,UU,QP(for quoted-printable),URL(for url-encoding),Q,B,url_oath,url_rfc1738,url_rfc2396, andurl_rfc3986. Theencodingname is case insensitive (for example, bothBase64andbase64are treated the same).- Parameters:
encodedBytes- theencodedBytesargument (notnull)encoding- theencodingargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendBits
Appends an ASN.1 bit string to the caller's sub-items. The bytes containing the bits are passed in encoded string format (such as base64, hex, etc.). The byte order must be big-endian (MSB first). Theencodingmay be any of the following encodings:Base64,Hex,Base58,modBase64,Base32,UU,QP(for quoted-printable),URL(for url-encoding),Q,B,url_oath,url_rfc1738,url_rfc2396, andurl_rfc3986. Theencodingname is case insensitive (for example, bothBase64andbase64are treated the same).- Parameters:
encodedBytes- theencodedBytesargument (notnull)encoding- theencodingargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendBool
public void appendBool(boolean value)Appends an ASN.1 boolean item to the caller's sub-items. Items may only be appended to constructed data types such as Sequence and Set.- Parameters:
value- thevalueargument- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendContextConstructed
public void appendContextConstructed(int tag)Appends an ASN.1 context-specific constructed item to the caller's sub-items.- Parameters:
tag- thetagargument- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendContextPrimitive
Appends an ASN.1 context-specific primitive item to the caller's sub-items. The bytes are passed in encoded string format (such as base64, hex, etc.). Theencodingmay be any of the following encodings:Base64,Hex,Base58,modBase64,Base32,UU,QP(for quoted-printable),URL(for url-encoding),Q,B,url_oath,url_rfc1738,url_rfc2396, andurl_rfc3986. Theencodingname is case insensitive (for example, bothBase64andbase64are treated the same).- Parameters:
tag- thetagargumentencodedBytes- theencodedBytesargument (notnull)encoding- theencodingargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendInt
public void appendInt(int value)Appends an ASN.1 integer item to the caller's sub-items. Items may only be appended to constructed data types such as Sequence and Set.- Parameters:
value- thevalueargument- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendNull
public void appendNull()Appends an ASN.1 null item to the caller's sub-items. Items may only be appended to constructed data types such as Sequence and Set.- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendOctets
Appends an ASN.1 octet string to the caller's sub-items. The bytes are passed in encoded string format (such as base64, hex, etc.). Theencodingmay be any of the following encodings:Base64,Hex,Base58,modBase64,Base32,UU,QP(for quoted-printable),URL(for url-encoding),Q,B,url_oath,url_rfc1738,url_rfc2396, andurl_rfc3986. Theencodingname is case insensitive (for example, bothBase64andbase64are treated the same).- Parameters:
encodedBytes- theencodedBytesargument (notnull)encoding- theencodingargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendOid
Appends an ASN.1 OID (object identifier) to the caller's sub-items. The OID is passed in string form, such as1.2.840.113549.1.9.1.- Parameters:
oid- theoidargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendSequence
public void appendSequence()Appends an ASN.1 sequence item to the caller's sub-items.- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendSequence2
public void appendSequence2()Appends an ASN.1 sequence item to the caller's sub-items, and updates the internal reference to point to the newly appended sequence item.- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendSequenceR
Appends an ASN.1 sequence item to the caller's sub-items, and returns the newly appended sequence item.- Returns:
- a new
Asnowned by the caller (nevernull); close it when done - Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendSet
public void appendSet()Appends an ASN.1 set item to the caller's sub-items.- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendSet2
public void appendSet2()Appends an ASN.1 set item to the caller's sub-items, and updates the internal reference to point to the newly appended set item.- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendSetR
Appends an ASN.1 set item to the caller's sub-items, and returns the newly appended set item.- Returns:
- a new
Asnowned by the caller (nevernull); close it when done - Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendString
Appends a string item to the caller's sub-items. ThestrTypespecifies the type of string to be added. It may beutf8,ia5,t61,printable,visible,numeric,universal, orbmp. Thevaluemust conform to the ASN.1 restrictions imposed for a given string type. Theutf8,bmp, anduniversaltypes have no restrictions on what characters are allowed. In general, unless a specific type of string is required, choose theutf8type.- Parameters:
strType- thestrTypeargument (notnull)value- thevalueargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
appendTime
Appends a UTCTime item to the caller's sub-items. ThetimeFormatspecifies the format of thedateTimeStr. It should be set toutc. (In the future, this method will be expanded to append GeneralizedTime items by usinggeneralizedfortimeFormat.) To append the current date/time, setdateTimeStrequal to the empty string or the keywordnow. Otherwise, thedateTimeStrshould be in the UTC time formatYYMMDDhhmm[ss]ZorYYMMDDhhmm[ss](+|-)hhmm.- Parameters:
timeFormat- thetimeFormatargument (notnull)dateTimeStr- thedateTimeStrargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
asnToXml
Converts ASN.1 to XML and returns the XML string.- Returns:
- the result (never
null) - Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
deleteSubItem
public void deleteSubItem(int index)Discards the Nth sub-item. (The 1st sub-item is at index 0.)- Parameters:
index- theindexargument- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
getEncodedContent
Returns the content of the ASN.1 item in encoded string form. Theencodingmay be any of the following encodings:Base64,Hex,Base58,modBase64,Base32,UU,QP(for quoted-printable),URL(for url-encoding),Q,B,url_oath,url_rfc1738,url_rfc2396, andurl_rfc3986. Theencodingname is case insensitive (for example, bothBase64andbase64are treated the same).- Parameters:
encoding- theencodingargument (notnull)- Returns:
- the result (never
null) - Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
getEncodedDer
Returns the binary DER in encoded string form. Theencodingindicates the encoding and can bebase64,hex,uu,quoted-printable,base32, ormodbase64.- Parameters:
encoding- theencodingargument (notnull)- Returns:
- the result (never
null) - Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
getLastSubItem
Returns the last ASN.1 sub-item. This method can be called immediately after any Append* method to access the appended item.- Returns:
- a new
Asnowned by the caller (nevernull); close it when done - Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
getSubItem
Returns the Nth ASN.1 sub-item. The 1st sub-item is at index 0.- Parameters:
index- theindexargument- Returns:
- a new
Asnowned by the caller (nevernull); close it when done - Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
loadAsnXml
Loads ASN.1 from the XML representation (such as that created by the AsnToXml method).- Parameters:
xmlStr- thexmlStrargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
loadBd
Loads ASN.1 from the binary DER contained inbd.- Parameters:
bd- thebdargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
loadBinaryFile
Loads ASN.1 from a binary DER file.- Parameters:
path- thepathargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
loadEncoded
Loads ASN.1 from an encoded string. Theencodingcan bebase64,hex,uu,quoted-printable,base32, ormodbase64.- Parameters:
asnContent- theasnContentargument (notnull)encoding- theencodingargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
setEncodedContent
Sets the content of this primitive ASN.1 item. Theencodingmay be any of the following encodings:Base64,Hex,Base58,modBase64,Base32,UU,QP(for quoted-printable),URL(for url-encoding),Q,B,url_oath,url_rfc1738,url_rfc2396, andurl_rfc3986. Theencodingname is case insensitive (for example, bothBase64andbase64are treated the same).- Parameters:
encodedBytes- theencodedBytesargument (notnull)encoding- theencodingargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
writeBd
Appends the ASN.1 in binary DER format tobd.- Parameters:
bd- thebdargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-
writeBinaryDer
Writes the ASN.1 in binary DER form to a file.- Parameters:
path- thepathargument (notnull)- Throws:
ChilkatException- if the operation fails;ChilkatException.getLastErrorText()says why
-