iPXE
wycheproof_test.c File Reference

Cryptographic test vectors imported from Project Wycheproof. More...

#include <ipxe/test.h>
#include "wycheproof_test.h"

Go to the source code of this file.

Functions

 FILE_LICENCE (BSD2)
 PROVIDE_REQUIRING_SYMBOL ()
 REQUIRE_OBJECT (wycheproof_aes_gcm)
 REQUIRE_OBJECT (wycheproof_hkdf_sha1)
 REQUIRE_OBJECT (wycheproof_hkdf_sha256)
 REQUIRE_OBJECT (wycheproof_hkdf_sha384)
 REQUIRE_OBJECT (wycheproof_hkdf_sha512)
 REQUIRE_OBJECT (wycheproof_hmac_sha1)
 REQUIRE_OBJECT (wycheproof_hmac_sha224)
 REQUIRE_OBJECT (wycheproof_hmac_sha256)
 REQUIRE_OBJECT (wycheproof_hmac_sha384)
 REQUIRE_OBJECT (wycheproof_hmac_sha512)
 REQUIRE_OBJECT (wycheproof_hmac_sha512_224)
 REQUIRE_OBJECT (wycheproof_hmac_sha512_256)
 REQUIRE_OBJECT (wycheproof_p256)
 REQUIRE_OBJECT (wycheproof_p256_sha256_verify)
 REQUIRE_OBJECT (wycheproof_p256_sha512_verify)
 REQUIRE_OBJECT (wycheproof_p384)
 REQUIRE_OBJECT (wycheproof_p384_sha256_verify)
 REQUIRE_OBJECT (wycheproof_p384_sha384_verify)
 REQUIRE_OBJECT (wycheproof_p384_sha512_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_1024_sign)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_1536_sign)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_2048_decrypt)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_2048_sha224_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_2048_sha256_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_2048_sha384_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_2048_sha512_224_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_2048_sha512_256_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_2048_sha512_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_2048_sign)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_3072_decrypt)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_3072_sha256_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_3072_sha384_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_3072_sha512_256_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_3072_sha512_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_3072_sign)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_4096_decrypt)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_4096_sha256_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_4096_sha384_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_4096_sha512_256_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_4096_sha512_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_4096_sign)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_8192_sha256_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_8192_sha384_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pkcs1_8192_sha512_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pss_2048_sha1_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pss_2048_sha256_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pss_2048_sha384_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pss_2048_sha512_224_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pss_2048_sha512_256_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pss_3072_sha256_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pss_4096_sha256_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pss_4096_sha384_verify)
 REQUIRE_OBJECT (wycheproof_rsa_pss_4096_sha512_verify)
 REQUIRE_OBJECT (wycheproof_x25519)

Detailed Description

Cryptographic test vectors imported from Project Wycheproof.

