Skip to main content

TimeStampResp

Represents the TimeStampResp structure described in RFC3161

Example​

The following example demonstrates how to create and sign Time-Stamp Response

// 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​

Constructor​

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 Signature​

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?​

"hex" | "base64" | "base64url"

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()​

Call Signature​

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

Call Signature​

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​

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<{ status?: PKIStatusInfoSchema; timeStampToken?: ContentInfoSchema; }> = {}

Input parameters for the schema

Returns​

any

ASN.1 schema object

Overrides​

PkiObject.schema