grpc
third_party
boringssl-with-bazel
src
crypto
test
boringssl-with-bazel/src/crypto/test/test_util.cc
Go to the documentation of this file.
1
/* Copyright (c) 2015, Google Inc.
2
*
3
* Permission to use, copy, modify, and/or distribute this software for any
4
* purpose with or without fee is hereby granted, provided that the above
5
* copyright notice and this permission notice appear in all copies.
6
*
7
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
10
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
12
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
14
15
#include "
test_util.h
"
16
17
#include <ostream>
18
19
#include "../internal.h"
20
21
22
void
hexdump
(
FILE
*fp,
const
char
*
msg
,
const
void
*
in
,
size_t
len
) {
23
const
uint8_t
*
data
=
reinterpret_cast<
const
uint8_t
*
>
(
in
);
24
25
fputs(
msg
, fp);
26
for
(
size_t
i
= 0;
i
<
len
;
i
++) {
27
fprintf(fp,
"%02x"
,
data
[
i
]);
28
}
29
fputs(
"\n"
, fp);
30
}
31
32
std::ostream &
operator<<
(std::ostream &os,
const
Bytes
&
in
) {
33
if
(
in
.span_.empty()) {
34
return
os <<
"<empty Bytes>"
;
35
}
36
37
// Print a byte slice as hex.
38
os <<
EncodeHex
(
in
.span_);
39
return
os;
40
}
41
42
static
bool
FromHexDigit
(
uint8_t
*
out
,
char
c
) {
43
if
(
'0'
<=
c
&&
c
<=
'9'
) {
44
*
out
=
c
-
'0'
;
45
return
true
;
46
}
47
if
(
'a'
<=
c
&&
c
<=
'f'
) {
48
*
out
=
c
-
'a'
+ 10;
49
return
true
;
50
}
51
if
(
'A'
<=
c
&&
c
<=
'F'
) {
52
*
out
=
c
-
'A'
+ 10;
53
return
true
;
54
}
55
return
false
;
56
}
57
58
bool
DecodeHex
(std::vector<uint8_t> *
out
,
const
std::string
&
in
) {
59
out
->clear();
60
if
(
in
.size() % 2 != 0) {
61
return
false
;
62
}
63
out
->reserve(
in
.size() / 2);
64
for
(
size_t
i
= 0;
i
<
in
.size();
i
+= 2) {
65
uint8_t
hi, lo;
66
if
(!
FromHexDigit
(&hi,
in
[
i
]) ||
67
!
FromHexDigit
(&lo,
in
[
i
+ 1])) {
68
return
false
;
69
}
70
out
->push_back((hi << 4) | lo);
71
}
72
return
true
;
73
}
74
75
std::string
EncodeHex
(bssl::Span<const uint8_t>
in
) {
76
static
const
char
kHexDigits[] =
"0123456789abcdef"
;
77
std::string
ret
;
78
ret
.reserve(
in
.size() * 2);
79
for
(
uint8_t
b
:
in
) {
80
ret
+= kHexDigits[
b
>> 4];
81
ret
+= kHexDigits[
b
& 0xf];
82
}
83
return
ret
;
84
}
85
hexdump
void hexdump(FILE *fp, const char *msg, const void *in, size_t len)
Definition:
boringssl-with-bazel/src/crypto/test/test_util.cc:22
gen_build_yaml.out
dictionary out
Definition:
src/benchmark/gen_build_yaml.py:24
Bytes
Definition:
boringssl-with-bazel/src/crypto/test/test_util.h:38
FromHexDigit
static bool FromHexDigit(uint8_t *out, char c)
Definition:
boringssl-with-bazel/src/crypto/test/test_util.cc:42
operator<<
std::ostream & operator<<(std::ostream &os, const Bytes &in)
Definition:
boringssl-with-bazel/src/crypto/test/test_util.cc:32
testing::internal::string
::std::string string
Definition:
bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
uint8_t
unsigned char uint8_t
Definition:
stdint-msvc2008.h:78
in
const char * in
Definition:
third_party/abseil-cpp/absl/strings/internal/str_format/parser_test.cc:391
c
void c(T a)
Definition:
miscompile_with_no_unique_address_test.cc:40
EncodeHex
std::string EncodeHex(bssl::Span< const uint8_t > in)
Definition:
boringssl-with-bazel/src/crypto/test/test_util.cc:75
data
char data[kBufferLength]
Definition:
abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1006
b
uint64_t b
Definition:
abseil-cpp/absl/container/internal/layout_test.cc:53
msg
std::string msg
Definition:
client_interceptors_end2end_test.cc:372
benchmark.FILE
FILE
Definition:
benchmark.py:21
DecodeHex
bool DecodeHex(std::vector< uint8_t > *out, const std::string &in)
Definition:
boringssl-with-bazel/src/crypto/test/test_util.cc:58
ret
UniquePtr< SSL_SESSION > ret
Definition:
ssl_x509.cc:1029
test_util.h
len
int len
Definition:
abseil-cpp/absl/base/internal/low_level_alloc_test.cc:46
i
uint64_t i
Definition:
abseil-cpp/absl/container/btree_benchmark.cc:230
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:31