0.2.0 • Published 5 years ago

asn1-mapper v0.2.0

Weekly downloads
3
License
ISC
Repository
github
Last release
5 years ago

Travis CI Coverage Status NPM Package

asn1-mapper

ASN.1 schema mapper for semantic translation between asn1-tree structures and human-readable JavaScript values, using an ASN.1 expanded module definition (schema) that is converted with asn1exp (e.g. map-modules).

ASN.1 buffer <---> asn1-tree <---> ASN.1 tree structure <---> asn1-mapper <---> JavaScript value
                                 + ASN.1 definition (schema)

Installation

npm install --save asn1-mapper

Usage

// npm install --save asn1-tree
const asn1Tree = require('asn1-tree');
const asn1Mapper = require('asn1-mapper');
// npm install --save map-modules
const operations = require('map-modules/dist/MAP-MobileServiceOperations.EXP.min.json');

const buffer = Buffer.from('3080800803221200644241f40201028301010000', 'hex');

const tree = asn1Tree.decode(buffer);

const mapped = asn1Mapper.fromTree(tree, operations.sendAuthenticationInfo.argument);

The value of mapped will be:

{
  imsi: Buffer.from('03221200644241f4', 'hex'),
  numberOfRequestedVectors: 2,
  requestingNodeType: 'sgsn'
}

Going back:

const tree = asn1Mapper.toTree(mapped, operations.sendAuthenticationInfo.argument);
const buffer = asn1Tree.encode(tree);

Notes

The NULL type

Elements of NULL type are treated as Boolean flags. Just the presence of a NULL element (since its value is zero-sized) will result in a property set to true. For example, with the immediateResponsePreferred element of a sendAuthenticationInfo argument, you might end up with:

{
  imsi: Buffer.from('03221200644241f4', 'hex'),
  immediateResponsePreferred: true,
  numberOfRequestedVectors: 2,
  requestingNodeType: 'sgsn'
}

Going back, all you have to do is to include a property that is set to true and it will end up as a NULL element.

0.2.0

5 years ago

0.1.3

6 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago