当我们使用 OpenPGP 创建新密钥时,我们如何设置 'expiration time'?
How do we set 'expiration time', when we create new key with OpenPGP?
在 OpenPGP.js 中我们有一个函数 Key.prototype.getExpirationTime
,它 "returns the expiration time of the primary key or null if key does not expire":
https://github.com/openpgpjs/openpgpjs/blob/master/src/key.js#L472
但是当我们创建新密钥时,我们如何设置这个过期时间呢?
我在这个函数中没有看到 https://github.com/openpgpjs/openpgpjs/blob/master/src/key.js#L938 or in documentation for it https://openpgpjs.org/openpgpjs/doc/module-key.html 参数 'expiration time'
在OpenPGP.js this not implemented yet, see : https://github.com/openpgpjs/openpgpjs/issues/511#issuecomment-272376745
目前我看到的最简单的解决方案是使用 kbpgp.js for key generation, like this: https://ageyev.github.io/crypto/openpgp/ 它需要比 OpenPGP.js 更多的时间来生成密钥,但是有效。
简单如:
let expires = 60 * 60 * 24 * 30 // seconds to expire keys {Number}
let PGPOptions = {
userIds: [{
name: 'username',
email: 'awesome@mail.com'
}],
numBits: 2048, // RSA
passphrase: 'good passphrase' // protects the private key
keyExpirationTime: expires // 30 days
}
// create keys (pub/priv)
openpgp.generateKey(PGPOptions).then(key => {
let privkey = key.privateKeyArmored,
pubkey = key.publicKeyArmored
})
在 OpenPGP.js 中我们有一个函数 Key.prototype.getExpirationTime
,它 "returns the expiration time of the primary key or null if key does not expire":
https://github.com/openpgpjs/openpgpjs/blob/master/src/key.js#L472
但是当我们创建新密钥时,我们如何设置这个过期时间呢? 我在这个函数中没有看到 https://github.com/openpgpjs/openpgpjs/blob/master/src/key.js#L938 or in documentation for it https://openpgpjs.org/openpgpjs/doc/module-key.html 参数 'expiration time'
在OpenPGP.js this not implemented yet, see : https://github.com/openpgpjs/openpgpjs/issues/511#issuecomment-272376745
目前我看到的最简单的解决方案是使用 kbpgp.js for key generation, like this: https://ageyev.github.io/crypto/openpgp/ 它需要比 OpenPGP.js 更多的时间来生成密钥,但是有效。
简单如:
let expires = 60 * 60 * 24 * 30 // seconds to expire keys {Number}
let PGPOptions = {
userIds: [{
name: 'username',
email: 'awesome@mail.com'
}],
numBits: 2048, // RSA
passphrase: 'good passphrase' // protects the private key
keyExpirationTime: expires // 30 days
}
// create keys (pub/priv)
openpgp.generateKey(PGPOptions).then(key => {
let privkey = key.privateKeyArmored,
pubkey = key.publicKeyArmored
})