969 Commits

Author SHA1 Message Date
Ryan Everett
3dd6cde0d8 Mention functional correctness explicitly
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2023-12-20 16:47:57 +00:00
Valerio Setti
66134661cd driver-only-builds: add Restrictions section
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2023-12-20 17:06:13 +01:00
Ryan Everett
f5e135670b Clarify key generation and memory-management correctness
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2023-12-20 15:24:47 +00:00
Valerio Setti
af53132e44 driver-only-builds: enhancing section on removing CIPHER_C
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2023-12-20 15:56:09 +01:00
Valerio Setti
3fab8a4deb driver-only-builds: fix typos
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2023-12-20 14:25:37 +01:00
Valerio Setti
5eb8de12cb driver-only-build: remove paragraph about RSA/DH deterministic key generation
This feature is not supported at all in MbedTLS, driver or not.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2023-12-20 11:59:32 +01:00
Manuel Pégourié-Gonnard
9934f834af
Merge pull request #7766 from gilles-peskine-arm/psa-transition-doc-create
Legacy-to-PSA transition guide
2023-12-20 10:28:31 +00:00
Valerio Setti
7e11dd6ec6 driver-only-builds: add section for accelerated ciphers/AEADs
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2023-12-18 15:52:44 +01:00
Ryan Everett
c1c6e0d906 Justify linearization points
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2023-12-15 12:33:26 +00:00
Ryan Everett
6ecb9ce5fc Link directly to the state transition diagram
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2023-12-14 15:19:31 +00:00
Ryan Everett
acfd774bca Add some clarifications in thread_safety.md
Make it clearer how it is possible to reason here using linearization

Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2023-12-14 15:19:31 +00:00
Ryan Everett
3eb4274a57 Fix transitions in diagram
Move the finish_key_creation transition
Neaten the diagram
Add transitions for the key loading functions in psa_get_and_lock_key_slot
Add psa_wipe_key_slot transition
Change file to be a png

Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2023-12-14 15:19:01 +00:00
Ryan Everett
b461b8731c Change how the state transition diagram is stored
Store the source of the diagram as a url instead of an xml file.
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2023-12-14 14:40:45 +00:00
Manuel Pégourié-Gonnard
4dde0b293c md-cipher-dispatch: editorial improvements
Fix a typo, add a reference.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-12-14 12:09:38 +01:00
Gilles Peskine
1ef1eb234f Clarify psa_constant_names
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-12-13 11:09:47 +01:00
Gilles Peskine
5feac959a5 Correct and clarify discussion of AES-CMAC-PRF-128
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-12-12 19:20:45 +01:00
Gilles Peskine
0308d79a34 Fix some MAC-related function names
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-12-12 19:20:30 +01:00
Ryan Everett
177a45f556 Small clarifications in documentation
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2023-12-07 11:24:30 +00:00
Manuel Pégourié-Gonnard
b8c4254f44 Update cipher light -> block cipher definition
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-12-07 12:12:39 +01:00
Ryan Everett
204c852442 Move psa-thread-safety.md
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2023-12-07 11:05:37 +00:00
Ryan Everett
1e9733c6a8 Add graph
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2023-12-07 11:05:37 +00:00
Ryan Everett
9f06681cb4 Update psa-thread-safety.md
Signed-off-by: Ryan Everett <ryan.everett@arm.com>
2023-12-07 11:05:37 +00:00
Manuel Pégourié-Gonnard
303121eb16 Fix a typo
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-12-07 12:05:07 +01:00
Valerio Setti
acd7bafcbb driver-only-build: update AEADs section
Note: this section shouldn't actually be updated in #8357, but
rather in #8358 which is the wrapup related to cipher and AEADs
accelaration. As a consequence we start the AEAD section with
a disclaimer explaining that the information written there will
be updated soon by a follow up PR.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2023-12-06 15:17:12 +01:00
Gilles Peskine
9f55e8e442 Add a section about ALT implementations
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-12-05 22:21:09 +01:00
Gilles Peskine
e5044a0eb2 Add a generic section about key management
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-12-04 23:17:19 +01:00
Gilles Peskine
32dfaf485c More information about output buffer sizes
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-12-04 23:17:19 +01:00
Gilles Peskine
76bc64e101 Diffie-Hellman: several clarifications and corrections
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-12-04 23:17:19 +01:00
Gilles Peskine
d921391bf4 Note a few things about PAKE (thanks Manuel)
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-12-04 23:17:19 +01:00
Gilles Peskine
5eeca33749 Use "workflow" rather than "flow" for clarity
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-12-04 23:17:19 +01:00
Gilles Peskine
06002c5624 typos and minor clarifications
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-12-04 23:17:19 +01:00
Gilles Peskine
2fffc45feb fixup! Correct function names prefixes where they diverge from module names
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-12-04 23:17:16 +01:00
Valerio Setti
20e93a2a9d driver-only-builds: update documentation for AEADs
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2023-12-04 15:24:25 +01:00
Gilles Peskine
1097d4e731 Minor clarification
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-30 21:18:10 +01:00
Gilles Peskine
c3fd0958ce typo
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-30 21:18:04 +01:00
Gilles Peskine
02112cc9a1 Update PBKDF2 availability for 3.5
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-30 21:17:55 +01:00
Gilles Peskine
3ea22dcb51 Correct function names prefixes where they diverge from module names
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-30 21:07:24 +01:00
Gilles Peskine
dbcfc7dd95 Be more informative about "No change"
Distinguish between interfaces that won't change in 4.0, and interfaces that
have no PSA equivalent but are likely to change in 4.0.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-30 21:04:06 +01:00
Gilles Peskine
d79854b3f7 That's not what mbedtls_ecdh_get_params does
Keep the discussion of how to retrieve information about a key exchange.
This doesn't seem to have equivalent legacy ECDH APIs.

