---
product: Chilkat
product_version: 11.7.0
language: nodejs
language_label: Node.js
class: Asn
license: bundle
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/nodejsAsnRef.html
---
# Chilkat Asn — Node.js — v11.7.0

> Chilkat 11.7.0 · language=nodejs · class=Asn
> Other versions: replace `11.7.0` in this URL. Other languages: `https://www.chilkatsoft.com/ai-docs/v/11.7.0/<lang>/classes/Asn.md`.
> Language-wide rules (install, unlock, error model, strings/bytes): `https://www.chilkatsoft.com/ai-docs/v/11.7.0/nodejs/guide.md`.

## Purpose

**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`.

## Object creation, unlocking and error handling

**Object Creation**

```javascript
var obj = new chilkat.Asn();
```

Call `Global.UnlockBundle` once at the start of the program, before using this or any other Chilkat class. Any string unlocks a fully functional 30-day trial; a purchased unlock code is used in production. See `guide.md` for the exact code in Node.js.

How failure is reported depends on the method's return type and is stated in the note under each method below. In every case the diagnostic text is in the `LastErrorText` property of the object whose method was called.

## Members common to every Chilkat class

Documented once per language in `common-members.md`; listed here so this page is self-contained.

| Property | Signature | Access | Meaning |
|---|---|---|---|
| `DebugLogFilePath` | `DebugLogFilePath` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastErrorHtml` | `LastErrorHtml` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `LastErrorText` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `LastErrorXml` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `LastMethodSuccess` | read/write | Indicates the success or failure of the most recent method call: `true` means success, `false` means failure. |
| `VerboseLogging` | `VerboseLogging` | read/write | If set to `true`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `Version` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `BoolValue` | property, read/write | `BoolValue` |
| `Constructed` | property, read-only | `Constructed` |
| `ContentStr` | property, read/write | `ContentStr` |
| `IntValue` | property, read/write | `IntValue` |
| `NumSubItems` | property, read-only | `NumSubItems` |
| `Tag` | property, read-only | `Tag` |
| `TagValue` | property, read-only | `TagValue` |
| `AppendBigInt` | method | `var status = AppendBigInt(encodedBytes, encoding);` |
| `AppendBits` | method | `var status = AppendBits(encodedBytes, encoding);` |
| `AppendBool` | method | `var status = AppendBool(value);` |
| `AppendContextConstructed` | method | `var status = AppendContextConstructed(tag);` |
| `AppendContextPrimitive` | method | `var status = AppendContextPrimitive(tag, encodedBytes, encoding);` |
| `AppendInt` | method | `var status = AppendInt(value);` |
| `AppendNull` | method | `var status = AppendNull();` |
| `AppendOctets` | method | `var status = AppendOctets(encodedBytes, encoding);` |
| `AppendOid` | method | `var status = AppendOid(oid);` |
| `AppendSequence` | method | `var status = AppendSequence();` |
| `AppendSequence2` | method | `var status = AppendSequence2();` |
| `AppendSequenceR` | method | `var ret_asn = AppendSequenceR();` |
| `AppendSet` | method | `var status = AppendSet();` |
| `AppendSet2` | method | `var status = AppendSet2();` |
| `AppendSetR` | method | `var ret_asn = AppendSetR();` |
| `AppendString` | method | `var status = AppendString(strType, value);` |
| `AppendTime` | method | `var status = AppendTime(timeFormat, dateTimeStr);` |
| `AsnToXml` | method | `var retStr = AsnToXml();` |
| `DeleteSubItem` | method | `var status = DeleteSubItem(index);` |
| `GetBinaryDer` | method | `var retBuf = GetBinaryDer();` |
| `GetEncodedContent` | method | `var retStr = GetEncodedContent(encoding);` |
| `GetEncodedDer` | method | `var retStr = GetEncodedDer(encoding);` |
| `GetLastSubItem` | method | `var ret_asn = GetLastSubItem();` |
| `GetSubItem` | method | `var ret_asn = GetSubItem(index);` |
| `LoadAsnXml` | method | `var status = LoadAsnXml(xmlStr);` |
| `LoadBd` | method | `var status = LoadBd(bd);` |
| `LoadBinary` | method | `var status = LoadBinary(derBytes);` |
| `LoadBinaryFile` | method | `var status = LoadBinaryFile(path);` |
| `LoadEncoded` | method | `var status = LoadEncoded(asnContent, encoding);` |
| `SetEncodedContent` | method | `var status = SetEncodedContent(encodedBytes, encoding);` |
| `WriteBd` | method | `var status = WriteBd(bd);` |
| `WriteBinaryDer` | method | `var status = WriteBinaryDer(path);` |

## Properties

### Asn.BoolValue

`Chilkat 11.7.0 · nodejs · Asn · BoolValue · property · read/write · since 9.5.0.49`

