pem.h revision 656d9c7f52f88b3a3daccafa7655dec086c4756e
1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* crypto/pem/pem.h */ 2656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * All rights reserved. 4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This package is an SSL implementation written 6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * by Eric Young (eay@cryptsoft.com). 7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * The implementation was written so as to conform with Netscapes SSL. 8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This library is free for commercial and non-commercial use as long as 10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the following conditions are aheared to. The following conditions 11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * apply to all code found in this distribution, be it the RC4, RSA, 12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * lhash, DES, etc., code; not just the SSL code. The SSL documentation 13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * included with this distribution is covered by the same copyright terms 14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * except that the holder is Tim Hudson (tjh@cryptsoft.com). 15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Copyright remains Eric Young's, and as such any Copyright notices in 17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the code are not to be removed. 18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * If this package is used in a product, Eric Young should be given attribution 19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * as the author of the parts of the library used. 20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This can be in the form of a textual message at program startup or 21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * in documentation (online or textual) provided with the package. 22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Redistribution and use in source and binary forms, with or without 24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * modification, are permitted provided that the following conditions 25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * are met: 26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 1. Redistributions of source code must retain the copyright 27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer. 28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer in the 30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * documentation and/or other materials provided with the distribution. 31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 3. All advertising materials mentioning features or use of this software 32656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * must display the following acknowledgement: 33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes cryptographic software written by 34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Eric Young (eay@cryptsoft.com)" 35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * The word 'cryptographic' can be left out if the rouines from the library 36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * being used are not cryptographic related :-). 37656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 4. If you include any Windows specific code (or a derivative thereof) from 38656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the apps directory (application code) you must include an acknowledgement: 39656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 47656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 49656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * SUCH DAMAGE. 52656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 53656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * The licence and distribution terms for any publically available version or 54656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * derivative of this code cannot be changed. i.e. this code cannot simply be 55656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * copied and put under another distribution licence 56656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * [including the GNU Public Licence.] 57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 58656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 59656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef HEADER_PEM_H 60656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HEADER_PEM_H 61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 62656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/e_os2.h> 63656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_BIO 64656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/bio.h> 65656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 66656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_STACK 67656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/stack.h> 68656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 69656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/evp.h> 70656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/x509.h> 71656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/pem2.h> 72656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 73656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef __cplusplus 74656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectextern "C" { 75656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 76656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 77656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_BUFSIZE 1024 78656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 79656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_UNDEF 0 80656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_X509 1 81656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_X509_REQ 2 82656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_CRL 3 83656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_SSL_SESSION 4 84656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_PRIV_KEY 10 85656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_PRIV_RSA 11 86656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_PRIV_DSA 12 87656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_PRIV_DH 13 88656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_PUB_RSA 14 89656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_PUB_DSA 15 90656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_PUB_DH 16 91656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_DHPARAMS 17 92656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_DSAPARAMS 18 93656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_PRIV_RSA_PUBLIC 19 94656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_PRIV_ECDSA 20 95656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_PUB_ECDSA 21 96656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_OBJ_ECPARAMETERS 22 97656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 98656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_ERROR 30 99656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_DEK_DES_CBC 40 100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_DEK_IDEA_CBC 45 101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_DEK_DES_EDE 50 102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_DEK_DES_ECB 60 103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_DEK_RSA 70 104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_DEK_RSA_MD2 80 105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_DEK_RSA_MD5 90 106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_MD_MD2 NID_md2 108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_MD_MD5 NID_md5 109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_MD_SHA NID_sha 110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_MD_MD2_RSA NID_md2WithRSAEncryption 111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_MD_MD5_RSA NID_md5WithRSAEncryption 112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_MD_SHA_RSA NID_sha1WithRSAEncryption 113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_X509_OLD "X509 CERTIFICATE" 115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_X509 "CERTIFICATE" 116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_X509_PAIR "CERTIFICATE PAIR" 117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_X509_TRUSTED "TRUSTED CERTIFICATE" 118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_X509_REQ_OLD "NEW CERTIFICATE REQUEST" 119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_X509_REQ "CERTIFICATE REQUEST" 120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_X509_CRL "X509 CRL" 121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_EVP_PKEY "ANY PRIVATE KEY" 122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_PUBLIC "PUBLIC KEY" 123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_RSA "RSA PRIVATE KEY" 124656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_RSA_PUBLIC "RSA PUBLIC KEY" 125656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_DSA "DSA PRIVATE KEY" 126656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_DSA_PUBLIC "DSA PUBLIC KEY" 127656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_PKCS7 "PKCS7" 128656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY" 129656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_PKCS8INF "PRIVATE KEY" 130656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_DHPARAMS "DH PARAMETERS" 131656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS" 132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_DSAPARAMS "DSA PARAMETERS" 133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY" 134656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_ECPARAMETERS "EC PARAMETERS" 135656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY" 136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_CMS "CMS" 137656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 138656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Note that this structure is initialised by PEM_SealInit and cleaned up 139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project by PEM_SealFinal (at least for now) */ 140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct PEM_Encode_Seal_st 141656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 142656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_ENCODE_CTX encode; 143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_MD_CTX md; 144656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_CIPHER_CTX cipher; 145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } PEM_ENCODE_SEAL_CTX; 146656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 147656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* enc_type is one off */ 148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_TYPE_ENCRYPTED 10 149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_TYPE_MIC_ONLY 20 150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_TYPE_MIC_CLEAR 30 151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_TYPE_CLEAR 40 152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct pem_recip_st 154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *name; 156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509_NAME *dn; 157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int cipher; 159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int key_enc; 160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* char iv[8]; unused and wrong size */ 161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } PEM_USER; 162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct pem_ctx_st 164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int type; /* what type of object */ 166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project struct { 168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int version; 169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int mode; 170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } proc_type; 171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *domain; 173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project struct { 175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int cipher; 176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* unused, and wrong size 177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char iv[8]; */ 178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } DEK_info; 179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_USER *originator; 181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int num_recipient; 183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_USER **recipient; 184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_STACK 186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STACK *x509_chain; /* certificate chain */ 187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 188656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *x509_chain; /* certificate chain */ 189656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_MD *md; /* signature type */ 191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int md_enc; /* is the md encrypted or not? */ 193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int md_len; /* length of md_data */ 194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *md_data; /* message digest, could be pkey encrypted */ 195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_CIPHER *dec; /* date encryption cipher */ 197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int key_len; /* key length */ 198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *key; /* key */ 199656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* unused, and wrong size 200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char iv[8]; */ 201656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int data_enc; /* is the data encrypted */ 204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int data_len; 205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *data; 206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } PEM_CTX; 207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* These macros make the PEM_read/PEM_write functions easier to maintain and 209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * write. Now they are all implemented with either: 210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * IMPLEMENT_PEM_rw(...) or IMPLEMENT_PEM_rw_cb(...) 211656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 213656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef OPENSSL_NO_FP_API 214656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/ 216656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/ 217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) /**/ 218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \ 222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttype *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\ 223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ \ 224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return (type*)PEM_ASN1_read(CHECKED_D2I_OF(type, d2i_##asn1), \ 225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str, fp, \ 226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CHECKED_PPTR_OF(type, x), \ 227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cb, u); \ 228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 229656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 230656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \ 231656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_##name(FILE *fp, type *x) \ 232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ \ 233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return PEM_ASN1_write(CHECKED_I2D_OF(type, i2d_##asn1), \ 234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str, fp, \ 235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CHECKED_PTR_OF(type, x), \ 236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project NULL, NULL, 0, NULL, NULL); \ 237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \ 240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_##name(FILE *fp, const type *x) \ 241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ \ 242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return PEM_ASN1_write(CHECKED_I2D_OF(const type, i2d_##asn1), \ 243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str, fp, \ 244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CHECKED_PTR_OF(const type, x), \ 245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project NULL, NULL, 0, NULL, NULL); \ 246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \ 249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ 250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *kstr, int klen, pem_password_cb *cb, \ 251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project void *u) \ 252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { \ 253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return PEM_ASN1_write(CHECKED_I2D_OF(type, i2d_##asn1), \ 254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str, fp, \ 255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CHECKED_PTR_OF(type, x), \ 256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project enc, kstr, klen, cb, u); \ 257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 259656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \ 260656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ 261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *kstr, int klen, pem_password_cb *cb, \ 262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project void *u) \ 263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { \ 264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return PEM_ASN1_write(CHECKED_I2D_OF(const type, i2d_##asn1), \ 265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str, fp, \ 266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CHECKED_PTR_OF(const type, x), \ 267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project enc, kstr, klen, cb, u); \ 268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ 273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttype *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\ 274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ \ 275656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return (type*)PEM_ASN1_read_bio(CHECKED_D2I_OF(type, d2i_##asn1), \ 276656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str, bp, \ 277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CHECKED_PPTR_OF(type, x), \ 278656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cb, u); \ 279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 280656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 281656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ 282656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_bio_##name(BIO *bp, type *x) \ 283656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ \ 284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return PEM_ASN1_write_bio(CHECKED_I2D_OF(type, i2d_##asn1), \ 285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str, bp, \ 286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CHECKED_PTR_OF(type, x), \ 287656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project NULL, NULL, 0, NULL, NULL); \ 288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 289656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ 291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_bio_##name(BIO *bp, const type *x) \ 292656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ \ 293656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return PEM_ASN1_write_bio(CHECKED_I2D_OF(const type, i2d_##asn1), \ 294656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str, bp, \ 295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CHECKED_PTR_OF(const type, x), \ 296656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project NULL, NULL, 0, NULL, NULL); \ 297656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 298656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 299656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ 300656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ 301656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ 302656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { \ 303656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return PEM_ASN1_write_bio(CHECKED_I2D_OF(type, i2d_##asn1), \ 304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str, bp, \ 305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CHECKED_PTR_OF(type, x), \ 306656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project enc, kstr, klen, cb, u); \ 307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 308656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 309656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ 310656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ 311656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ 312656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { \ 313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return PEM_ASN1_write_bio(CHECKED_I2D_OF(const type, i2d_##asn1), \ 314656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str, bp, \ 315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CHECKED_PTR_OF(const type, x), \ 316656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project enc, kstr, klen, cb, u); \ 317656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 318656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 319656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write(name, type, str, asn1) \ 320656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ 321656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_fp(name, type, str, asn1) 322656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_const(name, type, str, asn1) \ 324656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ 325656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) 326656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 327656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \ 328656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ 329656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) 330656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 331656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \ 332656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ 333656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) 334656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 335656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_read(name, type, str, asn1) \ 336656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ 337656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_read_fp(name, type, str, asn1) 338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 339656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_rw(name, type, str, asn1) \ 340656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_read(name, type, str, asn1) \ 341656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write(name, type, str, asn1) 342656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 343656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \ 344656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_read(name, type, str, asn1) \ 345656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_const(name, type, str, asn1) 346656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 347656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \ 348656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_read(name, type, str, asn1) \ 349656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_cb(name, type, str, asn1) 350656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 351656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* These are the same except they are for the declarations */ 352656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 353656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(OPENSSL_SYS_WIN16) || defined(OPENSSL_NO_FP_API) 354656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 355656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_read_fp(name, type) /**/ 356656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_fp(name, type) /**/ 357656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_cb_fp(name, type) /**/ 358656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 359656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 360656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 361656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_read_fp(name, type) \ 362656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u); 363656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 364656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_fp(name, type) \ 365656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int PEM_write_##name(FILE *fp, type *x); 366656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 367656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_fp_const(name, type) \ 368656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int PEM_write_##name(FILE *fp, const type *x); 369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 370656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_cb_fp(name, type) \ 371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ 372656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *kstr, int klen, pem_password_cb *cb, void *u); 373656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 374656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 375656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 376656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_BIO 377656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_read_bio(name, type) \ 378656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u); 379656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 380656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_bio(name, type) \ 381656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int PEM_write_bio_##name(BIO *bp, type *x); 382656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 383656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_bio_const(name, type) \ 384656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int PEM_write_bio_##name(BIO *bp, const type *x); 385656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 386656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_cb_bio(name, type) \ 387656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ 388656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *kstr, int klen, pem_password_cb *cb, void *u); 389656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 390656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 391656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 392656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_read_bio(name, type) /**/ 393656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_bio(name, type) /**/ 394656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_cb_bio(name, type) /**/ 395656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 396656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 397656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 398656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write(name, type) \ 399656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_bio(name, type) \ 400656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_fp(name, type) 401656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 402656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_const(name, type) \ 403656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_bio_const(name, type) \ 404656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_fp_const(name, type) 405656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 406656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_cb(name, type) \ 407656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_cb_bio(name, type) \ 408656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_cb_fp(name, type) 409656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 410656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_read(name, type) \ 411656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_read_bio(name, type) \ 412656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_read_fp(name, type) 413656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 414656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_rw(name, type) \ 415656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_read(name, type) \ 416656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write(name, type) 417656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 418656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_rw_const(name, type) \ 419656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_read(name, type) \ 420656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_const(name, type) 421656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 422656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_rw_cb(name, type) \ 423656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_read(name, type) \ 424656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_cb(name, type) 425656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 426656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef SSLEAY_MACROS 427656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 428656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_SSL_SESSION(fp,x) \ 429656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write((int (*)())i2d_SSL_SESSION, \ 430656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_STRING_SSL_SESSION,fp, (char *)x, NULL,NULL,0,NULL,NULL) 431656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_X509(fp,x) \ 432656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write((int (*)())i2d_X509,PEM_STRING_X509,fp, \ 433656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *)x, NULL,NULL,0,NULL,NULL) 434656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_X509_REQ(fp,x) PEM_ASN1_write( \ 435656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (int (*)())i2d_X509_REQ,PEM_STRING_X509_REQ,fp,(char *)x, \ 436656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project NULL,NULL,0,NULL,NULL) 437656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_X509_CRL(fp,x) \ 438656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write((int (*)())i2d_X509_CRL,PEM_STRING_X509_CRL, \ 439656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project fp,(char *)x, NULL,NULL,0,NULL,NULL) 440656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_RSAPrivateKey(fp,x,enc,kstr,klen,cb,u) \ 441656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write((int (*)())i2d_RSAPrivateKey,PEM_STRING_RSA,fp,\ 442656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *)x,enc,kstr,klen,cb,u) 443656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_RSAPublicKey(fp,x) \ 444656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write((int (*)())i2d_RSAPublicKey,\ 445656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_STRING_RSA_PUBLIC,fp,(char *)x,NULL,NULL,0,NULL,NULL) 446656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_DSAPrivateKey(fp,x,enc,kstr,klen,cb,u) \ 447656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write((int (*)())i2d_DSAPrivateKey,PEM_STRING_DSA,fp,\ 448656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *)x,enc,kstr,klen,cb,u) 449656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_PrivateKey(bp,x,enc,kstr,klen,cb,u) \ 450656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write((int (*)())i2d_PrivateKey,\ 451656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (((x)->type == EVP_PKEY_DSA)?PEM_STRING_DSA:PEM_STRING_RSA),\ 452656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bp,(char *)x,enc,kstr,klen,cb,u) 453656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_PKCS7(fp,x) \ 454656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write((int (*)())i2d_PKCS7,PEM_STRING_PKCS7,fp, \ 455656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *)x, NULL,NULL,0,NULL,NULL) 456656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_DHparams(fp,x) \ 457656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write((int (*)())i2d_DHparams,PEM_STRING_DHPARAMS,fp,\ 458656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *)x,NULL,NULL,0,NULL,NULL) 459656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 460656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_NETSCAPE_CERT_SEQUENCE(fp,x) \ 461656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write((int (*)())i2d_NETSCAPE_CERT_SEQUENCE, \ 462656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_STRING_X509,fp, \ 463656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *)x, NULL,NULL,0,NULL,NULL) 464656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 465656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_SSL_SESSION(fp,x,cb,u) (SSL_SESSION *)PEM_ASN1_read( \ 466656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_SSL_SESSION,PEM_STRING_SSL_SESSION,fp,(char **)x,cb,u) 467656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_X509(fp,x,cb,u) (X509 *)PEM_ASN1_read( \ 468656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_X509,PEM_STRING_X509,fp,(char **)x,cb,u) 469656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_X509_REQ(fp,x,cb,u) (X509_REQ *)PEM_ASN1_read( \ 470656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_X509_REQ,PEM_STRING_X509_REQ,fp,(char **)x,cb,u) 471656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_X509_CRL(fp,x,cb,u) (X509_CRL *)PEM_ASN1_read( \ 472656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_X509_CRL,PEM_STRING_X509_CRL,fp,(char **)x,cb,u) 473656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_RSAPrivateKey(fp,x,cb,u) (RSA *)PEM_ASN1_read( \ 474656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_RSAPrivateKey,PEM_STRING_RSA,fp,(char **)x,cb,u) 475656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_RSAPublicKey(fp,x,cb,u) (RSA *)PEM_ASN1_read( \ 476656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_RSAPublicKey,PEM_STRING_RSA_PUBLIC,fp,(char **)x,cb,u) 477656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_DSAPrivateKey(fp,x,cb,u) (DSA *)PEM_ASN1_read( \ 478656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_DSAPrivateKey,PEM_STRING_DSA,fp,(char **)x,cb,u) 479656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_PrivateKey(fp,x,cb,u) (EVP_PKEY *)PEM_ASN1_read( \ 480656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_PrivateKey,PEM_STRING_EVP_PKEY,fp,(char **)x,cb,u) 481656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_PKCS7(fp,x,cb,u) (PKCS7 *)PEM_ASN1_read( \ 482656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_PKCS7,PEM_STRING_PKCS7,fp,(char **)x,cb,u) 483656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_DHparams(fp,x,cb,u) (DH *)PEM_ASN1_read( \ 484656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_DHparams,PEM_STRING_DHPARAMS,fp,(char **)x,cb,u) 485656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 486656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_NETSCAPE_CERT_SEQUENCE(fp,x,cb,u) \ 487656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (NETSCAPE_CERT_SEQUENCE *)PEM_ASN1_read( \ 488656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_NETSCAPE_CERT_SEQUENCE,PEM_STRING_X509,fp,\ 489656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char **)x,cb,u) 490656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 491656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_bio_X509(bp,x) \ 492656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write_bio((int (*)())i2d_X509,PEM_STRING_X509,bp, \ 493656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *)x, NULL,NULL,0,NULL,NULL) 494656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_bio_X509_REQ(bp,x) PEM_ASN1_write_bio( \ 495656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (int (*)())i2d_X509_REQ,PEM_STRING_X509_REQ,bp,(char *)x, \ 496656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project NULL,NULL,0,NULL,NULL) 497656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_bio_X509_CRL(bp,x) \ 498656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write_bio((int (*)())i2d_X509_CRL,PEM_STRING_X509_CRL,\ 499656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bp,(char *)x, NULL,NULL,0,NULL,NULL) 500656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_bio_RSAPrivateKey(bp,x,enc,kstr,klen,cb,u) \ 501656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write_bio((int (*)())i2d_RSAPrivateKey,PEM_STRING_RSA,\ 502656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bp,(char *)x,enc,kstr,klen,cb,u) 503656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_bio_RSAPublicKey(bp,x) \ 504656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write_bio((int (*)())i2d_RSAPublicKey, \ 505656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_STRING_RSA_PUBLIC,\ 506656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bp,(char *)x,NULL,NULL,0,NULL,NULL) 507656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_bio_DSAPrivateKey(bp,x,enc,kstr,klen,cb,u) \ 508656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write_bio((int (*)())i2d_DSAPrivateKey,PEM_STRING_DSA,\ 509656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bp,(char *)x,enc,kstr,klen,cb,u) 510656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_bio_PrivateKey(bp,x,enc,kstr,klen,cb,u) \ 511656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write_bio((int (*)())i2d_PrivateKey,\ 512656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (((x)->type == EVP_PKEY_DSA)?PEM_STRING_DSA:PEM_STRING_RSA),\ 513656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bp,(char *)x,enc,kstr,klen,cb,u) 514656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_bio_PKCS7(bp,x) \ 515656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write_bio((int (*)())i2d_PKCS7,PEM_STRING_PKCS7,bp, \ 516656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *)x, NULL,NULL,0,NULL,NULL) 517656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_bio_DHparams(bp,x) \ 518656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write_bio((int (*)())i2d_DHparams,PEM_STRING_DHPARAMS,\ 519656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bp,(char *)x,NULL,NULL,0,NULL,NULL) 520656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_bio_DSAparams(bp,x) \ 521656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write_bio((int (*)())i2d_DSAparams, \ 522656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_STRING_DSAPARAMS,bp,(char *)x,NULL,NULL,0,NULL,NULL) 523656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 524656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_bio_NETSCAPE_CERT_SEQUENCE(bp,x) \ 525656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write_bio((int (*)())i2d_NETSCAPE_CERT_SEQUENCE, \ 526656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_STRING_X509,bp, \ 527656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *)x, NULL,NULL,0,NULL,NULL) 528656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 529656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_bio_X509(bp,x,cb,u) (X509 *)PEM_ASN1_read_bio( \ 530656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_X509,PEM_STRING_X509,bp,(char **)x,cb,u) 531656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_bio_X509_REQ(bp,x,cb,u) (X509_REQ *)PEM_ASN1_read_bio( \ 532656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_X509_REQ,PEM_STRING_X509_REQ,bp,(char **)x,cb,u) 533656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_bio_X509_CRL(bp,x,cb,u) (X509_CRL *)PEM_ASN1_read_bio( \ 534656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_X509_CRL,PEM_STRING_X509_CRL,bp,(char **)x,cb,u) 535656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_bio_RSAPrivateKey(bp,x,cb,u) (RSA *)PEM_ASN1_read_bio( \ 536656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_RSAPrivateKey,PEM_STRING_RSA,bp,(char **)x,cb,u) 537656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_bio_RSAPublicKey(bp,x,cb,u) (RSA *)PEM_ASN1_read_bio( \ 538656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_RSAPublicKey,PEM_STRING_RSA_PUBLIC,bp,(char **)x,cb,u) 539656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_bio_DSAPrivateKey(bp,x,cb,u) (DSA *)PEM_ASN1_read_bio( \ 540656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_DSAPrivateKey,PEM_STRING_DSA,bp,(char **)x,cb,u) 541656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_bio_PrivateKey(bp,x,cb,u) (EVP_PKEY *)PEM_ASN1_read_bio( \ 542656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_PrivateKey,PEM_STRING_EVP_PKEY,bp,(char **)x,cb,u) 543656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 544656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_bio_PKCS7(bp,x,cb,u) (PKCS7 *)PEM_ASN1_read_bio( \ 545656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_PKCS7,PEM_STRING_PKCS7,bp,(char **)x,cb,u) 546656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_bio_DHparams(bp,x,cb,u) (DH *)PEM_ASN1_read_bio( \ 547656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_DHparams,PEM_STRING_DHPARAMS,bp,(char **)x,cb,u) 548656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_bio_DSAparams(bp,x,cb,u) (DSA *)PEM_ASN1_read_bio( \ 549656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_DSAparams,PEM_STRING_DSAPARAMS,bp,(char **)x,cb,u) 550656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 551656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_bio_NETSCAPE_CERT_SEQUENCE(bp,x,cb,u) \ 552656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (NETSCAPE_CERT_SEQUENCE *)PEM_ASN1_read_bio( \ 553656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_NETSCAPE_CERT_SEQUENCE,PEM_STRING_X509,bp,\ 554656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char **)x,cb,u) 555656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 556656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 557656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 558656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if 1 559656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* "userdata": new with OpenSSL 0.9.4 */ 560656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef int pem_password_cb(char *buf, int size, int rwflag, void *userdata); 561656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 562656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* OpenSSL 0.9.3, 0.9.3a */ 563656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef int pem_password_cb(char *buf, int size, int rwflag); 564656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 565656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 566656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); 567656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_do_header (EVP_CIPHER_INFO *cipher, unsigned char *data,long *len, 568656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *callback,void *u); 569656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 570656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_BIO 571656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_read_bio(BIO *bp, char **name, char **header, 572656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char **data,long *len); 573656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_bio(BIO *bp,const char *name,char *hdr,unsigned char *data, 574656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project long len); 575656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, const char *name, BIO *bp, 576656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 577656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid * PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, 578656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project void **x, pem_password_cb *cb, void *u); 579656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 580656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_ASN1_read_bio_of(type,d2i,name,bp,x,cb,u) \ 581656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ((type*)PEM_ASN1_read_bio(CHECKED_D2I_OF(type, d2i), \ 582656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project name, bp, \ 583656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CHECKED_PPTR_OF(type, x), \ 584656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cb, u)) 585656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 586656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_ASN1_write_bio(i2d_of_void *i2d,const char *name,BIO *bp,char *x, 587656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const EVP_CIPHER *enc,unsigned char *kstr,int klen, 588656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 589656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 590656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_ASN1_write_bio_of(type,i2d,name,bp,x,enc,kstr,klen,cb,u) \ 591656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (PEM_ASN1_write_bio(CHECKED_I2D_OF(type, i2d), \ 592656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project name, bp, \ 593656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CHECKED_PTR_OF(type, x), \ 594656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project enc, kstr, klen, cb, u)) 595656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 596656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTACK_OF(X509_INFO) * PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb, void *u); 597656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_X509_INFO_write_bio(BIO *bp,X509_INFO *xi, EVP_CIPHER *enc, 598656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *kstr, int klen, pem_password_cb *cd, void *u); 599656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 600656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 601656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_SYS_WIN16 602656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_read(FILE *fp, char **name, char **header, 603656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char **data,long *len); 604656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write(FILE *fp,char *name,char *hdr,unsigned char *data,long len); 605656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid * PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, 606656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 607656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_ASN1_write(i2d_of_void *i2d,const char *name,FILE *fp, 608656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *x,const EVP_CIPHER *enc,unsigned char *kstr, 609656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int klen,pem_password_cb *callback, void *u); 610656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTACK_OF(X509_INFO) * PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, 611656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 612656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 613656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 614656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type, 615656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_MD *md_type, unsigned char **ek, int *ekl, 616656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *iv, EVP_PKEY **pubk, int npubk); 617656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid PEM_SealUpdate(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *out, int *outl, 618656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *in, int inl); 619656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig,int *sigl, 620656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *out, int *outl, EVP_PKEY *priv); 621656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 622656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); 623656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid PEM_SignUpdate(EVP_MD_CTX *ctx,unsigned char *d,unsigned int cnt); 624656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, 625656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned int *siglen, EVP_PKEY *pkey); 626656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 627656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_def_callback(char *buf, int num, int w, void *key); 628656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid PEM_proc_type(char *buf, int type); 629656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid PEM_dek_info(char *buf, const char *type, int len, char *str); 630656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 631656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef SSLEAY_MACROS 632656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 633656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/symhacks.h> 634656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 635656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(X509, X509) 636656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 637656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(X509_AUX, X509) 638656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 639656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(X509_CERT_PAIR, X509_CERT_PAIR) 640656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 641656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(X509_REQ, X509_REQ) 642656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_write(X509_REQ_NEW, X509_REQ) 643656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 644656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(X509_CRL, X509_CRL) 645656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 646656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(PKCS7, PKCS7) 647656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 648656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) 649656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 650656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(PKCS8, X509_SIG) 651656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 652656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) 653656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 654656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_RSA 655656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 656656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_cb(RSAPrivateKey, RSA) 657656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 658656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_const(RSAPublicKey, RSA) 659656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(RSA_PUBKEY, RSA) 660656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 661656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 662656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 663656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DSA 664656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 665656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_cb(DSAPrivateKey, DSA) 666656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 667656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(DSA_PUBKEY, DSA) 668656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 669656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_const(DSAparams, DSA) 670656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 671656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 672656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 673656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_EC 674656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_const(ECPKParameters, EC_GROUP) 675656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_cb(ECPrivateKey, EC_KEY) 676656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(EC_PUBKEY, EC_KEY) 677656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 678656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 679656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DH 680656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 681656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_const(DHparams, DH) 682656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 683656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 684656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 685656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY) 686656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 687656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(PUBKEY, EVP_PKEY) 688656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 689656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, 690656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *kstr, int klen, 691656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 692656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, 693656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *, int, pem_password_cb *, void *); 694656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, 695656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *kstr, int klen, 696656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 697656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, 698656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *kstr, int klen, 699656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 700656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectEVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u); 701656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 702656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, 703656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *kstr, int klen, 704656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 705656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, 706656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *kstr, int klen, 707656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 708656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, 709656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *kstr, int klen, 710656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 711656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 712656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectEVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u); 713656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 714656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_PKCS8PrivateKey(FILE *fp,EVP_PKEY *x,const EVP_CIPHER *enc, 715656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *kstr,int klen, pem_password_cb *cd, void *u); 716656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 717656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* SSLEAY_MACROS */ 718656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 719656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 720656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* BEGIN ERROR CODES */ 721656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* The following lines are auto generated by the script mkerr.pl. Any changes 722656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * made after this point may be overwritten when the script is next run. 723656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 724656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid ERR_load_PEM_strings(void); 725656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 726656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Error codes for the PEM functions. */ 727656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 728656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Function codes. */ 729656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 120 730656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_D2I_PKCS8PRIVATEKEY_FP 121 731656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_DO_PK8PKEY 126 732656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_DO_PK8PKEY_FP 125 733656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_LOAD_IV 101 734656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_ASN1_READ 102 735656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_ASN1_READ_BIO 103 736656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_ASN1_WRITE 104 737656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_ASN1_WRITE_BIO 105 738656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_DEF_CALLBACK 100 739656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_DO_HEADER 106 740656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_F_PEM_WRITE_PKCS8PRIVATEKEY 118 741656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_GET_EVP_CIPHER_INFO 107 742656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_PK8PKEY 119 743656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_READ 108 744656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_READ_BIO 109 745656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 746656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_READ_PRIVATEKEY 124 747656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_SEALFINAL 110 748656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_SEALINIT 111 749656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_SIGNFINAL 112 750656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_WRITE 113 751656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_WRITE_BIO 114 752656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_X509_INFO_READ 115 753656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_X509_INFO_READ_BIO 116 754656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_X509_INFO_WRITE_BIO 117 755656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 756656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Reason codes. */ 757656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_BAD_BASE64_DECODE 100 758656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_BAD_DECRYPT 101 759656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_BAD_END_LINE 102 760656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_BAD_IV_CHARS 103 761656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_BAD_PASSWORD_READ 104 762656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 763656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_NOT_DEK_INFO 105 764656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_NOT_ENCRYPTED 106 765656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_NOT_PROC_TYPE 107 766656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_NO_START_LINE 108 767656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_PROBLEMS_GETTING_PASSWORD 109 768656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_PUBLIC_KEY_NO_RSA 110 769656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_READ_KEY 111 770656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_SHORT_HEADER 112 771656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_UNSUPPORTED_CIPHER 113 772656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_UNSUPPORTED_ENCRYPTION 114 773656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 774656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef __cplusplus 775656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 776656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 777656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 778