Add a todo item for mbedtls_ecdh_get_params(). At this point I don't know
where it fits.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-30 14:01:59 +01:00
Gilles Peskine
f7746bdd79 Correct lists of sign/verify functions
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-30 14:01:44 +01:00
Gilles Peskine
951cf39b3f Corrections and clarifications around asymmetric key formats
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-30 14:01:20 +01:00
Gilles Peskine
4d234f1ede Editorial corrections
Fix typos, copypasta, and other minor clarifications.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-30 13:59:49 +01:00
Gilles Peskine
396a2a3dcb Explain interruptible operations
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-30 11:02:06 +01:00
Gilles Peskine
d96aa1b5cd Say who to contact
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-29 21:13:02 +01:00
Gilles Peskine
dfe6707fc7 Fix typos and make minor style improvements
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-29 21:12:39 +01:00
Gilles Peskine
d372da6201 Expand on the removal of RNG boilerplate
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-28 18:03:53 +01:00
Gilles Peskine
601d3a0bd7 Add links to newly added functions
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-28 18:03:16 +01:00
Gilles Peskine
5403cb340a typos
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-28 18:03:03 +01:00
Gilles Peskine
677285a299 Clarify "functions that facilitate the transition"
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-28 16:45:50 +01:00
Gilles Peskine
7ee4cc302a Create legacy-API bridge API design document
Do the analysis for hashes.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-11-28 16:08:26 +01:00
Gilles Peskine
b86873e6eb Merge remote-tracking branch 'development' into development-restricted 2023-11-20 18:43:21 +01:00
Dave Rodgman
16799db69a update headers
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2023-11-02 19:47:20 +00:00
Tom Cosgrove
6dcb63bc6d Fix broken link to psa-driver-example-and-guide in psa-driver-wrappers-codegen-migration-guide.md
Fixes #8453

