1

我想尝试解码我​​的欧盟 covid 护照,并找到python 的这些说明。我试图在我更熟悉的nodejs中做到这一点

有一个3阶段的过程

  • 解码 Base 45
  • 解压
  • 提取cos数据

我有下面的代码,但是 cose.encrypt.read 遇到错误的 catch 方法Unknown tag, 18

有任何想法吗?

const base45 = require("base45");
const zlib = require("zlib");
const cose = require("cose-js");

passport =
    "HC1:NCFO...";

// removes HC1:
payload = passport.slice(4);

// returns buffer
const decoded = base45.decode(payload);

// Use inflate https://stackoverflow.com/questions/47652769/zlib-node-js-cant-extract-compressed-data-from-python
const decompressed = zlib.inflateSync(decoded);
console.log(decompressed);

cose.encrypt
    .read(decompressed)
    .then((buf) => {
        console.log("Protected message: " + buf.toString("utf8"));
    })
    .catch((error) => {
        console.log("!!", error);
    });
4

1 回答 1

0

我随后发现https://dev.to/lmillucci/javascript-how-to-decode-the-greenpass-qr-code-3dh0里面有一个工作的nodejs解决方案:-)

于 2021-07-25T14:29:27.560 回答