1
나는 nodejs 암호로 개인 키를 생성했으며이 키를 사용하여 파일에 서명하려고합니다. 내 코드는 다음입니다 :nodejs 암호로 파일에 서명 할 수 없습니다
var ecdh = crypto.createECDH('brainpoolP512t1');
ecdh.generateKeys();
var key = ecdh.getPrivateKey('buffer');
var data= fs.readFileSync(req.file.path);
var sign = crypto.createSign('sha512');
sign.update(data);
var signature = sign.sign(key, 'hex');
하지만 오류를 얻을 :
Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
at Error (native)
at Sign.sign (crypto.js:283:26)
at /....js:32:27
at Immediate.<anonymous> (/.../node_modules/multer/lib/make-middleware.js:52:37)
at runCallback (timers.js:578:20)
at tryOnImmediate (timers.js:554:5)
at processImmediate [as _immediateCallback] (timers.js:533:5)
나는 키 형식 함께 할 수있는 뭔가가 알고 있지만, 나는이 문제를 해결하는 방법을 모르겠어요. 누구든지 도와 줄 수 있습니까?
업데이트 : 나는 PEM 형식에 맞게 PrivateKey의 편집 :
var KEY_START = '-----BEGIN EC PRIVATE KEY-----\n';
var KEY_END = '\n-----END EC PRIVATE KEY-----';
const ecdh = crypto.createECDH('brainpoolP512t1');
ecdh.generateKeys();
var key =KEY_START + ecdh.getPrivateKey('base64') + KEY_END;
var data= fs.readFileSync(req.file.path);
const sign = crypto.createSign('sha512');
sign.update(data);
var signature = sign.sign(key, 'hex');
을 그리고 지금은 다른 오류 geht :
Error: error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long
at Error (native)
at Sign.sign (crypto.js:283:26)
at /...js:37:27
at Immediate.<anonymous> (/.../node_modules/multer/lib/make-middleware.js:52:37)
at runCallback (timers.js:578:20)
at tryOnImmediate (timers.js:554:5)
at processImmediate [as _immediateCallback] (timers.js:533:5)
나는 내가 서명 할 파일의 파일 경로가 서해야한다고 생각? – nolags
내가 잘못 입력 했으므로 답변을 업데이트했습니다. – mscdex
이제 DH 개인 키에서 유효한 PEM 형식의 키를 (노드 내에서) 생성하려면 코드 예제를 추가했습니다. – mscdex