TS_REQ_NEW(3)
π NAME π
okay so welcome to the TS_REQ_NEW(3) page from the Library Functions Manual, bestie β this is the whole X.509 time-stamp protocol friend group: TS_REQ_new, TS_REQ_free, TS_RESP_new, TS_RESP_free, TS_STATUS_INFO_new, TS_STATUS_INFO_free, TS_TST_INFO_new, TS_TST_INFO_free, TS_ACCURACY_new, TS_ACCURACY_free, TS_MSG_IMPRINT_new, and TS_MSG_IMPRINT_free. alloc/free icons only, no cap β¨
β¨ SYNOPSIS β¨
bestie, itβs libcrypto, and you pull in <openssl/ts.h> β hereβs the whole signature lineup, fr fr:
library βlibcryptoβ #include <openssl/ts.h>
TS_REQ *
TS_REQ_new(void);
void
TS_REQ_free(TS_REQ *req);
TS_RESP *
TS_RESP_new(void);
void
TS_RESP_free(TS_RESP *resp);
TS_STATUS_INFO *
TS_STATUS_INFO_new(void);
void
TS_STATUS_INFO_free(TS_STATUS_INFO *status);
TS_TST_INFO *
TS_TST_INFO_new(void);
void
TS_TST_INFO_free(TS_TST_INFO *token);
TS_ACCURACY *
TS_ACCURACY_new(void);
void
TS_ACCURACY_free(TS_ACCURACY *accuracy);
TS_MSG_IMPRINT *
TS_MSG_IMPRINT_new(void);
void
TS_MSG_IMPRINT_free(TS_MSG_IMPRINT *imprint);
π¦ DESCRIPTION π¦
A time-stamping authority is a trusted third party which allows its clients to prove that specific data existed at a particular point in time. Clients send time-stamping requests to the time-stamping server, which returns time-stamp tokens to the clients. thatβs the whole βprove it happened thenβ vibe, but cryptographically iconic π
TS_REQ_new()β allocates and initializes an emptyTS_REQobject, representing an ASN.1TimeStampReqstructure defined in RFC 3161 section 2.4.1. It can hold a hash of the datum to be time-stamped and some auxiliary, optional information.TS_REQ_free()freesreq.TS_RESP_new()β allocates and initializes an emptyTS_RESPobject, representing an ASN.1TimeStampRespstructure defined in RFC 3161 section 2.4.2. It can hold status information and a time-stamp token.TS_RESP_free()freesresp.TS_STATUS_INFO_new()β allocates and initializes an emptyTS_STATUS_INFOobject, representing an ASN.1PKIStatusInfostructure defined in RFC 3161 section 2.4.2. It is used insideTS_RESPand describes the outcome of one time-stamp request.TS_STATUS_INFO_free()freesstatus.TS_TST_INFO_new()β allocates and initializes an emptyTS_TST_INFOobject, representing an ASN.1TSTInfostructure defined in RFC 3161 section 2.4.2. It is the time-stamp token included in aTS_RESPobject in case of success, and it can hold the hash of the datum copied from a request, the time of generation, and some auxiliary information.TS_TST_INFO_free()freestoken.TS_ACCURACY_new()β allocates and initializes an emptyTS_ACCURACYobject, representing an ASN.1Accuracystructure defined in RFC 3161 section 2.4.2. It can be used inside aTS_TST_INFOobject and indicates the maximum error of the time stated in the token.TS_ACCURACY_free()freesaccuracy.TS_MSG_IMPRINT_new()β allocates and initializes an emptyTS_MSG_IMPRINTobject, representing an ASN.1MessageImprintstructure defined in RFC 3161 section 2.4.1. It is used insideTS_REQandTS_RESPobjects. It specifies a hash algorithm and stores the hash value of the datum.TS_MSG_IMPRINT_free()freesimprint.
π RETURN VALUES π
the _new() girlies are the ones doing returns: TS_REQ_new() returns the new TS_REQ object, TS_RESP_new() returns the new TS_RESP object, TS_STATUS_INFO_new() returns the new TS_STATUS_INFO object, TS_TST_INFO_new() returns the new TS_TST_INFO object, TS_ACCURACY_new() returns the new TS_ACCURACY object, and TS_MSG_IMPRINT_new() returns the new TS_MSG_IMPRINT object, respectively β or NULL if an error occurred. sad girl hours π The _free() functions are void in the synopsis; they just free.
π SEE ALSO π
go be nosy with these besties:
π STANDARDS π
RFC 3161: Internet X.509 Public Key Infrastructure Time-Stamp Protocol
note, bestie: RFC 3161 has been updated by RFC 5816: ESSCertIDv2 Update for RFC 3161. That update allows using the Signing Certificate Attribute Definition Version 2 according to RFC 5035, but the current implementation only supports the Signing Certificate Attribute Definition Version 1 according to RFC 2634, and hence only supports RFC 3161, but not RFC 5816 functionality. so yes, thatβs the tea β no RFC 5816 functionality in this implementation π«
π HISTORY π
These functions first appeared in OpenSSL 1.0.0 and have been available since OpenBSD 4.9. legacy but still serving looks β¨
Debian Β· June 8, 2025 Β· TS_REQ_NEW(3) β mwah, thatβs the source/version + date sign-off, bestie π
π¦ where this page comes from
- alpine 3.24: libressl-doc 4.3.1-r0 Β· custom
- arch rolling: libressl 4.4.0-1 Β· ISC AND custom:OpenSSL
- Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms