Socket
Socket
Sign inDemoInstall

@peculiar/asn1-schema

Package Overview
Dependencies
Maintainers
5
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@peculiar/asn1-schema - npm Package Compare versions

Comparing version 1.0.2 to 1.0.3

build/index.es.js

140

build/index.js

@@ -5,3 +5,4 @@ 'use strict';

const asn1 = require("asn1js");
var asn1 = require('asn1js');
const AsnAnyConverter = {

@@ -78,24 +79,24 @@ fromASN: (value) => value instanceof asn1.Null ? null : value.valueBeforeDecode,

var defaultConverters = /*#__PURE__*/Object.freeze({
AsnAnyConverter: AsnAnyConverter,
AsnIntegerConverter: AsnIntegerConverter,
AsnEnumeratedConverter: AsnEnumeratedConverter,
AsnIntegerArrayBufferConverter: AsnIntegerArrayBufferConverter,
AsnBitStringConverter: AsnBitStringConverter,
AsnObjectIdentifierConverter: AsnObjectIdentifierConverter,
AsnBooleanConverter: AsnBooleanConverter,
AsnOctetStringConverter: AsnOctetStringConverter,
AsnUtf8StringConverter: AsnUtf8StringConverter,
AsnBmpStringConverter: AsnBmpStringConverter,
AsnUniversalStringConverter: AsnUniversalStringConverter,
AsnNumericStringConverter: AsnNumericStringConverter,
AsnPrintableStringConverter: AsnPrintableStringConverter,
AsnTeletexStringConverter: AsnTeletexStringConverter,
AsnVideotexStringConverter: AsnVideotexStringConverter,
AsnIA5StringConverter: AsnIA5StringConverter,
AsnGraphicStringConverter: AsnGraphicStringConverter,
AsnVisibleStringConverter: AsnVisibleStringConverter,
AsnGeneralStringConverter: AsnGeneralStringConverter,
AsnCharacterStringConverter: AsnCharacterStringConverter,
AsnUTCTimeConverter: AsnUTCTimeConverter,
AsnGeneralizedTimeConverter: AsnGeneralizedTimeConverter
AsnAnyConverter: AsnAnyConverter,
AsnIntegerConverter: AsnIntegerConverter,
AsnEnumeratedConverter: AsnEnumeratedConverter,
AsnIntegerArrayBufferConverter: AsnIntegerArrayBufferConverter,
AsnBitStringConverter: AsnBitStringConverter,
AsnObjectIdentifierConverter: AsnObjectIdentifierConverter,
AsnBooleanConverter: AsnBooleanConverter,
AsnOctetStringConverter: AsnOctetStringConverter,
AsnUtf8StringConverter: AsnUtf8StringConverter,
AsnBmpStringConverter: AsnBmpStringConverter,
AsnUniversalStringConverter: AsnUniversalStringConverter,
AsnNumericStringConverter: AsnNumericStringConverter,
AsnPrintableStringConverter: AsnPrintableStringConverter,
AsnTeletexStringConverter: AsnTeletexStringConverter,
AsnVideotexStringConverter: AsnVideotexStringConverter,
AsnIA5StringConverter: AsnIA5StringConverter,
AsnGraphicStringConverter: AsnGraphicStringConverter,
AsnVisibleStringConverter: AsnVisibleStringConverter,
AsnGeneralStringConverter: AsnGeneralStringConverter,
AsnCharacterStringConverter: AsnCharacterStringConverter,
AsnUTCTimeConverter: AsnUTCTimeConverter,
AsnGeneralizedTimeConverter: AsnGeneralizedTimeConverter
});

@@ -138,3 +139,2 @@

const asn1$1 = require("asn1js");
class AsnSchemaStorage {

@@ -181,3 +181,3 @@ constructor() {

const Asn1TypeName = exports.AsnPropTypes[item.type];
const Asn1Type = asn1$1[Asn1TypeName];
const Asn1Type = asn1[Asn1TypeName];
if (!Asn1Type) {

@@ -189,3 +189,3 @@ throw new Error(`Cannot get ASN1 class by name '${Asn1TypeName}'`);

else {
asn1Item = new asn1$1.Any({ name });
asn1Item = new asn1.Any({ name });
}

@@ -195,3 +195,3 @@ const optional = !!item.optional || item.defaultValue !== undefined;

asn1Item.name = "";
asn1Item = new asn1$1.Repeated({
asn1Item = new asn1.Repeated({
name,

@@ -204,3 +204,3 @@ value: asn1Item,

if (typeof item.type === "number") {
asn1Value.push(new asn1$1.Primitive({
asn1Value.push(new asn1.Primitive({
name,

@@ -217,3 +217,3 @@ optional,

const value = this.get(item.type).schema.valueBlock.value;
asn1Value.push(new asn1$1.Constructed({
asn1Value.push(new asn1.Constructed({
name,

@@ -230,3 +230,3 @@ optional,

else {
asn1Value.push(new asn1$1.Constructed({
asn1Value.push(new asn1.Constructed({
optional,

@@ -248,7 +248,7 @@ idBlock: {

case exports.AsnTypeTypes.Sequence:
return new asn1$1.Sequence({ value: asn1Value, name: "" });
return new asn1.Sequence({ value: asn1Value, name: "" });
case exports.AsnTypeTypes.Set:
return new asn1$1.Set({ value: asn1Value, name: "" });
return new asn1.Set({ value: asn1Value, name: "" });
case exports.AsnTypeTypes.Choice:
return new asn1$1.Choice({ value: asn1Value, name: "" });
return new asn1.Choice({ value: asn1Value, name: "" });
default:

@@ -313,5 +313,4 @@ throw new Error(`Unsupported ASN1 type in use`);

const asn1$2 = require("asn1js");
class AsnParser {
static parse(data, target, obj) {
static parse(data, target) {
let buf;

@@ -330,12 +329,12 @@ if (data instanceof ArrayBuffer) {

}
const asn1Parsed = asn1$2.fromBER(buf);
const asn1Parsed = asn1.fromBER(buf);
if (asn1Parsed.result.error) {
throw new Error(asn1Parsed.result.error);
}
const res = this.fromASN(asn1Parsed.result, target, obj);
const res = this.fromASN(asn1Parsed.result, target);
return res;
}
static fromASN(asn1Schema, target, obj) {
static fromASN(asn1Schema, target) {
if (isConvertible(target)) {
const value = (obj || new target());
const value = new target();
return value.fromASN(asn1Schema);

@@ -346,4 +345,4 @@ }

let targetSchema = schema.schema;
if (asn1Schema.constructor === asn1$2.Constructed && schema.type !== exports.AsnTypeTypes.Choice) {
targetSchema = new asn1$2.Constructed({
if (asn1Schema.constructor === asn1.Constructed && schema.type !== exports.AsnTypeTypes.Choice) {
targetSchema = new asn1.Constructed({
idBlock: {

@@ -359,7 +358,7 @@ tagClass: 3,

}
const asn1ComparedSchema = asn1$2.compareSchema(asn1Schema, asn1Schema, targetSchema);
const asn1ComparedSchema = asn1.compareSchema(asn1Schema, asn1Schema, targetSchema);
if (!asn1ComparedSchema.verified) {
throw new Error(`Data does not match to ${target.name} ASN1 schema. ${asn1ComparedSchema.result.error}`);
}
const res = obj || new target();
const res = new target();
for (const key in schema.items) {

@@ -382,3 +381,3 @@ if (!asn1Schema[key]) {

const Asn1TypeName = exports.AsnPropTypes[schemaItem.type];
const Asn1Type = asn1$2[Asn1TypeName];
const Asn1Type = asn1[Asn1TypeName];
if (!Asn1Type) {

@@ -389,3 +388,3 @@ throw new Error(`Cannot get '${Asn1TypeName}' class from asn1js module`);

newItem.valueBlock = value.valueBlock;
value = asn1$2.fromBER(newItem.toBER(false)).result;
value = asn1.fromBER(newItem.toBER(false)).result;
}

@@ -409,3 +408,2 @@ res[key] = converter.fromASN(value);

const asn1$3 = require("asn1js");
class AsnSerializer {

@@ -455,13 +453,9 @@ static serialize(obj) {

value.valueHex = asn1Item.valueBlock.toBER();
asn1Value.push(new asn1$3.Primitive({
optional: item.optional,
idBlock: {
asn1Value.push(new asn1.Primitive(Object.assign({ optional: item.optional, idBlock: {
tagClass: 3,
tagNumber: item.context,
},
...value,
}));
} }, value)));
}
else {
asn1Value.push(new asn1$3.Constructed({
asn1Value.push(new asn1.Constructed({
optional: item.optional,

@@ -477,3 +471,3 @@ idBlock: {

else {
asn1Value.push(new asn1$3.Constructed({
asn1Value.push(new asn1.Constructed({
optional: item.optional,

@@ -498,6 +492,6 @@ idBlock: {

case exports.AsnTypeTypes.Sequence:
asnSchema = new asn1$3.Sequence({ value: asn1Value });
asnSchema = new asn1.Sequence({ value: asn1Value });
break;
case exports.AsnTypeTypes.Set:
asnSchema = new asn1$3.Set({ value: asn1Value });
asnSchema = new asn1.Set({ value: asn1Value });
break;

@@ -515,27 +509,27 @@ case exports.AsnTypeTypes.Choice:

exports.AsnProp = AsnProp;
exports.AsnType = AsnType;
exports.AsnParser = AsnParser;
exports.AsnSerializer = AsnSerializer;
exports.AsnAnyConverter = AsnAnyConverter;
exports.AsnIntegerConverter = AsnIntegerConverter;
exports.AsnBitStringConverter = AsnBitStringConverter;
exports.AsnBmpStringConverter = AsnBmpStringConverter;
exports.AsnBooleanConverter = AsnBooleanConverter;
exports.AsnCharacterStringConverter = AsnCharacterStringConverter;
exports.AsnEnumeratedConverter = AsnEnumeratedConverter;
exports.AsnGeneralStringConverter = AsnGeneralStringConverter;
exports.AsnGeneralizedTimeConverter = AsnGeneralizedTimeConverter;
exports.AsnGraphicStringConverter = AsnGraphicStringConverter;
exports.AsnIA5StringConverter = AsnIA5StringConverter;
exports.AsnIntegerArrayBufferConverter = AsnIntegerArrayBufferConverter;
exports.AsnBitStringConverter = AsnBitStringConverter;
exports.AsnIntegerConverter = AsnIntegerConverter;
exports.AsnNumericStringConverter = AsnNumericStringConverter;
exports.AsnObjectIdentifierConverter = AsnObjectIdentifierConverter;
exports.AsnBooleanConverter = AsnBooleanConverter;
exports.AsnOctetStringConverter = AsnOctetStringConverter;
exports.AsnUtf8StringConverter = AsnUtf8StringConverter;
exports.AsnBmpStringConverter = AsnBmpStringConverter;
exports.AsnUniversalStringConverter = AsnUniversalStringConverter;
exports.AsnNumericStringConverter = AsnNumericStringConverter;
exports.AsnParser = AsnParser;
exports.AsnPrintableStringConverter = AsnPrintableStringConverter;
exports.AsnProp = AsnProp;
exports.AsnSerializer = AsnSerializer;
exports.AsnTeletexStringConverter = AsnTeletexStringConverter;
exports.AsnType = AsnType;
exports.AsnUTCTimeConverter = AsnUTCTimeConverter;
exports.AsnUniversalStringConverter = AsnUniversalStringConverter;
exports.AsnUtf8StringConverter = AsnUtf8StringConverter;
exports.AsnVideotexStringConverter = AsnVideotexStringConverter;
exports.AsnIA5StringConverter = AsnIA5StringConverter;
exports.AsnGraphicStringConverter = AsnGraphicStringConverter;
exports.AsnVisibleStringConverter = AsnVisibleStringConverter;
exports.AsnGeneralStringConverter = AsnGeneralStringConverter;
exports.AsnCharacterStringConverter = AsnCharacterStringConverter;
exports.AsnUTCTimeConverter = AsnUTCTimeConverter;
exports.AsnGeneralizedTimeConverter = AsnGeneralizedTimeConverter;

@@ -1,88 +0,174 @@

declare namespace Asn1Schema {
//#region Converters
// FILE GENERATED BY `rollup-plugin-dts@0.13.0`
// https://github.com/Swatinem/rollup-plugin-dts
interface IAsnConverter<T = any, AsnType = any> {
/**
* ASN1 type
*/
interface IEmptyConstructor<T> {
new (): T;
}
/**
* Allows to convert ASN.1 object to JS value and back
*/
interface IAsnConverter<T = any, AsnType = any> {
/**
* Returns JS value from ASN.1 object
* @param value ASN.1 object from asn1js module
*/
fromASN(value: AsnType): T;
/**
* Returns ASN.1 object from JS value
* @param value JS value
*/
toASN(value: T): AsnType;
}
interface IAsnConvertible<T> {
}
declare type IntegerConverterType = string | number;
declare type AnyConverterType = ArrayBuffer | null;
/**
* Allows an object to control its own ASN.1 serialization and deserialization
*/
interface IAsnConvertible<T = any> {
fromASN(asn: T): this;
toASN(): T;
}
}
type IntergerConverterType = string | number;
type AnyConverterType = ArrayBuffer | null;
/**
* NOTE: Converter MUST have name Asn<Asn1PropType.name>Converter.
* Asn1Prop decorator link custom converters by name of the Asn1PropType
*/
/**
* ASN.1 ANY converter
*/
declare const AsnAnyConverter: IAsnConverter<AnyConverterType>;
/**
* ASN.1 INTEGER to Number/String converter
*/
declare const AsnIntegerConverter: IAsnConverter<IntegerConverterType>;
/**
* ASN.1 ENUMERATED converter
*/
declare const AsnEnumeratedConverter: IAsnConverter<number>;
/**
* ASN.1 INTEGER to ArrayBuffer converter
*/
declare const AsnIntegerArrayBufferConverter: IAsnConverter<ArrayBuffer>;
/**
* ASN.1 BIT STRING converter
*/
declare const AsnBitStringConverter: IAsnConverter<ArrayBuffer>;
/**
* ASN.1 OBJECT IDENTIFIER converter
*/
declare const AsnObjectIdentifierConverter: IAsnConverter<string>;
/**
* ASN.1 BOOLEAN converter
*/
declare const AsnBooleanConverter: IAsnConverter<boolean>;
/**
* ASN.1 OCTET_STRING converter
*/
declare const AsnOctetStringConverter: IAsnConverter<ArrayBuffer>;
/**
* ASN.1 UTF8_STRING converter
*/
declare const AsnUtf8StringConverter: IAsnConverter<string, any>;
/**
* ASN.1 BPM STRING converter
*/
declare const AsnBmpStringConverter: IAsnConverter<string, any>;
/**
* ASN.1 UNIVERSAL STRING converter
*/
declare const AsnUniversalStringConverter: IAsnConverter<string, any>;
/**
* ASN.1 NUMERIC STRING converter
*/
declare const AsnNumericStringConverter: IAsnConverter<string, any>;
/**
* ASN.1 PRINTABLE STRING converter
*/
declare const AsnPrintableStringConverter: IAsnConverter<string, any>;
/**
* ASN.1 TELETEX STRING converter
*/
declare const AsnTeletexStringConverter: IAsnConverter<string, any>;
/**
* ASN.1 VIDEOTEX STRING converter
*/
declare const AsnVideotexStringConverter: IAsnConverter<string, any>;
/**
* ASN.1 IA5 STRING converter
*/
declare const AsnIA5StringConverter: IAsnConverter<string, any>;
/**
* ASN.1 GRAPHIC STRING converter
*/
declare const AsnGraphicStringConverter: IAsnConverter<string, any>;
/**
* ASN.1 VISIBLE STRING converter
*/
declare const AsnVisibleStringConverter: IAsnConverter<string, any>;
/**
* ASN.1 GENERAL STRING converter
*/
declare const AsnGeneralStringConverter: IAsnConverter<string, any>;
/**
* ASN.1 CHARACTER STRING converter
*/
declare const AsnCharacterStringConverter: IAsnConverter<string, any>;
/**
* ASN.1 UTCTime converter
*/
declare const AsnUTCTimeConverter: IAsnConverter<Date>;
/**
* ASN.1 GeneralizedTime converter
*/
declare const AsnGeneralizedTimeConverter: IAsnConverter<Date>;
const AsnAnyConverter: IAsnConverter<AnyConverterType>;
const AsnIntegerConverter: IAsnConverter<IntergerConverterType>;
const AsnEnumeratedConverter: IAsnConverter<number>;
const AsnIntegerArrayBufferConverter: IAsnConverter<ArrayBuffer>;
const AsnBitStringConverter: IAsnConverter<ArrayBuffer>;
const AsnObjectIdentifierConverter: IAsnConverter<string>;
const AsnBooleanConverter: IAsnConverter<boolean>;
const AsnOctetStringConverter: IAsnConverter<ArrayBuffer>;
const AsnUtf8StringConverter: IAsnConverter<string>;
const AsnBmpStringConverter: IAsnConverter<string>;
const AsnUniversalStringConverter: IAsnConverter<string>;
const AsnNumericStringConverter: IAsnConverter<string>;
const AsnPrintableStringConverter: IAsnConverter<string>;
const AsnTeletexStringConverter: IAsnConverter<string>;
const AsnVideotexStringConverter: IAsnConverter<string>;
const AsnIA5StringConverter: IAsnConverter<string>;
const AsnGraphicStringConverter: IAsnConverter<string>;
const AsnVisibleStringConverter: IAsnConverter<string>;
const AsnGeneralStringConverter: IAsnConverter<string>;
const AsnCharacterStringConverter: IAsnConverter<string>;
const AsnUTCTimeConverter: IAsnConverter<Date>;
const AsnGeneralizedTimeConverter: IAsnConverter<Date>;
/**
* ASN.1 types for classes
*/
declare enum AsnTypeTypes {
Sequence = 0,
Set = 1,
Choice = 2
}
/**
* ASN.1 types for properties
*/
declare enum AsnPropTypes {
Any = 0,
Boolean = 1,
OctetString = 2,
BitString = 3,
Integer = 4,
Enumerated = 5,
ObjectIdentifier = 6,
Utf8String = 7,
BmpString = 8,
UniversalString = 9,
NumericString = 10,
PrintableString = 11,
TeletexString = 12,
VideotexString = 13,
IA5String = 14,
GraphicString = 15,
VisibleString = 16,
GeneralString = 17,
CharacterString = 18,
UTCTime = 19,
GeneralizedTime = 20,
DATE = 21,
TimeOfDay = 22,
DateTime = 23,
Duration = 24,
TIME = 25,
Null = 26
}
//#endregion
enum AsnPropTypes {
Any,
Boolean,
OctetString,
BitString,
Integer,
Enumerated,
ObjectIdentifier,
Utf8String,
BmpString,
UniversalString,
NumericString,
PrintableString,
TeletexString,
VideotexString,
IA5String,
GraphicString,
VisibleString,
GeneralString,
CharacterString,
UTCTime,
GeneralizedTime,
DATE,
TimeOfDay,
DateTime,
Duration,
TIME,
Null,
}
enum AsnTypeTypes {
Sequence,
Set,
Choice,
}
interface IEmptyConstructor<T> {
new(): T;
}
interface IAsnTypeOptions {
interface IAsn1TypeOptions {
type: AsnTypeTypes;
}
interface IAsnPropOptions {
}
interface IAsn1PropOptions {
type: AsnPropTypes | IEmptyConstructor<any>;

@@ -93,26 +179,42 @@ optional?: boolean;

implicit?: boolean;
converter?: IAsnConverter<any>;
converter?: IAsnConverter;
repeated?: boolean;
}
}
declare const AsnType: (options: IAsn1TypeOptions) => (target: object) => void;
declare const AsnProp: (options: IAsn1PropOptions) => (target: object, propertyKey: string) => void;
interface IAsnSchema extends IAsnTypeOptions {
items: { [key: string]: IAsnPropOptions };
schema?: any;
}
/**
* Deserializes objects from ASN.1 encoded data
*/
declare class AsnParser {
/**
* Deserializes an object from the ASN.1 encoded buffer
* @param data ASN.1 encoded buffer
* @param target Target schema for object deserialization
*/
static parse<T>(data: BufferSource, target: IEmptyConstructor<T>): T;
/**
* Deserializes an object from the asn1js object
* @param asn1Schema asn1js object
* @param target Target schema for object deserialization
*/
static fromASN<T>(asn1Schema: any, target: IEmptyConstructor<T>): any;
}
const AsnType: (options: IAsnTypeOptions) => ClassDecorator;
const AsnProp: (options: IAsnPropOptions) => PropertyDecorator;
class AsnParser {
public static parse<T>(data: BufferSource, target: IEmptyConstructor<T>, obj?: T): T;
public static fromASN<T>(asn1Schema: any, target: IEmptyConstructor<T>, obj?: T): T;
}
class AsnSerializer {
public static serialize(obj: any): ArrayBuffer;
public static toASN(obj: any): any;
}
/**
* Serializes objects into ASN.1 encoded data
*/
declare class AsnSerializer {
/**
* Serializes an object to the ASN.1 encoded buffer
* @param obj The object to serialize
*/
static serialize(obj: any): ArrayBuffer;
/**
* Serialize an object to the asn1js object
* @param obj The object to serialize
*/
static toASN(obj: any): any;
}
export = Asn1Schema;
export { AsnAnyConverter, AsnBitStringConverter, AsnBmpStringConverter, AsnBooleanConverter, AsnCharacterStringConverter, AsnEnumeratedConverter, AsnGeneralStringConverter, AsnGeneralizedTimeConverter, AsnGraphicStringConverter, AsnIA5StringConverter, AsnIntegerArrayBufferConverter, AsnIntegerConverter, AsnNumericStringConverter, AsnObjectIdentifierConverter, AsnOctetStringConverter, AsnParser, AsnPrintableStringConverter, AsnProp, AsnPropTypes, AsnSerializer, AsnTeletexStringConverter, AsnType, AsnTypeTypes, AsnUTCTimeConverter, AsnUniversalStringConverter, AsnUtf8StringConverter, AsnVideotexStringConverter, AsnVisibleStringConverter, IAsnConverter, IAsnConvertible };
{
"name": "@peculiar/asn1-schema",
"version": "1.0.2",
"version": "1.0.3",
"description": "This package uses ES2015 decorators to simplify working with ASN.1 creation and parsing",
"main": "build/index.js",
"module": "build/index.es.js",
"types": "index.d.ts",

@@ -11,3 +12,4 @@ "scripts": {

"build": "rollup -c",
"lint": "tslint 'src/**/*.ts'",
"lint": "tslint -p .",
"lint:fix": "tslint --fix -p .",
"tsc": "tsc --noEmit",

@@ -50,15 +52,13 @@ "prepub": "npm run lint && npm run test && npm run tsc",

"devDependencies": {
"@types/mocha": "^5.2.5",
"@types/node": "^10.12.10",
"mocha": "^5.2.0",
"rollup": "^0.67.3",
"rollup-plugin-cleanup": "^3.0.0",
"rollup-plugin-node-builtins": "^2.1.2",
"rollup-plugin-typescript": "^1.0.0",
"ts-node": "^7.0.1",
"typescript": "^3.1.6"
"@types/mocha": "^5.2.6",
"@types/node": "^10.14.1",
"mocha": "^6.0.2",
"rollup": "^1.7.0",
"rollup-plugin-dts": "^0.13.0",
"ts-node": "^8.0.3",
"typescript": "^3.3.4000"
},
"dependencies": {
"tslib": "^1.9.3",
"asn1js": "^2.0.21"
"asn1js": "^2.0.22"
},

@@ -65,0 +65,0 @@ "nyc": {

@@ -0,0 +0,0 @@ # ASN1-SCHEMA

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc