diff options
Diffstat (limited to 'src/libsha2/hex.h')
-rw-r--r-- | src/libsha2/hex.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/libsha2/hex.h b/src/libsha2/hex.h new file mode 100644 index 0000000..d9581b0 --- /dev/null +++ b/src/libsha2/hex.h @@ -0,0 +1,62 @@ +/** + * libsha2 – SHA-2-family hashing library + * + * Copyright © 2015 Mattias Andrée (maandree@member.fsf.org) + * + * This library is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this library. If not, see <http://www.gnu.org/licenses/>. + */ +#ifndef LIBSHA2_HEX_H +#define LIBSHA2_HEX_H 1 + + +#include <stddef.h> + + + +/** + * Convert a binary hashsum to lower case hexadecimal representation + * + * @param output Output array, should have an allocation size of at least `2 * n + 1` + * @param hashsum The hashsum to convert + * @param n The size of `hashsum` + */ +__attribute__((leaf, nonnull, nothrow)) +void libsha2_behex_lower(char* restrict output, const char* restrict hashsum, size_t n); + + +/** + * Convert a binary hashsum to upper case hexadecimal representation + * + * @param output Output array, should have an allocation size of at least `2 * n + 1` + * @param hashsum The hashsum to convert + * @param n The size of `hashsum` + */ +__attribute__((leaf, nonnull, nothrow)) +void libsha2_behex_upper(char* restrict output, const char* restrict hashsum, size_t n); + + +/** + * Convert a hexadecimal hashsum (both lower case, upper + * case and mixed is supported) to binary representation + * + * @param output Output array, should have an allocation size of at least `strlen(hashsum) / 2` + * @param hashsum The hashsum to convert + */ +__attribute__((leaf, nonnull, nothrow)) +void libsha2_unhex(char* restrict output, const char* restrict hashsum); + + + +#endif + |