Skip to content

Latest commit

 

History

History
162 lines (158 loc) · 16.6 KB

CONST_TIME_EXECUTION_TESTING.md

File metadata and controls

162 lines (158 loc) · 16.6 KB

Scope of the Constant-time execution testing of Intel® Integrated Performance Primitives Cryptography (Intel® IPP Cryptography)

General information

  • Testing is conducted under Linux for 64-bit Intel® IPP Cryptography built with the following compilers:
    • Intel® C++ Compiler 19.1
    • Intel® C++ Compiler Classic 2021.9
    • GCC 8.3
    • GCC 9.1
    • GCC 10.1
    • GCC 11.1
    • Clang 9.0
    • Clang 12.0
  • Tested platforms: w7, n8, y8, e9, l9, k0 (see the supported platforms list here).
  • Testing scope described below is guaranteed to pass for release branches. This is not guaranteed for the develop branch (branches description)
  • Information about Pin-Based Constant Execution Checker can be found here

ippcp library

Tested Function Parameters
ippsAESEncryptCBC Different key length:
128, 192, 256 bits
ippsAESDecryptCBC Different key length:
128, 192, 256 bits
ippsAESEncryptCBC_CS1 Different key length:
128, 192, 256 bits
ippsAESDecryptCBC_CS1 Different key length:
128, 192, 256 bits
ippsAESEncryptCBC_CS2 Different key length:
128, 192, 256 bits
ippsAESDecryptCBC_CS2 Different key length:
128, 192, 256 bits
ippsAESEncryptCBC_CS3 Different key length:
128, 192, 256 bits
ippsAESDecryptCBC_CS3 Different key length:
128, 192, 256 bits
ippsAES_CCMEncrypt Different key length:
128, 192, 256 bits
ippsAES_CCMDecrypt Different key length:
128, 192, 256 bits
ippsAESEncryptCFB Different key length:
128, 192, 256 bits
ippsAESDecryptCFB Different key length:
128, 192, 256 bits
ippsAES_CMACUpdate Different key length:
128, 192, 256 bits
ippsAES_CMACFinal Different key length:
128, 192, 256 bits
ippsAESEncryptCTR Different key length:
128, 192, 256 bits
ippsAESDecryptCTR Different key length:
128, 192, 256 bits
ippsAESEncryptECB Different key length:
128, 192, 256 bits
ippsAESDecryptECB Different key length:
128, 192, 256 bits
ippsAES_GCMEncrypt Different key length:
128, 192, 256 bits
ippsAES_GCMDecrypt Different key length:
128, 192, 256 bits
ippsAES_GCMStart Different key length:
128, 192, 256 bits
ippsAESEncryptOFB Different key length:
128, 192, 256 bits
ippsAESDecryptOFB Different key length:
128, 192, 256 bits
ippsAES_S2V_CMAC Different key length:
128, 192, 256 bits
ippsAESSetKey Different key length:
128, 192, 256 bits
ippsAES_SIVEncrypt Different key length:
128, 192, 256 bits
ippsAES_SIVDecrypt Different key length:
128, 192, 256 bits
ippsAES_XTSEncrypt Different key length:
256, 512 bits
ippsAES_XTSDecrypt Different key length:
256, 512 bits
ippsAESEncryptXTS_Direct Different key length:
256, 512 bits
ippsAESDecryptXTS_Direct Different key length:
256, 512 bits
ippsCmp_BN -
ippsDLPPublicKey -
ippsDLPSharedSecretDH -
ippsGFpAdd -
ippsGFpAdd_PE -
ippsGFpConj -
ippsGFpECAddPoint Different curves:
p256r1, p384r1, p521r1
ippsGFpECMulPoint Different curves:
p224r1, p256r1, p384r1
ippsGFpECNegPoint Different curves:
p256r1, p384r1, p521r1
ippsGFpECPublicKey Different curves:
p256r1, p384r1, p521r1
ippsGFpECSharedSecretDH Different curves:
p256r1, p384r1, p521r1
ippsGFpECSharedSecretDHC Different curves:
p256r1, p384r1, p521r1
ippsGFpECSignDSA Different curves:
p256r1, p384r1
ippsGFpECSignNR Different curves:
p256r1, p384r1
ippsGFpECSignSM2 -
ippsGFpECESStart_SM2 -
ippsGFpECESEncrypt_SM2 -
ippsGFpECESDecrypt_SM2 -
ippsGFpECESFinal_SM2 -
ippsGFpExp -
ippsGFpInv -
ippsGFpMul -
ippsGFpMul_PE -
ippsGFpMultiExp -
ippsGFpNeg -
ippsGFpSub -
ippsGFpSub_PE -
ippsHMACInit_rmf Different hashes:
sha1, sha256, sha224, sha384, sha512,
sha512-256, sha512-224, sm3
ippsRSA_Decrypt Different key types and key length:
key type 1, 512 bits
key type 2, 512 bits
ippsRSADecrypt_OAEP Different key types and key length:
key type 1, 512 bits
key type 2, 512 bits
ippsRSADecrypt_OAEP_rmf Different key types and key length:
key type 1, 512 bits
key type 2, 512 bits
ippsRSASign_PKCS1v15 Different key types and key length:
key type 1, 512 bits
key type 2, 512 bits
ippsRSASign_PKCS1v15_rmf Different key types and key length:
key type 1, 512 bits
key type 2, 512 bits
ippsRSASign_PSS Different key types and key length:
key type 1, 512 bits
key type 2, 512 bits
ippsRSASign_PSS_rmf Different key types and key length:
key type 1, 512 bits
key type 2, 512 bits
ippsSMS4EncryptCBC -
ippsSMS4DecryptCBC -
ippsSMS4EncryptCBC_CS1 -
ippsSMS4DecryptCBC_CS1 -
ippsSMS4EncryptCBC_CS2 -
ippsSMS4DecryptCBC_CS2 -
ippsSMS4EncryptCBC_CS3 -
ippsSMS4DecryptCBC_CS3 -
ippsSMS4_CCMEncrypt -
ippsSMS4_CCMDecrypt -
ippsSMS4EncryptCFB -
ippsSMS4DecryptCFB -
ippsSMS4EncryptCTR -
ippsSMS4DecryptCTR -
ippsSMS4EncryptECB -
ippsSMS4DecryptECB -
ippsSMS4EncryptOFB -
ippsSMS4DecryptOFB -
ippsSMS4SetKey -