Signed-off-by: Tom Cosgrove <tom.cosgrove@arm.com>
2023-10-31 15:39:25 +00:00
David Horstmann
f63a52ed63 Remove auto-generation of test wrappers
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-31 14:26:00 +00:00
David Horstmann
413dd07a49 Downgrade auto testing testing to a nice-to-have
Automatic testing of our testing is not essential, as our testing
framework may be manually tested. Having automated tests to test our
tests may be left to future work.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-31 12:20:19 +00:00
David Horstmann
2531dab296 Add auto-generation of test wrappers to design
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-30 18:27:10 +00:00
David Horstmann
15b5beea0c Add note on platform-specific barriers
Describe the approach of platform-specific code and draw a comparison
with the constant-time module.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-30 17:13:54 +00:00
David Horstmann
e045b55c65 Add sections on validation of validation
These cover the fact that we need to test our test framework to make
sure it really detects incorrect accesses.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-30 17:00:16 +00:00
David Horstmann
e88a6f8368 Add portability consideration to careful-access
It's important that we be able to test for target-specific bugs.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-30 15:26:21 +00:00
David Horstmann
d081e52685 Discuss plain-overwriting memory poisoning
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-30 15:22:07 +00:00
Manuel Pégourié-Gonnard
4823d2c94e Extend design discussion
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-10-26 12:56:39 +02:00
Janos Follath
a365efc6f1 Threading design: fix internal links
Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-26 10:22:55 +01:00
Manuel Pégourié-Gonnard
6b3643117b Document chosen goals and priorities for 3.x
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-10-26 11:02:17 +02:00
Manuel Pégourié-Gonnard
3bcda449c0 Things forgotten in the previous commit
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-10-26 10:03:49 +02:00
David Horstmann
599b087990 Rename and specify config options
* Rename config options to have MBEDTLS_TEST_ prefix
* Clarify that these config options should not exist in mbedtls_config.h

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-25 18:09:17 +01:00
David Horstmann
78bd77f574 Careful-access prototyping to design exploration
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-25 18:04:39 +01:00
David Horstmann
c59913822e Remove references to new-test approach in design
This is already covered in the design exploration and since the other
approach was chose, we do not need to discuss it in the detailed design
section.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-25 15:33:50 +01:00
David Horstmann
2b86df87da De-duplicate section titles
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-25 15:26:27 +01:00
David Horstmann
8e58ccb4f6 Add blank lines before lists
This widens compatibility with different dialects of Markdown.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-25 15:13:29 +01:00
David Horstmann
2711d23976 Fix broken links
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-25 15:07:58 +01:00
David Horstmann
f95767ad56 Clarify use of new tests for careful-access
New tests are needed (rather than existing ones) because the complexity
of setting up careful-access tests would make it difficult to build atop
existing tests.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-24 16:16:36 +01:00
David Horstmann
c7ccbf5157 Add detailed design section for careful access
This consists in outlining the prototyping and evaluation of different
possible testing approaches.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-24 15:43:12 +01:00
David Horstmann
56aa1b3fbb Add exploration section on FVP testing
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-23 21:20:01 +01:00
David Horstmann
09c84ef0cd Add lengths to convenience interface sketch
Add lengths to structs in the convenience functions to allocate and copy
input and output buffers. It seems better to ensure we always store a
buffer with its length.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-23 20:43:03 +01:00
David Horstmann
730dea31cb Rewrite incorrect description of psa_exercise_key
And clarify our potential use of it as a starting point for writing
memory poisoning tests from scratch.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-23 20:35:35 +01:00
David Horstmann
6c51207602 Add notes about configuration of poisoning tests
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-23 20:25:14 +01:00
David Horstmann
8f905c289d Add reference to test hooks in detailed design
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-23 20:08:38 +01:00
David Horstmann
806055edbf Refactor note on preferred poison-test approach
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-23 19:53:30 +01:00
David Horstmann
52df620736 Use ASan for memory poisoning as well as Valgrind
Also add information about ASan from Microsoft docs.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-23 19:49:00 +01:00
David Horstmann
c61ddb2089 Add C language annotation to code block
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-23 19:18:50 +01:00
David Horstmann
cbf068dbee Fix broken reference
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-23 19:03:10 +01:00
David Horstmann
f889e0fa0a Replace vague 'above' with a reference for ease-of-navigation
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-23 19:01:21 +01:00
David Horstmann
ded14a2c02 Add example wrapper function implementation
Give an example wrapper foir psa_aead_update for the transparent testing
option.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-23 18:58:41 +01:00
David Horstmann
16dac00cb9 Add skeleton of detailed design rewrite
In light of choosing Valgrind/ASan over mprotect()-based poisoning,
update the detailed design of copy validation.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-23 18:57:01 +01:00
Janos Follath
54bd71b40f Update operation threading strategy
The library does not need to provide protection, leave it to the crypto
service.

Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-23 10:30:50 +01:00
Janos Follath
e604269a59 Threading Design: emphasise performance requirement
Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-23 10:16:58 +01:00
Janos Follath
23f7e41633
Threading design: improve language
Co-authored-by: Paul Elliott <62069445+paul-elliott-arm@users.noreply.github.com>
Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-23 10:11:18 +01:00
David Horstmann
be868347f4 Rewrite design exploration of copy validation
Main changes:
* New tests are easier to write than first stated
* Use of existing tests is ledd beneficial
* But using existing tests is a benefit if it can be done transparently

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-20 19:25:11 +01:00
David Horstmann
51fc6cf378 Explore sanitizers for memory poisoning
Consider MSan, ASan and Valgrind as options for implementing memory
poisoning tests. Come to the altered conclusion that Valgrind is the
best option.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-20 18:40:15 +01:00
David Horstmann
17b3716c5a Tweak compiler optimization evaluation section
* Remove references to the platform - this is unlikely to affect whether
copies are optimized.
* Note that the evaluation should test extreme optimisation settings.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-20 18:39:14 +01:00
Janos Follath
49d467c37d Threading design: update and clarify 3.6 plan
- Separation of attr and slot state is added
- Driver support is cut back

Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-20 15:41:40 +01:00
Janos Follath
de0e3e352d Threading design: Update empty slot tracking
Using a dedicated field allows clean separatin between key attributes
and slot state. This allows us to use the same mechanics for attributes
and key content. Which in turn means lower code size and easier
maintenance.

Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-20 15:12:42 +01:00
Janos Follath
52586895f7 Clarify threading design document structure
Separate design analysis from plans and make the distinction clear
between what is implemented, what is planned to be implemented soon,
what is planned to be implemented in the future, and what is ideas that
are rejected.

