commit 08a77ec: [Minor] Add base64 check routine
Vsevolod Stakhov
vsevolod at highsecure.ru
Mon Feb 11 17:28:06 UTC 2019
Author: Vsevolod Stakhov
Date: 2019-02-11 14:14:53 +0000
URL: https://github.com/rspamd/rspamd/commit/08a77ec01eabb4e10d0750427925610ecada3686
[Minor] Add base64 check routine
---
src/libcryptobox/base64/base64.c | 24 ++++++++++++++++++++++++
src/libcryptobox/cryptobox.h | 9 +++++++++
2 files changed, 33 insertions(+)
diff --git a/src/libcryptobox/base64/base64.c b/src/libcryptobox/base64/base64.c
index b4ddd3135..ff08b9a80 100644
--- a/src/libcryptobox/base64/base64.c
+++ b/src/libcryptobox/base64/base64.c
@@ -146,3 +146,27 @@ base64_test (bool generic, size_t niters, size_t len)
return cycles;
}
+
+
+gboolean
+rspamd_cryptobox_base64_is_valid (const gchar *in, gsize inlen)
+{
+ const guchar *p, *end;
+
+ if (inlen == 0) {
+ return FALSE;
+ }
+
+ p = in;
+ end = in + inlen;
+
+ while (p < end && *p != '=') {
+ if (!g_ascii_isspace (*p)) {
+ if (base64_table_dec[*p] == 255) {
+ return FALSE;
+ }
+ }
+ }
+
+ return TRUE;
+}
\ No newline at end of file
diff --git a/src/libcryptobox/cryptobox.h b/src/libcryptobox/cryptobox.h
index 1d48c06e5..016e58fc2 100644
--- a/src/libcryptobox/cryptobox.h
+++ b/src/libcryptobox/cryptobox.h
@@ -399,4 +399,13 @@ guint64 rspamd_cryptobox_fast_hash_specific (
*/
gboolean rspamd_cryptobox_base64_decode (const gchar *in, gsize inlen,
guchar *out, gsize *outlen);
+
+/**
+ * Returns TRUE if data looks like a valid base64 string
+ * @param in
+ * @param inlen
+ * @return
+ */
+gboolean rspamd_cryptobox_base64_is_valid (const gchar *in, gsize inlen);
+
#endif /* CRYPTOBOX_H_ */
More information about the Commits
mailing list