diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/Symbols.list | 3 | ||||
| -rw-r--r-- | src/lib/libcrypto/Symbols.namespace | 3 | ||||
| -rw-r--r-- | src/lib/libcrypto/bio/b_print.c | 59 | ||||
| -rw-r--r-- | src/lib/libcrypto/bio/bio.h | 18 | ||||
| -rw-r--r-- | src/lib/libcrypto/bio/bio_local.h | 6 | ||||
| -rw-r--r-- | src/lib/libcrypto/bn/bn_print.c | 3 | ||||
| -rw-r--r-- | src/lib/libcrypto/hidden/openssl/bio.h | 5 | ||||
| -rw-r--r-- | src/lib/libcrypto/man/BIO_printf.3 | 59 |
8 files changed, 18 insertions, 138 deletions
diff --git a/src/lib/libcrypto/Symbols.list b/src/lib/libcrypto/Symbols.list index a801880ecc..7877295ccb 100644 --- a/src/lib/libcrypto/Symbols.list +++ b/src/lib/libcrypto/Symbols.list | |||
| @@ -332,7 +332,6 @@ BIO_set_next | |||
| 332 | BIO_set_retry_reason | 332 | BIO_set_retry_reason |
| 333 | BIO_set_shutdown | 333 | BIO_set_shutdown |
| 334 | BIO_set_tcp_ndelay | 334 | BIO_set_tcp_ndelay |
| 335 | BIO_snprintf | ||
| 336 | BIO_sock_cleanup | 335 | BIO_sock_cleanup |
| 337 | BIO_sock_error | 336 | BIO_sock_error |
| 338 | BIO_sock_init | 337 | BIO_sock_init |
| @@ -343,8 +342,6 @@ BIO_socket_nbio | |||
| 343 | BIO_test_flags | 342 | BIO_test_flags |
| 344 | BIO_up_ref | 343 | BIO_up_ref |
| 345 | BIO_vfree | 344 | BIO_vfree |
| 346 | BIO_vprintf | ||
| 347 | BIO_vsnprintf | ||
| 348 | BIO_write | 345 | BIO_write |
| 349 | BN_CTX_end | 346 | BN_CTX_end |
| 350 | BN_CTX_free | 347 | BN_CTX_free |
diff --git a/src/lib/libcrypto/Symbols.namespace b/src/lib/libcrypto/Symbols.namespace index c35225e798..04ea27935c 100644 --- a/src/lib/libcrypto/Symbols.namespace +++ b/src/lib/libcrypto/Symbols.namespace | |||
| @@ -1215,9 +1215,6 @@ _libre_BIO_new_connect | |||
| 1215 | _libre_BIO_new_accept | 1215 | _libre_BIO_new_accept |
| 1216 | _libre_BIO_copy_next_retry | 1216 | _libre_BIO_copy_next_retry |
| 1217 | _libre_BIO_printf | 1217 | _libre_BIO_printf |
| 1218 | _libre_BIO_vprintf | ||
| 1219 | _libre_BIO_snprintf | ||
| 1220 | _libre_BIO_vsnprintf | ||
| 1221 | _libre_ERR_load_BIO_strings | 1218 | _libre_ERR_load_BIO_strings |
| 1222 | _libre_ASN1_item_ex_new | 1219 | _libre_ASN1_item_ex_new |
| 1223 | _libre_ASN1_item_ex_free | 1220 | _libre_ASN1_item_ex_free |
diff --git a/src/lib/libcrypto/bio/b_print.c b/src/lib/libcrypto/bio/b_print.c index a750ac413f..f6943ea3f3 100644 --- a/src/lib/libcrypto/bio/b_print.c +++ b/src/lib/libcrypto/bio/b_print.c | |||
| @@ -1,21 +1,10 @@ | |||
| 1 | /* $OpenBSD: b_print.c,v 1.27 2023/07/05 21:23:37 beck Exp $ */ | 1 | /* $OpenBSD: b_print.c,v 1.28 2024/03/02 09:18:28 tb Exp $ */ |
| 2 | 2 | ||
| 3 | /* Theo de Raadt places this file in the public domain. */ | 3 | /* Theo de Raadt places this file in the public domain. */ |
| 4 | 4 | ||
| 5 | #include <openssl/bio.h> | 5 | #include <openssl/bio.h> |
| 6 | 6 | ||
| 7 | int | 7 | #include "bio_local.h" |
| 8 | BIO_printf(BIO *bio, const char *format, ...) | ||
| 9 | { | ||
| 10 | va_list args; | ||
| 11 | int ret; | ||
| 12 | |||
| 13 | va_start(args, format); | ||
| 14 | ret = BIO_vprintf(bio, format, args); | ||
| 15 | va_end(args); | ||
| 16 | return (ret); | ||
| 17 | } | ||
| 18 | LCRYPTO_ALIAS(BIO_printf); | ||
| 19 | 8 | ||
| 20 | #ifdef HAVE_FUNOPEN | 9 | #ifdef HAVE_FUNOPEN |
| 21 | static int | 10 | static int |
| @@ -40,7 +29,6 @@ BIO_vprintf(BIO *bio, const char *format, va_list args) | |||
| 40 | fail: | 29 | fail: |
| 41 | return (ret); | 30 | return (ret); |
| 42 | } | 31 | } |
| 43 | LCRYPTO_ALIAS(BIO_vprintf); | ||
| 44 | 32 | ||
| 45 | #else /* !HAVE_FUNOPEN */ | 33 | #else /* !HAVE_FUNOPEN */ |
| 46 | 34 | ||
| @@ -57,55 +45,18 @@ BIO_vprintf(BIO *bio, const char *format, va_list args) | |||
| 57 | free(buf); | 45 | free(buf); |
| 58 | return (ret); | 46 | return (ret); |
| 59 | } | 47 | } |
| 60 | LCRYPTO_ALIAS(BIO_vprintf); | ||
| 61 | 48 | ||
| 62 | #endif /* HAVE_FUNOPEN */ | 49 | #endif /* HAVE_FUNOPEN */ |
| 63 | 50 | ||
| 64 | /* | ||
| 65 | * BIO_snprintf and BIO_vsnprintf return -1 for overflow, | ||
| 66 | * due to the history of this API. Justification: | ||
| 67 | * | ||
| 68 | * Traditional snprintf surfaced in 4.4BSD, and returned | ||
| 69 | * "number of bytes wanted". Solaris and Windows opted to | ||
| 70 | * return -1. A draft standard was written which returned -1. | ||
| 71 | * Due to the large volume of code already using the first | ||
| 72 | * semantics, the draft was repaired before standardization to | ||
| 73 | * specify "number of bytes wanted" plus "-1 for character conversion | ||
| 74 | * style errors". Solaris adapted to this rule, but Windows stuck | ||
| 75 | * with -1. | ||
| 76 | * | ||
| 77 | * Original OpenSSL comment which is full of lies: | ||
| 78 | * | ||
| 79 | * "In case of truncation, return -1 like traditional snprintf. | ||
| 80 | * (Current drafts for ISO/IEC 9899 say snprintf should return | ||
| 81 | * the number of characters that would have been written, | ||
| 82 | * had the buffer been large enough.)" | ||
| 83 | */ | ||
| 84 | int | 51 | int |
| 85 | BIO_snprintf(char *buf, size_t n, const char *format, ...) | 52 | BIO_printf(BIO *bio, const char *format, ...) |
| 86 | { | 53 | { |
| 87 | va_list args; | 54 | va_list args; |
| 88 | int ret; | 55 | int ret; |
| 89 | 56 | ||
| 90 | va_start(args, format); | 57 | va_start(args, format); |
| 91 | ret = vsnprintf(buf, n, format, args); | 58 | ret = BIO_vprintf(bio, format, args); |
| 92 | va_end(args); | 59 | va_end(args); |
| 93 | |||
| 94 | if (ret >= n || ret == -1) | ||
| 95 | return (-1); | ||
| 96 | return (ret); | ||
| 97 | } | ||
| 98 | LCRYPTO_ALIAS(BIO_snprintf); | ||
| 99 | |||
| 100 | int | ||
| 101 | BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) | ||
| 102 | { | ||
| 103 | int ret; | ||
| 104 | |||
| 105 | ret = vsnprintf(buf, n, format, args); | ||
| 106 | |||
| 107 | if (ret >= n || ret == -1) | ||
| 108 | return (-1); | ||
| 109 | return (ret); | 60 | return (ret); |
| 110 | } | 61 | } |
| 111 | LCRYPTO_ALIAS(BIO_vsnprintf); | 62 | LCRYPTO_ALIAS(BIO_printf); |
diff --git a/src/lib/libcrypto/bio/bio.h b/src/lib/libcrypto/bio/bio.h index b955524c45..10b0924f73 100644 --- a/src/lib/libcrypto/bio/bio.h +++ b/src/lib/libcrypto/bio/bio.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bio.h,v 1.60 2023/08/25 12:37:33 schwarze Exp $ */ | 1 | /* $OpenBSD: bio.h,v 1.61 2024/03/02 09:18:28 tb 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 | * |
| @@ -648,25 +648,9 @@ void BIO_copy_next_retry(BIO *b); | |||
| 648 | #ifndef __MINGW_PRINTF_FORMAT | 648 | #ifndef __MINGW_PRINTF_FORMAT |
| 649 | int BIO_printf(BIO *bio, const char *format, ...) | 649 | int BIO_printf(BIO *bio, const char *format, ...) |
| 650 | __attribute__((__format__(__printf__, 2, 3), __nonnull__(2))); | 650 | __attribute__((__format__(__printf__, 2, 3), __nonnull__(2))); |
| 651 | int BIO_vprintf(BIO *bio, const char *format, va_list args) | ||
| 652 | __attribute__((__format__(__printf__, 2, 0), __nonnull__(2))); | ||
| 653 | int BIO_snprintf(char *buf, size_t n, const char *format, ...) | ||
| 654 | __attribute__((__deprecated__, __format__(__printf__, 3, 4), | ||
| 655 | __nonnull__(3))); | ||
| 656 | int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) | ||
| 657 | __attribute__((__deprecated__, __format__(__printf__, 3, 0), | ||
| 658 | __nonnull__(3))); | ||
| 659 | #else | 651 | #else |
| 660 | int BIO_printf(BIO *bio, const char *format, ...) | 652 | int BIO_printf(BIO *bio, const char *format, ...) |
| 661 | __attribute__((__format__(__MINGW_PRINTF_FORMAT, 2, 3), __nonnull__(2))); | 653 | __attribute__((__format__(__MINGW_PRINTF_FORMAT, 2, 3), __nonnull__(2))); |
| 662 | int BIO_vprintf(BIO *bio, const char *format, va_list args) | ||
| 663 | __attribute__((__format__(__MINGW_PRINTF_FORMAT, 2, 0), __nonnull__(2))); | ||
| 664 | int BIO_snprintf(char *buf, size_t n, const char *format, ...) | ||
| 665 | __attribute__((__deprecated__, __format__(__MINGW_PRINTF_FORMAT, 3, 4), | ||
| 666 | __nonnull__(3))); | ||
| 667 | int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) | ||
| 668 | __attribute__((__deprecated__, __format__(__MINGW_PRINTF_FORMAT, 3, 0), | ||
| 669 | __nonnull__(3))); | ||
| 670 | #endif | 654 | #endif |
| 671 | 655 | ||
| 672 | void ERR_load_BIO_strings(void); | 656 | void ERR_load_BIO_strings(void); |
diff --git a/src/lib/libcrypto/bio/bio_local.h b/src/lib/libcrypto/bio/bio_local.h index 4eecf7e04a..f59b5756c9 100644 --- a/src/lib/libcrypto/bio/bio_local.h +++ b/src/lib/libcrypto/bio/bio_local.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bio_local.h,v 1.5 2022/12/02 19:44:04 tb Exp $ */ | 1 | /* $OpenBSD: bio_local.h,v 1.6 2024/03/02 09:18:28 tb 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 | * |
| @@ -59,6 +59,8 @@ | |||
| 59 | #ifndef HEADER_BIO_LOCAL_H | 59 | #ifndef HEADER_BIO_LOCAL_H |
| 60 | #define HEADER_BIO_LOCAL_H | 60 | #define HEADER_BIO_LOCAL_H |
| 61 | 61 | ||
| 62 | #include <stdarg.h> | ||
| 63 | |||
| 62 | __BEGIN_HIDDEN_DECLS | 64 | __BEGIN_HIDDEN_DECLS |
| 63 | 65 | ||
| 64 | struct bio_method_st { | 66 | struct bio_method_st { |
| @@ -118,6 +120,8 @@ typedef struct bio_f_buffer_ctx_struct { | |||
| 118 | int obuf_off; /* write/read offset */ | 120 | int obuf_off; /* write/read offset */ |
| 119 | } BIO_F_BUFFER_CTX; | 121 | } BIO_F_BUFFER_CTX; |
| 120 | 122 | ||
| 123 | int BIO_vprintf(BIO *bio, const char *format, va_list args); | ||
| 124 | |||
| 121 | __END_HIDDEN_DECLS | 125 | __END_HIDDEN_DECLS |
| 122 | 126 | ||
| 123 | #endif /* !HEADER_BIO_LOCAL_H */ | 127 | #endif /* !HEADER_BIO_LOCAL_H */ |
diff --git a/src/lib/libcrypto/bn/bn_print.c b/src/lib/libcrypto/bn/bn_print.c index e7678f7a99..cd8b663602 100644 --- a/src/lib/libcrypto/bn/bn_print.c +++ b/src/lib/libcrypto/bn/bn_print.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bn_print.c,v 1.46 2023/07/22 17:14:08 tb Exp $ */ | 1 | /* $OpenBSD: bn_print.c,v 1.47 2024/03/02 09:18:28 tb Exp $ */ |
| 2 | 2 | ||
| 3 | /* | 3 | /* |
| 4 | * Copyright (c) 2023 Theo Buehler <tb@openbsd.org> | 4 | * Copyright (c) 2023 Theo Buehler <tb@openbsd.org> |
| @@ -25,6 +25,7 @@ | |||
| 25 | #include <openssl/bio.h> | 25 | #include <openssl/bio.h> |
| 26 | #include <openssl/bn.h> | 26 | #include <openssl/bn.h> |
| 27 | 27 | ||
| 28 | #include "bio_local.h" | ||
| 28 | #include "bn_local.h" | 29 | #include "bn_local.h" |
| 29 | #include "bytestring.h" | 30 | #include "bytestring.h" |
| 30 | 31 | ||
diff --git a/src/lib/libcrypto/hidden/openssl/bio.h b/src/lib/libcrypto/hidden/openssl/bio.h index f7e7cd3d8e..6166471306 100644 --- a/src/lib/libcrypto/hidden/openssl/bio.h +++ b/src/lib/libcrypto/hidden/openssl/bio.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bio.h,v 1.4 2023/07/28 10:13:50 tb Exp $ */ | 1 | /* $OpenBSD: bio.h,v 1.5 2024/03/02 09:18:28 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2023 Bob Beck <beck@openbsd.org> | 3 | * Copyright (c) 2023 Bob Beck <beck@openbsd.org> |
| 4 | * | 4 | * |
| @@ -138,9 +138,6 @@ LCRYPTO_USED(BIO_new_connect); | |||
| 138 | LCRYPTO_USED(BIO_new_accept); | 138 | LCRYPTO_USED(BIO_new_accept); |
| 139 | LCRYPTO_USED(BIO_copy_next_retry); | 139 | LCRYPTO_USED(BIO_copy_next_retry); |
| 140 | LCRYPTO_USED(BIO_printf); | 140 | LCRYPTO_USED(BIO_printf); |
| 141 | LCRYPTO_USED(BIO_vprintf); | ||
| 142 | LCRYPTO_USED(BIO_snprintf); | ||
| 143 | LCRYPTO_USED(BIO_vsnprintf); | ||
| 144 | LCRYPTO_USED(ERR_load_BIO_strings); | 141 | LCRYPTO_USED(ERR_load_BIO_strings); |
| 145 | 142 | ||
| 146 | #endif /* _LIBCRYPTO_BIO_H */ | 143 | #endif /* _LIBCRYPTO_BIO_H */ |
diff --git a/src/lib/libcrypto/man/BIO_printf.3 b/src/lib/libcrypto/man/BIO_printf.3 index 838b771be7..32dec0a828 100644 --- a/src/lib/libcrypto/man/BIO_printf.3 +++ b/src/lib/libcrypto/man/BIO_printf.3 | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | .\" $OpenBSD: BIO_printf.3,v 1.3 2018/03/22 17:11:04 schwarze Exp $ | 1 | .\" $OpenBSD: BIO_printf.3,v 1.4 2024/03/02 09:18:28 tb Exp $ |
| 2 | .\" OpenSSL 2ca2e917 Mon Mar 20 16:25:22 2017 -0400 | 2 | .\" OpenSSL 2ca2e917 Mon Mar 20 16:25:22 2017 -0400 |
| 3 | .\" | 3 | .\" |
| 4 | .\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org> | 4 | .\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org> |
| @@ -15,14 +15,11 @@ | |||
| 15 | .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | 15 | .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
| 16 | .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 16 | .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| 17 | .\" | 17 | .\" |
| 18 | .Dd $Mdocdate: March 22 2018 $ | 18 | .Dd $Mdocdate: March 2 2024 $ |
| 19 | .Dt BIO_PRINTF 3 | 19 | .Dt BIO_PRINTF 3 |
| 20 | .Os | 20 | .Os |
| 21 | .Sh NAME | 21 | .Sh NAME |
| 22 | .Nm BIO_printf , | 22 | .Nm BIO_printf |
| 23 | .Nm BIO_vprintf , | ||
| 24 | .Nm BIO_snprintf , | ||
| 25 | .Nm BIO_vsnprintf | ||
| 26 | .Nd formatted output to a BIO | 23 | .Nd formatted output to a BIO |
| 27 | .Sh SYNOPSIS | 24 | .Sh SYNOPSIS |
| 28 | .In openssl/bio.h | 25 | .In openssl/bio.h |
| @@ -32,66 +29,18 @@ | |||
| 32 | .Fa "const char *format" | 29 | .Fa "const char *format" |
| 33 | .Fa ... | 30 | .Fa ... |
| 34 | .Fc | 31 | .Fc |
| 35 | .Ft int | ||
| 36 | .Fo BIO_vprintf | ||
| 37 | .Fa "BIO *bio" | ||
| 38 | .Fa "const char *format" | ||
| 39 | .Fa "va_list args" | ||
| 40 | .Fc | ||
| 41 | .Ft int | ||
| 42 | .Fo BIO_snprintf | ||
| 43 | .Fa "char *buf" | ||
| 44 | .Fa "size_t n" | ||
| 45 | .Fa "const char *format" | ||
| 46 | .Fa ... | ||
| 47 | .Fc | ||
| 48 | .Ft int | ||
| 49 | .Fo BIO_vsnprintf | ||
| 50 | .Fa "char *buf" | ||
| 51 | .Fa "size_t n" | ||
| 52 | .Fa "const char *format" | ||
| 53 | .Fa "va_list args" | ||
| 54 | .Fc | ||
| 55 | .Sh DESCRIPTION | 32 | .Sh DESCRIPTION |
| 56 | .Fn BIO_vprintf | 33 | .Fn BIO_printf |
| 57 | is a wrapper around | 34 | is a wrapper around |
| 58 | .Xr vfprintf 3 , | 35 | .Xr vfprintf 3 , |
| 59 | sending the output to the specified | 36 | sending the output to the specified |
| 60 | .Fa bio . | 37 | .Fa bio . |
| 61 | .Pp | ||
| 62 | .Fn BIO_printf | ||
| 63 | is a wrapper around | ||
| 64 | .Fn BIO_vprintf . | ||
| 65 | .Pp | ||
| 66 | .Fn BIO_snprintf | ||
| 67 | and | ||
| 68 | .Fn BIO_vsnprintf | ||
| 69 | are wrappers around | ||
| 70 | .Xr vsnprintf 3 . | ||
| 71 | .Sh RETURN VALUES | 38 | .Sh RETURN VALUES |
| 72 | These functions return the number of bytes written, | 39 | These functions return the number of bytes written, |
| 73 | or -1 if an error occurs. | 40 | or -1 if an error occurs. |
| 74 | .Pp | ||
| 75 | In contrast to | ||
| 76 | .Xr snprintf 3 | ||
| 77 | and | ||
| 78 | .Xr vsnprintf 3 , | ||
| 79 | .Fn BIO_snprintf | ||
| 80 | and | ||
| 81 | .Fn BIO_vsnprintf | ||
| 82 | also return -1 if | ||
| 83 | .Fa n | ||
| 84 | is too small to hold the complete output. | ||
| 85 | .Sh SEE ALSO | 41 | .Sh SEE ALSO |
| 86 | .Xr BIO_new 3 | 42 | .Xr BIO_new 3 |
| 87 | .Sh HISTORY | 43 | .Sh HISTORY |
| 88 | .Fn BIO_printf | 44 | .Fn BIO_printf |
| 89 | first appeared in SSLeay 0.6.5 and has been available since | 45 | first appeared in SSLeay 0.6.5 and has been available since |
| 90 | .Ox 2.4 . | 46 | .Ox 2.4 . |
| 91 | .Pp | ||
| 92 | .Fn BIO_vprintf , | ||
| 93 | .Fn BIO_snprintf , | ||
| 94 | and | ||
| 95 | .Fn BIO_vsnprintf | ||
| 96 | first appeared in OpenSSL 0.9.6 and have been available since | ||
| 97 | .Ox 2.9 . | ||