```javascript
BoolValue
```

· boolean

The ASN.1 item's boolean value if it is a boolean item.

### Asn.Constructed

`Chilkat 11.7.0 · nodejs · Asn · Constructed · property · read-only · since 9.5.0.49`

```javascript
Constructed
```

· boolean, read-only

`true` if 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).

### Asn.ContentStr

`Chilkat 11.7.0 · nodejs · Asn · ContentStr · property · read/write · since 9.5.0.49`

```javascript
ContentStr
```

· string

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).

### Asn.IntValue

`Chilkat 11.7.0 · nodejs · Asn · IntValue · property · read/write · since 9.5.0.49`

```javascript
IntValue
```

· integer

The ASN.1 item's integer value if it is a small integer item.

### Asn.NumSubItems

`Chilkat 11.7.0 · nodejs · Asn · NumSubItems · property · read-only · since 9.5.0.49`

```javascript
NumSubItems
```

· integer, read-only

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.

### Asn.Tag

`Chilkat 11.7.0 · nodejs · Asn · Tag · property · read-only · since 9.5.0.49`

```javascript
Tag
```

· string, read-only

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
```

### Asn.TagValue

`Chilkat 11.7.0 · nodejs · Asn · TagValue · property · read-only · since 9.5.0.49`

```javascript
TagValue
```

· integer, read-only

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)
```

## Methods

### Asn.AppendBigInt

`Chilkat 11.7.0 · nodejs · Asn · AppendBigInt · method · since 9.5.0.49`

```javascript
var status = AppendBigInt(encodedBytes, encoding);
```

· Returns Boolean (true for success, false for failure).  
· encodedBytes String  
· encoding String

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. The `encoding` may 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`, and `url_rfc3986`. The `encoding` name is case insensitive (for example, both `Base64` and `base64` are treated the same).

Returns true for success, false for failure.

### Asn.AppendBits

`Chilkat 11.7.0 · nodejs · Asn · AppendBits · method · since 9.5.0.49`

```javascript
var status = AppendBits(encodedBytes, encoding);
```

· Returns Boolean (true for success, false for failure).  
· encodedBytes String  
· encoding String

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). The `encoding` may 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`, and `url_rfc3986`. The `encoding` name is case insensitive (for example, both `Base64` and `base64` are treated the same).

Returns true for success, false for failure.

### Asn.AppendBool

`Chilkat 11.7.0 · nodejs · Asn · AppendBool · method · since 9.5.0.49`

```javascript
var status = AppendBool(value);
```

· Returns Boolean (true for success, false for failure).  
· value Boolean

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.

Returns true for success, false for failure.

### Asn.AppendContextConstructed

`Chilkat 11.7.0 · nodejs · Asn · AppendContextConstructed · method · since 9.5.0.50`

```javascript
var status = AppendContextConstructed(tag);
```

· Returns Boolean (true for success, false for failure).  
· tag Number

Appends an ASN.1 context-specific constructed item to the caller's sub-items.

Returns true for success, false for failure.

### Asn.AppendContextPrimitive

`Chilkat 11.7.0 · nodejs · Asn · AppendContextPrimitive · method · since 9.5.0.50`

```javascript
var status = AppendContextPrimitive(tag, encodedBytes, encoding);
```

· Returns Boolean (true for success, false for failure).  
· tag Number  
· encodedBytes String  
· encoding String

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.). The `encoding` may 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`, and `url_rfc3986`. The `encoding` name is case insensitive (for example, both `Base64` and `base64` are treated the same).

Returns true for success, false for failure.

### Asn.AppendInt

`Chilkat 11.7.0 · nodejs · Asn · AppendInt · method · since 9.5.0.49`

```javascript
var status = AppendInt(value);
```

· Returns Boolean (true for success, false for failure).  
· value Number

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.

Returns true for success, false for failure.

### Asn.AppendNull

`Chilkat 11.7.0 · nodejs · Asn · AppendNull · method · since 9.5.0.49`

```javascript
var status = AppendNull();
```

· Returns Boolean (true for success, false for failure).

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.

Returns true for success, false for failure.

### Asn.AppendOctets

`Chilkat 11.7.0 · nodejs · Asn · AppendOctets · method · since 9.5.0.49`

```javascript
var status = AppendOctets(encodedBytes, encoding);
```

· Returns Boolean (true for success, false for failure).  
· encodedBytes String  
· encoding String

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.). The `encoding` may 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`, and `url_rfc3986`. The `encoding` name is case insensitive (for example, both `Base64` and `base64` are treated the same).

Returns true for success, false for failure.

### Asn.AppendOid

`Chilkat 11.7.0 · nodejs · Asn · AppendOid · method · since 9.5.0.49`

