1# This file is dual licensed under the terms of the Apache License, Version 2# 2.0, and the BSD License. See the LICENSE file in the root of this repository 3# for complete details. 4 5from __future__ import absolute_import, division, print_function 6 7INCLUDES = """ 8#include <openssl/pem.h> 9""" 10 11TYPES = """ 12typedef int pem_password_cb(char *buf, int size, int rwflag, void *userdata); 13""" 14 15FUNCTIONS = """ 16X509 *PEM_read_bio_X509(BIO *, X509 **, pem_password_cb *, void *); 17int PEM_write_bio_X509(BIO *, X509 *); 18 19int PEM_write_bio_PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, 20 unsigned char *, int, pem_password_cb *, void *); 21 22EVP_PKEY *PEM_read_bio_PrivateKey(BIO *, EVP_PKEY **, pem_password_cb *, 23 void *); 24 25int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, 26 char *, int, pem_password_cb *, void *); 27 28int i2d_PKCS8PrivateKey_bio(BIO *, EVP_PKEY *, const EVP_CIPHER *, 29 char *, int, pem_password_cb *, void *); 30 31int i2d_PKCS7_bio(BIO *, PKCS7 *); 32PKCS7 *d2i_PKCS7_bio(BIO *, PKCS7 **); 33 34EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *, EVP_PKEY **, pem_password_cb *, 35 void *); 36 37int PEM_write_bio_X509_REQ(BIO *, X509_REQ *); 38 39X509_REQ *PEM_read_bio_X509_REQ(BIO *, X509_REQ **, pem_password_cb *, void *); 40 41X509_CRL *PEM_read_bio_X509_CRL(BIO *, X509_CRL **, pem_password_cb *, void *); 42 43int PEM_write_bio_X509_CRL(BIO *, X509_CRL *); 44 45PKCS7 *PEM_read_bio_PKCS7(BIO *, PKCS7 **, pem_password_cb *, void *); 46int PEM_write_bio_PKCS7(BIO *, PKCS7 *); 47 48DH *PEM_read_bio_DHparams(BIO *, DH **, pem_password_cb *, void *); 49 50int PEM_write_bio_DSAPrivateKey(BIO *, DSA *, const EVP_CIPHER *, 51 unsigned char *, int, 52 pem_password_cb *, void *); 53 54int PEM_write_bio_RSAPrivateKey(BIO *, RSA *, const EVP_CIPHER *, 55 unsigned char *, int, 56 pem_password_cb *, void *); 57 58RSA *PEM_read_bio_RSAPublicKey(BIO *, RSA **, pem_password_cb *, void *); 59 60int PEM_write_bio_RSAPublicKey(BIO *, const RSA *); 61 62EVP_PKEY *PEM_read_bio_PUBKEY(BIO *, EVP_PKEY **, pem_password_cb *, void *); 63int PEM_write_bio_PUBKEY(BIO *, EVP_PKEY *); 64int PEM_write_bio_ECPrivateKey(BIO *, EC_KEY *, const EVP_CIPHER *, 65 unsigned char *, int, pem_password_cb *, 66 void *); 67int PEM_write_bio_DHparams(BIO *, DH *); 68int PEM_write_bio_DHxparams(BIO *, DH *); 69""" 70 71CUSTOMIZATIONS = """ 72#if !defined(EVP_PKEY_DHX) || EVP_PKEY_DHX == -1 73int (*PEM_write_bio_DHxparams)(BIO *, DH *) = NULL; 74#endif 75""" 76