node-forge 如何从文件中读取私有 rsa 密钥
node-forge how to read a private rsa key from file
这个问题与Issue using RSA encryption in javascript
相关
我有一个试图从文件中读取 PEM RSA 私钥的节点脚本:
const forge = require('node-forge');
const fs = require('fs');
const path = require('path');
let pkey = fs.readFileSync(path.join(__dirname, 'test.key'), 'utf8');
//let pkeyDer = forge.util.decode64(pkey); // since it's not base64 encoded, i suppose don't need to decode
let pkeyAsn1 = forge.asn1.fromDer(pkey);
let privateKey = forge.pki.privateKeyFromAsn1(pkeyAsn1);
test.key
文件的格式如下:
-----BEGIN RSA PRIVATE KEY-----
{mumbo jumbo line1}
{mumbo jumbo line2}
...
-----END RSA PRIVATE KEY-----
当我尝试导入文件时,该行在 pkeyAsn1 = forge.asn1.fromDer(pkey);
处失败,出现以下错误:
Too few bytes to read ASN.1 value.
我不太了解文件格式,有人可以帮助我吗?
我生成的私钥文件使用以下 openssl 命令:
openssl rsa -in encrypted_test.key -out test.key
然后我输入了我的密码来解密这样的 rsa 密钥。
我想我明白了。读取私钥文件时,必须包含 ---BEGIN RSA PRIVATE KEY---
和 ---END RSA PRIVATE KEY---
横幅。
将 pkey 读取为字节并使用 forge.pki.privateKeyFromPem。
工作代码:
const forge = require('node-forge');
const fs = require('fs');
const path = require('path');
let pkey = fs.readFileSync(path.join(__dirname, 'test.key'));
let privateKey = forge.pki.privateKeyFromPem(pkey);
这个问题与Issue using RSA encryption in javascript
相关我有一个试图从文件中读取 PEM RSA 私钥的节点脚本:
const forge = require('node-forge');
const fs = require('fs');
const path = require('path');
let pkey = fs.readFileSync(path.join(__dirname, 'test.key'), 'utf8');
//let pkeyDer = forge.util.decode64(pkey); // since it's not base64 encoded, i suppose don't need to decode
let pkeyAsn1 = forge.asn1.fromDer(pkey);
let privateKey = forge.pki.privateKeyFromAsn1(pkeyAsn1);
test.key
文件的格式如下:
-----BEGIN RSA PRIVATE KEY-----
{mumbo jumbo line1}
{mumbo jumbo line2}
...
-----END RSA PRIVATE KEY-----
当我尝试导入文件时,该行在 pkeyAsn1 = forge.asn1.fromDer(pkey);
处失败,出现以下错误:
Too few bytes to read ASN.1 value.
我不太了解文件格式,有人可以帮助我吗?
我生成的私钥文件使用以下 openssl 命令:
openssl rsa -in encrypted_test.key -out test.key
然后我输入了我的密码来解密这样的 rsa 密钥。
我想我明白了。读取私钥文件时,必须包含 ---BEGIN RSA PRIVATE KEY---
和 ---END RSA PRIVATE KEY---
横幅。
将 pkey 读取为字节并使用 forge.pki.privateKeyFromPem。
工作代码:
const forge = require('node-forge');
const fs = require('fs');
const path = require('path');
let pkey = fs.readFileSync(path.join(__dirname, 'test.key'));
let privateKey = forge.pki.privateKeyFromPem(pkey);