1*d4514f0bSApple OSS Distributions /* Copyright (c) (2021) Apple Inc. All rights reserved. 2*d4514f0bSApple OSS Distributions * 3*d4514f0bSApple OSS Distributions * corecrypto is licensed under Apple Inc.’s Internal Use License Agreement (which 4*d4514f0bSApple OSS Distributions * is contained in the License.txt file distributed with corecrypto) and only to 5*d4514f0bSApple OSS Distributions * people who accept that license. IMPORTANT: Any license rights granted to you by 6*d4514f0bSApple OSS Distributions * Apple Inc. (if any) are limited to internal use within your organization only on 7*d4514f0bSApple OSS Distributions * devices and computers you own or control, for the sole purpose of verifying the 8*d4514f0bSApple OSS Distributions * security characteristics and correct functioning of the Apple Software. You may 9*d4514f0bSApple OSS Distributions * not, directly or indirectly, redistribute the Apple Software or any portions thereof. 10*d4514f0bSApple OSS Distributions */ 11*d4514f0bSApple OSS Distributions 12*d4514f0bSApple OSS Distributions #ifndef _CORECRYPTO_CC_IMPL_H_ 13*d4514f0bSApple OSS Distributions #define _CORECRYPTO_CC_IMPL_H_ 14*d4514f0bSApple OSS Distributions 15*d4514f0bSApple OSS Distributions #define CC_IMPL_LIST \ 16*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(UNKNOWN, 0) \ 17*d4514f0bSApple OSS Distributions \ 18*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA256_LTC, 1) \ 19*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA256_VNG_ARM, 2) \ 20*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA256_VNG_ARM64_NEON, 3) \ 21*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA256_VNG_INTEL_SUPPLEMENTAL_SSE3, 4) \ 22*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA256_VNG_INTEL_AVX1, 5) \ 23*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA256_VNG_INTEL_AVX2, 6) \ 24*d4514f0bSApple OSS Distributions \ 25*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(AES_ECB_LTC, 11) \ 26*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(AES_ECB_ARM, 12) \ 27*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(AES_ECB_INTEL_OPT, 13) \ 28*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(AES_ECB_INTEL_AESNI, 14) \ 29*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(AES_ECB_SKG, 15) \ 30*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(AES_ECB_TRNG, 16) \ 31*d4514f0bSApple OSS Distributions \ 32*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(AES_XTS_GENERIC, 21) \ 33*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(AES_XTS_ARM, 22) \ 34*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(AES_XTS_INTEL_OPT, 23) \ 35*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(AES_XTS_INTEL_AESNI, 24) \ 36*d4514f0bSApple OSS Distributions \ 37*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA1_LTC, 31) \ 38*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA1_VNG_ARM, 32) \ 39*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA1_VNG_INTEL_SUPPLEMENTAL_SSE3, 33) \ 40*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA1_VNG_INTEL_AVX1, 34) \ 41*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA1_VNG_INTEL_AVX2, 35) \ 42*d4514f0bSApple OSS Distributions \ 43*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA384_LTC, 41) \ 44*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA384_VNG_ARM, 42) \ 45*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA384_VNG_INTEL_SUPPLEMENTAL_SSE3, 43) \ 46*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA384_VNG_INTEL_AVX1, 44) \ 47*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA384_VNG_INTEL_AVX2, 45) \ 48*d4514f0bSApple OSS Distributions \ 49*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA512_LTC, 51) \ 50*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA512_VNG_ARM, 52) \ 51*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA512_VNG_INTEL_SUPPLEMENTAL_SSE3, 53) \ 52*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA512_VNG_INTEL_AVX1, 54) \ 53*d4514f0bSApple OSS Distributions CC_IMPL_ITEM(SHA512_VNG_INTEL_AVX2, 55) 54*d4514f0bSApple OSS Distributions 55*d4514f0bSApple OSS Distributions 56*d4514f0bSApple OSS Distributions #define CC_IMPL_ITEM(k, v) \ 57*d4514f0bSApple OSS Distributions CC_IMPL_##k = v, 58*d4514f0bSApple OSS Distributions 59*d4514f0bSApple OSS Distributions typedef enum cc_impl { 60*d4514f0bSApple OSS Distributions CC_IMPL_LIST 61*d4514f0bSApple OSS Distributions } cc_impl_t; 62*d4514f0bSApple OSS Distributions 63*d4514f0bSApple OSS Distributions #undef CC_IMPL_ITEM 64*d4514f0bSApple OSS Distributions 65*d4514f0bSApple OSS Distributions const char *cc_impl_name(cc_impl_t impl); 66*d4514f0bSApple OSS Distributions 67*d4514f0bSApple OSS Distributions #endif /* _CORECRYPTO_CC_IMPL_H_ */ 68