From 7bf6253941d3b61e5eb3339fb5f68c84e9e68795 Mon Sep 17 00:00:00 2001 From: Valentin Bartenev Date: Tue, 26 Oct 2021 15:43:44 +0300 Subject: Custom implementation of Base64 decoding function. Compared to the previous implementation based on OpenSSL, the new implementation has these advantages: 1. Strict and reliable detection of invalid strings, including strings with less than 4 bytes of garbage at the end; 2. Allows to use Base64 strings without '=' padding. --- src/nxt_string.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/nxt_string.h') diff --git a/src/nxt_string.h b/src/nxt_string.h index 7e02f59a..4d565e87 100644 --- a/src/nxt_string.h +++ b/src/nxt_string.h @@ -190,6 +190,8 @@ NXT_EXPORT uintptr_t nxt_encode_complex_uri(u_char *dst, u_char *src, size_t length); NXT_EXPORT nxt_bool_t nxt_is_complex_uri_encoded(u_char *s, size_t length); +NXT_EXPORT ssize_t nxt_base64_decode(u_char *dst, u_char *src, size_t length); + extern const uint8_t nxt_hex2int[256]; -- cgit