Closed IwanTris closed 1 month ago
The conformance tools use jsrsasign for the processing of certificates, and its function for parsing basicConstraints extension is written in a way where explicitly defined cA:FALSE
leads to an error.
With that said, on page 135 in rfc5280 the second paragraph states:
Implementers should note that the DER encoding of SET or SEQUENCE components whose value is the DEFAULT omit the component from the encoded certificate or CRL. For example, a BasicConstraints extension whose cA value is FALSE would omit the cA boolean from the encoded certificate.
So even though other libraries may process such extension value, I believe the cA:FALSE
should still be omitted, i.e. the correct value for basicConstraints would be 30 00
.
Hi iirachek, Thank you for the answer.
By submitting this issue you are acknowledging that any information regarding this issue will be publicly available.
If you have privacy concerns, please email conformance-tools@fidoalliance.org
FIRST PRE CHECK
What protocol are you implementing?
NOTE: UAF 1.0 certification have been officially sunset. U2F 1.2 only supported version of U2F.
What is your implementation class?
If you are platform authenticator vendor, please email conformance-tools@fidoalliance.org
What is the version of the tool are you using?
1.7.20-4
What is the OS and the version are you running?
For desktop tools
For UAF mobile tools
Issue description
While running self-conformance tool v1.7.20-4 for CTAP 2.1 - MDS3, subgroup MakeCredential Response step P-04, we encountered the following error: Error: hExtV parse error: 3003010100 at X509.getExtBasicConstraints (js/vendor/jsrsasign.min.js:238:4013) at Proxy.getCertificateInfoObject (js/utils.js:927:52) at n.eval (eval at compileCode (js/sandbox.js:25:26),:8159:32)
The attestation certificate returned by the applet (IPS_attestation_NFC_Test_1.zip) has Basic Constraints value "30 03 01 01 00", which according to https://www.rfc-editor.org/rfc/rfc5280 means cA = FALSE.
30: SEQUENCE 03: length 01: BOOLEAN 01: length 00: FALSE
BasicConstraints ::= SEQUENCE { cA BOOLEAN DEFAULT FALSE, pathLenConstraint INTEGER (0..MAX) OPTIONAL }
This cA value is the same as the expected value by self-conformance tool: (6) Basic Constraints extension MUST have the CA component set to false.
However, it seems that the self-conformance tool fails to parse the Basic Constraints TLV. Error: hExtV parse error: 3003010100 at X509.getExtBasicConstraints (js/vendor/jsrsasign.min.js:238:4013) at Proxy.getCertificateInfoObject (js/utils.js:927:52) at n.eval (eval at compileCode (js/sandbox.js:25:26),:8159:32)
For comparison, when the attestation certificate has the Basic Constraints value "30 00" (cA has defaut value FALSE), the self-conformance tool successfully parses the Basic Constraints TLV.
Can you please help to check why the self-conformance tool fails to parse the Attestation certificate with Basic Constraints "30 03 01 01 00"?
Thank you