diff options
| author | markus <> | 2002-09-05 22:45:21 +0000 |
|---|---|---|
| committer | markus <> | 2002-09-05 22:45:21 +0000 |
| commit | 2a6851ef8adb0e84ff2515493d3704a13c6256b0 (patch) | |
| tree | 9df5b497548eaf51e9f234d27aaf988cd14882c2 /src/lib/libcrypto/engine/hw_ubsec.c | |
| parent | 5514995a9d5ed91db089875adb509c7781357c0e (diff) | |
| download | openbsd-2a6851ef8adb0e84ff2515493d3704a13c6256b0.tar.gz openbsd-2a6851ef8adb0e84ff2515493d3704a13c6256b0.tar.bz2 openbsd-2a6851ef8adb0e84ff2515493d3704a13c6256b0.zip | |
import openssl-0.9.7-beta3
Diffstat (limited to 'src/lib/libcrypto/engine/hw_ubsec.c')
| -rw-r--r-- | src/lib/libcrypto/engine/hw_ubsec.c | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/lib/libcrypto/engine/hw_ubsec.c b/src/lib/libcrypto/engine/hw_ubsec.c index 743c06043c..63397f868c 100644 --- a/src/lib/libcrypto/engine/hw_ubsec.c +++ b/src/lib/libcrypto/engine/hw_ubsec.c | |||
| @@ -304,7 +304,24 @@ static int max_key_len = 1024; /* ??? */ | |||
| 304 | * symbol names to bind to. | 304 | * symbol names to bind to. |
| 305 | */ | 305 | */ |
| 306 | 306 | ||
| 307 | static const char *UBSEC_LIBNAME = "ubsec"; | 307 | static const char *UBSEC_LIBNAME = NULL; |
| 308 | static const char *get_UBSEC_LIBNAME(void) | ||
| 309 | { | ||
| 310 | if(UBSEC_LIBNAME) | ||
| 311 | return UBSEC_LIBNAME; | ||
| 312 | return "ubsec"; | ||
| 313 | } | ||
| 314 | static void free_UBSEC_LIBNAME(void) | ||
| 315 | { | ||
| 316 | if(UBSEC_LIBNAME) | ||
| 317 | OPENSSL_free((void*)UBSEC_LIBNAME); | ||
| 318 | UBSEC_LIBNAME = NULL; | ||
| 319 | } | ||
| 320 | static long set_UBSEC_LIBNAME(const char *name) | ||
| 321 | { | ||
| 322 | free_UBSEC_LIBNAME(); | ||
| 323 | return (((UBSEC_LIBNAME = BUF_strdup(name)) != NULL) ? 1 : 0); | ||
| 324 | } | ||
| 308 | static const char *UBSEC_F1 = "ubsec_bytes_to_bits"; | 325 | static const char *UBSEC_F1 = "ubsec_bytes_to_bits"; |
| 309 | static const char *UBSEC_F2 = "ubsec_bits_to_bytes"; | 326 | static const char *UBSEC_F2 = "ubsec_bits_to_bytes"; |
| 310 | static const char *UBSEC_F3 = "ubsec_open"; | 327 | static const char *UBSEC_F3 = "ubsec_open"; |
| @@ -328,6 +345,7 @@ static const char *UBSEC_F13 = "ubsec_max_key_len_ioctl"; | |||
| 328 | /* Destructor (complements the "ENGINE_ubsec()" constructor) */ | 345 | /* Destructor (complements the "ENGINE_ubsec()" constructor) */ |
| 329 | static int ubsec_destroy(ENGINE *e) | 346 | static int ubsec_destroy(ENGINE *e) |
| 330 | { | 347 | { |
| 348 | free_UBSEC_LIBNAME(); | ||
| 331 | ERR_unload_UBSEC_strings(); | 349 | ERR_unload_UBSEC_strings(); |
| 332 | return 1; | 350 | return 1; |
| 333 | } | 351 | } |
| @@ -364,7 +382,7 @@ static int ubsec_init(ENGINE *e) | |||
| 364 | /* | 382 | /* |
| 365 | * Attempt to load libubsec.so/ubsec.dll/whatever. | 383 | * Attempt to load libubsec.so/ubsec.dll/whatever. |
| 366 | */ | 384 | */ |
| 367 | ubsec_dso = DSO_load(NULL, UBSEC_LIBNAME, NULL, 0); | 385 | ubsec_dso = DSO_load(NULL, get_UBSEC_LIBNAME(), NULL, 0); |
| 368 | if(ubsec_dso == NULL) | 386 | if(ubsec_dso == NULL) |
| 369 | { | 387 | { |
| 370 | UBSECerr(UBSEC_F_UBSEC_INIT, UBSEC_R_DSO_FAILURE); | 388 | UBSECerr(UBSEC_F_UBSEC_INIT, UBSEC_R_DSO_FAILURE); |
| @@ -459,6 +477,7 @@ err: | |||
| 459 | 477 | ||
| 460 | static int ubsec_finish(ENGINE *e) | 478 | static int ubsec_finish(ENGINE *e) |
| 461 | { | 479 | { |
| 480 | free_UBSEC_LIBNAME(); | ||
| 462 | if(ubsec_dso == NULL) | 481 | if(ubsec_dso == NULL) |
| 463 | { | 482 | { |
| 464 | UBSECerr(UBSEC_F_UBSEC_FINISH, UBSEC_R_NOT_LOADED); | 483 | UBSECerr(UBSEC_F_UBSEC_FINISH, UBSEC_R_NOT_LOADED); |
| @@ -508,8 +527,7 @@ static int ubsec_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)()) | |||
| 508 | UBSECerr(UBSEC_F_UBSEC_CTRL,UBSEC_R_ALREADY_LOADED); | 527 | UBSECerr(UBSEC_F_UBSEC_CTRL,UBSEC_R_ALREADY_LOADED); |
| 509 | return 0; | 528 | return 0; |
| 510 | } | 529 | } |
| 511 | UBSEC_LIBNAME = (const char *)p; | 530 | return set_UBSEC_LIBNAME((const char *)p); |
| 512 | return 1; | ||
| 513 | default: | 531 | default: |
| 514 | break; | 532 | break; |
| 515 | } | 533 | } |