crypto_mb library

Function Parameters
mbx_nistp256_ecpublic_key_mb8 projective coordinates
affine coordinates
mbx_nistp384_ecpublic_key_mb8 projective coordinates
affine coordinates
mbx_nistp521_ecpublic_key_mb8 projective coordinates
affine coordinates
mbx_sm2_ecpublic_key_mb8 projective coordinates
affine coordinates
mbx_nistp256_ecdh_mb8 projective coordinates
affine coordinates
mbx_nistp384_ecdh_mb8 projective coordinates
affine coordinates
mbx_nistp521_ecdh_mb8 projective coordinates
affine coordinates
mbx_nistp256_ecdsa_sign_mb8 -
mbx_nistp384_ecdsa_sign_mb8 -
mbx_nistp521_ecdsa_sign_mb8 -
mbx_nistp256_ecdsa_sign_setup_mb8 -
mbx_nistp384_ecdsa_sign_setup_mb8 -
mbx_nistp521_ecdsa_sign_setup_mb8 -
mbx_nistp256_ecdsa_sign_complete_mb8 -
mbx_nistp384_ecdsa_sign_complete_mb8 -
mbx_nistp521_ecdsa_sign_complete_mb8 -
mbx_nistp256_ecpublic_key_ssl_mb8 projective coordinates
affine coordinates
mbx_nistp384_ecpublic_key_ssl_mb8 projective coordinates
affine coordinates
mbx_nistp521_ecpublic_key_ssl_mb8 projective coordinates
affine coordinates
mbx_sm2_ecpublic_key_ssl_mb8 projective coordinates
affine coordinates
mbx_nistp256_ecdh_ssl_mb8 projective coordinates
affine coordinates
mbx_nistp384_ecdh_ssl_mb8 projective coordinates
affine coordinates
mbx_nistp521_ecdh_ssl_mb8 projective coordinates
affine coordinates
mbx_nistp256_ecdsa_sign_ssl_mb8 -
mbx_nistp384_ecdsa_sign_ssl_mb8 -
mbx_nistp521_ecdsa_sign_ssl_mb8 -
mbx_nistp256_ecdsa_sign_setup_ssl_mb8 -
mbx_nistp384_ecdsa_sign_setup_ssl_mb8 -
mbx_nistp521_ecdsa_sign_setup_ssl_mb8 -
mbx_nistp256_ecdsa_sign_complete_ssl_mb8 -
mbx_nistp384_ecdsa_sign_complete_ssl_mb8 -
mbx_nistp521_ecdsa_sign_complete_ssl_mb8 -
mbx_ed25519_public_key_mb8 -
mbx_ed25519_sign_mb8 -
mbx_rsa_private_mb8 Different key length:
1024, 2048, 3072, 4096 bits
mbx_rsa_private_crt_mb8 Different key length:
1024, 2048, 3072, 4096 bits
mbx_rsa_private_ssl_mb8 Different key length:
1024, 2048, 3072, 4096 bits
mbx_rsa_private_crt_ssl_mb8 Different key length:
1024, 2048, 3072, 4096 bits
mbx_sm2_ecdsa_sign_mb8 -
mbx_sm2_ecdsa_sign_ssl_mb8 -
mbx_sm4_encrypt_ecb_mb16 -
mbx_sm4_decrypt_ecb_mb16 -
mbx_sm4_encrypt_cbc_mb16 -
mbx_sm4_decrypt_cbc_mb16 -
mbx_sm4_encrypt_ctr128_mb16 -
mbx_sm4_encrypt_ofb_mb16 -
mbx_sm4_encrypt_cfb128_mb16 -
mbx_sm4_decrypt_cfb128_mb16 -
mbx_x25519_public_key_mb8 -
mbx_x25519_mb8 -