intel / intel/confidential-computing.tee.dcap
Non-deterministic PEM certificate chain order
- Dominant language
- C
- Stars
- 326
- Forks
- 198
- PR merge metrics
- No merged PRs in 30d
Description
https://github.com/intel/SGXDataCenterAttestationPrimitives/blob/c057b236790834cf7e547ebf90da91c53c7ed7f9/QuoteVerification/QVL/Src/AttestationLibrary/src/CertVerification/CertificateChain.cpp#L66-L87
Usually, most PEM certificate chains are defined to go:
- Leaf
- [Intermediate CA]
- Root CA
Even most of the [sample files of the attestation app](https://github.com/intel/SGXDataCenterAttestationPrimitives/tree/master/QuoteVerification/QVL/Src/AttestationApp/sampleData) use the same order, with a few exceptions.
My question here is, why is the order indeterministic in the first place? As you can see from the code example above, it makes parsing more annoying.
Can I expect the Trusted Services API to always return a proper chain from Leaf -> Intermediate -> Root CA? Or is the order really "dunno, you need to check"?
And if it really is designed to be non-deterministic, why is that?
Contributor guide
Assessment
This issue has not been assessed yet.