When I changed the argument type from uint8_t * to char *, I forgot that

they were being used as array indices.  Cast them back to uint8_t.


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@779 185d5e19-27fe-0310-9dcf-9bff6b9f3609
This commit is contained in:
Dag-Erling Smørgrav 2014-03-09 14:11:44 +00:00
parent 6c087dd523
commit 5d59548018
2 changed files with 12 additions and 8 deletions

View File

@ -85,8 +85,9 @@ static const char b32dec[256] = {
* have room for base32_enclen(len) characters and a terminating NUL.
*/
int
base32_enc(const char *in, size_t ilen, char *out, size_t *olen)
base32_enc(const char *cin, size_t ilen, char *out, size_t *olen)
{
const uint8_t *in = (uint8_t *)cin;
uint64_t bits;
if (*olen <= base32_enclen(ilen)) {
@ -160,8 +161,9 @@ base32_enc(const char *in, size_t ilen, char *out, size_t *olen)
* returns the total amount.
*/
int
base32_dec(const char *in, size_t ilen, char *out, size_t *olen)
base32_dec(const char *cin, size_t ilen, char *out, size_t *olen)
{
const uint8_t *in = (uint8_t *)cin;
size_t len;
int bits, shift, padding;
@ -170,10 +172,10 @@ base32_dec(const char *in, size_t ilen, char *out, size_t *olen)
(padding && *in == '=')) {
/* consume */
continue;
} else if (!padding && b32dec[(int)*in] >= 0) {
} else if (!padding && b32dec[*in] >= 0) {
/* shift into accumulator */
shift += 5;
bits = bits << 5 | b32dec[(int)*in];
bits = bits << 5 | b32dec[*in];
} else if (!padding && shift > 0 && shift < 5 && *in == '=') {
/* final byte */
shift = 0;

View File

@ -87,8 +87,9 @@ static const char b64dec[256] = {
* have room for base64_enclen(len) characters and a terminating NUL.
*/
int
base64_enc(const char *in, size_t ilen, char *out, size_t *olen)
base64_enc(const char *cin, size_t ilen, char *out, size_t *olen)
{
const uint8_t *in = (uint8_t *)cin;
uint32_t bits;
if (*olen <= base64_enclen(ilen)) {
@ -148,8 +149,9 @@ base64_enc(const char *in, size_t ilen, char *out, size_t *olen)
* returns the total amount.
*/
int
base64_dec(const char *in, size_t ilen, char *out, size_t *olen)
base64_dec(const char *cin, size_t ilen, char *out, size_t *olen)
{
const uint8_t *in = (uint8_t *)cin;
size_t len;
int bits, shift, padding;
@ -158,10 +160,10 @@ base64_dec(const char *in, size_t ilen, char *out, size_t *olen)
(padding && *in == '=')) {
/* consume */
continue;
} else if (!padding && b64dec[(int)*in] >= 0) {
} else if (!padding && b64dec[*in] >= 0) {
/* shift into accumulator */
shift += 6;
bits = bits << 6 | b64dec[(int)*in];
bits = bits << 6 | b64dec[*in];
} else if (!padding && shift > 0 && shift != 6 && *in == '=') {
/* final byte */
shift = 0;