Skip to main content

TimeStampResp

Represents the TimeStampResp structure described in RFC3161

Example

// Generate random serial number
const serialNumber = pkijs.getRandomValues(new Uint8Array(10)).buffer;

// Create specific TST info structure to sign
const tstInfo = new pkijs.TSTInfo({
version: 1,
policy: tspReq.reqPolicy,
messageImprint: tspReq.messageImprint,
serialNumber: new asn1js.Integer({ valueHex: serialNumber }),
genTime: new Date(),
ordering: true,
accuracy: new pkijs.Accuracy({
seconds: 1,
millis: 1,
micros: 10
}),
nonce: tspReq.nonce,
});

// Create and sign CMS Signed Data with TSTInfo
const cmsSigned = new pkijs.SignedData({
version: 3,
encapContentInfo: new pkijs.EncapsulatedContentInfo({
eContentType: "1.2.840.113549.1.9.16.1.4", // "tSTInfo" content type
eContent: new asn1js.OctetString({ valueHex: tstInfo.toSchema().toBER() }),
}),
signerInfos: [
new pkijs.SignerInfo({
version: 1,
sid: new pkijs.IssuerAndSerialNumber({
issuer: cert.issuer,
serialNumber: cert.serialNumber
})
})
],
certificates: [cert]
});

await cmsSigned.sign(keys.privateKey, 0, "SHA-256");

// Create CMS Content Info
const cmsContent = new pkijs.ContentInfo({
contentType: pkijs.ContentInfo.SIGNED_DATA,
content: cmsSigned.toSchema(true)
});

// Finally create completed TSP response structure
const tspResp = new pkijs.TimeStampResp({
status: new pkijs.PKIStatusInfo({ status: pkijs.PKIStatus.granted }),
timeStampToken: new pkijs.ContentInfo({ schema: cmsContent.toSchema() })
});

const tspRespRaw = tspResp.toSchema().toBER();

Extends

Implements

Constructors

new TimeStampResp()

new TimeStampResp(parameters): TimeStampResp

Initializes a new instance of the TimeStampResp class

Parameters

parameters: TimeStampRespParameters = {}

Initialization parameters

Returns

TimeStampResp

Overrides

PkiObject.constructor

Properties

status

status: PKIStatusInfo

Time-Stamp status

Implementation of

ITimeStampResp.status


timeStampToken?

optional timeStampToken: ContentInfo

Time-Stamp token

Implementation of

ITimeStampResp.timeStampToken


CLASS_NAME

static CLASS_NAME: string = "TimeStampResp"

Name of the class

Overrides

PkiObject.CLASS_NAME

Accessors

className

get className(): string

Returns

string

Inherited from

PkiObject.className

Methods

fromSchema()

fromSchema(schema): void

Converts parsed ASN.1 object into current class

Parameters

schema: any

ASN.1 schema

Returns

void

Overrides

PkiObject.fromSchema


sign()

sign(privateKey, hashAlgorithm?, crypto?): Promise<void>

Sign current TSP Response

Parameters

privateKey: CryptoKey

Private key for "subjectPublicKeyInfo" structure

hashAlgorithm?: string

Hashing algorithm. Default SHA-1

crypto?: ICryptoEngine = ...

Crypto engine

Returns

Promise<void>


toJSON()

toJSON(): TimeStampRespJson

Converts the class to JSON object

Returns

TimeStampRespJson

JSON object

Overrides

PkiObject.toJSON


toSchema()

toSchema(): Sequence

Converts current object to ASN.1 object and sets correct values

Returns

Sequence

ASN.1 object

Overrides

PkiObject.toSchema


toString()

toString(encoding): string

Parameters

encoding: "base64" | "base64url" | "hex" = "hex"

Returns

string

Inherited from

PkiObject.toString


verify()

verify(verificationParameters, crypto): Promise<boolean>

Verify current TSP Response

Parameters

verificationParameters: TimeStampRespVerifyParams = ...

Input parameters for verification

crypto: ICryptoEngine = ...

Crypto engine

Returns

Promise<boolean>


blockName()

static blockName(): string

Returns block name

Returns

string

Returns string block name

Inherited from

PkiObject.blockName


compareWithDefault()

static compareWithDefault(memberName, memberValue): boolean

Compare values with default values for all class members

Parameters

memberName: string

String name for a class member

memberValue: any

Value to compare with default value

Returns

boolean


defaultValues()

defaultValues(memberName)

static defaultValues(memberName): PKIStatusInfo

Returns default values for all class members

Parameters

memberName: "status"

String name for a class member

Returns

PKIStatusInfo

Default value

Overrides

PkiObject.defaultValues

defaultValues(memberName)

static defaultValues(memberName): ContentInfo

Returns default values for all class members

Parameters

memberName: "timeStampToken"

String name for a class member

Returns

ContentInfo

Default value

Overrides

PkiObject.defaultValues


fromBER()

static fromBER<T>(this, raw): T

Creates PKI object from the raw data

Type Parameters

T extends PkiObject

Parameters

this: PkiObjectConstructor<T>

raw: BufferSource

ASN.1 encoded raw data

Returns

T

Initialized and filled current class object

Inherited from

PkiObject.fromBER


schema()

static schema(parameters): any

Returns value of pre-defined ASN.1 schema for current class

Parameters

parameters: SchemaParameters<object> = {}

Input parameters for the schema

Returns

any

ASN.1 schema object

Overrides

PkiObject.schema