Macros | Typedefs | Functions | Variables
pem.h File Reference
#include <openssl/base64.h>
#include <openssl/bio.h>
#include <openssl/cipher.h>
#include <openssl/digest.h>
#include <openssl/evp.h>
#include <openssl/pkcs7.h>
#include <openssl/stack.h>
#include <openssl/x509.h>
#include <openssl/crypto.h>
Include dependency graph for pem.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define DECLARE_PEM_read(name, type)
 
#define DECLARE_PEM_read_bio(name, type)
 
#define DECLARE_PEM_read_fp(name, type)
 
#define DECLARE_PEM_rw(name, type)
 
#define DECLARE_PEM_rw_cb(name, type)
 
#define DECLARE_PEM_rw_const(name, type)
 
#define DECLARE_PEM_write(name, type)
 
#define DECLARE_PEM_write_bio(name, type)   OPENSSL_EXPORT int PEM_write_bio_##name(BIO *bp, type *x);
 
#define DECLARE_PEM_write_bio_const(name, type)   OPENSSL_EXPORT int PEM_write_bio_##name(BIO *bp, const type *x);
 
#define DECLARE_PEM_write_cb(name, type)
 
#define DECLARE_PEM_write_cb_bio(name, type)
 
#define DECLARE_PEM_write_cb_fp(name, type)
 
#define DECLARE_PEM_write_const(name, type)
 
#define DECLARE_PEM_write_fp(name, type)   OPENSSL_EXPORT int PEM_write_##name(FILE *fp, type *x);
 
#define DECLARE_PEM_write_fp_const(name, type)   OPENSSL_EXPORT int PEM_write_##name(FILE *fp, const type *x);
 
#define IMPLEMENT_PEM_read(name, type, str, asn1)
 
#define IMPLEMENT_PEM_read_bio(name, type, str, asn1)
 
#define IMPLEMENT_PEM_read_fp(name, type, str, asn1)
 
#define IMPLEMENT_PEM_rw(name, type, str, asn1)
 
#define IMPLEMENT_PEM_rw_cb(name, type, str, asn1)
 
#define IMPLEMENT_PEM_rw_const(name, type, str, asn1)
 
#define IMPLEMENT_PEM_write(name, type, str, asn1)
 
#define IMPLEMENT_PEM_write_bio(name, type, str, asn1)
 
#define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1)
 
#define IMPLEMENT_PEM_write_cb(name, type, str, asn1)
 
#define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1)
 
#define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1)
 
#define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1)
 
#define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1)
 
#define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1)
 
#define IMPLEMENT_PEM_write_const(name, type, str, asn1)
 
#define IMPLEMENT_PEM_write_fp(name, type, str, asn1)
 
#define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1)
 
#define PEM_BUFSIZE   1024
 
#define PEM_R_BAD_BASE64_DECODE   100
 
#define PEM_R_BAD_DECRYPT   101
 
#define PEM_R_BAD_END_LINE   102
 
#define PEM_R_BAD_IV_CHARS   103
 
#define PEM_R_BAD_PASSWORD_READ   104
 
#define PEM_R_CIPHER_IS_NULL   105
 
#define PEM_R_ERROR_CONVERTING_PRIVATE_KEY   106
 
#define PEM_R_NO_START_LINE   110
 
#define PEM_R_NOT_DEK_INFO   107
 
#define PEM_R_NOT_ENCRYPTED   108
 
#define PEM_R_NOT_PROC_TYPE   109
 
#define PEM_R_READ_KEY   111
 
#define PEM_R_SHORT_HEADER   112
 
#define PEM_R_UNSUPPORTED_CIPHER   113
 
#define PEM_R_UNSUPPORTED_ENCRYPTION   114
 
#define PEM_STRING_CMS   "CMS"
 
#define PEM_STRING_DHPARAMS   "DH PARAMETERS"
 
#define PEM_STRING_DSA   "DSA PRIVATE KEY"
 
#define PEM_STRING_DSA_PUBLIC   "DSA PUBLIC KEY"
 
#define PEM_STRING_DSAPARAMS   "DSA PARAMETERS"
 
#define PEM_STRING_EC   "EC PRIVATE KEY"
 
#define PEM_STRING_ECDSA_PUBLIC   "ECDSA PUBLIC KEY"
 
#define PEM_STRING_ECPRIVATEKEY   "EC PRIVATE KEY"
 
#define PEM_STRING_EVP_PKEY   "ANY PRIVATE KEY"
 
#define PEM_STRING_PKCS7   "PKCS7"
 
#define PEM_STRING_PKCS7_SIGNED   "PKCS #7 SIGNED DATA"
 
#define PEM_STRING_PKCS8   "ENCRYPTED PRIVATE KEY"
 
#define PEM_STRING_PKCS8INF   "PRIVATE KEY"
 
#define PEM_STRING_PUBLIC   "PUBLIC KEY"
 
#define PEM_STRING_RSA   "RSA PRIVATE KEY"
 
#define PEM_STRING_RSA_PUBLIC   "RSA PUBLIC KEY"
 
#define PEM_STRING_SSL_SESSION   "SSL SESSION PARAMETERS"
 
#define PEM_STRING_X509   "CERTIFICATE"
 
#define PEM_STRING_X509_CRL   "X509 CRL"
 
#define PEM_STRING_X509_OLD   "X509 CERTIFICATE"
 
