Pregunta

Tengo una función que decodifica los datos de base64 codificados en datos binarios, pero no sé cómo encontrar la longitud de los datos decodificados. Uso las funciones BIO en 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;
}
¿Fue útil?

Solución

BIO_read devolverá el número de bytes leídos. De todos modos, debe verificar los valores de retorno.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top