967 Commits

Author SHA1 Message Date
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