#define PEM_STRING_X509_PAIR   "CERTIFICATE PAIR"
 
#define PEM_STRING_X509_REQ   "CERTIFICATE REQUEST"
 
#define PEM_STRING_X509_REQ_OLD   "NEW CERTIFICATE REQUEST"
 
#define PEM_STRING_X509_TRUSTED   "TRUSTED CERTIFICATE"
 
#define PEM_TYPE_CLEAR   40
 
#define PEM_TYPE_ENCRYPTED   10
 
#define PEM_TYPE_MIC_CLEAR   30
 
#define PEM_TYPE_MIC_ONLY   20
 

Typedefs

typedef int pem_password_cb(char *buf, int size, int rwflag, void *userdata)
 

Functions

OPENSSL_EXPORT EVP_PKEYd2i_PKCS8PrivateKey_bio (BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u)
 
OPENSSL_EXPORT EVP_PKEYd2i_PKCS8PrivateKey_fp (FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u)
 
X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DECLARE_PEM_rw (DSA_PUBKEY, DSA) DECLARE_PEM_rw_const(DSAparams
 
X509 X509_REQ PKCS7 DECLARE_PEM_rw (PKCS8, X509_SIG) DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO
 
X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DSA EC_KEY EVP_PKEY DECLARE_PEM_rw (PUBKEY, EVP_PKEY) OPENSSL_EXPORT int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp
 
X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DECLARE_PEM_rw (RSA_PUBKEY, RSA) DECLARE_PEM_rw_cb(DSAPrivateKey
 
 DECLARE_PEM_rw (X509, X509) DECLARE_PEM_rw(X509_AUX
 
X509 X509_REQ DECLARE_PEM_rw (X509_CRL, X509_CRL) DECLARE_PEM_rw(PKCS7
 
X509 DECLARE_PEM_rw (X509_REQ, X509_REQ) DECLARE_PEM_write(X509_REQ_NEW
 
X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DSA DECLARE_PEM_rw_cb (ECPrivateKey, EC_KEY) DECLARE_PEM_rw(EC_PUBKEY
 
X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO DECLARE_PEM_rw_cb (RSAPrivateKey, RSA) DECLARE_PEM_rw_const(RSAPublicKey
 
X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DSA EC_KEY DECLARE_PEM_rw_const (DHparams, DH) DECLARE_PEM_rw_cb(PrivateKey
 
OPENSSL_EXPORT int i2d_PKCS8PrivateKey_bio (BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, char *kstr, int klen, pem_password_cb *cb, void *u)
 
OPENSSL_EXPORT int i2d_PKCS8PrivateKey_fp (FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, char *kstr, int klen, pem_password_cb *cb, void *u)
 
OPENSSL_EXPORT int i2d_PKCS8PrivateKey_nid_bio (BIO *bp, EVP_PKEY *x, int nid, char *kstr, int klen, pem_password_cb *cb, void *u)
 
OPENSSL_EXPORT int i2d_PKCS8PrivateKey_nid_fp (FILE *fp, EVP_PKEY *x, int nid, char *kstr, int klen, pem_password_cb *cb, void *u)
 
OPENSSL_EXPORT void * PEM_ASN1_read (d2i_of_void *d2i, const char *name, FILE *fp, void **x, pem_password_cb *cb, void *u)
 
OPENSSL_EXPORT void * PEM_ASN1_read_bio (d2i_of_void *d2i, const char *name, BIO *bp, void **x, pem_password_cb *cb, void *u)
 
OPENSSL_EXPORT int PEM_ASN1_write (i2d_of_void *i2d, const char *name, FILE *fp, void *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *callback, void *u)
 
OPENSSL_EXPORT int PEM_ASN1_write_bio (i2d_of_void *i2d, const char *name, BIO *bp, void *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u)
 
OPENSSL_EXPORT int PEM_bytes_read_bio (unsigned char **pdata, long *plen, char **pnm, const char *name, BIO *bp, pem_password_cb *cb, void *u)
 
OPENSSL_EXPORT int PEM_def_callback (char *buf, int size, int rwflag, void *userdata)
 
OPENSSL_EXPORT void PEM_dek_info (char *buf, const char *type, int len, char *str)
 
OPENSSL_EXPORT int PEM_do_header (EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, pem_password_cb *callback, void *u)
 
OPENSSL_EXPORT int PEM_get_EVP_CIPHER_INFO (char *header, EVP_CIPHER_INFO *cipher)
 
OPENSSL_EXPORT void PEM_proc_type (char *buf, int type)
 
OPENSSL_EXPORT int PEM_read (FILE *fp, char **name, char **header, unsigned char **data, long *len)
 
OPENSSL_EXPORT int PEM_read_bio (BIO *bp, char **name, char **header, unsigned char **data, long *len)
 
OPENSSL_EXPORT int PEM_write (FILE *fp, const char *name, const char *hdr, const unsigned char *data, long len)
 
OPENSSL_EXPORT int PEM_write_bio (BIO *bp, const char *name, const char *hdr, const unsigned char *data, long len)
 
OPENSSL_EXPORT int PEM_write_bio_PKCS8PrivateKey (BIO *, EVP_PKEY *, const EVP_CIPHER *, char *, int, pem_password_cb *, void *)
 
OPENSSL_EXPORT int PEM_write_PKCS8PrivateKey (FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, char *kstr, int klen, pem_password_cb *cd, void *u)
 
OPENSSL_EXPORT int PEM_write_PKCS8PrivateKey_nid (FILE *fp, EVP_PKEY *x, int nid, char *kstr, int klen, pem_password_cb *cb, void *u)
 
OPENSSL_EXPORT int PEM_X509_INFO_write_bio (BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cd, void *u)
 
OPENSSL_EXPORT STACK_OF (X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp
 

Variables

OPENSSL_EXPORT pem_password_cbcb
 
X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DSA EC_KEY EVP_PKEY EVP_PKEY int char int klen
 
X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DSA EC_KEY EVP_PKEY EVP_PKEY int char * kstr
 
X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DSA EC_KEY EVP_PKEY EVP_PKEY int nid
 
OPENSSL_EXPORT pem_password_cb void * u
 
X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DSA EC_KEY EVP_PKEY EVP_PKEYx
 

Macro Definition Documentation

◆ DECLARE_PEM_read

#define DECLARE_PEM_read (   name,
  type 
)
Value:
DECLARE_PEM_read_fp(name, type)

Definition at line 296 of file pem.h.

◆ DECLARE_PEM_read_bio

#define DECLARE_PEM_read_bio (   name,
  type 
)
Value:
OPENSSL_EXPORT type *PEM_read_bio_##name(BIO *bp, type **x, \
pem_password_cb *cb, void *u);

Definition at line 268 of file pem.h.

◆ DECLARE_PEM_read_fp

#define DECLARE_PEM_read_fp (   name,
  type 
)
Value:
OPENSSL_EXPORT type *PEM_read_##name(FILE *fp, type **x, \
pem_password_cb *cb, void *u);

Definition at line 253 of file pem.h.

◆ DECLARE_PEM_rw

#define DECLARE_PEM_rw (   name,
  type 
)
Value:
DECLARE_PEM_write(name, type)

Definition at line 300 of file pem.h.

◆ DECLARE_PEM_rw_cb

#define DECLARE_PEM_rw_cb (   name,
  type 
)
Value:
DECLARE_PEM_write_cb(name, type)

Definition at line 308 of file pem.h.

◆ DECLARE_PEM_rw_const

#define DECLARE_PEM_rw_const (   name,
  type 
)
Value:
DECLARE_PEM_write_const(name, type)

Definition at line 304 of file pem.h.

◆ DECLARE_PEM_write

#define DECLARE_PEM_write (   name,
  type 
)
Value:
DECLARE_PEM_write_fp(name, type)

