aboutsummaryrefslogtreecommitdiffstats
path: root/src/libsha2/hex.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsha2/hex.h')
-rw-r--r--src/libsha2/hex.h62
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
+