```javascript
var status = AppendOid(oid);
```

· Returns Boolean (true for success, false for failure).  
· oid String

Appends an ASN.1 OID (object identifier) to the caller's sub-items. The OID is passed in string form, such as `1.2.840.113549.1.9.1`.

Returns true for success, false for failure.

### Asn.AppendSequence

`Chilkat 11.7.0 · nodejs · Asn · AppendSequence · method · since 9.5.0.49`

```javascript
var status = AppendSequence();
```

· Returns Boolean (true for success, false for failure).

Appends an ASN.1 sequence item to the caller's sub-items.

Returns true for success, false for failure.

### Asn.AppendSequence2

`Chilkat 11.7.0 · nodejs · Asn · AppendSequence2 · method · since 9.5.0.50`

```javascript
var status = AppendSequence2();
```

· Returns Boolean (true for success, false for failure).

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.

Returns true for success, false for failure.

### Asn.AppendSequenceR

`Chilkat 11.7.0 · nodejs · Asn · AppendSequenceR · method · since 9.5.0.50`

```javascript
var ret_asn = AppendSequenceR();
```

· Returns a Asn

Appends an ASN.1 sequence item to the caller's sub-items, and returns the newly appended sequence item.

Returns `null` on failure

### Asn.AppendSet

`Chilkat 11.7.0 · nodejs · Asn · AppendSet · method · since 9.5.0.49`

```javascript
var status = AppendSet();
```

· Returns Boolean (true for success, false for failure).

Appends an ASN.1 set item to the caller's sub-items.

Returns true for success, false for failure.

### Asn.AppendSet2

`Chilkat 11.7.0 · nodejs · Asn · AppendSet2 · method · since 9.5.0.50`

```javascript
var status = AppendSet2();
```

· Returns Boolean (true for success, false for failure).

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.

Returns true for success, false for failure.

### Asn.AppendSetR

`Chilkat 11.7.0 · nodejs · Asn · AppendSetR · method · since 9.5.0.50`

```javascript
var ret_asn = AppendSetR();
```

· Returns a Asn

Appends an ASN.1 set item to the caller's sub-items, and returns the newly appended set item.

Returns `null` on failure

### Asn.AppendString

`Chilkat 11.7.0 · nodejs · Asn · AppendString · method · since 9.5.0.49`

```javascript
var status = AppendString(strType, value);
```

· Returns Boolean (true for success, false for failure).  
· strType String  
· value String

Appends a string item to the caller's sub-items. The `strType` specifies the type of string to be added. It may be `utf8`, `ia5`, `t61`, `printable`, `visible`, `numeric`, `universal`, or `bmp`. The `value` must conform to the ASN.1 restrictions imposed for a given string type. The `utf8`, `bmp`, and `universal` types have no restrictions on what characters are allowed. In general, unless a specific type of string is required, choose the `utf8` type.

Returns true for success, false for failure.

### Asn.AppendTime

`Chilkat 11.7.0 · nodejs · Asn · AppendTime · method · since 9.5.0.49`

```javascript
var status = AppendTime(timeFormat, dateTimeStr);
```

· Returns Boolean (true for success, false for failure).  
· timeFormat String  
· dateTimeStr String

Appends a UTCTime item to the caller's sub-items. The `timeFormat` specifies the format of the `dateTimeStr`. It should be set to `utc`. (In the future, this method will be expanded to append GeneralizedTime items by using `generalized` for `timeFormat`.) To append the current date/time, set `dateTimeStr` equal to the empty string or the keyword `now`. Otherwise, the `dateTimeStr` should be in the UTC time format `YYMMDDhhmm[ss]Z` or `YYMMDDhhmm[ss](+|-)hhmm`.

Returns true for success, false for failure.

### Asn.AsnToXml

`Chilkat 11.7.0 · nodejs · Asn · AsnToXml · method · since 9.5.0.49`

```javascript
var retStr = AsnToXml();
```

· Returns a String.

Converts ASN.1 to XML and returns the XML string.

Returns `null` on failure

### Asn.DeleteSubItem

`Chilkat 11.7.0 · nodejs · Asn · DeleteSubItem · method · since 9.5.0.49`

```javascript
var status = DeleteSubItem(index);
```

· Returns Boolean (true for success, false for failure).  
· index Number

Discards the Nth sub-item. (The 1st sub-item is at index 0.)

Returns true for success, false for failure.

### Asn.GetBinaryDer

`Chilkat 11.7.0 · nodejs · Asn · GetBinaryDer · method · since 9.5.0.49`

```javascript
var retBuf = GetBinaryDer();
```

· Returns a Buffer.

Returns the ASN.1 in binary DER form.

Returns `null` on failure

### Asn.GetEncodedContent

