DSA: deprecate the low level functions.#10977
DSA: deprecate the low level functions.#10977paulidale wants to merge 9 commits intoopenssl:masterfrom
Conversation
paulidale
commented
Jan 31, 2020
- documentation is added or updated
- tests are added or updated
|
Still WIP: |
|
I foresee some merge problems for me. |
levitte
left a comment
There was a problem hiding this comment.
Poor @paulidale... between @mattcaswell and me, life can't be easy 😉
4555edd to
9427410
Compare
This is the least of my problems... |
2a847ad to
946cda9
Compare
|
Open questions are:
|
|
The general viewpoint that at least @mattcaswell and I share nowadays is that the key creation functions should not be deprecated, but the rest goes. In other words, it should remain possible to That's at least how I understood things. But it dawns on me now that @mattcaswell talked about deprecating the functions that do calculations using the keys (encryption, decryption, ...), so it seems like he has a more conservative viewpoint than me, after all. But on direct questions:
|
|
IMO:
|
9647406 to
ce3c254
Compare
|
Thanks for the prompt feedback. Okay, DSA_SIG and ASN.1 are staying. The printing and bits/size functions are deprecated. Clarity is achieved :) Travis is relevant... |
|
Travis is fixed. Time to open the review floodgates ... |
|
Rebased to avoid conflicts. |
There was a problem hiding this comment.
In a no-deprecated configuration, we shouldn't even build the dsa (and dh, since you're already on a path to include that in this deprecation) related apps source. The formula for this in build.info is:
IF[{- !$disabled{deprecated} || $config{api} < 30000 -}]
SOURCE[openssl]=dsa.c dsaparam.c
ENDIF
apps/progs.pl
Outdated
There was a problem hiding this comment.
Er, did you actually mean to have that in this PR?
There was a problem hiding this comment.
Yes, I intend to push this as a separate commit.
I am willing to make it a separate PR if required, but it's easier here.
There was a problem hiding this comment.
[Reopening this conversation after seeing comments from Matt on the subject.]
It turns out that these deprecations are premature.
This cascades to test failures. I tried :) |
|
The partial dh deprecation is here only because dh relies on dsa for parameter generation. Fully deprecating dh is a lot more effort which I've got underway. |
Yup, there are a lot of tests that need a similar check. #10797 had a lot of failures related to exactly this, but from a different viewpoint. |
Use of the low level DSA functions has been informally discouraged for a long time. We now formally deprecate them.
Do not run programs that depend on deprecated APIs when 'no-deprecated' is configured. We still retain the conversion tests that use 'openssl pkey', and add the one that's missing.
Use 'openssl genpkey' instead.
speed is updated to not support DSA instead of being removed. The dhparam, dsaparam, dsa and gendsa commands are deprecated but still exist without NO_DEPRECATED defined.
|
Richard Levitte wrote:
> Common --api=3.0.0 no-deprecated effectively removes today !
I will say this again: those are not default configuration options, *and they are not recommended for general use and cannot be considered "normal" use*. The intention with `no-deprecated` is to check if your application can build with all deprecated symbols removed, for those who really want to be that much on the bleeding edge. If that's not your application, *then do not use `no-deprecated`*, it's as simple as that.
And the error is in design - some symbols are marked depreciated without
alternative.
And this is my point - to mark as deprecated in 5.0 when is expected to
exist valuable alternative.
Regards
Roumen Petrov
|
Huh? Of course, it depends on what you mean with "valuable", but the EVP API with provider backing is the alternative. |
If you believe that then I'd like to understand what symbols you think they are. AFAIK all symbols that we are deprecating have an alternative. |
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from #10977)
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from #10977)
Use of the low level DSA functions has been informally discouraged for a long time. We now formally deprecate them. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from #10977)
Do not run programs that depend on deprecated APIs when 'no-deprecated' is configured. We still retain the conversion tests that use 'openssl pkey', and add the one that's missing. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from #10977)
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from #10977)
Use 'openssl genpkey' instead. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from #10977)
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from #10977)
speed is updated to not support DSA instead of being removed. The dhparam, dsaparam, dsa and gendsa commands are deprecated but still exist without NO_DEPRECATED defined. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from #10977)
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from #10977)
|
Merged to master. Thanks for the reviews and feedback. |