Project Wycheproof (https://github.com/C2SP/wycheproof) provides test vectors designed to exercise cryptographic algorithms with corner cases that are not covered by the standard known-answer tests such as those provided by NIST or in RFCs.

The full applicable test set is extremely large and slow to run. We deliberately choose not to included these tests within the standard per-commit test suite, since this would substantially delay all test runs for no significant benefit.

The test vectors are provided as JSON files, and are imported into iPXE using the import tool within the "wycheproof" directory.

Definition in file wycheproof_test.c.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( BSD2 )

◆ PROVIDE_REQUIRING_SYMBOL()

PROVIDE_REQUIRING_SYMBOL ( )

◆ REQUIRE_OBJECT() [1/54]

REQUIRE_OBJECT ( wycheproof_aes_gcm )

◆ REQUIRE_OBJECT() [2/54]

REQUIRE_OBJECT ( wycheproof_hkdf_sha1 )

◆ REQUIRE_OBJECT() [3/54]

REQUIRE_OBJECT ( wycheproof_hkdf_sha256 )

◆ REQUIRE_OBJECT() [4/54]

REQUIRE_OBJECT ( wycheproof_hkdf_sha384 )

◆ REQUIRE_OBJECT() [5/54]

REQUIRE_OBJECT ( wycheproof_hkdf_sha512 )

◆ REQUIRE_OBJECT() [6/54]

REQUIRE_OBJECT ( wycheproof_hmac_sha1 )

◆ REQUIRE_OBJECT() [7/54]

REQUIRE_OBJECT ( wycheproof_hmac_sha224 )

◆ REQUIRE_OBJECT() [8/54]

REQUIRE_OBJECT ( wycheproof_hmac_sha256 )

◆ REQUIRE_OBJECT() [9/54]

REQUIRE_OBJECT ( wycheproof_hmac_sha384 )

◆ REQUIRE_OBJECT() [10/54]

REQUIRE_OBJECT ( wycheproof_hmac_sha512 )

◆ REQUIRE_OBJECT() [11/54]

REQUIRE_OBJECT ( wycheproof_hmac_sha512_224 )

◆ REQUIRE_OBJECT() [12/54]

REQUIRE_OBJECT ( wycheproof_hmac_sha512_256 )

◆ REQUIRE_OBJECT() [13/54]

REQUIRE_OBJECT ( wycheproof_p256 )

◆ REQUIRE_OBJECT() [14/54]

REQUIRE_OBJECT ( wycheproof_p256_sha256_verify )

◆ REQUIRE_OBJECT() [15/54]

REQUIRE_OBJECT ( wycheproof_p256_sha512_verify )

◆ REQUIRE_OBJECT() [16/54]

REQUIRE_OBJECT ( wycheproof_p384 )

◆ REQUIRE_OBJECT() [17/54]

REQUIRE_OBJECT ( wycheproof_p384_sha256_verify )

◆ REQUIRE_OBJECT() [18/54]

REQUIRE_OBJECT ( wycheproof_p384_sha384_verify )

◆ REQUIRE_OBJECT() [19/54]

REQUIRE_OBJECT ( wycheproof_p384_sha512_verify )

◆ REQUIRE_OBJECT() [20/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_1024_sign )

◆ REQUIRE_OBJECT() [21/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_1536_sign )

◆ REQUIRE_OBJECT() [22/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_2048_decrypt )

◆ REQUIRE_OBJECT() [23/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_2048_sha224_verify )

◆ REQUIRE_OBJECT() [24/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_2048_sha256_verify )

◆ REQUIRE_OBJECT() [25/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_2048_sha384_verify )

◆ REQUIRE_OBJECT() [26/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_2048_sha512_224_verify )

◆ REQUIRE_OBJECT() [27/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_2048_sha512_256_verify )

◆ REQUIRE_OBJECT() [28/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_2048_sha512_verify )

◆ REQUIRE_OBJECT() [29/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_2048_sign )

◆ REQUIRE_OBJECT() [30/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_3072_decrypt )

◆ REQUIRE_OBJECT() [31/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_3072_sha256_verify )

◆ REQUIRE_OBJECT() [32/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_3072_sha384_verify )

◆ REQUIRE_OBJECT() [33/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_3072_sha512_256_verify )

◆ REQUIRE_OBJECT() [34/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_3072_sha512_verify )

◆ REQUIRE_OBJECT() [35/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_3072_sign )

◆ REQUIRE_OBJECT() [36/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_4096_decrypt )

◆ REQUIRE_OBJECT() [37/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_4096_sha256_verify )

◆ REQUIRE_OBJECT() [38/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_4096_sha384_verify )

◆ REQUIRE_OBJECT() [39/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_4096_sha512_256_verify )

◆ REQUIRE_OBJECT() [40/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_4096_sha512_verify )

◆ REQUIRE_OBJECT() [41/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_4096_sign )

◆ REQUIRE_OBJECT() [42/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_8192_sha256_verify )

◆ REQUIRE_OBJECT() [43/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_8192_sha384_verify )

◆ REQUIRE_OBJECT() [44/54]

REQUIRE_OBJECT ( wycheproof_rsa_pkcs1_8192_sha512_verify )

◆ REQUIRE_OBJECT() [45/54]

REQUIRE_OBJECT ( wycheproof_rsa_pss_2048_sha1_verify )

◆ REQUIRE_OBJECT() [46/54]

REQUIRE_OBJECT ( wycheproof_rsa_pss_2048_sha256_verify )

◆ REQUIRE_OBJECT() [47/54]

REQUIRE_OBJECT ( wycheproof_rsa_pss_2048_sha384_verify )

◆ REQUIRE_OBJECT() [48/54]

REQUIRE_OBJECT ( wycheproof_rsa_pss_2048_sha512_224_verify )

◆ REQUIRE_OBJECT() [49/54]

REQUIRE_OBJECT ( wycheproof_rsa_pss_2048_sha512_256_verify )

◆ REQUIRE_OBJECT() [50/54]

REQUIRE_OBJECT ( wycheproof_rsa_pss_3072_sha256_verify )

◆ REQUIRE_OBJECT() [51/54]

REQUIRE_OBJECT ( wycheproof_rsa_pss_4096_sha256_verify )

◆ REQUIRE_OBJECT() [52/54]

REQUIRE_OBJECT ( wycheproof_rsa_pss_4096_sha384_verify )

◆ REQUIRE_OBJECT() [53/54]

REQUIRE_OBJECT ( wycheproof_rsa_pss_4096_sha512_verify )

◆ REQUIRE_OBJECT() [54/54]

REQUIRE_OBJECT ( wycheproof_x25519 )