summaryrefslogtreecommitdiff
path: root/src/x509.erl
Commit message (Collapse)AuthorAgeFilesLines
* Store rejected certificates.Linus Nordberg2015-03-251-52/+94
| | | | | | | Not storing the full chain, which would be even more useful. No rate limiting, which would be good. Also, reorganise some in x509.erl and add tests.
* Clarify that 0.test.pem is not a valid #'OTPCertificate'{}.Linus Nordberg2015-03-241-14/+14
| | | | Also some cosmetic changes.
* Add spec's for most functions.Linus Nordberg2015-03-231-1/+8
| | | | NOTE: We're not dialyzer clean yet.
* Formatting; remove debug printouts.Linus Nordberg2015-03-231-33/+17
|
* Add precert handling.Linus Nordberg2015-03-231-69/+186
|
* Fix a bug where verification of EC signatures made us crash.Linus Nordberg2015-02-271-33/+40
| | | | | Also, have valid_chain_p return boolean, add some debug logging and detect invalid signature types instead of crashing.
* Verify that known roots are indeed signing themselves.Linus Nordberg2015-02-271-18/+40
| | | | | | | This filters out certificates with signing algorithms that we can't handle. Also, make unit tests better.
* Even more debug logging.Linus Nordberg2015-02-251-0/+3
|
* Add debug logging.Linus Nordberg2015-02-251-0/+5
| | | | Trying to figure out why public_key:verify isn't found in docker images.
* Stop validating that cert.issuer matches issuer.subject.Linus Nordberg2015-02-201-46/+27
| | | | | | | | | | Even canoncalized versions of this data mismatch in otherwise proper chains. Since we're not here to validate chains for any other reasons than attribution and spam control, let's stop validate cert.issuer==candidate.subject. We still verify the cryptographic chain with signatures of tbsCertificates of course. Resolves CATLFISH-19.
* Make unit tests work again.Linus Nordberg2015-02-191-6/+9
| | | | Makefile target 'check' runs them.
* Verify certificates by decoding them as 'plain' certs rather than 'otp.Linus Nordberg2014-11-181-18/+194
| | | | | | | OTP cert validation is too strict. Let's see if this is forgiving enough for our needs. Also, move all cert reading from disk to x509.erl.
* Log some info about certs that don't parse and why.Linus Nordberg2014-11-051-3/+21
| | | | Also move x509 specific code to the x509 module.
* Catch badly ASN.1-encoded certificates.Linus Nordberg2014-10-241-13/+26
| | | | | | Now not crashing badly encoded certs in the list of known roots, which is good. They're simply ignored. Next step is to figure out if we should accept some anomalies, due to reality.
* Log (info) when adding and rejecting a certificate chain.Linus Nordberg2014-10-231-1/+5
| | | | Writing to stdout for now, until we've decided on logging framework.
* Split CertChain properly.Linus Nordberg2014-10-231-1/+1
| | | | This way, Chain is always a list.
* Don't use der_encoded().Linus Nordberg2014-10-231-6/+5
| | | | | The type definition seem to have disappeared from public_key.hrl in R17 and I don't know how to conditionally define a type.
* Implement cert chain validation.Linus Nordberg2014-10-221-0/+137
NOTE: Presence of and constraints on names are not being validated.