diff options
author | bcook <> | 2014-07-09 09:06:58 +0000 |
---|---|---|
committer | bcook <> | 2014-07-09 09:06:58 +0000 |
commit | ea9e0aeb7bfbb0e9071d08a944d7c7978d8a39d7 (patch) | |
tree | c1369ba2d9b8570432def781c75b92896ecea7ce /src/lib | |
parent | 2f2cdb52385907510d4c640b06c23b75ed0deaf6 (diff) | |
download | openbsd-ea9e0aeb7bfbb0e9071d08a944d7c7978d8a39d7.tar.gz openbsd-ea9e0aeb7bfbb0e9071d08a944d7c7978d8a39d7.tar.bz2 openbsd-ea9e0aeb7bfbb0e9071d08a944d7c7978d8a39d7.zip |
Remove typecasts on password_callback.
Rather than casting password_callback to the correct function pointer
signature at every call site, change it to match the signature instead.
ok miod@ deraadt@ tedu@
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libssl/src/apps/apps.c | 27 | ||||
-rw-r--r-- | src/lib/libssl/src/apps/apps.h | 4 | ||||
-rw-r--r-- | src/lib/libssl/src/apps/genrsa.c | 4 |
3 files changed, 15 insertions, 20 deletions
diff --git a/src/lib/libssl/src/apps/apps.c b/src/lib/libssl/src/apps/apps.c index 66d82025fb..e54aa7778b 100644 --- a/src/lib/libssl/src/apps/apps.c +++ b/src/lib/libssl/src/apps/apps.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: apps.c,v 1.60 2014/06/28 04:39:41 deraadt Exp $ */ | 1 | /* $OpenBSD: apps.c,v 1.61 2014/07/09 09:06:58 bcook Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -369,8 +369,9 @@ destroy_ui_method(void) | |||
369 | } | 369 | } |
370 | 370 | ||
371 | int | 371 | int |
372 | password_callback(char *buf, int bufsiz, int verify, PW_CB_DATA *cb_tmp) | 372 | password_callback(char *buf, int bufsiz, int verify, void *arg) |
373 | { | 373 | { |
374 | PW_CB_DATA *cb_tmp = arg; | ||
374 | UI *ui = NULL; | 375 | UI *ui = NULL; |
375 | int res = 0; | 376 | int res = 0; |
376 | const char *prompt_info = NULL; | 377 | const char *prompt_info = NULL; |
@@ -587,7 +588,7 @@ load_pkcs12(BIO *err, BIO *in, const char *desc, pem_password_cb *pem_cb, | |||
587 | pass = ""; | 588 | pass = ""; |
588 | else { | 589 | else { |
589 | if (!pem_cb) | 590 | if (!pem_cb) |
590 | pem_cb = (pem_password_cb *) password_callback; | 591 | pem_cb = password_callback; |
591 | len = pem_cb(tpass, PEM_BUFSIZE, 0, cb_data); | 592 | len = pem_cb(tpass, PEM_BUFSIZE, 0, cb_data); |
592 | if (len < 0) { | 593 | if (len < 0) { |
593 | BIO_printf(err, "Passpharse callback error for %s\n", | 594 | BIO_printf(err, "Passpharse callback error for %s\n", |
@@ -654,8 +655,7 @@ load_cert(BIO *err, const char *file, int format, const char *pass, ENGINE *e, | |||
654 | nx->cert = NULL; | 655 | nx->cert = NULL; |
655 | NETSCAPE_X509_free(nx); | 656 | NETSCAPE_X509_free(nx); |
656 | } else if (format == FORMAT_PEM) | 657 | } else if (format == FORMAT_PEM) |
657 | x = PEM_read_bio_X509_AUX(cert, NULL, | 658 | x = PEM_read_bio_X509_AUX(cert, NULL, password_callback, NULL); |
658 | (pem_password_cb *) password_callback, NULL); | ||
659 | else if (format == FORMAT_PKCS12) { | 659 | else if (format == FORMAT_PKCS12) { |
660 | if (!load_pkcs12(err, cert, cert_descrip, NULL, NULL, | 660 | if (!load_pkcs12(err, cert, cert_descrip, NULL, NULL, |
661 | NULL, &x, NULL)) | 661 | NULL, &x, NULL)) |
@@ -724,16 +724,14 @@ load_key(BIO *err, const char *file, int format, int maybe_stdin, | |||
724 | if (format == FORMAT_ASN1) { | 724 | if (format == FORMAT_ASN1) { |
725 | pkey = d2i_PrivateKey_bio(key, NULL); | 725 | pkey = d2i_PrivateKey_bio(key, NULL); |
726 | } else if (format == FORMAT_PEM) { | 726 | } else if (format == FORMAT_PEM) { |
727 | pkey = PEM_read_bio_PrivateKey(key, NULL, | 727 | pkey = PEM_read_bio_PrivateKey(key, NULL, password_callback, &cb_data); |
728 | (pem_password_cb *) password_callback, &cb_data); | ||
729 | } | 728 | } |
730 | #if !defined(OPENSSL_NO_RC4) && !defined(OPENSSL_NO_RSA) | 729 | #if !defined(OPENSSL_NO_RC4) && !defined(OPENSSL_NO_RSA) |
731 | else if (format == FORMAT_NETSCAPE || format == FORMAT_IISSGC) | 730 | else if (format == FORMAT_NETSCAPE || format == FORMAT_IISSGC) |
732 | pkey = load_netscape_key(err, key, file, key_descrip, format); | 731 | pkey = load_netscape_key(err, key, file, key_descrip, format); |
733 | #endif | 732 | #endif |
734 | else if (format == FORMAT_PKCS12) { | 733 | else if (format == FORMAT_PKCS12) { |
735 | if (!load_pkcs12(err, key, key_descrip, | 734 | if (!load_pkcs12(err, key, key_descrip, password_callback, &cb_data, |
736 | (pem_password_cb *) password_callback, &cb_data, | ||
737 | &pkey, NULL, NULL)) | 735 | &pkey, NULL, NULL)) |
738 | goto end; | 736 | goto end; |
739 | } | 737 | } |
@@ -741,7 +739,7 @@ load_key(BIO *err, const char *file, int format, int maybe_stdin, | |||
741 | else if (format == FORMAT_MSBLOB) | 739 | else if (format == FORMAT_MSBLOB) |
742 | pkey = b2i_PrivateKey_bio(key); | 740 | pkey = b2i_PrivateKey_bio(key); |
743 | else if (format == FORMAT_PVK) | 741 | else if (format == FORMAT_PVK) |
744 | pkey = b2i_PVK_bio(key, (pem_password_cb *) password_callback, | 742 | pkey = b2i_PVK_bio(key, password_callback, |
745 | &cb_data); | 743 | &cb_data); |
746 | #endif | 744 | #endif |
747 | else { | 745 | else { |
@@ -812,8 +810,7 @@ load_pubkey(BIO *err, const char *file, int format, int maybe_stdin, | |||
812 | pkey = NULL; | 810 | pkey = NULL; |
813 | } else if (format == FORMAT_PEMRSA) { | 811 | } else if (format == FORMAT_PEMRSA) { |
814 | RSA *rsa; | 812 | RSA *rsa; |
815 | rsa = PEM_read_bio_RSAPublicKey(key, NULL, | 813 | rsa = PEM_read_bio_RSAPublicKey(key, NULL, password_callback, &cb_data); |
816 | (pem_password_cb *) password_callback, &cb_data); | ||
817 | if (rsa) { | 814 | if (rsa) { |
818 | pkey = EVP_PKEY_new(); | 815 | pkey = EVP_PKEY_new(); |
819 | if (pkey) | 816 | if (pkey) |
@@ -824,8 +821,7 @@ load_pubkey(BIO *err, const char *file, int format, int maybe_stdin, | |||
824 | } | 821 | } |
825 | #endif | 822 | #endif |
826 | else if (format == FORMAT_PEM) { | 823 | else if (format == FORMAT_PEM) { |
827 | pkey = PEM_read_bio_PUBKEY(key, NULL, | 824 | pkey = PEM_read_bio_PUBKEY(key, NULL, password_callback, &cb_data); |
828 | (pem_password_cb *) password_callback, &cb_data); | ||
829 | } | 825 | } |
830 | #if !defined(OPENSSL_NO_RC4) && !defined(OPENSSL_NO_RSA) | 826 | #if !defined(OPENSSL_NO_RC4) && !defined(OPENSSL_NO_RSA) |
831 | else if (format == FORMAT_NETSCAPE || format == FORMAT_IISSGC) | 827 | else if (format == FORMAT_NETSCAPE || format == FORMAT_IISSGC) |
@@ -923,8 +919,7 @@ load_certs_crls(BIO *err, const char *file, int format, const char *pass, | |||
923 | ERR_print_errors(err); | 919 | ERR_print_errors(err); |
924 | return 0; | 920 | return 0; |
925 | } | 921 | } |
926 | xis = PEM_X509_INFO_read_bio(bio, NULL, | 922 | xis = PEM_X509_INFO_read_bio(bio, NULL, password_callback, &cb_data); |
927 | (pem_password_cb *) password_callback, &cb_data); | ||
928 | 923 | ||
929 | BIO_free(bio); | 924 | BIO_free(bio); |
930 | 925 | ||
diff --git a/src/lib/libssl/src/apps/apps.h b/src/lib/libssl/src/apps/apps.h index 69d7972021..9909d7fa66 100644 --- a/src/lib/libssl/src/apps/apps.h +++ b/src/lib/libssl/src/apps/apps.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: apps.h,v 1.33 2014/06/12 15:49:27 deraadt Exp $ */ | 1 | /* $OpenBSD: apps.h,v 1.34 2014/07/09 09:06:58 bcook Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -144,7 +144,7 @@ typedef struct pw_cb_data { | |||
144 | const char *prompt_info; | 144 | const char *prompt_info; |
145 | } PW_CB_DATA; | 145 | } PW_CB_DATA; |
146 | 146 | ||
147 | int password_callback(char *buf, int bufsiz, int verify, PW_CB_DATA *cb_data); | 147 | int password_callback(char *buf, int bufsiz, int verify, void *cb_data); |
148 | 148 | ||
149 | int setup_ui_method(void); | 149 | int setup_ui_method(void); |
150 | void destroy_ui_method(void); | 150 | void destroy_ui_method(void); |
diff --git a/src/lib/libssl/src/apps/genrsa.c b/src/lib/libssl/src/apps/genrsa.c index ab64943e82..9398120809 100644 --- a/src/lib/libssl/src/apps/genrsa.c +++ b/src/lib/libssl/src/apps/genrsa.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: genrsa.c,v 1.33 2014/06/12 15:49:27 deraadt Exp $ */ | 1 | /* $OpenBSD: genrsa.c,v 1.34 2014/07/09 09:06:58 bcook Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -252,7 +252,7 @@ bad: | |||
252 | cb_data.password = passout; | 252 | cb_data.password = passout; |
253 | cb_data.prompt_info = outfile; | 253 | cb_data.prompt_info = outfile; |
254 | if (!PEM_write_bio_RSAPrivateKey(out, rsa, enc, NULL, 0, | 254 | if (!PEM_write_bio_RSAPrivateKey(out, rsa, enc, NULL, 0, |
255 | (pem_password_cb *) password_callback, &cb_data)) | 255 | password_callback, &cb_data)) |
256 | goto err; | 256 | goto err; |
257 | } | 257 | } |
258 | 258 | ||