Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SRP needs an EVP API #14167

Open
richsalz opened this issue Feb 12, 2021 · 9 comments
Open

SRP needs an EVP API #14167

richsalz opened this issue Feb 12, 2021 · 9 comments
Labels
help wanted triaged: feature The issue/pr requests/adds a feature

Comments

@richsalz
Copy link
Contributor

3.0 deprecated the SRP API (#14132). This issue is to remind the project that an EVP API needs to be written to replace that code.

@richsalz richsalz added the issue: bug report The issue was opened to report a bug label Feb 12, 2021
@t8m t8m added triaged: feature The issue/pr requests/adds a feature and removed issue: bug report The issue was opened to report a bug labels Feb 19, 2021
@t8m t8m added this to the Post 3.0.0 milestone Feb 19, 2021
@ntwerdochlib
Copy link

Curious if a decision has been (or close to being) made regarding the SRP EVP API? Is anyone actively working on it? I use the SRP functionality within libcrypto, and I need to decide if I need to rewrite my code if this functionality is slated for removal.

@t8m t8m removed this from the Post 3.0.0 milestone Jul 25, 2023
@mattcaswell
Copy link
Member

There is no one actively working on this at the moment.

@ntwerdochlib
Copy link

I am interested in taking this on, provided it is something that you would feel comfortable with someone new to this project implementing. I have looking for some documentation around guidelines/design for the EVP API. Is there something you know of I could refer too? I suppose it could be sorted out through PR iterations as well.

@mattcaswell
Copy link
Member

I would recommend starting with a design document to outline what you have in mind, e.g. something along the lines of this:

#21443

It is likely that the OTC (OpenSSL Technical Committee) would want to take a look at/discuss the design (and even agree that this is a sensible thing to want to do at all).

I do wonder whether it could be made to fit the existing key exchange APIs or as an extension to them - or do PAKEs need something entirely new:

https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_derive_init_ex.html

IMO, from an EVP API perspective the design of an API should be considered in terms of a more generic PAKE perspective rather than SRP in particular.

Also to be considered would be the equivalent provider interface. E.g. here's the documentation for the key exchange interface:

https://www.openssl.org/docs/manmaster/man7/provider-keyexch.html

@ntwerdochlib
Copy link

Thank you. I will review the information you provided and get back with you.

@mattcaswell
Copy link
Member

One other thought...it could be that the API may be closer to the existing KDF API rather than the key exchange one:

https://www.openssl.org/docs/manmaster/man3/EVP_KDF_derive.html

@slontis
Copy link
Member

slontis commented Jul 31, 2023

The RFC appears to use SHA1 which is not ideal.

@ntwerdochlib
Copy link

ntwerdochlib commented Aug 3, 2023

I am going to first approach this as a PAKE EVP API, seeing if it can be generalized to support all/most of the PAKE offerings.

In regards to the use of SHA1 in SRP, my assumption (i.e. not scientific) is that it must not be a critical point in the overall design, or the authors would have updated it to use SAH2 by now?

@paulidale
Copy link
Contributor

It doesn't look all that close to the KDF API. It's got many more steps e.g.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted triaged: feature The issue/pr requests/adds a feature
Projects
None yet
Development

No branches or pull requests

6 participants