1
0
mirror of https://github.com/Mbed-TLS/mbedtls.git synced 2025-06-12 08:21:54 +03:00
Commit Graph

1061 Commits

Author SHA1 Message Date
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
d081e52685 Discuss plain-overwriting memory poisoning
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-30 15:22:07 +00:00
4823d2c94e Extend design discussion
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2023-10-26 12:56:39 +02:00
a365efc6f1 Threading design: fix internal links
Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-26 10:22:55 +01:00
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
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
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
78bd77f574 Careful-access prototyping to design exploration
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-25 18:04:39 +01:00
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
2b86df87da De-duplicate section titles
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-25 15:26:27 +01:00
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
2711d23976 Fix broken links
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-25 15:07:58 +01:00
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
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
56aa1b3fbb Add exploration section on FVP testing
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-23 21:20:01 +01:00
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
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
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
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
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
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
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
cbf068dbee Fix broken reference
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-23 19:03:10 +01:00
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
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
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
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
e604269a59 Threading Design: emphasise performance requirement
Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-23 10:16:58 +01:00
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
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
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
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
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
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
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
19192a5158 Clarify reentrancy requirements for drivers
Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-20 13:16:48 +01:00
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
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
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
3f7e42a750 Move implementation by module table earlier
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-19 15:14:50 +01:00
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
0bd87f5959 Change unsigned int to uint8_t
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-19 13:45:21 +01:00
23661cc232 Detailed design of memory protection strategy
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2023-10-18 18:20:33 +01:00
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
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
574100bb0d Add clarifications to thread safety design
Signed-off-by: Janos Follath <janos.follath@arm.com>
2023-10-17 12:50:28 +01:00
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
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
87889ebe86 Fix editorial error with semantic consequences
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-16 15:40:02 +02:00
a3ce6437bf Typos
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2023-10-16 15:39:37 +02:00