• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1"use strict";
2var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3    if (k2 === undefined) k2 = k;
4    var desc = Object.getOwnPropertyDescriptor(m, k);
5    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6      desc = { enumerable: true, get: function() { return m[k]; } };
7    }
8    Object.defineProperty(o, k2, desc);
9}) : (function(o, m, k, k2) {
10    if (k2 === undefined) k2 = k;
11    o[k2] = m[k];
12}));
13var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14    Object.defineProperty(o, "default", { enumerable: true, value: v });
15}) : function(o, v) {
16    o["default"] = v;
17});
18var __importStar = (this && this.__importStar) || function (mod) {
19    if (mod && mod.__esModule) return mod;
20    var result = {};
21    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22    __setModuleDefault(result, mod);
23    return result;
24};
25Object.defineProperty(exports, "__esModule", { value: true });
26exports.TSTInfo = void 0;
27const crypto = __importStar(require("../crypto"));
28const oid_1 = require("../oid");
29const error_1 = require("./error");
30class TSTInfo {
31    constructor(asn1) {
32        this.root = asn1;
33    }
34    get version() {
35        return this.root.subs[0].toInteger();
36    }
37    get genTime() {
38        return this.root.subs[4].toDate();
39    }
40    get messageImprintHashAlgorithm() {
41        const oid = this.messageImprintObj.subs[0].subs[0].toOID();
42        return oid_1.SHA2_HASH_ALGOS[oid];
43    }
44    get messageImprintHashedMessage() {
45        return this.messageImprintObj.subs[1].value;
46    }
47    get raw() {
48        return this.root.toDER();
49    }
50    verify(data) {
51        const digest = crypto.digest(this.messageImprintHashAlgorithm, data);
52        if (!crypto.bufferEqual(digest, this.messageImprintHashedMessage)) {
53            throw new error_1.RFC3161TimestampVerificationError('message imprint does not match artifact');
54        }
55    }
56    // https://www.rfc-editor.org/rfc/rfc3161#section-2.4.2
57    get messageImprintObj() {
58        return this.root.subs[2];
59    }
60}
61exports.TSTInfo = TSTInfo;
62