2

I have generated keys using Openpgp.js and I got the following key as public key:

publicKey: "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxjMEYsTz2BYJKwYBBAHaRw8BAQdAP6YvOhz9VKvV78ELW34Ufn1M10lDrv0k\n5A0zP0VHw8HNJjJTdGVwc0Zyb21IZWxsIDxhYmNkZWZnaEBhYmNkZWZnaC5j\nb20+wowEEBYKAB0FAmLE89gECwkHCAMVCAoEFgACAQIZAQIbAwIeAQAhCRAT\nF2pNLLmmchYhBGIZLWiMyuztkw8ilxMXak0suaZyVMUBAILAEJzIYtgA5pq6\nZorp8Zb6fP+ImwkD5g991SQmPhG0APoCbs+lcvrdavNLeYLRUh0VP4/iIp3U\nKtsoor1oCIYTDM44BGLE89gSCisGAQQBl1UBBQEBB0AqIqBiInlN3OUzZSoe\nYYY65gVLho588CULO/y30dWaOwMBCAfCeAQYFggACQUCYsTz2AIbDAAhCRAT\nF2pNLLmmchYhBGIZLWiMyuztkw8ilxMXak0suaZytisA/ilwmNQXcxs0zURR\nmuU/l3ngpfLcOE3G2D7g9JGaU+AtAQCqzJ11g0x6xbY7mJS+UdJjk6gb60mq\nqYlNhcVH5aw1CQ==\n=G/+7\n-----END PGP PUBLIC KEY BLOCK-----\n"

now I try to run the below js code in order to encrypt a message:

async function EncryptMessage(pubkey, msg) {
  var openpgp = window.openpgp;
  var public_key = pubkey.value;
  console.log(public_key);
  var message = msg.value;
  console.log("message: " + message);
  const email = {
    subject: "Message",
    body: message
  }
  console.log(email)
  const options = {
      data: JSON.stringify(email),
      publicKeyArmored: public_key
  };
  console.log(options)
  let messageForOp = "";
  openpgp.encrypt(options)
      .then((cipherText)=>{
           messageForOp = cipherText.data;
           console.log(messageForOp)
      });
}

EncryptMessage({value: "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxjMEYsTz2BYJKwYBBAHaRw8BAQdAP6YvOhz9VKvV78ELW34Ufn1M10lDrv0k\n5A0zP0VHw8HNJjJTdGVwc0Zyb21IZWxsIDxhYmNkZWZnaEBhYmNkZWZnaC5j\nb20+wowEEBYKAB0FAmLE89gECwkHCAMVCAoEFgACAQIZAQIbAwIeAQAhCRAT\nF2pNLLmmchYhBGIZLWiMyuztkw8ilxMXak0suaZyVMUBAILAEJzIYtgA5pq6\nZorp8Zb6fP+ImwkD5g991SQmPhG0APoCbs+lcvrdavNLeYLRUh0VP4/iIp3U\nKtsoor1oCIYTDM44BGLE89gSCisGAQQBl1UBBQEBB0AqIqBiInlN3OUzZSoe\nYYY65gVLho588CULO/y30dWaOwMBCAfCeAQYFggACQUCYsTz2AIbDAAhCRAT\nF2pNLLmmchYhBGIZLWiMyuztkw8ilxMXak0suaZytisA/ilwmNQXcxs0zURR\nmuU/l3ngpfLcOE3G2D7g9JGaU+AtAQCqzJ11g0x6xbY7mJS+UdJjk6gb60mq\nqYlNhcVH5aw1CQ==\n=G/+7\n-----END PGP PUBLIC KEY BLOCK-----\n"}, {value: "hello world"});
<script src="https://unpkg.com/openpgp@5.5.0/dist/openpgp.min.js"></script>

My console is logging this:

"-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxjMEYsTz2BYJKwYBBAHaRw8BAQdAP6YvOhz9VKvV78ELW34Ufn1M10lDrv0k\n5A0zP0VHw8HNJjJTdGVwc0Zyb21IZWxsIDxhYmNkZWZnaEBhYmNkZWZnaC5j\nb20+wowEEBYKAB0FAmLE89gECwkHCAMVCAoEFgACAQIZAQIbAwIeAQAhCRAT\nF2pNLLmmchYhBGIZLWiMyuztkw8ilxMXak0suaZyVMUBAILAEJzIYtgA5pq6\nZorp8Zb6fP+ImwkD5g991SQmPhG0APoCbs+lcvrdavNLeYLRUh0VP4/iIp3U\nKtsoor1oCIYTDM44BGLE89gSCisGAQQBl1UBBQEBB0AqIqBiInlN3OUzZSoe\nYYY65gVLho588CULO/y30dWaOwMBCAfCeAQYFggACQUCYsTz2AIbDAAhCRAT\nF2pNLLmmchYhBGIZLWiMyuztkw8ilxMXak0suaZytisA/ilwmNQXcxs0zURR\nmuU/l3ngpfLcOE3G2D7g9JGaU+AtAQCqzJ11g0x6xbY7mJS+UdJjk6gb60mq\nqYlNhcVH5aw1CQ==\n=G/+7\n-----END PGP PUBLIC KEY BLOCK-----\n"

message: hello world 

Object { subject: "Message", body: "hello world" }

Object { data: "{\"subject\":\"Message\",\"body\":\"hello world\"}", publicKeyArmored: "\"-----BEGIN PGP PUBLIC KEY BLOCK-----\\n\\nxjMEYsTz2BYJKwYBBAHaRw8BAQdAP6YvOhz9VKvV78ELW34Ufn1M10lDrv0k\\n5A0zP0VHw8HNJjJTdGVwc0Zyb21IZWxsIDxhYmNkZWZnaEBhYmNkZWZnaC5j\\nb20+wowEEBYKAB0FAmLE89gECwkHCAMVCAoEFgACAQIZAQIbAwIeAQAhCRAT\\nF2pNLLmmchYhBGIZLWiMyuztkw8ilxMXak0suaZyVMUBAILAEJzIYtgA5pq6\\nZorp8Zb6fP+ImwkD5g991SQmPhG0APoCbs+lcvrdavNLeYLRUh0VP4/iIp3U\\nKtsoor1oCIYTDM44BGLE89gSCisGAQQBl1UBBQEBB0AqIqBiInlN3OUzZSoe\\nYYY65gVLho588CULO/y30dWaOwMBCAfCeAQYFggACQUCYsTz2AIbDAAhCRAT\\nF2pNLLmmchYhBGIZLWiMyuztkw8ilxMXak0suaZytisA/ilwmNQXcxs0zURR\\nmuU/l3ngpfLcOE3G2D7g9JGaU+AtAQCqzJ11g0x6xbY7mJS+UdJjk6gb60mq\\nqYlNhcVH5aw1CQ==\\n=G/+7\\n-----END PGP PUBLIC KEY BLOCK-----\\n\"" }

The error I am getting is:

Uncaught (in promise) Error: Parameter [message] needs to be of type Message   openpgp.js:619:14
Michael M.
  • 10,486
  • 9
  • 18
  • 34

1 Answers1

0

I think what you're seeing there is that you're not creating a message and the encrypt method is expecting an object with a message property that is of type Message.

const email = {
  subject: 'Message',
  body: message,
}

const message = await createMessage({ text: JSON.stringify(email), format: 'text' })

await encrypt({
  message,
  encryptionKeys: public_key,
})
inoabrian
  • 3,762
  • 1
  • 19
  • 27