Skip to content

Commit

Permalink
Update the roadmap
Browse files Browse the repository at this point in the history
  • Loading branch information
randombit committed Feb 19, 2023
1 parent 6869fe7 commit 68b651f
Showing 1 changed file with 25 additions and 36 deletions.
61 changes: 25 additions & 36 deletions doc/roadmap.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,50 +5,39 @@ Development Roadmap
Near Term Plans
----------------------------------------

Here is an outline for the development plans over the next 12-18 months, as of
June 2019.
Here is an outline for the development plans over the next 12-24 months,
as of February 2023.

TLS Hardening/Testing
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Botan 2
---------------

Leverage TLS-Attacker better, for example using custom workflows. Add
interop testing with OpenSSL as part of CI. Improve fuzzer coverage.
Botan 2 is still supported, but no further feature work is planned.
Only security issues and serious bugs will be addressed.

Expose TLS at FFI layer
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Botan 3
---------------

Exposing TLS to C would allow for many new applications to make use of Botan.
The following future work is currently planned for Botan 3:

TLS v1.3
^^^^^^^^^^^^^^^
* BSI Project 481 [https://github.com/randombit/botan/issues/3108]
will add several new post-quantum algorithms including SPHINCS+
signatures, LMS signatures, FrodoKEM, and Classic McEliece.

A complete implementation of TLS v1.3 is planned. DTLS v1.3 may or may not be
supported as well.
* New ECC based password authenticated key exchanges, to replace SRP.
The most likely candidate algorithms are CPace, OPAQUE, or SPAKE2+.

Botan 3.x
----------------------------------------

Botan 3 is currently in progress, with a release date yet to be decided. Botan 2
will remain supported for several years past the point that 3.0 is released, to
allow plenty of time for applications to switch over.

This version will adopt C++20 and use new std types such as string_view,
optional, and any, along with adopting memory span and guarded integer
types. All deprecated features/APIs of 2.x (which notably includes TLS v1.0/v1.1
support) will be removed. Beyond explicitly deprecated functionality, there
should be no breaking API changes in the transition to 3.x

Features currently targeted for Botan 3 include

* New post-quantum algorithms: especially a CCA2 secure encryption scheme and a
lattice-based signature scheme are of interest.
* Adding an implementation of BLS12-381 elliptic curve pairing.

* Password Authenticated Key Exchanges: one or more modern PAKEs
(such as SPAKE2+ or OPAQUE) to replace SRP.
* Low level integer math and elliptic curve arithmetic optimizations.

* Elliptic Curve Pairings: useful in many interesting protocols.
BN-256 and BLS12-381 seem the most likely.
Botan 4
---------------

* New ASN.1 library
At this time there is no immediate plan for a new major version. When it occurs,
it will remove functionality currently marked as deprecated, and adopt a new C++
version. This is unlikely to occur before 2026, at the earliest.

Some of these features may end being backported to Botan 2 as well.
One major change already planned for Botan 4 is that in this release, Public_Key
will no longer derive from Private_Key. And similarly, specific private keys
(for example RSA_PrivateKey) will no longer derive from their cooresponding
public key type.

0 comments on commit 68b651f

Please sign in to comment.