setasign\SetaPDF2\Signer\Timestamp\Module\Rfc3161

Curl A timestamp module using the RFC 3161 Standard

File: /SetaPDF v2/Signer/Timestamp/Module/Rfc3161/Curl.php
Old class name (alias): \SetaPDF_Signer_Timestamp_Module_Rfc3161_Curl

Class hierarchy

Implements

Summary

Static Properties

$statusCodes

static public array Rfc3161::$statusCodes = array(...)

PKI Status values

$userAgent

static public string Curl::$userAgent = 'SetaPDF-Signer Component TS-Module/2.0'

User agent send in timestamp request

Required by most TS servers


Properties

$_curlOptions

protected array Curl::$_curlOptions = array()

Additional curl options

$_digest

The message digest

$_lastResponse

protected string|false Curl::$_lastResponse

The last response of the timestamp server

$_nonce

protected bool Rfc3161::$_nonce = true

Defines if the nonce value should be included in the timestamp request

$_nonceValue

protected string Rfc3161::$_nonceValue

The value of the nonce value

$_reqPolicy

protected string Rfc3161::$_reqPolicy

The value for reqPolicy in timestamp request

$allowedResponseContentTypes

public string[] Curl::$allowedResponseContentTypes = array(...)

An array of allowed response content-types.


Methods

__construct()

public Curl::__construct (
string $url = null
)

The constructor.

Parameters
$url : string

URL of the timestamp server

_createTimestamp()

protected Curl::_createTimestamp (
string $timeStampRequest
): bool

Send the timestamp request and evaluates the response.

Parameters
$timeStampRequest : string
 
Exceptions

Throws \setasign\SetaPDF2\Signer\Exception

_getHash()

Get the hash that should be timestamped.

Parameters
$data : string|\SetaPDF_Core_Reader_FilePath

The hash of the main signature

_getTimestampRequest()

protected Rfc3161::_getTimestampRequest (): string

Creates the timestamp request structure.

Parameters
$data : string|\SetaPDF_Core_Reader_FilePath
 

_verifyResponse()

protected Rfc3161::_verifyResponse (): void
Parameters
$tsResponse : \SetaPDF_Signer_Tsp_Response
 

createTimestamp()

public Rfc3161::createTimestamp (): string

Create the timestamp signature.

Parameters
$data : string|\SetaPDF_Core_Reader_FilePath
 
Exceptions

Throws \setasign\SetaPDF2\Signer\Asn1\Exception

Throws \setasign\SetaPDF2\Signer\Exception

getCurlOption()

public Curl::getCurlOption (
int $option
): ?string

Returns a defined Curl option or null if not set.

Parameters
$option : int

The CURLOPT_XXX option to set

getDigest()

Get the digest algorithm.

getLastResponse()

public Curl::getLastResponse (
void
): string|false

Returns the last response of the timestamp server.

getNonce()

public Rfc3161::getNonce (
void
): bool

Queries if nonce should be set.

See

getReqPolicy()

public Rfc3161::getReqPolicy (
void
): string

Get the reqPolicy value / OID.

See

getUrl()

public Curl::getUrl (
void
): ?string

Returns the URL of the timestamp server.

setCurlOption()

public Curl::setCurlOption (
int|array $option,
?string $value = null
): void

Sets one or more Curl options with the assigned value.

Parameters
$option : int|array

The CURLOPT_XXX option to set

$value : ?string

The value to be set on option

See

setDigest()

Set the digest algorithm to use.

Parameters
$digest : string

Possible values are defined in \setasign\SetaPDF2\Signer\Digest

See

setNonce()

public Rfc3161::setNonce (
bool $nonce
): void

Define if the nonce value should be set or not

"2.4.1 Request Format: [...] The nonce, if included, allows the client to verify the timeliness of the response when no local clock is available. The nonce is a large random number with a high probability that the client generates it only once (e.g., a 64 bit integer). In such a case the same nonce value MUST be included in the response, otherwise the response shall be rejected."

Parameters
$nonce : bool
 
See
  • RFC 3161 - 2.4.1. Request Format

setReqPolicy()

public Rfc3161::setReqPolicy (
string $reqPolicy
): void

Set the reqPolicy value / OID.

"2.4.1 Request Format: [...] The reqPolicy field, if included, indicates the TSA policy under which the TimeStampToken SHOULD be provided."

Parameters
$reqPolicy : string
 
See
  • RFC 3161 - 2.4.1. Request Format

setUrl()

public Curl::setUrl (
string $url
): void

Sets the URL of the timestamp server.

Parameters
$url : string

The url to the timestamp server