Run#

Module for the “test wrapper” command.

enum crypto_condor.cli.run.AesStrKeyLength(value)#

Bases: StrEnum

Workaround for using IntEnum with Typer.

Typer/Click don’t handle ints as choices from an enum, so mimic the real enum with str values and convert back when calling the function.

Member Type:

str

Valid values are as follows:

ALL = <AesStrKeyLength.ALL: '0'>#
AES128 = <AesStrKeyLength.AES128: '128'>#
AES192 = <AesStrKeyLength.AES192: '192'>#
AES256 = <AesStrKeyLength.AES256: '256'>#
crypto_condor.cli.run.aes(wrapper, mode, key_length=AesStrKeyLength.ALL, iv_length=0, compliance=True, resilience=False, encrypt=True, decrypt=True, filename='', no_save=False, debug=None)#

Runs an AES wrapper.

Parameters:
  • wrapper (str) – The wrapper to test.

  • mode (Mode) – The mode of operation.

  • key_length (AesStrKeyLength) – The length of the keys to use in bits.

  • iv_length (int) – The length of the IV that can be tested.

  • compliance (bool) – Whether to use compliance test vectors.

  • resilience (bool) – Whether to use resilience test vectors.

  • encrypt (bool) – Whether to test encryption.

  • decrypt (bool) – Whether to test decryption.

  • filename (str) – Name of the file to save results.

  • no_save (bool) – Do not save results or prompt the user.

  • debug (bool | None) – When saving the results to a file, whether to add the debug data.

Notes

  • no_encrypt and no_decrypt should not be True at the same time.

  • no_compliance and no_resilience should not be True at the same time.

crypto_condor.cli.run.ecdsa(language, curve, hash_function, key_encoding=None, pubkey_encoding=None, pre_hashed=False, compliance=True, resilience=False, test_sign=True, test_verify=True, test_sign_then_verify=False, filename='', no_save=False, debug=None)#

Runs an ECDSA wrapper.

Parameters:
  • language (Wrapper) – The language of the wrapper.

  • curve (Curve) – The elliptic curve to use.

  • hash_function (Hash) – The hash function to use.

  • key_encoding (KeyEncoding | None) – The encoding used for private keys.

  • pubkey_encoding (PubKeyEncoding | None) – The encoding used for public keys.

  • pre_hashed (bool) – Whether the messages given to the implementation must be hashed first.

  • compliance (bool) – Whether to use compliance test vectors.

  • resilience (bool) – Whether to use resilience test vectors.

  • test_sign (bool) – Whether to test the signing function.

  • test_verify (bool) – Whether to test the verifying function.

  • test_sign_then_verify (bool) – Whether to test both functions by signing then verifying.

  • filename (str) – Name of the file to save results.

  • no_save (bool) – Do not save results or prompt the user.

  • debug (bool | None) – When saving the results to a file, whether to add the debug data.

Notes

  • compliance and resilience should not be False at the same time unless test_sign_then_verify is used.

  • test_sign, test_verify, and test_sign_then_verify should not be False at the same time.

crypto_condor.cli.run.kyber(language, parameter_set, encapsulate=True, decapsulate=True, filename='', no_save=False, debug=None)#

Runs a Kyber wrapper.

Parameters:
  • language (Wrapper) – The language of the wrapper to run.

  • parameter_set (Paramset) – The Kyber parameter set to use.

  • encapsulate (bool) – Whether to test the encapsulation function.

  • decapsulate (bool) – Whether to test the decapsulation function.

  • filename (str) – Name of the file to save results.

  • no_save (bool) – Do not save results or prompt the user.

  • debug (bool | None) – When saving the results to a file, whether to add the debug data.

crypto_condor.cli.run.dilithium(language, parameter_set, sign=True, verify=True, filename='', no_save=False, debug=None)#

Runs a Dilithium wrapper.

Parameters:
  • language (Wrapper) – The language of the wrapper to run.

  • parameter_set (Paramset) – The Dilithium parameter set to use.

  • sign (bool) – Whether to test the signing function.

  • verify (bool) – Whether to test the verifying function.

  • filename (str) – Name of the file to save results.

  • no_save (bool) – Do not save results or prompt the user.

  • debug (bool | None) – When saving the results to a file, whether to add the debug data.

