2017-04-21 24 views
0

我嘗試使用OpenPGP.JS解密郵件。 我總是得到這個錯誤:OpenPGP.JS:解密郵件時出錯

Unhandled promise rejection (rejection id: 1): Error: Error decrypting 
message: No symmetrically encrypted session key packet found. 

這是我的代碼:

var openpgp = require('openpgp'); 
openpgp.initWorker({ path:'../node_modules/openpgp/dist/openpgp.worker.js' }) 
var passphrase = 'Our secret approach'; //what the privKey is encrypted with 

const fs = require('fs'); 
var data = fs.readFileSync('./order-file.txt', 'utf8'); 
var pubkey = fs.readFileSync('./public.key', 'utf8'); 
var privkey = fs.readFileSync('./privat.key', 'utf8'); 

var privKeyObj = openpgp.key.readArmored(privkey).keys[0]; 

options = { 
     message: openpgp.message.readArmored(data),  // parse armored message 
     publicKeys: openpgp.key.readArmored(pubkey), // for verification (optional) 
     privateKeys: openpgp.key.readArmored(privkey).keys[0].decrypt(passphrase), 
     password : passphrase 
    }; 

openpgp.decrypt(options).then(function(plaintext) { 

    console.dir(plaintext); 
    return plaintext.data; // 'Hello, World!' 
}); 

我不知道要我做錯了。 也許有人有一個想法。 親切的問候

馬庫斯

+0

是您的privKey明確存儲在'privat.key'而不是'private.key'的文件名? –

+0

是的,它是privat.key(我是德國人)。所以所有文件都被讀取。 – markus0074

回答

0

消息形成dev的:「停止傳遞的口令在解密選項對象即用於與密碼(對稱密鑰加密)未公開密鑰加密,這您使用的加密的消息。因爲你提供了一個密碼,它認爲它使用的是前一種模式。「