Definition at line 284 of file pem.h.

◆ DECLARE_PEM_write_bio

#define DECLARE_PEM_write_bio (   name,
  type 
)    OPENSSL_EXPORT int PEM_write_bio_##name(BIO *bp, type *x);

Definition at line 272 of file pem.h.

◆ DECLARE_PEM_write_bio_const

#define DECLARE_PEM_write_bio_const (   name,
  type 
)    OPENSSL_EXPORT int PEM_write_bio_##name(BIO *bp, const type *x);

Definition at line 275 of file pem.h.

◆ DECLARE_PEM_write_cb

#define DECLARE_PEM_write_cb (   name,
  type 
)
Value:
DECLARE_PEM_write_cb_fp(name, type)

Definition at line 292 of file pem.h.

◆ DECLARE_PEM_write_cb_bio

#define DECLARE_PEM_write_cb_bio (   name,
  type 
)
Value:
OPENSSL_EXPORT int PEM_write_bio_##name( \
BIO *bp, type *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, \
pem_password_cb *cb, void *u);

Definition at line 278 of file pem.h.

◆ DECLARE_PEM_write_cb_fp

#define DECLARE_PEM_write_cb_fp (   name,
  type 
)
Value:
OPENSSL_EXPORT int PEM_write_##name( \
FILE *fp, type *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, \
pem_password_cb *cb, void *u);

Definition at line 263 of file pem.h.

◆ DECLARE_PEM_write_const

#define DECLARE_PEM_write_const (   name,
  type 
)
Value:
DECLARE_PEM_write_fp_const(name, type)

Definition at line 288 of file pem.h.

◆ DECLARE_PEM_write_fp

#define DECLARE_PEM_write_fp (   name,
  type 
)    OPENSSL_EXPORT int PEM_write_##name(FILE *fp, type *x);

Definition at line 257 of file pem.h.

◆ DECLARE_PEM_write_fp_const

#define DECLARE_PEM_write_fp_const (   name,
  type 
)    OPENSSL_EXPORT int PEM_write_##name(FILE *fp, const type *x);

Definition at line 260 of file pem.h.

◆ IMPLEMENT_PEM_read

#define IMPLEMENT_PEM_read (   name,
  type,
  str,
  asn1 
)
Value:
IMPLEMENT_PEM_read_fp(name, type, str, asn1)

Definition at line 235 of file pem.h.

◆ IMPLEMENT_PEM_read_bio

#define IMPLEMENT_PEM_read_bio (   name,
  type,
  str,
  asn1 
)
Value:
static void *pem_read_bio_##name##_d2i(void **x, const unsigned char **inp, \
long len) { \
return d2i_##asn1((type **)x, inp, len); \
} \
OPENSSL_EXPORT type *PEM_read_bio_##name(BIO *bp, type **x, \
pem_password_cb *cb, void *u) { \
return (type *)PEM_ASN1_read_bio(pem_read_bio_##name##_d2i, str, bp, \
(void **)x, cb, u); \
}

Definition at line 168 of file pem.h.

