source: azure_iot_hub/trunk/wolfssl-3.15.7/wolfssl/openssl/pem.h@ 388

Last change on this file since 388 was 388, checked in by coas-nagasima, 5 years ago

Azure IoT Hub Device C SDK を使ったサンプルの追加

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-chdr
File size: 8.1 KB
Line 
1/* pem.h
2 *
3 * Copyright (C) 2006-2017 wolfSSL Inc.
4 *
5 * This file is part of wolfSSL.
6 *
7 * wolfSSL is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * wolfSSL is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
20 */
21
22/* pem.h for openssl */
23
24/*!
25 \file wolfssl/openssl/pem.h
26*/
27
28
29#ifndef WOLFSSL_PEM_H_
30#define WOLFSSL_PEM_H_
31
32#include <wolfssl/openssl/evp.h>
33#include <wolfssl/openssl/bio.h>
34#include <wolfssl/openssl/rsa.h>
35#include <wolfssl/openssl/dsa.h>
36
37#ifdef __cplusplus
38 extern "C" {
39#endif
40
41/* RSA */
42WOLFSSL_API
43int wolfSSL_PEM_write_bio_RSAPrivateKey(WOLFSSL_BIO* bio, WOLFSSL_RSA* rsa,
44 const EVP_CIPHER* cipher,
45 unsigned char* passwd, int len,
46 pem_password_cb* cb, void* arg);
47WOLFSSL_API
48WOLFSSL_RSA* wolfSSL_PEM_read_bio_RSAPrivateKey(WOLFSSL_BIO* bio,
49 WOLFSSL_RSA**,
50 pem_password_cb* cb,
51 void* arg);
52WOLFSSL_API
53int wolfSSL_PEM_write_mem_RSAPrivateKey(RSA* rsa, const EVP_CIPHER* cipher,
54 unsigned char* passwd, int len,
55 unsigned char **pem, int *plen);
56#if !defined(NO_FILESYSTEM)
57WOLFSSL_API
58int wolfSSL_PEM_write_RSAPrivateKey(XFILE fp, WOLFSSL_RSA *rsa,
59 const EVP_CIPHER *enc,
60 unsigned char *kstr, int klen,
61 pem_password_cb *cb, void *u);
62WOLFSSL_API
63WOLFSSL_RSA *wolfSSL_PEM_read_RSAPublicKey(XFILE fp, WOLFSSL_RSA **x,
64 pem_password_cb *cb, void *u);
65WOLFSSL_API
66int wolfSSL_PEM_write_RSAPublicKey(XFILE fp, WOLFSSL_RSA *x);
67
68WOLFSSL_API
69int wolfSSL_PEM_write_RSA_PUBKEY(XFILE fp, WOLFSSL_RSA *x);
70#endif /* NO_FILESYSTEM */
71
72/* DSA */
73WOLFSSL_API
74int wolfSSL_PEM_write_bio_DSAPrivateKey(WOLFSSL_BIO* bio,
75 WOLFSSL_DSA* dsa,
76 const EVP_CIPHER* cipher,
77 unsigned char* passwd, int len,
78 pem_password_cb* cb, void* arg);
79WOLFSSL_API
80int wolfSSL_PEM_write_mem_DSAPrivateKey(WOLFSSL_DSA* dsa,
81 const EVP_CIPHER* cipher,
82 unsigned char* passwd, int len,
83 unsigned char **pem, int *plen);
84#if !defined(NO_FILESYSTEM)
85WOLFSSL_API
86int wolfSSL_PEM_write_DSAPrivateKey(XFILE fp, WOLFSSL_DSA *dsa,
87 const EVP_CIPHER *enc,
88 unsigned char *kstr, int klen,
89 pem_password_cb *cb, void *u);
90WOLFSSL_API
91int wolfSSL_PEM_write_DSA_PUBKEY(XFILE fp, WOLFSSL_DSA *x);
92#endif /* NO_FILESYSTEM */
93
94/* ECC */
95WOLFSSL_API
96int wolfSSL_PEM_write_bio_ECPrivateKey(WOLFSSL_BIO* bio, WOLFSSL_EC_KEY* ec,
97 const EVP_CIPHER* cipher,
98 unsigned char* passwd, int len,
99 pem_password_cb* cb, void* arg);
100WOLFSSL_API
101int wolfSSL_PEM_write_mem_ECPrivateKey(WOLFSSL_EC_KEY* key,
102 const EVP_CIPHER* cipher,
103 unsigned char* passwd, int len,
104 unsigned char **pem, int *plen);
105#if !defined(NO_FILESYSTEM)
106WOLFSSL_API
107int wolfSSL_PEM_write_ECPrivateKey(XFILE fp, WOLFSSL_EC_KEY *key,
108 const EVP_CIPHER *enc,
109 unsigned char *kstr, int klen,
110 pem_password_cb *cb, void *u);
111WOLFSSL_API
112int wolfSSL_PEM_write_EC_PUBKEY(XFILE fp, WOLFSSL_EC_KEY *key);
113#endif /* NO_FILESYSTEM */
114
115/* EVP_KEY */
116WOLFSSL_API
117WOLFSSL_EVP_PKEY* wolfSSL_PEM_read_bio_PrivateKey(WOLFSSL_BIO* bio,
118 WOLFSSL_EVP_PKEY**,
119 pem_password_cb* cb,
120 void* arg);
121WOLFSSL_API
122WOLFSSL_EVP_PKEY *wolfSSL_PEM_read_bio_PUBKEY(WOLFSSL_BIO* bio,
123 WOLFSSL_EVP_PKEY **key,
124 pem_password_cb *cb, void *pass);
125WOLFSSL_API
126int wolfSSL_PEM_write_bio_PrivateKey(WOLFSSL_BIO* bio, WOLFSSL_EVP_PKEY* key,
127 const WOLFSSL_EVP_CIPHER* cipher,
128 unsigned char* passwd, int len,
129 pem_password_cb* cb, void* arg);
130
131
132WOLFSSL_API
133int wolfSSL_PEM_read_bio(WOLFSSL_BIO* bio, char **name, char **header,
134 unsigned char **data, long *len);
135WOLFSSL_API
136int wolfSSL_PEM_write_bio(WOLFSSL_BIO *bio, const char *name,
137 const char *header, const unsigned char *data,
138 long len);
139#if !defined(NO_FILESYSTEM)
140WOLFSSL_API
141int wolfSSL_PEM_read(XFILE fp, char **name, char **header, unsigned char **data,
142 long *len);
143WOLFSSL_API
144int wolfSSL_PEM_write(XFILE fp, const char *name, const char *header,
145 const unsigned char *data, long len);
146#endif
147
148#if !defined(NO_FILESYSTEM)
149WOLFSSL_API
150WOLFSSL_EVP_PKEY *wolfSSL_PEM_read_PUBKEY(XFILE fp, EVP_PKEY **x,
151 pem_password_cb *cb, void *u);
152WOLFSSL_API
153WOLFSSL_X509 *wolfSSL_PEM_read_X509(XFILE fp, WOLFSSL_X509 **x,
154 pem_password_cb *cb, void *u);
155WOLFSSL_API
156WOLFSSL_EVP_PKEY *wolfSSL_PEM_read_PrivateKey(XFILE fp, WOLFSSL_EVP_PKEY **x,
157 pem_password_cb *cb, void *u);
158
159WOLFSSL_API
160int wolfSSL_PEM_write_X509(XFILE fp, WOLFSSL_X509 *x);
161#endif /* NO_FILESYSTEM */
162
163#define PEM_read wolfSSL_PEM_read
164#define PEM_read_bio wolfSSL_PEM_read_bio
165#define PEM_write wolfSSL_PEM_write
166#define PEM_write_bio wolfSSL_PEM_write_bio
167
168#define PEM_read_X509 wolfSSL_PEM_read_X509
169#define PEM_read_PrivateKey wolfSSL_PEM_read_PrivateKey
170#define PEM_write_X509 wolfSSL_PEM_write_X509
171#define PEM_write_bio_PrivateKey wolfSSL_PEM_write_bio_PrivateKey
172#define PEM_write_bio_PKCS8PrivateKey wolfSSL_PEM_write_bio_PKCS8PrivateKey
173/* RSA */
174#define PEM_write_bio_RSAPrivateKey wolfSSL_PEM_write_bio_RSAPrivateKey
175#define PEM_read_bio_RSAPrivateKey wolfSSL_PEM_read_bio_RSAPrivateKey
176#define PEM_write_RSAPrivateKey wolfSSL_PEM_write_RSAPrivateKey
177#define PEM_write_RSA_PUBKEY wolfSSL_PEM_write_RSA_PUBKEY
178#define PEM_write_RSAPublicKey wolfSSL_PEM_write_RSAPublicKey
179#define PEM_read_RSAPublicKey wolfSSL_PEM_read_RSAPublicKey
180/* DSA */
181#define PEM_write_bio_DSAPrivateKey wolfSSL_PEM_write_bio_DSAPrivateKey
182#define PEM_write_DSAPrivateKey wolfSSL_PEM_write_DSAPrivateKey
183#define PEM_write_DSA_PUBKEY wolfSSL_PEM_write_DSA_PUBKEY
184/* ECC */
185#define PEM_write_bio_ECPrivateKey wolfSSL_PEM_write_bio_ECPrivateKey
186#define PEM_write_EC_PUBKEY wolfSSL_PEM_write_EC_PUBKEY
187#define PEM_write_ECPrivateKey wolfSSL_PEM_write_ECPrivateKey
188/* EVP_KEY */
189#define PEM_read_bio_PrivateKey wolfSSL_PEM_read_bio_PrivateKey
190#define PEM_read_PUBKEY wolfSSL_PEM_read_PUBKEY
191#define PEM_read_bio_PUBKEY wolfSSL_PEM_read_bio_PUBKEY
192
193#ifdef __cplusplus
194 } /* extern "C" */
195#endif
196
197#endif /* WOLFSSL_PEM_H_ */
198
Note: See TracBrowser for help on using the repository browser.