table of contents
- Tumbleweed 4.1.0-1.1
- Leap-16.0
| D2I_ECPKPARAMETERS(3) | Library Functions Manual | D2I_ECPKPARAMETERS(3) |
NAME¶
d2i_ECPKParameters,
i2d_ECPKParameters,
d2i_ECPKParameters_bio,
i2d_ECPKParameters_bio,
d2i_ECPKParameters_fp,
i2d_ECPKParameters_fp,
d2i_ECParameters,
i2d_ECParameters,
ECParameters_dup,
d2i_ECPrivateKey,
i2d_ECPrivateKey,
d2i_ECPrivateKey_bio,
i2d_ECPrivateKey_bio,
d2i_ECPrivateKey_fp,
i2d_ECPrivateKey_fp,
o2i_ECPublicKey,
i2o_ECPublicKey,
ECPKParameters_print,
ECPKParameters_print_fp,
ECParameters_print,
ECParameters_print_fp,
d2i_EC_PUBKEY,
i2d_EC_PUBKEY,
d2i_EC_PUBKEY_bio,
i2d_EC_PUBKEY_bio,
d2i_EC_PUBKEY_fp,
i2d_EC_PUBKEY_fp — decode
and encode ASN.1 representations of elliptic curve entities
SYNOPSIS¶
#include
<openssl/ec.h>
EC_GROUP *
d2i_ECPKParameters(EC_GROUP
**val_out, const unsigned char **der_in,
long length);
int
i2d_ECPKParameters(const EC_GROUP
*val_in, unsigned char **der_out);
EC_GROUP *
d2i_ECPKParameters_bio(BIO
*in_bio, EC_GROUP **val_out);
int
i2d_ECPKParameters_bio(BIO
*out_bio, EC_GROUP *val_in);
EC_GROUP *
d2i_ECPKParameters_fp(FILE
*in_fp, EC_GROUP **val_out);
int
i2d_ECPKParameters_fp(FILE
*out_fp, EC_GROUP *val_in);
EC_KEY *
d2i_ECParameters(EC_KEY
**val_out, const unsigned char **der_in,
long length);
int
i2d_ECParameters(EC_KEY *val_in,
unsigned char **der_out);
EC_KEY *
ECParameters_dup(EC_KEY
*val_in);
EC_KEY *
d2i_ECPrivateKey(EC_KEY
**val_out, const unsigned char **der_in,
long length);
int
i2d_ECPrivateKey(EC_KEY *val_in,
unsigned char **der_out);
EC_KEY *
d2i_ECPrivateKey_bio(BIO
*in_bio, EC_KEY **val_out);
int
i2d_ECPrivateKey_bio(BIO
*out_bio, EC_KEY *val_in);
EC_KEY *
d2i_ECPrivateKey_fp(FILE *in_fp,
EC_KEY **val_out);
int
i2d_ECPrivateKey_fp(FILE
*out_fp, EC_KEY *val_in);
EC_KEY *
o2i_ECPublicKey(EC_KEY
**val_out, const unsigned char **der_in,
long length);
int
i2o_ECPublicKey(const EC_KEY
*val_in, unsigned char **der_out);
int
ECPKParameters_print(BIO
*out_bio, const EC_GROUP *val_in,
int indent);
int
ECPKParameters_print_fp(FILE
*out_fp, const EC_GROUP *val_in,
int indent);
int
ECParameters_print(BIO *out_bio,
const EC_KEY *val_in);
int
ECParameters_print_fp(FILE
*out_fp, const EC_KEY *val_in);
#include
<openssl/x509.h>
EC_KEY *
d2i_EC_PUBKEY(EC_KEY **val_out,
const unsigned char **der_in, long
length);
int
i2d_EC_PUBKEY(EC_KEY *val_in,
unsigned char **der_out);
EC_KEY *
d2i_EC_PUBKEY_bio(BIO *in_bio,
EC_KEY **val_out);
int
i2d_EC_PUBKEY_bio(BIO *out_bio,
EC_KEY *val_in);
EC_KEY *
d2i_EC_PUBKEY_fp(FILE *in_fp,
EC_KEY **val_out);
int
i2d_EC_PUBKEY_fp(FILE *out_fp,
EC_KEY *val_in);
DESCRIPTION¶
These functions decode and encode elliptic curve keys and parameters. For details about the semantics, examples, caveats, and bugs, see ASN1_item_d2i(3).
d2i_ECPKParameters()
and
i2d_ECPKParameters()
decode and encode the parameters of an elliptic curve.
d2i_ECPKParameters_bio(),
i2d_ECPKParameters_bio(),
d2i_ECPKParameters_fp(),
and
i2d_ECPKParameters_fp()
are similar except that they decode or encode using a
BIO or FILE pointer. These four
functions are currently implemented as macros.
d2i_ECParameters()
does the same parsing as d2i_ECPKParameters() but
saves the result in the group field of an
EC_KEY structure.
i2d_ECParameters()
produces the same output as
i2d_ECPKParameters()
but uses val_in->group for input instead of
val_in.
ECParameters_dup()
allocates and initializes an empty EC_KEY object and
copies the EC parameters from val_in to it by calling
i2d_ECParameters() and
d2i_ECParameters(). If a private or public key or
any flags are present in val_in, they are not
copied.
d2i_ECPrivateKey()
and
i2d_ECPrivateKey()
decode and encode an EC private key using an ASN.1
ECPrivateKey structure defined in RFC 5915 section 3
and used for the privateKey field of the ASN.1
PrivateKeyInfo structure defined in RFC 5208 section
5, see PKCS8_PRIV_KEY_INFO_new(3).
d2i_ECPrivateKey_bio(),
i2d_ECPrivateKey_bio(),
d2i_ECPrivateKey_fp(),
and
i2d_ECPrivateKey_fp()
are similar except that they decode or encode using a
BIO or FILE pointer.
o2i_ECPublicKey()
and
i2o_ECPublicKey()
decode and encode an EC public key. In contrast to
ASN1_item_d2i(3),
o2i_ECPublicKey() requires
val_out, *val_out, and
(*val_out)->group to be
non-NULL.
ECPKParameters_print()
and
ECPKParameters_print_fp()
print human-readable output of the public parameters of the
EC_GROUP to out_bio or
out_fp. The output lines are indented by
indent spaces.
ECParameters_print()
and
ECParameters_print_fp()
print the parameter components of val_in to
out_bio or out_fp.
d2i_EC_PUBKEY()
and
i2d_EC_PUBKEY()
decode and encode an EC public key using an ASN.1
SubjectPublicKeyInfo structure defined in RFC 5280
section 4.1 and documented in X509_PUBKEY_new(3).
d2i_EC_PUBKEY_bio(),
i2d_EC_PUBKEY_bio(),
d2i_EC_PUBKEY_fp(),
and
i2d_EC_PUBKEY_fp()
are similar except that they decode or encode using a
BIO or FILE pointer.
RETURN VALUES¶
d2i_ECPKParameters(),
d2i_ECPKParameters_bio(), and
d2i_ECPKParameters_fp() return a valid
EC_GROUP structure or NULL if
an error occurs.
d2i_ECParameters(),
ECParameters_dup(),
d2i_ECPrivateKey(),
d2i_ECPrivateKey_bio(),
d2i_ECPrivateKey_fp(),
o2i_ECPublicKey(),
d2i_EC_PUBKEY(),
d2i_EC_PUBKEY_bio(), and
d2i_EC_PUBKEY_fp() return a valid
EC_KEY structure or NULL if an
error occurs.
i2d_ECPKParameters(),
i2d_ECParameters(),
i2d_ECPrivateKey(),
i2o_ECPublicKey(), and
i2d_EC_PUBKEY() return the number of bytes
successfully encoded or a negative value if an error occurs.
i2d_ECPKParameters_bio(),
i2d_ECPKParameters_fp(),
i2d_ECPrivateKey_bio(),
i2d_ECPrivateKey_fp(),
ECPKParameters_print(),
ECPKParameters_print_fp(),
ECParameters_print(),
ECParameters_print_fp(),
i2d_EC_PUBKEY_bio(), and
i2d_EC_PUBKEY_fp() return 1 for success or 0 if an
error occurs.
SEE ALSO¶
ASN1_item_d2i(3), EC_GROUP_copy(3), EC_GROUP_new(3), EC_KEY_new(3), EVP_PKEY_set1_EC_KEY(3), PEM_write_ECPrivateKey(3), PKCS8_PRIV_KEY_INFO_new(3), X509_PUBKEY_new(3)
STANDARDS¶
RFC 5915: Elliptic Curve Private Key Structure
RFC 5208: Public-Key Cryptography Standards (PKCS) #8: Private-Key Information Syntax Specification
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile, section 4.1: Basic Certificate Fields
HISTORY¶
d2i_ECPKParameters(),
i2d_ECPKParameters(),
d2i_ECPKParameters_bio(),
i2d_ECPKParameters_bio(),
d2i_ECPKParameters_fP(),
i2d_ECPKParameters_fp(),
d2i_ECParameters(),
i2d_ECParameters(),
ECParameters_dup(),
d2i_ECPrivateKey(),
i2d_ECPrivateKey(),
d2i_ECPrivateKey_bio(),
i2d_ECPrivateKey_bio(),
d2i_ECPrivateKey_fp(),
i2d_ECPrivateKey_fp(),
o2i_ECPublicKey(),
i2o_ECPublicKey(),
ECPKParameters_print(),
ECPKParameters_print_fp(),
ECParameters_print(),
ECParameters_print_fp(),
d2i_EC_PUBKEY(),
i2d_EC_PUBKEY(),
d2i_EC_PUBKEY_bio(),
i2d_EC_PUBKEY_bio(),
d2i_EC_PUBKEY_fp(), and
i2d_EC_PUBKEY_fp() first appeared in OpenSSL 0.9.8
and have been available since OpenBSD 4.5.
| October 24, 2024 | Linux 6.4.0-150700.53.16-default |