◆ IMPLEMENT_PEM_read_fp

#define IMPLEMENT_PEM_read_fp (   name,
  type,
  str,
  asn1 
)
Value:
static void *pem_read_##name##_d2i(void **x, const unsigned char **inp, \
long len) { \
return d2i_##asn1((type **)x, inp, len); \
} \
OPENSSL_EXPORT type *PEM_read_##name(FILE *fp, type **x, \
pem_password_cb *cb, void *u) { \
return (type *)PEM_ASN1_read(pem_read_##name##_d2i, str, fp, (void **)x, \
cb, u); \
}

Definition at line 116 of file pem.h.

◆ IMPLEMENT_PEM_rw

#define IMPLEMENT_PEM_rw (   name,
  type,
  str,
  asn1 
)
Value:
IMPLEMENT_PEM_write(name, type, str, asn1)

Definition at line 239 of file pem.h.

◆ IMPLEMENT_PEM_rw_cb

#define IMPLEMENT_PEM_rw_cb (   name,
  type,
  str,
  asn1 
)
Value:
IMPLEMENT_PEM_write_cb(name, type, str, asn1)

Definition at line 247 of file pem.h.

◆ IMPLEMENT_PEM_rw_const

#define IMPLEMENT_PEM_rw_const (   name,
  type,
  str,
  asn1 
)
Value:
IMPLEMENT_PEM_write_const(name, type, str, asn1)

Definition at line 243 of file pem.h.

◆ IMPLEMENT_PEM_write

#define IMPLEMENT_PEM_write (   name,
  type,
  str,
  asn1 
)
Value:
IMPLEMENT_PEM_write_fp(name, type, str, asn1)

Definition at line 219 of file pem.h.

◆ IMPLEMENT_PEM_write_bio

#define IMPLEMENT_PEM_write_bio (   name,
  type,
  str,
  asn1 
)
Value:
static int pem_write_bio_##name##_i2d(const void *x, unsigned char **outp) { \
return i2d_##asn1((type *)x, outp); \
} \
OPENSSL_EXPORT int PEM_write_bio_##name(BIO *bp, type *x) { \
return PEM_ASN1_write_bio(pem_write_bio_##name##_i2d, str, bp, x, NULL, \
NULL, 0, NULL, NULL); \
}

Definition at line 179 of file pem.h.

◆ IMPLEMENT_PEM_write_bio_const

#define IMPLEMENT_PEM_write_bio_const (   name,
  type,
  str,
  asn1 
)
Value:
static int pem_write_bio_##name##_i2d(const void *x, unsigned char **outp) { \
return i2d_##asn1((const type *)x, outp); \
} \
OPENSSL_EXPORT int PEM_write_bio_##name(BIO *bp, const type *x) { \
return PEM_ASN1_write_bio(pem_write_bio_##name##_i2d, str, bp, (void *)x, \
NULL, NULL, 0, NULL, NULL); \
}

Definition at line 188 of file pem.h.

◆ IMPLEMENT_PEM_write_cb

#define IMPLEMENT_PEM_write_cb (   name,
  type,
  str,
  asn1 
)
Value:
IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1)

Definition at line 227 of file pem.h.

◆ IMPLEMENT_PEM_write_cb_bio

#define IMPLEMENT_PEM_write_cb_bio (   name,
  type,
  str,
  asn1 
)
Value:
static int pem_write_bio_##name##_i2d(const void *x, unsigned char **outp) { \
return i2d_##asn1((type *)x, outp); \
} \
OPENSSL_EXPORT int PEM_write_bio_##name( \
BIO *bp, type *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, \
pem_password_cb *cb, void *u) { \
return PEM_ASN1_write_bio(pem_write_bio_##name##_i2d, str, bp, x, enc, \
kstr, klen, cb, u); \
}

Definition at line 197 of file pem.h.

◆ IMPLEMENT_PEM_write_cb_bio_const

#define IMPLEMENT_PEM_write_cb_bio_const (   name,
  type,
  str,
  asn1 
)
Value:
static int pem_write_bio_##name##_i2d(const void *x, unsigned char **outp) { \
return i2d_##asn1((const type *)x, outp); \
} \
OPENSSL_EXPORT int PEM_write_bio_##name( \
BIO *bp, type *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, \
pem_password_cb *cb, void *u) { \
return PEM_ASN1_write_bio(pem_write_bio_##name##_i2d, str, bp, (void *)x, \
enc, kstr, klen, cb, u); \
}

Definition at line 208 of file pem.h.

◆ IMPLEMENT_PEM_write_cb_const

#define IMPLEMENT_PEM_write_cb_const (   name,
  type,
  str,
  asn1 
)
Value:
IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1)

Definition at line 231 of file pem.h.

◆ IMPLEMENT_PEM_write_cb_fp

#define IMPLEMENT_PEM_write_cb_fp (   name,
  type,
  str,
  asn1 
)
Value:
static int pem_write_##name##_i2d(const void *x, unsigned char **outp) { \
return i2d_##asn1((type *)x, outp); \
} \
OPENSSL_EXPORT int PEM_write_##name( \
FILE *fp, type *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, \
pem_password_cb *cb, void *u) { \
return PEM_ASN1_write(pem_write_##name##_i2d, str, fp, x, enc, kstr, klen, \
cb, u); \
}

Definition at line 145 of file pem.h.

◆ IMPLEMENT_PEM_write_cb_fp_const

