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:
parent
6c087dd523
commit
5d59548018
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue