Socket
Socket
Sign inDemoInstall

@peculiar/asn1-schema

Package Overview
Dependencies
Maintainers
6
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.1.1 to 1.1.2

58

build/index.es.js

@@ -6,3 +6,3 @@ /**

import * as asn1 from 'asn1js';
import { Null, fromBER, Integer, Enumerated, BitString, ObjectIdentifier, Boolean, OctetString, BmpString, UniversalString, NumericString, PrintableString, TeletexString, VideotexString, IA5String, GraphicString, VisibleString, GeneralString, CharacterString, UTCTime, GeneralizedTime, Utf8String, Any, Repeated, Set, Sequence, Primitive, Constructed, Choice, compareSchema } from 'asn1js';
import { Null, fromBER, Integer, Enumerated, BitString, ObjectIdentifier, Boolean, OctetString, BmpString, UniversalString, NumericString, PrintableString, TeletexString, VideotexString, IA5String, GraphicString, VisibleString, GeneralString, CharacterString, UTCTime, GeneralizedTime, Utf8String, Any, Repeated, Set, Sequence, Constructed, Primitive, Choice, compareSchema } from 'asn1js';

@@ -78,2 +78,8 @@ const AsnAnyConverter = {

};
const AsnNullConverter = {
fromASN: (value) => null,
toASN: (value) => {
return new Null();
},
};

@@ -103,3 +109,4 @@ var defaultConverters = /*#__PURE__*/Object.freeze({

AsnUTCTimeConverter: AsnUTCTimeConverter,
AsnGeneralizedTimeConverter: AsnGeneralizedTimeConverter
AsnGeneralizedTimeConverter: AsnGeneralizedTimeConverter,
AsnNullConverter: AsnNullConverter
});

@@ -222,3 +229,6 @@