#define IMPLEMENT_PEM_write_cb_fp_const (   name,
  type,
  str,
  asn1 
)
Value:
static int pem_write_##name##_i2d(const void *x, unsigned char **outp) { \
return i2d_##asn1((const type *)x, outp); \
} \
OPENSSL_EXPORT int PEM_write_##name( \
FILE *fp, type *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, \
pem_password_cb *cb, void *u) { \
return PEM_ASN1_write(pem_write_##name##_i2d, str, fp, x, enc, kstr, klen, \
cb, u); \
}

Definition at line 156 of file pem.h.

◆ IMPLEMENT_PEM_write_const

#define IMPLEMENT_PEM_write_const (   name,
  type,
  str,
  asn1 
)
Value:
IMPLEMENT_PEM_write_fp_const(name, type, str, asn1)

Definition at line 223 of file pem.h.

◆ IMPLEMENT_PEM_write_fp

#define IMPLEMENT_PEM_write_fp (   name,
  type,
  str,
  asn1 
)
Value:
static int pem_write_##name##_i2d(const void *x, unsigned char **outp) { \
return i2d_##asn1((type *)x, outp); \
} \
OPENSSL_EXPORT int PEM_write_##name(FILE *fp, type *x) { \
return PEM_ASN1_write(pem_write_##name##_i2d, str, fp, x, NULL, NULL, 0, \
NULL, NULL); \
}

Definition at line 127 of file pem.h.

◆ IMPLEMENT_PEM_write_fp_const

#define IMPLEMENT_PEM_write_fp_const (   name,
  type,
  str,
  asn1 
)
Value:
static int pem_write_##name##_i2d(const void *x, unsigned char **outp) { \
return i2d_##asn1((const type *)x, outp); \
} \
OPENSSL_EXPORT int PEM_write_##name(FILE *fp, const type *x) { \
return PEM_ASN1_write(pem_write_##name##_i2d, str, fp, (void *)x, NULL, \
NULL, 0, NULL, NULL); \
}

Definition at line 136 of file pem.h.

◆ PEM_BUFSIZE

#define PEM_BUFSIZE   1024

Definition at line 78 of file pem.h.

◆ PEM_R_BAD_BASE64_DECODE

#define PEM_R_BAD_BASE64_DECODE   100

Definition at line 467 of file pem.h.

◆ PEM_R_BAD_DECRYPT

#define PEM_R_BAD_DECRYPT   101

Definition at line 468 of file pem.h.

◆ PEM_R_BAD_END_LINE

#define PEM_R_BAD_END_LINE   102

Definition at line 469 of file pem.h.

◆ PEM_R_BAD_IV_CHARS

#define PEM_R_BAD_IV_CHARS   103

Definition at line 470 of file pem.h.

◆ PEM_R_BAD_PASSWORD_READ

#define PEM_R_BAD_PASSWORD_READ   104

Definition at line 471 of file pem.h.

◆ PEM_R_CIPHER_IS_NULL

#define PEM_R_CIPHER_IS_NULL   105

Definition at line 472 of file pem.h.

◆ PEM_R_ERROR_CONVERTING_PRIVATE_KEY

#define PEM_R_ERROR_CONVERTING_PRIVATE_KEY   106

Definition at line 473 of file pem.h.

◆ PEM_R_NO_START_LINE

#define PEM_R_NO_START_LINE   110

Definition at line 477 of file pem.h.

◆ PEM_R_NOT_DEK_INFO

#define PEM_R_NOT_DEK_INFO   107

Definition at line 474 of file pem.h.

◆ PEM_R_NOT_ENCRYPTED

#define PEM_R_NOT_ENCRYPTED   108

Definition at line 475 of file pem.h.

◆ PEM_R_NOT_PROC_TYPE

#define PEM_R_NOT_PROC_TYPE   109

Definition at line 476 of file pem.h.

◆ PEM_R_READ_KEY

#define PEM_R_READ_KEY   111

Definition at line 478 of file pem.h.

◆ PEM_R_SHORT_HEADER

#define PEM_R_SHORT_HEADER   112

Definition at line 479 of file pem.h.

◆ PEM_R_UNSUPPORTED_CIPHER

#define PEM_R_UNSUPPORTED_CIPHER   113

Definition at line 480 of file pem.h.

◆ PEM_R_UNSUPPORTED_ENCRYPTION

#define PEM_R_UNSUPPORTED_ENCRYPTION   114

Definition at line 481 of file pem.h.

◆ PEM_STRING_CMS

#define PEM_STRING_CMS   "CMS"

Definition at line 103 of file pem.h.

◆ PEM_STRING_DHPARAMS

#define PEM_STRING_DHPARAMS   "DH PARAMETERS"

Definition at line 98 of file pem.h.

◆ PEM_STRING_DSA

#define PEM_STRING_DSA   "DSA PRIVATE KEY"

Definition at line 91 of file pem.h.

◆ PEM_STRING_DSA_PUBLIC

#define PEM_STRING_DSA_PUBLIC   "DSA PUBLIC KEY"

Definition at line 92 of file pem.h.

◆ PEM_STRING_DSAPARAMS

#define PEM_STRING_DSAPARAMS   "DSA PARAMETERS"

Definition at line 100 of file pem.h.

◆ PEM_STRING_EC

#define PEM_STRING_EC   "EC PRIVATE KEY"

Definition at line 93 of file pem.h.

