-
-
Notifications
You must be signed in to change notification settings - Fork 26
Add a policy for migration of algorithms to the legacy provider #67
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
base: master
Are you sure you want to change the base?
Changes from 3 commits
4592ed3
d24a167
3e03520
162d337
7805f50
ca136c9
249d229
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| # Legacy Provider Policy | ||
|
|
||
| ## Purpose | ||
| The Legacy Provider exists to create an opt-in availability mechanism for | ||
| algorithms that, for various reasons, should have their use discouraged. These | ||
| reasons include, but are not limited to: | ||
|
|
||
| * Discovered security issues leaving the algorithm in question unsafe for | ||
| general use | ||
|
|
||
| * Lack of popular use (i.e. balancing code size vs consumption frequency) | ||
nhorman marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| OpenSSL recognizes that consumption of these algorithms may continue to be | ||
| required by consuming applications after the conditions above have been | ||
| recognized. The Legacy provider exists to provide a mechanism for such | ||
| applications to continue having access to these algorithms while preventing | ||
| applications that don't require them from inadvertently using them. | ||
|
|
||
| ## Constraints on moving an algorithm to the legacy provider | ||
|
|
||
| 1) Migration of an algorithm to the legacy provider must occur on a semantically | ||
nhorman marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| versioned major release boundary. Once a major release includes a given | ||
nhorman marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| algorithm in a given provider, it must remain there for every minor release in | ||
| that major stream. | ||
|
|
||
| 2) Prior to migration, the migration must be announced for at least 1 | ||
nhorman marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| semantically versioned minor release (see announcement mechanism below). | ||
nhorman marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| 3) Coincidental to the announcement above, the algorithm in question may be made | ||
| available in both the source provider and the legacy provider. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. source provider? Did you mean default provider? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I used the term source, as I didn't want to constrain deprecation to only the default provider. i.e. if we ever want to deprecate algorithms in the fips provider, or if we create say a pq provider in the future, this same process might be useable. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is the only place this file says "source provider". Everywhere else, this file says "default provider"... would that make you reconsider? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It does make me reconsider, but I think its an open question of wording. do we want to constrain this policy to the default provider only, or should it apply to any non-legacy provider (default/base/fips/etc)? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Last time I checked, There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Looking back at this, I would go for consistency. Either "default provider", or "source provider", everywhere. |
||
|
|
||
| ## Promotion of algorithms in the legacy provider to the default provider | ||
| Should the need arise, legacy provider algorithms may be promoted to the default | ||
nhorman marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| provider at any time. Removal from the Legacy provider should occur only on | ||
| semantically versioned major release boundaries. | ||
nhorman marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ## Migration announcement mechanism | ||
| Announcements of migrations from the default provider to the Legacy provider is | ||
nhorman marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| made via the DEPRECATIONS.md file in the source code root directory for | ||
nhorman marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| OpenSSL. This file will list the algorithm SN, NID, the version in which the | ||
nhorman marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| deprecation was announced, and the version in which the algorithm is to be | ||
| removed from the default provider. | ||
Uh oh!
There was an error while loading. Please reload this page.