30305 Commits

Author SHA1 Message Date
David Horstmann
331b2cfb31 Clarify design decision in light of actions
We were successful in adding transparent memory-poisoning testing, so
simplify to the real design decision we made.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-18 13:17:25 +00:00
David Horstmann
24c269fd4a Rewrite section on PSA copy functions
The finally implemented functions were significantly different from the
initial design idea, so update the document accordingly.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-14 18:03:35 +00:00
David Horstmann
abbf2c4835
Merge pull request #1191 from davidhorstmann-arm/psa-shared-memory-changelog
Add ChangeLog for PSA buffer sharing fix
2024-03-14 16:18:23 +00:00
David Horstmann
ea08045275
Merge pull request #1199 from davidhorstmann-arm/invert-buffer-protection-option
Invert and rename buffer protection config option
2024-03-14 16:17:18 +00:00
David Horstmann
6f8c95ba1d Preserve alphabetical sorting of config options
In the list that is excluded from the full config.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-14 14:52:45 +00:00
David Horstmann
5a71e76e65 Remove MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS from full
This option removes a feature (buffer protection) so should not be
in the full config.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-14 14:47:48 +00:00
David Horstmann
0a8abdea8b Update wrapper generation script and regenerate
Update the guards generated by the wrapper generation script to use
!MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS and regenerate the PSA test
wrappers.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-14 14:47:48 +00:00
David Horstmann
4a48becdba Invert and rename config option
Replace MBEDTLS_PSA_COPY_CALLER_BUFFERS with inverse:
!MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS. This ensures that buffer
protection is enabled by default without any change to the Mbed TLS
config file.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-14 14:47:48 +00:00
Gilles Peskine
91f7e07c63
Merge pull request #1196 from davidhorstmann-arm/buffer-sharing-merge
Update development-restricted after buffer-sharing work
2024-03-14 13:28:35 +01:00
Janos Follath
8564f78c89
Merge pull request #1201 from yanesca/add-cve-ids-to-changelog
Add CVE IDs to Changelog
2024-03-14 11:41:30 +00:00
Janos Follath
9edd7fd002 Add CVE IDs to Changelog
Signed-off-by: Janos Follath <janos.follath@arm.com>
2024-03-14 09:38:03 +00:00
David Horstmann
0634168296 Reference issue #3266
This is the issue that tracks incomplete support for buffer overlap, so
we should refer to it when we discuss partial support whenever
MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS is set.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-13 14:12:10 +00:00
David Horstmann
eff3d1ebb5 Use the exact phrase 'shared memory'
This allows people searching for this phrase to find this ChangeLog
entry.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-13 14:12:10 +00:00
David Horstmann
5aef299006
Merge pull request #1197 from tom-daubney-arm/buffer_sharing_cleanup
Buffer sharing cleanup
2024-03-13 13:55:47 +00:00
David Horstmann
4407aba552 Mention the CVE number that is fixed
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-13 13:34:31 +00:00
David Horstmann
7fc35a5ea1 Reword ChangeLog entry. Specifically:
* Fix a grammatical typo
* Mention shared memory
* Mention overlap support in the security section
* Improve wording

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-13 13:30:55 +00:00
Thomas Daubney
dca796b966 Remove further instance of LOCAL_OUTPUT_WITH_COPY
Signed-off-by: Thomas Daubney <thomas.daubney@arm.com>
2024-03-13 10:59:19 +00:00
David Horstmann
80a5dbd1cd Regenerate PSA wrappers for new PSA functions
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-12 17:02:48 +00:00
Thomas Daubney
4bc77c402d Remove LOCAL_OUTPUT_ALLOC_WITH_COPY
It is no longer needed and should be removed.

Signed-off-by: Thomas Daubney <thomas.daubney@arm.com>
2024-03-12 17:01:11 +00:00
David Horstmann
7102d0f747 Add bugfix section about buffer sharing
Mention that arbitrary overlap is now supported, except whenever
MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS is set.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-12 16:56:49 +00:00
David Horstmann
1d3276da65 Reword ChangeLog entry for shared memory work
Specifically:
* Clarify that passing shared buffers is now secure by default (not
  newly supported)
* Remove spurious hyphen
* Clarify that we do not guarantee copying, but rather guarantee
  protection, allowing us to implement this differently in future if
  required.
* Mention both protection of inputs from modification and outputs from
  exposure of intermediate results.