◆ PEM_STRING_ECDSA_PUBLIC

#define PEM_STRING_ECDSA_PUBLIC   "ECDSA PUBLIC KEY"

Definition at line 101 of file pem.h.

◆ PEM_STRING_ECPRIVATEKEY

#define PEM_STRING_ECPRIVATEKEY   "EC PRIVATE KEY"

Definition at line 102 of file pem.h.

◆ PEM_STRING_EVP_PKEY

#define PEM_STRING_EVP_PKEY   "ANY PRIVATE KEY"

Definition at line 87 of file pem.h.

◆ PEM_STRING_PKCS7

#define PEM_STRING_PKCS7   "PKCS7"

Definition at line 94 of file pem.h.

◆ PEM_STRING_PKCS7_SIGNED

#define PEM_STRING_PKCS7_SIGNED   "PKCS #7 SIGNED DATA"

Definition at line 95 of file pem.h.

◆ PEM_STRING_PKCS8

#define PEM_STRING_PKCS8   "ENCRYPTED PRIVATE KEY"

Definition at line 96 of file pem.h.

◆ PEM_STRING_PKCS8INF

#define PEM_STRING_PKCS8INF   "PRIVATE KEY"

Definition at line 97 of file pem.h.

◆ PEM_STRING_PUBLIC

#define PEM_STRING_PUBLIC   "PUBLIC KEY"

Definition at line 88 of file pem.h.

◆ PEM_STRING_RSA

#define PEM_STRING_RSA   "RSA PRIVATE KEY"

Definition at line 89 of file pem.h.

◆ PEM_STRING_RSA_PUBLIC

#define PEM_STRING_RSA_PUBLIC   "RSA PUBLIC KEY"

Definition at line 90 of file pem.h.

◆ PEM_STRING_SSL_SESSION

#define PEM_STRING_SSL_SESSION   "SSL SESSION PARAMETERS"

Definition at line 99 of file pem.h.

◆ PEM_STRING_X509

#define PEM_STRING_X509   "CERTIFICATE"

Definition at line 81 of file pem.h.

◆ PEM_STRING_X509_CRL

#define PEM_STRING_X509_CRL   "X509 CRL"

Definition at line 86 of file pem.h.

◆ PEM_STRING_X509_OLD

#define PEM_STRING_X509_OLD   "X509 CERTIFICATE"

Definition at line 80 of file pem.h.

◆ PEM_STRING_X509_PAIR

#define PEM_STRING_X509_PAIR   "CERTIFICATE PAIR"

Definition at line 82 of file pem.h.

◆ PEM_STRING_X509_REQ

#define PEM_STRING_X509_REQ   "CERTIFICATE REQUEST"

Definition at line 85 of file pem.h.

◆ PEM_STRING_X509_REQ_OLD

#define PEM_STRING_X509_REQ_OLD   "NEW CERTIFICATE REQUEST"

Definition at line 84 of file pem.h.

◆ PEM_STRING_X509_TRUSTED

#define PEM_STRING_X509_TRUSTED   "TRUSTED CERTIFICATE"

Definition at line 83 of file pem.h.

◆ PEM_TYPE_CLEAR

#define PEM_TYPE_CLEAR   40

Definition at line 109 of file pem.h.

◆ PEM_TYPE_ENCRYPTED

#define PEM_TYPE_ENCRYPTED   10

Definition at line 106 of file pem.h.

◆ PEM_TYPE_MIC_CLEAR

#define PEM_TYPE_MIC_CLEAR   30

Definition at line 108 of file pem.h.

◆ PEM_TYPE_MIC_ONLY

#define PEM_TYPE_MIC_ONLY   20

Definition at line 107 of file pem.h.

Typedef Documentation

◆ pem_password_cb

typedef int pem_password_cb(char *buf, int size, int rwflag, void *userdata)

Definition at line 313 of file pem.h.

Function Documentation

◆ d2i_PKCS8PrivateKey_bio()

OPENSSL_EXPORT EVP_PKEY* d2i_PKCS8PrivateKey_bio ( BIO bp,
EVP_PKEY **  x,
pem_password_cb cb,
void *  u 
)

Definition at line 155 of file pem_pk8.c.

◆ d2i_PKCS8PrivateKey_fp()

OPENSSL_EXPORT EVP_PKEY* d2i_PKCS8PrivateKey_fp ( FILE *  fp,
EVP_PKEY **  x,
pem_password_cb cb,
void *  u 
)

Definition at line 236 of file pem_pk8.c.

◆ DECLARE_PEM_rw() [1/7]

X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DECLARE_PEM_rw ( DSA_PUBKEY  ,
DSA   
)

◆ DECLARE_PEM_rw() [2/7]

X509 X509_REQ PKCS7 DECLARE_PEM_rw ( PKCS8  ,
X509_SIG   
)

◆ DECLARE_PEM_rw() [3/7]

X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DSA EC_KEY EVP_PKEY DECLARE_PEM_rw ( PUBKEY  ,
EVP_PKEY   
)

◆ DECLARE_PEM_rw() [4/7]

X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DECLARE_PEM_rw ( RSA_PUBKEY  ,
RSA   
)

◆ DECLARE_PEM_rw() [5/7]

DECLARE_PEM_rw ( X509  ,
X509   
)

◆ DECLARE_PEM_rw() [6/7]

X509 X509_REQ DECLARE_PEM_rw ( X509_CRL  ,
X509_CRL   
)

