Botan 1.10.17
hex.h
Go to the documentation of this file.
1/*
2* Hex Encoding and Decoding
3* (C) 2010 Jack Lloyd
4*
5* Distributed under the terms of the Botan license
6*/
7
8#ifndef BOTAN_HEX_CODEC_H__
9#define BOTAN_HEX_CODEC_H__
10
11#include <botan/secmem.h>
12#include <string>
13
14namespace Botan {
15
16/**
17* Perform hex encoding
18* @param output an array of at least input_length*2 bytes
19* @param input is some binary data
20* @param input_length length of input in bytes
21* @param uppercase should output be upper or lower case?
22*/
23void BOTAN_DLL hex_encode(char output[],
24 const byte input[],
25 size_t input_length,
26 bool uppercase = true);
27
28/**
29* Perform hex encoding
30* @param input some input
31* @param input_length length of input in bytes
32* @param uppercase should output be upper or lower case?
33* @return hexadecimal representation of input
34*/
35std::string BOTAN_DLL hex_encode(const byte input[],
36 size_t input_length,
37 bool uppercase = true);
38
39/**
40* Perform hex encoding
41* @param input some input
42* @param uppercase should output be upper or lower case?
43* @return hexadecimal representation of input
44*/
45std::string BOTAN_DLL hex_encode(const MemoryRegion<byte>& input,
46 bool uppercase = true);
47
48/**
49* Perform hex decoding
50* @param output an array of at least input_length/2 bytes
51* @param input some hex input
52* @param input_length length of input in bytes
53* @param input_consumed is an output parameter which says how many
54* bytes of input were actually consumed. If less than
55* input_length, then the range input[consumed:length]
56* should be passed in later along with more input.
57* @param ignore_ws ignore whitespace on input; if false, throw an
58 exception if whitespace is encountered
59* @return number of bytes written to output
60*/
61size_t BOTAN_DLL hex_decode(byte output[],
62 const char input[],
63 size_t input_length,
64 size_t& input_consumed,
65 bool ignore_ws = true);
66
67/**
68* Perform hex decoding
69* @param output an array of at least input_length/2 bytes
70* @param input some hex input
71* @param input_length length of input in bytes
72* @param ignore_ws ignore whitespace on input; if false, throw an
73 exception if whitespace is encountered
74* @return number of bytes written to output
75*/
76size_t BOTAN_DLL hex_decode(byte output[],
77 const char input[],
78 size_t input_length,
79 bool ignore_ws = true);
80
81/**
82* Perform hex decoding
83* @param output an array of at least input_length/2 bytes
84* @param input some hex input
85* @param ignore_ws ignore whitespace on input; if false, throw an
86 exception if whitespace is encountered
87* @return number of bytes written to output
88*/
89size_t BOTAN_DLL hex_decode(byte output[],
90 const std::string& input,
91 bool ignore_ws = true);
92
93/**
94* Perform hex decoding
95* @param input some hex input
96* @param input_length the length of input in bytes
97* @param ignore_ws ignore whitespace on input; if false, throw an
98 exception if whitespace is encountered
99* @return decoded hex output
100*/
101SecureVector<byte> BOTAN_DLL hex_decode(const char input[],
102 size_t input_length,
103 bool ignore_ws = true);
104
105/**
106* Perform hex decoding
107* @param input some hex input
108* @param ignore_ws ignore whitespace on input; if false, throw an
109 exception if whitespace is encountered
110* @return decoded hex output
111*/
112SecureVector<byte> BOTAN_DLL hex_decode(const std::string& input,
113 bool ignore_ws = true);
114
115}
116
117#endif
size_t hex_decode(byte output[], const char input[], size_t input_length, size_t &input_consumed, bool ignore_ws)
Definition hex.cpp:55
void hex_encode(char output[], const byte input[], size_t input_length, bool uppercase)
Definition hex.cpp:14