* Invert the config option, from an enable-option to a disable-option.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-12 16:47:46 +00:00
Thomas Daubney
692fb3c11c Fix missing semicolon
Signed-off-by: Thomas Daubney <thomas.daubney@arm.com>
2024-03-12 16:20:41 +00:00
David Horstmann
c2ac51e0c6 Fix removed space in merge resolution
This space was mysteriously removed during the merge, restore it here.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-12 16:09:58 +00:00
David Horstmann
db90914232 Change goto exit into direct return
Fix errors in merge conflict resolution - change
psa_generate_random_internal() to return directly rather than jumping to
an exit label and restore the variable psa_status_t status.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-12 16:07:08 +00:00
David Horstmann
93fa4e1b87 Merge branch 'development' into buffer-sharing-merge 2024-03-12 15:05:06 +00:00
David Horstmann
3232842d63
Merge pull request #1188 from davidhorstmann-arm/interruptible-sign-hash-buffer-protection
Add buffer protection for interruptible sign/verify
2024-03-12 14:47:00 +00:00
Dave Rodgman
a7f3c4e1d0
Merge pull request #8822 from daverodgman/sha3-perf
SHA-3 performance & code size
2024-03-12 13:14:40 +00:00
Gilles Peskine
b5b185b482
Merge pull request #8850 from billatarm/fix-pc-files
project: set version
2024-03-12 11:30:27 +00:00
Manuel Pégourié-Gonnard
fe164aecfc
Merge pull request #8887 from gilles-peskine-arm/pk_import_into_psa-fix_doxygen_code_blocks
Fix intended code blocks that were not suitably indented
2024-03-12 11:27:45 +00:00
Manuel Pégourié-Gonnard
1c191c1317
Merge pull request #8917 from gilles-peskine-arm/mbedtls_pk_decrypt-USE_PSA_CRYPTO-changelog-correction
mbedtls_pk_decrypt/encrypt actually check the padding mode
2024-03-12 07:53:54 +00:00
Gilles Peskine
88c2755a30 mbedtls_pk_decrypt/encrypt actually check the padding mode
The sign/verify functions happily use the wrong algorithm, but the
encrypt/decrypt functions error out if the padding mode specifies V21.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2024-03-11 18:49:54 +01:00
Dave Rodgman
66ebde46df
Merge pull request #8916 from daverodgman/iar-bignum-fix
Fix IAR warning
2024-03-11 17:43:43 +00:00
David Horstmann
5fb5cce066 Add ChangeLog for PSA buffer sharing fix
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-11 17:28:09 +00:00
Ronald Cron
e98a492cf5
Merge pull request #1187 from ronald-cron-arm/issue-1185
Add security change log for issue 1185
2024-03-11 18:04:47 +01:00
David Horstmann
c5064c83a1 Do not attempt to wipe output buffer if it is NULL
If the output buffer is NULL, it either:

* Does not need wiping because it is zero-length.
* Has failed allocation of a copy.
* Has not yet been written to as a copy hasn't been allocated.

In any of these circumstances, we should not try to write the buffer,
so perform a NULL check before wiping it.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-11 17:02:03 +00:00
David Horstmann
5ba3f5f7a5 Flip logic of generate_psa_wrappers.py
Change from a long list of PSA functions to a list of excluded
false-positives.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-11 15:57:43 +00:00
David Horstmann
5d64c6acca Generate memory poisoning in wrappers
Generate memory poisoning code in test wrappers for:
* psa_sign_hash_start()
* psa_sign_hash_complete()
* psa_verify_hash_start()

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-11 15:56:13 +00:00
David Horstmann
0fea6a52b4 Add buffer copying to psa_verify_hash_start()
Protect input buffers to psa_verify_hash_start(), namely the hash and
signature parameters.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-11 15:56:13 +00:00
David Horstmann
4a523a608e Add buffer copying to psa_sign_hash_start/complete
Add buffer protection to:
* psa_sign_hash_start(), which takes an input buffer for the hash.
* psa_sign_hash_complete(), which takes an output buffer for the
  calculated signature.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2024-03-11 15:56:13 +00:00
Dave Rodgman
d282e264cd Fix IAR warning
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2024-03-11 15:28:48 +00:00
David Horstmann
63dfb45e5e
Merge pull request #1181 from tom-daubney-arm/key_agreement_buffer_protection
Implement safe buffer copying in key agreement
2024-03-11 15:10:49 +00:00
Janos Follath
43edc75e31
Merge pull request #8882 from Ryan-Everett-arm/threading-key-tests
Test multi-threaded key generation
2024-03-11 15:07:48 +00:00
Dave Rodgman
9cc01ccbf8
Merge pull request #8831 from yanesca/switch_to_new_exp
Use mpi_core_exp_mod in bignum
2024-03-11 13:40:46 +00:00
Ronald Cron
44193fa573 Fix and improve the change log
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2024-03-11 13:40:24 +01:00
Paul Elliott
a09b01b5a8
Merge pull request #8912 from Ryan-Everett-arm/double-destroy-key-bugfix
Fix threading bug when multiple destroy_key calls run on the same key
2024-03-11 12:04:04 +00:00
Janos Follath
23dc8b5fd8
Fix code style
Co-authored-by: Dave Rodgman <dave.rodgman@arm.com>
Signed-off-by: Janos Follath <janos.follath@arm.com>
2024-03-11 10:39:57 +00:00
Janos Follath
adb9d2d822 Remove volatile from declaration
Use of volatile is more an internal implementation detail (ensuring
const-time) than part of the contract (the caller doesn't care about
volatile as such).

Signed-off-by: Janos Follath <janos.follath@arm.com>
2024-03-11 10:03:05 +00:00
Janos Follath
d6df0a5dac Fix use of volatile
We need the pointer, A, to be volatile, to ensure the reads happen. bits
does not need to be volatile.

Signed-off-by: Janos Follath <janos.follath@arm.com>
2024-03-11 09:40:03 +00:00
Janos Follath
b888bc0be6 Fix typo
Signed-off-by: Janos Follath <janos.follath@arm.com>
2024-03-11 09:29:53 +00:00
Manuel Pégourié-Gonnard
af3e574f5f
Merge pull request #8862 from valeriosetti/issue8825
Improve support of mbedtls_psa_get_random in client-only builds
2024-03-10 20:06:27 +00:00