summaryrefslogtreecommitdiff
path: root/base64url-meta.c
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2015-02-10 22:12:59 +0100
committerNiels Möller <nisse@lysator.liu.se>2015-02-10 22:12:59 +0100
commite172645c99c04fd7618654acb3611b0b1d7c5a77 (patch)
tree1364b3fc8ff9598d473a334fcbdc2ea63677f76b /base64url-meta.c
parente6d4db6a9da6bc1bc59c6cb471e53d5e1a236966 (diff)
downloadnettle-e172645c99c04fd7618654acb3611b0b1d7c5a77.tar.gz
New struct nettle_armor for base64url.
Diffstat (limited to 'base64url-meta.c')
-rw-r--r--base64url-meta.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/base64url-meta.c b/base64url-meta.c
new file mode 100644
index 00000000..af4afc95
--- /dev/null
+++ b/base64url-meta.c
@@ -0,0 +1,63 @@
+/* base64url-meta.c
+
+ Copyright (C) 2015 Niels Möller
+
+ This file is part of GNU Nettle.
+
+ GNU Nettle is free software: you can redistribute it and/or
+ modify it under the terms of either:
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at your
+ option) any later version.
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ or both in parallel, as here.
+
+ GNU Nettle 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
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see http://www.gnu.org/licenses/.
+*/
+
+#if HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "nettle-meta.h"
+
+#include "base64.h"
+
+/* Same as the macros with the same name */
+static nettle_armor_length_func base64url_encode_length;
+static size_t
+base64url_encode_length(size_t length)
+{
+ return BASE64_ENCODE_LENGTH(length);
+}
+
+static nettle_armor_length_func base64url_decode_length;
+static size_t
+base64url_decode_length(size_t length)
+{
+ return BASE64_DECODE_LENGTH(length);
+}
+
+#define base64url_encode_ctx base64_encode_ctx
+#define base64url_encode_update base64_encode_update
+#define base64url_encode_final base64_encode_final
+#define base64url_decode_ctx base64_decode_ctx
+#define base64url_decode_update base64_decode_update
+#define base64url_decode_final base64_decode_final
+
+const struct nettle_armor nettle_base64url
+= _NETTLE_ARMOR(base64url, BASE64);