2017-04-19 40 views
1
一个RSA私钥

这个问题是关系到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密钥。

+0

@dlongley你会看看 – WABBIT0111

回答

0

我想我想通了。阅读私钥文件时,必须包含---BEGIN RSA PRIVATE KEY------END RSA PRIVATE KEY---横幅。

+0

我有这个横幅,仍然会出错。 – nottinhill