2016-09-06 11:49:26 +02:00
|
|
|
/**
|
2016-09-11 22:20:15 +02:00
|
|
|
* Author......: See docs/credits.txt
|
2016-09-06 11:49:26 +02:00
|
|
|
* License.....: MIT
|
|
|
|
*/
|
|
|
|
|
2016-09-06 18:44:05 +02:00
|
|
|
#ifndef _CONVERT_H
|
|
|
|
#define _CONVERT_H
|
2016-09-06 11:49:26 +02:00
|
|
|
|
|
|
|
#include <ctype.h>
|
|
|
|
|
2018-02-08 19:13:29 +01:00
|
|
|
bool is_hexify (const u8 *buf, const size_t len);
|
|
|
|
size_t exec_unhexify (const u8 *in_buf, const size_t in_len, u8 *out_buf, const size_t out_sz);
|
2017-02-19 14:45:27 +01:00
|
|
|
|
2018-02-08 19:13:29 +01:00
|
|
|
bool need_hexify (const u8 *buf, const size_t len, const char separator, bool always_ascii);
|
|
|
|
void exec_hexify (const u8 *buf, const size_t len, u8 *out);
|
2016-10-04 18:30:00 +02:00
|
|
|
|
2018-06-27 11:12:35 +02:00
|
|
|
bool is_valid_base64a_string (const u8 *s, const size_t len);
|
|
|
|
bool is_valid_base64a_char (const u8 c);
|
|
|
|
bool is_valid_base64b_string (const u8 *s, const size_t len);
|
|
|
|
bool is_valid_base64b_char (const u8 c);
|
2018-07-20 11:00:39 +02:00
|
|
|
bool is_valid_base64c_string (const u8 *s, const size_t len);
|
|
|
|
bool is_valid_base64c_char (const u8 c);
|
2018-06-27 11:12:35 +02:00
|
|
|
bool is_valid_hex_string (const u8 *s, const size_t len);
|
|
|
|
bool is_valid_hex_char (const u8 c);
|
|
|
|
bool is_valid_digit_string (const u8 *s, const size_t len);
|
|
|
|
bool is_valid_digit_char (const u8 c);
|
2016-09-06 11:49:26 +02:00
|
|
|
|
|
|
|
u8 hex_convert (const u8 c);
|
|
|
|
|
|
|
|
u8 hex_to_u8 (const u8 hex[2]);
|
|
|
|
u32 hex_to_u32 (const u8 hex[8]);
|
|
|
|
u64 hex_to_u64 (const u8 hex[16]);
|
|
|
|
|
2018-12-15 15:22:40 +01:00
|
|
|
void u8_to_hex (const u8 v, u8 hex[2]);
|
|
|
|
void u32_to_hex (const u32 v, u8 hex[8]);
|
|
|
|
void u64_to_hex (const u64 v, u8 hex[16]);
|
2016-09-06 11:49:26 +02:00
|
|
|
|
2018-01-21 19:57:24 +01:00
|
|
|
u8 int_to_base32 (const u8 c);
|
|
|
|
u8 base32_to_int (const u8 c);
|
|
|
|
u8 int_to_base64 (const u8 c);
|
|
|
|
u8 base64_to_int (const u8 c);
|
|
|
|
u8 int_to_base64url (const u8 c);
|
|
|
|
u8 base64url_to_int (const u8 c);
|
|
|
|
u8 int_to_itoa32 (const u8 c);
|
|
|
|
u8 itoa32_to_int (const u8 c);
|
|
|
|
u8 int_to_itoa64 (const u8 c);
|
|
|
|
u8 itoa64_to_int (const u8 c);
|
|
|
|
u8 int_to_bf64 (const u8 c);
|
|
|
|
u8 bf64_to_int (const u8 c);
|
|
|
|
u8 int_to_lotus64 (const u8 c);
|
|
|
|
u8 lotus64_to_int (const u8 c);
|
2016-09-06 11:49:26 +02:00
|
|
|
|
2018-02-08 19:13:29 +01:00
|
|
|
size_t base32_decode (u8 (*f) (const u8), const u8 *in_buf, const size_t in_len, u8 *out_buf);
|
|
|
|
size_t base32_encode (u8 (*f) (const u8), const u8 *in_buf, const size_t in_len, u8 *out_buf);
|
|
|
|
size_t base64_decode (u8 (*f) (const u8), const u8 *in_buf, const size_t in_len, u8 *out_buf);
|
|
|
|
size_t base64_encode (u8 (*f) (const u8), const u8 *in_buf, const size_t in_len, u8 *out_buf);
|
2016-09-06 11:49:26 +02:00
|
|
|
|
2018-02-08 19:13:29 +01:00
|
|
|
void lowercase (u8 *buf, const size_t len);
|
|
|
|
void uppercase (u8 *buf, const size_t len);
|
2016-09-06 18:44:05 +02:00
|
|
|
|
|
|
|
#endif // _CONVERT_H
|