xref: /openbsd-src/lib/libcrypto/man/d2i_ECPKParameters.3 (revision 6be8eaa4aeed3e285f5e56355a5887e035395f4e)
1*6be8eaa4Stb.\"	$OpenBSD: d2i_ECPKParameters.3,v 1.13 2024/10/24 21:42:10 tb Exp $
2ec69e6f4Sschwarze.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
38974101aSjmc.\"
49b38278bSschwarze.\" This file is a derived work.
59b38278bSschwarze.\" The changes are covered by the following Copyright and license:
69b38278bSschwarze.\"
79b38278bSschwarze.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
89b38278bSschwarze.\"
99b38278bSschwarze.\" Permission to use, copy, modify, and distribute this software for any
109b38278bSschwarze.\" purpose with or without fee is hereby granted, provided that the above
119b38278bSschwarze.\" copyright notice and this permission notice appear in all copies.
129b38278bSschwarze.\"
139b38278bSschwarze.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
149b38278bSschwarze.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
159b38278bSschwarze.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
169b38278bSschwarze.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
179b38278bSschwarze.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
189b38278bSschwarze.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
199b38278bSschwarze.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
209b38278bSschwarze.\"
219b38278bSschwarze.\" The original file was written by Matt Caswell <matt@openssl.org>.
22ec69e6f4Sschwarze.\" Copyright (c) 2013, 2015 The OpenSSL Project.  All rights reserved.
23ec69e6f4Sschwarze.\"
24ec69e6f4Sschwarze.\" Redistribution and use in source and binary forms, with or without
25ec69e6f4Sschwarze.\" modification, are permitted provided that the following conditions
26ec69e6f4Sschwarze.\" are met:
27ec69e6f4Sschwarze.\"
28ec69e6f4Sschwarze.\" 1. Redistributions of source code must retain the above copyright
29ec69e6f4Sschwarze.\"    notice, this list of conditions and the following disclaimer.
30ec69e6f4Sschwarze.\"
31ec69e6f4Sschwarze.\" 2. Redistributions in binary form must reproduce the above copyright
32ec69e6f4Sschwarze.\"    notice, this list of conditions and the following disclaimer in
33ec69e6f4Sschwarze.\"    the documentation and/or other materials provided with the
34ec69e6f4Sschwarze.\"    distribution.
35ec69e6f4Sschwarze.\"
36ec69e6f4Sschwarze.\" 3. All advertising materials mentioning features or use of this
37ec69e6f4Sschwarze.\"    software must display the following acknowledgment:
38ec69e6f4Sschwarze.\"    "This product includes software developed by the OpenSSL Project
39ec69e6f4Sschwarze.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
40ec69e6f4Sschwarze.\"
41ec69e6f4Sschwarze.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
42ec69e6f4Sschwarze.\"    endorse or promote products derived from this software without
43ec69e6f4Sschwarze.\"    prior written permission. For written permission, please contact
44ec69e6f4Sschwarze.\"    openssl-core@openssl.org.
45ec69e6f4Sschwarze.\"
46ec69e6f4Sschwarze.\" 5. Products derived from this software may not be called "OpenSSL"
47ec69e6f4Sschwarze.\"    nor may "OpenSSL" appear in their names without prior written
48ec69e6f4Sschwarze.\"    permission of the OpenSSL Project.
49ec69e6f4Sschwarze.\"
50ec69e6f4Sschwarze.\" 6. Redistributions of any form whatsoever must retain the following
51ec69e6f4Sschwarze.\"    acknowledgment:
52ec69e6f4Sschwarze.\"    "This product includes software developed by the OpenSSL Project
53ec69e6f4Sschwarze.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
54ec69e6f4Sschwarze.\"
55ec69e6f4Sschwarze.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
56ec69e6f4Sschwarze.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
57ec69e6f4Sschwarze.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
58ec69e6f4Sschwarze.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
59ec69e6f4Sschwarze.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
60ec69e6f4Sschwarze.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
61ec69e6f4Sschwarze.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
62ec69e6f4Sschwarze.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
63ec69e6f4Sschwarze.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
64ec69e6f4Sschwarze.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
65ec69e6f4Sschwarze.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
66ec69e6f4Sschwarze.\" OF THE POSSIBILITY OF SUCH DAMAGE.
67ec69e6f4Sschwarze.\"
68*6be8eaa4Stb.Dd $Mdocdate: October 24 2024 $
69f75054deSschwarze.Dt D2I_ECPKPARAMETERS 3
70f75054deSschwarze.Os
71f75054deSschwarze.Sh NAME
72f75054deSschwarze.Nm d2i_ECPKParameters ,
73f75054deSschwarze.Nm i2d_ECPKParameters ,
74f75054deSschwarze.Nm d2i_ECPKParameters_bio ,
75f75054deSschwarze.Nm i2d_ECPKParameters_bio ,
76f75054deSschwarze.Nm d2i_ECPKParameters_fp ,
77f75054deSschwarze.Nm i2d_ECPKParameters_fp ,
788e9bd067Sschwarze.Nm d2i_ECParameters ,
798e9bd067Sschwarze.Nm i2d_ECParameters ,
808e9bd067Sschwarze.Nm ECParameters_dup ,
818e9bd067Sschwarze.Nm d2i_ECPrivateKey ,
828e9bd067Sschwarze.Nm i2d_ECPrivateKey ,
83edd2fa76Sschwarze.Nm d2i_ECPrivateKey_bio ,
84edd2fa76Sschwarze.Nm i2d_ECPrivateKey_bio ,
85edd2fa76Sschwarze.Nm d2i_ECPrivateKey_fp ,
86edd2fa76Sschwarze.Nm i2d_ECPrivateKey_fp ,
878e9bd067Sschwarze.Nm o2i_ECPublicKey ,
888e9bd067Sschwarze.Nm i2o_ECPublicKey ,
89f75054deSschwarze.Nm ECPKParameters_print ,
908e9bd067Sschwarze.Nm ECPKParameters_print_fp ,
918e9bd067Sschwarze.Nm ECParameters_print ,
92edd2fa76Sschwarze.Nm ECParameters_print_fp ,
93edd2fa76Sschwarze.Nm d2i_EC_PUBKEY ,
94edd2fa76Sschwarze.Nm i2d_EC_PUBKEY ,
95edd2fa76Sschwarze.Nm d2i_EC_PUBKEY_bio ,
96edd2fa76Sschwarze.Nm i2d_EC_PUBKEY_bio ,
97edd2fa76Sschwarze.Nm d2i_EC_PUBKEY_fp ,
98edd2fa76Sschwarze.Nm i2d_EC_PUBKEY_fp
99f75054deSschwarze.Nd decode and encode ASN.1 representations of elliptic curve entities
100f75054deSschwarze.Sh SYNOPSIS
101f75054deSschwarze.In openssl/ec.h
102f75054deSschwarze.Ft EC_GROUP *
103f75054deSschwarze.Fo d2i_ECPKParameters
104edd2fa76Sschwarze.Fa "EC_GROUP **val_out"
105*6be8eaa4Stb.Fa "const unsigned char **der_in"
106edd2fa76Sschwarze.Fa "long length"
107f75054deSschwarze.Fc
108f75054deSschwarze.Ft int
109f75054deSschwarze.Fo i2d_ECPKParameters
110edd2fa76Sschwarze.Fa "const EC_GROUP *val_in"
111*6be8eaa4Stb.Fa "unsigned char **der_out"
112f75054deSschwarze.Fc
1138e9bd067Sschwarze.Ft EC_GROUP *
1148e9bd067Sschwarze.Fo d2i_ECPKParameters_bio
115edd2fa76Sschwarze.Fa "BIO *in_bio"
116edd2fa76Sschwarze.Fa "EC_GROUP **val_out"
1178e9bd067Sschwarze.Fc
1188e9bd067Sschwarze.Ft int
1198e9bd067Sschwarze.Fo i2d_ECPKParameters_bio
120edd2fa76Sschwarze.Fa "BIO *out_bio"
121edd2fa76Sschwarze.Fa "EC_GROUP *val_in"
1228e9bd067Sschwarze.Fc
1238e9bd067Sschwarze.Ft EC_GROUP *
1248e9bd067Sschwarze.Fo d2i_ECPKParameters_fp
125edd2fa76Sschwarze.Fa "FILE *in_fp"
126edd2fa76Sschwarze.Fa "EC_GROUP **val_out"
1278e9bd067Sschwarze.Fc
1288e9bd067Sschwarze.Ft int
1298e9bd067Sschwarze.Fo i2d_ECPKParameters_fp
130edd2fa76Sschwarze.Fa "FILE *out_fp"
131edd2fa76Sschwarze.Fa "EC_GROUP *val_in"
1328e9bd067Sschwarze.Fc
1338e9bd067Sschwarze.Ft EC_KEY *
1348e9bd067Sschwarze.Fo d2i_ECParameters
135edd2fa76Sschwarze.Fa "EC_KEY **val_out"
136*6be8eaa4Stb.Fa "const unsigned char **der_in"
137edd2fa76Sschwarze.Fa "long length"
1388e9bd067Sschwarze.Fc
1398e9bd067Sschwarze.Ft int
1408e9bd067Sschwarze.Fo i2d_ECParameters
141edd2fa76Sschwarze.Fa "EC_KEY *val_in"
142*6be8eaa4Stb.Fa "unsigned char **der_out"
1438e9bd067Sschwarze.Fc
1448e9bd067Sschwarze.Ft EC_KEY *
1458e9bd067Sschwarze.Fo ECParameters_dup
146edd2fa76Sschwarze.Fa "EC_KEY *val_in"
1478e9bd067Sschwarze.Fc
1488e9bd067Sschwarze.Ft EC_KEY *
1498e9bd067Sschwarze.Fo d2i_ECPrivateKey
150edd2fa76Sschwarze.Fa "EC_KEY **val_out"
151*6be8eaa4Stb.Fa "const unsigned char **der_in"
152edd2fa76Sschwarze.Fa "long length"
1538e9bd067Sschwarze.Fc
1548e9bd067Sschwarze.Ft int
1558e9bd067Sschwarze.Fo i2d_ECPrivateKey
156edd2fa76Sschwarze.Fa "EC_KEY *val_in"
157*6be8eaa4Stb.Fa "unsigned char **der_out"
158edd2fa76Sschwarze.Fc
159edd2fa76Sschwarze.Ft EC_KEY *
160edd2fa76Sschwarze.Fo d2i_ECPrivateKey_bio
161edd2fa76Sschwarze.Fa "BIO *in_bio"
162edd2fa76Sschwarze.Fa "EC_KEY **val_out"
163edd2fa76Sschwarze.Fc
164edd2fa76Sschwarze.Ft int
165edd2fa76Sschwarze.Fo i2d_ECPrivateKey_bio
166edd2fa76Sschwarze.Fa "BIO *out_bio"
167edd2fa76Sschwarze.Fa "EC_KEY *val_in"
168edd2fa76Sschwarze.Fc
169edd2fa76Sschwarze.Ft EC_KEY *
170edd2fa76Sschwarze.Fo d2i_ECPrivateKey_fp
171edd2fa76Sschwarze.Fa "FILE *in_fp"
172edd2fa76Sschwarze.Fa "EC_KEY **val_out"
173edd2fa76Sschwarze.Fc
174edd2fa76Sschwarze.Ft int
17530dcf770Sschwarze.Fo i2d_ECPrivateKey_fp
176edd2fa76Sschwarze.Fa "FILE *out_fp"
177edd2fa76Sschwarze.Fa "EC_KEY *val_in"
1788e9bd067Sschwarze.Fc
1798e9bd067Sschwarze.Ft EC_KEY *
1808e9bd067Sschwarze.Fo o2i_ECPublicKey
181edd2fa76Sschwarze.Fa "EC_KEY **val_out"
182*6be8eaa4Stb.Fa "const unsigned char **der_in"
183edd2fa76Sschwarze.Fa "long length"
1848e9bd067Sschwarze.Fc
1858e9bd067Sschwarze.Ft int
1868e9bd067Sschwarze.Fo i2o_ECPublicKey
18762ca6defSschwarze.Fa "const EC_KEY *val_in"
188*6be8eaa4Stb.Fa "unsigned char **der_out"
1898e9bd067Sschwarze.Fc
190f75054deSschwarze.Ft int
191f75054deSschwarze.Fo ECPKParameters_print
192edd2fa76Sschwarze.Fa "BIO *out_bio"
193edd2fa76Sschwarze.Fa "const EC_GROUP *val_in"
194edd2fa76Sschwarze.Fa "int indent"
195f75054deSschwarze.Fc
196f75054deSschwarze.Ft int
197f75054deSschwarze.Fo ECPKParameters_print_fp
198edd2fa76Sschwarze.Fa "FILE *out_fp"
199edd2fa76Sschwarze.Fa "const EC_GROUP *val_in"
200edd2fa76Sschwarze.Fa "int indent"
201f75054deSschwarze.Fc
2028e9bd067Sschwarze.Ft int
2038e9bd067Sschwarze.Fo ECParameters_print
204edd2fa76Sschwarze.Fa "BIO *out_bio"
205edd2fa76Sschwarze.Fa "const EC_KEY *val_in"
2068e9bd067Sschwarze.Fc
2078e9bd067Sschwarze.Ft int
2088e9bd067Sschwarze.Fo ECParameters_print_fp
209edd2fa76Sschwarze.Fa "FILE *out_fp"
210edd2fa76Sschwarze.Fa "const EC_KEY *val_in"
211edd2fa76Sschwarze.Fc
212edd2fa76Sschwarze.In openssl/x509.h
213edd2fa76Sschwarze.Ft EC_KEY *
214edd2fa76Sschwarze.Fo d2i_EC_PUBKEY
215edd2fa76Sschwarze.Fa "EC_KEY **val_out"
216*6be8eaa4Stb.Fa "const unsigned char **der_in"
217edd2fa76Sschwarze.Fa "long length"
218edd2fa76Sschwarze.Fc
219edd2fa76Sschwarze.Ft int
220edd2fa76Sschwarze.Fo i2d_EC_PUBKEY
221edd2fa76Sschwarze.Fa "EC_KEY *val_in"
222*6be8eaa4Stb.Fa "unsigned char **der_out"
223edd2fa76Sschwarze.Fc
224edd2fa76Sschwarze.Ft EC_KEY *
225edd2fa76Sschwarze.Fo d2i_EC_PUBKEY_bio
226edd2fa76Sschwarze.Fa "BIO *in_bio"
227edd2fa76Sschwarze.Fa "EC_KEY **val_out"
228edd2fa76Sschwarze.Fc
229edd2fa76Sschwarze.Ft int
230edd2fa76Sschwarze.Fo i2d_EC_PUBKEY_bio
231edd2fa76Sschwarze.Fa "BIO *out_bio"
232edd2fa76Sschwarze.Fa "EC_KEY *val_in"
233edd2fa76Sschwarze.Fc
234edd2fa76Sschwarze.Ft EC_KEY *
235edd2fa76Sschwarze.Fo d2i_EC_PUBKEY_fp
236edd2fa76Sschwarze.Fa "FILE *in_fp"
237edd2fa76Sschwarze.Fa "EC_KEY **val_out"
238edd2fa76Sschwarze.Fc
239edd2fa76Sschwarze.Ft int
24030dcf770Sschwarze.Fo i2d_EC_PUBKEY_fp
241edd2fa76Sschwarze.Fa "FILE *out_fp"
242edd2fa76Sschwarze.Fa "EC_KEY *val_in"
2438e9bd067Sschwarze.Fc
244f75054deSschwarze.Sh DESCRIPTION
245edd2fa76SschwarzeThese functions decode and encode elliptic curve keys and parameters.
246edd2fa76SschwarzeFor details about the semantics, examples, caveats, and bugs, see
247edd2fa76Sschwarze.Xr ASN1_item_d2i 3 .
248f75054deSschwarze.Pp
249edd2fa76Sschwarze.Fn d2i_ECPKParameters
250edd2fa76Sschwarzeand
251f75054deSschwarze.Fn i2d_ECPKParameters
252edd2fa76Sschwarzedecode and encode the parameters of an elliptic curve.
253edd2fa76Sschwarze.Fn d2i_ECPKParameters_bio ,
254edd2fa76Sschwarze.Fn i2d_ECPKParameters_bio ,
255edd2fa76Sschwarze.Fn d2i_ECPKParameters_fp ,
256edd2fa76Sschwarzeand
257f75054deSschwarze.Fn i2d_ECPKParameters_fp
258edd2fa76Sschwarzeare similar except that they decode or encode using a
259f75054deSschwarze.Vt BIO
260edd2fa76Sschwarzeor
261edd2fa76Sschwarze.Vt FILE
262edd2fa76Sschwarzepointer.
2638e9bd067SschwarzeThese four functions are currently implemented as macros.
2648e9bd067Sschwarze.Pp
2658e9bd067Sschwarze.Fn d2i_ECParameters
2668e9bd067Sschwarzedoes the same parsing as
2678e9bd067Sschwarze.Fn d2i_ECPKParameters
2688e9bd067Sschwarzebut saves the result in the
2698e9bd067Sschwarze.Fa group
2708e9bd067Sschwarzefield of an
2718e9bd067Sschwarze.Vt EC_KEY
2728e9bd067Sschwarzestructure.
2738e9bd067Sschwarze.Pp
2748e9bd067Sschwarze.Fn i2d_ECParameters
2758e9bd067Sschwarzeproduces the same output as
2768e9bd067Sschwarze.Fn i2d_ECPKParameters
2778e9bd067Sschwarzebut uses
278edd2fa76Sschwarze.Fa val_in->group
2798e9bd067Sschwarzefor input instead of
280edd2fa76Sschwarze.Fa val_in .
2818e9bd067Sschwarze.Pp
2828e9bd067Sschwarze.Fn ECParameters_dup
2839b38278bSschwarzeallocates and initializes an empty
2849b38278bSschwarze.Vt EC_KEY
2859b38278bSschwarzeobject and copies the EC parameters from
286edd2fa76Sschwarze.Fa val_in
2879b38278bSschwarzeto it by calling
2888e9bd067Sschwarze.Fn i2d_ECParameters
2898e9bd067Sschwarzeand
2908e9bd067Sschwarze.Fn d2i_ECParameters .
2919b38278bSschwarzeIf a private or public key or any flags are present in
2929b38278bSschwarze.Fa val_in ,
2939b38278bSschwarzethey are not copied.
2948e9bd067Sschwarze.Pp
2958e9bd067Sschwarze.Fn d2i_ECPrivateKey
296edd2fa76Sschwarzeand
2978e9bd067Sschwarze.Fn i2d_ECPrivateKey
2989b38278bSschwarzedecode and encode an EC private key using an ASN.1
2999b38278bSschwarze.Vt ECPrivateKey
3009b38278bSschwarzestructure defined in RFC 5915 section 3 and used for the privateKey
3019b38278bSschwarzefield of the ASN.1
3029b38278bSschwarze.Vt PrivateKeyInfo
3039b38278bSschwarzestructure defined in RFC 5208 section 5, see
3049b38278bSschwarze.Xr PKCS8_PRIV_KEY_INFO_new 3 .
305edd2fa76Sschwarze.Fn d2i_ECPrivateKey_bio ,
306edd2fa76Sschwarze.Fn i2d_ECPrivateKey_bio ,
307edd2fa76Sschwarze.Fn d2i_ECPrivateKey_fp ,
308edd2fa76Sschwarzeand
309edd2fa76Sschwarze.Fn i2d_ECPrivateKey_fp
310edd2fa76Sschwarzeare similar except that they decode or encode using a
311edd2fa76Sschwarze.Vt BIO
312edd2fa76Sschwarzeor
313edd2fa76Sschwarze.Vt FILE
314edd2fa76Sschwarzepointer.
3158e9bd067Sschwarze.Pp
3168e9bd067Sschwarze.Fn o2i_ECPublicKey
317edd2fa76Sschwarzeand
3188e9bd067Sschwarze.Fn i2o_ECPublicKey
319edd2fa76Sschwarzedecode and encode an EC public key.
3209b38278bSschwarzeIn contrast to
3219b38278bSschwarze.Xr ASN1_item_d2i 3 ,
322edd2fa76Sschwarze.Fn o2i_ECPublicKey
3239b38278bSschwarzerequires
3249b38278bSschwarze.Fa val_out ,
3259b38278bSschwarze.Pf * Fa val_out ,
3269b38278bSschwarzeand
3279b38278bSschwarze.Po Pf * Fa val_out Pc Ns -> Ns Fa group
3289b38278bSschwarzeto be
3299b38278bSschwarze.Pf non- Dv NULL .
330f75054deSschwarze.Pp
331f75054deSschwarze.Fn ECPKParameters_print
332f75054deSschwarzeand
333f75054deSschwarze.Fn ECPKParameters_print_fp
334edd2fa76Sschwarzeprint human-readable output of the public parameters of the
335f75054deSschwarze.Vt EC_GROUP
336f75054deSschwarzeto
337edd2fa76Sschwarze.Fa out_bio
338f75054deSschwarzeor
339edd2fa76Sschwarze.Fa out_fp .
340f75054deSschwarzeThe output lines are indented by
341edd2fa76Sschwarze.Fa indent
342f75054deSschwarzespaces.
3438e9bd067Sschwarze.Pp
3448e9bd067Sschwarze.Fn ECParameters_print
3458e9bd067Sschwarzeand
3468e9bd067Sschwarze.Fn ECParameters_print_fp
3478e9bd067Sschwarzeprint the parameter components of
348edd2fa76Sschwarze.Fa val_in
3498e9bd067Sschwarzeto
350edd2fa76Sschwarze.Fa out_bio
3518e9bd067Sschwarzeor
352edd2fa76Sschwarze.Fa out_fp .
353edd2fa76Sschwarze.Pp
354edd2fa76Sschwarze.Fn d2i_EC_PUBKEY
355edd2fa76Sschwarzeand
356edd2fa76Sschwarze.Fn i2d_EC_PUBKEY
3579b38278bSschwarzedecode and encode an EC public key using an ASN.1
3589b38278bSschwarze.Vt SubjectPublicKeyInfo
3599b38278bSschwarzestructure defined in RFC 5280 section 4.1 and documented in
3609b38278bSschwarze.Xr X509_PUBKEY_new 3 .
361edd2fa76Sschwarze.Fn d2i_EC_PUBKEY_bio ,
362edd2fa76Sschwarze.Fn i2d_EC_PUBKEY_bio ,
363edd2fa76Sschwarze.Fn d2i_EC_PUBKEY_fp ,
364edd2fa76Sschwarzeand
365edd2fa76Sschwarze.Fn i2d_EC_PUBKEY_fp
366edd2fa76Sschwarzeare similar except that they decode or encode using a
367edd2fa76Sschwarze.Vt BIO
368edd2fa76Sschwarzeor
369edd2fa76Sschwarze.Vt FILE
370edd2fa76Sschwarzepointer.
371f75054deSschwarze.Sh RETURN VALUES
372f75054deSschwarze.Fn d2i_ECPKParameters ,
373f75054deSschwarze.Fn d2i_ECPKParameters_bio ,
374f75054deSschwarzeand
375f75054deSschwarze.Fn d2i_ECPKParameters_fp
376f75054deSschwarzereturn a valid
377f75054deSschwarze.Vt EC_GROUP
378f75054deSschwarzestructure or
379f75054deSschwarze.Dv NULL
380f75054deSschwarzeif an error occurs.
381f75054deSschwarze.Pp
3828e9bd067Sschwarze.Fn d2i_ECParameters ,
3838e9bd067Sschwarze.Fn ECParameters_dup ,
3848e9bd067Sschwarze.Fn d2i_ECPrivateKey ,
385edd2fa76Sschwarze.Fn d2i_ECPrivateKey_bio ,
386edd2fa76Sschwarze.Fn d2i_ECPrivateKey_fp ,
387edd2fa76Sschwarze.Fn o2i_ECPublicKey ,
388edd2fa76Sschwarze.Fn d2i_EC_PUBKEY ,
389edd2fa76Sschwarze.Fn d2i_EC_PUBKEY_bio ,
3908e9bd067Sschwarzeand
391edd2fa76Sschwarze.Fn d2i_EC_PUBKEY_fp
3928e9bd067Sschwarzereturn a valid
3938e9bd067Sschwarze.Vt EC_KEY
3948e9bd067Sschwarzestructure or
3958e9bd067Sschwarze.Dv NULL
3968e9bd067Sschwarzeif an error occurs.
3978e9bd067Sschwarze.Pp
3988e9bd067Sschwarze.Fn i2d_ECPKParameters ,
3998e9bd067Sschwarze.Fn i2d_ECParameters ,
4008e9bd067Sschwarze.Fn i2d_ECPrivateKey ,
401edd2fa76Sschwarze.Fn i2o_ECPublicKey ,
4028e9bd067Sschwarzeand
403edd2fa76Sschwarze.Fn i2d_EC_PUBKEY
4048e9bd067Sschwarzereturn the number of bytes successfully encoded or a negative value if
405f75054deSschwarzean error occurs.
406f75054deSschwarze.Pp
407f75054deSschwarze.Fn i2d_ECPKParameters_bio ,
408f75054deSschwarze.Fn i2d_ECPKParameters_fp ,
409edd2fa76Sschwarze.Fn i2d_ECPrivateKey_bio ,
41030dcf770Sschwarze.Fn i2d_ECPrivateKey_fp ,
411f75054deSschwarze.Fn ECPKParameters_print ,
4128e9bd067Sschwarze.Fn ECPKParameters_print_fp ,
4138e9bd067Sschwarze.Fn ECParameters_print ,
414edd2fa76Sschwarze.Fn ECParameters_print_fp ,
415edd2fa76Sschwarze.Fn i2d_EC_PUBKEY_bio ,
416f75054deSschwarzeand
41730dcf770Sschwarze.Fn i2d_EC_PUBKEY_fp
418f75054deSschwarzereturn 1 for success or 0 if an error occurs.
419f75054deSschwarze.Sh SEE ALSO
420edd2fa76Sschwarze.Xr ASN1_item_d2i 3 ,
421f75054deSschwarze.Xr EC_GROUP_copy 3 ,
422f75054deSschwarze.Xr EC_GROUP_new 3 ,
423f75054deSschwarze.Xr EC_KEY_new 3 ,
4249b38278bSschwarze.Xr EVP_PKEY_set1_EC_KEY 3 ,
4259b38278bSschwarze.Xr PEM_write_ECPrivateKey 3 ,
4269b38278bSschwarze.Xr PKCS8_PRIV_KEY_INFO_new 3 ,
4279b38278bSschwarze.Xr X509_PUBKEY_new 3
4289b38278bSschwarze.Sh STANDARDS
4299b38278bSschwarzeRFC 5915: Elliptic Curve Private Key Structure
4309b38278bSschwarze.Pp
4319b38278bSschwarzeRFC 5208: Public-Key Cryptography Standards (PKCS) #8:
4329b38278bSschwarzePrivate-Key Information Syntax Specification
4339b38278bSschwarze.Pp
4349b38278bSschwarzeRFC 5280: Internet X.509 Public Key Infrastructure Certificate and
4359b38278bSschwarzeCertificate Revocation List (CRL) Profile,
4369b38278bSschwarzesection 4.1: Basic Certificate Fields
4372c07bb3bSschwarze.Sh HISTORY
4382c07bb3bSschwarze.Fn d2i_ECPKParameters ,
4392c07bb3bSschwarze.Fn i2d_ECPKParameters ,
4402c07bb3bSschwarze.Fn d2i_ECPKParameters_bio ,
4412c07bb3bSschwarze.Fn i2d_ECPKParameters_bio ,
4422c07bb3bSschwarze.Fn d2i_ECPKParameters_fP ,
4432c07bb3bSschwarze.Fn i2d_ECPKParameters_fp ,
4442c07bb3bSschwarze.Fn d2i_ECParameters ,
4452c07bb3bSschwarze.Fn i2d_ECParameters ,
4462c07bb3bSschwarze.Fn ECParameters_dup ,
4472c07bb3bSschwarze.Fn d2i_ECPrivateKey ,
4482c07bb3bSschwarze.Fn i2d_ECPrivateKey ,
4492c07bb3bSschwarze.Fn d2i_ECPrivateKey_bio ,
4502c07bb3bSschwarze.Fn i2d_ECPrivateKey_bio ,
4512c07bb3bSschwarze.Fn d2i_ECPrivateKey_fp ,
4522c07bb3bSschwarze.Fn i2d_ECPrivateKey_fp ,
4532c07bb3bSschwarze.Fn o2i_ECPublicKey ,
4542c07bb3bSschwarze.Fn i2o_ECPublicKey ,
4552c07bb3bSschwarze.Fn ECPKParameters_print ,
4562c07bb3bSschwarze.Fn ECPKParameters_print_fp ,
4572c07bb3bSschwarze.Fn ECParameters_print ,
4582c07bb3bSschwarze.Fn ECParameters_print_fp ,
4592c07bb3bSschwarze.Fn d2i_EC_PUBKEY ,
4602c07bb3bSschwarze.Fn i2d_EC_PUBKEY ,
4612c07bb3bSschwarze.Fn d2i_EC_PUBKEY_bio ,
4622c07bb3bSschwarze.Fn i2d_EC_PUBKEY_bio ,
4632c07bb3bSschwarze.Fn d2i_EC_PUBKEY_fp ,
4642c07bb3bSschwarzeand
4652c07bb3bSschwarze.Fn i2d_EC_PUBKEY_fp
4662c07bb3bSschwarzefirst appeared in OpenSSL 0.9.8 and have been available since
4672c07bb3bSschwarze.Ox 4.5 .
468