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