source: azure_iot_hub_f767zi/trunk/wolfssl-4.7.0/wolfssl/openssl/pem.h@ 464

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

WolfSSLとAzure IoT SDKを更新

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 10.9 KB
Line 
1/* pem.h
2 *
3 * Copyright (C) 2006-2020 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#include <wolfssl/ssl.h>
37
38#ifdef __cplusplus
39 extern "C" {
40#endif
41
42/* RSA */
43WOLFSSL_API
44int wolfSSL_PEM_write_bio_RSAPrivateKey(WOLFSSL_BIO* bio, WOLFSSL_RSA* rsa,
45 const EVP_CIPHER* cipher,
46 unsigned char* passwd, int len,
47 pem_password_cb* cb, void* arg);
48WOLFSSL_API
49WOLFSSL_RSA* wolfSSL_PEM_read_bio_RSAPrivateKey(WOLFSSL_BIO* bio,
50 WOLFSSL_RSA**,
51 pem_password_cb* cb,
52 void* arg);
53
54WOLFSSL_API
55int wolfSSL_PEM_write_bio_RSA_PUBKEY(WOLFSSL_BIO* bio, WOLFSSL_RSA* rsa);
56
57WOLFSSL_API
58WOLFSSL_RSA *wolfSSL_PEM_read_bio_RSA_PUBKEY(WOLFSSL_BIO* bio,
59 WOLFSSL_RSA** rsa,
60 pem_password_cb* cb, void *u);
61
62WOLFSSL_API
63WOLFSSL_EC_GROUP* wolfSSL_PEM_read_bio_ECPKParameters(WOLFSSL_BIO* bio,
64 WOLFSSL_EC_GROUP** group,
65 pem_password_cb* cb,
66 void* pass);
67WOLFSSL_API
68int wolfSSL_PEM_write_mem_RSAPrivateKey(RSA* rsa, const EVP_CIPHER* cipher,
69 unsigned char* passwd, int len,
70 unsigned char **pem, int *plen);
71#if !defined(NO_FILESYSTEM)
72WOLFSSL_API
73int wolfSSL_PEM_write_RSAPrivateKey(XFILE fp, WOLFSSL_RSA *rsa,
74 const EVP_CIPHER *enc,
75 unsigned char *kstr, int klen,
76 pem_password_cb *cb, void *u);
77WOLFSSL_API
78WOLFSSL_RSA *wolfSSL_PEM_read_RSAPublicKey(XFILE fp, WOLFSSL_RSA **x,
79 pem_password_cb *cb, void *u);
80WOLFSSL_API
81int wolfSSL_PEM_write_RSAPublicKey(XFILE fp, WOLFSSL_RSA *x);
82
83WOLFSSL_API
84int wolfSSL_PEM_write_RSA_PUBKEY(XFILE fp, WOLFSSL_RSA *x);
85#endif /* NO_FILESYSTEM */
86
87/* DSA */
88WOLFSSL_API
89int wolfSSL_PEM_write_bio_DSAPrivateKey(WOLFSSL_BIO* bio,
90 WOLFSSL_DSA* dsa,
91 const EVP_CIPHER* cipher,
92 unsigned char* passwd, int len,
93 pem_password_cb* cb, void* arg);
94
95WOLFSSL_API
96WOLFSSL_DSA* wolfSSL_PEM_read_bio_DSAPrivateKey(WOLFSSL_BIO* bio,
97 WOLFSSL_DSA** dsa,
98 pem_password_cb* cb,void *pass);
99
100WOLFSSL_API
101WOLFSSL_DSA *wolfSSL_PEM_read_bio_DSA_PUBKEY(WOLFSSL_BIO* bio,WOLFSSL_DSA** dsa,
102 pem_password_cb* cb, void *pass);
103
104WOLFSSL_API
105int wolfSSL_PEM_write_bio_DSA_PUBKEY(WOLFSSL_BIO* bio, WOLFSSL_DSA* dsa);
106
107WOLFSSL_API
108int wolfSSL_PEM_write_mem_DSAPrivateKey(WOLFSSL_DSA* dsa,
109 const EVP_CIPHER* cipher,
110 unsigned char* passwd, int len,
111 unsigned char **pem, int *plen);
112#if !defined(NO_FILESYSTEM)
113WOLFSSL_API
114int wolfSSL_PEM_write_DSAPrivateKey(XFILE fp, WOLFSSL_DSA *dsa,
115 const EVP_CIPHER *enc,
116 unsigned char *kstr, int klen,
117 pem_password_cb *cb, void *u);
118WOLFSSL_API
119int wolfSSL_PEM_write_DSA_PUBKEY(XFILE fp, WOLFSSL_DSA *x);
120#endif /* NO_FILESYSTEM */
121
122/* ECC */
123WOLFSSL_API
124int wolfSSL_PEM_write_bio_ECPrivateKey(WOLFSSL_BIO* bio, WOLFSSL_EC_KEY* ec,
125 const EVP_CIPHER* cipher,
126 unsigned char* passwd, int len,
127 pem_password_cb* cb, void* arg);
128WOLFSSL_API
129WOLFSSL_EC_KEY* wolfSSL_PEM_read_bio_ECPrivateKey(WOLFSSL_BIO* bio,
130 WOLFSSL_EC_KEY** ec,
131 pem_password_cb* cb,
132 void *pass);
133WOLFSSL_API
134int wolfSSL_PEM_write_bio_EC_PUBKEY(WOLFSSL_BIO* bio, WOLFSSL_EC_KEY* ec);
135
136WOLFSSL_API
137int wolfSSL_PEM_write_mem_ECPrivateKey(WOLFSSL_EC_KEY* key,
138 const EVP_CIPHER* cipher,
139 unsigned char* passwd, int len,
140 unsigned char **pem, int *plen);
141#if !defined(NO_FILESYSTEM)
142WOLFSSL_API
143int wolfSSL_PEM_write_ECPrivateKey(XFILE fp, WOLFSSL_EC_KEY *key,
144 const EVP_CIPHER *enc,
145 unsigned char *kstr, int klen,
146 pem_password_cb *cb, void *u);
147WOLFSSL_API
148int wolfSSL_PEM_write_EC_PUBKEY(XFILE fp, WOLFSSL_EC_KEY *key);
149
150WOLFSSL_API
151WOLFSSL_EC_KEY* wolfSSL_PEM_read_bio_EC_PUBKEY(WOLFSSL_BIO* bio,
152 WOLFSSL_EC_KEY** ec,
153 pem_password_cb* cb, void *pass);
154#endif /* NO_FILESYSTEM */
155
156/* EVP_KEY */
157WOLFSSL_API
158WOLFSSL_EVP_PKEY* wolfSSL_PEM_read_bio_PrivateKey(WOLFSSL_BIO* bio,
159 WOLFSSL_EVP_PKEY**,
160 pem_password_cb* cb,
161 void* arg);
162WOLFSSL_API
163WOLFSSL_EVP_PKEY *wolfSSL_PEM_read_bio_PUBKEY(WOLFSSL_BIO* bio,
164 WOLFSSL_EVP_PKEY **key,
165 pem_password_cb *cb, void *pass);
166WOLFSSL_API
167int wolfSSL_PEM_write_bio_PrivateKey(WOLFSSL_BIO* bio, WOLFSSL_EVP_PKEY* key,
168 const WOLFSSL_EVP_CIPHER* cipher,
169 unsigned char* passwd, int len,
170 pem_password_cb* cb, void* arg);
171WOLFSSL_API
172int wolfSSL_PEM_write_bio_PUBKEY(WOLFSSL_BIO* bio, WOLFSSL_EVP_PKEY* key);
173
174
175WOLFSSL_API
176int wolfSSL_PEM_read_bio(WOLFSSL_BIO* bio, char **name, char **header,
177 unsigned char **data, long *len);
178WOLFSSL_API
179int wolfSSL_PEM_write_bio(WOLFSSL_BIO *bio, const char *name,
180 const char *header, const unsigned char *data,
181 long len);
182#if !defined(NO_FILESYSTEM)
183WOLFSSL_API
184int wolfSSL_PEM_read(XFILE fp, char **name, char **header, unsigned char **data,
185 long *len);
186WOLFSSL_API
187int wolfSSL_PEM_write(XFILE fp, const char *name, const char *header,
188 const unsigned char *data, long len);
189#endif
190
191#if !defined(NO_FILESYSTEM)
192WOLFSSL_API
193WOLFSSL_EVP_PKEY *wolfSSL_PEM_read_PUBKEY(XFILE fp, EVP_PKEY **x,
194 pem_password_cb *cb, void *u);
195WOLFSSL_API
196WOLFSSL_X509 *wolfSSL_PEM_read_X509(XFILE fp, WOLFSSL_X509 **x,
197 pem_password_cb *cb, void *u);
198WOLFSSL_API
199WOLFSSL_EVP_PKEY *wolfSSL_PEM_read_PrivateKey(XFILE fp, WOLFSSL_EVP_PKEY **x,
200 pem_password_cb *cb, void *u);
201
202WOLFSSL_API
203int wolfSSL_PEM_write_X509(XFILE fp, WOLFSSL_X509 *x);
204WOLFSSL_API
205int wolfSSL_PEM_write_DHparams(XFILE fp, WOLFSSL_DH* dh);
206#endif /* NO_FILESYSTEM */
207
208#define PEM_read wolfSSL_PEM_read
209#define PEM_read_bio wolfSSL_PEM_read_bio
210#define PEM_write wolfSSL_PEM_write
211#define PEM_write_bio wolfSSL_PEM_write_bio
212
213#define PEM_read_X509 wolfSSL_PEM_read_X509
214#define PEM_read_PrivateKey wolfSSL_PEM_read_PrivateKey
215#define PEM_write_X509 wolfSSL_PEM_write_X509
216#define PEM_write_bio_PrivateKey wolfSSL_PEM_write_bio_PrivateKey
217#define PEM_write_bio_PKCS8PrivateKey wolfSSL_PEM_write_bio_PKCS8PrivateKey
218
219/* DH */
220#define PEM_write_DHparams wolfSSL_PEM_write_DHparams
221/* RSA */
222#define PEM_write_bio_RSAPrivateKey wolfSSL_PEM_write_bio_RSAPrivateKey
223#define PEM_read_bio_RSAPrivateKey wolfSSL_PEM_read_bio_RSAPrivateKey
224#define PEM_write_bio_RSA_PUBKEY wolfSSL_PEM_write_bio_RSA_PUBKEY
225#define PEM_read_bio_RSA_PUBKEY wolfSSL_PEM_read_bio_RSA_PUBKEY
226#define PEM_read_bio_ECPKParameters wolfSSL_PEM_read_bio_ECPKParameters
227#define PEM_write_RSAPrivateKey wolfSSL_PEM_write_RSAPrivateKey
228#define PEM_write_RSA_PUBKEY wolfSSL_PEM_write_RSA_PUBKEY
229#define PEM_write_RSAPublicKey wolfSSL_PEM_write_RSAPublicKey
230#define PEM_read_RSAPublicKey wolfSSL_PEM_read_RSAPublicKey
231/* DSA */
232#define PEM_write_bio_DSAPrivateKey wolfSSL_PEM_write_bio_DSAPrivateKey
233#define PEM_write_DSAPrivateKey wolfSSL_PEM_write_DSAPrivateKey
234#define PEM_write_bio_DSA_PUBKEY wolfSSL_PEM_write_bio_DSA_PUBKEY
235#define PEM_write_DSA_PUBKEY wolfSSL_PEM_write_DSA_PUBKEY
236#define PEM_read_bio_DSAPrivateKey wolfSSL_PEM_read_bio_DSAPrivateKey
237#define PEM_read_bio_DSA_PUBKEY wolfSSL_PEM_read_bio_DSA_PUBKEY
238/* ECC */
239#define PEM_write_bio_ECPrivateKey wolfSSL_PEM_write_bio_ECPrivateKey
240#define PEM_write_bio_EC_PUBKEY wolfSSL_PEM_write_bio_EC_PUBKEY
241#define PEM_write_EC_PUBKEY wolfSSL_PEM_write_EC_PUBKEY
242#define PEM_write_ECPrivateKey wolfSSL_PEM_write_ECPrivateKey
243#define PEM_read_bio_ECPrivateKey wolfSSL_PEM_read_bio_ECPrivateKey
244#define PEM_read_bio_EC_PUBKEY wolfSSL_PEM_read_bio_EC_PUBKEY
245#ifndef NO_WOLFSSL_STUB
246#define PEM_write_bio_ECPKParameters(...) 0
247#endif
248/* EVP_KEY */
249#define PEM_read_bio_PrivateKey wolfSSL_PEM_read_bio_PrivateKey
250#define PEM_read_PUBKEY wolfSSL_PEM_read_PUBKEY
251#define PEM_read_bio_PUBKEY wolfSSL_PEM_read_bio_PUBKEY
252#define PEM_write_bio_PUBKEY wolfSSL_PEM_write_bio_PUBKEY
253
254#ifdef __cplusplus
255 } /* extern "C" */
256#endif
257
258#endif /* WOLFSSL_PEM_H_ */
259
Note: See TracBrowser for help on using the repository browser.