int qcrypto_hash_bytesv(QCryptoHashAlgorithm alg,

                        const struct iovec *iov,

                        size_t niov,

                        uint8_t **result,

                        size_t *resultlen,

                        Error **errp)

{

#ifdef CONFIG_AF_ALG

    int ret;



    ret = qcrypto_hash_afalg_driver.hash_bytesv(alg, iov, niov,

                                                result, resultlen,

                                                errp);

    if (ret == 0) {

        return ret;

    }



    /*

     * TODO:

     * Maybe we should treat some afalg errors as fatal

     */

    error_free(*errp);

#endif



    return qcrypto_hash_lib_driver.hash_bytesv(alg, iov, niov,

                                               result, resultlen,

                                               errp);

}

int qcrypto_hash_bytesv(QCryptoHashAlgorithm alg,

                        const struct iovec *iov,

                        size_t niov,

                        uint8_t **result,

                        size_t *resultlen,

                        Error **errp)

{

#ifdef CONFIG_AF_ALG

    int ret;



    ret = qcrypto_hash_afalg_driver.hash_bytesv(alg, iov, niov,

                                                result, resultlen,

                                                errp);

    if (ret == 0) {

        return ret;

    }



    







    error_free(*errp);

#endif



    return qcrypto_hash_lib_driver.hash_bytesv(alg, iov, niov,

                                               result, resultlen,

                                               errp);

}

                                                errp);     error_free(*errp);
int FUNC_0(QCryptoHashAlgorithm VAR_0,

                        const struct iovec *VAR_1,

                        size_t VAR_2,

                        uint8_t **VAR_3,

                        size_t *VAR_4,

                        Error **VAR_5)

{

#ifdef CONFIG_AF_ALG

    int ret;



    ret = qcrypto_hash_afalg_driver.hash_bytesv(VAR_0, VAR_1, VAR_2,

                                                VAR_3, VAR_4,

                                                VAR_5);

    if (ret == 0) {

        return ret;

    }



    







    error_free(*VAR_5);

#endif



    return qcrypto_hash_lib_driver.hash_bytesv(VAR_0, VAR_1, VAR_2,

                                               VAR_3, VAR_4,

                                               VAR_5);

}

int FUNC_0(QCryptoHashAlgorithm VAR_0,
const struct iovec *VAR_1,
size_t VAR_2,
uint8_t **VAR_3,
size_t *VAR_4,
Error **VAR_5)
{ #ifdef CONFIG_AF_ALG
int ret; ret = qcrypto_hash_afalg_driver.hash_bytesv(VAR_0, VAR_1, VAR_2,
VAR_3, VAR_4,
VAR_5); if (ret == 0) { return ret; } error_free(*VAR_5); #endif
return qcrypto_hash_lib_driver.hash_bytesv(VAR_0, VAR_1, VAR_2,
VAR_3, VAR_4,
VAR_5); }