diff --git a/src/key.js b/src/key.js index 66625a47..85cf5ea1 100644 --- a/src/key.js +++ b/src/key.js @@ -470,7 +470,7 @@ function getExpirationTime(keyPacket, selfCertificate) { return new Date(keyPacket.created.getTime() + keyPacket.expirationTimeV3*24*3600*1000); } // check V4 expiration time - if (this.primaryKey.version == 4 && selfCertificate.keyNeverExpires === false) { + if (keyPacket.version == 4 && selfCertificate.keyNeverExpires === false) { return new Date(keyPacket.created.getTime() + selfCertificate.keyExpirationTime*1000); } return null; diff --git a/test/general/key.js b/test/general/key.js index 75657025..16d9757c 100644 --- a/test/general/key.js +++ b/test/general/key.js @@ -293,5 +293,20 @@ describe('Key', function() { expect(status).to.equal(openpgp.enums.keyStatus.revoked); done(); }); + + it('Method getExpirationTime V4 Key', function() { + var pubKey = openpgp.key.readArmored(twoKeys).keys[1]; + expect(pubKey).to.exist; + expect(pubKey).to.be.an.instanceof(openpgp.key.Key); + expect(pubKey.getExpirationTime().toISOString()).to.be.equal('2018-11-26T10:58:29.000Z'); + }); + + it('Method getExpirationTime V4 SubKey', function() { + var pubKey = openpgp.key.readArmored(twoKeys).keys[1]; + expect(pubKey).to.exist; + expect(pubKey).to.be.an.instanceof(openpgp.key.Key); + expect(pubKey.subKeys[0].getExpirationTime().toISOString()).to.be.equal('2018-11-26T10:58:29.000Z'); + }); + });