Commit Graph

200 Commits

Author SHA1 Message Date
Steven Fackler f401ba2ec1 Run clippy 2020-05-24 16:31:04 -07:00
Noah 41162e27ab
Add a shim for X509_STORE_get0_objects and X509_OBJECT_free 2020-03-24 12:33:54 -05:00
Noah e268a5ac7e
Check null ptr for non-x509 X509Object 2020-03-23 10:20:30 -05:00
Noah 8cfb59b9ea
Add a way to get the certificates stored in an X509Store 2020-03-22 23:20:59 -05:00
Adrian Budau e7d0e69c74
Fix the memory leak in `X509Builder::append_extension`.
Also add an alternative method that takes a `X509ExtensionRef`.
2020-02-26 16:23:46 +02:00
Andrii Radyk fc3c0a93d5 remove deprecated Error::description, replace deprecated cause with source 2019-12-21 23:53:49 +01:00
Alexey Galakhov a0e5b31799 X.509: add verify methods 2019-03-11 22:35:43 +01:00
Steven Fackler 7eee39f1ec Rustfmt 2019-02-22 10:14:15 -07:00
Steven Fackler 1392b006e2
Merge pull request #937 from marcoh00/iterable-x509names
X509NameRef: Provide an iterator over all entries
2018-07-07 20:20:45 -07:00
Steven Fackler 07c49e517e
Only grab the name entry count when needed 2018-06-26 22:31:10 -07:00
Steven Fackler 115cb730b0 Switch to accessors in libressl where possible
Some accessors are mysteriously still macros so we can't make everything
opaque yet, unfortunately.

cc #909
2018-06-09 21:49:36 -07:00
Marco Huenseler 14b5439347 Rename X509NameRef::all_entries and refactor end-of-iterator checks 2018-06-03 15:38:46 +02:00
Marco Huenseler f5e6d57c47 Provide an Asn1Object getter method for X509NameEntryRef 2018-06-03 15:38:46 +02:00
Marco Huenseler 2afdc16fc9 Make X509NameRef provide an iterator over all X509NameEntries 2018-06-03 15:38:46 +02:00
Steven Fackler a774c0c5f2 Rename X509Ref::fingerprint to X509Ref::digest and avoid allocating 2018-05-24 21:07:36 -07:00
Steven Fackler a6fcef01c0 Overhaul openssl cfgs
Also expose hostname verification on libressl
2018-05-20 12:33:02 -07:00
René Richter 5bb89d7552 Add functions to X509Req to obtain public key and extensions
This allows for basic CSR signing.
2018-04-21 23:14:48 +02:00
Steven Fackler 7890672725 Add X509Ref::serial_number 2018-03-28 20:41:28 +02:00
Steven Fackler 7c33346960 Remove version-specific features
Closes #852
2018-03-19 00:41:33 -07:00
Steven Fackler 4ee7e0d3a9 Tweak verify_cert's signature
The call can fail either due to an invalid cert or an internal error,
and we should distinguish between the two.
2018-03-11 14:08:34 -07:00
Bastian Köcher d7a7c379a8 Changes `init` to take a closure which is called with the initialized context
After calling the closure, we automatically cleanup the context. This is
required, because otherwise we could have dangling references in the context.
2018-03-11 11:34:36 +01:00
Bastian Köcher a5d7f8a718 Moves store context init into its own function 2018-03-10 00:15:03 +01:00
Bastian Köcher 810ddeb4ca Moves `cleanup` into its own function 2018-03-08 12:08:39 +01:00
Bastian Köcher 888f4ccaab Fixes the implementation of `X509StoreContextRef::verify_cert`
The certificate, the store and the certificates chain does not need to be
consumed by `verify_cert` and instead are taken as references. We also call
`X509_STORE_CTX_cleanup`, after the verification succeeded.
2018-03-07 16:07:57 +01:00
Benjamin Fry 53adf0e6a4 delay return until after forgets 2018-03-07 13:54:35 +01:00
Benjamin Fry 6abac82f13 cleanup and add negative test 2018-03-07 13:54:35 +01:00
Benjamin Fry a1cfde765a add cleanup ffi to store context 2018-03-07 13:54:15 +01:00
Benjamin Fry 3187366cc5 restructure to self contained function 2018-03-07 13:53:29 +01:00
Steven Fackler 2251a6f2b6 Little tweaks 2018-03-07 13:51:58 +01:00
Benjamin Fry d8a11973e2 convert to raw pass-through methods 2018-03-07 13:51:58 +01:00
Benjamin Fry 910386027d add comment about consuming self in verify_cert 2018-03-07 13:50:12 +01:00
Benjamin Fry 35cad33d51 fix error check 2018-03-07 13:50:12 +01:00
Benjamin Fry 847fac25f8 properly version library functions 2018-03-07 13:48:09 +01:00
Steven Fackler f645165ee2 Remove the x509 module-level example
The example generated a bogus certificate that was missing a serial
number, a validity range, etc.

Generating a correct x509 certificate is complex enough that doing it
correctly is too long to be a reasonable doc example. There's already
a more complete example in the examples directory that handles things
more correctly.

Closes #859
2018-03-05 19:25:01 -08:00
Steven Fackler f4ddd66b03 Tweak features
We should keep the version features totally separate for now.
2018-02-14 22:11:24 -08:00
Ian P. Cooke 60337266ab add support for rfc822Name (email) and uniformResourceIdentifier (uri) to GeneralName 2018-01-15 11:22:29 -06:00
Steven Fackler 3c19702299 Rename key serialization/deserialization methods
Also document their specific formats.

Closes #502
2018-01-06 13:27:44 -08:00
Ansley Peduru c4620a30c6 Fix links in x509 module 2018-01-01 16:16:41 -05:00
Ansley Peduru c2430b87f7
Merge branch 'master' into x509-docs 2018-01-01 15:40:02 -05:00
Steven Fackler 9043cf9aa7 Move X509Filetype to SslFiletype
These constants have the same values, but X509_FILETYPE_DEFAULT doesn't
work in the Ssl methods and using the SSL_* names is a bit less
confusing.
2018-01-01 11:50:07 -08:00
Ansley Peduru a4c9dd4af3 Fix x509 doc examples 2018-01-01 11:48:55 -05:00
Ansley Peduru 1a40795886 Add documentation for x509 module 2017-12-31 22:39:28 -05:00
Steven Fackler d207897458 Parameterize keys over what they contain
Closes #790
2017-12-30 21:53:39 -08:00
Steven Fackler 89dd50b3ce Add issuer name access.
Closes #808
2017-12-29 10:50:49 -08:00
Steven Fackler f9866cd44f Split X509StoreContextRef::ssl up 2017-12-26 14:53:35 -07:00
Steven Fackler 129b6b9d84 Overhaul verify error type
Also set the error in the hostname verification callback for 1.0.1
2017-12-26 14:43:10 -07:00
Steven Fackler 2adf2cf12b Remove deprecated APIs 2017-12-25 22:09:27 -07:00
Steven Fackler 77448362ce Rename X509FileType to X509Filetype 2017-12-25 19:57:02 -07:00
Steven Fackler 3eab162dc2 Move to associated consts 2017-12-25 19:56:27 -07:00
Steven Fackler 2aaba8bd7a Make Nid values associated constants 2017-12-25 19:19:47 -07:00