first commit

This commit is contained in:
Stefan Hacker
2026-04-03 09:38:48 +02:00
commit 37ad745546
47450 changed files with 3120798 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+14
View File
@@ -0,0 +1,14 @@
# `@peculiar/asn1-ecc`
[![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://raw.githubusercontent.com/PeculiarVentures/asn1-schema/master/packages/ecc/LICENSE.md)
[![npm version](https://badge.fury.io/js/%40peculiar%2Fasn1-ecc.svg)](https://badge.fury.io/js/%40peculiar%2Fasn1-ecc)
[![NPM](https://nodei.co/npm/@peculiar/asn1-ecc.png)](https://nodei.co/npm/@peculiar/asn1-ecc/)
This module provides ASN.1 schema definitions and parsers for Elliptic Curve Cryptography (ECC) structures. It includes support for various ECC-related standards and specifications, making it easier to work with ECC keys and certificates in JavaScript and TypeScript applications.
| Document | Description |
| ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| [RFC 5915](https://tools.ietf.org/html/rfc5915) | Elliptic Curve Private Key Structure |
| [RFC 5480](https://tools.ietf.org/html/rfc5480) | Elliptic Curve Cryptography Subject Public Key Information |
| [RFC 3279](https://datatracker.ietf.org/doc/html/rfc3279#section-2.3.5) | Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate: ECDSA and ECDH Keys |
+13
View File
@@ -0,0 +1,13 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ecdsaWithSHA512 = exports.ecdsaWithSHA384 = exports.ecdsaWithSHA256 = exports.ecdsaWithSHA224 = exports.ecdsaWithSHA1 = void 0;
const asn1_x509_1 = require("@peculiar/asn1-x509");
const oid = require("./object_identifiers");
function create(algorithm) {
return new asn1_x509_1.AlgorithmIdentifier({ algorithm });
}
exports.ecdsaWithSHA1 = create(oid.id_ecdsaWithSHA1);
exports.ecdsaWithSHA224 = create(oid.id_ecdsaWithSHA224);
exports.ecdsaWithSHA256 = create(oid.id_ecdsaWithSHA256);
exports.ecdsaWithSHA384 = create(oid.id_ecdsaWithSHA384);
exports.ecdsaWithSHA512 = create(oid.id_ecdsaWithSHA512);
+24
View File
@@ -0,0 +1,24 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ECParameters = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const rfc3279_1 = require("./rfc3279");
let ECParameters = class ECParameters {
constructor(params = {}) {
Object.assign(this, params);
}
};
exports.ECParameters = ECParameters;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.ObjectIdentifier })
], ECParameters.prototype, "namedCurve", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Null })
], ECParameters.prototype, "implicitCurve", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: rfc3279_1.SpecifiedECDomain })
], ECParameters.prototype, "specifiedCurve", void 0);
exports.ECParameters = ECParameters = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Choice })
], ECParameters);
+26
View File
@@ -0,0 +1,26 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ECPrivateKey = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const ec_parameters_1 = require("./ec_parameters");
class ECPrivateKey {
constructor(params = {}) {
this.version = 1;
this.privateKey = new asn1_schema_1.OctetString();
Object.assign(this, params);
}
}
exports.ECPrivateKey = ECPrivateKey;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer })
], ECPrivateKey.prototype, "version", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.OctetString })
], ECPrivateKey.prototype, "privateKey", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: ec_parameters_1.ECParameters, context: 0, optional: true })
], ECPrivateKey.prototype, "parameters", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.BitString, context: 1, optional: true })
], ECPrivateKey.prototype, "publicKey", void 0);
+19
View File
@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ECDSASigValue = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
class ECDSASigValue {
constructor(params = {}) {
this.r = new ArrayBuffer(0);
this.s = new ArrayBuffer(0);
Object.assign(this, params);
}
}
exports.ECDSASigValue = ECDSASigValue;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer, converter: asn1_schema_1.AsnIntegerArrayBufferConverter })
], ECDSASigValue.prototype, "r", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer, converter: asn1_schema_1.AsnIntegerArrayBufferConverter })
], ECDSASigValue.prototype, "s", void 0);
+9
View File
@@ -0,0 +1,9 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./algorithms"), exports);
tslib_1.__exportStar(require("./ec_parameters"), exports);
tslib_1.__exportStar(require("./ec_private_key"), exports);
tslib_1.__exportStar(require("./ec_signature_value"), exports);
tslib_1.__exportStar(require("./object_identifiers"), exports);
tslib_1.__exportStar(require("./rfc3279"), exports);
+26
View File
@@ -0,0 +1,26 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.id_sect571r1 = exports.id_sect571k1 = exports.id_secp521r1 = exports.id_sect409r1 = exports.id_sect409k1 = exports.id_secp384r1 = exports.id_sect283r1 = exports.id_sect283k1 = exports.id_secp256r1 = exports.id_sect233r1 = exports.id_sect233k1 = exports.id_secp224r1 = exports.id_sect163r2 = exports.id_sect163k1 = exports.id_secp192r1 = exports.id_ecdsaWithSHA512 = exports.id_ecdsaWithSHA384 = exports.id_ecdsaWithSHA256 = exports.id_ecdsaWithSHA224 = exports.id_ecdsaWithSHA1 = exports.id_ecMQV = exports.id_ecDH = exports.id_ecPublicKey = void 0;
exports.id_ecPublicKey = "1.2.840.10045.2.1";
exports.id_ecDH = "1.3.132.1.12";
exports.id_ecMQV = "1.3.132.1.13";
exports.id_ecdsaWithSHA1 = "1.2.840.10045.4.1";
exports.id_ecdsaWithSHA224 = "1.2.840.10045.4.3.1";
exports.id_ecdsaWithSHA256 = "1.2.840.10045.4.3.2";
exports.id_ecdsaWithSHA384 = "1.2.840.10045.4.3.3";
exports.id_ecdsaWithSHA512 = "1.2.840.10045.4.3.4";
exports.id_secp192r1 = "1.2.840.10045.3.1.1";
exports.id_sect163k1 = "1.3.132.0.1";
exports.id_sect163r2 = "1.3.132.0.15";
exports.id_secp224r1 = "1.3.132.0.33";
exports.id_sect233k1 = "1.3.132.0.26";
exports.id_sect233r1 = "1.3.132.0.27";
exports.id_secp256r1 = "1.2.840.10045.3.1.7";
exports.id_sect283k1 = "1.3.132.0.16";
exports.id_sect283r1 = "1.3.132.0.17";
exports.id_secp384r1 = "1.3.132.0.34";
exports.id_sect409k1 = "1.3.132.0.36";
exports.id_sect409r1 = "1.3.132.0.37";
exports.id_secp521r1 = "1.3.132.0.35";
exports.id_sect571k1 = "1.3.132.0.38";
exports.id_sect571r1 = "1.3.132.0.39";
+76
View File
@@ -0,0 +1,76 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SpecifiedECDomain = exports.ECPVer = exports.Curve = exports.FieldElement = exports.ECPoint = exports.FieldID = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
let FieldID = class FieldID {
constructor(params = {}) {
Object.assign(this, params);
}
};
exports.FieldID = FieldID;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.ObjectIdentifier })
], FieldID.prototype, "fieldType", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Any })
], FieldID.prototype, "parameters", void 0);
exports.FieldID = FieldID = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence })
], FieldID);
class ECPoint extends asn1_schema_1.OctetString {
}
exports.ECPoint = ECPoint;
class FieldElement extends asn1_schema_1.OctetString {
}
exports.FieldElement = FieldElement;
let Curve = class Curve {
constructor(params = {}) {
Object.assign(this, params);
}
};
exports.Curve = Curve;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.OctetString })
], Curve.prototype, "a", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.OctetString })
], Curve.prototype, "b", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.BitString, optional: true })
], Curve.prototype, "seed", void 0);
exports.Curve = Curve = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence })
], Curve);
var ECPVer;
(function (ECPVer) {
ECPVer[ECPVer["ecpVer1"] = 1] = "ecpVer1";
})(ECPVer || (exports.ECPVer = ECPVer = {}));
let SpecifiedECDomain = class SpecifiedECDomain {
constructor(params = {}) {
this.version = ECPVer.ecpVer1;
Object.assign(this, params);
}
};
exports.SpecifiedECDomain = SpecifiedECDomain;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer })
], SpecifiedECDomain.prototype, "version", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: FieldID })
], SpecifiedECDomain.prototype, "fieldID", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: Curve })
], SpecifiedECDomain.prototype, "curve", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: ECPoint })
], SpecifiedECDomain.prototype, "base", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer, converter: asn1_schema_1.AsnIntegerArrayBufferConverter })
], SpecifiedECDomain.prototype, "order", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer, optional: true })
], SpecifiedECDomain.prototype, "cofactor", void 0);
exports.SpecifiedECDomain = SpecifiedECDomain = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence })
], SpecifiedECDomain);
+10
View File
@@ -0,0 +1,10 @@
import { AlgorithmIdentifier } from "@peculiar/asn1-x509";
import * as oid from "./object_identifiers";
function create(algorithm) {
return new AlgorithmIdentifier({ algorithm });
}
export const ecdsaWithSHA1 = create(oid.id_ecdsaWithSHA1);
export const ecdsaWithSHA224 = create(oid.id_ecdsaWithSHA224);
export const ecdsaWithSHA256 = create(oid.id_ecdsaWithSHA256);
export const ecdsaWithSHA384 = create(oid.id_ecdsaWithSHA384);
export const ecdsaWithSHA512 = create(oid.id_ecdsaWithSHA512);
+21
View File
@@ -0,0 +1,21 @@
import { __decorate } from "tslib";
import { AsnType, AsnTypeTypes, AsnProp, AsnPropTypes } from "@peculiar/asn1-schema";
import { SpecifiedECDomain } from "./rfc3279";
let ECParameters = class ECParameters {
constructor(params = {}) {
Object.assign(this, params);
}
};
__decorate([
AsnProp({ type: AsnPropTypes.ObjectIdentifier })
], ECParameters.prototype, "namedCurve", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Null })
], ECParameters.prototype, "implicitCurve", void 0);
__decorate([
AsnProp({ type: SpecifiedECDomain })
], ECParameters.prototype, "specifiedCurve", void 0);
ECParameters = __decorate([
AsnType({ type: AsnTypeTypes.Choice })
], ECParameters);
export { ECParameters };
+22
View File
@@ -0,0 +1,22 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, OctetString } from "@peculiar/asn1-schema";
import { ECParameters } from "./ec_parameters";
export class ECPrivateKey {
constructor(params = {}) {
this.version = 1;
this.privateKey = new OctetString();
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AsnPropTypes.Integer })
], ECPrivateKey.prototype, "version", void 0);
__decorate([
AsnProp({ type: OctetString })
], ECPrivateKey.prototype, "privateKey", void 0);
__decorate([
AsnProp({ type: ECParameters, context: 0, optional: true })
], ECPrivateKey.prototype, "parameters", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.BitString, context: 1, optional: true })
], ECPrivateKey.prototype, "publicKey", void 0);
+15
View File
@@ -0,0 +1,15 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter } from "@peculiar/asn1-schema";
export class ECDSASigValue {
constructor(params = {}) {
this.r = new ArrayBuffer(0);
this.s = new ArrayBuffer(0);
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter })
], ECDSASigValue.prototype, "r", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter })
], ECDSASigValue.prototype, "s", void 0);
+6
View File
@@ -0,0 +1,6 @@
export * from "./algorithms";
export * from "./ec_parameters";
export * from "./ec_private_key";
export * from "./ec_signature_value";
export * from "./object_identifiers";
export * from "./rfc3279";
+23
View File
@@ -0,0 +1,23 @@
export const id_ecPublicKey = "1.2.840.10045.2.1";
export const id_ecDH = "1.3.132.1.12";
export const id_ecMQV = "1.3.132.1.13";
export const id_ecdsaWithSHA1 = "1.2.840.10045.4.1";
export const id_ecdsaWithSHA224 = "1.2.840.10045.4.3.1";
export const id_ecdsaWithSHA256 = "1.2.840.10045.4.3.2";
export const id_ecdsaWithSHA384 = "1.2.840.10045.4.3.3";
export const id_ecdsaWithSHA512 = "1.2.840.10045.4.3.4";
export const id_secp192r1 = "1.2.840.10045.3.1.1";
export const id_sect163k1 = "1.3.132.0.1";
export const id_sect163r2 = "1.3.132.0.15";
export const id_secp224r1 = "1.3.132.0.33";
export const id_sect233k1 = "1.3.132.0.26";
export const id_sect233r1 = "1.3.132.0.27";
export const id_secp256r1 = "1.2.840.10045.3.1.7";
export const id_sect283k1 = "1.3.132.0.16";
export const id_sect283r1 = "1.3.132.0.17";
export const id_secp384r1 = "1.3.132.0.34";
export const id_sect409k1 = "1.3.132.0.36";
export const id_sect409r1 = "1.3.132.0.37";
export const id_secp521r1 = "1.3.132.0.35";
export const id_sect571k1 = "1.3.132.0.38";
export const id_sect571r1 = "1.3.132.0.39";
+71
View File
@@ -0,0 +1,71 @@
import { __decorate } from "tslib";
import { AsnType, AsnTypeTypes, AsnProp, AsnPropTypes, OctetString, AsnIntegerArrayBufferConverter, } from "@peculiar/asn1-schema";
let FieldID = class FieldID {
constructor(params = {}) {
Object.assign(this, params);
}
};
__decorate([
AsnProp({ type: AsnPropTypes.ObjectIdentifier })
], FieldID.prototype, "fieldType", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Any })
], FieldID.prototype, "parameters", void 0);
FieldID = __decorate([
AsnType({ type: AsnTypeTypes.Sequence })
], FieldID);
export { FieldID };
export class ECPoint extends OctetString {
}
export class FieldElement extends OctetString {
}
let Curve = class Curve {
constructor(params = {}) {
Object.assign(this, params);
}
};
__decorate([
AsnProp({ type: AsnPropTypes.OctetString })
], Curve.prototype, "a", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.OctetString })
], Curve.prototype, "b", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.BitString, optional: true })
], Curve.prototype, "seed", void 0);
Curve = __decorate([
AsnType({ type: AsnTypeTypes.Sequence })
], Curve);
export { Curve };
export var ECPVer;
(function (ECPVer) {
ECPVer[ECPVer["ecpVer1"] = 1] = "ecpVer1";
})(ECPVer || (ECPVer = {}));
let SpecifiedECDomain = class SpecifiedECDomain {
constructor(params = {}) {
this.version = ECPVer.ecpVer1;
Object.assign(this, params);
}
};
__decorate([
AsnProp({ type: AsnPropTypes.Integer })
], SpecifiedECDomain.prototype, "version", void 0);
__decorate([
AsnProp({ type: FieldID })
], SpecifiedECDomain.prototype, "fieldID", void 0);
__decorate([
AsnProp({ type: Curve })
], SpecifiedECDomain.prototype, "curve", void 0);
__decorate([
AsnProp({ type: ECPoint })
], SpecifiedECDomain.prototype, "base", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter })
], SpecifiedECDomain.prototype, "order", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Integer, optional: true })
], SpecifiedECDomain.prototype, "cofactor", void 0);
SpecifiedECDomain = __decorate([
AsnType({ type: AsnTypeTypes.Sequence })
], SpecifiedECDomain);
export { SpecifiedECDomain };
+22
View File
@@ -0,0 +1,22 @@
import { AlgorithmIdentifier } from "@peculiar/asn1-x509";
/**
* ECDSA with SHA-1
* Parameters are ABSENT
*/
export declare const ecdsaWithSHA1: AlgorithmIdentifier;
/**
* ECDSA with SHA-224. Parameters are ABSENT
*/
export declare const ecdsaWithSHA224: AlgorithmIdentifier;
/**
* ECDSA with SHA-256. Parameters are ABSENT
*/
export declare const ecdsaWithSHA256: AlgorithmIdentifier;
/**
* ECDSA with SHA-384. Parameters are ABSENT
*/
export declare const ecdsaWithSHA384: AlgorithmIdentifier;
/**
* ECDSA with SHA-512. Parameters are ABSENT
*/
export declare const ecdsaWithSHA512: AlgorithmIdentifier;
+20
View File
@@ -0,0 +1,20 @@
import { SpecifiedECDomain } from "./rfc3279";
/**
* ```asn1
* ECParameters ::= CHOICE {
* namedCurve OBJECT IDENTIFIER
* implicitCurve NULL
* specifiedCurve SpecifiedECDomain
* }
* -- implicitCurve and specifiedCurve MUST NOT be used in PKIX.
* -- Details for SpecifiedECDomain can be found in [X9.62].
* -- Any future additions to this CHOICE should be coordinated
* -- with ANSI X9.
* ```
*/
export declare class ECParameters {
namedCurve?: string;
implicitCurve?: null;
specifiedCurve?: SpecifiedECDomain;
constructor(params?: Partial<ECParameters>);
}
+19
View File
@@ -0,0 +1,19 @@
import { OctetString } from "@peculiar/asn1-schema";
import { ECParameters } from "./ec_parameters";
/**
* ```asn1
* ECPrivateKey ::= SEQUENCE {
* version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
* privateKey OCTET STRING,
* parameters [0] ECParameters {{ NamedCurve }} OPTIONAL,
* publicKey [1] BIT STRING OPTIONAL
* }
* ```
*/
export declare class ECPrivateKey {
version: number;
privateKey: OctetString;
parameters?: ECParameters;
publicKey?: ArrayBuffer;
constructor(params?: Partial<ECPrivateKey>);
}
+13
View File
@@ -0,0 +1,13 @@
/**
* ```asn1
* ECDSA-Sig-Value ::= SEQUENCE {
* r INTEGER,
* s INTEGER
* }
* ```
*/
export declare class ECDSASigValue {
r: ArrayBuffer;
s: ArrayBuffer;
constructor(params?: Partial<ECDSASigValue>);
}
+6
View File
@@ -0,0 +1,6 @@
export * from "./algorithms";
export * from "./ec_parameters";
export * from "./ec_private_key";
export * from "./ec_signature_value";
export * from "./object_identifiers";
export * from "./rfc3279";
+169
View File
@@ -0,0 +1,169 @@
/**
* ```asn1
* id-ecPublicKey OBJECT IDENTIFIER ::= {
* iso(1) member-body(2) us(840) ansi-X9-62(10045) keyType(2) 1 }
* ```
*/
export declare const id_ecPublicKey = "1.2.840.10045.2.1";
/**
* ```asn1
* id-ecDH OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) schemes(1)
* ecdh(12) }
* ```
*/
export declare const id_ecDH = "1.3.132.1.12";
/**
* ```asn1
* id-ecMQV OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) schemes(1)
* ecmqv(13) }
* ```
*/
export declare const id_ecMQV = "1.3.132.1.13";
/**
* ```asn1
* ecdsa-with-SHA1 OBJECT IDENTIFIER ::= {
* iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) 1 }
* ```
*/
export declare const id_ecdsaWithSHA1 = "1.2.840.10045.4.1";
/**
* ```asn1
* ecdsa-with-SHA224 OBJECT IDENTIFIER ::= {
* iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
* ecdsa-with-SHA2(3) 1 }
* ```
*/
export declare const id_ecdsaWithSHA224 = "1.2.840.10045.4.3.1";
/**
* ```asn1
* ecdsa-with-SHA256 OBJECT IDENTIFIER ::= {
* iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
* ecdsa-with-SHA2(3) 2 }
* ```
*/
export declare const id_ecdsaWithSHA256 = "1.2.840.10045.4.3.2";
/**
* ```asn1
* ecdsa-with-SHA384 OBJECT IDENTIFIER ::= {
* iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
* ecdsa-with-SHA2(3) 3 }
* ```
*/
export declare const id_ecdsaWithSHA384 = "1.2.840.10045.4.3.3";
/**
* ```asn1
* ecdsa-with-SHA512 OBJECT IDENTIFIER ::= {
* iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
* ecdsa-with-SHA2(3) 4 }
* ```
*/
export declare const id_ecdsaWithSHA512 = "1.2.840.10045.4.3.4";
/**
* ```asn1
* secp192r1 OBJECT IDENTIFIER ::= {
* iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3)
* prime(1) 1 }
* ```
*/
export declare const id_secp192r1 = "1.2.840.10045.3.1.1";
/**
* ```asn1
* sect163k1 OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) curve(0) 1 }
* ```
*/
export declare const id_sect163k1 = "1.3.132.0.1";
/**
* ```asn1
* sect163r2 OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) curve(0) 15 }
* ```
*/
export declare const id_sect163r2 = "1.3.132.0.15";
/**
* ```asn1
* secp224r1 OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) curve(0) 33 }
* ```
*/
export declare const id_secp224r1 = "1.3.132.0.33";
/**
* ```asn1
* sect233k1 OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) curve(0) 26 }
* ```
*/
export declare const id_sect233k1 = "1.3.132.0.26";
/**
* ```asn1
* sect233r1 OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) curve(0) 27 }
* ```
*/
export declare const id_sect233r1 = "1.3.132.0.27";
/**
* ```asn1
* secp256r1 OBJECT IDENTIFIER ::= {
* iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3)
* prime(1) 7 }
* ```
*/
export declare const id_secp256r1 = "1.2.840.10045.3.1.7";
/**
* ```asn1
* sect283k1 OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) curve(0) 16 }
* ```
*/
export declare const id_sect283k1 = "1.3.132.0.16";
/**
* ```asn1
* sect283r1 OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) curve(0) 17 }
* ```
*/
export declare const id_sect283r1 = "1.3.132.0.17";
/**
* ```asn1
* secp384r1 OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) curve(0) 34 }
* ```
*/
export declare const id_secp384r1 = "1.3.132.0.34";
/**
* ```asn1
* sect409k1 OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) curve(0) 36 }
* ```
*/
export declare const id_sect409k1 = "1.3.132.0.36";
/**
* ```asn1
* sect409r1 OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) curve(0) 37 }
* ```
*/
export declare const id_sect409r1 = "1.3.132.0.37";
/**
* ```asn1
* secp521r1 OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) curve(0) 35 }
* ```
*/
export declare const id_secp521r1 = "1.3.132.0.35";
/**
* ```asn1
* sect571k1 OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) curve(0) 38 }
* ```
*/
export declare const id_sect571k1 = "1.3.132.0.38";
/**
* ```asn1
* sect571r1 OBJECT IDENTIFIER ::= {
* iso(1) identified-organization(3) certicom(132) curve(0) 39 }
* ```
*/
export declare const id_sect571r1 = "1.3.132.0.39";
+73
View File
@@ -0,0 +1,73 @@
import { OctetString } from "@peculiar/asn1-schema";
/**
* ```asn1
* FieldID ::= SEQUENCE {
* fieldType OBJECT IDENTIFIER,
* parameters ANY DEFINED BY fieldType }
* ```
*/
export declare class FieldID {
fieldType: string;
parameters: ArrayBuffer;
constructor(params?: Partial<FieldID>);
}
/**
* ```asn1
* ECPoint ::= OCTET STRING
* ```
*/
export declare class ECPoint extends OctetString {
}
/**
* ```asn1
* FieldElement ::= OCTET STRING
* ```
*/
export declare class FieldElement extends OctetString {
}
/**
* ```asn1
* Curve ::= SEQUENCE {
* a FieldElement,
* b FieldElement,
* seed BIT STRING OPTIONAL }
* ```
*/
export declare class Curve {
a: ArrayBuffer;
b: ArrayBuffer;
seed?: ArrayBuffer;
constructor(params?: Partial<Curve>);
}
/**
* ```asn1
* ECPVer ::= INTEGER {ecpVer1(1)}
* ```
*/
export declare enum ECPVer {
ecpVer1 = 1
}
/**
* ```asn1
* SpecifiedECDomain ::= SEQUENCE {
* version ECPVer, -- version is always 1
* fieldID FieldID, -- identifies the finite field over
* -- which the curve is defined
* curve Curve, -- coefficients a and b of the
* -- elliptic curve
* base ECPoint, -- specifies the base point P
* -- on the elliptic curve
* order INTEGER, -- the order n of the base point
* cofactor INTEGER OPTIONAL -- The integer h = #E(Fq)/n
* }
* ```
*/
export declare class SpecifiedECDomain {
version: ECPVer;
fieldID: FieldID;
curve: Curve;
base: ECPoint;
order: ArrayBuffer;
cofactor?: ArrayBuffer;
constructor(params?: Partial<SpecifiedECDomain>);
}
+46
View File
@@ -0,0 +1,46 @@
{
"name": "@peculiar/asn1-ecc",
"version": "2.6.1",
"description": "ASN.1 schema of `Elliptic Curve Private Key Structure` (RFC5915)",
"files": [
"build/**/*.{js,d.ts}",
"LICENSE",
"README.md"
],
"bugs": {
"url": "https://github.com/PeculiarVentures/asn1-schema/issues"
},
"homepage": "https://github.com/PeculiarVentures/asn1-schema/tree/master/packages/ecc#readme",
"keywords": [
"asn",
"ecc",
"rfc5915",
"rfc5480",
"rfc3279"
],
"author": "PeculiarVentures, LLC",
"license": "MIT",
"main": "build/cjs/index.js",
"module": "build/es2015/index.js",
"types": "build/types/index.d.ts",
"publishConfig": {
"access": "public"
},
"scripts": {
"clear": "rimraf build",
"build": "npm run build:module && npm run build:types",
"build:module": "npm run build:cjs && npm run build:es2015",
"build:cjs": "tsc -p tsconfig.compile.json --removeComments --module commonjs --outDir build/cjs",
"build:es2015": "tsc -p tsconfig.compile.json --removeComments --module ES2015 --outDir build/es2015",
"prebuild:types": "rimraf build/types",
"build:types": "tsc -p tsconfig.compile.json --outDir build/types --declaration --emitDeclarationOnly",
"rebuild": "npm run clear && npm run build"
},
"dependencies": {
"@peculiar/asn1-schema": "^2.6.0",
"@peculiar/asn1-x509": "^2.6.1",
"asn1js": "^3.0.6",
"tslib": "^2.8.1"
},
"gitHead": "e533eba96fe14ca21b9a1b3f47cb58aaaa78c0ad"
}