def test_sha512(msg): output = helpers.run_subprocess( [helpers.path_to_executable('test_hash'), 'sha512'], input=msg.encode(), ) assert (output.rstrip() == hashlib.sha512(msg.encode()).hexdigest()) output = helpers.run_subprocess( [helpers.path_to_executable('test_hash'), 'sha512inc'], input=msg.encode(), ) assert (output.rstrip() == hashlib.sha512(msg.encode()).hexdigest())
def test_sig(sig_name): if not (helpers.is_sig_enabled_by_name(sig_name)): pytest.skip('Not enabled') output = helpers.run_subprocess( [helpers.path_to_executable('kat_sig'), sig_name], ) output = output.replace("\r\n", "\n") kats = [] avx2_aes_enabled_on_linux = helpers.is_use_option_enabled_by_name( 'AVX2_INSTRUCTIONS') and helpers.is_use_option_enabled_by_name( 'AES_INSTRUCTIONS') and platform.system() == 'Linux' for filename in os.listdir(os.path.join('tests', 'KATs', 'sig')): if filename.startswith(sig_name + '.') and filename.endswith('.kat'): # qtesla's avx2 implementation uses an optimized sampling method that results in different KAT values; we use the correct one (if avx2/aes instructions are available) append_kat = False if sig_name.startswith('qTesla'): if 'avx2' in filename: if avx2_aes_enabled_on_linux and not helpers.is_build_portable( ): append_kat = True else: append_kat = True else: append_kat = True if append_kat: with open(os.path.join('tests', 'KATs', 'sig', filename), 'r') as myfile: kats.append(myfile.read()) assert (output in kats)
def test_constant_time_sig(sig_name): passes = get_ct_passes('sig', sig_name) issues = get_ct_issues('sig', sig_name) output = helpers.run_subprocess(VALGRIND + [ *(['--suppressions=' + f for f in passes]), *(['--suppressions=' + f for f in issues]), helpers.path_to_executable('test_sig'), sig_name ])
def test_sig(sig_name): if not(helpers.is_sig_enabled_by_name(sig_name)): pytest.skip('Not enabled') if sys.platform.startswith("win") and 'APPVEYOR' in os.environ: if 'SPHINCS' in sig_name and ('192f' in sig_name or '192s' in sig_name or '256f' in sig_name or '256s' in sig_name): pytest.skip('Skipping SPHINCS+ 192s and 256s tests on Windows AppVeyor builds') helpers.run_subprocess( [helpers.path_to_executable('test_sig'), sig_name], )
def test_sig(sig_name): if not (helpers.is_sig_enabled_by_name(sig_name)): pytest.skip('Not enabled') helpers.run_subprocess([ "qemu-" + platform.machine() + "-static", "-cpu", MINCPU, helpers.path_to_executable('test_sig'), sig_name ])
def test_kem(kem_name): if not(helpers.is_build_portable()): pytest.skip("Portability not enabled") if not(helpers.is_kem_enabled_by_name(kem_name)): pytest.skip('Not enabled') helpers.run_subprocess(["qemu-"+platform.machine()+"-static", "-cpu", MIN_CPUS[platform.machine()], helpers.path_to_executable('test_kem'), kem_name])
def test_kem(kem_name): if not (helpers.is_kem_enabled_by_name(kem_name)): pytest.skip('Not enabled') Path('build/mem-benchmark').mkdir(parents=True, exist_ok=True) for i in range(3): helpers.run_subprocess( [helpers.path_to_executable('test_kem_mem'), kem_name, str(i)])
def test_sig(sig_name): kats = helpers.get_kats("sig") if not (helpers.is_sig_enabled_by_name(sig_name)): pytest.skip('Not enabled') output = helpers.run_subprocess( [helpers.path_to_executable('kat_sig'), sig_name], ) output = output.replace("\r\n", "\n") h256 = sha256() h256.update(output.encode()) assert (kats[sig_name] == h256.hexdigest())
def test_kem(kem_name): kats = helpers.get_kats("kem") if kem_name.startswith('SIDH'): pytest.skip('KATs not available for SIDH') if not (helpers.is_kem_enabled_by_name(kem_name)): pytest.skip('Not enabled') output = helpers.run_subprocess( [helpers.path_to_executable('kat_kem'), kem_name], ) output = output.replace("\r\n", "\n") h256 = sha256() h256.update(output.encode()) assert (kats[kem_name] == h256.hexdigest())
def test_sig(sig_name): if not(helpers.is_build_portable()): pytest.skip("Portability not enabled") if not(helpers.is_sig_enabled_by_name(sig_name)): pytest.skip('Not enabled') if (sig_name.startswith("picnic")): pytest.skip("Picnic portability known to not be given.") helpers.run_subprocess(["qemu-"+platform.machine()+"-static", "-cpu", MIN_CPUS[platform.machine()], helpers.path_to_executable('test_sig'), sig_name])
def test_sig(sig_name): if not(helpers.is_sig_enabled_by_name(sig_name)): pytest.skip('Not enabled') output = helpers.run_subprocess( [helpers.path_to_executable('kat_sig'), sig_name], ) output = output.replace("\r\n", "\n") kats = [] for filename in os.listdir(os.path.join('tests', 'KATs', 'sig')): if filename.startswith(sig_name + '.') and filename.endswith('.kat'): with open(os.path.join('tests', 'KATs', 'sig', filename), 'r') as myfile: kats.append(myfile.read()) assert(output in kats)
def test_sig(sig_name): if not (helpers.is_sig_enabled_by_name(sig_name)): pytest.skip('Not enabled') output = helpers.run_subprocess( [helpers.path_to_executable('kat_sig'), sig_name], ) output = output.replace("\r\n", "\n") kats = [] for filename in os.listdir(os.path.join('tests', 'KATs', 'sig')): if filename.startswith(sig_name + '.') and filename.endswith('.kat'): # qtesla's avx2 implementation uses an optimized sampling method that results in different KAT values; we use the correct one if not sig_name.startswith('qTesla') or not (bool( helpers.is_use_option_enabled_by_name( 'AVX2_INSTRUCTION')) ^ bool('avx2' in filename)): with open(os.path.join('tests', 'KATs', 'sig', filename), 'r') as myfile: kats.append(myfile.read()) assert (output in kats)
def test_sig(sig_name): kats = helpers.get_kats("sig") if not (helpers.is_sig_enabled_by_name(sig_name)): pytest.skip('Not enabled') output = helpers.run_subprocess( [helpers.path_to_executable('kat_sig'), sig_name], ) output = output.replace("\r\n", "\n") h256 = sha256() h256.update(output.encode()) # qtesla's avx2 implementation uses an optimized sampling method that results in # different KAT values; we use the correct one (if avx2/aes instructions are available) avx2_aes_enabled_on_linux = helpers.is_use_option_enabled_by_name( 'AVX2_INSTRUCTIONS') and helpers.is_use_option_enabled_by_name( 'AES_INSTRUCTIONS') and platform.system() == 'Linux' if sig_name.startswith( 'qTesla' ) and avx2_aes_enabled_on_linux and not helpers.is_build_portable(): sig_name = sig_name + ".avx2" assert (kats[sig_name] == h256.hexdigest())
def test_aes(): helpers.run_subprocess([helpers.path_to_executable('test_aes')], )
def test_sha3(): helpers.run_subprocess([helpers.path_to_executable('test_sha3')], )
def test_kem(kem_name): if not(helpers.is_kem_enabled_by_name(kem_name)): pytest.skip('Not enabled') helpers.run_subprocess( [helpers.path_to_executable('test_kem'), kem_name], )
def test_examples(program): helpers.run_subprocess( [helpers.path_to_executable(program)], )