diff options
author | Jack Lloyd <[email protected]> | 2019-06-29 07:00:24 -0400 |
---|---|---|
committer | Jack Lloyd <[email protected]> | 2019-06-29 07:00:24 -0400 |
commit | b2ee012e2d1a2182f819c936b2347ba0a562ebed (patch) | |
tree | ea1327b48e972ef6eb1a20516fc71ab766191191 /doc | |
parent | 1782b414bff9e98539a84fbea1112cc244b4935a (diff) |
Switch up the roadmap
TLS v1.3 is specified and final, whereas the PAKEs and PQ schemes
are still in flux.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/roadmap.rst | 60 |
1 files changed, 23 insertions, 37 deletions
diff --git a/doc/roadmap.rst b/doc/roadmap.rst index c5a25c3df..ab73e0e87 100644 --- a/doc/roadmap.rst +++ b/doc/roadmap.rst @@ -6,7 +6,7 @@ Near Term Plans ---------------------------------------- Here is an outline for the development plans over the next 12-18 months, as of -April 2019. +June 2019. TLS Hardening/Testing ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -20,49 +20,35 @@ Expose TLS at FFI layer Exposing TLS to C would allow for many new applications to make use of Botan. -Post-Quantum CCA2 Encryption -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +TLS v1.3 +^^^^^^^^^^^^^^^ -Which scheme(s) to implement is open to question. HRSS is one possiblity. -But providing at least one PQ-secure CCA2 encryption scheme would be very -useful for TLS, PGP, and other protocols. +A complete implementation of TLS v1.3 is planned. DTLS v1.3 may or may not be +supported as well. -Password Authenticated Key Exchanges -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Adding support for modern PAKE algorithms (such as SPAKE2+ or OPAQUE), -including encrypted database backed storage for verifiers. - -Elliptic Curve Pairings -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -These are useful in many interesting protocols. Initially BN curves are the main -target (particularly BN-256 for compatibility with Go's bn256 module) but likely -we'll also want BLS curves. +Botan 3.x +---------------------------------------- -And possibly some functionality built on top of pairings, such as identity based -encryption. +Botan 3 is currently planned for release in mid 2020. Botan 2 will remain +supported for several years, to allow time for applications to switch over. -ASN.1 Redesign -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +This version will adopt C++17 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 -Design and build a new ASN.1 encoding/decoding library which is easier to use -and more efficient (fewer memory copies, etc). For at least 2.x this new ASN.1 -code will exist in parallel with the existing library to avoid breaking applications. +Features currently targetted for Botan 3 include -Longer View (Future Major Release) ----------------------------------------- +* New post-quantum algorithms: especially a CCA2 secure encryption scheme and a + lattice-based signature scheme are of interest. -Eventually (currently estimated for mid 2020), Botan 3.x will be released. -This schedule allows some substantial time with Botan 2.x and 3.x supported -simultaneously, to allow for application switch over. +* Password Authenticated Key Exchanges: one or more modern PAKEs + (such as SPAKE2+ or OPAQUE) to replace SRP. -This version will adopt C++17 and use new std types such as string_view, -optional, and any, along with adopting memory span and guarded integer -types. +* Elliptic Curve Pairings: useful in many interesting protocols. + BN-256 and BLS12-381 seem the most likely. -In this future 3.x release, 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 +* New ASN.1 library -Botan 3.x will likely be the first version to support TLS 1.3. +Some of these features may end being backported to Botan 2 as well. |