]>
Commit | Line | Data |
---|---|---|
82bd7c2c RL |
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, | |
abdd3fa0 | 16 | const char *str, const char sep); |
82bd7c2c | 17 | unsigned char *OPENSSL_hexstr2buf(const char *str, long *len); |
28e141c4 P |
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); | |
82bd7c2c RL |
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>. | |
c1131e6a SL |
30 | The character I<sep> is the separator between the bytes, setting this to '\0' |
31 | means that there is no separator. | |
82bd7c2c RL |
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(), | |
c1131e6a SL |
40 | but allocates the space for the result, and returns the result. It uses a |
41 | default separator of ':'. | |
82bd7c2c RL |
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>. | |
c1131e6a SL |
48 | The character I<sep> is the separator between the bytes, setting this to '\0' |
49 | means that there is no separator. | |
82bd7c2c | 50 | I<str_n> gives the size of the of the string buffer. |
28e141c4 | 51 | If I<strlength> is not NULL, it is filled in with the result length. |
82bd7c2c RL |
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(), | |
c1131e6a SL |
56 | but allocates the space for the result, and returns the result. It uses a |
57 | default separator of ':'. | |
82bd7c2c RL |
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 | ||
fecb3aae | 74 | Copyright 2016-2022 The OpenSSL Project Authors. All Rights Reserved. |
82bd7c2c RL |
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 |