mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-28 18:28:23 -05:00
Clean up base64_{encode,decode} pointer types
Allow any pointer to be used as source for encoding and use char * as the return value from encoding and input value for decoding to reduce number of type casts needed in the callers. Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
b22608423b
commit
8e5e36a184
@ -158,7 +158,7 @@ int est_load_cacerts(struct hs20_osu_client *ctx, const char *url)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
pkcs7 = base64_decode((unsigned char *) resp, resp_len, &pkcs7_len);
|
pkcs7 = base64_decode(resp, resp_len, &pkcs7_len);
|
||||||
if (pkcs7 && pkcs7_len < resp_len / 2) {
|
if (pkcs7 && pkcs7_len < resp_len / 2) {
|
||||||
wpa_printf(MSG_INFO, "Too short base64 decode (%u bytes; downloaded %u bytes) - assume this was binary",
|
wpa_printf(MSG_INFO, "Too short base64 decode (%u bytes; downloaded %u bytes) - assume this was binary",
|
||||||
(unsigned int) pkcs7_len, (unsigned int) resp_len);
|
(unsigned int) pkcs7_len, (unsigned int) resp_len);
|
||||||
@ -639,8 +639,7 @@ int est_build_csr(struct hs20_osu_client *ctx, const char *url)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
attrs = base64_decode((unsigned char *) resp, resp_len,
|
attrs = base64_decode(resp, resp_len, &attrs_len);
|
||||||
&attrs_len);
|
|
||||||
os_free(resp);
|
os_free(resp);
|
||||||
|
|
||||||
if (attrs == NULL) {
|
if (attrs == NULL) {
|
||||||
@ -734,7 +733,7 @@ int est_simple_enroll(struct hs20_osu_client *ctx, const char *url,
|
|||||||
}
|
}
|
||||||
wpa_printf(MSG_DEBUG, "EST simpleenroll response: %s", resp);
|
wpa_printf(MSG_DEBUG, "EST simpleenroll response: %s", resp);
|
||||||
|
|
||||||
pkcs7 = base64_decode((unsigned char *) resp, resp_len, &pkcs7_len);
|
pkcs7 = base64_decode(resp, resp_len, &pkcs7_len);
|
||||||
if (pkcs7 == NULL) {
|
if (pkcs7 == NULL) {
|
||||||
wpa_printf(MSG_INFO, "EST workaround - Could not decode base64, assume this is DER encoded PKCS7");
|
wpa_printf(MSG_INFO, "EST workaround - Could not decode base64, assume this is DER encoded PKCS7");
|
||||||
pkcs7 = os_malloc(resp_len);
|
pkcs7 = os_malloc(resp_len);
|
||||||
|
@ -310,7 +310,7 @@ static int download_cert(struct hs20_osu_client *ctx, xml_node_t *params,
|
|||||||
size_t len;
|
size_t len;
|
||||||
u8 digest1[SHA256_MAC_LEN], digest2[SHA256_MAC_LEN];
|
u8 digest1[SHA256_MAC_LEN], digest2[SHA256_MAC_LEN];
|
||||||
int res;
|
int res;
|
||||||
unsigned char *b64;
|
char *b64;
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
|
||||||
url_node = get_node(ctx->xml, params, "CertURL");
|
url_node = get_node(ctx->xml, params, "CertURL");
|
||||||
@ -364,7 +364,7 @@ static int download_cert(struct hs20_osu_client *ctx, xml_node_t *params,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
b64 = base64_encode((unsigned char *) cert, len, NULL);
|
b64 = base64_encode(cert, len, NULL);
|
||||||
os_free(cert);
|
os_free(cert);
|
||||||
if (b64 == NULL)
|
if (b64 == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -633,7 +633,7 @@ static xml_node_t * build_username_password(struct hs20_svc *ctx,
|
|||||||
|
|
||||||
add_text_node(ctx, node, "Username", user);
|
add_text_node(ctx, node, "Username", user);
|
||||||
|
|
||||||
b64 = (char *) base64_encode((unsigned char *) pw, strlen(pw), NULL);
|
b64 = base64_encode(pw, strlen(pw), NULL);
|
||||||
if (b64 == NULL)
|
if (b64 == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
len = os_strlen(b64);
|
len = os_strlen(b64);
|
||||||
@ -1602,8 +1602,7 @@ static xml_node_t * spp_exec_get_certificate(struct hs20_svc *ctx,
|
|||||||
|
|
||||||
xml_node_create_text(ctx->xml, enroll, ns, "estUserID", user);
|
xml_node_create_text(ctx->xml, enroll, ns, "estUserID", user);
|
||||||
|
|
||||||
b64 = (char *) base64_encode((unsigned char *) password,
|
b64 = base64_encode(password, strlen(password), NULL);
|
||||||
strlen(password), NULL);
|
|
||||||
if (b64 == NULL) {
|
if (b64 == NULL) {
|
||||||
xml_node_free(ctx->xml, spp_node);
|
xml_node_free(ctx->xml, spp_node);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -1007,8 +1007,7 @@ static int dpp_parse_uri_pk(struct dpp_bootstrap_info *bi, const char *info)
|
|||||||
if (!end)
|
if (!end)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
data = base64_decode((const unsigned char *) info, end - info,
|
data = base64_decode(info, end - info, &data_len);
|
||||||
&data_len);
|
|
||||||
if (!data) {
|
if (!data) {
|
||||||
wpa_printf(MSG_DEBUG,
|
wpa_printf(MSG_DEBUG,
|
||||||
"DPP: Invalid base64 encoding on URI public-key");
|
"DPP: Invalid base64 encoding on URI public-key");
|
||||||
@ -1482,7 +1481,7 @@ int dpp_bootstrap_key_hash(struct dpp_bootstrap_info *bi)
|
|||||||
char * dpp_keygen(struct dpp_bootstrap_info *bi, const char *curve,
|
char * dpp_keygen(struct dpp_bootstrap_info *bi, const char *curve,
|
||||||
const u8 *privkey, size_t privkey_len)
|
const u8 *privkey, size_t privkey_len)
|
||||||
{
|
{
|
||||||
unsigned char *base64 = NULL;
|
char *base64 = NULL;
|
||||||
char *pos, *end;
|
char *pos, *end;
|
||||||
size_t len;
|
size_t len;
|
||||||
struct wpabuf *der = NULL;
|
struct wpabuf *der = NULL;
|
||||||
@ -1528,7 +1527,7 @@ char * dpp_keygen(struct dpp_bootstrap_info *bi, const char *curve,
|
|||||||
der = NULL;
|
der = NULL;
|
||||||
if (!base64)
|
if (!base64)
|
||||||
goto fail;
|
goto fail;
|
||||||
pos = (char *) base64;
|
pos = base64;
|
||||||
end = pos + len;
|
end = pos + len;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
pos = os_strchr(pos, '\n');
|
pos = os_strchr(pos, '\n');
|
||||||
@ -1536,7 +1535,7 @@ char * dpp_keygen(struct dpp_bootstrap_info *bi, const char *curve,
|
|||||||
break;
|
break;
|
||||||
os_memmove(pos, pos + 1, end - pos);
|
os_memmove(pos, pos + 1, end - pos);
|
||||||
}
|
}
|
||||||
return (char *) base64;
|
return base64;
|
||||||
fail:
|
fail:
|
||||||
os_free(base64);
|
os_free(base64);
|
||||||
wpabuf_free(der);
|
wpabuf_free(der);
|
||||||
|
@ -144,7 +144,7 @@ static TNC_Result TNC_TNCC_SendMessage(
|
|||||||
TNC_MessageType messageType)
|
TNC_MessageType messageType)
|
||||||
{
|
{
|
||||||
struct tnc_if_imc *imc;
|
struct tnc_if_imc *imc;
|
||||||
unsigned char *b64;
|
char *b64;
|
||||||
size_t b64len;
|
size_t b64len;
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "TNC: TNC_TNCC_SendMessage(imcID=%lu "
|
wpa_printf(MSG_DEBUG, "TNC: TNC_TNCC_SendMessage(imcID=%lu "
|
||||||
@ -629,8 +629,7 @@ static unsigned char * tncc_get_base64(char *start, size_t *decoded_len)
|
|||||||
return NULL;
|
return NULL;
|
||||||
*pos2 = '\0';
|
*pos2 = '\0';
|
||||||
|
|
||||||
decoded = base64_decode((unsigned char *) pos, os_strlen(pos),
|
decoded = base64_decode(pos, os_strlen(pos), decoded_len);
|
||||||
decoded_len);
|
|
||||||
*pos2 = '<';
|
*pos2 = '<';
|
||||||
if (decoded == NULL) {
|
if (decoded == NULL) {
|
||||||
wpa_printf(MSG_DEBUG, "TNC: Failed to decode Base64 data");
|
wpa_printf(MSG_DEBUG, "TNC: Failed to decode Base64 data");
|
||||||
|
@ -179,7 +179,7 @@ static TNC_Result TNC_TNCS_SendMessage(
|
|||||||
TNC_MessageType messageType)
|
TNC_MessageType messageType)
|
||||||
{
|
{
|
||||||
struct tncs_data *tncs;
|
struct tncs_data *tncs;
|
||||||
unsigned char *b64;
|
char *b64;
|
||||||
size_t b64len;
|
size_t b64len;
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "TNC: TNC_TNCS_SendMessage(imvID=%lu "
|
wpa_printf(MSG_DEBUG, "TNC: TNC_TNCS_SendMessage(imvID=%lu "
|
||||||
@ -678,8 +678,7 @@ static unsigned char * tncs_get_base64(char *start, size_t *decoded_len)
|
|||||||
return NULL;
|
return NULL;
|
||||||
*pos2 = '\0';
|
*pos2 = '\0';
|
||||||
|
|
||||||
decoded = base64_decode((unsigned char *) pos, os_strlen(pos),
|
decoded = base64_decode(pos, os_strlen(pos), decoded_len);
|
||||||
decoded_len);
|
|
||||||
*pos2 = '<';
|
*pos2 = '<';
|
||||||
if (decoded == NULL) {
|
if (decoded == NULL) {
|
||||||
wpa_printf(MSG_DEBUG, "TNC: Failed to decode Base64 data");
|
wpa_printf(MSG_DEBUG, "TNC: Failed to decode Base64 data");
|
||||||
|
@ -130,7 +130,7 @@ static int tlsv1_add_cert(struct x509_certificate **chain,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
der = base64_decode(pos, end - pos, &der_len);
|
der = base64_decode((const char *) pos, end - pos, &der_len);
|
||||||
if (der == NULL) {
|
if (der == NULL) {
|
||||||
wpa_printf(MSG_INFO, "TLSv1: Could not decode PEM "
|
wpa_printf(MSG_INFO, "TLSv1: Could not decode PEM "
|
||||||
"certificate");
|
"certificate");
|
||||||
@ -293,7 +293,7 @@ static struct crypto_private_key * tlsv1_set_key_pem(const u8 *key, size_t len)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
der = base64_decode(pos, end - pos, &der_len);
|
der = base64_decode((const char *) pos, end - pos, &der_len);
|
||||||
if (!der)
|
if (!der)
|
||||||
return NULL;
|
return NULL;
|
||||||
pkey = crypto_private_key_import(der, der_len, NULL);
|
pkey = crypto_private_key_import(der, der_len, NULL);
|
||||||
@ -321,7 +321,7 @@ static struct crypto_private_key * tlsv1_set_key_enc_pem(const u8 *key,
|
|||||||
if (!end)
|
if (!end)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
der = base64_decode(pos, end - pos, &der_len);
|
der = base64_decode((const char *) pos, end - pos, &der_len);
|
||||||
if (!der)
|
if (!der)
|
||||||
return NULL;
|
return NULL;
|
||||||
pkey = crypto_private_key_import(der, der_len, passwd);
|
pkey = crypto_private_key_import(der, der_len, passwd);
|
||||||
@ -1225,7 +1225,7 @@ static int tlsv1_set_dhparams_blob(struct tlsv1_credentials *cred,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
der = base64_decode(pos, end - pos, &der_len);
|
der = base64_decode((const char *) pos, end - pos, &der_len);
|
||||||
if (der == NULL) {
|
if (der == NULL) {
|
||||||
wpa_printf(MSG_INFO, "TLSv1: Could not decode PEM dhparams");
|
wpa_printf(MSG_INFO, "TLSv1: Could not decode PEM dhparams");
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -12,18 +12,16 @@
|
|||||||
#include "os.h"
|
#include "os.h"
|
||||||
#include "base64.h"
|
#include "base64.h"
|
||||||
|
|
||||||
static const unsigned char base64_table[65] =
|
static const char base64_table[65] =
|
||||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||||
static const unsigned char base64_url_table[65] =
|
static const char base64_url_table[65] =
|
||||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
|
||||||
|
|
||||||
|
|
||||||
static unsigned char * base64_gen_encode(const unsigned char *src, size_t len,
|
static char * base64_gen_encode(const unsigned char *src, size_t len,
|
||||||
size_t *out_len,
|
size_t *out_len, const char *table, int add_pad)
|
||||||
const unsigned char *table,
|
|
||||||
int add_pad)
|
|
||||||
{
|
{
|
||||||
unsigned char *out, *pos;
|
char *out, *pos;
|
||||||
const unsigned char *end, *in;
|
const unsigned char *end, *in;
|
||||||
size_t olen;
|
size_t olen;
|
||||||
int line_len;
|
int line_len;
|
||||||
@ -83,9 +81,8 @@ static unsigned char * base64_gen_encode(const unsigned char *src, size_t len,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static unsigned char * base64_gen_decode(const unsigned char *src, size_t len,
|
static unsigned char * base64_gen_decode(const char *src, size_t len,
|
||||||
size_t *out_len,
|
size_t *out_len, const char *table)
|
||||||
const unsigned char *table)
|
|
||||||
{
|
{
|
||||||
unsigned char dtable[256], *out, *pos, block[4], tmp;
|
unsigned char dtable[256], *out, *pos, block[4], tmp;
|
||||||
size_t i, count, olen;
|
size_t i, count, olen;
|
||||||
@ -94,12 +91,12 @@ static unsigned char * base64_gen_decode(const unsigned char *src, size_t len,
|
|||||||
|
|
||||||
os_memset(dtable, 0x80, 256);
|
os_memset(dtable, 0x80, 256);
|
||||||
for (i = 0; i < sizeof(base64_table) - 1; i++)
|
for (i = 0; i < sizeof(base64_table) - 1; i++)
|
||||||
dtable[table[i]] = (unsigned char) i;
|
dtable[(unsigned char) table[i]] = (unsigned char) i;
|
||||||
dtable['='] = 0;
|
dtable['='] = 0;
|
||||||
|
|
||||||
count = 0;
|
count = 0;
|
||||||
for (i = 0; i < len; i++) {
|
for (i = 0; i < len; i++) {
|
||||||
if (dtable[src[i]] != 0x80)
|
if (dtable[(unsigned char) src[i]] != 0x80)
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,8 +162,7 @@ static unsigned char * base64_gen_decode(const unsigned char *src, size_t len,
|
|||||||
* nul terminated to make it easier to use as a C string. The nul terminator is
|
* nul terminated to make it easier to use as a C string. The nul terminator is
|
||||||
* not included in out_len.
|
* not included in out_len.
|
||||||
*/
|
*/
|
||||||
unsigned char * base64_encode(const unsigned char *src, size_t len,
|
char * base64_encode(const void *src, size_t len, size_t *out_len)
|
||||||
size_t *out_len)
|
|
||||||
{
|
{
|
||||||
return base64_gen_encode(src, len, out_len, base64_table, 1);
|
return base64_gen_encode(src, len, out_len, base64_table, 1);
|
||||||
}
|
}
|
||||||
@ -174,8 +170,7 @@ unsigned char * base64_encode(const unsigned char *src, size_t len,
|
|||||||
|
|
||||||
char * base64_url_encode(const void *src, size_t len, size_t *out_len)
|
char * base64_url_encode(const void *src, size_t len, size_t *out_len)
|
||||||
{
|
{
|
||||||
return (char *) base64_gen_encode(src, len, out_len, base64_url_table,
|
return base64_gen_encode(src, len, out_len, base64_url_table, 0);
|
||||||
0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -189,8 +184,7 @@ char * base64_url_encode(const void *src, size_t len, size_t *out_len)
|
|||||||
*
|
*
|
||||||
* Caller is responsible for freeing the returned buffer.
|
* Caller is responsible for freeing the returned buffer.
|
||||||
*/
|
*/
|
||||||
unsigned char * base64_decode(const unsigned char *src, size_t len,
|
unsigned char * base64_decode(const char *src, size_t len, size_t *out_len)
|
||||||
size_t *out_len)
|
|
||||||
{
|
{
|
||||||
return base64_gen_decode(src, len, out_len, base64_table);
|
return base64_gen_decode(src, len, out_len, base64_table);
|
||||||
}
|
}
|
||||||
@ -198,6 +192,5 @@ unsigned char * base64_decode(const unsigned char *src, size_t len,
|
|||||||
|
|
||||||
unsigned char * base64_url_decode(const char *src, size_t len, size_t *out_len)
|
unsigned char * base64_url_decode(const char *src, size_t len, size_t *out_len)
|
||||||
{
|
{
|
||||||
return base64_gen_decode((const unsigned char *) src, len, out_len,
|
return base64_gen_decode(src, len, out_len, base64_url_table);
|
||||||
base64_url_table);
|
|
||||||
}
|
}
|
||||||
|
@ -9,10 +9,8 @@
|
|||||||
#ifndef BASE64_H
|
#ifndef BASE64_H
|
||||||
#define BASE64_H
|
#define BASE64_H
|
||||||
|
|
||||||
unsigned char * base64_encode(const unsigned char *src, size_t len,
|
char * base64_encode(const void *src, size_t len, size_t *out_len);
|
||||||
size_t *out_len);
|
unsigned char * base64_decode(const char *src, size_t len, size_t *out_len);
|
||||||
unsigned char * base64_decode(const unsigned char *src, size_t len,
|
|
||||||
size_t *out_len);
|
|
||||||
char * base64_url_encode(const void *src, size_t len, size_t *out_len);
|
char * base64_url_encode(const void *src, size_t len, size_t *out_len);
|
||||||
unsigned char * base64_url_decode(const char *src, size_t len, size_t *out_len);
|
unsigned char * base64_url_decode(const char *src, size_t len, size_t *out_len);
|
||||||
|
|
||||||
|
@ -296,52 +296,53 @@ static int base64_tests(void)
|
|||||||
{
|
{
|
||||||
int errors = 0;
|
int errors = 0;
|
||||||
unsigned char *res;
|
unsigned char *res;
|
||||||
|
char *res2;
|
||||||
size_t res_len;
|
size_t res_len;
|
||||||
|
|
||||||
wpa_printf(MSG_INFO, "base64 tests");
|
wpa_printf(MSG_INFO, "base64 tests");
|
||||||
|
|
||||||
res = base64_encode((const unsigned char *) "", ~0, &res_len);
|
res2 = base64_encode("", ~0, &res_len);
|
||||||
|
if (res2) {
|
||||||
|
errors++;
|
||||||
|
os_free(res2);
|
||||||
|
}
|
||||||
|
|
||||||
|
res2 = base64_encode("=", 1, &res_len);
|
||||||
|
if (!res2 || res_len != 5 || res2[0] != 'P' || res2[1] != 'Q' ||
|
||||||
|
res2[2] != '=' || res2[3] != '=' || res2[4] != '\n')
|
||||||
|
errors++;
|
||||||
|
os_free(res2);
|
||||||
|
|
||||||
|
res2 = base64_encode("=", 1, NULL);
|
||||||
|
if (!res2 || res2[0] != 'P' || res2[1] != 'Q' ||
|
||||||
|
res2[2] != '=' || res2[3] != '=' || res2[4] != '\n')
|
||||||
|
errors++;
|
||||||
|
os_free(res2);
|
||||||
|
|
||||||
|
res = base64_decode("", 0, &res_len);
|
||||||
if (res) {
|
if (res) {
|
||||||
errors++;
|
errors++;
|
||||||
os_free(res);
|
os_free(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
res = base64_encode((const unsigned char *) "=", 1, &res_len);
|
res = base64_decode("a", 1, &res_len);
|
||||||
if (!res || res_len != 5 || res[0] != 'P' || res[1] != 'Q' ||
|
|
||||||
res[2] != '=' || res[3] != '=' || res[4] != '\n')
|
|
||||||
errors++;
|
|
||||||
os_free(res);
|
|
||||||
|
|
||||||
res = base64_encode((const unsigned char *) "=", 1, NULL);
|
|
||||||
if (!res || res[0] != 'P' || res[1] != 'Q' ||
|
|
||||||
res[2] != '=' || res[3] != '=' || res[4] != '\n')
|
|
||||||
errors++;
|
|
||||||
os_free(res);
|
|
||||||
|
|
||||||
res = base64_decode((const unsigned char *) "", 0, &res_len);
|
|
||||||
if (res) {
|
if (res) {
|
||||||
errors++;
|
errors++;
|
||||||
os_free(res);
|
os_free(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
res = base64_decode((const unsigned char *) "a", 1, &res_len);
|
res = base64_decode("====", 4, &res_len);
|
||||||
if (res) {
|
if (res) {
|
||||||
errors++;
|
errors++;
|
||||||
os_free(res);
|
os_free(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
res = base64_decode((const unsigned char *) "====", 4, &res_len);
|
res = base64_decode("PQ==", 4, &res_len);
|
||||||
if (res) {
|
|
||||||
errors++;
|
|
||||||
os_free(res);
|
|
||||||
}
|
|
||||||
|
|
||||||
res = base64_decode((const unsigned char *) "PQ==", 4, &res_len);
|
|
||||||
if (!res || res_len != 1 || res[0] != '=')
|
if (!res || res_len != 1 || res[0] != '=')
|
||||||
errors++;
|
errors++;
|
||||||
os_free(res);
|
os_free(res);
|
||||||
|
|
||||||
res = base64_decode((const unsigned char *) "P.Q-=!=*", 8, &res_len);
|
res = base64_decode("P.Q-=!=*", 8, &res_len);
|
||||||
if (!res || res_len != 1 || res[0] != '=')
|
if (!res || res_len != 1 || res[0] != '=')
|
||||||
errors++;
|
errors++;
|
||||||
os_free(res);
|
os_free(res);
|
||||||
|
@ -409,7 +409,7 @@ char * xml_node_get_base64_text(struct xml_node_ctx *ctx, xml_node_t *node,
|
|||||||
if (txt == NULL)
|
if (txt == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
ret = base64_decode((unsigned char *) txt, strlen(txt), &len);
|
ret = base64_decode(txt, strlen(txt), &len);
|
||||||
if (ret_len)
|
if (ret_len)
|
||||||
*ret_len = len;
|
*ret_len = len;
|
||||||
xml_node_get_text_free(ctx, txt);
|
xml_node_get_text_free(ctx, txt);
|
||||||
|
@ -235,7 +235,7 @@ struct wpabuf * xml_get_base64_item(const char *data, const char *name,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
decoded = base64_decode((unsigned char *) msg, os_strlen(msg), &len);
|
decoded = base64_decode(msg, os_strlen(msg), &len);
|
||||||
os_free(msg);
|
os_free(msg);
|
||||||
if (decoded == NULL) {
|
if (decoded == NULL) {
|
||||||
*ret = UPNP_OUT_OF_MEMORY;
|
*ret = UPNP_OUT_OF_MEMORY;
|
||||||
|
@ -897,7 +897,7 @@ static struct wpabuf * wps_er_soap_hdr(const struct wpabuf *msg,
|
|||||||
const struct sockaddr_in *dst,
|
const struct sockaddr_in *dst,
|
||||||
char **len_ptr, char **body_ptr)
|
char **len_ptr, char **body_ptr)
|
||||||
{
|
{
|
||||||
unsigned char *encoded;
|
char *encoded;
|
||||||
size_t encoded_len;
|
size_t encoded_len;
|
||||||
struct wpabuf *buf;
|
struct wpabuf *buf;
|
||||||
|
|
||||||
@ -939,7 +939,7 @@ static struct wpabuf * wps_er_soap_hdr(const struct wpabuf *msg,
|
|||||||
wpabuf_put_str(buf, "\">\n");
|
wpabuf_put_str(buf, "\">\n");
|
||||||
if (encoded) {
|
if (encoded) {
|
||||||
wpabuf_printf(buf, "<%s>%s</%s>\n",
|
wpabuf_printf(buf, "<%s>%s</%s>\n",
|
||||||
arg_name, (char *) encoded, arg_name);
|
arg_name, encoded, arg_name);
|
||||||
os_free(encoded);
|
os_free(encoded);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1745,7 +1745,8 @@ int wps_build_cred(struct wps_data *wps, struct wpabuf *msg)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
os_free(wps->new_psk);
|
os_free(wps->new_psk);
|
||||||
wps->new_psk = base64_encode(r, sizeof(r), &wps->new_psk_len);
|
wps->new_psk = (u8 *) base64_encode(r, sizeof(r),
|
||||||
|
&wps->new_psk_len);
|
||||||
if (wps->new_psk == NULL)
|
if (wps->new_psk == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
wps->new_psk_len--; /* remove newline */
|
wps->new_psk_len--; /* remove newline */
|
||||||
|
@ -647,7 +647,7 @@ static int subscription_first_event(struct subscription *s)
|
|||||||
"initial WLANEvent");
|
"initial WLANEvent");
|
||||||
msg = build_fake_wsc_ack();
|
msg = build_fake_wsc_ack();
|
||||||
if (msg) {
|
if (msg) {
|
||||||
s->sm->wlanevent = (char *)
|
s->sm->wlanevent =
|
||||||
base64_encode(wpabuf_head(msg),
|
base64_encode(wpabuf_head(msg),
|
||||||
wpabuf_len(msg), NULL);
|
wpabuf_len(msg), NULL);
|
||||||
wpabuf_free(msg);
|
wpabuf_free(msg);
|
||||||
@ -822,7 +822,7 @@ int upnp_wps_device_send_wlan_event(struct upnp_wps_device_sm *sm,
|
|||||||
}
|
}
|
||||||
raw_len = pos;
|
raw_len = pos;
|
||||||
|
|
||||||
val = (char *) base64_encode(raw, raw_len, &val_len);
|
val = base64_encode(raw, raw_len, &val_len);
|
||||||
if (val == NULL)
|
if (val == NULL)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
@ -765,8 +765,8 @@ static void web_connection_send_reply(struct http_request *req,
|
|||||||
|
|
||||||
if (reply) {
|
if (reply) {
|
||||||
size_t len;
|
size_t len;
|
||||||
replydata = (char *) base64_encode(wpabuf_head(reply),
|
replydata = base64_encode(wpabuf_head(reply), wpabuf_len(reply),
|
||||||
wpabuf_len(reply), &len);
|
&len);
|
||||||
} else
|
} else
|
||||||
replydata = NULL;
|
replydata = NULL;
|
||||||
|
|
||||||
|
@ -296,7 +296,7 @@ static struct wpa_config_blob * wpa_config_read_blob(FILE *f, int *line,
|
|||||||
{
|
{
|
||||||
struct wpa_config_blob *blob;
|
struct wpa_config_blob *blob;
|
||||||
char buf[256], *pos;
|
char buf[256], *pos;
|
||||||
unsigned char *encoded = NULL, *nencoded;
|
char *encoded = NULL, *nencoded;
|
||||||
int end = 0;
|
int end = 0;
|
||||||
size_t encoded_len = 0, len;
|
size_t encoded_len = 0, len;
|
||||||
|
|
||||||
@ -1098,7 +1098,7 @@ static void wpa_config_write_cred(FILE *f, struct wpa_cred *cred)
|
|||||||
#ifndef CONFIG_NO_CONFIG_BLOBS
|
#ifndef CONFIG_NO_CONFIG_BLOBS
|
||||||
static int wpa_config_write_blob(FILE *f, struct wpa_config_blob *blob)
|
static int wpa_config_write_blob(FILE *f, struct wpa_config_blob *blob)
|
||||||
{
|
{
|
||||||
unsigned char *encoded;
|
char *encoded;
|
||||||
|
|
||||||
encoded = base64_encode(blob->data, blob->len, NULL);
|
encoded = base64_encode(blob->data, blob->len, NULL);
|
||||||
if (encoded == NULL)
|
if (encoded == NULL)
|
||||||
|
@ -439,7 +439,7 @@ static void eapol_sm_cb(struct eapol_sm *eapol, enum eapol_supp_result result,
|
|||||||
static void eapol_test_write_cert(FILE *f, const char *subject,
|
static void eapol_test_write_cert(FILE *f, const char *subject,
|
||||||
const struct wpabuf *cert)
|
const struct wpabuf *cert)
|
||||||
{
|
{
|
||||||
unsigned char *encoded;
|
char *encoded;
|
||||||
|
|
||||||
encoded = base64_encode(wpabuf_head(cert), wpabuf_len(cert), NULL);
|
encoded = base64_encode(wpabuf_head(cert), wpabuf_len(cert), NULL);
|
||||||
if (encoded == NULL)
|
if (encoded == NULL)
|
||||||
|
@ -340,7 +340,7 @@ int hs20_get_icon(struct wpa_supplicant *wpa_s, const u8 *bssid,
|
|||||||
{
|
{
|
||||||
struct icon_entry *icon;
|
struct icon_entry *icon;
|
||||||
size_t out_size;
|
size_t out_size;
|
||||||
unsigned char *b64;
|
char *b64;
|
||||||
size_t b64_size;
|
size_t b64_size;
|
||||||
int reply_size;
|
int reply_size;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user