123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /*
- * Copyright 2018 Scytl Secure Electronic Voting SA
- *
- * All rights reserved
- *
- * See our extended copyright notice in *file 'Copyright.txt' which is part of this source code package
- */
- /* jshint node:true */
- 'use strict';
- var constants = require('./constants');
- var forge = require('node-forge');
- module.exports = RsaPrivateKey;
- /**
- * @class RsaPrivateKey
- * @classdesc Encapsulates an RSA private key. To instantiate this object, use
- * the method {@link AsymmetricCryptographyService.newRsaPrivateKey}
- * @property {number} n The modulus.
- * @property {number} e The public exponent.
- * @property {number} d The private exponent.
- * @property {number} p The first prime.
- * @property {number} q The second prime.
- * @property {number} dP The first exponent.
- * @property {number} dQ The second exponent.
- * @property {number} qInv The coefficient.
- */
- function RsaPrivateKey(params) {
- this.n = params.n;
- this.e = params.e;
- this.d = params.d;
- this.p = params.p;
- this.q = params.q;
- this.dP = params.dP;
- this.dQ = params.dQ;
- this.qInv = params.qInv;
- return Object.freeze(this);
- }
- RsaPrivateKey.prototype = {
- /**
- * Serializes this key into its PEM string representation.
- *
- * @function toPem
- * @memberof RsaPrivateKey
- * @returns {string} The PEM string representation of this key.
- */
- toPem: function() {
- var forgePrivateKey = forge.pki.rsa.setPrivateKey(
- this.n, this.e, this.d, this.p, this.q, this.dP, this.dQ, this.qInv);
- return forge.pki.privateKeyToPem(
- forgePrivateKey, constants.PEM_LINE_LENGTH);
- }
- };
|