【发布时间】:2021-07-12 22:44:53
【问题描述】:
我有一个函数,我正在尝试生成公钥和私钥 PEM 密钥字符串,我将使用私钥生成签名的 JWT 令牌并将公钥存储在数据库中。
NodeJS 版本在多个生产应用程序中运行,但将其添加到其中一个 typescript 项目时,我们遇到了一个神秘错误。
// javascript version
const newCrypto = () => {
return new Promise((resolve, reject) => {
try {
crypto.generateKeyPair('rsa', {
modulusLength: 1024,
publicKeyEncoding: {
type: 'spki',
format: 'pem'
},
privateKeyEncoding: {
type: 'pkcs8',
format: 'pem'
}
}, (err, publicKey, privateKey) => {
if (err) throw err
resolve({ publicKey, privateKey })
})
} catch (err) {
reject(err)
}
})
}
// typescript version
const newCrypto = async (): Promise<any> => {
crypto.generateKeyPair('rsa', {
modulusLength: 1024,
publicKeyEncoding: {
type: 'spki',
format: 'pem'
},
privateKeyEncoding: {
type: 'pkcs8',
format: 'pem'
}
}, (err: Error, publicKey: string, privateKey: string) => {
if (err) throw err
return { publicKey, privateKey }
})
}
这是我从 Typescript 得到的以下错误。花了一些时间谷歌搜索后,我在网上没有发现任何关于这个问题的信息。有人有什么想法吗?
No overload matches this call.
The last overload gave the following error.
Argument of type '"rsa"' is not assignable to parameter of type '"x448"'.
8 crypto.generateKeyPair('rsa', {
【问题讨论】:
标签: node.js typescript cryptojs