NS_INLINE void _updateHash()

in Source/TNLURLSessionTaskOperation.m [2284:2329]


NS_INLINE void _updateHash(TNLResponseHashComputeAlgorithm algo, void * __nullable contextRef, const void *data, CC_LONG len)
{
    if (!contextRef) {
        return;
    }

#define UPDATE_HASH(hash) ({ \
    CC_##hash##_Update((CC_##hash##_CTX *)contextRef, data, len); \
})

    switch (algo) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
        case TNLResponseHashComputeAlgorithmMD2:
            UPDATE_HASH(MD2);
#pragma clang diagnostic pop
            break;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
        case TNLResponseHashComputeAlgorithmMD4:
            UPDATE_HASH(MD4);
#pragma clang diagnostic pop
            break;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
        case TNLResponseHashComputeAlgorithmMD5:
            UPDATE_HASH(MD5);
#pragma clang diagnostic pop
            break;
        case TNLResponseHashComputeAlgorithmSHA1:
            UPDATE_HASH(SHA1);
            break;
        case TNLResponseHashComputeAlgorithmSHA256:
            UPDATE_HASH(SHA256);
            break;
        case TNLResponseHashComputeAlgorithmSHA512:
            UPDATE_HASH(SHA512);
            break;
        case TNLResponseHashComputeAlgorithmNone:
        default:
            break;
    }

#undef UPDATE_HASH

}