blob: 967a1006671fa4113a97a600354871d455ae6307 [file] [log] [blame]
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
load("//rules:opentitan_test.bzl", "cw310_params", "opentitan_functest", "verilator_params")
load("//rules:autogen.bzl", "autogen_cryptotest_header")
load("@ot_python_deps//:requirements.bzl", "requirement")
package(default_visibility = ["//visibility:public"])
opentitan_functest(
name = "aes_gcm_functest",
srcs = ["aes_gcm_functest.c"],
verilator = verilator_params(
timeout = "long",
),
deps = [
":aes_gcm_testutils",
":aes_gcm_testvectors",
"//sw/device/lib/runtime:log",
"//sw/device/lib/testing/test_framework:ottf_main",
],
)
cc_library(
name = "aes_gcm_testutils",
srcs = ["aes_gcm_testutils.c"],
hdrs = ["aes_gcm_testutils.h"],
deps = [
"//sw/device/lib/crypto/impl/aes_gcm",
"//sw/device/lib/runtime:log",
"//sw/device/lib/testing/test_framework:check",
],
)
cc_library(
name = "aes_gcm_testvectors",
srcs = ["aes_gcm_testvectors.h"],
deps = [
":aes_gcm_testutils",
],
)
opentitan_functest(
name = "aes_gcm_timing_test",
srcs = ["aes_gcm_timing_test.c"],
cw310 = cw310_params(
timeout = "long",
tags = ["broken"], # https://github.com/lowRISC/opentitan/issues/15788
# [test-triage] test not constant time with icache enabled
),
verilator = verilator_params(
timeout = "long",
tags = ["broken"], # https://github.com/lowRISC/opentitan/issues/15788
# [test-triage] test not constant time with icache enabled
),
deps = [
":aes_gcm_testutils",
":aes_gcm_testvectors",
"//sw/device/lib/crypto/impl/aes_gcm",
"//sw/device/lib/runtime:log",
"//sw/device/lib/testing/test_framework:check",
"//sw/device/lib/testing/test_framework:ottf_main",
],
)
opentitan_functest(
name = "ecdsa_p256_functest",
srcs = ["ecdsa_p256_functest.c"],
verilator = verilator_params(
timeout = "long",
),
deps = [
"//sw/device/lib/crypto/drivers:hmac",
"//sw/device/lib/crypto/drivers:otbn",
"//sw/device/lib/crypto/impl/ecdsa_p256",
"//sw/device/lib/runtime:log",
"//sw/device/lib/testing:entropy_testutils",
"//sw/device/lib/testing/test_framework:ottf_main",
],
)
autogen_cryptotest_header(
name = "ecdsa_p256_verify_testvectors_hardcoded_header",
hjson = "//sw/device/tests/crypto/testvectors:ecdsa_p256_verify_testvectors_hardcoded",
template = ":ecdsa_p256_verify_testvectors.h.tpl",
tool = "//sw/device/tests/crypto:ecdsa_p256_verify_set_testvectors",
)
autogen_cryptotest_header(
name = "kmac_verify_testvectors_hardcoded_header",
hjson = "//sw/device/tests/crypto/testvectors:kmac_verify_testvectors_hardcoded",
template = ":kmac_verify_testvectors.h.tpl",
tool = "//sw/device/tests/crypto:kmac_verify_set_testvectors",
)
opentitan_functest(
name = "kmac_verify_functest_hardcoded",
srcs = ["kmac_verify_functest.c"],
verilator = verilator_params(
timeout = "long",
),
deps = [
":kmac_verify_testvectors_hardcoded_header",
"//sw/device/lib/base:macros",
"//sw/device/lib/crypto/drivers:kmac",
"//sw/device/lib/crypto/impl:hash",
"//sw/device/lib/crypto/impl:mac",
"//sw/device/lib/testing/test_framework:check",
"//sw/device/lib/testing/test_framework:ottf_main",
],
)
opentitan_functest(
name = "ecdsa_p256_verify_functest_hardcoded",
srcs = ["ecdsa_p256_verify_functest.c"],
verilator = verilator_params(
timeout = "long",
),
deps = [
":ecdsa_p256_verify_testvectors_hardcoded_header",
"//sw/device/lib/crypto/drivers:hmac",
"//sw/device/lib/crypto/drivers:otbn",
"//sw/device/lib/crypto/impl/ecdsa_p256",
"//sw/device/lib/runtime:log",
"//sw/device/lib/testing/test_framework:ottf_main",
],
)
autogen_cryptotest_header(
name = "rsa_3072_verify_testvectors_wycheproof_header",
hjson = "//sw/device/tests/crypto/testvectors:rsa_3072_verify_testvectors_wycheproof",
template = ":rsa_3072_verify_testvectors.h.tpl",
tool = "//sw/device/tests/crypto:rsa_3072_verify_set_testvectors",
)
opentitan_functest(
name = "rsa_3072_verify_functest_wycheproof",
srcs = ["rsa_3072_verify_functest.c"],
cw310 = cw310_params(
timeout = "long",
tags = ["broken"], # FIXME #16805 hangs at vector 170
),
targets = [
"cw310_test_rom",
"verilator",
"dv",
],
verilator = verilator_params(
timeout = "eternal",
tags = ["broken"], # FIXME #16805 hangs at vector 165 after ~3h
),
deps = [
":rsa_3072_verify_testvectors_wycheproof_header",
"//sw/device/lib/crypto/drivers:hmac",
"//sw/device/lib/crypto/drivers:otbn",
"//sw/device/lib/crypto/impl/rsa_3072:rsa_3072_verify",
"//sw/device/lib/runtime:log",
"//sw/device/lib/testing/test_framework:ottf_main",
],
)
autogen_cryptotest_header(
name = "rsa_3072_verify_testvectors_hardcoded_header",
hjson = "//sw/device/tests/crypto/testvectors:rsa_3072_verify_testvectors_hardcoded",
template = ":rsa_3072_verify_testvectors.h.tpl",
tool = "//sw/device/tests/crypto:rsa_3072_verify_set_testvectors",
)
opentitan_functest(
name = "rsa_3072_verify_functest_hardcoded",
srcs = ["rsa_3072_verify_functest.c"],
verilator = verilator_params(
timeout = "long",
),
deps = [
":rsa_3072_verify_testvectors_hardcoded_header",
"//sw/device/lib/crypto/drivers:hmac",
"//sw/device/lib/crypto/drivers:otbn",
"//sw/device/lib/crypto/impl/rsa_3072:rsa_3072_verify",
"//sw/device/lib/runtime:log",
"//sw/device/lib/testing/test_framework:ottf_main",
],
)
py_binary(
name = "ecdsa_p256_verify_set_testvectors",
srcs = ["ecdsa_p256_verify_set_testvectors.py"],
imports = ["."],
deps = [
"//util/design/lib:common",
requirement("hjson"),
requirement("mako"),
],
)
py_binary(
name = "rsa_3072_verify_set_testvectors",
srcs = ["rsa_3072_verify_set_testvectors.py"],
imports = ["."],
deps = [
"//util/design/lib:common",
requirement("hjson"),
requirement("mako"),
],
)
py_binary(
name = "kmac_verify_set_testvectors",
srcs = ["kmac_verify_set_testvectors.py"],
imports = ["."],
deps = [
"//util/design/lib:common",
requirement("hjson"),
requirement("mako"),
],
)
filegroup(
name = "template_files",
srcs = [
"ecdsa_p256_verify_testvectors.h.tpl",
"rsa_3072_verify_testvectors.h.tpl",
],
)