1 | =pod
|
---|
2 |
|
---|
3 | =head1 NAME
|
---|
4 |
|
---|
5 | OPENSSL_hexchar2int,
|
---|
6 | OPENSSL_hexstr2buf_ex, OPENSSL_hexstr2buf,
|
---|
7 | OPENSSL_buf2hexstr_ex, OPENSSL_buf2hexstr
|
---|
8 | - Hex encoding and decoding functions
|
---|
9 |
|
---|
10 | =head1 SYNOPSIS
|
---|
11 |
|
---|
12 | #include <openssl/crypto.h>
|
---|
13 |
|
---|
14 | int OPENSSL_hexchar2int(unsigned char c);
|
---|
15 | int OPENSSL_hexstr2buf_ex(unsigned char *buf, size_t buf_n, long *buflen,
|
---|
16 | const char *str, const char sep);
|
---|
17 | unsigned char *OPENSSL_hexstr2buf(const char *str, long *len);
|
---|
18 | int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength,
|
---|
19 | const unsigned char *buf, long buflen,
|
---|
20 | const char sep);
|
---|
21 | char *OPENSSL_buf2hexstr(const unsigned char *buf, long buflen);
|
---|
22 |
|
---|
23 | =head1 DESCRIPTION
|
---|
24 |
|
---|
25 | OPENSSL_hexchar2int() converts a hexadecimal character to its numeric
|
---|
26 | equivalent.
|
---|
27 |
|
---|
28 | OPENSSL_hexstr2buf_ex() decodes the hex string B<str> and places the
|
---|
29 | resulting string of bytes in the given I<buf>.
|
---|
30 | The character I<sep> is the separator between the bytes, setting this to '\0'
|
---|
31 | means that there is no separator.
|
---|
32 | I<buf_n> gives the size of the buffer.
|
---|
33 | If I<buflen> is not NULL, it is filled in with the result length.
|
---|
34 | To find out how large the result will be, call this function with NULL
|
---|
35 | for I<buf>.
|
---|
36 | Colons between two-character hex "bytes" are accepted and ignored.
|
---|
37 | An odd number of hex digits is an error.
|
---|
38 |
|
---|
39 | OPENSSL_hexstr2buf() does the same thing as OPENSSL_hexstr2buf_ex(),
|
---|
40 | but allocates the space for the result, and returns the result. It uses a
|
---|
41 | default separator of ':'.
|
---|
42 | The memory is allocated by calling OPENSSL_malloc() and should be
|
---|
43 | released by calling OPENSSL_free().
|
---|
44 |
|
---|
45 | OPENSSL_buf2hexstr_ex() encodes the contents of the given I<buf> with
|
---|
46 | length I<buflen> and places the resulting hexadecimal character string
|
---|
47 | in the given I<str>.
|
---|
48 | The character I<sep> is the separator between the bytes, setting this to '\0'
|
---|
49 | means that there is no separator.
|
---|
50 | I<str_n> gives the size of the of the string buffer.
|
---|
51 | If I<strlength> is not NULL, it is filled in with the result length.
|
---|
52 | To find out how large the result will be, call this function with NULL
|
---|
53 | for I<str>.
|
---|
54 |
|
---|
55 | OPENSSL_buf2hexstr() does the same thing as OPENSSL_buf2hexstr_ex(),
|
---|
56 | but allocates the space for the result, and returns the result. It uses a
|
---|
57 | default separator of ':'.
|
---|
58 | The memory is allocated by calling OPENSSL_malloc() and should be
|
---|
59 | released by calling OPENSSL_free().
|
---|
60 |
|
---|
61 | =head1 RETURN VALUES
|
---|
62 |
|
---|
63 | OPENSSL_hexchar2int returns the value of a decoded hex character,
|
---|
64 | or -1 on error.
|
---|
65 |
|
---|
66 | OPENSSL_buf2hexstr() and OPENSSL_hexstr2buf()
|
---|
67 | return a pointer to allocated memory, or NULL on error.
|
---|
68 |
|
---|
69 | OPENSSL_buf2hexstr_ex() and OPENSSL_hexstr2buf_ex() return 1 on
|
---|
70 | success, or 0 on error.
|
---|
71 |
|
---|
72 | =head1 COPYRIGHT
|
---|
73 |
|
---|
74 | Copyright 2016-2022 The OpenSSL Project Authors. All Rights Reserved.
|
---|
75 |
|
---|
76 | Licensed under the Apache License 2.0 (the "License"). You may not use
|
---|
77 | this file except in compliance with the License. You can obtain a copy
|
---|
78 | in the file LICENSE in the source distribution or at
|
---|
79 | L<https://www.openssl.org/source/license.html>.
|
---|
80 |
|
---|
81 | =cut
|
---|