◆ DECLARE_PEM_rw() [7/7]

X509 DECLARE_PEM_rw ( X509_REQ  ,
X509_REQ   
)

◆ DECLARE_PEM_rw_cb() [1/2]

X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DSA DECLARE_PEM_rw_cb ( ECPrivateKey  ,
EC_KEY   
)

◆ DECLARE_PEM_rw_cb() [2/2]

X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO DECLARE_PEM_rw_cb ( RSAPrivateKey  ,
RSA   
)

◆ DECLARE_PEM_rw_const()

X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DSA EC_KEY DECLARE_PEM_rw_const ( DHparams  ,
DH   
)

◆ i2d_PKCS8PrivateKey_bio()

OPENSSL_EXPORT int i2d_PKCS8PrivateKey_bio ( BIO bp,
EVP_PKEY x,
const EVP_CIPHER enc,
char *  kstr,
int  klen,
pem_password_cb cb,
void *  u 
)

Definition at line 95 of file pem_pk8.c.

◆ i2d_PKCS8PrivateKey_fp()

OPENSSL_EXPORT int i2d_PKCS8PrivateKey_fp ( FILE *  fp,
EVP_PKEY x,
const EVP_CIPHER enc,
char *  kstr,
int  klen,
pem_password_cb cb,
void *  u 
)

Definition at line 194 of file pem_pk8.c.

◆ i2d_PKCS8PrivateKey_nid_bio()

OPENSSL_EXPORT int i2d_PKCS8PrivateKey_nid_bio ( BIO bp,
EVP_PKEY x,
int  nid,
char *  kstr,
int  klen,
pem_password_cb cb,
void *  u 
)

Definition at line 102 of file pem_pk8.c.

◆ i2d_PKCS8PrivateKey_nid_fp()

OPENSSL_EXPORT int i2d_PKCS8PrivateKey_nid_fp ( FILE *  fp,
EVP_PKEY x,
int  nid,
char *  kstr,
int  klen,
pem_password_cb cb,
void *  u 
)

Definition at line 200 of file pem_pk8.c.

◆ PEM_ASN1_read()

OPENSSL_EXPORT void* PEM_ASN1_read ( d2i_of_void d2i,
const char *  name,
FILE *  fp,
void **  x,
pem_password_cb cb,
void *  u 
)

Definition at line 120 of file pem_lib.c.

◆ PEM_ASN1_read_bio()

OPENSSL_EXPORT void* PEM_ASN1_read_bio ( d2i_of_void d2i,
const char *  name,
BIO bp,
void **  x,
pem_password_cb cb,
void *  u 
)

Definition at line 71 of file pem_oth.c.

◆ PEM_ASN1_write()

OPENSSL_EXPORT int PEM_ASN1_write ( i2d_of_void i2d,
const char *  name,
FILE *  fp,
void *  x,
const EVP_CIPHER enc,
unsigned char *  kstr,
int  klen,
pem_password_cb callback,
void *  u 
)

Definition at line 253 of file pem_lib.c.

◆ PEM_ASN1_write_bio()

OPENSSL_EXPORT int PEM_ASN1_write_bio ( i2d_of_void i2d,
const char *  name,
BIO bp,
void *  x,
const EVP_CIPHER enc,
unsigned char *  kstr,
int  klen,
pem_password_cb cb,
void *  u 
)

Definition at line 267 of file pem_lib.c.

◆ PEM_bytes_read_bio()

OPENSSL_EXPORT int PEM_bytes_read_bio ( unsigned char **  pdata,
long plen,
char **  pnm,
const char *  name,
BIO bp,
pem_password_cb cb,
void *  u 
)

Definition at line 206 of file pem_lib.c.

◆ PEM_def_callback()

OPENSSL_EXPORT int PEM_def_callback ( char *  buf,
int  size,
int  rwflag,
void *  userdata 
)

Definition at line 758 of file pem_lib.c.

◆ PEM_dek_info()

OPENSSL_EXPORT void PEM_dek_info ( char *  buf,
const char *  type,
int  len,
char *  str 
)

Definition at line 100 of file pem_lib.c.

◆ PEM_do_header()

OPENSSL_EXPORT int PEM_do_header ( EVP_CIPHER_INFO cipher,
unsigned char *  data,
long len,
pem_password_cb callback,
void *  u 
)

Definition at line 365 of file pem_lib.c.

◆ PEM_get_EVP_CIPHER_INFO()

OPENSSL_EXPORT int PEM_get_EVP_CIPHER_INFO ( char *  header,
EVP_CIPHER_INFO cipher 
)

Definition at line 411 of file pem_lib.c.

◆ PEM_proc_type()

OPENSSL_EXPORT void PEM_proc_type ( char *  buf,
int  type 
)

Definition at line 82 of file pem_lib.c.

◆ PEM_read()

OPENSSL_EXPORT int PEM_read ( FILE *  fp,
char **  name,
char **  header,
unsigned char **  data,
long len 
)

Definition at line 575 of file pem_lib.c.

◆ PEM_read_bio()

OPENSSL_EXPORT int PEM_read_bio ( BIO bp,
char **  name,
char **  header,
unsigned char **  data,
long len 
)

Definition at line 588 of file pem_lib.c.

◆ PEM_write()

OPENSSL_EXPORT int PEM_write ( FILE *  fp,
const char *  name,
const char *  hdr,
const unsigned char *  data,
long  len 
)

