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
-
↳
TimeStampResp
Implements
Constructors
constructor
• new TimeStampResp(parameters?
): TimeStampResp
Initializes a new instance of the TimeStampResp class
Parameters
Name | Type | Description |
---|---|---|
parameters | TimeStampRespParameters | Initialization parameters |
Returns
Overrides
Properties
status
• status: PKIStatusInfo
Time-Stamp status
Implementation of
timeStampToken
• Optional
timeStampToken: ContentInfo
Time-Stamp token
Implementation of
CLASS_NAME
▪ Static
CLASS_NAME: string
= "TimeStampResp"
Name of the class
Overrides
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
Name | Type | Description |
---|---|---|
schema | any | ASN.1 schema |
Returns
void
Overrides
sign
▸ sign(privateKey
, hashAlgorithm?
, crypto?
): Promise
<void
>
Sign current TSP Response
Parameters
Name | Type | Description |
---|---|---|
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
JSON object
Overrides
toSchema
▸ toSchema(): Sequence
Converts current object to ASN.1 object and sets correct values
Returns
Sequence
ASN.1 object
Overrides
toString
▸ toString(encoding?
): string
Parameters
Name | Type | Default value |
---|---|---|
encoding | "base64" | "base64url" | "hex" | "hex" |
Returns
string
Inherited from
verify
▸ verify(verificationParameters?
, crypto?
): Promise
<boolean
>
Verify current TSP Response
Parameters
Name | Type | Description |
---|---|---|
verificationParameters | TimeStampRespVerifyParams | Input parameters for verification |
crypto | ICryptoEngine | Crypto engine |
Returns
Promise
<boolean
>
blockName
▸ blockName(): string
Returns block name
Returns
string
Returns string block name
Inherited from
compareWithDefault
▸ compareWithDefault(memberName
, memberValue
): boolean
Compare values with default values for all class members
Parameters
Name | Type | Description |
---|---|---|
memberName | string | String name for a class member |
memberValue | any | Value to compare with default value |
Returns
boolean
defaultValues
▸ defaultValues(memberName
): PKIStatusInfo
Returns default values for all class members
Parameters
Name | Type | Description |
---|---|---|
memberName | "status" | String name for a class member |
Returns
Default value
Overrides
▸ defaultValues(memberName
): ContentInfo
Parameters
Name | Type |
---|---|
memberName | "timeStampToken" |
Returns
Overrides
PkiObject.defaultValues
fromBER
▸ fromBER<T
>(this
, raw
): T
Creates PKI object from the raw data
Type parameters
Name | Type |
---|---|
T | extends PkiObject |
Parameters
Name | Type | Description |
---|---|---|
this | PkiObjectConstructor <T > | - |
raw | BufferSource | ASN.1 encoded raw data |
Returns
T
Initialized and filled current class object
Inherited from
schema
▸ schema(parameters?
): any
Returns value of pre-defined ASN.1 schema for current class
Parameters
Name | Type | Description |
---|---|---|
parameters | SchemaParameters <{ status? : PKIStatusInfoSchema ; timeStampToken? : ContentInfoSchema }> | Input parameters for the schema |
Returns
any
ASN.1 schema object