author | chegar |
Thu, 17 Oct 2019 20:54:25 +0100 | |
branch | datagramsocketimpl-branch |
changeset 58679 | 9c3209ff7550 |
parent 58678 | 9cf78a70fa4f |
parent 58489 | 2faeaa5933a6 |
permissions | -rw-r--r-- |
2 | 1 |
/* |
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
2 |
* Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved. |
2 | 3 |
*/ |
4 |
||
5 |
/* Copyright (c) 2002 Graz University of Technology. All rights reserved. |
|
6 |
* |
|
7 |
* Redistribution and use in source and binary forms, with or without |
|
8 |
* modification, are permitted provided that the following conditions are met: |
|
9 |
* |
|
10 |
* 1. Redistributions of source code must retain the above copyright notice, |
|
11 |
* this list of conditions and the following disclaimer. |
|
12 |
* |
|
13 |
* 2. Redistributions in binary form must reproduce the above copyright notice, |
|
14 |
* this list of conditions and the following disclaimer in the documentation |
|
15 |
* and/or other materials provided with the distribution. |
|
16 |
* |
|
17 |
* 3. The end-user documentation included with the redistribution, if any, must |
|
18 |
* include the following acknowledgment: |
|
19 |
* |
|
20 |
* "This product includes software developed by IAIK of Graz University of |
|
21 |
* Technology." |
|
22 |
* |
|
23 |
* Alternately, this acknowledgment may appear in the software itself, if |
|
24 |
* and wherever such third-party acknowledgments normally appear. |
|
25 |
* |
|
26 |
* 4. The names "Graz University of Technology" and "IAIK of Graz University of |
|
27 |
* Technology" must not be used to endorse or promote products derived from |
|
28 |
* this software without prior written permission. |
|
29 |
* |
|
30 |
* 5. Products derived from this software may not be called |
|
31 |
* "IAIK PKCS Wrapper", nor may "IAIK" appear in their name, without prior |
|
32 |
* written permission of Graz University of Technology. |
|
33 |
* |
|
34 |
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED |
|
35 |
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|
36 |
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|
37 |
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE LICENSOR BE |
|
38 |
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, |
|
39 |
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
|
40 |
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, |
|
41 |
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON |
|
42 |
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
|
43 |
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
|
44 |
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
|
45 |
* POSSIBILITY OF SUCH DAMAGE. |
|
46 |
*/ |
|
47 |
||
48 |
/* |
|
49 |
* pkcs11wrapper.h |
|
50 |
* 18.05.2001 |
|
51 |
* |
|
52 |
* declaration of all functions used by pkcs11wrapper.c |
|
53 |
* |
|
54 |
* @author Karl Scheibelhofer <Karl.Scheibelhofer@iaik.at> |
|
55 |
* @author Martin Schlaeffer <schlaeff@sbox.tugraz.at> |
|
56 |
*/ |
|
57 |
||
22964
59c522d83ed9
8034856: gcc warnings compiling src/solaris/native/sun/security/pkcs11
alanb
parents:
13678
diff
changeset
|
58 |
#ifndef _PKCS11WRAPPER_H |
59c522d83ed9
8034856: gcc warnings compiling src/solaris/native/sun/security/pkcs11
alanb
parents:
13678
diff
changeset
|
59 |
#define _PKCS11WRAPPER_H 1 |
59c522d83ed9
8034856: gcc warnings compiling src/solaris/native/sun/security/pkcs11
alanb
parents:
13678
diff
changeset
|
60 |
|
2 | 61 |
/* disable asserts in product mode */ |
62 |
#ifndef DEBUG |
|
63 |
#ifndef NDEBUG |
|
64 |
#define NDEBUG |
|
65 |
#endif |
|
66 |
#endif |
|
67 |
||
68 |
/* extra PKCS#11 constants not in the standard include files */ |
|
69 |
||
70 |
#define CKA_NETSCAPE_BASE (0x80000000 + 0x4E534350) |
|
71 |
#define CKA_NETSCAPE_TRUST_BASE (CKA_NETSCAPE_BASE + 0x2000) |
|
72 |
#define CKA_NETSCAPE_TRUST_SERVER_AUTH (CKA_NETSCAPE_TRUST_BASE + 8) |
|
73 |
#define CKA_NETSCAPE_TRUST_CLIENT_AUTH (CKA_NETSCAPE_TRUST_BASE + 9) |
|
74 |
#define CKA_NETSCAPE_TRUST_CODE_SIGNING (CKA_NETSCAPE_TRUST_BASE + 10) |
|
75 |
#define CKA_NETSCAPE_TRUST_EMAIL_PROTECTION (CKA_NETSCAPE_TRUST_BASE + 11) |
|
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
76 |
#define CKA_NETSCAPE_DB 0xD5A0DB00 |
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
77 |
#define CKM_NSS_TLS_PRF_GENERAL 0x80000373 |
2 | 78 |
|
79 |
/* |
|
80 |
||
81 |
Define the PKCS#11 functions to include and exclude. Reduces the size |
|
82 |
of the binary somewhat. |
|
83 |
||
84 |
This list needs to be kept in sync with the mapfile and PKCS11.java |
|
85 |
||
86 |
*/ |
|
87 |
||
88 |
#define P11_ENABLE_C_INITIALIZE |
|
89 |
#define P11_ENABLE_C_FINALIZE |
|
90 |
#define P11_ENABLE_C_GETINFO |
|
91 |
#define P11_ENABLE_C_GETSLOTLIST |
|
92 |
#define P11_ENABLE_C_GETSLOTINFO |
|
93 |
#define P11_ENABLE_C_GETTOKENINFO |
|
94 |
#define P11_ENABLE_C_GETMECHANISMLIST |
|
95 |
#define P11_ENABLE_C_GETMECHANISMINFO |
|
96 |
#undef P11_ENABLE_C_INITTOKEN |
|
97 |
#undef P11_ENABLE_C_INITPIN |
|
98 |
#undef P11_ENABLE_C_SETPIN |
|
99 |
#define P11_ENABLE_C_OPENSESSION |
|
100 |
#define P11_ENABLE_C_CLOSESESSION |
|
101 |
#undef P11_ENABLE_C_CLOSEALLSESSIONS |
|
102 |
#define P11_ENABLE_C_GETSESSIONINFO |
|
11507 | 103 |
#define P11_ENABLE_C_GETOPERATIONSTATE |
104 |
#define P11_ENABLE_C_SETOPERATIONSTATE |
|
2 | 105 |
#define P11_ENABLE_C_LOGIN |
106 |
#define P11_ENABLE_C_LOGOUT |
|
107 |
#define P11_ENABLE_C_CREATEOBJECT |
|
108 |
#define P11_ENABLE_C_COPYOBJECT |
|
109 |
#define P11_ENABLE_C_DESTROYOBJECT |
|
110 |
#undef P11_ENABLE_C_GETOBJECTSIZE |
|
111 |
#define P11_ENABLE_C_GETATTRIBUTEVALUE |
|
112 |
#define P11_ENABLE_C_SETATTRIBUTEVALUE |
|
113 |
#define P11_ENABLE_C_FINDOBJECTSINIT |
|
114 |
#define P11_ENABLE_C_FINDOBJECTS |
|
115 |
#define P11_ENABLE_C_FINDOBJECTSFINAL |
|
116 |
#define P11_ENABLE_C_ENCRYPTINIT |
|
117 |
#define P11_ENABLE_C_ENCRYPT |
|
118 |
#define P11_ENABLE_C_ENCRYPTUPDATE |
|
119 |
#define P11_ENABLE_C_ENCRYPTFINAL |
|
120 |
#define P11_ENABLE_C_DECRYPTINIT |
|
121 |
#define P11_ENABLE_C_DECRYPT |
|
122 |
#define P11_ENABLE_C_DECRYPTUPDATE |
|
123 |
#define P11_ENABLE_C_DECRYPTFINAL |
|
124 |
#define P11_ENABLE_C_DIGESTINIT |
|
125 |
#define P11_ENABLE_C_DIGEST |
|
126 |
#define P11_ENABLE_C_DIGESTUPDATE |
|
127 |
#define P11_ENABLE_C_DIGESTKEY |
|
128 |
#define P11_ENABLE_C_DIGESTFINAL |
|
129 |
#define P11_ENABLE_C_SIGNINIT |
|
130 |
#define P11_ENABLE_C_SIGN |
|
131 |
#define P11_ENABLE_C_SIGNUPDATE |
|
132 |
#define P11_ENABLE_C_SIGNFINAL |
|
133 |
#define P11_ENABLE_C_SIGNRECOVERINIT |
|
134 |
#define P11_ENABLE_C_SIGNRECOVER |
|
135 |
#define P11_ENABLE_C_VERIFYINIT |
|
136 |
#define P11_ENABLE_C_VERIFY |
|
137 |
#define P11_ENABLE_C_VERIFYUPDATE |
|
138 |
#define P11_ENABLE_C_VERIFYFINAL |
|
139 |
#define P11_ENABLE_C_VERIFYRECOVERINIT |
|
140 |
#define P11_ENABLE_C_VERIFYRECOVER |
|
141 |
#undef P11_ENABLE_C_DIGESTENCRYPTUPDATE |
|
142 |
#undef P11_ENABLE_C_DECRYPTDIGESTUPDATE |
|
143 |
#undef P11_ENABLE_C_SIGNENCRYPTUPDATE |
|
144 |
#undef P11_ENABLE_C_DECRYPTVERIFYUPDATE |
|
145 |
#define P11_ENABLE_C_GENERATEKEY |
|
146 |
#define P11_ENABLE_C_GENERATEKEYPAIR |
|
147 |
#define P11_ENABLE_C_WRAPKEY |
|
148 |
#define P11_ENABLE_C_UNWRAPKEY |
|
149 |
#define P11_ENABLE_C_DERIVEKEY |
|
150 |
#define P11_ENABLE_C_SEEDRANDOM |
|
151 |
#define P11_ENABLE_C_GENERATERANDOM |
|
152 |
#undef P11_ENABLE_C_GETFUNCTIONSTATUS |
|
153 |
#undef P11_ENABLE_C_CANCELFUNCTION |
|
154 |
#undef P11_ENABLE_C_WAITFORSLOTEVENT |
|
53257
5170dc2bcf64
6913047: Long term memory leak when using PKCS11 and JCE exceeds 32 bit process address space
mbalao
parents:
51800
diff
changeset
|
155 |
#define P11_ENABLE_GETNATIVEKEYINFO |
5170dc2bcf64
6913047: Long term memory leak when using PKCS11 and JCE exceeds 32 bit process address space
mbalao
parents:
51800
diff
changeset
|
156 |
#define P11_ENABLE_CREATENATIVEKEY |
2 | 157 |
|
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
158 |
|
2 | 159 |
/* include the platform dependent part of the header */ |
160 |
#include "p11_md.h" |
|
161 |
||
162 |
#include <jni.h> |
|
2180
9994f4f08a59
6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider
valeriep
parents:
2
diff
changeset
|
163 |
#include <jni_util.h> |
39142
bf48a9f13cf2
8074580: sun/security/pkcs11/rsa/TestKeyPairGenerator.java fails due to PKCS11Exception: CKR_FUNCTION_FAILED
asmotrak
parents:
25859
diff
changeset
|
164 |
#include <stdarg.h> |
2 | 165 |
|
166 |
#define MAX_STACK_BUFFER_LEN (4 * 1024) |
|
167 |
#define MAX_HEAP_BUFFER_LEN (64 * 1024) |
|
168 |
||
169 |
#define MAX_DIGEST_LEN (64) |
|
170 |
||
171 |
#ifndef min |
|
172 |
#define min(a, b) (((a) < (b)) ? (a) : (b)) |
|
173 |
#endif |
|
174 |
||
175 |
#define ckBBoolToJBoolean(x) ((x == TRUE) ? JNI_TRUE : JNI_FALSE); |
|
176 |
#define jBooleanToCKBBool(x) ((x == JNI_TRUE) ? TRUE : FALSE); |
|
177 |
||
178 |
#define ckByteToJByte(x) ((jbyte) x) |
|
179 |
#define jByteToCKByte(x) ((CK_BYTE) x) |
|
180 |
||
181 |
#define ckLongToJLong(x) ((jlong) x) |
|
182 |
#define jLongToCKLong(x) ((CK_LONG) x) |
|
183 |
||
184 |
#define ckULongToJLong(x) ((jlong) x) |
|
185 |
#define jLongToCKULong(x) ((CK_ULONG) x) |
|
186 |
||
187 |
// For CK_UNAVAILABLE_INFORMATION, always return -1 to avoid 32/64 bit problems. |
|
188 |
#define ckULongSpecialToJLong(x) (((x) == CK_UNAVAILABLE_INFORMATION) \ |
|
189 |
? (jlong)-1 : ((jlong) x)) |
|
190 |
||
191 |
#define ckCharToJChar(x) ((jchar) x) |
|
192 |
#define jCharToCKChar(x) ((CK_CHAR) x) |
|
193 |
||
194 |
#define ckUTF8CharToJChar(x) ((jchar) x) |
|
195 |
#define jCharToCKUTF8Char(x) ((CK_UTF8CHAR) x) |
|
196 |
||
197 |
#define ckFlageToJLong(x) ((jlong) x) |
|
198 |
||
199 |
#define ckVoidPtrToJObject(x) ((jobject) x) |
|
200 |
#define jObjectToCKVoidPtr(x) ((CK_VOID_PTR) x) |
|
201 |
||
202 |
#define jIntToCKLong(x) ((CK_LONG) x) |
|
203 |
#define jIntToCKULong(x) ((CK_ULONG) x) |
|
204 |
#define ckLongToJInt(x) ((jint) x) |
|
205 |
#define ckULongToJInt(x) ((jint) x) |
|
206 |
#define ckULongToJSize(x) ((jsize) x) |
|
207 |
#define unsignedIntToCKULong(x) ((CK_ULONG) x) |
|
208 |
||
57737
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
209 |
//#define TRACE0d(s) { printf(s); fflush(stdout); } |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
210 |
//#define TRACE1d(s, p1) { printf(s, p1); fflush(stdout); } |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
211 |
//#define TRACE2d(s, p1, p2) { printf(s, p1, p2); fflush(stdout); } |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
212 |
|
2 | 213 |
#ifdef P11_DEBUG |
214 |
#define TRACE0(s) { printf(s); fflush(stdout); } |
|
215 |
#define TRACE1(s, p1) { printf(s, p1); fflush(stdout); } |
|
216 |
#define TRACE2(s, p1, p2) { printf(s, p1, p2); fflush(stdout); } |
|
217 |
#define TRACE3(s, p1, p2, p3) { printf(s, p1, p2, p3); fflush(stdout); } |
|
218 |
#else |
|
219 |
#define TRACE0(s) |
|
220 |
#define TRACE1(s, p1) |
|
221 |
#define TRACE2(s, p1, p2) |
|
222 |
#define TRACE3(s, p1, p2, p3) |
|
223 |
#define TRACE_INTEND |
|
224 |
#define TRACE_UNINTEND |
|
225 |
#endif |
|
226 |
||
39142
bf48a9f13cf2
8074580: sun/security/pkcs11/rsa/TestKeyPairGenerator.java fails due to PKCS11Exception: CKR_FUNCTION_FAILED
asmotrak
parents:
25859
diff
changeset
|
227 |
/* debug output */ |
bf48a9f13cf2
8074580: sun/security/pkcs11/rsa/TestKeyPairGenerator.java fails due to PKCS11Exception: CKR_FUNCTION_FAILED
asmotrak
parents:
25859
diff
changeset
|
228 |
extern jboolean debug; |
bf48a9f13cf2
8074580: sun/security/pkcs11/rsa/TestKeyPairGenerator.java fails due to PKCS11Exception: CKR_FUNCTION_FAILED
asmotrak
parents:
25859
diff
changeset
|
229 |
void printDebug(const char *format, ...); |
bf48a9f13cf2
8074580: sun/security/pkcs11/rsa/TestKeyPairGenerator.java fails due to PKCS11Exception: CKR_FUNCTION_FAILED
asmotrak
parents:
25859
diff
changeset
|
230 |
|
2 | 231 |
#define CK_ASSERT_OK 0L |
232 |
||
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
233 |
#define CLASS_P11PSSSIGNATURE "sun/security/pkcs11/P11PSSSignature" |
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
234 |
|
2 | 235 |
#define CLASS_INFO "sun/security/pkcs11/wrapper/CK_INFO" |
236 |
#define CLASS_VERSION "sun/security/pkcs11/wrapper/CK_VERSION" |
|
237 |
#define CLASS_SLOT_INFO "sun/security/pkcs11/wrapper/CK_SLOT_INFO" |
|
238 |
#define CLASS_TOKEN_INFO "sun/security/pkcs11/wrapper/CK_TOKEN_INFO" |
|
239 |
#define CLASS_MECHANISM "sun/security/pkcs11/wrapper/CK_MECHANISM" |
|
240 |
#define CLASS_MECHANISM_INFO "sun/security/pkcs11/wrapper/CK_MECHANISM_INFO" |
|
241 |
#define CLASS_SESSION_INFO "sun/security/pkcs11/wrapper/CK_SESSION_INFO" |
|
242 |
#define CLASS_ATTRIBUTE "sun/security/pkcs11/wrapper/CK_ATTRIBUTE" |
|
243 |
#define CLASS_DATE "sun/security/pkcs11/wrapper/CK_DATE" |
|
244 |
#define CLASS_PKCS11EXCEPTION "sun/security/pkcs11/wrapper/PKCS11Exception" |
|
245 |
#define CLASS_PKCS11RUNTIMEEXCEPTION "sun/security/pkcs11/wrapper/PKCS11RuntimeException" |
|
246 |
#define CLASS_FILE_NOT_FOUND_EXCEPTION "java/io/FileNotFoundException" |
|
247 |
#define CLASS_C_INITIALIZE_ARGS "sun/security/pkcs11/wrapper/CK_C_INITIALIZE_ARGS" |
|
248 |
#define CLASS_CREATEMUTEX "sun/security/pkcs11/wrapper/CK_CREATEMUTEX" |
|
249 |
#define CLASS_DESTROYMUTEX "sun/security/pkcs11/wrapper/CK_DESTROYMUTEX" |
|
250 |
#define CLASS_LOCKMUTEX "sun/security/pkcs11/wrapper/CK_LOCKMUTEX" |
|
251 |
#define CLASS_UNLOCKMUTEX "sun/security/pkcs11/wrapper/CK_UNLOCKMUTEX" |
|
252 |
#define CLASS_NOTIFY "sun/security/pkcs11/wrapper/CK_NOTIFY" |
|
253 |
||
254 |
||
255 |
/* mechanism parameter classes */ |
|
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
256 |
#define CLASS_AES_CTR_PARAMS "sun/security/pkcs11/wrapper/CK_AES_CTR_PARAMS" |
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
257 |
#define CLASS_GCM_PARAMS "sun/security/pkcs11/wrapper/CK_GCM_PARAMS" |
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
258 |
#define CLASS_CCM_PARAMS "sun/security/pkcs11/wrapper/CK_CCM_PARAMS" |
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
259 |
#define CLASS_RSA_PKCS_PSS_PARAMS "sun/security/pkcs11/wrapper/CK_RSA_PKCS_PSS_PARAMS" |
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
260 |
#define CLASS_RSA_PKCS_OAEP_PARAMS "sun/security/pkcs11/wrapper/CK_RSA_PKCS_OAEP_PARAMS" |
2 | 261 |
|
262 |
#define CLASS_MAC_GENERAL_PARAMS "sun/security/pkcs11/wrapper/CK_MAC_GENERAL_PARAMS" |
|
263 |
#define CLASS_PBE_PARAMS "sun/security/pkcs11/wrapper/CK_PBE_PARAMS" |
|
264 |
#define PBE_INIT_VECTOR_SIZE 8 |
|
265 |
#define CLASS_PKCS5_PBKD2_PARAMS "sun/security/pkcs11/wrapper/CK_PKCS5_PBKD2_PARAMS" |
|
266 |
#define CLASS_EXTRACT_PARAMS "sun/security/pkcs11/wrapper/CK_EXTRACT_PARAMS" |
|
267 |
||
268 |
#define CLASS_ECDH1_DERIVE_PARAMS "sun/security/pkcs11/wrapper/CK_ECDH1_DERIVE_PARAMS" |
|
269 |
#define CLASS_ECDH2_DERIVE_PARAMS "sun/security/pkcs11/wrapper/CK_ECDH2_DERIVE_PARAMS" |
|
270 |
#define CLASS_X9_42_DH1_DERIVE_PARAMS "sun/security/pkcs11/wrapper/CK_X9_42_DH1_DERIVE_PARAMS" |
|
271 |
#define CLASS_X9_42_DH2_DERIVE_PARAMS "sun/security/pkcs11/wrapper/CK_X9_42_DH2_DERIVE_PARAMS" |
|
272 |
||
273 |
/* |
|
274 |
#define CLASS_KEA_DERIVE_PARAMS "sun/security/pkcs11/wrapper/CK_KEA_DERIVE_PARAMS" |
|
275 |
#define CLASS_RC2_PARAMS "sun/security/pkcs11/wrapper/CK_RC2_PARAMS" |
|
276 |
#define CLASS_RC2_CBC_PARAMS "sun/security/pkcs11/wrapper/CK_RC2_CBC_PARAMS" |
|
277 |
#define CLASS_RC2_MAC_GENERAL_PARAMS "sun/security/pkcs11/wrapper/CK_RC2_MAC_GENERAL_PARAMS" |
|
278 |
#define CLASS_RC5_PARAMS "sun/security/pkcs11/wrapper/CK_RC5_PARAMS" |
|
279 |
#define CLASS_RC5_CBC_PARAMS "sun/security/pkcs11/wrapper/CK_RC5_CBC_PARAMS" |
|
280 |
#define CLASS_RC5_MAC_GENERAL_PARAMS "sun/security/pkcs11/wrapper/CK_RC5_MAC_GENERAL_PARAMS" |
|
281 |
#define CLASS_SKIPJACK_PRIVATE_WRAP_PARAMS "sun/security/pkcs11/wrapper/CK_SKIPJACK_PRIVATE_WRAP_PARAMS" |
|
282 |
#define CLASS_SKIPJACK_RELAYX_PARAMS "sun/security/pkcs11/wrapper/CK_SKIPJACK_RELAYX_PARAMS" |
|
283 |
#define CLASS_KEY_WRAP_SET_OAEP_PARAMS "sun/security/pkcs11/wrapper/CK_KEY_WRAP_SET_OAEP_PARAMS" |
|
284 |
#define CLASS_KEY_DERIVATION_STRING_DATA "sun/security/pkcs11/wrapper/CK_KEY_DERIVATION_STRING_DATA" |
|
285 |
*/ |
|
286 |
||
287 |
#define CLASS_SSL3_RANDOM_DATA "sun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA" |
|
288 |
// CLASS_SSL3_RANDOM_DATA is used by CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS |
|
289 |
#define CLASS_SSL3_KEY_MAT_OUT "sun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_OUT" |
|
51800
bccd9966f1ed
8029661: Support TLS v1.2 algorithm in SunPKCS11 provider
mbalao
parents:
47216
diff
changeset
|
290 |
// CLASS_SSL3_KEY_MAT_OUT is used by CLASS_SSL3_KEY_MAT_PARAMS and CK_TLS12_KEY_MAT_PARAMS |
2 | 291 |
#define CLASS_SSL3_MASTER_KEY_DERIVE_PARAMS "sun/security/pkcs11/wrapper/CK_SSL3_MASTER_KEY_DERIVE_PARAMS" |
51800
bccd9966f1ed
8029661: Support TLS v1.2 algorithm in SunPKCS11 provider
mbalao
parents:
47216
diff
changeset
|
292 |
#define CLASS_TLS12_MASTER_KEY_DERIVE_PARAMS "sun/security/pkcs11/wrapper/CK_TLS12_MASTER_KEY_DERIVE_PARAMS" |
2 | 293 |
#define CLASS_SSL3_KEY_MAT_PARAMS "sun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_PARAMS" |
51800
bccd9966f1ed
8029661: Support TLS v1.2 algorithm in SunPKCS11 provider
mbalao
parents:
47216
diff
changeset
|
294 |
#define CLASS_TLS12_KEY_MAT_PARAMS "sun/security/pkcs11/wrapper/CK_TLS12_KEY_MAT_PARAMS" |
2 | 295 |
#define CLASS_TLS_PRF_PARAMS "sun/security/pkcs11/wrapper/CK_TLS_PRF_PARAMS" |
51800
bccd9966f1ed
8029661: Support TLS v1.2 algorithm in SunPKCS11 provider
mbalao
parents:
47216
diff
changeset
|
296 |
#define CLASS_TLS_MAC_PARAMS "sun/security/pkcs11/wrapper/CK_TLS_MAC_PARAMS" |
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
297 |
|
58489
2faeaa5933a6
8229243: SunPKCS11-Solaris provider tests failing on Solaris 11.4
valeriep
parents:
57737
diff
changeset
|
298 |
/* function to update the CK_NSS_GCM_PARAMS in mechanism pointer with |
2faeaa5933a6
8229243: SunPKCS11-Solaris provider tests failing on Solaris 11.4
valeriep
parents:
57737
diff
changeset
|
299 |
* CK_GCM_PARAMS |
2faeaa5933a6
8229243: SunPKCS11-Solaris provider tests failing on Solaris 11.4
valeriep
parents:
57737
diff
changeset
|
300 |
*/ |
2faeaa5933a6
8229243: SunPKCS11-Solaris provider tests failing on Solaris 11.4
valeriep
parents:
57737
diff
changeset
|
301 |
CK_MECHANISM_PTR updateGCMParams(JNIEnv *env, CK_MECHANISM_PTR mechPtr); |
2 | 302 |
|
303 |
/* function to convert a PKCS#11 return value other than CK_OK into a Java Exception |
|
304 |
* or to throw a PKCS11RuntimeException |
|
305 |
*/ |
|
306 |
||
307 |
jlong ckAssertReturnValueOK(JNIEnv *env, CK_RV returnValue); |
|
10798
413b731e1818
7103549: Remove dependencies on libjava and libjvm from security libraries
chegar
parents:
8542
diff
changeset
|
308 |
void throwOutOfMemoryError(JNIEnv *env, const char *message); |
413b731e1818
7103549: Remove dependencies on libjava and libjvm from security libraries
chegar
parents:
8542
diff
changeset
|
309 |
void throwNullPointerException(JNIEnv *env, const char *message); |
2 | 310 |
void throwIOException(JNIEnv *env, const char *message); |
2180
9994f4f08a59
6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider
valeriep
parents:
2
diff
changeset
|
311 |
void throwPKCS11RuntimeException(JNIEnv *env, const char *message); |
2 | 312 |
void throwDisconnectedRuntimeException(JNIEnv *env); |
313 |
||
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
314 |
/* functions to free CK structures and pointers |
2180
9994f4f08a59
6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider
valeriep
parents:
2
diff
changeset
|
315 |
*/ |
9994f4f08a59
6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider
valeriep
parents:
2
diff
changeset
|
316 |
void freeCKAttributeArray(CK_ATTRIBUTE_PTR attrPtr, int len); |
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
317 |
void freeCKMechanismPtr(CK_MECHANISM_PTR mechPtr); |
2180
9994f4f08a59
6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider
valeriep
parents:
2
diff
changeset
|
318 |
|
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
319 |
/* functions to convert Java arrays to a CK-type array and the array length */ |
2 | 320 |
|
321 |
void jBooleanArrayToCKBBoolArray(JNIEnv *env, const jbooleanArray jArray, CK_BBOOL **ckpArray, CK_ULONG_PTR ckLength); |
|
322 |
void jByteArrayToCKByteArray(JNIEnv *env, const jbyteArray jArray, CK_BYTE_PTR *ckpArray, CK_ULONG_PTR ckLength); |
|
323 |
void jLongArrayToCKULongArray(JNIEnv *env, const jlongArray jArray, CK_ULONG_PTR *ckpArray, CK_ULONG_PTR ckLength); |
|
324 |
void jCharArrayToCKCharArray(JNIEnv *env, const jcharArray jArray, CK_CHAR_PTR *ckpArray, CK_ULONG_PTR ckLength); |
|
325 |
void jCharArrayToCKUTF8CharArray(JNIEnv *env, const jcharArray jArray, CK_UTF8CHAR_PTR *ckpArray, CK_ULONG_PTR ckLength); |
|
326 |
void jStringToCKUTF8CharArray(JNIEnv *env, const jstring jArray, CK_UTF8CHAR_PTR *ckpArray, CK_ULONG_PTR ckpLength); |
|
327 |
void jAttributeArrayToCKAttributeArray(JNIEnv *env, jobjectArray jAArray, CK_ATTRIBUTE_PTR *ckpArray, CK_ULONG_PTR ckpLength); |
|
328 |
/*void jObjectArrayToCKVoidPtrArray(JNIEnv *env, const jobjectArray jArray, CK_VOID_PTR_PTR ckpArray, CK_ULONG_PTR ckpLength); */ |
|
329 |
||
330 |
||
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
331 |
/* functions to convert a CK-type array and the array length to a Java array */ |
2 | 332 |
|
3321
fed33393bc52
6823905: crash in sun.security.pkcs11.wrapper.PKCS11.C_Sign during stress-test
valeriep
parents:
2180
diff
changeset
|
333 |
jbyteArray ckByteArrayToJByteArray(JNIEnv *env, const CK_BYTE_PTR ckpArray, CK_ULONG ckLength); |
2 | 334 |
jlongArray ckULongArrayToJLongArray(JNIEnv *env, const CK_ULONG_PTR ckpArray, CK_ULONG ckLength); |
335 |
jcharArray ckCharArrayToJCharArray(JNIEnv *env, const CK_CHAR_PTR ckpArray, CK_ULONG length); |
|
336 |
jcharArray ckUTF8CharArrayToJCharArray(JNIEnv *env, const CK_UTF8CHAR_PTR ckpArray, CK_ULONG ckLength); |
|
337 |
||
338 |
||
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
339 |
/* functions to convert a CK-type structure or a pointer to a CK-value to a Java object */ |
2 | 340 |
|
341 |
jobject ckBBoolPtrToJBooleanObject(JNIEnv *env, const CK_BBOOL* ckpValue); |
|
342 |
jobject ckULongPtrToJLongObject(JNIEnv *env, const CK_ULONG_PTR ckpValue); |
|
343 |
jobject ckDatePtrToJDateObject(JNIEnv *env, const CK_DATE *ckpValue); |
|
344 |
jobject ckVersionPtrToJVersion(JNIEnv *env, const CK_VERSION_PTR ckpVersion); |
|
345 |
jobject ckSessionInfoPtrToJSessionInfo(JNIEnv *env, const CK_SESSION_INFO_PTR ckpSessionInfo); |
|
346 |
jobject ckAttributePtrToJAttribute(JNIEnv *env, const CK_ATTRIBUTE_PTR ckpAttribute); |
|
347 |
||
348 |
||
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
349 |
/* function to convert the CK-value used by the CK_ATTRIBUTE structure to a Java object */ |
2 | 350 |
|
351 |
jobject ckAttributeValueToJObject(JNIEnv *env, const CK_ATTRIBUTE_PTR ckpAttribute); |
|
352 |
||
353 |
||
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
354 |
/* functions to convert a Java object to a CK-type structure or a pointer to a CK-value */ |
2 | 355 |
|
356 |
CK_BBOOL* jBooleanObjectToCKBBoolPtr(JNIEnv *env, jobject jObject); |
|
357 |
CK_BYTE_PTR jByteObjectToCKBytePtr(JNIEnv *env, jobject jObject); |
|
358 |
CK_ULONG* jIntegerObjectToCKULongPtr(JNIEnv *env, jobject jObject); |
|
359 |
CK_ULONG* jLongObjectToCKULongPtr(JNIEnv *env, jobject jObject); |
|
360 |
CK_CHAR_PTR jCharObjectToCKCharPtr(JNIEnv *env, jobject jObject); |
|
361 |
CK_VERSION_PTR jVersionToCKVersionPtr(JNIEnv *env, jobject jVersion); |
|
57737
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
362 |
CK_DATE * jDateObjectToCKDatePtr(JNIEnv *env, jobject jDate); |
2 | 363 |
CK_ATTRIBUTE jAttributeToCKAttribute(JNIEnv *env, jobject jAttribute); |
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
364 |
CK_MECHANISM_PTR jMechanismToCKMechanismPtr(JNIEnv *env, jobject jMechanism); |
2 | 365 |
|
366 |
||
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
367 |
/* functions to convert Java objects used by the Mechanism and Attribute class to a CK-type structure */ |
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
368 |
CK_VOID_PTR jObjectToPrimitiveCKObjectPtr(JNIEnv *env, jobject jObject, CK_ULONG *ckpLength); |
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
369 |
CK_VOID_PTR jMechParamToCKMechParamPtr(JNIEnv *env, jobject jParam, CK_MECHANISM_TYPE, CK_ULONG |
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
370 |
*ckpLength); |
2 | 371 |
|
372 |
||
57737
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
373 |
/* functions to convert a specific Java mechanism parameter object to a CK-mechanism parameter pointer */ |
2 | 374 |
|
57737
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
375 |
CK_RSA_PKCS_OAEP_PARAMS_PTR jRsaPkcsOaepParamToCKRsaPkcsOaepParamPtr(JNIEnv *env, |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
376 |
jobject jParam, CK_ULONG* pLength); |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
377 |
CK_PBE_PARAMS_PTR jPbeParamToCKPbeParamPtr(JNIEnv *env, jobject jParam, CK_ULONG* pLength); |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
378 |
CK_PKCS5_PBKD2_PARAMS_PTR jPkcs5Pbkd2ParamToCKPkcs5Pbkd2ParamPtr(JNIEnv *env, jobject jParam, CK_ULONG* pLength); |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
379 |
CK_SSL3_MASTER_KEY_DERIVE_PARAMS_PTR jSsl3MasterKeyDeriveParamToCKSsl3MasterKeyDeriveParamPtr(JNIEnv *env, jobject jParam, CK_ULONG* pLength); |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
380 |
CK_SSL3_KEY_MAT_PARAMS_PTR jSsl3KeyMatParamToCKSsl3KeyMatParamPtr(JNIEnv *env, jobject jParam, CK_ULONG* pLength); |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
381 |
CK_KEY_DERIVATION_STRING_DATA jKeyDerivationStringDataToCKKeyDerivationStringData(JNIEnv *env, jobject jParam); |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
382 |
CK_RSA_PKCS_PSS_PARAMS_PTR jRsaPkcsPssParamToCKRsaPkcsPssParamPtr(JNIEnv *env, jobject jParam, CK_ULONG* pLength); |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
383 |
CK_ECDH1_DERIVE_PARAMS_PTR jEcdh1DeriveParamToCKEcdh1DeriveParamPtr(JNIEnv *env, jobject jParam, CK_ULONG* pLength); |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
384 |
CK_ECDH2_DERIVE_PARAMS_PTR jEcdh2DeriveParamToCKEcdh2DeriveParamPtr(JNIEnv *env, jobject jParam, CK_ULONG* pLength); |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
385 |
CK_X9_42_DH1_DERIVE_PARAMS_PTR jX942Dh1DeriveParamToCKX942Dh1DeriveParamPtr(JNIEnv *env, jobject jParam, CK_ULONG* pLength); |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
386 |
CK_X9_42_DH2_DERIVE_PARAMS_PTR jX942Dh2DeriveParamToCKX942Dh2DeriveParamPtr(JNIEnv *env, jobject jParam, CK_ULONG* pLength); |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
387 |
|
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
388 |
/* functions to copy the returned values inside CK-mechanism back to Java object */ |
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
389 |
|
2 | 390 |
void copyBackPBEInitializationVector(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism); |
391 |
void copyBackSetUnwrappedKey(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism); |
|
51800
bccd9966f1ed
8029661: Support TLS v1.2 algorithm in SunPKCS11 provider
mbalao
parents:
47216
diff
changeset
|
392 |
void ssl3CopyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism); |
bccd9966f1ed
8029661: Support TLS v1.2 algorithm in SunPKCS11 provider
mbalao
parents:
47216
diff
changeset
|
393 |
void tls12CopyBackClientVersion(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism); |
bccd9966f1ed
8029661: Support TLS v1.2 algorithm in SunPKCS11 provider
mbalao
parents:
47216
diff
changeset
|
394 |
void ssl3CopyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism); |
bccd9966f1ed
8029661: Support TLS v1.2 algorithm in SunPKCS11 provider
mbalao
parents:
47216
diff
changeset
|
395 |
void tls12CopyBackKeyMatParams(JNIEnv *env, CK_MECHANISM *ckMechanism, jobject jMechanism); |
2 | 396 |
|
397 |
||
398 |
/* functions to convert the InitArgs object for calling the right Java mutex functions */ |
|
399 |
||
400 |
CK_C_INITIALIZE_ARGS_PTR makeCKInitArgsAdapter(JNIEnv *env, jobject pInitArgs); |
|
401 |
||
402 |
#ifndef NO_CALLBACKS /* if the library should not make callbacks; e.g. no javai.lib or jvm.lib available */ |
|
403 |
CK_RV callJCreateMutex(CK_VOID_PTR_PTR ppMutex); |
|
404 |
CK_RV callJDestroyMutex(CK_VOID_PTR pMutex); |
|
405 |
CK_RV callJLockMutex(CK_VOID_PTR pMutex); |
|
406 |
CK_RV callJUnlockMutex(CK_VOID_PTR pMutex); |
|
407 |
#endif /* NO_CALLBACKS */ |
|
408 |
||
409 |
void putModuleEntry(JNIEnv *env, jobject pkcs11Implementation, ModuleData *moduleData); |
|
410 |
ModuleData * removeModuleEntry(JNIEnv *env, jobject pkcs11Implementation); |
|
411 |
CK_FUNCTION_LIST_PTR getFunctionList(JNIEnv *env, jobject pkcs11Implementation); |
|
412 |
||
413 |
/* A structure to encapsulate the required data for a Notify callback */ |
|
414 |
struct NotifyEncapsulation { |
|
415 |
||
416 |
/* The object that implements the CK_NOTIFY interface and which should be |
|
417 |
* notified. |
|
418 |
*/ |
|
419 |
jobject jNotifyObject; |
|
420 |
||
421 |
/* The data object to pass back to the Notify object upon callback. */ |
|
422 |
jobject jApplicationData; |
|
423 |
}; |
|
424 |
typedef struct NotifyEncapsulation NotifyEncapsulation; |
|
425 |
||
426 |
/* The function for handling notify callbacks. */ |
|
427 |
CK_RV notifyCallback( |
|
428 |
CK_SESSION_HANDLE hSession, /* the session's handle */ |
|
429 |
CK_NOTIFICATION event, |
|
430 |
CK_VOID_PTR pApplication /* passed to C_OpenSession */ |
|
431 |
); |
|
432 |
||
433 |
||
434 |
/* A node of the list of notify callbacks. To be able to free the resources after use. */ |
|
435 |
struct NotifyListNode { |
|
436 |
||
437 |
/* The handle of the session this notify object is attached to*/ |
|
438 |
CK_SESSION_HANDLE hSession; |
|
439 |
||
440 |
/* Reference to the Notify encapsulation object that was passed to C_OpenSession. */ |
|
441 |
NotifyEncapsulation *notifyEncapsulation; |
|
442 |
||
443 |
/* Pointer to the next node in the list. */ |
|
444 |
struct NotifyListNode *next; |
|
445 |
||
446 |
}; |
|
447 |
typedef struct NotifyListNode NotifyListNode; |
|
448 |
||
449 |
void putNotifyEntry(JNIEnv *env, CK_SESSION_HANDLE hSession, NotifyEncapsulation *notifyEncapsulation); |
|
450 |
NotifyEncapsulation * removeNotifyEntry(JNIEnv *env, CK_SESSION_HANDLE hSession); |
|
451 |
NotifyEncapsulation * removeFirstNotifyEntry(JNIEnv *env); |
|
452 |
||
453 |
jobject createLockObject(JNIEnv *env); |
|
454 |
void destroyLockObject(JNIEnv *env, jobject jLockObject); |
|
455 |
||
456 |
extern jfieldID pNativeDataID; |
|
457 |
extern jfieldID mech_mechanismID; |
|
458 |
extern jfieldID mech_pParameterID; |
|
55332
f492567244ab
8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
valeriep
parents:
53257
diff
changeset
|
459 |
extern jfieldID mech_pHandleID; |
2 | 460 |
|
461 |
extern jclass jByteArrayClass; |
|
462 |
extern jclass jLongClass; |
|
463 |
||
464 |
#ifndef NO_CALLBACKS |
|
465 |
extern NotifyListNode *notifyListHead; |
|
466 |
extern jobject notifyListLock; |
|
467 |
||
468 |
extern jobject jInitArgsObject; |
|
469 |
extern CK_C_INITIALIZE_ARGS_PTR ckpGlobalInitArgs; |
|
470 |
#endif /* NO_CALLBACKS */ |
|
2180
9994f4f08a59
6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider
valeriep
parents:
2
diff
changeset
|
471 |
|
9994f4f08a59
6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider
valeriep
parents:
2
diff
changeset
|
472 |
#ifdef P11_MEMORYDEBUG |
9994f4f08a59
6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider
valeriep
parents:
2
diff
changeset
|
473 |
#include <stdlib.h> |
9994f4f08a59
6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider
valeriep
parents:
2
diff
changeset
|
474 |
|
57737
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
475 |
/* Simple malloc/calloc/free dumper */ |
2180
9994f4f08a59
6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider
valeriep
parents:
2
diff
changeset
|
476 |
void *p11malloc(size_t c, char *file, int line); |
57737
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
477 |
void *p11calloc(size_t c, size_t s, char *file, int line); |
2180
9994f4f08a59
6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider
valeriep
parents:
2
diff
changeset
|
478 |
void p11free(void *p, char *file, int line); |
9994f4f08a59
6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider
valeriep
parents:
2
diff
changeset
|
479 |
|
13678
5c8001201f98
7197771: Adjust jdk sources to avoid use of implementation defined value of __FILE__
ohair
parents:
11507
diff
changeset
|
480 |
/* Use THIS_FILE when it is available. */ |
5c8001201f98
7197771: Adjust jdk sources to avoid use of implementation defined value of __FILE__
ohair
parents:
11507
diff
changeset
|
481 |
#ifndef THIS_FILE |
5c8001201f98
7197771: Adjust jdk sources to avoid use of implementation defined value of __FILE__
ohair
parents:
11507
diff
changeset
|
482 |
#define THIS_FILE __FILE__ |
5c8001201f98
7197771: Adjust jdk sources to avoid use of implementation defined value of __FILE__
ohair
parents:
11507
diff
changeset
|
483 |
#endif |
5c8001201f98
7197771: Adjust jdk sources to avoid use of implementation defined value of __FILE__
ohair
parents:
11507
diff
changeset
|
484 |
|
5c8001201f98
7197771: Adjust jdk sources to avoid use of implementation defined value of __FILE__
ohair
parents:
11507
diff
changeset
|
485 |
#define malloc(c) (p11malloc((c), THIS_FILE, __LINE__)) |
57737
6bbb4af131e3
8228835: Memory leak in PKCS11 provider when using AES GCM
valeriep
parents:
55332
diff
changeset
|
486 |
#define calloc(c, s) (p11calloc((c), (s), THIS_FILE, __LINE__)) |
13678
5c8001201f98
7197771: Adjust jdk sources to avoid use of implementation defined value of __FILE__
ohair
parents:
11507
diff
changeset
|
487 |
#define free(c) (p11free((c), THIS_FILE, __LINE__)) |
2180
9994f4f08a59
6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider
valeriep
parents:
2
diff
changeset
|
488 |
|
9994f4f08a59
6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider
valeriep
parents:
2
diff
changeset
|
489 |
#endif |
22964
59c522d83ed9
8034856: gcc warnings compiling src/solaris/native/sun/security/pkcs11
alanb
parents:
13678
diff
changeset
|
490 |
|
59c522d83ed9
8034856: gcc warnings compiling src/solaris/native/sun/security/pkcs11
alanb
parents:
13678
diff
changeset
|
491 |
#endif /* _PKCS11WRAPPER_H */ |