xmldsigjs
Version:
XML Digital Signature implementation in TypeScript/JavaScript using Web Crypto API
40 lines (39 loc) • 1.31 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { XmlChildElement, XmlElement, XmlBase64Converter } from 'xml-core';
import { Application } from '../../application.js';
import { XmlSignature } from '../xml_names.js';
import { KeyInfoClause } from './key_info_clause.js';
let SPKIData = class SPKIData extends KeyInfoClause {
async importKey(key) {
const spki = await Application.crypto.subtle.exportKey('spki', key);
this.SPKIexp = new Uint8Array(spki);
this.Key = key;
return this;
}
async exportKey(alg) {
if (!this.SPKIexp) {
throw new Error('SPKI data is not defined');
}
const key = await Application.crypto.subtle.importKey('spki', this.SPKIexp, alg, true, [
'verify',
]);
this.Key = key;
return key;
}
};
__decorate([
XmlChildElement({
localName: XmlSignature.ElementNames.SPKIexp,
namespaceURI: XmlSignature.NamespaceURI,
prefix: XmlSignature.DefaultPrefix,
required: true,
converter: XmlBase64Converter,
}),
__metadata("design:type", Object)
], SPKIData.prototype, "SPKIexp", void 0);
SPKIData = __decorate([
XmlElement({
localName: XmlSignature.ElementNames.SPKIData,
})
], SPKIData);
export { SPKIData };