if (typeof item.type === "number") {
asn1Value.push(new Primitive({
const Container = item.repeated
? Constructed
: Primitive;
asn1Value.push(new Container({
name,

@@ -234,5 +244,8 @@ optional,

this.cache(item.type);
const value = this.get(item.type).schema.valueBlock.value;
const isRepeatedString = typeof item.repeated === "string";
const value = !isRepeatedString
? this.get(item.type).schema.valueBlock.value
: asn1Item.valueBlock.value;
asn1Value.push(new Constructed({
name,
name: !isRepeatedString ? name : "",
optional,

@@ -363,3 +376,3 @@ idBlock: {

}
static fromASN(asn1Schema, target, validateSchema = true) {
static fromASN(asn1Schema, target) {
try {

@@ -385,7 +398,5 @@ if (isConvertible(target)) {

}
if (validateSchema) {
const asn1ComparedSchema = compareSchema(asn1Schema, asn1Schema, targetSchema);
if (!asn1ComparedSchema.verified) {
throw new AsnSchemaValidationError(`Data does not match to ${target.name} ASN1 schema. ${asn1ComparedSchema.result.error}`);
}
const asn1ComparedSchema = compareSchema(asn1Schema, asn1Schema, targetSchema);
if (!asn1ComparedSchema.verified) {
throw new AsnSchemaValidationError(`Data does not match to ${target.name} ASN1 schema. ${asn1ComparedSchema.result.error}`);
}

@@ -404,3 +415,14 @@ const res = new target();

if (schemaItem.repeated) {
res[key] = Array.from(asn1Schema[key], (element) => converter.fromASN(element));
if (schemaItem.implicit && typeof schemaItem.repeated === "string") {
const Container = schemaItem.repeated === "sequence"
? Sequence
: Set;
const newItem = new Container();
newItem.valueBlock = asn1Schema[key].valueBlock;
const value = fromBER(newItem.toBER(false)).result.valueBlock.value;
res[key] = Array.from(value, (element) => converter.fromASN(element));
}
else {
res[key] = Array.from(asn1Schema[key], (element) => converter.fromASN(element));
}
}

@@ -472,6 +494,6 @@ else {

else {
const container = item.repeated === "sequence"
const Container = item.repeated === "sequence"
? Sequence
: Set;
asn1Item = new container({
asn1Item = new Container({
value: items,

@@ -492,6 +514,6 @@ });

else {
const container = item.repeated === "sequence"
const Container = item.repeated === "sequence"
? Sequence
: Set;
asn1Item = new container({
asn1Item = new Container({
value: items,

@@ -507,3 +529,3 @@ });

if (item.implicit) {
if (typeof item.type === "number") {
if (!item.repeated && typeof item.type === "number") {
const value = {};

@@ -564,2 +586,2 @@ value.valueHex = asn1Item.valueBlock.toBER();

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, index as errors };
export { AsnAnyConverter, AsnBitStringConverter, AsnBmpStringConverter, AsnBooleanConverter, AsnCharacterStringConverter, AsnEnumeratedConverter, AsnGeneralStringConverter, AsnGeneralizedTimeConverter, AsnGraphicStringConverter, AsnIA5StringConverter, AsnIntegerArrayBufferConverter, AsnIntegerConverter, AsnNullConverter, AsnNumericStringConverter, AsnObjectIdentifierConverter, AsnOctetStringConverter, AsnParser, AsnPrintableStringConverter, AsnProp, AsnPropTypes, AsnSerializer, AsnTeletexStringConverter, AsnType, AsnTypeTypes, AsnUTCTimeConverter, AsnUniversalStringConverter, AsnUtf8StringConverter, AsnVideotexStringConverter, AsnVisibleStringConverter, index as errors };

@@ -80,2 +80,8 @@ /**

};
const AsnNullConverter = {
fromASN: (value) => null,
toASN: (value) => {
return new asn1.Null();
},
};

@@ -105,3 +111,4 @@ var defaultConverters = /*#__PURE__*/Object.freeze({

AsnUTCTimeConverter: AsnUTCTimeConverter,
AsnGeneralizedTimeConverter: AsnGeneralizedTimeConverter
AsnGeneralizedTimeConverter: AsnGeneralizedTimeConverter,
AsnNullConverter: AsnNullConverter
});

@@ -222,3 +229,6 @@

if (typeof item.type === "number") {
asn1Value.push(new asn1.Primitive({
const Container = item.repeated
? asn1.Constructed
: asn1.Primitive;
asn1Value.push(new Container({
name,

@@ -234,5 +244,8 @@ optional,

this.cache(item.type);
const value = this.get(item.type).schema.valueBlock.value;
const isRepeatedString = typeof item.repeated === "string";
const value = !isRepeatedString
? this.get(item.type).schema.valueBlock.value
: asn1Item.valueBlock.value;
asn1Value.push(new asn1.Constructed({
name,
name: !isRepeatedString ? name : "",
optional,

@@ -363,3 +376,3 @@ idBlock: {

}
static fromASN(asn1Schema, target, validateSchema = true) {
static fromASN(asn1Schema, target) {
try {

@@ -385,7 +398,5 @@ if (isConvertible(target)) {

}
if (validateSchema) {
const asn1ComparedSchema = asn1.compareSchema(asn1Schema, asn1Schema, targetSchema);
if (!asn1ComparedSchema.verified) {
throw new AsnSchemaValidationError(`Data does not match to ${target.name} ASN1 schema. ${asn1ComparedSchema.result.error}`);
}
const asn1ComparedSchema = asn1.compareSchema(asn1Schema, asn1Schema, targetSchema);
if (!asn1ComparedSchema.verified) {
throw new AsnSchemaValidationError(`Data does not match to ${target.name} ASN1 schema. ${asn1ComparedSchema.result.error}`);
}

@@ -404,3 +415,14 @@ const res = new target();

if (schemaItem.repeated) {
res[key] = Array.from(asn1Schema[key], (element) => converter.fromASN(element));
if (schemaItem.implicit && typeof schemaItem.repeated === "string") {
const Container = schemaItem.repeated === "sequence"
? asn1.Sequence
: asn1.Set;
const newItem = new Container();
newItem.valueBlock = asn1Schema[key].valueBlock;
const value = asn1.fromBER(newItem.toBER(false)).result.valueBlock.value;
res[key] = Array.from(value, (element) => converter.fromASN(element));
}
else {
res[key] = Array.from(asn1Schema[key], (element) => converter.fromASN(element));
}
}

@@ -472,6 +494,6 @@ else {

else {
const container = item.repeated === "sequence"
const Container = item.repeated === "sequence"
? asn1.Sequence
: asn1.Set;
asn1Item = new container({
asn1Item = new Container({
value: items,

@@ -492,6 +514,6 @@ });

else {
const container = item.repeated === "sequence"
const Container = item.repeated === "sequence"
? asn1.Sequence
: asn1.Set;
asn1Item = new container({
asn1Item = new Container({
value: items,

@@ -507,3 +529,3 @@ });

if (item.implicit) {
if (typeof item.type === "number") {
if (!item.repeated && typeof item.type === "number") {
const value = {};

@@ -576,2 +598,3 @@ value.valueHex = asn1Item.valueBlock.toBER();

exports.AsnIntegerConverter = AsnIntegerConverter;
exports.AsnNullConverter = AsnNullConverter;
exports.AsnNumericStringConverter = AsnNumericStringConverter;

@@ -578,0 +601,0 @@ exports.AsnObjectIdentifierConverter = AsnObjectIdentifierConverter;

@@ -94,1 +94,5 @@ import { AnyConverterType, IAsnConverter, IntegerConverterType } from "./types";

export declare const AsnGeneralizedTimeConverter: IAsnConverter<Date>;
/**
* ASN.1 ANY converter
*/
export declare const AsnNullConverter: IAsnConverter<null>;

@@ -18,3 +18,2 @@ import { IEmptyConstructor } from "./types";

static fromASN<T>(asn1Schema: any, target: IEmptyConstructor<T>): any;
static fromASN<T>(asn1Schema: any, target: IEmptyConstructor<T>, validateSchema?: boolean): any;
}
{
"name": "@peculiar/asn1-schema",
"version": "1.1.1",
"version": "1.1.2",
"description": "This package uses ES2015 decorators to simplify working with ASN.1 creation and parsing",

@@ -5,0 +5,0 @@ "main": "build/index.js",

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