Definition at line 506 of file pem_lib.c.

◆ PEM_write_bio()

OPENSSL_EXPORT int PEM_write_bio ( BIO bp,
const char *  name,
const char *  hdr,
const unsigned char *  data,
long  len 
)

Definition at line 519 of file pem_lib.c.

◆ PEM_write_bio_PKCS8PrivateKey()

OPENSSL_EXPORT int PEM_write_bio_PKCS8PrivateKey ( BIO ,
EVP_PKEY ,
const EVP_CIPHER ,
char *  ,
int  ,
pem_password_cb ,
void *   
)

Definition at line 88 of file pem_pk8.c.

◆ PEM_write_PKCS8PrivateKey()

OPENSSL_EXPORT int PEM_write_PKCS8PrivateKey ( FILE *  fp,
EVP_PKEY x,
const EVP_CIPHER enc,
char *  kstr,
int  klen,
pem_password_cb cd,
void *  u 
)

Definition at line 214 of file pem_pk8.c.

◆ PEM_write_PKCS8PrivateKey_nid()

OPENSSL_EXPORT int PEM_write_PKCS8PrivateKey_nid ( FILE *  fp,
EVP_PKEY x,
int  nid,
char *  kstr,
int  klen,
pem_password_cb cb,
void *  u 
)

Definition at line 207 of file pem_pk8.c.

◆ PEM_X509_INFO_write_bio()

OPENSSL_EXPORT int PEM_X509_INFO_write_bio ( BIO bp,
X509_INFO xi,
EVP_CIPHER enc,
unsigned char *  kstr,
int  klen,
pem_password_cb cd,
void *  u 
)

Definition at line 275 of file pem_info.c.

◆ STACK_OF()

OPENSSL_EXPORT STACK_OF ( X509_INFO  )

Variable Documentation

◆ cb

Definition at line 351 of file pem.h.

◆ klen

Definition at line 426 of file pem.h.

◆ kstr

Definition at line 425 of file pem.h.

◆ nid

Definition at line 425 of file pem.h.

◆ u

Definition at line 351 of file pem.h.

◆ x

Definition at line 424 of file pem.h.

xds_interop_client.str
str
Definition: xds_interop_client.py:487
IMPLEMENT_PEM_read_bio
#define IMPLEMENT_PEM_read_bio(name, type, str, asn1)
Definition: pem.h:168
bio_st
Definition: bio.h:822
kstr
X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DSA EC_KEY EVP_PKEY EVP_PKEY int char * kstr
Definition: pem.h:425
regen-readme.inp
inp
Definition: regen-readme.py:11
IMPLEMENT_PEM_write_bio_const
#define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1)
Definition: pem.h:188
PEM_ASN1_write_bio
OPENSSL_EXPORT int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u)
Definition: pem_lib.c:267
u
OPENSSL_EXPORT pem_password_cb void * u
Definition: pem.h:351
setup.name
name
Definition: setup.py:542
pem_password_cb
int pem_password_cb(char *buf, int size, int rwflag, void *userdata)
Definition: pem.h:313
x
X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DSA EC_KEY EVP_PKEY EVP_PKEY * x
Definition: pem.h:424
PEM_ASN1_read
OPENSSL_EXPORT void * PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, pem_password_cb *cb, void *u)
Definition: pem_lib.c:120
evp_cipher_st
Definition: cipher.h:585
DECLARE_PEM_read_bio
#define DECLARE_PEM_read_bio(name, type)
Definition: pem.h:268
IMPLEMENT_PEM_write_cb_bio
#define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1)
Definition: pem.h:197
DECLARE_PEM_write_cb_bio
#define DECLARE_PEM_write_cb_bio(name, type)
Definition: pem.h:278
PEM_ASN1_write
OPENSSL_EXPORT int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, void *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *callback, void *u)
Definition: pem_lib.c:253
DECLARE_PEM_write_bio
#define DECLARE_PEM_write_bio(name, type)
Definition: pem.h:272
PEM_ASN1_read_bio
OPENSSL_EXPORT void * PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x, pem_password_cb *cb, void *u)
Definition: pem_oth.c:71
DECLARE_PEM_read
#define DECLARE_PEM_read(name, type)
Definition: pem.h:296
IMPLEMENT_PEM_read
#define IMPLEMENT_PEM_read(name, type, str, asn1)
Definition: pem.h:235
benchmark.FILE
FILE
Definition: benchmark.py:21
IMPLEMENT_PEM_write_cb_bio_const
#define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1)
Definition: pem.h:208
OPENSSL_EXPORT
#define OPENSSL_EXPORT
Definition: base.h:222
IMPLEMENT_PEM_write_bio
#define IMPLEMENT_PEM_write_bio(name, type, str, asn1)
Definition: pem.h:179
asyncio_get_stats.type
type
Definition: asyncio_get_stats.py:37
len
int len
Definition: abseil-cpp/absl/base/internal/low_level_alloc_test.cc:46
DECLARE_PEM_write_bio_const
#define DECLARE_PEM_write_bio_const(name, type)
Definition: pem.h:275
klen
X509 X509_REQ PKCS7 PKCS8_PRIV_KEY_INFO RSA DSA DSA EC_KEY EVP_PKEY EVP_PKEY int char int klen
Definition: pem.h:426
cb
OPENSSL_EXPORT pem_password_cb * cb
Definition: pem.h:351


grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:25