@shockpkg/ria-packager
Version:
Package for creating Adobe AIR packages
79 lines (59 loc) • 1.74 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SecurityKeyPrivateRsa = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _nodeForge = _interopRequireDefault(require("node-forge"));
var _private = require("../private");
/**
* SecurityKeyPrivateRsa constructor.
*/
class SecurityKeyPrivateRsa extends _private.SecurityKeyPrivate {
/**
* Forge private key.
*/
constructor() {
super();
(0, _defineProperty2.default)(this, "_forgePrivateKey", null);
}
/**
* Reset the internal state.
*/
reset() {
this._forgePrivateKey = null;
}
/**
* Read a forge private key.
*
* @param privateKey Forge private key.
*/
readForgeKeyPrivate(privateKey) {
this.reset();
this._forgePrivateKey = privateKey;
}
/**
* Sign data.
*
* @param data Data to be signed.
* @param digest Digest algorithm.
* @returns The signature.
*/
sign(data, digest) {
const privateKey = this._forgePrivateKey;
if (!privateKey) {
throw new Error('Private key not initialized');
}
digest = digest.toLowerCase();
if (digest !== 'sha1') {
throw new Error(`Unsupported digest algorithm: ${digest}`);
}
const md = _nodeForge.default.md.sha1.create();
md.update(_nodeForge.default.util.decode64(data.toString('base64')));
const signature = privateKey.sign(md, 'RSASSA-PKCS1-V1_5');
return Buffer.from(_nodeForge.default.util.encode64(signature), 'base64');
}
}
exports.SecurityKeyPrivateRsa = SecurityKeyPrivateRsa;
//# sourceMappingURL=rsa.js.map