edockit 0.3.0 → 0.4.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +81 -198
  3. package/TRUSTED-LIST.md +308 -0
  4. package/dist/certificate-c46e14a0.js +560 -0
  5. package/dist/certificate-c46e14a0.js.map +1 -0
  6. package/dist/certificate-fc0e06f7.js +571 -0
  7. package/dist/certificate-fc0e06f7.js.map +1 -0
  8. package/dist/core/canonicalization/XMLCanonicalizer.d.ts +9 -3
  9. package/dist/core/trustedlist/build.d.ts +41 -0
  10. package/dist/core/trustedlist/bundled-provider.d.ts +2 -0
  11. package/dist/core/trustedlist/contract.d.ts +19 -0
  12. package/dist/core/trustedlist/dom.d.ts +12 -0
  13. package/dist/core/trustedlist/extract.d.ts +6 -0
  14. package/dist/core/trustedlist/http.d.ts +8 -0
  15. package/dist/core/trustedlist/identity.d.ts +7 -0
  16. package/dist/core/trustedlist/index.d.ts +18 -0
  17. package/dist/core/trustedlist/loader.d.ts +5 -0
  18. package/dist/core/trustedlist/matcher.d.ts +11 -0
  19. package/dist/core/trustedlist/normalize.d.ts +14 -0
  20. package/dist/core/trustedlist/reference-provider.d.ts +12 -0
  21. package/dist/core/trustedlist/types.d.ts +114 -0
  22. package/dist/core/unzip.d.ts +0 -0
  23. package/dist/core/verification.d.ts +22 -0
  24. package/dist/data/trusted-list.d.ts +3 -0
  25. package/dist/identity-1a3dddc3.js +902 -0
  26. package/dist/identity-1a3dddc3.js.map +1 -0
  27. package/dist/identity-b3a70fc1.js +897 -0
  28. package/dist/identity-b3a70fc1.js.map +1 -0
  29. package/dist/index.cjs.js +909 -8003
  30. package/dist/index.cjs.js.map +1 -1
  31. package/dist/index.d.ts +4 -2
  32. package/dist/index.esm.js +417 -7510
  33. package/dist/index.esm.js.map +1 -1
  34. package/dist/index.umd.js +12 -12
  35. package/dist/index.umd.js.map +1 -1
  36. package/dist/loader-1ac52e12.js +217 -0
  37. package/dist/loader-1ac52e12.js.map +1 -0
  38. package/dist/loader-43d8e17a.js +222 -0
  39. package/dist/loader-43d8e17a.js.map +1 -0
  40. package/dist/normalize-60f2d7e6.js +6270 -0
  41. package/dist/normalize-60f2d7e6.js.map +1 -0
  42. package/dist/normalize-70da6516.js +6214 -0
  43. package/dist/normalize-70da6516.js.map +1 -0
  44. package/dist/reference-provider-1cd85b7b.js +217 -0
  45. package/dist/reference-provider-1cd85b7b.js.map +1 -0
  46. package/dist/reference-provider-53240217.js +211 -0
  47. package/dist/reference-provider-53240217.js.map +1 -0
  48. package/dist/trusted-list-build.cjs.js +575 -0
  49. package/dist/trusted-list-build.cjs.js.map +1 -0
  50. package/dist/trusted-list-build.d.ts +4 -0
  51. package/dist/trusted-list-build.esm.js +564 -0
  52. package/dist/trusted-list-build.esm.js.map +1 -0
  53. package/dist/trusted-list-bundled.cjs.js +30436 -0
  54. package/dist/trusted-list-bundled.cjs.js.map +1 -0
  55. package/dist/trusted-list-bundled.d.ts +1 -0
  56. package/dist/trusted-list-bundled.esm.js +30432 -0
  57. package/dist/trusted-list-bundled.esm.js.map +1 -0
  58. package/dist/trusted-list-http.cjs.js +85 -0
  59. package/dist/trusted-list-http.cjs.js.map +1 -0
  60. package/dist/trusted-list-http.d.ts +1 -0
  61. package/dist/trusted-list-http.esm.js +81 -0
  62. package/dist/trusted-list-http.esm.js.map +1 -0
  63. package/dist/trusted-list.cjs.js +35 -0
  64. package/dist/trusted-list.cjs.js.map +1 -0
  65. package/dist/trusted-list.d.ts +9 -0
  66. package/dist/trusted-list.esm.js +10 -0
  67. package/dist/trusted-list.esm.js.map +1 -0
  68. package/package.json +32 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-1a3dddc3.js","sources":["../node_modules/@peculiar/asn1-schema/build/es2015/errors/schema_validation.js","../node_modules/@peculiar/asn1-schema/build/es2015/parser.js","../node_modules/@peculiar/asn1-schema/build/es2015/serializer.js","../node_modules/@peculiar/asn1-schema/build/es2015/convert.js","../src/core/revocation/ocsp.ts","../src/core/trustedlist/identity.ts"],"sourcesContent":["export class AsnSchemaValidationError extends Error {\n constructor() {\n super(...arguments);\n this.schemas = [];\n }\n}\n","import * as asn1js from \"asn1js\";\nimport { AsnPropTypes, AsnTypeTypes } from \"./enums\";\nimport * as converters from \"./converters\";\nimport { AsnSchemaValidationError } from \"./errors\";\nimport { isConvertible, isTypeOfArray } from \"./helper\";\nimport { schemaStorage } from \"./storage\";\nexport class AsnParser {\n static parse(data, target) {\n const asn1Parsed = asn1js.fromBER(data);\n if (asn1Parsed.result.error) {\n throw new Error(asn1Parsed.result.error);\n }\n const res = this.fromASN(asn1Parsed.result, target);\n return res;\n }\n static fromASN(asn1Schema, target) {\n try {\n if (isConvertible(target)) {\n const value = new target();\n return value.fromASN(asn1Schema);\n }\n const schema = schemaStorage.get(target);\n schemaStorage.cache(target);\n let targetSchema = schema.schema;\n const choiceResult = this.handleChoiceTypes(asn1Schema, schema, target, targetSchema);\n if (choiceResult === null || choiceResult === void 0 ? void 0 : choiceResult.result) {\n return choiceResult.result;\n }\n if (choiceResult === null || choiceResult === void 0 ? void 0 : choiceResult.targetSchema) {\n targetSchema = choiceResult.targetSchema;\n }\n const sequenceResult = this.handleSequenceTypes(asn1Schema, schema, target, targetSchema);\n const res = new target();\n if (isTypeOfArray(target)) {\n return this.handleArrayTypes(asn1Schema, schema, target);\n }\n this.processSchemaItems(schema, sequenceResult, res);\n return res;\n }\n catch (error) {\n if (error instanceof AsnSchemaValidationError) {\n error.schemas.push(target.name);\n }\n throw error;\n }\n }\n static handleChoiceTypes(asn1Schema, schema, target, targetSchema) {\n if (asn1Schema.constructor === asn1js.Constructed &&\n schema.type === AsnTypeTypes.Choice &&\n asn1Schema.idBlock.tagClass === 3) {\n for (const key in schema.items) {\n const schemaItem = schema.items[key];\n if (schemaItem.context === asn1Schema.idBlock.tagNumber && schemaItem.implicit) {\n if (typeof schemaItem.type === \"function\" &&\n schemaStorage.has(schemaItem.type)) {\n const fieldSchema = schemaStorage.get(schemaItem.type);\n if (fieldSchema && fieldSchema.type === AsnTypeTypes.Sequence) {\n const newSeq = new asn1js.Sequence();\n if (\"value\" in asn1Schema.valueBlock &&\n Array.isArray(asn1Schema.valueBlock.value) &&\n \"value\" in newSeq.valueBlock) {\n newSeq.valueBlock.value = asn1Schema.valueBlock.value;\n const fieldValue = this.fromASN(newSeq, schemaItem.type);\n const res = new target();\n res[key] = fieldValue;\n return { result: res };\n }\n }\n }\n }\n }\n }\n else if (asn1Schema.constructor === asn1js.Constructed &&\n schema.type !== AsnTypeTypes.Choice) {\n const newTargetSchema = new asn1js.Constructed({\n idBlock: {\n tagClass: 3,\n tagNumber: asn1Schema.idBlock.tagNumber,\n },\n value: schema.schema.valueBlock.value,\n });\n for (const key in schema.items) {\n delete asn1Schema[key];\n }\n return { targetSchema: newTargetSchema };\n }\n return null;\n }\n static handleSequenceTypes(asn1Schema, schema, target, targetSchema) {\n if (schema.type === AsnTypeTypes.Sequence) {\n const asn1ComparedSchema = asn1js.compareSchema({}, asn1Schema, targetSchema);\n if (!asn1ComparedSchema.verified) {\n throw new AsnSchemaValidationError(`Data does not match to ${target.name} ASN1 schema.${asn1ComparedSchema.result.error ? ` ${asn1ComparedSchema.result.error}` : \"\"}`);\n }\n return asn1ComparedSchema;\n }\n else {\n const asn1ComparedSchema = asn1js.compareSchema({}, asn1Schema, targetSchema);\n if (!asn1ComparedSchema.verified) {\n throw new AsnSchemaValidationError(`Data does not match to ${target.name} ASN1 schema.${asn1ComparedSchema.result.error ? ` ${asn1ComparedSchema.result.error}` : \"\"}`);\n }\n return asn1ComparedSchema;\n }\n }\n static processRepeatedField(asn1Elements, asn1Index, schemaItem) {\n let elementsToProcess = asn1Elements.slice(asn1Index);\n if (elementsToProcess.length === 1 && elementsToProcess[0].constructor.name === \"Sequence\") {\n const seq = elementsToProcess[0];\n if (seq.valueBlock && seq.valueBlock.value && Array.isArray(seq.valueBlock.value)) {\n elementsToProcess = seq.valueBlock.value;\n }\n }\n if (typeof schemaItem.type === \"number\") {\n const converter = converters.defaultConverter(schemaItem.type);\n if (!converter)\n throw new Error(`No converter for ASN.1 type ${schemaItem.type}`);\n return elementsToProcess\n .filter((el) => el && el.valueBlock)\n .map((el) => {\n try {\n return converter.fromASN(el);\n }\n catch {\n return undefined;\n }\n })\n .filter((v) => v !== undefined);\n }\n else {\n return elementsToProcess\n .filter((el) => el && el.valueBlock)\n .map((el) => {\n try {\n return this.fromASN(el, schemaItem.type);\n }\n catch {\n return undefined;\n }\n })\n .filter((v) => v !== undefined);\n }\n }\n static processPrimitiveField(asn1Element, schemaItem) {\n const converter = converters.defaultConverter(schemaItem.type);\n if (!converter)\n throw new Error(`No converter for ASN.1 type ${schemaItem.type}`);\n return converter.fromASN(asn1Element);\n }\n static isOptionalChoiceField(schemaItem) {\n return (schemaItem.optional &&\n typeof schemaItem.type === \"function\" &&\n schemaStorage.has(schemaItem.type) &&\n schemaStorage.get(schemaItem.type).type === AsnTypeTypes.Choice);\n }\n static processOptionalChoiceField(asn1Element, schemaItem) {\n try {\n const value = this.fromASN(asn1Element, schemaItem.type);\n return { processed: true, value };\n }\n catch (err) {\n if (err instanceof AsnSchemaValidationError &&\n /Wrong values for Choice type/.test(err.message)) {\n return { processed: false };\n }\n throw err;\n }\n }\n static handleArrayTypes(asn1Schema, schema, target) {\n if (!(\"value\" in asn1Schema.valueBlock && Array.isArray(asn1Schema.valueBlock.value))) {\n throw new Error(`Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.`);\n }\n const itemType = schema.itemType;\n if (typeof itemType === \"number\") {\n const converter = converters.defaultConverter(itemType);\n if (!converter) {\n throw new Error(`Cannot get default converter for array item of ${target.name} ASN1 schema`);\n }\n return target.from(asn1Schema.valueBlock.value, (element) => converter.fromASN(element));\n }\n else {\n return target.from(asn1Schema.valueBlock.value, (element) => this.fromASN(element, itemType));\n }\n }\n static processSchemaItems(schema, asn1ComparedSchema, res) {\n for (const key in schema.items) {\n const asn1SchemaValue = asn1ComparedSchema.result[key];\n if (!asn1SchemaValue) {\n continue;\n }\n const schemaItem = schema.items[key];\n const schemaItemType = schemaItem.type;\n let parsedValue;\n if (typeof schemaItemType === \"number\" || isConvertible(schemaItemType)) {\n parsedValue = this.processPrimitiveSchemaItem(asn1SchemaValue, schemaItem, schemaItemType);\n }\n else {\n parsedValue = this.processComplexSchemaItem(asn1SchemaValue, schemaItem, schemaItemType);\n }\n if (parsedValue &&\n typeof parsedValue === \"object\" &&\n \"value\" in parsedValue &&\n \"raw\" in parsedValue) {\n res[key] = parsedValue.value;\n res[`${key}Raw`] = parsedValue.raw;\n }\n else {\n res[key] = parsedValue;\n }\n }\n }\n static processPrimitiveSchemaItem(asn1SchemaValue, schemaItem, schemaItemType) {\n var _a;\n const converter = (_a = schemaItem.converter) !== null && _a !== void 0 ? _a : (isConvertible(schemaItemType)\n ? new schemaItemType()\n : null);\n if (!converter) {\n throw new Error(\"Converter is empty\");\n }\n if (schemaItem.repeated) {\n return this.processRepeatedPrimitiveItem(asn1SchemaValue, schemaItem, converter);\n }\n else {\n return this.processSinglePrimitiveItem(asn1SchemaValue, schemaItem, schemaItemType, converter);\n }\n }\n static processRepeatedPrimitiveItem(asn1SchemaValue, schemaItem, converter) {\n if (schemaItem.implicit) {\n const Container = schemaItem.repeated === \"sequence\" ? asn1js.Sequence : asn1js.Set;\n const newItem = new Container();\n newItem.valueBlock = asn1SchemaValue.valueBlock;\n const newItemAsn = asn1js.fromBER(newItem.toBER(false));\n if (newItemAsn.offset === -1) {\n throw new Error(`Cannot parse the child item. ${newItemAsn.result.error}`);\n }\n if (!(\"value\" in newItemAsn.result.valueBlock &&\n Array.isArray(newItemAsn.result.valueBlock.value))) {\n throw new Error(\"Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.\");\n }\n const value = newItemAsn.result.valueBlock.value;\n return Array.from(value, (element) => converter.fromASN(element));\n }\n else {\n return Array.from(asn1SchemaValue, (element) => converter.fromASN(element));\n }\n }\n static processSinglePrimitiveItem(asn1SchemaValue, schemaItem, schemaItemType, converter) {\n let value = asn1SchemaValue;\n if (schemaItem.implicit) {\n let newItem;\n if (isConvertible(schemaItemType)) {\n newItem = new schemaItemType().toSchema(\"\");\n }\n else {\n const Asn1TypeName = AsnPropTypes[schemaItemType];\n const Asn1Type = asn1js[Asn1TypeName];\n if (!Asn1Type) {\n throw new Error(`Cannot get '${Asn1TypeName}' class from asn1js module`);\n }\n newItem = new Asn1Type();\n }\n newItem.valueBlock = value.valueBlock;\n value = asn1js.fromBER(newItem.toBER(false)).result;\n }\n return converter.fromASN(value);\n }\n static processComplexSchemaItem(asn1SchemaValue, schemaItem, schemaItemType) {\n if (schemaItem.repeated) {\n if (!Array.isArray(asn1SchemaValue)) {\n throw new Error(\"Cannot get list of items from the ASN.1 parsed value. ASN.1 value should be iterable.\");\n }\n return Array.from(asn1SchemaValue, (element) => this.fromASN(element, schemaItemType));\n }\n else {\n const valueToProcess = this.handleImplicitTagging(asn1SchemaValue, schemaItem, schemaItemType);\n if (this.isOptionalChoiceField(schemaItem)) {\n try {\n return this.fromASN(valueToProcess, schemaItemType);\n }\n catch (err) {\n if (err instanceof AsnSchemaValidationError &&\n /Wrong values for Choice type/.test(err.message)) {\n return undefined;\n }\n throw err;\n }\n }\n else {\n const parsedValue = this.fromASN(valueToProcess, schemaItemType);\n if (schemaItem.raw) {\n return {\n value: parsedValue,\n raw: asn1SchemaValue.valueBeforeDecodeView,\n };\n }\n return parsedValue;\n }\n }\n }\n static handleImplicitTagging(asn1SchemaValue, schemaItem, schemaItemType) {\n if (schemaItem.implicit && typeof schemaItem.context === \"number\") {\n const schema = schemaStorage.get(schemaItemType);\n if (schema.type === AsnTypeTypes.Sequence) {\n const newSeq = new asn1js.Sequence();\n if (\"value\" in asn1SchemaValue.valueBlock &&\n Array.isArray(asn1SchemaValue.valueBlock.value) &&\n \"value\" in newSeq.valueBlock) {\n newSeq.valueBlock.value = asn1SchemaValue.valueBlock.value;\n return newSeq;\n }\n }\n else if (schema.type === AsnTypeTypes.Set) {\n const newSet = new asn1js.Set();\n if (\"value\" in asn1SchemaValue.valueBlock &&\n Array.isArray(asn1SchemaValue.valueBlock.value) &&\n \"value\" in newSet.valueBlock) {\n newSet.valueBlock.value = asn1SchemaValue.valueBlock.value;\n return newSet;\n }\n }\n }\n return asn1SchemaValue;\n }\n}\n","import * as asn1js from \"asn1js\";\nimport * as converters from \"./converters\";\nimport { AsnPropTypes, AsnTypeTypes } from \"./enums\";\nimport { isConvertible, isArrayEqual } from \"./helper\";\nimport { schemaStorage } from \"./storage\";\nexport class AsnSerializer {\n static serialize(obj) {\n if (obj instanceof asn1js.BaseBlock) {\n return obj.toBER(false);\n }\n return this.toASN(obj).toBER(false);\n }\n static toASN(obj) {\n if (obj && typeof obj === \"object\" && isConvertible(obj)) {\n return obj.toASN();\n }\n if (!(obj && typeof obj === \"object\")) {\n throw new TypeError(\"Parameter 1 should be type of Object.\");\n }\n const target = obj.constructor;\n const schema = schemaStorage.get(target);\n schemaStorage.cache(target);\n let asn1Value = [];\n if (schema.itemType) {\n if (!Array.isArray(obj)) {\n throw new TypeError(\"Parameter 1 should be type of Array.\");\n }\n if (typeof schema.itemType === \"number\") {\n const converter = converters.defaultConverter(schema.itemType);\n if (!converter) {\n throw new Error(`Cannot get default converter for array item of ${target.name} ASN1 schema`);\n }\n asn1Value = obj.map((o) => converter.toASN(o));\n }\n else {\n asn1Value = obj.map((o) => this.toAsnItem({ type: schema.itemType }, \"[]\", target, o));\n }\n }\n else {\n for (const key in schema.items) {\n const schemaItem = schema.items[key];\n const objProp = obj[key];\n if (objProp === undefined ||\n schemaItem.defaultValue === objProp ||\n (typeof schemaItem.defaultValue === \"object\" &&\n typeof objProp === \"object\" &&\n isArrayEqual(this.serialize(schemaItem.defaultValue), this.serialize(objProp)))) {\n continue;\n }\n const asn1Item = AsnSerializer.toAsnItem(schemaItem, key, target, objProp);\n if (typeof schemaItem.context === \"number\") {\n if (schemaItem.implicit) {\n if (!schemaItem.repeated &&\n (typeof schemaItem.type === \"number\" || isConvertible(schemaItem.type))) {\n const value = {};\n value.valueHex =\n asn1Item instanceof asn1js.Null\n ? asn1Item.valueBeforeDecodeView\n : asn1Item.valueBlock.toBER();\n asn1Value.push(new asn1js.Primitive({\n optional: schemaItem.optional,\n idBlock: {\n tagClass: 3,\n tagNumber: schemaItem.context,\n },\n ...value,\n }));\n }\n else {\n asn1Value.push(new asn1js.Constructed({\n optional: schemaItem.optional,\n idBlock: {\n tagClass: 3,\n tagNumber: schemaItem.context,\n },\n value: asn1Item.valueBlock.value,\n }));\n }\n }\n else {\n asn1Value.push(new asn1js.Constructed({\n optional: schemaItem.optional,\n idBlock: {\n tagClass: 3,\n tagNumber: schemaItem.context,\n },\n value: [asn1Item],\n }));\n }\n }\n else if (schemaItem.repeated) {\n asn1Value = asn1Value.concat(asn1Item);\n }\n else {\n asn1Value.push(asn1Item);\n }\n }\n }\n let asnSchema;\n switch (schema.type) {\n case AsnTypeTypes.Sequence:\n asnSchema = new asn1js.Sequence({ value: asn1Value });\n break;\n case AsnTypeTypes.Set:\n asnSchema = new asn1js.Set({ value: asn1Value });\n break;\n case AsnTypeTypes.Choice:\n if (!asn1Value[0]) {\n throw new Error(`Schema '${target.name}' has wrong data. Choice cannot be empty.`);\n }\n asnSchema = asn1Value[0];\n break;\n }\n return asnSchema;\n }\n static toAsnItem(schemaItem, key, target, objProp) {\n let asn1Item;\n if (typeof schemaItem.type === \"number\") {\n const converter = schemaItem.converter;\n if (!converter) {\n throw new Error(`Property '${key}' doesn't have converter for type ${AsnPropTypes[schemaItem.type]} in schema '${target.name}'`);\n }\n if (schemaItem.repeated) {\n if (!Array.isArray(objProp)) {\n throw new TypeError(\"Parameter 'objProp' should be type of Array.\");\n }\n const items = Array.from(objProp, (element) => converter.toASN(element));\n const Container = schemaItem.repeated === \"sequence\" ? asn1js.Sequence : asn1js.Set;\n asn1Item = new Container({\n value: items,\n });\n }\n else {\n asn1Item = converter.toASN(objProp);\n }\n }\n else {\n if (schemaItem.repeated) {\n if (!Array.isArray(objProp)) {\n throw new TypeError(\"Parameter 'objProp' should be type of Array.\");\n }\n const items = Array.from(objProp, (element) => this.toASN(element));\n const Container = schemaItem.repeated === \"sequence\" ? asn1js.Sequence : asn1js.Set;\n asn1Item = new Container({\n value: items,\n });\n }\n else {\n asn1Item = this.toASN(objProp);\n }\n }\n return asn1Item;\n }\n}\n","import * as asn1js from \"asn1js\";\nimport { BufferSourceConverter } from \"pvtsutils\";\nimport { AsnParser } from \"./parser\";\nimport { AsnSerializer } from \"./serializer\";\nexport class AsnConvert {\n static serialize(obj) {\n return AsnSerializer.serialize(obj);\n }\n static parse(data, target) {\n return AsnParser.parse(data, target);\n }\n static toString(data) {\n const buf = BufferSourceConverter.isBufferSource(data)\n ? BufferSourceConverter.toArrayBuffer(data)\n : AsnConvert.serialize(data);\n const asn = asn1js.fromBER(buf);\n if (asn.offset === -1) {\n throw new Error(`Cannot decode ASN.1 data. ${asn.result.error}`);\n }\n return asn.result.toString();\n }\n}\n",null,null],"names":["asn1js.fromBER","isConvertible","schemaStorage","isTypeOfArray","asn1js.Constructed","AsnTypeTypes","asn1js.Sequence","asn1js.compareSchema","converters.defaultConverter","asn1js.Set","AsnPropTypes","asn1js","asn1js.BaseBlock","isArrayEqual","asn1js.Null","asn1js.Primitive","BufferSourceConverter","X509Certificate","fetchIssuerCertificate","arrayBufferToPEM","Certificate","hexToArrayBuffer","CertID","AlgorithmIdentifier","OctetString","Request","TBSRequest","OCSPRequest","OCSPResponse","OCSPResponseStatus","BasicOCSPResponse","fetchOCSP","arrayBufferToHex","normalizeKeyIdentifier","normalizeDistinguishedName"],"mappings":"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"}