pem.h revision 3d3a1b8fcf46ca3bdb3d8f09acd6ef604624a30d
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" 128e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define PEM_STRING_PKCS7_SIGNED "PKCS #7 SIGNED DATA" 129656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY" 130656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_PKCS8INF "PRIVATE KEY" 131656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_DHPARAMS "DH PARAMETERS" 132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS" 133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_DSAPARAMS "DSA PARAMETERS" 134656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY" 135656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_ECPARAMETERS "EC PARAMETERS" 136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY" 137221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_STRING_PARAMETERS "PARAMETERS" 138656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_CMS "CMS" 139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Note that this structure is initialised by PEM_SealInit and cleaned up 141656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project by PEM_SealFinal (at least for now) */ 142656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct PEM_Encode_Seal_st 143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 144656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_ENCODE_CTX encode; 145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_MD_CTX md; 146656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_CIPHER_CTX cipher; 147656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } PEM_ENCODE_SEAL_CTX; 148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* enc_type is one off */ 150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_TYPE_ENCRYPTED 10 151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_TYPE_MIC_ONLY 20 152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_TYPE_MIC_CLEAR 30 153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_TYPE_CLEAR 40 154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct pem_recip_st 156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *name; 158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509_NAME *dn; 159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int cipher; 161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int key_enc; 162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* char iv[8]; unused and wrong size */ 163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } PEM_USER; 164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct pem_ctx_st 166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int type; /* what type of object */ 168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project struct { 170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int version; 171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int mode; 172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } proc_type; 173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *domain; 175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project struct { 177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int cipher; 178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* unused, and wrong size 179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char iv[8]; */ 180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } DEK_info; 181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_USER *originator; 183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int num_recipient; 185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_USER **recipient; 186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 187221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom /* XXX(ben): don#t think this is used! 188221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom STACK *x509_chain; / * certificate chain */ 189656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_MD *md; /* signature type */ 190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int md_enc; /* is the md encrypted or not? */ 192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int md_len; /* length of md_data */ 193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *md_data; /* message digest, could be pkey encrypted */ 194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_CIPHER *dec; /* date encryption cipher */ 196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int key_len; /* key length */ 197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *key; /* key */ 198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* unused, and wrong size 199656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char iv[8]; */ 200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 201656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int data_enc; /* is the data encrypted */ 203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int data_len; 204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *data; 205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } PEM_CTX; 206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* These macros make the PEM_read/PEM_write functions easier to maintain and 208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * write. Now they are all implemented with either: 209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * IMPLEMENT_PEM_rw(...) or IMPLEMENT_PEM_rw_cb(...) 210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 211656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef OPENSSL_NO_FP_API 213656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 214656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/ 215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/ 216e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) /**/ 217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) /**/ 218e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) /**/ 219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \ 223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttype *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\ 224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ \ 225221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromreturn PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str,fp,(void **)x,cb,u); \ 226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \ 229656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_##name(FILE *fp, type *x) \ 230656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ \ 231221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromreturn PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL); \ 232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \ 235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_##name(FILE *fp, const type *x) \ 236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ \ 237221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromreturn PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,(void *)x,NULL,NULL,0,NULL,NULL); \ 238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \ 241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ 242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *kstr, int klen, pem_password_cb *cb, \ 243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project void *u) \ 244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { \ 245221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ 246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_cb_fp_const(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 { \ 253221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ 254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ 259656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttype *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\ 260656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ \ 261221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromreturn PEM_ASN1_read_bio((d2i_of_void *)d2i_##asn1, str,bp,(void **)x,cb,u); \ 262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ 265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_bio_##name(BIO *bp, type *x) \ 266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ \ 267221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromreturn PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL); \ 268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ 271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_bio_##name(BIO *bp, const type *x) \ 272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{ \ 273221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromreturn PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,NULL,NULL,0,NULL,NULL); \ 274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 275656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 276656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ 277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ 278656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ 279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { \ 280221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u); \ 281656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 282656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 283656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ 284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ 285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ 286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { \ 287221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,enc,kstr,klen,cb,u); \ 288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 289656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write(name, type, str, asn1) \ 291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ 292656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_fp(name, type, str, asn1) 293656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 294656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_const(name, type, str, asn1) \ 295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ 296656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) 297656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 298656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \ 299656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ 300656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) 301656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 302656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \ 303656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ 304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) 305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 306656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_read(name, type, str, asn1) \ 307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ 308656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_read_fp(name, type, str, asn1) 309656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 310656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_rw(name, type, str, asn1) \ 311656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_read(name, type, str, asn1) \ 312656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write(name, type, str, asn1) 313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 314656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \ 315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_read(name, type, str, asn1) \ 316656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_const(name, type, str, asn1) 317656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 318656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \ 319656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_read(name, type, str, asn1) \ 320656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project IMPLEMENT_PEM_write_cb(name, type, str, asn1) 321656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 322656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* These are the same except they are for the declarations */ 323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 324221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#if defined(OPENSSL_NO_FP_API) 325656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 326656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_read_fp(name, type) /**/ 327656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_fp(name, type) /**/ 328656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_cb_fp(name, type) /**/ 329656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 330656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 331656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 332656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_read_fp(name, type) \ 333656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u); 334656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 335656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_fp(name, type) \ 336656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int PEM_write_##name(FILE *fp, type *x); 337656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_fp_const(name, type) \ 339656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int PEM_write_##name(FILE *fp, const type *x); 340656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 341656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_cb_fp(name, type) \ 342656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ 343656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *kstr, int klen, pem_password_cb *cb, void *u); 344656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 345656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 346656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 347656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_BIO 348656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_read_bio(name, type) \ 349656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u); 350656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 351656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_bio(name, type) \ 352656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int PEM_write_bio_##name(BIO *bp, type *x); 353656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 354656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_bio_const(name, type) \ 355656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int PEM_write_bio_##name(BIO *bp, const type *x); 356656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 357656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_cb_bio(name, type) \ 358656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ 359656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *kstr, int klen, pem_password_cb *cb, void *u); 360656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 361656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 362656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 363656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_read_bio(name, type) /**/ 364656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_bio(name, type) /**/ 365e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define DECLARE_PEM_write_bio_const(name, type) /**/ 366656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_cb_bio(name, type) /**/ 367656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 368656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 370656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write(name, type) \ 371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_bio(name, type) \ 372656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_fp(name, type) 373656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 374656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_const(name, type) \ 375656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_bio_const(name, type) \ 376656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_fp_const(name, type) 377656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 378656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_write_cb(name, type) \ 379656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_cb_bio(name, type) \ 380656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_cb_fp(name, type) 381656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 382656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_read(name, type) \ 383656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_read_bio(name, type) \ 384656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_read_fp(name, type) 385656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 386656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_rw(name, type) \ 387656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_read(name, type) \ 388656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write(name, type) 389656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 390656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_rw_const(name, type) \ 391656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_read(name, type) \ 392656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_const(name, type) 393656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 394656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DECLARE_PEM_rw_cb(name, type) \ 395656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_read(name, type) \ 396656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DECLARE_PEM_write_cb(name, type) 397656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 398656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if 1 399656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* "userdata": new with OpenSSL 0.9.4 */ 400656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef int pem_password_cb(char *buf, int size, int rwflag, void *userdata); 401656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 402656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* OpenSSL 0.9.3, 0.9.3a */ 403656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef int pem_password_cb(char *buf, int size, int rwflag); 404656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 405656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 406656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); 407656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_do_header (EVP_CIPHER_INFO *cipher, unsigned char *data,long *len, 408656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *callback,void *u); 409656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 410656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_BIO 411656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_read_bio(BIO *bp, char **name, char **header, 412656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char **data,long *len); 413656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_bio(BIO *bp,const char *name,char *hdr,unsigned char *data, 414656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project long len); 415656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, const char *name, BIO *bp, 416656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 417656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid * PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, 418656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project void **x, pem_password_cb *cb, void *u); 419221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint PEM_ASN1_write_bio(i2d_of_void *i2d,const char *name,BIO *bp, void *x, 420656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const EVP_CIPHER *enc,unsigned char *kstr,int klen, 421656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 422656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 423656d9c7f52f88b3a3daccafa7655dec086c4756eThe 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); 424656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_X509_INFO_write_bio(BIO *bp,X509_INFO *xi, EVP_CIPHER *enc, 425656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *kstr, int klen, pem_password_cb *cd, void *u); 426656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 427656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 428656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_read(FILE *fp, char **name, char **header, 429656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char **data,long *len); 430656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write(FILE *fp,char *name,char *hdr,unsigned char *data,long len); 431656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid * PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, 432656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 433656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_ASN1_write(i2d_of_void *i2d,const char *name,FILE *fp, 434221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom void *x,const EVP_CIPHER *enc,unsigned char *kstr, 435656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int klen,pem_password_cb *callback, void *u); 436656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTACK_OF(X509_INFO) * PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, 437656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 438656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 439656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type, 440656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_MD *md_type, unsigned char **ek, int *ekl, 441656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *iv, EVP_PKEY **pubk, int npubk); 442656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid PEM_SealUpdate(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *out, int *outl, 443656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *in, int inl); 444656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig,int *sigl, 445656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *out, int *outl, EVP_PKEY *priv); 446656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 447656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); 448656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid PEM_SignUpdate(EVP_MD_CTX *ctx,unsigned char *d,unsigned int cnt); 449656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, 450656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned int *siglen, EVP_PKEY *pkey); 451656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 452656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_def_callback(char *buf, int num, int w, void *key); 453656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid PEM_proc_type(char *buf, int type); 454656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid PEM_dek_info(char *buf, const char *type, int len, char *str); 455656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 456656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 457656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/symhacks.h> 458656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 459656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(X509, X509) 460656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 461656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(X509_AUX, X509) 462656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 463656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(X509_CERT_PAIR, X509_CERT_PAIR) 464656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 465656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(X509_REQ, X509_REQ) 466656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_write(X509_REQ_NEW, X509_REQ) 467656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 468656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(X509_CRL, X509_CRL) 469656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 470656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(PKCS7, PKCS7) 471656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 472656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) 473656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 474656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(PKCS8, X509_SIG) 475656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 476656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) 477656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 478656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_RSA 479656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 480656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_cb(RSAPrivateKey, RSA) 481656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 482656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_const(RSAPublicKey, RSA) 483656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(RSA_PUBKEY, RSA) 484656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 485656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 486656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 487656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DSA 488656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 489656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_cb(DSAPrivateKey, DSA) 490656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 491656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(DSA_PUBKEY, DSA) 492656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 493656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_const(DSAparams, DSA) 494656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 495656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 496656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 497656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_EC 498656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_const(ECPKParameters, EC_GROUP) 499656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_cb(ECPrivateKey, EC_KEY) 500656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(EC_PUBKEY, EC_KEY) 501656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 502656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 503656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DH 504656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 505656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_const(DHparams, DH) 506656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 507656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 508656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 509656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY) 510656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 511656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_PEM_rw(PUBKEY, EVP_PKEY) 512656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 513656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, 514656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *kstr, int klen, 515656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 516656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, 517656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *, int, pem_password_cb *, void *); 518656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, 519656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *kstr, int klen, 520656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 521656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, 522656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *kstr, int klen, 523656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 524656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectEVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u); 525656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 526656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, 527656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *kstr, int klen, 528656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 529656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, 530656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *kstr, int klen, 531656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 532656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, 533656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *kstr, int klen, 534656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pem_password_cb *cb, void *u); 535656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 536656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectEVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u); 537656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 538656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint PEM_write_PKCS8PrivateKey(FILE *fp,EVP_PKEY *x,const EVP_CIPHER *enc, 539656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *kstr,int klen, pem_password_cb *cd, void *u); 540656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 541221304ee937bc0910948a8be1320cb8cc4eb6d36Brian CarlstromEVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); 542221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x); 543221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 544221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 545221304ee937bc0910948a8be1320cb8cc4eb6d36Brian CarlstromEVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length); 546221304ee937bc0910948a8be1320cb8cc4eb6d36Brian CarlstromEVP_PKEY *b2i_PublicKey(const unsigned char **in, long length); 547221304ee937bc0910948a8be1320cb8cc4eb6d36Brian CarlstromEVP_PKEY *b2i_PrivateKey_bio(BIO *in); 548221304ee937bc0910948a8be1320cb8cc4eb6d36Brian CarlstromEVP_PKEY *b2i_PublicKey_bio(BIO *in); 549221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk); 550221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk); 5513d3a1b8fcf46ca3bdb3d8f09acd6ef604624a30dBrian Carlstrom#ifndef OPENSSL_NO_RC4 552221304ee937bc0910948a8be1320cb8cc4eb6d36Brian CarlstromEVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u); 553221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, 554221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom pem_password_cb *cb, void *u); 5553d3a1b8fcf46ca3bdb3d8f09acd6ef604624a30dBrian Carlstrom#endif 556656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 557656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 558656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* BEGIN ERROR CODES */ 559656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* The following lines are auto generated by the script mkerr.pl. Any changes 560656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * made after this point may be overwritten when the script is next run. 561656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 562656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid ERR_load_PEM_strings(void); 563656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 564656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Error codes for the PEM functions. */ 565656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 566656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Function codes. */ 567221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_F_B2I_DSS 127 568221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_F_B2I_PVK_BIO 128 569221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_F_B2I_RSA 129 570221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_F_CHECK_BITLEN_DSA 130 571221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_F_CHECK_BITLEN_RSA 131 572656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 120 573656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_D2I_PKCS8PRIVATEKEY_FP 121 574221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_F_DO_B2I 132 575221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_F_DO_B2I_BIO 133 576221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_F_DO_BLOB_HEADER 134 577656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_DO_PK8PKEY 126 578656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_DO_PK8PKEY_FP 125 579221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_F_DO_PVK_BODY 135 580221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_F_DO_PVK_HEADER 136 581221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_F_I2B_PVK 137 582221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_F_I2B_PVK_BIO 138 583656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_LOAD_IV 101 584656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_ASN1_READ 102 585656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_ASN1_READ_BIO 103 586656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_ASN1_WRITE 104 587656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_ASN1_WRITE_BIO 105 588656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_DEF_CALLBACK 100 589656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_DO_HEADER 106 590656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_F_PEM_WRITE_PKCS8PRIVATEKEY 118 591656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_GET_EVP_CIPHER_INFO 107 592656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_PK8PKEY 119 593656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_READ 108 594656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_READ_BIO 109 595221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_F_PEM_READ_BIO_PARAMETERS 140 596656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 597656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_READ_PRIVATEKEY 124 598656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_SEALFINAL 110 599656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_SEALINIT 111 600656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_SIGNFINAL 112 601656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_WRITE 113 602656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_WRITE_BIO 114 603221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_F_PEM_WRITE_PRIVATEKEY 139 604656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_X509_INFO_READ 115 605656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_X509_INFO_READ_BIO 116 606656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_F_PEM_X509_INFO_WRITE_BIO 117 607656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 608656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Reason codes. */ 609656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_BAD_BASE64_DECODE 100 610656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_BAD_DECRYPT 101 611656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_BAD_END_LINE 102 612656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_BAD_IV_CHARS 103 613221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_R_BAD_MAGIC_NUMBER 116 614656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_BAD_PASSWORD_READ 104 615221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_R_BAD_VERSION_NUMBER 117 616221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_R_BIO_WRITE_FAILURE 118 617221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_R_CIPHER_IS_NULL 127 618656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 619221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 620221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 621221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_R_INCONSISTENT_HEADER 121 622221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 623221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_R_KEYBLOB_TOO_SHORT 123 624656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_NOT_DEK_INFO 105 625656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_NOT_ENCRYPTED 106 626656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_NOT_PROC_TYPE 107 627656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_NO_START_LINE 108 628656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_PROBLEMS_GETTING_PASSWORD 109 629656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_PUBLIC_KEY_NO_RSA 110 630221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_R_PVK_DATA_TOO_SHORT 124 631221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_R_PVK_TOO_SHORT 125 632656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_READ_KEY 111 633656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_SHORT_HEADER 112 634656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_UNSUPPORTED_CIPHER 113 635656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_R_UNSUPPORTED_ENCRYPTION 114 636221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 637656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 638656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef __cplusplus 639656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 640656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 641656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 642