@peculiar/asn1-asym-key
Version:
Provides ASN.1 schema definitions for the asymmetric key packages format specified in RFC5958. This format is used to encapsulate private and public keys, along with additional parameters and metadata, for a variety of asymmetric key algorithms.
72 lines (71 loc) • 3.78 kB
JavaScript
;
var AsymmetricKeyPackage_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EncryptedData = exports.EncryptedPrivateKeyInfo = exports.AsymmetricKeyPackage = exports.PrivateKeyInfo = exports.OneAsymmetricKey = exports.PublicKey = exports.PrivateKey = exports.PrivateKeyAlgorithmIdentifier = exports.Version = exports.id_ct_KP_aKeyPackage = void 0;
const tslib_1 = require("tslib");
const asn1_pkcs8_1 = require("@peculiar/asn1-pkcs8");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const asn1_x509_1 = require("@peculiar/asn1-x509");
exports.id_ct_KP_aKeyPackage = "2.16.840.1.101.2.1.78.5";
var Version;
(function (Version) {
Version[Version["v1"] = 0] = "v1";
Version[Version["v2"] = 1] = "v2";
})(Version || (exports.Version = Version = {}));
let PrivateKeyAlgorithmIdentifier = class PrivateKeyAlgorithmIdentifier extends asn1_x509_1.AlgorithmIdentifier {
};
exports.PrivateKeyAlgorithmIdentifier = PrivateKeyAlgorithmIdentifier;
exports.PrivateKeyAlgorithmIdentifier = PrivateKeyAlgorithmIdentifier = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence })
], PrivateKeyAlgorithmIdentifier);
class PrivateKey extends asn1_schema_1.OctetString {
}
exports.PrivateKey = PrivateKey;
class PublicKey extends asn1_schema_1.BitString {
}
exports.PublicKey = PublicKey;
let OneAsymmetricKey = class OneAsymmetricKey {
constructor() {
this.version = Version.v1;
this.privateKeyAlgorithm = new asn1_x509_1.AlgorithmIdentifier();
this.privateKey = new ArrayBuffer(0);
}
};
exports.OneAsymmetricKey = OneAsymmetricKey;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer })
], OneAsymmetricKey.prototype, "version", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_x509_1.AlgorithmIdentifier })
], OneAsymmetricKey.prototype, "privateKeyAlgorithm", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.OctetString })
], OneAsymmetricKey.prototype, "privateKey", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_pkcs8_1.Attributes, context: 0, implicit: true, optional: true })
], OneAsymmetricKey.prototype, "attributes", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.BitString, context: 1, implicit: true, optional: true })
], OneAsymmetricKey.prototype, "publicKey", void 0);
exports.OneAsymmetricKey = OneAsymmetricKey = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence })
], OneAsymmetricKey);
let PrivateKeyInfo = class PrivateKeyInfo extends OneAsymmetricKey {
};
exports.PrivateKeyInfo = PrivateKeyInfo;
exports.PrivateKeyInfo = PrivateKeyInfo = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence })
], PrivateKeyInfo);
let AsymmetricKeyPackage = AsymmetricKeyPackage_1 = class AsymmetricKeyPackage extends asn1_schema_1.AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, AsymmetricKeyPackage_1.prototype);
}
};
exports.AsymmetricKeyPackage = AsymmetricKeyPackage;
exports.AsymmetricKeyPackage = AsymmetricKeyPackage = AsymmetricKeyPackage_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence, itemType: OneAsymmetricKey })
], AsymmetricKeyPackage);
var asn1_pkcs8_2 = require("@peculiar/asn1-pkcs8");
Object.defineProperty(exports, "EncryptedPrivateKeyInfo", { enumerable: true, get: function () { return asn1_pkcs8_2.EncryptedPrivateKeyInfo; } });
Object.defineProperty(exports, "EncryptedData", { enumerable: true, get: function () { return asn1_pkcs8_2.EncryptedData; } });