crypto_condor.cli.run.sha(wrapper, algorithm, orientation=Orientation.BYTE, filename='', no_save=False, debug=None)#

Runs a SHA wrapper.

Parameters:
  • wrapper (str) – The wrapper to test.

  • algorithm (Algorithm) – The SHA algorithm to test.

  • orientation (Orientation) – The orientation of the implementation, either bit- or byte-oriented.

  • filename (str) – Name of the file to save results.

  • no_save (bool) – Do not save results or prompt the user.

  • debug (bool | None) – When saving the results to a file, whether to add the debug data.

crypto_condor.cli.run.shake(language, algorithm, orientation, filename='', no_save=False, debug=None)#

Runs a SHAKE wrapper.

Parameters:
  • language (Wrapper) – The language of the wrapper to run.

  • algorithm (Algorithm) – The SHAKE algorithm to test.

  • orientation (Orientation) – The orientation of the implementation, either bit- or byte-oriented.

  • filename (str) – Name of the file to save results.

  • no_save (bool) – Do not save results or prompt the user.

  • debug (bool | None) – When saving the results to a file, whether to add the debug data.

crypto_condor.cli.run.rsassa(language, scheme, sha, mgf_sha=None, sign=True, verify=True, filename='', no_save=False, debug=None)#

Runs an RSA wrapper.

Parameters:
  • language (Wrapper) – The language of the wrapper to run.

  • scheme (Scheme) – The RSA scheme to test.

  • sha (Hash) – The SHA to use.

  • mgf_sha (Hash | None) – (RSASSA-PSS only) The SHA to use with MGF1.

  • sign (bool) – Whether to test the signing function.

  • verify (bool) – Whether to test the verifying function.

  • filename (str) – Name of the file to save results.

  • no_save (bool) – Do not save results or prompt the user.

  • debug (bool | None) – When saving the results to a file, whether to add the debug data.

crypto_condor.cli.run.rsaes(language, scheme, sha=None, mgf_sha=None, filename='', no_save=False, debug=None)#

Runs a RSAES wrapper.

Parameters:
  • language (Wrapper) – The language of the wrapper to run.

  • scheme (Scheme) – The RSA scheme to test.

  • sha (Hash | None) – The SHA to use in RSAES-OAEP.

  • mgf_sha (Hash | None) – The SHA to use with MGF1 in RSAES-OAEP.

  • filename (str) – Name of the file to save results.

  • no_save (bool) – Do not save results or prompt the user.

  • debug (bool | None) – When saving the results to a file, whether to add the debug data.

crypto_condor.cli.run.chacha20(language, mode, resilience=True, encrypt=True, decrypt=True, filename='', no_save=False, debug=None)#

Runs an ChaCha20 wrapper.

Parameters:
  • language (Wrapper) – The language of the wrapper.

  • mode (Mode) – The mode of operation.

  • resilience (bool) – Whether to use resilience test vectors.

  • encrypt (bool) – Whether to test encryption.

  • decrypt (bool) – Whether to test decryption.

  • filename (str) – Name of the file to save results.

  • no_save (bool) – Do not save results or prompt the user.

  • debug (bool | None) – When saving the results to a file, whether to add the debug data.

Notes

  • encrypt and decrypt should not be False at the same time.

  • If resilience if False, no test can be done.

crypto_condor.cli.run.hmac(language, hash_function, compliance=True, resilience=False, filename='', no_save=False, debug=None)#

Runs an HMAC wrapper.

crypto_condor.cli.run.ecdh(lang, curve, wrapper='ECDH_wrapper.py', compliance=True, resilience=False, filename='', no_save=False, debug=None)#

Runs an ECDH wrapper.

Parameters:
  • lang (Wrapper) – The language of the wrapper.

  • curve (Curve) – The elliptic curve to use.

  • wrapper (str) – The name of the wrapper, ECDH_wrapper.py by default.

  • compliance (bool) – Whether to use compliance test vectors.

  • resilience (bool) – Whether to use resilience test vectors.

  • filename (str) – Name of the file to save results.

  • no_save (bool) – Do not save results or prompt the user.

  • debug (bool | None) – When saving the results to a file, whether to add the debug data.