Set keyExpirationTime for subkey binding signature

This commit is contained in:
Thomas Oberndörfer 2017-08-30 16:09:53 +02:00
parent 5ee8d7505d
commit e3eb298ab7
2 changed files with 10 additions and 0 deletions

View File

@ -1247,6 +1247,10 @@ function wrapKeyObject(secretKeyPacket, secretSubkeyPacket, options) {
subkeySignaturePacket.publicKeyAlgorithm = options.keyType; subkeySignaturePacket.publicKeyAlgorithm = options.keyType;
subkeySignaturePacket.hashAlgorithm = config.prefer_hash_algorithm; subkeySignaturePacket.hashAlgorithm = config.prefer_hash_algorithm;
subkeySignaturePacket.keyFlags = [enums.keyFlags.encrypt_communication | enums.keyFlags.encrypt_storage]; subkeySignaturePacket.keyFlags = [enums.keyFlags.encrypt_communication | enums.keyFlags.encrypt_storage];
if (options.keyExpirationTime > 0) {
subkeySignaturePacket.keyExpirationTime = options.keyExpirationTime;
subkeySignaturePacket.keyNeverExpires = false;
}
subkeySignaturePacket.sign(secretKeyPacket, dataToSign); subkeySignaturePacket.sign(secretKeyPacket, dataToSign);
packetlist.push(secretSubkeyPacket); packetlist.push(secretSubkeyPacket);

View File

@ -1335,6 +1335,12 @@ describe('Key', function() {
var actual_delta = (new Date(expiration) - new Date()) / 1000; var actual_delta = (new Date(expiration) - new Date()) / 1000;
expect(Math.abs(actual_delta - expect_delta)).to.be.below(60); expect(Math.abs(actual_delta - expect_delta)).to.be.below(60);
var subKeyExpiration = key.subKeys[0].getExpirationTime();
expect(subKeyExpiration).to.exist;
var actual_subKeyDelta = (new Date(subKeyExpiration) - new Date()) / 1000;
expect(Math.abs(actual_subKeyDelta - expect_delta)).to.be.below(60);
done(); done();
}).catch(done); }).catch(done);
}); });