Mercurial > libbase64
changeset 12:f8a106ba04f8
New style
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 09 Jun 2017 09:54:27 +0200 |
parents | b3b7518dcaa2 |
children | a837dfb51eea |
files | base64.hpp |
diffstat | 1 files changed, 9 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/base64.hpp Thu Feb 02 17:29:18 2017 +0100 +++ b/base64.hpp Fri Jun 09 09:54:27 2017 +0200 @@ -117,15 +117,12 @@ { assert(is_base64(ch)); - if (ch >= '0' && ch <= '9') { + if (ch >= '0' && ch <= '9') return static_cast<unsigned char>(ch + 4); - } - if (ch >= 'A' && ch <= 'Z') { + if (ch >= 'A' && ch <= 'Z') return static_cast<unsigned char>(ch - 65); - } - if (ch >= 'a' && ch <= 'z') { + if (ch >= 'a' && ch <= 'z') return static_cast<unsigned char>(ch - 71); - } return (ch == '+') ? 62U : 63U; } @@ -149,9 +146,8 @@ char inputbuf[3] = { 0, 0, 0 }; int count; - for (count = 0; count < 3 && input != end; ++count) { + for (count = 0; count < 3 && input != end; ++count) inputbuf[count] = *input++; - } *output++ = lookup(inputbuf[0] >> 2 & 0x3f); *output++ = lookup((inputbuf[0] << 4 & 0x3f) | (inputbuf[1] >> 4 & 0x0f)); @@ -184,30 +180,25 @@ for (count = 0; count < 4 && input != end; ++count) { // Check if the character is valid and get its value. - if ((*input == '=' && count <= 1) || !is_valid(*input)) { + if ((*input == '=' && count <= 1) || !is_valid(*input)) throw std::invalid_argument("invalid base64 string"); - } - if (is_base64(*input)) { + if (is_base64(*input)) inputbuf[count] = static_cast<char>(rlookup(*input)); - } input++; } - if (count != 4) { + if (count != 4) throw std::invalid_argument("truncated string"); - } *output++ = static_cast<char>(((inputbuf[0] << 2) & 0xfc) | ((inputbuf[1] >> 4) & 0x03)); - if (inputbuf[2] != -1) { + if (inputbuf[2] != -1) *output++ = static_cast<char>(((inputbuf[1] << 4) & 0xf0) | ((inputbuf[2] >> 2) & 0x0f)); - } if (inputbuf[3] != -1) { // "XY=Z" is not allowed. - if (inputbuf[2] == -1) { + if (inputbuf[2] == -1) throw std::invalid_argument("invalid base64 string"); - } *output++ = static_cast<char>(((inputbuf[2] << 6) & 0xc0) | (inputbuf[3] & 0x3f)); }