Add support for the SRP base64 alphabet
authorMatt Caswell <matt@openssl.org>
Mon, 9 Apr 2018 14:50:20 +0000 (15:50 +0100)
committerMatt Caswell <matt@openssl.org>
Fri, 13 Apr 2018 08:37:38 +0000 (09:37 +0100)
commit3fd59700357072c567785a1fb1430a55ef7bd45b
tree500ba38bfa6a14315b0832c8bb263e7cf31c4d85
parentc080461448815dab809661080ee5e21417478fb4
Add support for the SRP base64 alphabet

Historically we used to implement standalone base64 code for SRP. This
was replaced by commit 3d3f21aa with the standard base64 processing code.

However, the SRP base64 code was designed to be compatible with other SRP
libraries (notably libsrp, but also others) that use a variant of standard
base64. Specifically a different alphabet is used and no padding '='
characters are used. Instead 0 padding is added to the front of the string.
By changing to standard base64 we change the behaviour of the API which may
impact interoperability. It also means that SRP verifier files created prior
to 1.1.1 would not be readable in 1.1.1 and vice versa.

Instead we expand our standard base64 processing with the capability to be
able to read and generate the SRP base64 variant.

Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5925)
crypto/evp/encode.c
crypto/include/internal/evp_int.h
crypto/srp/srp_vfy.c