-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
PSA partial initialization #6636
Draft
gilles-peskine-arm
wants to merge
11
commits into
Mbed-TLS:development
Choose a base branch
from
gilles-peskine-arm:psa_crypto_init_subsystem-init
base: development
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
PSA partial initialization #6636
gilles-peskine-arm
wants to merge
11
commits into
Mbed-TLS:development
from
gilles-peskine-arm:psa_crypto_init_subsystem-init
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Declare and implement the standard function psa_crypto_init_subsystem() as well an extra function mbedtls_psa_crypto_is_subsystem_initialized() which is useful for testing and likely useful inside the implementation as well. Write some test generic test code which will need to be filled for specific subsystem when they're implemented. Implement PSA_CRYPTO_SUBSYSTEM_COMMUNICATION, which is trivial because if you can see the library, communication must already be on. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
Implement and test PSA_CRYPTO_SUBSYSTEM_KEYS, i.e. keystore initialization. Automatically include PSA_CRYPTO_SUBSYSTEM_STORAGE, i.e. access to persistent keys. At the moment, we have no reason to delay storage initialization, since it doesn't involve any work. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
Make it possible to initialize accelerators without initializing secure elements (and vice versa). This makes it possible to use a cipher accelerator to communicate with a secure element on an encrypted bus, for example. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
gilles-peskine-arm
added
needs-design-approval
component-psa
PSA keystore/dispatch layer (storage, drivers, …)
size-s
Estimated task size: small (~2d)
labels
Nov 21, 2022
No expected behavior change. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
Implement PSA_CRYPTO_SUBSYSTEM_ACCELERATORS and PSA_CRYPTO_SUBSYSTEM_SECURE_ELEMENTS. There are no tests yet. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
Implement and test PSA_CRYPTO_SUBSYSTEM_RANDOM. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
Implement PSA_CRYPTO_SUBSYSTEM_BUILTIN_KEYS. To keep things simple, don't try to make built-in keys available separately from the key store, so it's initialized together with PSA_CRYPTO_SUBSYSTEM_KEYS (and PSA_CRYPTO_SUBSYSTEM_STORAGE). Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
Now each subsystem has its own initialization state. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
The distinction between RNG_INITIALIZED and RNG_SEEDED was not useful (RNG_INITIALIZED is only active during seeding, and during seeding we know what's going on with the RNG). The distinction between RNG_SEEDED and the not-ready states is now conveyed by the RNG subsystem state. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
gilles-peskine-arm
force-pushed
the
psa_crypto_init_subsystem-init
branch
from
January 19, 2023 11:30
95b6ecc
to
d69decf
Compare
tom-daubney-arm
added
historical-reviewed
Reviewed & agreed to keep legacy PR/issue
needs-work
labels
Jul 14, 2023
We are now converting older PRs to draft PRs where the following conditions are met: They have not been updated in the last 3 months, and they need more than non-trivial work to complete. |
3 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
component-psa
PSA keystore/dispatch layer (storage, drivers, …)
historical-reviewed
Reviewed & agreed to keep legacy PR/issue
needs-design-approval
needs-work
size-s
Estimated task size: small (~2d)
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implement the upcoming PSA feature
psa_crypto_init_subsystem
, allowing partial initialization of PSA crypto. For example, you can start calculating hashes and verifying signatures without seeding the random generator.Status: work in progress. The feature is fully implemented, but there are known bugs and test gaps. Out there for design review.
Gatekeeper checklist