sim: change `make_tlv` to dynamic instead of cfg
Use a runtime query of configuration instead of conditional compilation.
Signed-off-by: David Brown <david.brown@linaro.org>
diff --git a/sim/src/image.rs b/sim/src/image.rs
index 5f124b5..e37e436 100644
--- a/sim/src/image.rs
+++ b/sim/src/image.rs
@@ -780,56 +780,35 @@
result
}
-#[cfg(feature = "sig-rsa")]
-#[cfg(feature = "enc-kw")]
fn make_tlv() -> TlvGen {
- TlvGen::new_rsa_kw()
-}
+ if Caps::EcdsaP224.present() {
+ panic!("Ecdsa P224 not supported in Simulator");
+ }
-#[cfg(feature = "sig-rsa")]
-#[cfg(not(feature = "enc-rsa"))]
-#[cfg(not(feature = "enc-kw"))]
-fn make_tlv() -> TlvGen {
- TlvGen::new_rsa_pss()
-}
-
-#[cfg(feature = "sig-ecdsa")]
-#[cfg(feature = "enc-kw")]
-fn make_tlv() -> TlvGen {
- TlvGen::new_ecdsa_kw()
-}
-
-#[cfg(feature = "sig-ecdsa")]
-#[cfg(not(feature = "enc-kw"))]
-fn make_tlv() -> TlvGen {
- TlvGen::new_ecdsa()
-}
-
-#[cfg(not(feature = "sig-rsa"))]
-#[cfg(feature = "enc-rsa")]
-fn make_tlv() -> TlvGen {
- TlvGen::new_enc_rsa()
-}
-
-#[cfg(feature = "sig-rsa")]
-#[cfg(feature = "enc-rsa")]
-fn make_tlv() -> TlvGen {
- TlvGen::new_sig_enc_rsa()
-}
-
-#[cfg(not(feature = "sig-rsa"))]
-#[cfg(not(feature = "sig-ecdsa"))]
-#[cfg(feature = "enc-kw")]
-fn make_tlv() -> TlvGen {
- TlvGen::new_enc_kw()
-}
-
-#[cfg(not(feature = "sig-rsa"))]
-#[cfg(not(feature = "sig-ecdsa"))]
-#[cfg(not(feature = "enc-rsa"))]
-#[cfg(not(feature = "enc-kw"))]
-fn make_tlv() -> TlvGen {
- TlvGen::new_hash_only()
+ if Caps::EncKw.present() {
+ if Caps::RSA2048.present() {
+ TlvGen::new_rsa_kw()
+ } else if Caps::EcdsaP256.present() {
+ TlvGen::new_ecdsa_kw()
+ } else {
+ TlvGen::new_enc_kw()
+ }
+ } else if Caps::EncRsa.present() {
+ if Caps::RSA2048.present() {
+ TlvGen::new_sig_enc_rsa()
+ } else {
+ TlvGen::new_enc_rsa()
+ }
+ } else {
+ // The non-encrypted configuration.
+ if Caps::RSA2048.present() {
+ TlvGen::new_rsa_pss()
+ } else if Caps::EcdsaP256.present() {
+ TlvGen::new_ecdsa()
+ } else {
+ TlvGen::new_hash_only()
+ }
+ }
}
#[cfg(feature = "enc-rsa")]