Postpone recursive traversal and validate Access Descriptions
1. It was traversing through children before the current
certificate's validation was done. It's fixed now.
2. Adds validation of CRL Distribution Points, AIA.caIssuers and
SIA.signedObject.
Man, those requirements looked deceively small. It was a
freaking mess.
I'm not actually sure this is the final version of this code,
because several argument lists grew too much for my liking.
- Validate more certificate extensions
- Ensure there is only one visible CRL and manifest per publication
point.
- Validate ROA's max length more thoroughly.
It seems that the basic tree validation, at least as far as the
first iteration is concerned, is done.
Except I never managed to understand AS validation at all. It's
like there's nothing to do.
Of course, there's still a ways to go. I still have to add many
little ifs that the project needs to reach strict RFC compliance.
Also those 20-octet sequence manifest numbers. WTF.
- Check that the TAL's public key matches the root cert's public key
- Validate EE certificates differently than CA certificates
- Reorder tree traversal. (I noticed that I was doing it wrong.)
- Polish many other validations by hunting TODOs
Add actual certificate tree validation and other misc tweaks
The tweaks are
1. Unified error message printing. Probably not the final version.
2. Add validation state object, meant to be passed around everywhere.
Prevents global variables.
3. Add a sketch of the CRL code. WIP.