1
J'ai une fonction qui décode les données base64 encodées dans les données binaires mais je ne sais pas comment trouver la longueur des données décodées. J'utilise les fonctions BIO dans openssl.Comment trouver la taille des données base64 décodées dans C
unsigned char *unbase64(unsigned char *input, int length)
{
BIO *b64, *bmem;
unsigned char *buffer = (unsigned char *)malloc(length);
memset(buffer, 0, length);
b64 = BIO_new(BIO_f_base64());
bmem = BIO_new_mem_buf(input, length);
bmem = BIO_push(b64, bmem);
BIO_read(bmem, buffer, length);
BIO_free_all(bmem);
return buffer;
}
BTW: Vous pouvez utiliser calloc() à la place de malloc() + memset(). – stesch
Ne pas convertir la valeur de retour de malloc() en C. Le compilateur n'a pas besoin de cela, et il peut cacher une erreur. – unwind
Le retour à l'incantation de malloc semble être requis dans Visual C++ (au moins en 2010). Bien que ce soit bizarre - l'IDE se plaint mais il compile encore. –