StrongSwan contains a plugin for using Botan as a crypto provider for quite some time already. We're currently working on extending this plugin with functionality for parsing/validating X.509 certificates and CRLs. To access the relevant bits in Botan, a number of FFI functions have to be added. This issue is meant to provide an overview of the work in progress.
In the best-case scenario we'd like to have most of these additions available in the upcoming Botan 3.11.0 release so that we can start integrating this into strongSwan upstream. Locally, we already have a working prototype.
Required new Functionality in the FFI
Pull Requests related to this
Currently Known Limitations
- IPv6 addresses
Botan currently doesn't support handling IPv6 addresses in subject/issuer alternative names as well as name constraints. Any such IPv6 address entries would currently not be visible to strongSwan when using the Botan plugin
- Delta-CRLs
To the best of my understanding Botan currently does not provide support for Delta CRLs. Therefore, we won't be able to support those via the strongSwan plugin either.
- OCSP Response/Request
We don't require any OCSP-based certificate revocation checks at the moment. Integration with Botan's OCSP functionality is left for future work
/cc @tobiasbrunner
StrongSwan contains a plugin for using Botan as a crypto provider for quite some time already. We're currently working on extending this plugin with functionality for parsing/validating X.509 certificates and CRLs. To access the relevant bits in Botan, a number of FFI functions have to be added. This issue is meant to provide an overview of the work in progress.
In the best-case scenario we'd like to have most of these additions available in the upcoming Botan 3.11.0 release so that we can start integrating this into strongSwan upstream. Locally, we already have a working prototype.
Required new Functionality in the FFI
(made available via FFI: Generic getter(s) for X.509 objects #5188)
(made available via FFI: Allow querying more X.509 Certificate Constraints #5221)
(see FFI: Query Certificate Subject/Issuer Alternative Names and Name Constraints #5217)
(see FFI: Query Certificate Subject/Issuer Alternative Names and Name Constraints #5217)
(see below for some existing unmerged code for this)
(see FFI: Allow querying validity interval of X.509 CRLs #5222)
(see FFI: Enumeration of entries in an X.509 CRL #5220)
Pull Requests related to this
botan_x509_cert_is_ca()should return "1" for true #5236*_count()functions for some FFI enumerators #5232Currently Known Limitations
Botan currently doesn't support handling IPv6 addresses in subject/issuer alternative names as well as name constraints. Any such IPv6 address entries would currently not be visible to strongSwan when using the Botan plugin
To the best of my understanding Botan currently does not provide support for Delta CRLs. Therefore, we won't be able to support those via the strongSwan plugin either.
We don't require any OCSP-based certificate revocation checks at the moment. Integration with Botan's OCSP functionality is left for future work
/cc @tobiasbrunner