@shockpkg/ria-packager
Version:
Package for creating Adobe AIR packages
77 lines (61 loc) • 1.47 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import forge from 'node-forge';
import { SecurityCertificate } from "../certificate.mjs";
/**
* SecurityCertificateX509 constructor.
*/
export class SecurityCertificateX509 extends SecurityCertificate {
/**
* Forge certificate.
*/
constructor() {
super();
_defineProperty(this, "_forgeCertificate", null);
}
/**
* Reset the internal state.
*/
reset() {
this._forgeCertificate = null;
}
/**
* Read a forge certificate.
*
* @param certificate Forge certificate.
*/
readForgeCertificate(certificate) {
this.reset();
this._forgeCertificate = certificate;
}
/**
* Encode as PEM string.
*
* @returns PEM string.
*/
encodePem() {
const forgeCertificate = this._forgeCertificate;
if (!forgeCertificate) {
throw new Error('Certificate not initialized');
}
return forge.pki.certificateToPem(forgeCertificate);
}
/**
* Encode as PEM data.
*
* @returns The binary PEM data.
*/
encodePemData() {
// Remove all the non-base64 lines, then decode.
const base64 = this.encodePem().split(/[\r\n]+/).map(s => s.trim()).filter(s => !s.startsWith('-')).join('');
return Buffer.from(base64, 'base64');
}
/**
* Encode for certchain data.
*
* @returns Certchain data.
*/
encodeCertchain() {
return this.encodePemData();
}
}
//# sourceMappingURL=x509.mjs.map