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