Changeset 94100 in vbox for trunk/src/libs/openssl-3.0.1/crypto/mem_sec.c
- Timestamp:
- Mar 6, 2022 4:22:18 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/libs/openssl-3.0.1/crypto/mem_sec.c
r94082 r94100 22 22 23 23 #ifndef OPENSSL_NO_SECURE_MEMORY 24 # if defined(VBOX) 25 # include <iprt/memsafer.h> 26 # else 24 27 # if defined(_WIN32) 25 28 # include <windows.h> … … 50 53 # include <sys/stat.h> 51 54 # include <fcntl.h> 52 #elif defined(VBOX) 53 # include <iprt/memsafer.h> 55 # endif /* !VBOX */ 54 56 #endif 55 57 … … 82 84 int CRYPTO_secure_malloc_init(size_t size, size_t minsize) 83 85 { 86 #ifndef VBOX 84 87 #ifndef OPENSSL_NO_SECURE_MEMORY 85 88 int ret = 0; … … 101 104 return 0; 102 105 #endif /* OPENSSL_NO_SECURE_MEMORY */ 106 #else 107 return 0; 108 #endif /* VBOX */ 103 109 } 104 110 105 111 int CRYPTO_secure_malloc_done(void) 106 112 { 113 #ifndef VBOX 107 114 #ifndef OPENSSL_NO_SECURE_MEMORY 108 115 if (secure_mem_used == 0) { … … 114 121 } 115 122 #endif /* OPENSSL_NO_SECURE_MEMORY */ 123 #endif /* VBOX */ 116 124 return 0; 117 125 } … … 119 127 int CRYPTO_secure_malloc_initialized(void) 120 128 { 129 #ifndef VBOX 121 130 #ifndef OPENSSL_NO_SECURE_MEMORY 122 131 return secure_mem_initialized; … … 124 133 return 0; 125 134 #endif /* OPENSSL_NO_SECURE_MEMORY */ 135 #else 136 return 0; 137 #endif /* VBOX */ 126 138 } 127 139 128 140 void *CRYPTO_secure_malloc(size_t num, const char *file, int line) 129 141 { 142 #ifndef VBOX 130 143 #ifndef OPENSSL_NO_SECURE_MEMORY 131 144 void *ret; … … 142 155 CRYPTO_THREAD_unlock(sec_malloc_lock); 143 156 return ret; 144 #elif defined(VBOX) 157 #else 158 return CRYPTO_malloc(num, file, line); 159 #endif /* OPENSSL_NO_SECURE_MEMORY */ 160 #else 145 161 RT_NOREF(line); 146 162 return RTMemSaferAllocZTag(num, file); 147 #else 148 return CRYPTO_malloc(num, file, line); 149 #endif /* OPENSSL_NO_SECURE_MEMORY */ 163 #endif /* VBOX */ 150 164 } 151 165 … … 157 171 return CRYPTO_secure_malloc(num, file, line); 158 172 #endif 159 #if !defined(OPENSSL_SECURE_MEMORY) && defined(VBOX)173 #if defined(OPENSSL_NO_SECURE_MEMORY) && defined(VBOX) 160 174 RT_NOREF(line); 161 175 return RTMemSaferAllocZTag(num, file); … … 167 181 void CRYPTO_secure_free(void *ptr, const char *file, int line) 168 182 { 183 #ifndef VBOX 169 184 #ifndef OPENSSL_NO_SECURE_MEMORY 170 185 size_t actual_size; … … 183 198 sh_free(ptr); 184 199 CRYPTO_THREAD_unlock(sec_malloc_lock); 185 #elif defined(VBOX) 200 #else 201 CRYPTO_free(ptr, file, line); 202 #endif /* OPENSSL_NO_SECURE_MEMORY */ 203 #else 186 204 RT_NOREF(line); 187 205 RTMemSaferFree(ptr, 0); 188 #else 189 CRYPTO_free(ptr, file, line); 190 #endif /* OPENSSL_NO_SECURE_MEMORY */ 206 #endif /* VBOX */ 191 207 } 192 208 … … 194 210 const char *file, int line) 195 211 { 212 #ifndef VBOX 196 213 #ifndef OPENSSL_NO_SECURE_MEMORY 197 214 size_t actual_size; … … 211 228 sh_free(ptr); 212 229 CRYPTO_THREAD_unlock(sec_malloc_lock); 213 #elif defined(VBOX) 230 #else 231 if (ptr == NULL) 232 return; 233 OPENSSL_cleanse(ptr, num); 234 CRYPTO_free(ptr, file, line); 235 #endif /* OPENSSL_NO_SECURE_MEMORY */ 236 #else 214 237 RT_NOREF(line); 215 238 RTMemSaferFree(ptr, 0); 216 #else 217 if (ptr == NULL) 218 return; 219 OPENSSL_cleanse(ptr, num); 220 CRYPTO_free(ptr, file, line); 221 #endif /* OPENSSL_NO_SECURE_MEMORY */ 239 #endif /* VBOX */ 222 240 } 223 241 224 242 int CRYPTO_secure_allocated(const void *ptr) 225 243 { 244 #ifndef VBOX 226 245 #ifndef OPENSSL_NO_SECURE_MEMORY 227 246 if (!secure_mem_initialized) … … 233 252 */ 234 253 return sh_allocated(ptr); 235 #elif defined(VBOX) 236 return RTMemSaferGetSize(ptr) > 0; 237 #else 238 return 0; 239 #endif /* OPENSSL_NO_SECURE_MEMORY */ 254 #else 255 return 0; 256 #endif /* OPENSSL_NO_SECURE_MEMORY */ 257 #else 258 return RTMemSaferGetSize((void *)ptr) > 0; 259 #endif /* VBOX */ 240 260 } 241 261 242 262 size_t CRYPTO_secure_used(void) 243 263 { 264 #ifndef VBOX 244 265 #ifndef OPENSSL_NO_SECURE_MEMORY 245 266 return secure_mem_used; … … 247 268 return 0; 248 269 #endif /* OPENSSL_NO_SECURE_MEMORY */ 270 #else 271 return 0; 272 #endif /* VBOX */ 249 273 } 250 274 251 275 size_t CRYPTO_secure_actual_size(void *ptr) 252 276 { 277 #ifndef VBOX 253 278 #ifndef OPENSSL_NO_SECURE_MEMORY 254 279 size_t actual_size; … … 259 284 CRYPTO_THREAD_unlock(sec_malloc_lock); 260 285 return actual_size; 261 #elif defined(VBOX) 286 #else 287 return 0; 288 #endif 289 #else 262 290 return RTMemSaferGetSize(ptr); 263 #else 264 return 0; 265 #endif 266 } 267 291 #endif /* VBOX */ 292 } 293 294 #ifndef VBOX 268 295 /* 269 296 * SECURE HEAP IMPLEMENTATION … … 727 754 } 728 755 #endif /* OPENSSL_NO_SECURE_MEMORY */ 756 #endif /* VBOX */
Note:
See TracChangeset
for help on using the changeset viewer.