`Chilkat 11.7.0 · nodejs · Asn · GetEncodedContent · method · since 9.5.0.49`

```javascript
var retStr = GetEncodedContent(encoding);
```

· Returns a String.  
· encoding String

Returns the content of the ASN.1 item in encoded string form. The `encoding` may 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`, and `url_rfc3986`. The `encoding` name is case insensitive (for example, both `Base64` and `base64` are treated the same).

Returns `null` on failure

### Asn.GetEncodedDer

`Chilkat 11.7.0 · nodejs · Asn · GetEncodedDer · method · since 9.5.0.49`

```javascript
var retStr = GetEncodedDer(encoding);
```

· Returns a String.  
· encoding String

Returns the binary DER in encoded string form. The `encoding` indicates the encoding and can be `base64`, `hex`, `uu`, `quoted-printable`, `base32`, or `modbase64`.

Returns `null` on failure

### Asn.GetLastSubItem

`Chilkat 11.7.0 · nodejs · Asn · GetLastSubItem · method · since 9.5.0.49`

```javascript
var ret_asn = GetLastSubItem();
```

· Returns a Asn

Returns the last ASN.1 sub-item. This method can be called immediately after any Append\* method to access the appended item.

Returns `null` on failure

### Asn.GetSubItem

`Chilkat 11.7.0 · nodejs · Asn · GetSubItem · method · since 9.5.0.49`

```javascript
var ret_asn = GetSubItem(index);
```

· Returns a Asn  
· index Number

Returns the Nth ASN.1 sub-item. The 1st sub-item is at index 0.

Returns `null` on failure

### Asn.LoadAsnXml

`Chilkat 11.7.0 · nodejs · Asn · LoadAsnXml · method · since 9.5.0.49`

```javascript
var status = LoadAsnXml(xmlStr);
```

· Returns Boolean (true for success, false for failure).  
· xmlStr String

Loads ASN.1 from the XML representation (such as that created by the AsnToXml method).

Returns true for success, false for failure.

### Asn.LoadBd

`Chilkat 11.7.0 · nodejs · Asn · LoadBd · method · since 9.5.0.77`

```javascript
var status = LoadBd(bd);
```

· Returns Boolean (true for success, false for failure).  
· bd BinData

Loads ASN.1 from the binary DER contained in `bd`.

Returns true for success, false for failure.

### Asn.LoadBinary

`Chilkat 11.7.0 · nodejs · Asn · LoadBinary · method · since 9.5.0.49`

```javascript
var status = LoadBinary(derBytes);
```

· Returns Boolean (true for success, false for failure).  
· derBytes Buffer

Loads ASN.1 from binary DER.

Returns true for success, false for failure.

### Asn.LoadBinaryFile

`Chilkat 11.7.0 · nodejs · Asn · LoadBinaryFile · method · since 9.5.0.49`

```javascript
var status = LoadBinaryFile(path);
```

· Returns Boolean (true for success, false for failure).  
· path String

Loads ASN.1 from a binary DER file.

Returns true for success, false for failure.

### Asn.LoadEncoded

`Chilkat 11.7.0 · nodejs · Asn · LoadEncoded · method · since 9.5.0.49`

```javascript
var status = LoadEncoded(asnContent, encoding);
```

· Returns Boolean (true for success, false for failure).  
· asnContent String  
· encoding String

Loads ASN.1 from an encoded string. The `encoding` can be `base64`, `hex`, `uu`, `quoted-printable`, `base32`, or `modbase64`.

Returns true for success, false for failure.

### Asn.SetEncodedContent

`Chilkat 11.7.0 · nodejs · Asn · SetEncodedContent · method · since 9.5.0.49`

```javascript
var status = SetEncodedContent(encodedBytes, encoding);
```

· Returns Boolean (true for success, false for failure).  
· encodedBytes String  
· encoding String

Sets the content of this primitive ASN.1 item. The `encoding` may 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`, and `url_rfc3986`. The `encoding` name is case insensitive (for example, both `Base64` and `base64` are treated the same).

Returns true for success, false for failure.

### Asn.WriteBd

`Chilkat 11.7.0 · nodejs · Asn · WriteBd · method · since 9.5.0.77`

```javascript
var status = WriteBd(bd);
```

· Returns Boolean (true for success, false for failure).  
· bd BinData

Appends the ASN.1 in binary DER format to `bd`.

Returns true for success, false for failure.

### Asn.WriteBinaryDer

`Chilkat 11.7.0 · nodejs · Asn · WriteBinaryDer · method · since 9.5.0.49`

```javascript
var status = WriteBinaryDer(path);
```

· Returns Boolean (true for success, false for failure).  
· path String

Writes the ASN.1 in binary DER form to a file.

Returns true for success, false for failure.

## Related classes

[`BinData`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/nodejs/classes/BinData.md)

