Esempio n. 1
0
static int
test_byteorder(void)
{
	uint16_t res_u16;
	uint32_t res_u32;
	uint64_t res_u64;

	res_u16 = rte_bswap16(u16);
	printf("%"PRIx16" -> %"PRIx16"\n", u16, res_u16);
	if (res_u16 != 0x3713)
		return -1;

	res_u32 = rte_bswap32(u32);
	printf("%"PRIx32" -> %"PRIx32"\n", u32, res_u32);
	if (res_u32 != 0xefbeaddeUL)
		return -1;

	res_u64 = rte_bswap64(u64);
	printf("%"PRIx64" -> %"PRIx64"\n", u64, res_u64);
	if (res_u64 != 0xcefabebafecaaddeULL)
		return -1;

	res_u16 = rte_bswap16(0x1337);
	printf("const %"PRIx16" -> %"PRIx16"\n", 0x1337, res_u16);
	if (res_u16 != 0x3713)
		return -1;

	res_u32 = rte_bswap32(0xdeadbeefUL);
	printf("const %"PRIx32" -> %"PRIx32"\n", (uint32_t) 0xdeadbeef, res_u32);
	if (res_u32 != 0xefbeaddeUL)
		return -1;

	res_u64 = rte_bswap64(0xdeadcafebabefaceULL);
	printf("const %"PRIx64" -> %"PRIx64"\n", (uint64_t) 0xdeadcafebabefaceULL, res_u64);
	if (res_u64 != 0xcefabebafecaaddeULL)
		return -1;

	return 0;
}
Esempio n. 2
0
static int partial_hash_compute(enum icp_qat_hw_auth_algo hash_alg,
                                uint8_t *data_in,
                                uint8_t *data_out)
{
    int digest_size;
    uint8_t digest[qat_hash_get_digest_size(
                       ICP_QAT_HW_AUTH_ALGO_DELIMITER)];
    uint32_t *hash_state_out_be32;
    uint64_t *hash_state_out_be64;
    int i;

    PMD_INIT_FUNC_TRACE();
    digest_size = qat_hash_get_digest_size(hash_alg);
    if (digest_size <= 0)
        return -EFAULT;

    hash_state_out_be32 = (uint32_t *)data_out;
    hash_state_out_be64 = (uint64_t *)data_out;

    switch (hash_alg) {
    case ICP_QAT_HW_AUTH_ALGO_SHA1:
        if (partial_hash_sha1(data_in, digest))
            return -EFAULT;
        for (i = 0; i < digest_size >> 2; i++, hash_state_out_be32++)
            *hash_state_out_be32 =
                rte_bswap32(*(((uint32_t *)digest)+i));
        break;
    case ICP_QAT_HW_AUTH_ALGO_SHA256:
        if (partial_hash_sha256(data_in, digest))
            return -EFAULT;
        for (i = 0; i < digest_size >> 2; i++, hash_state_out_be32++)
            *hash_state_out_be32 =
                rte_bswap32(*(((uint32_t *)digest)+i));
        break;
    case ICP_QAT_HW_AUTH_ALGO_SHA512:
        if (partial_hash_sha512(data_in, digest))
            return -EFAULT;
        for (i = 0; i < digest_size >> 3; i++, hash_state_out_be64++)
            *hash_state_out_be64 =
                rte_bswap64(*(((uint64_t *)digest)+i));
        break;
    default:
        PMD_DRV_LOG(ERR, "invalid hash alg %u", hash_alg);
        return -EFAULT;
    }

    return 0;
}