(The distinction between the last two categories doesn't have to be
clear, we can't and shouldn't plan that far ahead.)

Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-20 14:26:57 +01:00
Janos Follath
19192a5158 Clarify reentrancy requirements for drivers
Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-20 13:16:48 +01:00
David Horstmann
4e54abf182 Add section on possible use of Valgrind tracing
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-19 17:59:45 +01:00
David Horstmann
05ca3d9a1b Expand design for validation of careful access
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-19 16:45:37 +01:00
David Horstmann
a72b4ca734 Modify optimize-testing instructions
Mention -flto and whole-program optimization as this is the most
important aspect.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-19 15:22:15 +01:00
David Horstmann
3f7e42a750 Move implementation by module table earlier
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-19 15:14:50 +01:00
David Horstmann
dae0ad439f Add more detail in design of memory poisoning
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-19 15:12:34 +01:00
David Horstmann
0bd87f5959 Change unsigned int to uint8_t
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-19 13:45:21 +01:00
David Horstmann
23661cc232 Detailed design of memory protection strategy
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-18 18:20:33 +01:00
Gilles Peskine
df62f1a010
Merge pull request #1106 from gilles-peskine-arm/psa-shared-buffers-requirements
PSA shared buffers requirements
2023-10-17 20:38:00 +02:00
Janos Follath
d7a39ae21e Add plan for 3.6 to threading design
Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-17 14:34:26 +01:00
Janos Follath
574100bb0d Add clarifications to thread safety design
Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-17 12:50:28 +01:00
Janos Follath
811a954383 Add reentrancy section to thread safety design
Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-17 12:50:21 +01:00
Gilles Peskine
8ebeb9c180 Test for read-read inconsistency with mprotect and ptrace/gdb
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-16 18:37:02 +02:00
Gilles Peskine
87889ebe86 Fix editorial error with semantic consequences
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-16 15:40:02 +02:00
Gilles Peskine
a3ce6437bf Typos
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-16 15:39:37 +02:00
Gilles Peskine
1f2802c403 Suggest validating copy by memory poisoning
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-13 21:49:17 +02:00
Gilles Peskine
6998721c69 Add a section skeleton for copy bypass
It's something we're likely to want to do at some point.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-13 20:05:32 +02:00
Gilles Peskine
7bc1bb65e9 Short explanations of what is expected in the design sections
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-13 20:05:25 +02:00
Gilles Peskine
35de1f7a7d Distinguish whole-message signature from other asymmetric cryptography
Whole-message signature may process the message multiple times (EdDSA
signature does it).

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-13 20:04:16 +02:00
Gilles Peskine
9cad3b3a70 Design change for cipher/AEAD
There are many reasons why a driver might violate the security requirements
for plaintext or ciphertext buffers, so mandate copying.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-13 20:03:18 +02:00
Gilles Peskine
2859267a27 Clarify terminology: built-in driver
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-13 20:02:00 +02:00
Gilles Peskine
db00543b3a Add a section on write-read feedback
It's a security violation, although it's not clear whether it really needs
to influence the design.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-13 19:57:53 +02:00
Gilles Peskine
352095ca86 Simplify the relaxed output-output rule
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-13 19:56:22 +02:00
Gilles Peskine
60c453ee72 Expand explanations of the vulnerabilities
Add a few more examples.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-13 19:07:56 +02:00
Gilles Peskine
8daedaeac9 Fix typos and copypasta
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-13 18:47:29 +02:00
Gilles Peskine
f7806ca782 Analyze requirements for protection of arguments in shared memory
Propose a dual-approach strategy where some buffers are copied and others
can remain shared.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-12 16:00:11 +02:00
Manuel Pégourié-Gonnard
f1878d8974 Update to only serve GCM and CCM
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-10-12 11:19:00 +02:00
Gilles Peskine
bb5d907aa9 Automatically pick up all Markdown files
Assume GNU make. We already do with the toplevel makefile.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-11 20:47:44 +02:00
Janos Follath
28b4da954b Add PSA threading design
Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-10 15:15:55 +01:00
Manuel Pégourié-Gonnard
301d2a29a7 Update to MD light section
Mostly to reflect this has been implemented, and remove references to
temporary remains from the previous strategy (hash_info, legacy_or_psa)
which would probably be more confusing than helpful at this point.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-10-10 10:04:07 +02:00
Manuel Pégourié-Gonnard
2daee0410e Update list of modules using hashes
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-10-10 10:04:07 +02:00
Manuel Pégourié-Gonnard
ca18b7747e Update definition of Cipher light
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-10-10 10:04:07 +02:00
Manuel Pégourié-Gonnard
839d3580bd Update details of modules using cipher operations
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-10-10 09:22:59 +02:00
Gilles Peskine
32743619a2
Merge pull request #8114 from yanesca/threading_requirements_update
Refine thread safety requirements
2023-10-09 11:22:59 +00:00
Manuel Pégourié-Gonnard
8c40f3dfad Formatting fixes
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-09-28 11:06:09 +02:00
Manuel Pégourié-Gonnard
140c08e325 Minor clarifications.
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-09-28 11:02:37 +02:00
Manuel Pégourié-Gonnard
89ae266e5a Update docs/driver-only-builds.md
Latest changes:
- logic about the relationship between curves, key types and algs (8075)
- building without bignum is no longer "coming soon", it's there :)

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-09-28 08:53:05 +02:00
Manuel Pégourié-Gonnard
dfa42b34ab Improve documentation about driver-only p256-m.
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-09-28 08:53:05 +02:00
Manuel Pégourié-Gonnard
789000b2be Update list of p256-m entry points
There was a bit of a race condition between #8041 which introduced the
new entry points, and #8203 which documented the list of entry points.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-09-28 08:51:51 +02:00
Dave Rodgman
0fc86b2ddf
Merge pull request #8075 from valeriosetti/issue8016
driver-only ECC: curve acceleration macros
2023-09-27 14:39:02 +00:00
Manuel Pégourié-Gonnard
f7dc6cfef1 Document limitation on "mixed" builds
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-09-27 10:34:52 +02:00
Xiaokang Qian
db3035b8bc Fix a typo in psa-crypto-implementation-structure.md
Signed-off-by: Xiaokang Qian <xiaokang.qian@arm.com>
2023-09-26 09:09:20 +00:00
Xiaokang Qian
76e55a20dd Change the documenti about psa_crypto_driver_wrappers.c{h}
Signed-off-by: Xiaokang Qian <xiaokang.qian@arm.com>
2023-09-26 09:09:20 +00:00
Xiaokang Qian
1198e43644 Change the description of auto-generated driver dispatch files
Signed-off-by: Xiaokang Qian <xiaokang.qian@arm.com>
2023-09-26 09:09:20 +00:00
Xiaokang Qian
845693c513 Change comments to psa_crypto_driver_wrappers.h
Signed-off-by: Xiaokang Qian <xiaokang.qian@arm.com>
2023-09-26 09:09:20 +00:00
Manuel Pégourié-Gonnard
030f11b0b1 Type fixes and wording improvements
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-09-24 09:48:47 +02:00
Manuel Pégourié-Gonnard
1f61b7b8ea Document driver-only hashes
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-09-24 09:48:46 +02:00
Gilles Peskine
efaee9a299 Give a production-sounding name to the p256m option
Now that p256-m is officially a production feature and not just an example,
give it a more suitable name.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-09-20 20:49:47 +02:00
Gilles Peskine
452beb9076
Merge pull request #8203 from gilles-peskine-arm/p256-m-production
Declare p256-m as ready for production
2023-09-20 09:36:05 +00:00
Paul Elliott
3d0bffb257 Improve statement in driver-only-builds.md
Signed-off-by: Paul Elliott <paul.elliott@arm.com>
2023-09-13 15:15:37 +01:00
Gilles Peskine
6f784dff49 Reflect the fact p256-m has been integrated into Mbed TLS
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-09-13 15:32:30 +02:00
Valerio Setti
7373a6644d driver-only-builds.md: fix text
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2023-09-04 16:16:11 +02:00
Janos Follath
b4527fbd82 Add clarifications to the threading requirements
Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-08-31 14:01:24 +01:00
Janos Follath
b6954730f0
Fix typo
Co-authored-by: Ronald Cron <ronald.cron@arm.com>
Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-08-31 13:54:21 +01:00
Janos Follath
35633dd977 Add threading non-requirement
State explicitly the non-requirement that it's ok for psa_destroy_key to
block waiting for a driver.

Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-08-31 08:31:19 +01:00
Janos Follath
15d9ec29be Improve thread safety presentation
- Use unique section titles so that there are unique anchors
- Make list style consistent between similar sections

Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-08-31 08:22:21 +01:00
Janos Follath
0385c2815c Tighten thread safety requirements
We shouldn't violate the requirement that the key identifier can be
reused. In practice, a key manager may destroy a key that's in use by
another process, and the privileged world containing the key manager and
the crypto service should not be perturbed by an unprivileged process.

With respect to blocking, again, a key manager should not be blocked
indefinitely by an unprivileged application.

These are desirable properties even in the short term.

Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-08-30 16:44:04 +01:00