1*10e00d17Sschwarze.\" $OpenBSD: d2i_X509_REQ.3,v 1.7 2018/03/27 17:35:50 schwarze Exp $ 2ec69e6f4Sschwarze.\" OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400 38974101aSjmc.\" 4f7db08c4Sschwarze.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org> 5ec69e6f4Sschwarze.\" 6f7db08c4Sschwarze.\" Permission to use, copy, modify, and distribute this software for any 7f7db08c4Sschwarze.\" purpose with or without fee is hereby granted, provided that the above 8f7db08c4Sschwarze.\" copyright notice and this permission notice appear in all copies. 9ec69e6f4Sschwarze.\" 10f7db08c4Sschwarze.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11f7db08c4Sschwarze.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12f7db08c4Sschwarze.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13f7db08c4Sschwarze.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14f7db08c4Sschwarze.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15f7db08c4Sschwarze.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16f7db08c4Sschwarze.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17ec69e6f4Sschwarze.\" 18*10e00d17Sschwarze.Dd $Mdocdate: March 27 2018 $ 19b7f7f640Sschwarze.Dt D2I_X509_REQ 3 20b7f7f640Sschwarze.Os 21b7f7f640Sschwarze.Sh NAME 22b7f7f640Sschwarze.Nm d2i_X509_REQ , 23b7f7f640Sschwarze.Nm i2d_X509_REQ , 24b7f7f640Sschwarze.Nm d2i_X509_REQ_bio , 25b7f7f640Sschwarze.Nm d2i_X509_REQ_fp , 26b7f7f640Sschwarze.Nm i2d_X509_REQ_bio , 27f7db08c4Sschwarze.Nm i2d_X509_REQ_fp , 28f7db08c4Sschwarze.Nm d2i_X509_REQ_INFO , 29f7db08c4Sschwarze.Nm i2d_X509_REQ_INFO 30f7db08c4Sschwarze.Nd decode and encode PKCS#10 certification requests 31b7f7f640Sschwarze.Sh SYNOPSIS 32b7f7f640Sschwarze.In openssl/x509.h 33b7f7f640Sschwarze.Ft X509_REQ * 34b7f7f640Sschwarze.Fo d2i_X509_REQ 35f7db08c4Sschwarze.Fa "X509_REQ **val_out" 36f7db08c4Sschwarze.Fa "const unsigned char **der_in" 37b7f7f640Sschwarze.Fa "long length" 38b7f7f640Sschwarze.Fc 39b7f7f640Sschwarze.Ft int 40b7f7f640Sschwarze.Fo i2d_X509_REQ 41f7db08c4Sschwarze.Fa "X509_REQ *val_in" 42f7db08c4Sschwarze.Fa "unsigned char **der_out" 43b7f7f640Sschwarze.Fc 44b7f7f640Sschwarze.Ft X509_REQ * 45b7f7f640Sschwarze.Fo d2i_X509_REQ_bio 46f7db08c4Sschwarze.Fa "BIO *in_bio" 47f7db08c4Sschwarze.Fa "X509_REQ **val_out" 48b7f7f640Sschwarze.Fc 49b7f7f640Sschwarze.Ft X509_REQ * 50b7f7f640Sschwarze.Fo d2i_X509_REQ_fp 51f7db08c4Sschwarze.Fa "FILE *in_fp" 52f7db08c4Sschwarze.Fa "X509_REQ **val_out" 53b7f7f640Sschwarze.Fc 54b7f7f640Sschwarze.Ft int 55b7f7f640Sschwarze.Fo i2d_X509_REQ_bio 56f7db08c4Sschwarze.Fa "BIO *out_bio" 57f7db08c4Sschwarze.Fa "X509_REQ *val_in" 58b7f7f640Sschwarze.Fc 59b7f7f640Sschwarze.Ft int 60b7f7f640Sschwarze.Fo i2d_X509_REQ_fp 61f7db08c4Sschwarze.Fa "FILE *out_fp" 62f7db08c4Sschwarze.Fa "X509_REQ *val_in" 63f7db08c4Sschwarze.Fc 64f7db08c4Sschwarze.Ft X509_REQ_INFO * 65f7db08c4Sschwarze.Fo d2i_X509_REQ_INFO 66f7db08c4Sschwarze.Fa "X509_REQ_INFO **val_out" 67f7db08c4Sschwarze.Fa "const unsigned char **der_in" 68f7db08c4Sschwarze.Fa "long length" 69f7db08c4Sschwarze.Fc 70f7db08c4Sschwarze.Ft int 71f7db08c4Sschwarze.Fo i2d_X509_REQ_INFO 72f7db08c4Sschwarze.Fa "X509_REQ_INFO *val_in" 73f7db08c4Sschwarze.Fa "unsigned char **der_out" 74b7f7f640Sschwarze.Fc 75b7f7f640Sschwarze.Sh DESCRIPTION 76f7db08c4SschwarzeThese functions decode and encode PKCS#10 certification requests. 77f7db08c4SschwarzeFor details about the semantics, examples, caveats, and bugs, see 78f7db08c4Sschwarze.Xr ASN1_item_d2i 3 . 79f7db08c4Sschwarze.Pp 80f7db08c4Sschwarze.Fn d2i_X509_REQ 81b7f7f640Sschwarzeand 82f7db08c4Sschwarze.Fn i2d_X509_REQ 83f7db08c4Sschwarzedecode and encode an ASN.1 84f7db08c4Sschwarze.Vt CertificationRequest 85f7db08c4Sschwarzestructure defined in RFC 2986 section 4.2. 86f7db08c4Sschwarze.Fn d2i_X509_REQ_bio , 87f7db08c4Sschwarze.Fn d2i_X509_REQ_fp , 88f7db08c4Sschwarze.Fn i2d_X509_REQ_bio , 89f7db08c4Sschwarzeand 90f7db08c4Sschwarze.Fn i2d_X509_REQ_fp 91f7db08c4Sschwarzeare similar except that they decode or encode using a 92f7db08c4Sschwarze.Vt BIO 93f7db08c4Sschwarzeor 94f7db08c4Sschwarze.Vt FILE 95f7db08c4Sschwarzepointer. 96f7db08c4Sschwarze.Pp 97f7db08c4Sschwarze.Fn d2i_X509_REQ_INFO 98f7db08c4Sschwarzeand 99f7db08c4Sschwarze.Fn i2d_X509_REQ_INFO 100f7db08c4Sschwarzedecode and encode an ASN.1 101f7db08c4Sschwarze.Vt CertificationRequestInfo 102f7db08c4Sschwarzestructure defined in RFC 2986 section 4.1. 103f7db08c4Sschwarze.Sh RETURN VALUES 104f7db08c4Sschwarze.Fn d2i_X509_REQ , 105f7db08c4Sschwarze.Fn d2i_X509_REQ_bio , 106f7db08c4Sschwarzeand 107f7db08c4Sschwarze.Fn d2i_X509_REQ_fp 108f7db08c4Sschwarzereturn an 109f7db08c4Sschwarze.Vt X509_REQ 110f7db08c4Sschwarzeobject or 111f7db08c4Sschwarze.Dv NULL 112f7db08c4Sschwarzeif an error occurs. 113f7db08c4Sschwarze.Pp 114f7db08c4Sschwarze.Fn d2i_X509_REQ_INFO 115f7db08c4Sschwarzereturns an 116f7db08c4Sschwarze.Vt X509_REQ_INFO 117f7db08c4Sschwarzeobject or 118f7db08c4Sschwarze.Dv NULL 119f7db08c4Sschwarzeif an error occurs. 120f7db08c4Sschwarze.Pp 121f7db08c4Sschwarze.Fn i2d_X509_REQ 122f7db08c4Sschwarzeand 123f7db08c4Sschwarze.Fn i2d_X509_REQ_INFO 124f7db08c4Sschwarzereturn the number of bytes successfully encoded or a negative value 125f7db08c4Sschwarzeif an error occurs. 126f7db08c4Sschwarze.Pp 127f7db08c4Sschwarze.Fn i2d_X509_REQ_bio 128f7db08c4Sschwarzeand 129f7db08c4Sschwarze.Fn i2d_X509_REQ_fp 130f7db08c4Sschwarzereturn 1 for success or 0 if an error occurs. 131b7f7f640Sschwarze.Sh SEE ALSO 132f7db08c4Sschwarze.Xr ASN1_item_d2i 3 , 133f7db08c4Sschwarze.Xr PEM_read_X509_REQ 3 , 134f7db08c4Sschwarze.Xr X509_REQ_new 3 135f7db08c4Sschwarze.Sh STANDARDS 136f7db08c4SschwarzeRFC 2986: PKCS #10: Certification Request Syntax Specification 137d9d184f2Sschwarze.Sh HISTORY 138d9d184f2Sschwarze.Fn d2i_X509_REQ , 139d9d184f2Sschwarze.Fn i2d_X509_REQ , 140d9d184f2Sschwarze.Fn d2i_X509_REQ_fp , 141d9d184f2Sschwarze.Fn i2d_X509_REQ_fp , 142d9d184f2Sschwarze.Fn d2i_X509_REQ_INFO , 143d9d184f2Sschwarzeand 144d9d184f2Sschwarze.Fn i2d_X509_REQ_INFO 145*10e00d17Sschwarzefirst appeared in SSLeay 0.5.1. 146*10e00d17Sschwarze.Fn d2i_X509_REQ_bio 147*10e00d17Sschwarzeand 148*10e00d17Sschwarze.Fn i2d_X509_REQ_bio 149*10e00d17Sschwarzefirst appeared in SSLeay 0.6.0. 150*10e00d17SschwarzeThese functions have been available since 151d9d184f2Sschwarze.Ox 2.4 . 152