1*56929f71Sschwarze.\" $OpenBSD: d2i_TS_REQ.3,v 1.2 2018/03/23 04:34:23 schwarze Exp $ 2ed978f4aSschwarze.\" 3ed978f4aSschwarze.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org> 4ed978f4aSschwarze.\" 5ed978f4aSschwarze.\" Permission to use, copy, modify, and distribute this software for any 6ed978f4aSschwarze.\" purpose with or without fee is hereby granted, provided that the above 7ed978f4aSschwarze.\" copyright notice and this permission notice appear in all copies. 8ed978f4aSschwarze.\" 9ed978f4aSschwarze.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10ed978f4aSschwarze.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11ed978f4aSschwarze.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12ed978f4aSschwarze.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13ed978f4aSschwarze.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14ed978f4aSschwarze.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15ed978f4aSschwarze.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16ed978f4aSschwarze.\" 17*56929f71Sschwarze.Dd $Mdocdate: March 23 2018 $ 18ed978f4aSschwarze.Dt D2I_TS_REQ 3 19ed978f4aSschwarze.Os 20ed978f4aSschwarze.Sh NAME 21ed978f4aSschwarze.Nm d2i_TS_REQ , 22ed978f4aSschwarze.Nm i2d_TS_REQ , 23ed978f4aSschwarze.Nm d2i_TS_REQ_bio , 24ed978f4aSschwarze.Nm i2d_TS_REQ_bio , 25ed978f4aSschwarze.Nm d2i_TS_REQ_fp , 26ed978f4aSschwarze.Nm i2d_TS_REQ_fp , 27ed978f4aSschwarze.Nm d2i_TS_RESP , 28ed978f4aSschwarze.Nm i2d_TS_RESP , 29ed978f4aSschwarze.Nm d2i_TS_RESP_bio , 30ed978f4aSschwarze.Nm i2d_TS_RESP_bio , 31ed978f4aSschwarze.Nm d2i_TS_RESP_fp , 32ed978f4aSschwarze.Nm i2d_TS_RESP_fp , 33ed978f4aSschwarze.Nm d2i_TS_STATUS_INFO , 34ed978f4aSschwarze.Nm i2d_TS_STATUS_INFO , 35ed978f4aSschwarze.Nm d2i_TS_TST_INFO , 36ed978f4aSschwarze.Nm i2d_TS_TST_INFO , 37ed978f4aSschwarze.Nm d2i_TS_TST_INFO_bio , 38ed978f4aSschwarze.Nm i2d_TS_TST_INFO_bio , 39ed978f4aSschwarze.Nm d2i_TS_TST_INFO_fp , 40ed978f4aSschwarze.Nm i2d_TS_TST_INFO_fp , 41ed978f4aSschwarze.Nm d2i_TS_ACCURACY , 42ed978f4aSschwarze.Nm i2d_TS_ACCURACY , 43ed978f4aSschwarze.Nm d2i_TS_MSG_IMPRINT , 44ed978f4aSschwarze.Nm i2d_TS_MSG_IMPRINT , 45ed978f4aSschwarze.Nm d2i_TS_MSG_IMPRINT_bio , 46ed978f4aSschwarze.Nm i2d_TS_MSG_IMPRINT_bio , 47ed978f4aSschwarze.Nm d2i_TS_MSG_IMPRINT_fp , 48ed978f4aSschwarze.Nm i2d_TS_MSG_IMPRINT_fp 49ed978f4aSschwarze.Nd decode and encode X.509 time-stamp protocol structures 50ed978f4aSschwarze.Sh SYNOPSIS 51ed978f4aSschwarze.In openssl/ts.h 52ed978f4aSschwarze.Ft TS_REQ * 53ed978f4aSschwarze.Fo d2i_TS_REQ 54ed978f4aSschwarze.Fa "TS_REQ **val_out" 55ed978f4aSschwarze.Fa "const unsigned char **der_in" 56ed978f4aSschwarze.Fa "long length" 57ed978f4aSschwarze.Fc 58ed978f4aSschwarze.Ft int 59ed978f4aSschwarze.Fo i2d_TS_REQ 60ed978f4aSschwarze.Fa "const TS_REQ *val_in" 61ed978f4aSschwarze.Fa "unsigned char **der_out" 62ed978f4aSschwarze.Fc 63ed978f4aSschwarze.Ft TS_REQ * 64ed978f4aSschwarze.Fo d2i_TS_REQ_bio 65ed978f4aSschwarze.Fa "BIO *in_bio" 66ed978f4aSschwarze.Fa "TS_REQ **val_out" 67ed978f4aSschwarze.Fc 68ed978f4aSschwarze.Ft int 69ed978f4aSschwarze.Fo i2d_TS_REQ_bio 70ed978f4aSschwarze.Fa "BIO *out_bio" 71ed978f4aSschwarze.Fa "TS_REQ *val_in" 72ed978f4aSschwarze.Fc 73ed978f4aSschwarze.Ft TS_REQ * 74ed978f4aSschwarze.Fo d2i_TS_REQ_fp 75ed978f4aSschwarze.Fa "FILE *in_fp" 76ed978f4aSschwarze.Fa "TS_REQ **val_out" 77ed978f4aSschwarze.Fc 78ed978f4aSschwarze.Ft int 79ed978f4aSschwarze.Fo i2d_TS_REQ_fp 80ed978f4aSschwarze.Fa "FILE *out_fp" 81ed978f4aSschwarze.Fa "TS_REQ *val_in" 82ed978f4aSschwarze.Fc 83ed978f4aSschwarze.Ft TS_RESP * 84ed978f4aSschwarze.Fo d2i_TS_RESP 85ed978f4aSschwarze.Fa "TS_RESP **val_out" 86ed978f4aSschwarze.Fa "const unsigned char **der_in" 87ed978f4aSschwarze.Fa "long length" 88ed978f4aSschwarze.Fc 89ed978f4aSschwarze.Ft int 90ed978f4aSschwarze.Fo i2d_TS_RESP 91ed978f4aSschwarze.Fa "const TS_RESP *val_in" 92ed978f4aSschwarze.Fa "unsigned char **der_out" 93ed978f4aSschwarze.Fc 94ed978f4aSschwarze.Ft TS_RESP * 95ed978f4aSschwarze.Fo d2i_TS_RESP_bio 96ed978f4aSschwarze.Fa "BIO *in_bio" 97ed978f4aSschwarze.Fa "TS_RESP **val_out" 98ed978f4aSschwarze.Fc 99ed978f4aSschwarze.Ft int 100ed978f4aSschwarze.Fo i2d_TS_RESP_bio 101ed978f4aSschwarze.Fa "BIO *out_bio" 102ed978f4aSschwarze.Fa "TS_RESP *val_in" 103ed978f4aSschwarze.Fc 104ed978f4aSschwarze.Ft TS_RESP * 105ed978f4aSschwarze.Fo d2i_TS_RESP_fp 106ed978f4aSschwarze.Fa "FILE *in_fp" 107ed978f4aSschwarze.Fa "TS_RESP **val_out" 108ed978f4aSschwarze.Fc 109ed978f4aSschwarze.Ft int 110ed978f4aSschwarze.Fo i2d_TS_RESP_fp 111ed978f4aSschwarze.Fa "FILE *out_fp" 112ed978f4aSschwarze.Fa "TS_RESP *val_in" 113ed978f4aSschwarze.Fc 114ed978f4aSschwarze.Ft TS_STATUS_INFO * 115ed978f4aSschwarze.Fo d2i_TS_STATUS_INFO 116ed978f4aSschwarze.Fa "TS_STATUS_INFO **val_out" 117ed978f4aSschwarze.Fa "const unsigned char **der_in" 118ed978f4aSschwarze.Fa "long length" 119ed978f4aSschwarze.Fc 120ed978f4aSschwarze.Ft int 121ed978f4aSschwarze.Fo i2d_TS_STATUS_INFO 122ed978f4aSschwarze.Fa "const TS_STATUS_INFO *val_in" 123ed978f4aSschwarze.Fa "unsigned char **der_out" 124ed978f4aSschwarze.Fc 125ed978f4aSschwarze.Ft TS_TST_INFO * 126ed978f4aSschwarze.Fo d2i_TS_TST_INFO 127ed978f4aSschwarze.Fa "TS_TST_INFO **val_out" 128ed978f4aSschwarze.Fa "const unsigned char **der_in" 129ed978f4aSschwarze.Fa "long length" 130ed978f4aSschwarze.Fc 131ed978f4aSschwarze.Ft int 132ed978f4aSschwarze.Fo i2d_TS_TST_INFO 133ed978f4aSschwarze.Fa "const TS_TST_INFO *val_in" 134ed978f4aSschwarze.Fa "unsigned char **der_out" 135ed978f4aSschwarze.Fc 136ed978f4aSschwarze.Ft TS_TST_INFO * 137ed978f4aSschwarze.Fo d2i_TS_TST_INFO_bio 138ed978f4aSschwarze.Fa "BIO *in_bio" 139ed978f4aSschwarze.Fa "TS_TST_INFO **val_out" 140ed978f4aSschwarze.Fc 141ed978f4aSschwarze.Ft int 142ed978f4aSschwarze.Fo i2d_TS_TST_INFO_bio 143ed978f4aSschwarze.Fa "BIO *out_bio" 144ed978f4aSschwarze.Fa "TS_TST_INFO *val_in" 145ed978f4aSschwarze.Fc 146ed978f4aSschwarze.Ft TS_TST_INFO * 147ed978f4aSschwarze.Fo d2i_TS_TST_INFO_fp 148ed978f4aSschwarze.Fa "FILE *in_fp" 149ed978f4aSschwarze.Fa "TS_TST_INFO **val_out" 150ed978f4aSschwarze.Fc 151ed978f4aSschwarze.Ft int 152ed978f4aSschwarze.Fo i2d_TS_TST_INFO_fp 153ed978f4aSschwarze.Fa "FILE *out_fp" 154ed978f4aSschwarze.Fa "TS_TST_INFO *val_in" 155ed978f4aSschwarze.Fc 156ed978f4aSschwarze.Ft TS_ACCURACY * 157ed978f4aSschwarze.Fo d2i_TS_ACCURACY 158ed978f4aSschwarze.Fa "TS_ACCURACY **val_out" 159ed978f4aSschwarze.Fa "const unsigned char **der_in" 160ed978f4aSschwarze.Fa "long length" 161ed978f4aSschwarze.Fc 162ed978f4aSschwarze.Ft int 163ed978f4aSschwarze.Fo i2d_TS_ACCURACY 164ed978f4aSschwarze.Fa "const TS_ACCURACY *val_in" 165ed978f4aSschwarze.Fa "unsigned char **der_out" 166ed978f4aSschwarze.Fc 167ed978f4aSschwarze.Ft TS_MSG_IMPRINT * 168ed978f4aSschwarze.Fo d2i_TS_MSG_IMPRINT 169ed978f4aSschwarze.Fa "TS_MSG_IMPRINT **val_out" 170ed978f4aSschwarze.Fa "const unsigned char **der_in" 171ed978f4aSschwarze.Fa "long length" 172ed978f4aSschwarze.Fc 173ed978f4aSschwarze.Ft int 174ed978f4aSschwarze.Fo i2d_TS_MSG_IMPRINT 175ed978f4aSschwarze.Fa "const TS_MSG_IMPRINT *val_in" 176ed978f4aSschwarze.Fa "unsigned char **der_out" 177ed978f4aSschwarze.Fc 178ed978f4aSschwarze.Ft TS_MSG_IMPRINT * 179ed978f4aSschwarze.Fo d2i_TS_MSG_IMPRINT_bio 180ed978f4aSschwarze.Fa "BIO *in_bio" 181ed978f4aSschwarze.Fa "TS_MSG_IMPRINT **val_out" 182ed978f4aSschwarze.Fc 183ed978f4aSschwarze.Ft int 184ed978f4aSschwarze.Fo i2d_TS_MSG_IMPRINT_bio 185ed978f4aSschwarze.Fa "BIO *out_bio" 186ed978f4aSschwarze.Fa "TS_MSG_IMPRINT *val_in" 187ed978f4aSschwarze.Fc 188ed978f4aSschwarze.Ft TS_MSG_IMPRINT * 189ed978f4aSschwarze.Fo d2i_TS_MSG_IMPRINT_fp 190ed978f4aSschwarze.Fa "FILE *in_fp" 191ed978f4aSschwarze.Fa "TS_MSG_IMPRINT **val_out" 192ed978f4aSschwarze.Fc 193ed978f4aSschwarze.Ft int 194ed978f4aSschwarze.Fo i2d_TS_MSG_IMPRINT_fp 195ed978f4aSschwarze.Fa "FILE *out_fp" 196ed978f4aSschwarze.Fa "TS_MSG_IMPRINT *val_in" 197ed978f4aSschwarze.Fc 198ed978f4aSschwarze.Sh DESCRIPTION 199ed978f4aSschwarzeThese functions decode and encode X.509 structures used for the 200ed978f4aSschwarzetime-stamp protocol. 201ed978f4aSschwarzeFor details about the semantics, examples, caveats, and bugs, see 202ed978f4aSschwarze.Xr ASN1_item_d2i 3 . 203ed978f4aSschwarze.Pp 204ed978f4aSschwarze.Fn d2i_TS_REQ 205ed978f4aSschwarzeand 206ed978f4aSschwarze.Fn i2d_TS_REQ 207ed978f4aSschwarzedecode and encode an ASN.1 208ed978f4aSschwarze.Vt TimeStampReq 209ed978f4aSschwarzestructure defined in RFC 3161 section 2.4.1. 210ed978f4aSschwarze.Fn d2i_TS_REQ_bio , 211ed978f4aSschwarze.Fn i2d_TS_REQ_bio , 212ed978f4aSschwarze.Fn d2i_TS_REQ_fp , 213ed978f4aSschwarzeand 214ed978f4aSschwarze.Fn i2d_TS_REQ_fp 215ed978f4aSschwarzeare similar except that they decode or encode using a 216ed978f4aSschwarze.Vt BIO 217ed978f4aSschwarzeor 218ed978f4aSschwarze.Vt FILE 219ed978f4aSschwarzepointer. 220ed978f4aSschwarze.Pp 221ed978f4aSschwarze.Fn d2i_TS_RESP 222ed978f4aSschwarzeand 223ed978f4aSschwarze.Fn i2d_TS_RESP 224ed978f4aSschwarzedecode and encode an ASN.1 225ed978f4aSschwarze.Vt TimeStampResp 226ed978f4aSschwarzestructure defined in RFC 3161 section 2.4.2. 227ed978f4aSschwarze.Fn d2i_TS_RESP_bio , 228ed978f4aSschwarze.Fn i2d_TS_RESP_bio , 229ed978f4aSschwarze.Fn d2i_TS_RESP_fp , 230ed978f4aSschwarzeand 231ed978f4aSschwarze.Fn i2d_TS_RESP_fp 232ed978f4aSschwarzeare similar except that they decode or encode using a 233ed978f4aSschwarze.Vt BIO 234ed978f4aSschwarzeor 235ed978f4aSschwarze.Vt FILE 236ed978f4aSschwarzepointer. 237ed978f4aSschwarze.Pp 238ed978f4aSschwarze.Fn d2i_TS_STATUS_INFO 239ed978f4aSschwarzeand 240ed978f4aSschwarze.Fn i2d_TS_STATUS_INFO 241ed978f4aSschwarzedecode and encode an ASN.1 242ed978f4aSschwarze.Vt PKIStatusInfo 243ed978f4aSschwarzestructure defined in RFC 3161 section 2.4.2. 244ed978f4aSschwarze.Pp 245ed978f4aSschwarze.Fn d2i_TS_TST_INFO 246ed978f4aSschwarzeand 247ed978f4aSschwarze.Fn i2d_TS_TST_INFO 248ed978f4aSschwarzedecode and encode an ASN.1 249ed978f4aSschwarze.Vt TSTInfo 250ed978f4aSschwarzestructure defined in RFC 3161 section 2.4.2. 251ed978f4aSschwarze.Fn d2i_TS_TST_INFO_bio , 252ed978f4aSschwarze.Fn i2d_TS_TST_INFO_bio , 253ed978f4aSschwarze.Fn d2i_TS_TST_INFO_fp , 254ed978f4aSschwarzeand 255ed978f4aSschwarze.Fn i2d_TS_TST_INFO_fp 256ed978f4aSschwarzeare similar except that they decode or encode using a 257ed978f4aSschwarze.Vt BIO 258ed978f4aSschwarzeor 259ed978f4aSschwarze.Vt FILE 260ed978f4aSschwarzepointer. 261ed978f4aSschwarze.Pp 262ed978f4aSschwarze.Fn d2i_TS_ACCURACY 263ed978f4aSschwarzeand 264ed978f4aSschwarze.Fn i2d_TS_ACCURACY 265ed978f4aSschwarzedecode and encode an ASN.1 266ed978f4aSschwarze.Vt Accuracy 267ed978f4aSschwarzestructure defined in RFC 3161 section 2.4.2. 268ed978f4aSschwarze.Pp 269ed978f4aSschwarze.Fn d2i_TS_MSG_IMPRINT 270ed978f4aSschwarzeand 271ed978f4aSschwarze.Fn i2d_TS_MSG_IMPRINT 272ed978f4aSschwarzedecode and encode an ASN.1 273ed978f4aSschwarze.Vt MessageImprint 274ed978f4aSschwarzestructure defined in RFC 3161 section 2.4.1. 275ed978f4aSschwarze.Fn d2i_TS_MSG_IMPRINT_bio , 276ed978f4aSschwarze.Fn i2d_TS_MSG_IMPRINT_bio , 277ed978f4aSschwarze.Fn d2i_TS_MSG_IMPRINT_fp , 278ed978f4aSschwarzeand 279ed978f4aSschwarze.Fn i2d_TS_MSG_IMPRINT_fp 280ed978f4aSschwarzeare similar except that they decode or encode using a 281ed978f4aSschwarze.Vt BIO 282ed978f4aSschwarzeor 283ed978f4aSschwarze.Vt FILE 284ed978f4aSschwarzepointer. 285ed978f4aSschwarze.Sh RETURN VALUES 286ed978f4aSschwarze.Fn d2i_TS_REQ , 287ed978f4aSschwarze.Fn d2i_TS_REQ_bio , 288ed978f4aSschwarze.Fn d2i_TS_REQ_fp , 289ed978f4aSschwarze.Fn d2i_TS_RESP , 290ed978f4aSschwarze.Fn d2i_TS_RESP_bio , 291ed978f4aSschwarze.Fn d2i_TS_RESP_fp , 292ed978f4aSschwarze.Fn d2i_TS_STATUS_INFO , 293ed978f4aSschwarze.Fn d2i_TS_TST_INFO , 294ed978f4aSschwarze.Fn d2i_TS_TST_INFO_bio , 295ed978f4aSschwarze.Fn d2i_TS_TST_INFO_fp , 296ed978f4aSschwarze.Fn d2i_TS_ACCURACY , 297ed978f4aSschwarze.Fn d2i_TS_MSG_IMPRINT , 298ed978f4aSschwarze.Fn d2i_TS_MSG_IMPRINT_bio , 299ed978f4aSschwarzeand 300ed978f4aSschwarze.Fn d2i_TS_MSG_IMPRINT_fp 301ed978f4aSschwarzereturn an object of the respective type or 302ed978f4aSschwarze.Dv NULL 303ed978f4aSschwarzeif an error occurs. 304ed978f4aSschwarze.Pp 305ed978f4aSschwarze.Fn i2d_TS_REQ , 306ed978f4aSschwarze.Fn i2d_TS_RESP , 307ed978f4aSschwarze.Fn i2d_TS_STATUS_INFO , 308ed978f4aSschwarze.Fn i2d_TS_TST_INFO , 309ed978f4aSschwarze.Fn i2d_TS_ACCURACY , 310ed978f4aSschwarzeand 311ed978f4aSschwarze.Fn i2d_TS_MSG_IMPRINT 312ed978f4aSschwarzereturn the number of bytes successfully encoded or a negative value 313ed978f4aSschwarzeif an error occurs. 314ed978f4aSschwarze.Pp 315ed978f4aSschwarze.Fn i2d_TS_REQ_bio , 316ed978f4aSschwarze.Fn i2d_TS_REQ_fp , 317ed978f4aSschwarze.Fn i2d_TS_RESP_bio , 318ed978f4aSschwarze.Fn i2d_TS_RESP_fp , 319ed978f4aSschwarze.Fn i2d_TS_TST_INFO_bio , 320ed978f4aSschwarze.Fn i2d_TS_TST_INFO_fp , 321ed978f4aSschwarze.Fn i2d_TS_MSG_IMPRINT_bio , 322ed978f4aSschwarzeand 323ed978f4aSschwarze.Fn i2d_TS_MSG_IMPRINT_fp 324ed978f4aSschwarzereturn 1 for success or 0 if an error occurs. 325ed978f4aSschwarze.Sh SEE ALSO 326ed978f4aSschwarze.Xr ASN1_item_d2i 3 , 327ed978f4aSschwarze.Xr TS_REQ_new 3 328ed978f4aSschwarze.Sh STANDARDS 329ed978f4aSschwarzeRFC 3161: Internet X.509 Public Key Infrastructure Time-Stamp Protocol 330*56929f71Sschwarze.Sh HISTORY 331*56929f71SschwarzeThese functions first appeared in OpenSSL 1.0.0 332*56929f71Sschwarzeand have been available since 333*56929f71Sschwarze.Ox 4.9 . 334