/* SPDX-License-Identifier: Apache-2.0 */ /* Copyright 2025 Thorsten Töpper * * vim:ts=4:sw=4:expandtab */ #ifndef HEX_CONVERSION_H #define HEX_CONVERSION_H #include #include #include #ifdef DEBUGBUILD #include "output.h" #endif #define ishex_macro(c) ((c>='0' && c <= '9') || (c>='A' && c <= 'F') || (c>='a' && c <= 'f')) int convert_line(char *s); int ishex(unsigned char c); int ishex_string(const char *s, size_t l); unsigned char *convert_to_binary(char *hex, unsigned char *out); char *convert_from_binary(unsigned char *bin, size_t l, char *out); /* short inline functions are fine in header */ inline int convert_line(char *s) { size_t i = 0, l = 0; if (s == NULL) return -1; l=strlen(s); for (i=0; i='0' && c <= '9') || (c>='A' && c <= 'F') || (c>='a' && c <= 'f')) { return 1; } return 0; }; inline int ishex_string(const char *s, size_t l) { size_t i = 0; if (s == 0) return 0; if (l == 0) l = strlen(s); for (; i