From eb96d44298d4cd28a0e042681d5a7381ccbec2b5 Mon Sep 17 00:00:00 2001 From: Sanjana Rajan Date: Mon, 19 Mar 2018 18:55:15 -0700 Subject: [PATCH] add date parameter to generateKey function --- src/key.js | 8 ++++---- src/openpgp.js | 4 ++-- src/packet/public_key.js | 4 ++-- src/packet/secret_key.js | 4 ++-- src/packet/secret_subkey.js | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/key.js b/src/key.js index 49418e60..5c777b2a 100644 --- a/src/key.js +++ b/src/key.js @@ -1154,7 +1154,7 @@ export function generate(options) { }); function generateSecretKey() { - secretKeyPacket = new packet.SecretKey(); + secretKeyPacket = new packet.SecretKey(options.date); secretKeyPacket.packets = null; secretKeyPacket.algorithm = enums.read(enums.publicKey, options.keyType); options.curve = options.curve === enums.curve.curve25519 ? enums.curve.ed25519 : options.curve; @@ -1162,7 +1162,7 @@ export function generate(options) { } function generateSecretSubkey() { - secretSubkeyPacket = new packet.SecretSubkey(); + secretSubkeyPacket = new packet.SecretSubkey(options.date); secretKeyPacket.packets = null; secretSubkeyPacket.algorithm = enums.read(enums.publicKey, options.subkeyType); options.curve = options.curve === enums.curve.ed25519 ? enums.curve.curve25519 : options.curve; @@ -1245,7 +1245,7 @@ async function wrapKeyObject(secretKeyPacket, secretSubkeyPacket, options) { const dataToSign = {}; dataToSign.userid = userIdPacket; dataToSign.key = secretKeyPacket; - const signaturePacket = new packet.Signature(); + const signaturePacket = new packet.Signature(options.date); signaturePacket.signatureType = enums.signature.cert_generic; signaturePacket.publicKeyAlgorithm = options.keyType; signaturePacket.hashAlgorithm = await getPreferredHashAlgo(secretKeyPacket); @@ -1290,7 +1290,7 @@ async function wrapKeyObject(secretKeyPacket, secretSubkeyPacket, options) { const dataToSign = {}; dataToSign.key = secretKeyPacket; dataToSign.bind = secretSubkeyPacket; - const subkeySignaturePacket = new packet.Signature(); + const subkeySignaturePacket = new packet.Signature(options.date); subkeySignaturePacket.signatureType = enums.signature.subkey_binding; subkeySignaturePacket.publicKeyAlgorithm = options.keyType; subkeySignaturePacket.hashAlgorithm = await getPreferredHashAlgo(secretSubkeyPacket); diff --git a/src/openpgp.js b/src/openpgp.js index efd21cce..8f9ff426 100644 --- a/src/openpgp.js +++ b/src/openpgp.js @@ -111,11 +111,11 @@ export function destroyWorker() { */ export function generateKey({ - userIds=[], passphrase, numBits=2048, unlocked=false, keyExpirationTime=0, curve="" + userIds=[], passphrase, numBits=2048, unlocked=false, keyExpirationTime=0, curve="", date=new Date() } = {}) { userIds = formatUserIds(userIds); const options = { - userIds, passphrase, numBits, unlocked, keyExpirationTime, curve + userIds, passphrase, numBits, unlocked, keyExpirationTime, curve, date }; if (util.getWebCryptoAll() && numBits < 2048) { diff --git a/src/packet/public_key.js b/src/packet/public_key.js index f9b242ec..de2bb5fc 100644 --- a/src/packet/public_key.js +++ b/src/packet/public_key.js @@ -42,7 +42,7 @@ import util from '../util'; * @memberof module:packet * @constructor */ -function PublicKey() { +function PublicKey(date=new Date()) { /** * Packet type * @type {module:enums.packet} @@ -57,7 +57,7 @@ function PublicKey() { * Key creation date. * @type {Date} */ - this.created = util.normalizeDate(); + this.created = util.normalizeDate(date); /** * Algorithm specific params * @type {Array} diff --git a/src/packet/secret_key.js b/src/packet/secret_key.js index 4255e4a1..80135a98 100644 --- a/src/packet/secret_key.js +++ b/src/packet/secret_key.js @@ -39,8 +39,8 @@ import util from '../util'; * @constructor * @extends module:packet.PublicKey */ -function SecretKey() { - publicKey.call(this); +function SecretKey(date=new Date()) { + publicKey.call(this, date); /** * Packet type * @type {module:enums.packet} diff --git a/src/packet/secret_subkey.js b/src/packet/secret_subkey.js index 74a9c298..e6f2ac4d 100644 --- a/src/packet/secret_subkey.js +++ b/src/packet/secret_subkey.js @@ -30,8 +30,8 @@ import enums from '../enums'; * @constructor * @extends module:packet.SecretKey */ -function SecretSubkey() { - secretKey.call(this); +function SecretSubkey(date=new Date()) { + secretKey.call(this, date); this.tag = enums.packet.secretSubkey; }