mirror of https://github.com/openssl/openssl.git
				
				
				
			ssl: factorize and improved hex conversion code
Add inline qualifier to avoid exporting a function for one unique use Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24968)
This commit is contained in:
		
							parent
							
								
									ca3c6f3829
								
							
						
					
					
						commit
						f21ededc3c
					
				|  | @ -0,0 +1,27 @@ | ||||||
|  | /*
 | ||||||
|  |  * Copyright 2024 The OpenSSL Project Authors. All Rights Reserved. | ||||||
|  |  * | ||||||
|  |  * Licensed under the Apache License 2.0 (the "License").  You may not use | ||||||
|  |  * this file except in compliance with the License.  You can obtain a copy | ||||||
|  |  * in the file LICENSE in the source distribution or at | ||||||
|  |  * https://www.openssl.org/source/license.html
 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #ifndef OSSL_INTERNAL_TO_HEX_H | ||||||
|  | # define OSSL_INTERNAL_TO_HEX_H | ||||||
|  | # pragma once | ||||||
|  | 
 | ||||||
|  | static ossl_inline size_t to_hex(char *buf, uint8_t n, const char hexdig[17]) | ||||||
|  | { | ||||||
|  |     *buf++ = hexdig[(n >> 4) & 0xf]; | ||||||
|  |     *buf = hexdig[n & 0xf]; | ||||||
|  |     return 2; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static ossl_inline size_t ossl_to_lowerhex(char *buf, uint8_t n) | ||||||
|  | { | ||||||
|  |     static const char hexdig[] = "0123456789abcdef"; | ||||||
|  | 
 | ||||||
|  |     return to_hex(buf, n, hexdig); | ||||||
|  | } | ||||||
|  | #endif | ||||||
|  | @ -26,6 +26,7 @@ | ||||||
| #include "internal/nelem.h" | #include "internal/nelem.h" | ||||||
| #include "internal/refcount.h" | #include "internal/refcount.h" | ||||||
| #include "internal/ktls.h" | #include "internal/ktls.h" | ||||||
|  | #include "internal/to_hex.h" | ||||||
| #include "quic/quic_local.h" | #include "quic/quic_local.h" | ||||||
| 
 | 
 | ||||||
| static int ssl_undefined_function_3(SSL_CONNECTION *sc, unsigned char *r, | static int ssl_undefined_function_3(SSL_CONNECTION *sc, unsigned char *r, | ||||||
|  | @ -6747,10 +6748,8 @@ static int nss_keylog_int(const char *prefix, | ||||||
|                           const uint8_t *parameter_2, |                           const uint8_t *parameter_2, | ||||||
|                           size_t parameter_2_len) |                           size_t parameter_2_len) | ||||||
| { | { | ||||||
|     static const char hexdig[] = "0123456789abcdef"; |  | ||||||
|     char *out = NULL; |     char *out = NULL; | ||||||
|     char *cursor = NULL; |     char *cursor = NULL; | ||||||
|     const uint8_t *p; |  | ||||||
|     size_t out_len = 0, i, prefix_len; |     size_t out_len = 0, i, prefix_len; | ||||||
|     SSL_CTX *sctx = SSL_CONNECTION_GET_CTX(sc); |     SSL_CTX *sctx = SSL_CONNECTION_GET_CTX(sc); | ||||||
| 
 | 
 | ||||||
|  | @ -6774,16 +6773,12 @@ static int nss_keylog_int(const char *prefix, | ||||||
|     cursor += prefix_len; |     cursor += prefix_len; | ||||||
|     *cursor++ = ' '; |     *cursor++ = ' '; | ||||||
| 
 | 
 | ||||||
|     for (i = 0, p = parameter_1; i < parameter_1_len; i++, ++p) { |     for (i = 0; i < parameter_1_len; ++i) | ||||||
|         *cursor++ = hexdig[(*p >> 4) & 0xf]; |         cursor += ossl_to_lowerhex(cursor, parameter_1[i]); | ||||||
|         *cursor++ = hexdig[*p & 0xf]; |  | ||||||
|     } |  | ||||||
|     *cursor++ = ' '; |     *cursor++ = ' '; | ||||||
| 
 | 
 | ||||||
|     for (i = 0, p = parameter_2; i < parameter_2_len; i++, ++p) { |     for (i = 0; i < parameter_2_len; ++i) | ||||||
|         *cursor++ = hexdig[(*p >> 4) & 0xf]; |         cursor += ossl_to_lowerhex(cursor, parameter_2[i]); | ||||||
|         *cursor++ = hexdig[*p & 0xf]; |  | ||||||
|     } |  | ||||||
|     *cursor = '\0'; |     *cursor = '\0'; | ||||||
| 
 | 
 | ||||||
|     sctx->keylog_callback(SSL_CONNECTION_GET_SSL(sc), (const char *)out); |     sctx->keylog_callback(SSL_CONNECTION_GET_SSL(sc), (const char *)out); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue