pkcs11-helper
pkcs11h-openssl.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2005-2018 Alon Bar-Lev <alon.barlev@gmail.com>
3  *
4  * This software is available to you under a choice of one of two
5  * licenses. You may choose to be licensed under the terms of the GNU
6  * General Public License (GPL) Version 2, or the BSD license.
7  *
8  * GNU General Public License (GPL) Version 2
9  * ===========================================
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License version 2
12  * as published by the Free Software Foundation.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program (see the file COPYING.GPL included with this
21  * distribution); if not, write to the Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23  *
24  * BSD License
25  * ============
26  * Redistribution and use in source and binary forms, with or without
27  * modification, are permitted provided that the following conditions are met:
28  *
29  * o Redistributions of source code must retain the above copyright notice,
30  * this list of conditions and the following disclaimer.
31  * o Redistributions in binary form must reproduce the above copyright
32  * notice, this list of conditions and the following disclaimer in the
33  * documentation and/or other materials provided with the distribution.
34  * o Neither the name of the Alon Bar-Lev nor the names of its
35  * contributors may be used to endorse or promote products derived from
36  * this software without specific prior written permission.
37  *
38  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
39  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
40  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
41  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
42  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
43  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
44  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
45  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
46  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
47  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
48  * POSSIBILITY OF SUCH DAMAGE.
49  */
50 
66 #ifndef __PKCS11H_HELPER_H
67 #define __PKCS11H_HELPER_H
68 
69 #include <openssl/x509.h>
70 #ifndef OPENSSL_NO_RSA
71 #include <openssl/rsa.h>
72 #endif
75 
76 #if defined(__cplusplus)
77 extern "C" {
78 #endif
79 
85  IN const pkcs11h_certificate_t certificate
86 );
87 
88 struct pkcs11h_openssl_session_s;
89 
93 typedef struct pkcs11h_openssl_session_s *pkcs11h_openssl_session_t;
94 
100 X509 *
102  IN const pkcs11h_certificate_t certificate
103 );
104 
112 pkcs11h_openssl_session_t
114  IN const pkcs11h_certificate_t certificate
115 );
116 
124  IN const pkcs11h_openssl_session_t openssl_session
125 );
126 
132 void
134  IN const pkcs11h_openssl_session_t openssl_session,
135  IN const pkcs11h_hook_openssl_cleanup_t cleanup
136 );
137 
143 void
145  IN const pkcs11h_openssl_session_t openssl_session
146 );
147 
153 #ifndef OPENSSL_NO_RSA
154 RSA *
156  IN const pkcs11h_openssl_session_t openssl_session
157 );
158 #endif
159 
165 EVP_PKEY *
167  IN const pkcs11h_openssl_session_t openssl_session
168 );
169 
175 X509 *
177  IN const pkcs11h_openssl_session_t openssl_session
178 );
179 
180 #ifdef __cplusplus
181 }
182 #endif
183 
186 #endif /* __PKCS11H_OPENSSL_H */
struct pkcs11h_openssl_session_s * pkcs11h_openssl_session_t
OpenSSL session reference.
Definition: pkcs11h-openssl.h:93
struct pkcs11h_certificate_s * pkcs11h_certificate_t
Certificate object.
Definition: pkcs11h-certificate.h:92
RSA * pkcs11h_openssl_session_getRSA(IN const pkcs11h_openssl_session_t openssl_session)
Returns an RSA object out of the openssl_session object.
pkcs11-helper certificate functions.
pkcs11h_hook_openssl_cleanup_t pkcs11h_openssl_getCleanupHook(IN const pkcs11h_openssl_session_t openssl_session)
Sets cleanup hook.
X509 * pkcs11h_openssl_session_getX509(IN const pkcs11h_openssl_session_t openssl_session)
Returns an X509 object out of the openssl_session object.
pkcs11-helper core.
void pkcs11h_openssl_setCleanupHook(IN const pkcs11h_openssl_session_t openssl_session, IN const pkcs11h_hook_openssl_cleanup_t cleanup)
Sets cleanup hook.
X509 * pkcs11h_openssl_getX509(IN const pkcs11h_certificate_t certificate)
Returns an X509 object out of the openssl_session object.
void(* pkcs11h_hook_openssl_cleanup_t)(IN const pkcs11h_certificate_t certificate)
OpenSSL RSA cleanup hook.
Definition: pkcs11h-openssl.h:84
EVP_PKEY * pkcs11h_openssl_session_getEVP(IN const pkcs11h_openssl_session_t openssl_session)
Returns an EVP_PKEY out of the openssl_session object.
pkcs11h_openssl_session_t pkcs11h_openssl_createSession(IN const pkcs11h_certificate_t certificate)
Create OpenSSL session based on a certificate object.
void pkcs11h_openssl_freeSession(IN const pkcs11h_openssl_session_t openssl_session)
Free OpenSSL session.

pkcs11-helper, Copyright (C) Alon Bar-Lev <alon.barlev@gmail.com>OpenSC-Project.org Logo