我正在尝试解码从 HTTP 发布请求中收到的时间戳,但这是一项非常复杂的任务,我什至对 ASN.1/RFC 3161 没有任何适当的了解,所以如果有人愿意帮助我出去,我真的会被激怒!
代码:
import { Action } from 'kawax-js';
import base64 from 'base-64';
var Ber = require('asn1').Ber;
class Timestamp extends Action {
static type = 'TIMESTAMP';
call = async (data) => {
const authEncoded = base64.encode(username+":"+password);
const formBody = Object.keys(data).map(key =>
encodeURIComponent(key) + '=' +
encodeURIComponent(data[key])).join('&');
const response = await
fetch("https://sign.test.cryptolog.com/tsa/post/", {
method: 'POST',
headers: {
'Accept': 'application/x-www-form-urlencoded',
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Basic ' + authEncoded,
'Access-Control-Allow-Origin': '*'
},
body: formBody
});
const bodyData = await response.arrayBuffer();
var reader = new Ber.Reader(Buffer.from(bodyData));
if (reader.peek() === Ber.Boolean)
console.log("",reader.readBoolean());
return bodyData;
}
}
export default Timestamp;
我正在尝试使用 asn1 npm 包(https://www.npmjs.com/package/asn1)。
如果我改变我await response.arrayBuffer()
的await response.text()
我得到这个:
我真的不知道如何解决这个问题,我尝试了很多不同的东西,但似乎没有任何效果,如果有人能指出我正确的方向,那就太好了!