Currently the interfaces pass a Verifier object. with the new implementation of https://github.com/mobilecoinfoundation/attestation for DCAP the same verifier object won't work for DCAP and EPID. We could make a wrapper verifier, but we don't know which underlying verifier we need until we get to the Report (also called Evidence) and the Report isn't seen until sometime later after the clients have provided the verifier object.
Based on initial design in, https://github.com/mobilecoinfoundation/mcips/pull/65, it may be better to create a plain old data(POD) type for the MRENCLAVE|MRSIGNER values along with the advisories, and then pass this POD down to the point where verification happens. Building a verifier at the verify() location.
[x] Move to a different module, the TrustedMeasurementSet should still persist for a JSON config, but the TrustedMeasurement type should live elsewhere as it's not dedicated to the JSON usage anymore. #3436
[x] Use dedicated ProductID and minimum SVN types from the mc-sgx-core-types crates. Currently they are both u16 and can be easily transposed. #3436
Currently the interfaces pass a
Verifier
object. with the new implementation of https://github.com/mobilecoinfoundation/attestation for DCAP the same verifier object won't work for DCAP and EPID. We could make a wrapper verifier, but we don't know which underlying verifier we need until we get to theReport
(also called Evidence) and theReport
isn't seen until sometime later after the clients have provided the verifier object.Based on initial design in, https://github.com/mobilecoinfoundation/mcips/pull/65, it may be better to create a plain old data(POD) type for the MRENCLAVE|MRSIGNER values along with the advisories, and then pass this POD down to the point where verification happens. Building a verifier at the verify() location.
Thinking of modifying https://github.com/mobilecoinfoundation/mobilecoin/blob/baac37c736d84cc7ac1a812a83f4cea749c0ff8e/attest/verifier/config/src/lib.rs#L22 to be this POD.
Initial steps:
StatusVerifierConfig
TrustedMeasurement
, #3369TrustedMeasurementSet
should still persist for a JSON config, but theTrustedMeasurement
type should live elsewhere as it's not dedicated to the JSON usage anymore. #3436