custom error pages for 404 and 500 errors
i18n for error pages
minor: remove unused error pages
little bit of documentation
calculate cert fingerprints to store for leap_mx

stelfox.net/blog/2014/04/calculating-rsa-key-fingerprints-in-ruby/
basic integration test for cert API
fix Email so User.new.valid? does not crash

Email.new(nil) now returns an invalid email rather than crashing.
SmtpCertsController, routes and tests
store cert fingerprint with main user identity
minor: fix tests
store fingerprints with timestamp

Only storing the date as that should suffice for normal expiry and is less useful for identifying users by timestamps
better detection if price link should be shown in the footer
Merge pull request #162 from azul/feature/3295-custom-error-pages

Feature/3295 custom error pages
Merge pull request #166 from elijh/feature/footer

better detection if price link should be shown in the footer
change from GET to POST for certs

We create them. let's reflect that in the verb.
fix test to require login
hash token with sha512 against timing attacs #3398
Merge pull request #165 from azul/feature/cert-fingerprints

Feature/cert fingerprints
Merge pull request #163 from azul/feature/3398-save-hashed-token

hash token with sha512 against timing attacs #3398
use i18n.missing_translations

This will print missing translation keys at the end of the tests