Skip to main content

Class: 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();

Hierarchy

Implements

Constructors

constructor

new TimeStampResp(parameters?): TimeStampResp

Initializes a new instance of the TimeStampResp class

Parameters

NameTypeDescription
parametersTimeStampRespParametersInitialization 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

assertContentType

assertContentType(): asserts this is Object

Returns

asserts this is Object


fromSchema

fromSchema(schema): void

Converts parsed ASN.1 object into current class

Parameters

NameTypeDescription
schemaanyASN.1 schema

Returns

void

Overrides

PkiObject.fromSchema


sign

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

Sign current TSP Response

Parameters

NameTypeDescription
privateKeyCryptoKeyPrivate key for "subjectPublicKeyInfo" structure
hashAlgorithm?stringHashing algorithm. Default SHA-1
cryptoICryptoEngineCrypto 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

NameTypeDefault value
encoding"base64" | "base64url" | "hex""hex"

Returns

string

Inherited from

PkiObject.toString


verify

verify(verificationParameters?, crypto?): Promise<boolean>

Verify current TSP Response

Parameters

NameTypeDescription
verificationParametersTimeStampRespVerifyParamsInput parameters for verification
cryptoICryptoEngineCrypto engine

Returns

Promise<boolean>


blockName

blockName(): string

Returns block name

Returns

string

Returns string block name

Inherited from

PkiObject.blockName


compareWithDefault

compareWithDefault(memberName, memberValue): boolean

Compare values with default values for all class members

Parameters

NameTypeDescription
memberNamestringString name for a class member
memberValueanyValue to compare with default value

Returns

boolean


defaultValues

defaultValues(memberName): PKIStatusInfo

Returns default values for all class members

Parameters

NameTypeDescription
memberName"status"String name for a class member

Returns

PKIStatusInfo

Default value

Overrides

PkiObject.defaultValues

defaultValues(memberName): ContentInfo

Parameters

NameType
memberName"timeStampToken"

Returns

ContentInfo

Overrides

PkiObject.defaultValues


fromBER

fromBER<T>(this, raw): T

Creates PKI object from the raw data

Type parameters

NameType
Textends PkiObject

Parameters

NameTypeDescription
thisPkiObjectConstructor<T>-
rawBufferSourceASN.1 encoded raw data

Returns

T

Initialized and filled current class object

Inherited from

PkiObject.fromBER


schema

schema(parameters?): any

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

Parameters

NameTypeDescription
parametersSchemaParameters<{ status?: PKIStatusInfoSchema ; timeStampToken?: ContentInfoSchema }>Input parameters for the schema

Returns

any

ASN.1 schema object

Overrides

PkiObject.schema