|
|
|
@ -32,11 +32,13 @@ Contributors:
|
|
|
|
|
* #
|
|
|
|
|
* ################################################################ */
|
|
|
|
|
|
|
|
|
|
int dynsec_auth__base64_encode(unsigned char *in, unsigned int in_len, char **encoded)
|
|
|
|
|
int dynsec_auth__base64_encode(unsigned char *in, int in_len, char **encoded)
|
|
|
|
|
{
|
|
|
|
|
BIO *bmem, *b64;
|
|
|
|
|
BUF_MEM *bptr;
|
|
|
|
|
|
|
|
|
|
if(in_len < 0) return 1;
|
|
|
|
|
|
|
|
|
|
b64 = BIO_new(BIO_f_base64());
|
|
|
|
|
BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
|
|
|
|
|
bmem = BIO_new(BIO_s_mem());
|
|
|
|
@ -60,10 +62,10 @@ int dynsec_auth__base64_encode(unsigned char *in, unsigned int in_len, char **en
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int dynsec_auth__base64_decode(char *in, unsigned char **decoded, unsigned int *decoded_len)
|
|
|
|
|
int dynsec_auth__base64_decode(char *in, unsigned char **decoded, int *decoded_len)
|
|
|
|
|
{
|
|
|
|
|
BIO *bmem, *b64;
|
|
|
|
|
int slen;
|
|
|
|
|
size_t slen;
|
|
|
|
|
|
|
|
|
|
slen = strlen(in);
|
|
|
|
|
|
|
|
|
@ -79,7 +81,7 @@ int dynsec_auth__base64_decode(char *in, unsigned char **decoded, unsigned int *
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
b64 = BIO_push(b64, bmem);
|
|
|
|
|
BIO_write(bmem, in, slen);
|
|
|
|
|
BIO_write(bmem, in, (int)slen);
|
|
|
|
|
|
|
|
|
|
if(BIO_flush(bmem) != 1){
|
|
|
|
|
BIO_free_all(b64);
|
|
|
|
@ -90,7 +92,7 @@ int dynsec_auth__base64_decode(char *in, unsigned char **decoded, unsigned int *
|
|
|
|
|
BIO_free_all(b64);
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
*decoded_len = BIO_read(b64, *decoded, slen);
|
|
|
|
|
*decoded_len = BIO_read(b64, *decoded, (int)slen);
|
|
|
|
|
BIO_free_all(b64);
|
|
|
|
|
|
|
|
|
|
if(*decoded_len <= 0){
|
|
|
|
@ -133,7 +135,7 @@ int dynsec_auth__pw_hash(struct dynsec__client *client, const char *password, un
|
|
|
|
|
return MOSQ_ERR_UNKNOWN;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return !PKCS5_PBKDF2_HMAC(password, strlen(password),
|
|
|
|
|
return !PKCS5_PBKDF2_HMAC(password, (int)strlen(password),
|
|
|
|
|
client->pw.salt, sizeof(client->pw.salt), iterations,
|
|
|
|
|
digest, password_hash_len, password_hash);
|
|
|
|
|
}
|
|
|
|
|