diff --git a/Cargo.lock b/Cargo.lock index 9de1b6458..31041901d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -262,7 +262,7 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "caliptra-api" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "bitflags 2.9.4", "caliptra-api-types", @@ -277,7 +277,7 @@ dependencies = [ [[package]] name = "caliptra-api-types" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "caliptra-image-types", ] @@ -285,7 +285,7 @@ dependencies = [ [[package]] name = "caliptra-auth-man-gen" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "anyhow", "bitflags 2.9.4", @@ -300,7 +300,7 @@ dependencies = [ [[package]] name = "caliptra-auth-man-types" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "bitfield", "bitflags 2.9.4", @@ -315,7 +315,7 @@ dependencies = [ [[package]] name = "caliptra-builder" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "anyhow", "caliptra-image-crypto", @@ -340,7 +340,7 @@ dependencies = [ [[package]] name = "caliptra-cfi-derive" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "paste", "proc-macro2", @@ -362,7 +362,7 @@ dependencies = [ [[package]] name = "caliptra-cfi-lib" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "caliptra-error", "caliptra-registers", @@ -377,7 +377,7 @@ source = "git+https://github.com/chipsalliance/caliptra-cfi.git?rev=a98e499d279e [[package]] name = "caliptra-coverage" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "anyhow", "bit-vec", @@ -395,7 +395,7 @@ dependencies = [ [[package]] name = "caliptra-cpu" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "caliptra-drivers", "caliptra-registers", @@ -405,7 +405,7 @@ dependencies = [ [[package]] name = "caliptra-drivers" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "arrayvec", "bitfield", @@ -431,7 +431,7 @@ dependencies = [ [[package]] name = "caliptra-emu-bus" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "caliptra-emu-types", "tock-registers", @@ -441,7 +441,7 @@ dependencies = [ [[package]] name = "caliptra-emu-cpu" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "bit-vec", "bitfield", @@ -455,7 +455,7 @@ dependencies = [ [[package]] name = "caliptra-emu-crypto" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "aes", "aes-gcm", @@ -470,7 +470,7 @@ dependencies = [ [[package]] name = "caliptra-emu-derive" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "caliptra-emu-bus", "caliptra-emu-types", @@ -481,7 +481,7 @@ dependencies = [ [[package]] name = "caliptra-emu-periph" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "aes", "arrayref", @@ -508,17 +508,17 @@ dependencies = [ [[package]] name = "caliptra-emu-types" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" [[package]] name = "caliptra-error" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" [[package]] name = "caliptra-gen-linker-scripts" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "caliptra_common", ] @@ -526,7 +526,7 @@ dependencies = [ [[package]] name = "caliptra-hw-model" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "anyhow", "bit-vec", @@ -563,7 +563,7 @@ dependencies = [ [[package]] name = "caliptra-hw-model-types" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "caliptra-api-types", "rand", @@ -572,7 +572,7 @@ dependencies = [ [[package]] name = "caliptra-image-crypto" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "anyhow", "caliptra-image-gen", @@ -592,7 +592,7 @@ dependencies = [ [[package]] name = "caliptra-image-elf" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "anyhow", "caliptra-image-gen", @@ -603,7 +603,7 @@ dependencies = [ [[package]] name = "caliptra-image-fake-keys" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "caliptra-image-gen", "caliptra-image-types", @@ -614,7 +614,7 @@ dependencies = [ [[package]] name = "caliptra-image-gen" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "anyhow", "bitflags 2.9.4", @@ -631,7 +631,7 @@ dependencies = [ [[package]] name = "caliptra-image-types" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "caliptra-cfi-derive", "caliptra-cfi-lib", @@ -647,7 +647,7 @@ dependencies = [ [[package]] name = "caliptra-image-verify" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "bitflags 2.9.4", "caliptra-cfi-derive", @@ -662,7 +662,7 @@ dependencies = [ [[package]] name = "caliptra-kat" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "caliptra-drivers", "caliptra-lms-types", @@ -674,7 +674,7 @@ dependencies = [ [[package]] name = "caliptra-lms-types" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "caliptra-cfi-derive", "caliptra-cfi-lib", @@ -687,7 +687,7 @@ dependencies = [ [[package]] name = "caliptra-registers" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "caliptra-registers-latest", ] @@ -695,7 +695,7 @@ dependencies = [ [[package]] name = "caliptra-registers-latest" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "ureg", ] @@ -703,7 +703,7 @@ dependencies = [ [[package]] name = "caliptra-runtime" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "arrayvec", "bitfield", @@ -736,7 +736,7 @@ dependencies = [ [[package]] name = "caliptra-test" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "anyhow", "asn1", @@ -768,12 +768,12 @@ dependencies = [ [[package]] name = "caliptra-test-harness-types" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" [[package]] name = "caliptra-x509" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "zeroize", ] @@ -781,7 +781,7 @@ dependencies = [ [[package]] name = "caliptra_common" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "bitfield", "bitflags 2.9.4", @@ -1218,7 +1218,7 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "arrayvec", "caliptra-cfi-derive-git", @@ -1416,7 +1416,7 @@ dependencies = [ [[package]] name = "dpe" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "bitflags 2.9.4", "caliptra-cfi-derive-git", @@ -3242,7 +3242,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "platform" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" dependencies = [ "arrayvec", "cfg-if", @@ -4366,7 +4366,7 @@ dependencies = [ [[package]] name = "ureg" version = "0.1.0" -source = "git+https://github.com/chipsalliance/caliptra-sw?rev=386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1#386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" +source = "git+https://github.com/chipsalliance/caliptra-sw?rev=9ed3cdd2f97121d32d213df17d21ba623927b7e4#9ed3cdd2f97121d32d213df17d21ba623927b7e4" [[package]] name = "url" diff --git a/Cargo.toml b/Cargo.toml index 3255738c4..1f2bf1b79 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -222,29 +222,29 @@ libtock_small_panic = { path = "runtime/userspace/libtock/panic_handlers/small_p libtock_unittest = { path = "runtime/userspace/libtock/unittest" } # caliptra dependencies; keep git revs in sync -caliptra-api = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-api-types = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-auth-man-gen = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-auth-man-types = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-builder = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-emu-bus = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-emu-cpu = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-emu-derive = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-emu-periph = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-emu-types = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-error = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1", default-features = false } -caliptra-hw-model = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-hw-model-types = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-image-crypto = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1", default-features = false, features = ["rustcrypto"] } -caliptra-image-fake-keys = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-image-gen = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-image-types = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-registers = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-test = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-test-harness = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -caliptra-test-harness-types = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -ureg = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1" } -dpe = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "386d3dc97853311ebd3d5a5b3944e9a1d5bfb9c1", default-features = false, features = ["dpe_profile_p384_sha384"] } +caliptra-api = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-api-types = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-auth-man-gen = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-auth-man-types = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-builder = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-emu-bus = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-emu-cpu = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-emu-derive = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-emu-periph = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-emu-types = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-error = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4", default-features = false } +caliptra-hw-model = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-hw-model-types = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-image-crypto = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4", default-features = false, features = ["rustcrypto"] } +caliptra-image-fake-keys = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-image-gen = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-image-types = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-registers = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-test = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-test-harness = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +caliptra-test-harness-types = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +ureg = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4" } +dpe = { git = "https://github.com/chipsalliance/caliptra-sw", rev = "9ed3cdd2f97121d32d213df17d21ba623927b7e4", default-features = false, features = ["dpe_profile_p384_sha384"] } # local caliptra dependency; useful when developing # caliptra-api = { path = "../caliptra-sw/api" } diff --git a/hw/model/src/fpga_regs.rs b/hw/model/src/fpga_regs.rs deleted file mode 100644 index 27c6b469d..000000000 --- a/hw/model/src/fpga_regs.rs +++ /dev/null @@ -1,99 +0,0 @@ -// Licensed under the Apache-2.0 license. - -#![allow(dead_code)] - -use tock_registers::registers::{ReadOnly, ReadWrite, WriteOnly}; -use tock_registers::{register_bitfields, register_structs}; - -register_bitfields! { - u32, - pub Control [ - CptraPwrgood OFFSET(0) NUMBITS(1) [], - CptraSsRstB OFFSET(1) NUMBITS(1) [], - CptraObfUdsSeedVld OFFSET(2) NUMBITS(1) [], - CptraObfFieldEntropyVld OFFSET(3) NUMBITS(1) [], - Rsvd0 OFFSET(4) NUMBITS(1) [], - Rsvd1 OFFSET(5) NUMBITS(1) [], - BootfsmBrkpoint OFFSET(6) NUMBITS(1) [], - SsDebugIntent OFFSET(7) NUMBITS(1) [], - I3cAxiUserIdFiltering OFFSET(8) NUMBITS(1) [], - AxiReset OFFSET(31) NUMBITS(1) [], - ], - pub MciError [ - MciErrorFatal OFFSET(0) NUMBITS(1) [], - MciErrorNonFatal OFFSET(1) NUMBITS(1) [], - ], - pub McuConfig [ - McuNoRomConfig OFFSET(0) NUMBITS(1) [], - CptraSsMciBootSeqBrkpointI OFFSET(1) NUMBITS(1) [], - CptraSsLcAllowRmaOnPpdI OFFSET(2) NUMBITS(1) [], - CptraSsLcCtrlScanRstNiI OFFSET(3) NUMBITS(1) [], - CptraSsLcEsclateScrapState0I OFFSET(4) NUMBITS(1) [], - CptraSsLcEsclateScrapState1I OFFSET(5) NUMBITS(1) [], - ], - pub Status [ - CptraErrorFatal OFFSET(0) NUMBITS(1) [], - CptraErrorNonFatal OFFSET(1) NUMBITS(1) [], - ReadyForFuses OFFSET(2) NUMBITS(1) [], - ReadyForFwPush OFFSET(3) NUMBITS(1) [], - ReadyForRuntime OFFSET(4) NUMBITS(1) [], - MailboxDataAvail OFFSET(5) NUMBITS(1) [], - MailboxFlowDone OFFSET(6) NUMBITS(1) [], - ], - pub FifoStatus [ - Empty OFFSET(0) NUMBITS(1) [], - Full OFFSET(1) NUMBITS(1) [], - ], - pub ItrngFifoStatus [ - Empty OFFSET(0) NUMBITS(1) [], - Full OFFSET(1) NUMBITS(1) [], - Reset OFFSET(2) NUMBITS(1) [], - ], - pub FifoData [ - NextChar OFFSET(0) NUMBITS(8) [], - CharValid OFFSET(8) NUMBITS(1) [], - ], -} - -register_structs! { - pub FifoRegs { - (0x0 => pub log_fifo_data: ReadOnly), - (0x4 => pub log_fifo_status: ReadOnly), - (0x8 => pub itrng_fifo_data: ReadWrite), - (0xc => pub itrng_fifo_status: ReadWrite), - (0x10 => pub dbg_fifo_data_pop: ReadOnly), - (0x14 => pub dbg_fifo_data_push: WriteOnly), - (0x18 => pub dbg_fifo_status: ReadOnly), - (0x1c => @END), - }, - pub WrapperRegs { - (0x0 => pub fpga_magic: ReadOnly), - (0x4 => pub fpga_version: ReadOnly), - (0x8 => pub control: ReadWrite), - (0xc => pub status: ReadOnly), - (0x10 => pub arm_user: ReadWrite), - (0x14 => pub itrng_divisor: ReadWrite), - (0x18 => pub cycle_count: ReadOnly), - (0x1c => _reserved0), - (0x30 => pub generic_input_wires: [ReadWrite; 2]), - (0x38 => pub generic_output_wires: [ReadOnly; 2]), - (0x40 => pub cptra_obf_key: [ReadWrite; 8]), - (0x60 => pub cptra_csr_hmac_key: [ReadWrite; 16]), - (0xa0 => pub cptra_obf_uds_seed: [ReadWrite; 16]), - (0xe0 => pub cptra_obf_field_entropy: [ReadWrite; 8]), - (0x100 => pub lsu_user: ReadWrite), - (0x104 => pub ifu_user: ReadWrite), - (0x108 => pub dma_axi_user: ReadWrite), - (0x10c => pub soc_config_user: ReadWrite), - (0x110 => pub sram_config_user: ReadWrite), - (0x114 => pub mcu_reset_vector: ReadWrite), - (0x118 => pub mci_error: ReadOnly), - (0x11c => pub mcu_config: ReadWrite), - (0x120 => pub uds_seed_base_addr: ReadWrite), - (0x124 => pub prod_debug_unlock_auth_pk_hash_reg_bank_offset: ReadWrite), - (0x128 => pub num_of_prod_debug_unlock_auth_pk_hashes: ReadWrite), - (0x12c => pub mci_generic_input_wires: [ReadWrite; 2]), - (0x134 => pub mci_generic_output_wires: [ReadOnly; 2]), - (0x13c => @END), - } -} diff --git a/hw/model/src/lib.rs b/hw/model/src/lib.rs index 056a405c9..56c45e342 100644 --- a/hw/model/src/lib.rs +++ b/hw/model/src/lib.rs @@ -7,6 +7,9 @@ use caliptra_api::{self as api, SocManager}; use caliptra_api_types as api_types; use caliptra_emu_bus::Event; pub use caliptra_emu_cpu::{CodeRange, ImageInfo, StackInfo, StackRange}; +use caliptra_hw_model::otp_provision::{ + LifecycleControllerState, LifecycleRawTokens, LifecycleToken, +}; use caliptra_hw_model::{BootParams, ExitStatus, Output}; use caliptra_hw_model_types::{ EtrngResponse, HexBytes, HexSlice, RandomEtrngResponses, RandomNibbles, DEFAULT_CPTRA_OBF_KEY, @@ -14,9 +17,7 @@ use caliptra_hw_model_types::{ use caliptra_image_types::FwVerificationPqcKeyType; use caliptra_registers::mcu_mbox0::enums::MboxStatusE; pub use mcu_mgr::McuManager; -use mcu_rom_common::{ - LifecycleControllerState, LifecycleRawTokens, LifecycleToken, McuBootMilestones, -}; +use mcu_rom_common::McuBootMilestones; pub use model_emulated::ModelEmulated; use rand::{rngs::StdRng, SeedableRng}; use sha2::Digest; @@ -27,14 +28,12 @@ use std::sync::mpsc; pub use vmem::read_otp_vmem_data; mod bus_logger; -mod fpga_regs; #[cfg(feature = "fpga_realtime")] pub mod lcc; mod mcu_mgr; mod model_emulated; #[cfg(feature = "fpga_realtime")] mod model_fpga_realtime; -mod otp_provision; mod vmem; pub enum ShaAccMode { diff --git a/hw/model/src/model_emulated.rs b/hw/model/src/model_emulated.rs index 2f03907a3..345def7f1 100644 --- a/hw/model/src/model_emulated.rs +++ b/hw/model/src/model_emulated.rs @@ -2,8 +2,6 @@ use crate::bus_logger::BusLogger; use crate::bus_logger::LogFile; -use crate::otp_provision::lc_generate_memory; -use crate::otp_provision::otp_generate_lifecycle_tokens_mem; use crate::trace_path_or_env; use crate::InitParams; use crate::McuHwModel; @@ -24,6 +22,9 @@ use caliptra_emu_periph::{ use caliptra_emu_types::RvAddr; use caliptra_emu_types::RvData; use caliptra_emu_types::RvSize; +use caliptra_hw_model::otp_provision::{ + lc_generate_memory, otp_generate_lifecycle_tokens_mem, LifecycleControllerState, +}; use caliptra_hw_model::DeviceLifecycle; use caliptra_hw_model::ExitStatus; use caliptra_hw_model::ModelError; @@ -42,7 +43,6 @@ use emulator_periph::{I3c, I3cController, Mci, McuRootBus, McuRootBusArgs, Otp, use emulator_registers_generated::axicdma::AxicdmaPeripheral; use emulator_registers_generated::root_bus::AutoRootBus; use mcu_config::McuMemoryMap; -use mcu_rom_common::LifecycleControllerState; use mcu_rom_common::McuBootMilestones; use mcu_testing_common::i3c_socket_server::start_i3c_socket; use mcu_testing_common::{MCU_RUNNING, MCU_RUNTIME_STARTED}; diff --git a/hw/model/src/model_fpga_realtime.rs b/hw/model/src/model_fpga_realtime.rs index f10663097..9dfd8493e 100644 --- a/hw/model/src/model_fpga_realtime.rs +++ b/hw/model/src/model_fpga_realtime.rs @@ -10,12 +10,13 @@ use caliptra_emu_bus::{Bus, BusError, BusMmio, Event}; use caliptra_emu_periph::MailboxRequester; use caliptra_emu_types::{RvAddr, RvData, RvSize}; use caliptra_hw_model::openocd::openocd_jtag_tap::{JtagParams, JtagTap, OpenOcdJtagTap}; +use caliptra_hw_model::otp_provision::LifecycleControllerState; use caliptra_hw_model::{ DeviceLifecycle, HwModel, InitParams as CaliptraInitParams, ModelFpgaSubsystem, Output, SecurityState, XI3CWrapper, }; use caliptra_registers::i3ccsr::regs::StbyCrDeviceAddrWriteVal; -use mcu_rom_common::{LifecycleControllerState, McuBootMilestones}; +use mcu_rom_common::McuBootMilestones; use mcu_testing_common::i3c::{ I3cBusCommand, I3cBusResponse, I3cTcriCommand, I3cTcriResponseXfer, ResponseDescriptor, }; diff --git a/hw/model/src/otp_provision.rs b/hw/model/src/otp_provision.rs deleted file mode 100644 index 8af853927..000000000 --- a/hw/model/src/otp_provision.rs +++ /dev/null @@ -1,503 +0,0 @@ -// Licensed under the Apache-2.0 license - -use anyhow::{bail, Result}; -use emulator_periph::{otp_digest, otp_scramble, otp_unscramble}; -use mcu_rom_common::LifecycleControllerState; -use sha3::{digest::ExtendableOutput, digest::Update, CShake128, CShake128Core}; - -// These are the default lifecycle controller constants from the -// standard Caliptra RTL. These can be overridden by vendors. - -// from caliptra-rtl/src/lc_ctrl/rtl/lc_ctrl_state_pkg.sv -const _A0: u16 = 0b0110010010101110; // ECC: 6'b001010 -const B0: u16 = 0b0111010111101110; // ECC: 6'b111110 -const A1: u16 = 0b0000011110110100; // ECC: 6'b100101 -const B1: u16 = 0b0000111111111110; // ECC: 6'b111101 -const A2: u16 = 0b0011000111010010; // ECC: 6'b000111 -const B2: u16 = 0b0111101111111110; // ECC: 6'b000111 -const A3: u16 = 0b0010111001001101; // ECC: 6'b001010 -const B3: u16 = 0b0011111101101111; // ECC: 6'b111010 -const A4: u16 = 0b0100000111111000; // ECC: 6'b011010 -const B4: u16 = 0b0101111111111100; // ECC: 6'b011110 -const A5: u16 = 0b1010110010000101; // ECC: 6'b110001 -const B5: u16 = 0b1111110110011111; // ECC: 6'b110001 -const A6: u16 = 0b1001100110001100; // ECC: 6'b010110 -const B6: u16 = 0b1111100110011111; // ECC: 6'b011110 -const A7: u16 = 0b0101001100001111; // ECC: 6'b100010 -const B7: u16 = 0b1101101101101111; // ECC: 6'b100111 -const A8: u16 = 0b0111000101100000; // ECC: 6'b111001 -const B8: u16 = 0b0111001101111111; // ECC: 6'b111001 -const A9: u16 = 0b0010110001100011; // ECC: 6'b101010 -const B9: u16 = 0b0110110001101111; // ECC: 6'b111111 -const A10: u16 = 0b0110110100001000; // ECC: 6'b110011 -const B10: u16 = 0b0110111110011110; // ECC: 6'b111011 -const A11: u16 = 0b1001001001001100; // ECC: 6'b000011 -const B11: u16 = 0b1101001111011100; // ECC: 6'b111111 -const A12: u16 = 0b0111000001000000; // ECC: 6'b011110 -const B12: u16 = 0b0111011101010010; // ECC: 6'b111110 -const A13: u16 = 0b1001001010111110; // ECC: 6'b000010 -const B13: u16 = 0b1111001011111110; // ECC: 6'b101110 -const A14: u16 = 0b1001010011010010; // ECC: 6'b100011 -const B14: u16 = 0b1011110111010011; // ECC: 6'b101111 -const A15: u16 = 0b0110001010001101; // ECC: 6'b000111 -const B15: u16 = 0b0110111111001101; // ECC: 6'b011111 -const A16: u16 = 0b1011001000101000; // ECC: 6'b010111 -const B16: u16 = 0b1011001011111011; // ECC: 6'b011111 -const A17: u16 = 0b0001111001110001; // ECC: 6'b001001 -const B17: u16 = 0b1001111111110101; // ECC: 6'b011011 -const A18: u16 = 0b0010110110011011; // ECC: 6'b000100 -const B18: u16 = 0b0011111111011111; // ECC: 6'b010101 -const A19: u16 = 0b0100110110001100; // ECC: 6'b101010 -const B19: u16 = 0b1101110110111110; // ECC: 6'b101011 - -// The C/D values are used for the encoded LC transition counter. - -const _C0: u16 = 0b0001010010011110; // ECC: 6'b011100 -const D0: u16 = 0b1011011011011111; // ECC: 6'b111100 -const C1: u16 = 0b0101101011000100; // ECC: 6'b111000 -const D1: u16 = 0b1111101011110100; // ECC: 6'b111101 -const C2: u16 = 0b0001111100100100; // ECC: 6'b100011 -const D2: u16 = 0b0001111110111111; // ECC: 6'b100111 -const C3: u16 = 0b1100111010000101; // ECC: 6'b011000 -const D3: u16 = 0b1100111011101111; // ECC: 6'b011011 -const C4: u16 = 0b0100001010011111; // ECC: 6'b011000 -const D4: u16 = 0b0101101110111111; // ECC: 6'b111100 -const C5: u16 = 0b1001111000100010; // ECC: 6'b111000 -const D5: u16 = 0b1111111110100010; // ECC: 6'b111110 -const C6: u16 = 0b0010011110000110; // ECC: 6'b010000 -const D6: u16 = 0b0111011111000110; // ECC: 6'b011101 -const C7: u16 = 0b0010111101000110; // ECC: 6'b000110 -const D7: u16 = 0b1010111111000110; // ECC: 6'b111111 -const C8: u16 = 0b0000001011011011; // ECC: 6'b000001 -const D8: u16 = 0b1010101111011011; // ECC: 6'b111011 -const C9: u16 = 0b0111000011000110; // ECC: 6'b110001 -const D9: u16 = 0b1111111011001110; // ECC: 6'b110011 -const C10: u16 = 0b0100001000010010; // ECC: 6'b110110 -const D10: u16 = 0b0111001010110110; // ECC: 6'b110111 -const C11: u16 = 0b0100101111110001; // ECC: 6'b000001 -const D11: u16 = 0b0110101111110011; // ECC: 6'b110111 -const C12: u16 = 0b1000100101000001; // ECC: 6'b000001 -const D12: u16 = 0b1011110101001111; // ECC: 6'b001011 -const C13: u16 = 0b1000000000010001; // ECC: 6'b011111 -const D13: u16 = 0b1001100010110011; // ECC: 6'b111111 -const C14: u16 = 0b0101110000000100; // ECC: 6'b111110 -const D14: u16 = 0b1111111010001101; // ECC: 6'b111110 -const C15: u16 = 0b1100001000001001; // ECC: 6'b001011 -const D15: u16 = 0b1110011000011011; // ECC: 6'b111011 -const C16: u16 = 0b0101001001101100; // ECC: 6'b001000 -const D16: u16 = 0b0111111001111110; // ECC: 6'b001001 -const C17: u16 = 0b0100001001110100; // ECC: 6'b010100 -const D17: u16 = 0b1100101001110111; // ECC: 6'b110110 -const C18: u16 = 0b1100000001100111; // ECC: 6'b100000 -const D18: u16 = 0b1100011101110111; // ECC: 6'b100101 -const C19: u16 = 0b1010000001001010; // ECC: 6'b101111 -const D19: u16 = 0b1111011101101010; // ECC: 6'b101111 -const C20: u16 = 0b1001001001010101; // ECC: 6'b001110 -const D20: u16 = 0b1101111011011101; // ECC: 6'b001111 -const C21: u16 = 0b1001010000011011; // ECC: 6'b100000 -const D21: u16 = 0b1001111000111011; // ECC: 6'b110101 -const C22: u16 = 0b1011101101100001; // ECC: 6'b000100 -const D22: u16 = 0b1011111101111111; // ECC: 6'b000110 -const C23: u16 = 0b1101101000000111; // ECC: 6'b001100 -const D23: u16 = 0b1101111011100111; // ECC: 6'b101110 -const ZRO: u16 = 0b0000000000000000; // ECC: 6'b000000 - -const COUNTS: [[u16; 24]; 25] = [ - [ - ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, - ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, C14, C13, C12, C11, C10, C9, C8, C7, C6, C5, - C4, C3, C2, C1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, C14, C13, C12, C11, C10, C9, C8, C7, C6, C5, - C4, C3, C2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, C14, C13, C12, C11, C10, C9, C8, C7, C6, C5, - C4, C3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, C14, C13, C12, C11, C10, C9, C8, C7, C6, C5, - C4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, C14, C13, C12, C11, C10, C9, C8, C7, C6, C5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, C14, C13, C12, C11, C10, C9, C8, C7, C6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, C14, C13, C12, C11, C10, C9, C8, C7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, C14, C13, C12, C11, C10, C9, C8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, C14, C13, C12, C11, C10, C9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, C14, C13, C12, C11, C10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, C14, C13, C12, C11, D10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, C14, C13, C12, D11, D10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, C14, C13, D12, D11, D10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, C14, D13, D12, D11, D10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, C15, D14, D13, D12, D11, D10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, C16, D15, D14, D13, D12, D11, D10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, C17, D16, D15, D14, D13, D12, D11, D10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, C18, D17, D16, D15, D14, D13, D12, D11, D10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, C19, D18, D17, D16, D15, D14, D13, D12, D11, D10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, C20, D19, D18, D17, D16, D15, D14, D13, D12, D11, D10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, C21, D20, D19, D18, D17, D16, D15, D14, D13, D12, D11, D10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, C22, D21, D20, D19, D18, D17, D16, D15, D14, D13, D12, D11, D10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - C23, D22, D21, D20, D19, D18, D17, D16, D15, D14, D13, D12, D11, D10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], - [ - D23, D22, D21, D20, D19, D18, D17, D16, D15, D14, D13, D12, D11, D10, D9, D8, D7, D6, D5, - D4, D3, D2, D1, D0, - ], -]; - -const STATES: [[u16; 20]; 21] = [ - [ - ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, ZRO, - ZRO, ZRO, - ], - [ - A19, A18, A17, A16, A15, A14, A13, A12, A11, A10, A9, A8, A7, A6, A5, A4, A3, A2, A1, B0, - ], - [ - A19, A18, A17, A16, A15, A14, A13, A12, A11, A10, A9, A8, A7, A6, A5, A4, A3, A2, B1, B0, - ], - [ - A19, A18, A17, A16, A15, A14, A13, A12, A11, A10, A9, A8, A7, A6, A5, A4, A3, B2, B1, B0, - ], - [ - A19, A18, A17, A16, A15, A14, A13, A12, A11, A10, A9, A8, A7, A6, A5, A4, B3, B2, B1, B0, - ], - [ - A19, A18, A17, A16, A15, A14, A13, A12, A11, A10, A9, A8, A7, A6, A5, B4, B3, B2, B1, B0, - ], - [ - A19, A18, A17, A16, A15, A14, A13, A12, A11, A10, A9, A8, A7, A6, B5, B4, B3, B2, B1, B0, - ], - [ - A19, A18, A17, A16, A15, A14, A13, A12, A11, A10, A9, A8, A7, B6, B5, B4, B3, B2, B1, B0, - ], - [ - A19, A18, A17, A16, A15, A14, A13, A12, A11, A10, A9, A8, B7, B6, B5, B4, B3, B2, B1, B0, - ], - [ - A19, A18, A17, A16, A15, A14, A13, A12, A11, A10, A9, B8, B7, B6, B5, B4, B3, B2, B1, B0, - ], - [ - A19, A18, A17, A16, A15, A14, A13, A12, A11, A10, B9, B8, B7, B6, B5, B4, B3, B2, B1, B0, - ], - [ - A19, A18, A17, A16, A15, A14, A13, A12, A11, B10, B9, B8, B7, B6, B5, B4, B3, B2, B1, B0, - ], - [ - A19, A18, A17, A16, A15, A14, A13, A12, B11, B10, B9, B8, B7, B6, B5, B4, B3, B2, B1, B0, - ], - [ - A19, A18, A17, A16, A15, A14, A13, B12, B11, B10, B9, B8, B7, B6, B5, B4, B3, B2, B1, B0, - ], - [ - A19, A18, A17, A16, A15, A14, B13, B12, B11, B10, B9, B8, B7, B6, B5, B4, B3, B2, B1, B0, - ], - [ - A19, A18, A17, A16, A15, B14, B13, B12, B11, B10, B9, B8, B7, B6, B5, B4, B3, B2, B1, B0, - ], - [ - A19, A18, A17, A16, B15, B14, B13, B12, B11, B10, B9, B8, B7, B6, B5, B4, B3, B2, B1, B0, - ], - [ - A19, A18, A17, B16, B15, B14, B13, B12, B11, B10, B9, B8, B7, B6, B5, B4, B3, B2, B1, B0, - ], - [ - A19, A18, B17, B16, B15, B14, B13, B12, B11, B10, B9, B8, B7, B6, B5, B4, B3, B2, B1, B0, - ], - [ - A19, B18, B17, B16, B15, B14, B13, B12, B11, B10, B9, B8, B7, B6, B5, B4, B3, B2, B1, B0, - ], - [ - B19, B18, B17, B16, B15, B14, B13, B12, B11, B10, B9, B8, B7, B6, B5, B4, B3, B2, B1, B0, - ], -]; - -pub const LIFECYCLE_STATE_SIZE: usize = 40; -pub const LIFECYCLE_COUNT_SIZE: usize = 48; -pub const LIFECYCLE_MEM_SIZE: usize = LIFECYCLE_STATE_SIZE + LIFECYCLE_COUNT_SIZE; - -/// Generate the OTP memory contents associated with the lifecycle state. -pub fn lc_generate_state_mem( - state: LifecycleControllerState, -) -> Result<[u8; LIFECYCLE_STATE_SIZE]> { - let state = u8::from(state); - if state >= STATES.len() as u8 { - bail!("Invalid lifecycle state: {:?}", state); - } - let mut result = [0u8; 40]; - let state_data = STATES[state as usize]; - for (i, &value) in state_data.iter().enumerate() { - result[i * 2] = (value >> 8) as u8; - result[i * 2 + 1] = (value & 0xFF) as u8; - } - Ok(result) -} - -/// Generate the OTP memory contents associated with the lifecycle transition count. -pub fn lc_generate_count_mem(count: u8) -> Result<[u8; LIFECYCLE_COUNT_SIZE]> { - if count >= COUNTS.len() as u8 { - bail!("Invalid lifecycle count: {:?}", count); - } - let mut result = [0u8; 48]; - let count_data = COUNTS[count as usize]; - for (i, &value) in count_data.iter().enumerate() { - result[i * 2] = (value >> 8) as u8; - result[i * 2 + 1] = (value & 0xFF) as u8; - } - Ok(result) -} - -/// Generate the OTP memory contents associated with the lifecycle state and transition count. -pub fn lc_generate_memory( - state: LifecycleControllerState, - transition_count: u8, -) -> Result<[u8; LIFECYCLE_MEM_SIZE]> { - let mut result = [0u8; LIFECYCLE_MEM_SIZE]; - let state = lc_generate_state_mem(state)?; - result[..state.len()].copy_from_slice(&state); - let count = lc_generate_count_mem(transition_count)?; - result[state.len()..state.len() + count.len()].copy_from_slice(&count); - result.reverse(); - - Ok(result) -} - -/// Hash a token using cSHAKE128 for the lifecycle controller. -fn hash_token(raw_token: &[u8; 16]) -> [u8; 16] { - let mut hasher: CShake128 = CShake128::from_core(CShake128Core::new(b"LC_CTRL")); - hasher.update(raw_token); - let mut output = [0u8; 16]; - hasher.finalize_xof_into(&mut output); - output -} - -pub const DIGEST_SIZE: usize = 8; -pub const LIFECYCLE_TOKENS_MEM_SIZE: usize = 184; // 11 tokens of 16 bytes each + 8 bytes for the digest - -// Default from caliptra-ss/src/fuse_ctrl/rtl/otp_ctrl_part_pkg.sv -const OTP_IV: u64 = 0x90C7F21F6224F027; -const OTP_CNST: u128 = 0xF98C48B1F93772844A22D4B78FE0266F; - -// These are in reverse order from the RTL. -pub(crate) const OTP_SCRAMBLE_KEYS: [u128; 7] = [ - 0x3BA121C5E097DDEB7768B4C666E9C3DA, - 0xEFFA6D736C5EFF49AE7B70F9C46E5A62, - 0x85A9E830BC059BA9286D6E2856A05CC3, - 0xBEAD91D5FA4E09150E95F517CB98955B, - 0x4D5A89AA9109294AE048B657396B4B83, - 0x277195FC471E4B26B6641214B61D1B43, - 0xB7474D640F8A7F5D60822E1FAEC5C72, -]; - -const LC_TOKENS_KEY_IDX: usize = 6; - -fn otp_scramble_data(data: &mut [u8], key_idx: usize) -> Result<()> { - if data.len() % 8 != 0 { - bail!("Data length must be a multiple of 8 bytes for scrambling"); - } - if key_idx >= OTP_SCRAMBLE_KEYS.len() { - bail!("Invalid key index for OTP scrambling"); - } - for chunk in data.chunks_exact_mut(8) { - let input = u64::from_le_bytes(chunk.try_into().unwrap()); - let output = otp_scramble(input, OTP_SCRAMBLE_KEYS[key_idx]); - chunk.copy_from_slice(&output.to_le_bytes()); - } - Ok(()) -} - -#[allow(unused)] -fn otp_unscramble_data(data: &mut [u8], key_idx: usize) -> Result<()> { - if data.len() % 8 != 0 { - bail!("Data length must be a multiple of 8 bytes for scrambling"); - } - if key_idx >= OTP_SCRAMBLE_KEYS.len() { - bail!("Invalid key index for OTP scrambling"); - } - for chunk in data.chunks_exact_mut(8) { - let input = u64::from_le_bytes(chunk.try_into().unwrap()); - let output = otp_unscramble(input, OTP_SCRAMBLE_KEYS[key_idx]); - chunk.copy_from_slice(&output.to_le_bytes()); - } - Ok(()) -} - -/// Generate the OTP memory contents for lifecycle tokens partition (including the digest). -pub fn otp_generate_lifecycle_tokens_mem( - tokens: &mcu_rom_common::LifecycleRawTokens, -) -> Result<[u8; LIFECYCLE_TOKENS_MEM_SIZE]> { - let mut output = [0u8; LIFECYCLE_TOKENS_MEM_SIZE]; - for (i, token) in tokens.test_unlock.iter().enumerate() { - let hashed_token = hash_token(&token.0); - output[i * 16..(i + 1) * 16].copy_from_slice(&hashed_token); - } - output[7 * 16..8 * 16].copy_from_slice(&hash_token(&tokens.manuf.0)); - output[8 * 16..9 * 16].copy_from_slice(&hash_token(&tokens.manuf_to_prod.0)); - output[9 * 16..10 * 16].copy_from_slice(&hash_token(&tokens.prod_to_prod_end.0)); - output[10 * 16..11 * 16].copy_from_slice(&hash_token(&tokens.rma.0)); - - otp_scramble_data( - &mut output[..LIFECYCLE_TOKENS_MEM_SIZE - DIGEST_SIZE], - LC_TOKENS_KEY_IDX, - )?; - - let digest = otp_digest( - &output[..LIFECYCLE_TOKENS_MEM_SIZE - DIGEST_SIZE], - OTP_IV, - OTP_CNST, - ); - output[LIFECYCLE_TOKENS_MEM_SIZE - DIGEST_SIZE..].copy_from_slice(&digest.to_le_bytes()); - Ok(output) -} - -#[cfg(test)] -mod tests { - use mcu_rom_common::{LifecycleRawTokens, LifecycleToken}; - - use super::*; - - #[test] - fn test_otp_unscramble_token() { - let raw_token = LifecycleToken(0x05edb8c608fcc830de181732cfd65e57u128.to_le_bytes()); - let tokens = LifecycleRawTokens { - test_unlock: [raw_token; 7], - manuf: raw_token, - manuf_to_prod: raw_token, - prod_to_prod_end: raw_token, - rma: raw_token, - }; - let mut memory = otp_generate_lifecycle_tokens_mem(&tokens).unwrap(); - otp_unscramble_data(&mut memory[..16], LC_TOKENS_KEY_IDX).unwrap(); - let expected_hashed_token: [u8; 16] = 0x9c5f6f5060437af930d06d56630a536bu128.to_le_bytes(); - assert_eq!(&memory[..16], &expected_hashed_token); - } - - #[test] - fn test_otp_generate_lifecycle_tokens_mem() { - let raw_token = LifecycleToken(0x05edb8c608fcc830de181732cfd65e57u128.to_le_bytes()); - let tokens = LifecycleRawTokens { - test_unlock: [raw_token; 7], - manuf: raw_token, - manuf_to_prod: raw_token, - prod_to_prod_end: raw_token, - rma: raw_token, - }; - let memory = otp_generate_lifecycle_tokens_mem(&tokens).unwrap(); - - let expected: [u8; 184] = [ - 0x16, 0x84, 0x0d, 0x3c, 0x82, 0x1b, 0x86, 0xae, 0xbc, 0x27, 0x8d, 0xe1, 0xf1, 0x4c, - 0x13, 0xbd, 0x16, 0x84, 0x0d, 0x3c, 0x82, 0x1b, 0x86, 0xae, 0xbc, 0x27, 0x8d, 0xe1, - 0xf1, 0x4c, 0x13, 0xbd, 0x16, 0x84, 0x0d, 0x3c, 0x82, 0x1b, 0x86, 0xae, 0xbc, 0x27, - 0x8d, 0xe1, 0xf1, 0x4c, 0x13, 0xbd, 0x16, 0x84, 0x0d, 0x3c, 0x82, 0x1b, 0x86, 0xae, - 0xbc, 0x27, 0x8d, 0xe1, 0xf1, 0x4c, 0x13, 0xbd, 0x16, 0x84, 0x0d, 0x3c, 0x82, 0x1b, - 0x86, 0xae, 0xbc, 0x27, 0x8d, 0xe1, 0xf1, 0x4c, 0x13, 0xbd, 0x16, 0x84, 0x0d, 0x3c, - 0x82, 0x1b, 0x86, 0xae, 0xbc, 0x27, 0x8d, 0xe1, 0xf1, 0x4c, 0x13, 0xbd, 0x16, 0x84, - 0x0d, 0x3c, 0x82, 0x1b, 0x86, 0xae, 0xbc, 0x27, 0x8d, 0xe1, 0xf1, 0x4c, 0x13, 0xbd, - 0x16, 0x84, 0x0d, 0x3c, 0x82, 0x1b, 0x86, 0xae, 0xbc, 0x27, 0x8d, 0xe1, 0xf1, 0x4c, - 0x13, 0xbd, 0x16, 0x84, 0x0d, 0x3c, 0x82, 0x1b, 0x86, 0xae, 0xbc, 0x27, 0x8d, 0xe1, - 0xf1, 0x4c, 0x13, 0xbd, 0x16, 0x84, 0x0d, 0x3c, 0x82, 0x1b, 0x86, 0xae, 0xbc, 0x27, - 0x8d, 0xe1, 0xf1, 0x4c, 0x13, 0xbd, 0x16, 0x84, 0x0d, 0x3c, 0x82, 0x1b, 0x86, 0xae, - 0xbc, 0x27, 0x8d, 0xe1, 0xf1, 0x4c, 0x13, 0xbd, 0x79, 0xf0, 0x7f, 0x3a, 0x7b, 0x09, - 0x96, 0xe3, - ]; - - assert_eq!(memory, expected); - } - - #[test] - fn test_hash_token() { - let raw_token: [u8; 16] = 0x05edb8c608fcc830de181732cfd65e57u128.to_le_bytes(); - let expected_hashed_token: [u8; 16] = 0x9c5f6f5060437af930d06d56630a536bu128.to_le_bytes(); - assert_eq!(hash_token(&raw_token), expected_hashed_token); - } - - #[test] - fn test_lifecycle_unlocked1() { - let memory = lc_generate_memory(LifecycleControllerState::TestUnlocked0, 1).unwrap(); - let expected: [u8; LIFECYCLE_MEM_SIZE] = [ - 0xdf, 0xb6, 0xc4, 0x5a, 0x24, 0x1f, 0x85, 0xce, 0x9f, 0x42, 0x22, 0x9e, 0x86, 0x27, - 0x46, 0x2f, 0xdb, 0x02, 0xc6, 0x70, 0x12, 0x42, 0xf1, 0x4b, 0x41, 0x89, 0x11, 0x80, - 0x04, 0x5c, 0x09, 0xc2, 0x6c, 0x52, 0x74, 0x42, 0x67, 0xc0, 0x4a, 0xa0, 0x55, 0x92, - 0x1b, 0x94, 0x61, 0xbb, 0x07, 0xda, 0xee, 0x75, 0xb4, 0x07, 0xd2, 0x31, 0x4d, 0x2e, - 0xf8, 0x41, 0x85, 0xac, 0x8c, 0x99, 0x0f, 0x53, 0x60, 0x71, 0x63, 0x2c, 0x08, 0x6d, - 0x4c, 0x92, 0x40, 0x70, 0xbe, 0x92, 0xd2, 0x94, 0x8d, 0x62, 0x28, 0xb2, 0x71, 0x1e, - 0x9b, 0x2d, 0x8c, 0x4d, - ]; - assert_eq!(memory, expected); - } - - #[test] - fn test_lifecycle_manufacturing() { - let memory = lc_generate_memory(LifecycleControllerState::Dev, 2).unwrap(); - let expected: [u8; LIFECYCLE_MEM_SIZE] = [ - 0xdf, 0xb6, 0xf4, 0xfa, 0x24, 0x1f, 0x85, 0xce, 0x9f, 0x42, 0x22, 0x9e, 0x86, 0x27, - 0x46, 0x2f, 0xdb, 0x02, 0xc6, 0x70, 0x12, 0x42, 0xf1, 0x4b, 0x41, 0x89, 0x11, 0x80, - 0x04, 0x5c, 0x09, 0xc2, 0x6c, 0x52, 0x74, 0x42, 0x67, 0xc0, 0x4a, 0xa0, 0x55, 0x92, - 0x1b, 0x94, 0x61, 0xbb, 0x07, 0xda, 0xee, 0x75, 0xfe, 0x0f, 0xfe, 0x7b, 0x6f, 0x3f, - 0xfc, 0x5f, 0x9f, 0xfd, 0x9f, 0xf9, 0x6f, 0xdb, 0x7f, 0x73, 0x6f, 0x6c, 0x9e, 0x6f, - 0xdc, 0xd3, 0x52, 0x77, 0xfe, 0xf2, 0xd3, 0xbd, 0xcd, 0x6f, 0x28, 0xb2, 0x71, 0x1e, - 0x9b, 0x2d, 0x8c, 0x4d, - ]; - assert_eq!(memory, expected); - } -} diff --git a/runtime/userspace/api/eat/Cargo.toml b/runtime/userspace/api/eat/Cargo.toml index 3958047ad..d3012986e 100644 --- a/runtime/userspace/api/eat/Cargo.toml +++ b/runtime/userspace/api/eat/Cargo.toml @@ -13,11 +13,6 @@ path = "src/lib.rs" name = "ocp-eat" path = "src/main.rs" - -[profile.release] -debug = true -opt-level = 1 - [features] default = ["std", "crypto"] std = [] diff --git a/xtask/src/fpga.rs b/xtask/src/fpga.rs index 4e8ae5b7a..5b50d447e 100644 --- a/xtask/src/fpga.rs +++ b/xtask/src/fpga.rs @@ -1,13 +1,13 @@ // Licensed under the Apache-2.0 license use anyhow::{anyhow, bail, Result}; +use caliptra_hw_model::otp_provision::LifecycleControllerState; use caliptra_hw_model::BootParams; use caliptra_image_gen::to_hw_format; use caliptra_image_types::FwVerificationPqcKeyType; use clap::{Subcommand, ValueEnum}; use mcu_builder::{AllBuildArgs, FirmwareBinaries, PROJECT_ROOT}; use mcu_hw_model::{InitParams, McuHwModel, ModelFpgaRealtime}; -use mcu_rom_common::LifecycleControllerState; use std::path::{Path, PathBuf}; use std::process::{Command, Stdio}; use std::str::FromStr;