PSA partial initialization#6636
Draft
gilles-peskine-arm wants to merge 11 commits intoMbed-TLS:developmentfrom
Draft
PSA partial initialization#6636gilles-peskine-arm wants to merge 11 commits intoMbed-TLS:developmentfrom
gilles-peskine-arm wants to merge 11 commits intoMbed-TLS:developmentfrom
Conversation
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>
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>
95b6ecc to
d69decf
Compare
Contributor
|
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
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Resolves Mbed-TLS/TF-PSA-Crypto#606 and more.
Gatekeeper checklist