使用nodejs解码欧盟新冠病毒护照

7y4bm7vi  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(335)

我想尝试解码我的欧盟新冠病毒护照,并找到了python的这些说明。我试着用我更熟悉的nodejs做这件事
有一个三阶段的过程
解码基45
减压
提取cose数据
我有下面的代码,但是cose.encrypt.read正在命中catch方法并出现错误 Unknown tag, 18 有什么想法吗?

  1. const base45 = require("base45");
  2. const zlib = require("zlib");
  3. const cose = require("cose-js");
  4. passport =
  5. "HC1:NCFO...";
  6. // removes HC1:
  7. payload = passport.slice(4);
  8. // returns buffer
  9. const decoded = base45.decode(payload);
  10. // Use inflate https://stackoverflow.com/questions/47652769/zlib-node-js-cant-extract-compressed-data-from-python
  11. const decompressed = zlib.inflateSync(decoded);
  12. console.log(decompressed);
  13. cose.encrypt
  14. .read(decompressed)
  15. .then((buf) => {
  16. console.log("Protected message: " + buf.toString("utf8"));
  17. })
  18. .catch((error) => {
  19. console.log("!!", error);
  20. });
kcugc4gi

kcugc4gi1#

我后来发现https://dev.to/lmillucci/javascript-how-to-decode-the-greenpass-qr-code-3dh0 其中包含一个工作节点解决方案:-)

相关问题