Question

J'ai une fonction qui décode les données codées en base64 en 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.

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;
}
Était-ce utile?

La solution

BIO_read retournera le nombre d'octets lus. Quoi qu'il en soit, vous devriez toujours vérifier les valeurs de retour.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top