Andrew Thoelke
c6f03ef6d4
Include IANA reference in the definition of ECC curves and DH groups
...
Fixes ARMmbed/psa-crypto#262
2019-09-24 13:19:49 +01:00
Andrew Thoelke
dd49cf984b
Include vendor-defined algorithm macros
...
Fixes ARMmbed/psa-crypto#264
2019-09-24 13:11:49 +01:00
Gilles Peskine
38b7c5edeb
Merge pull request #260 from athoelke/at-operations
...
Update multipart operation documentation
2019-09-20 18:44:44 +02:00
Adrian L. Shaw
21e7145f46
Insert doxygen comments on old algorithms so they appear in PSA documentation
2019-09-20 16:01:11 +01:00
Gilles Peskine
c893235ea1
Merge pull request #115 from gilles-peskine-arm/psa-error-compatibility_aliases
...
Improve how generate_psa_constants handles compatibility aliases
2019-09-19 16:20:08 +02:00
Adrian L. Shaw
429fff487a
Remove whitespace
2019-09-19 14:03:49 +01:00
Adrian L. Shaw
d89338ac47
Add API versioning
2019-09-19 13:32:57 +01:00
Gilles Peskine
a291413a1e
Merge pull request #257 from gilles-peskine-arm/psa-remove_zero_length_keys
...
Forbid zero-length keys
2019-09-19 13:07:41 +02:00
Andrew Thoelke
51514f57e9
Resolve inconsistent descipriton of operation state after exhausting a key derivation operation
2019-09-18 17:50:01 +01:00
Andrew Thoelke
4104afb770
Clarify valid state descriptions
2019-09-18 17:47:25 +01:00
Andrew Thoelke
beb97ba066
Update documentation for multipart key derivation operations
2019-09-13 15:35:18 +01:00
Andrew Thoelke
414415a457
Update documentation for multipart aead operations
2019-09-13 15:35:18 +01:00
Andrew Thoelke
db6f44f875
Update documentation for multipart cipher operations
2019-09-13 15:35:17 +01:00
Andrew Thoelke
9f208cc8c2
Update documentation for multipart mac operations
2019-09-13 15:35:17 +01:00
Andrew Thoelke
272ba1dd96
Update documentation for multipart hash operations
2019-09-13 15:35:17 +01:00
Andrew Thoelke
340984b003
Fix PSA_ERROR_BAD_STATE messages
...
Remove some duplicated entries and added some missing ones.
2019-09-13 15:35:17 +01:00
Gilles Peskine
05c900b576
Forbid keys of size 0
...
Keys of size 0 generally don't make sense: a key is supposed to be
secret. There is one edge case which is "raw data" keys, which are
useful to store non-key objects in the same storage location as keys.
However those are also problematic because they involve a zero-length
buffer. Manipulating zero-length buffers in C requires special cases
with functions like malloc() and memcpy(). Additionally, 0 as a key
size already has a meaning "unspecified", which does not always
overlap seamlessly with the meaning "0".
Therefore, forbid keys of size 0. No implementation may accept them.
2019-09-12 18:29:43 +02:00
Gilles Peskine
a170d927dd
Clarify how key creation functions use attributes and what 0 means
...
Clarify how key creation functions use attributes. Explain the meaning
of attribute values, espcially what 0 means in each field where it has
a special meaning. Explain what an algorithm usage policy can be (an
algorithm, a wildcard with ANY_HASH, or 0).
2019-09-12 17:38:19 +02:00
Andrew Thoelke
5ae24ec7af
Add missing error case to psa_aead_verify
2019-09-12 09:44:33 +01:00
Adrian L. Shaw
4c61c1a736
Move psa_destroy_key and psa_copy_key to Key Management section
2019-09-11 14:40:51 +01:00
Jaeden Amero
4badc92438
Merge pull request #117 from gilles-peskine-arm/psa_error_code_coverage
...
PSA return status coverage script
2019-09-10 16:39:23 +01:00
Jaeden Amero
4864eb5bec
Merge pull request #247 from athoelke/at-key-handles
...
Update the behavior of key handles
2019-09-10 14:38:56 +01:00
Andrew Thoelke
970629fc9a
Fix grammar.
2019-09-09 09:56:34 +01:00
Gilles Peskine
be061337c1
Document more error codes
2019-09-06 19:29:52 +02:00
Gilles Peskine
1983512803
Add backward compatibility alias for PSA_ERROR_CORRUPTION_DETECTED
...
This was renamed from PSA_ERROR_TAMPERING_DETECTED. Add a backward
compatibility alias in case somebody was already using it.
2019-09-06 17:48:56 +02:00
Jaeden Amero
7c2cc479b0
Merge pull request #213 from adrianlshaw/psa-api-1.0-beta
...
Update function return codes
2019-09-06 08:53:29 +01:00
Adrian L. Shaw
8619f8cd07
Remove storage errors from psa_generate_random
2019-09-05 10:37:22 +01:00
Andrew Thoelke
de183416f8
Update the behavior of key handles
...
* open output distinct key handles
* each handle must be closed
* destroying a key does not invalidate other handles
* closing a key can/might fail an active operation (but not required)
2019-09-05 09:38:06 +01:00
Adrian L. Shaw
3b5975641e
Fix return code warnings
...
- Remove STORAGE_FAILURE from hash and abort functions
- Remove BUFFER_TOO_SMALL from psa_mac_verify
2019-09-04 19:20:32 +01:00
Jaeden Amero
8096969905
Merge pull request #139 from Patater/des-faster-and-typo-fix
...
Make DES self-test faster, and fix a typo
2019-09-04 12:18:39 +01:00
Adrian L. Shaw
fa2cefa001
Fix warnings
2019-09-04 11:36:15 +01:00
Adrian L. Shaw
f483973c37
Add PSA_ERROR_STORAGE_FAILURE to psa_cipher_generate_iv
2019-09-04 11:35:32 +01:00
Adrian L. Shaw
599c712668
Remove errorneous insert
2019-09-04 11:35:32 +01:00
Adrian L. Shaw
1505b2108a
Add STORAGE_FAILURE everywhere + add missing codes
2019-09-04 11:35:32 +01:00
Adrian L. Shaw
1f1e1a5253
Add storage failure to psa_mac_verify_finish
2019-09-04 11:35:32 +01:00
Adrian L. Shaw
56b32b126c
Add storage failure to psa_mac_sign_finish
2019-09-04 11:35:32 +01:00
Adrian L. Shaw
22bc8fff0c
Add PSA_ERROR_STORAGE_FAILURE to psa_aead_*_setup functions
2019-09-04 11:35:06 +01:00
Adrian L. Shaw
8f7cd1ee55
Added PSA_ERROR_BAD_STATE to functions with operations
...
In the case that the operation object has not been initialized
appropriately.
2019-09-04 11:34:22 +01:00
Adrian L. Shaw
97d3bc3674
Added extra bad state case to psa_hash_setup
2019-09-04 11:34:22 +01:00
Adrian L. Shaw
2364924619
Add missing return codes to psa_generate_key
2019-09-04 11:34:22 +01:00
Adrian L. Shaw
1f42a84a13
Add PSA_ERROR_BUFFER_TOO_SMALL to psa_mac_compute
2019-09-04 11:33:32 +01:00
Adrian L. Shaw
650229ba38
Added PSA_ERROR_STORAGE_FAILURE to psa_mac_compute
...
In case the key could not be retrieved from
storage.
2019-09-04 11:31:14 +01:00
Adrian L. Shaw
2a889781c5
Add PSA_ERROR_STORAGE_FAILURE to psa_export_public_key
...
The same reason that it is included in psa_export_key
2019-09-04 11:31:14 +01:00
Adrian L. Shaw
11638b99a0
Added PSA_ERROR_INSUFFICIENT_MEMORY to psa_export_public_key
...
For the same reasons that psa_export_key can fail with this error
2019-09-04 11:31:14 +01:00
Adrian L. Shaw
7f1863c905
Add PSA_ERROR_INSUFFICIENT_MEMORY to psa_export_key
...
It may be possible that the implementation runs out of
memory when exporting a key from storage or a secure
element. For example, it may not be possible to directly
move the data from storage to the caller, so the implementation
will have to buffer the material temporarily (an issue if dynamic
memory allocation scheme is used). For a large key
this is more likely to return.
2019-09-04 11:31:14 +01:00
Adrian L. Shaw
15731c1422
Added PSA_ERROR_STORAGE_FAILURE to psa_export_key
...
It may be possible that an implementation does not
fetch key material until a command like
this is called and such an error may occur if an
off-chip secure storage dependency may have been wiped.
2019-09-04 11:31:14 +01:00
Adrian L. Shaw
23c006f45e
Added missing return codes to get_key_attributes
...
Note that PSA_ERROR_NOT_PERMITTED is not included
because I can't think of a scenario where you have
a valid key handle but aren't allowed to read the
attributes
2019-09-04 11:31:14 +01:00
Adrian L. Shaw
39797aa34c
Fix erroneous cut and paste
2019-09-04 11:30:18 +01:00
Adrian L. Shaw
fbf7f121f9
Separate return codes for unsupported and invalid algorithms
2019-09-04 11:30:18 +01:00
Adrian L. Shaw
66200c4e98
Add PSA_ERROR_STORAGE_FAILURE to psa_cipher_generate_iv
2019-09-04 11:30:18 +01:00
Adrian L. Shaw
f97c8523ee
Add CORRUPTION_DETECTED to psa_close_key
2019-09-04 11:30:18 +01:00
Adrian L. Shaw
6725757cec
Remove errorneous insert
2019-09-04 11:30:18 +01:00
Adrian L. Shaw
484ba88a0f
Add STORAGE_FAILURE everywhere + add missing codes
2019-09-04 11:30:18 +01:00
Adrian L. Shaw
dc5bf5c8e7
Add storage failure to (encrypt/decrypt)_setup
2019-09-04 11:30:18 +01:00
Adrian L. Shaw
d9e9024885
Add storage failure to psa_mac_verify_finish
2019-09-04 11:30:18 +01:00
Adrian L. Shaw
263223689f
Add storage failure to psa_mac_sign_finish
2019-09-04 11:30:18 +01:00
Adrian L. Shaw
8d0bcf27ec
Add PSA_ERROR_INVALID_ARGUMENT to psa_hash_compare
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
df3c7ac645
Remove trailing whitespace
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
d789dc13da
Added a few more return codes
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
3e41249417
Add PSA_ERROR_STORAGE_FAILURE to psa_aead_*_setup functions
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
71b33ffcf8
Add missing error codes to psa_generate_random
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
0d280b9873
Add missing error codes for psa_raw_key_agreement
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
a3f6ba5843
Added PSA_ERROR_STORAGE_FAILURE to psa_cipher_(encrypt/decrypt)
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
320659b54c
Added PSA_ERROR_BAD_STATE to functions with operations
...
In the case that the operation object has not been initialized
appropriately.
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
e970d65273
Added extra bad state case to psa_hash_setup
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
6e758c9bb8
Add missing return codes to psa_asymmetric_verify
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
27c121574b
Add missing parameters to psa_asymmetric_sign
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
d21c6e6566
Add missing return codes to psa_generate_key
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
c207ba376e
Added missing return codes to psa_aead_decrypt
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
96f31ada18
Add missing return codes to psa_asymmetric_decrypt
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
f961d5c9e6
Add missing return codes to psa_asymmetric_encrypt
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
53d90c5199
Only return PSA_ERROR_DOES_NOT_EXIST from psa_open_key
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
9770d0e0f8
Add PSA_ERROR_STORAGE_FAILURE to psa_mac_verify_setup
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
2409ba0429
Added PSA_ERROR_STORAGE_FAILURE to psa_mac_sign_setup
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
7563ed17ab
Remove PSA_ERROR_DOES_NOT_EXIST from psa_mac_sign_setup
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
d5ae06b1e3
Add PSA_ERROR_BUFFER_TOO_SMALL to psa_mac_compute
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
dec47b6f9d
Added the possibility of PSA_ERROR_BAD_STATE to all functions
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
fa591c44af
Added PSA_ERROR_STORAGE_FAILURE to psa_mac_compute
...
In case the key could not be retrieved from
storage.
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
f7d852a9d5
Added PSA_ERROR_BUFFER_TOO_SMALL to psa_hash_compute
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
60b0320af0
Add PSA_ERROR_STORAGE_FAILURE to psa_copy_key
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
398b3c27e0
Add PSA_ERROR_STORAGE_FAILURE to psa_export_public_key
...
The same reason that it is included in psa_export_key
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
e926e7370f
Removed PSA_DOES_NOT_EXIST from psa_export_public_key
...
The implementation should return PSA_ERROR_INVALID_HANDLE instead.
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
88c51adfc0
Added PSA_ERROR_INSUFFICIENT_MEMORY to psa_export_public_key
...
For the same reasons that psa_export_key can fail with this error
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
742084ea25
Removed PSA_ERROR_DOES_NOT_EXIST from psa_export_key
...
If the key doesn't exist by the time this call is made
then the handle is invalid,
which means that PSA_ERROR_INVALID_HANDLE should be
returned rather than "does not exist"
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
0542d595ce
Add PSA_ERROR_INSUFFICIENT_MEMORY to psa_export_key
...
It may be possible that the implementation runs out of
memory when exporting a key from storage or a secure
element. For example, it may not be possible to directly
move the data from storage to the caller, so the implementation
will have to buffer the material temporarily (an issue if dynamic
memory allocation scheme is used). For a large key
this is more likely to return.
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
89b7152ed0
Added PSA_ERROR_STORAGE_FAILURE to psa_export_key
...
It may be possible that an implementation does not
fetch key material until a command like
this is called and such an error may occur if an
off-chip secure storage dependency may have been wiped.
2019-09-04 11:30:17 +01:00
Adrian L. Shaw
29b64073af
Added missing return codes to get_key_attributes
...
Note that PSA_ERROR_NOT_PERMITTED is not included
because I can't think of a scenario where you have
a valid key handle but aren't allowed to read the
attributes
2019-09-04 11:30:17 +01:00
Jaeden Amero
95d8438138
crypto_platform: Fix typo
2019-09-04 10:11:45 +01:00
Jaeden Amero
98d5685b70
Merge pull request #232 from Patater/psa-crypto-api-1.0b3
...
Make fixes related to using Mbed Crypto as a service
2019-08-29 13:50:10 +01:00
Jaeden Amero
21db2a94a4
Merge pull request #229 from k-stachowiak/IOTCRYPT-791-remove-legacy-psa-key-derivation
...
Remove legacy psa key derivation
2019-08-29 11:31:23 +01:00
Jaeden Amero
6fa62a5b8f
psa: Use application key ID where necessary
...
Avoid compiler errors when MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER
is set by using the application ID type.
[Error] psa_crypto_slot_management.c@175,9: used type 'psa_key_id_t' (aka 'psa_key_file_id_t') where arithmetic or pointer type is required
2019-08-28 17:24:27 +01:00
Jaeden Amero
e3cdf284b2
psa: Adapt set_key_id() for when owner is included
2019-08-28 17:24:27 +01:00
Jaeden Amero
39f03fcf1a
psa: Add PSA_KEY_ID_INIT
...
A macro useful for initializing psa_key_id_t, whether
MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER is set or not. Without this
macro, it is necessary to know if
MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER as with it the key ID is
non-scalar and needs to be initialized with {0, 0}, and 0 otherwise when
key ID is scalar.
2019-08-28 17:24:27 +01:00
Jaeden Amero
f89cc69660
psa: Don't duplicate policy initializer
...
Use the PSA_KEY_POLICY_INIT macro in the definition of
PSA_CORE_KEY_ATTRIBUTES_INIT in order to avoid duplicating the key
policy initializer.
2019-08-28 17:24:27 +01:00
Jaeden Amero
c7529c910b
crypto_extra: Use const seed for entropy injection
...
The crypto.c implementation of psa_inject_entropy() didn't match the
declaration in crypto_extra.h. Use a const seed in both files.
2019-08-28 17:24:27 +01:00
Andrew Thoelke
8824daec6f
Editorial fixes.
2019-08-22 15:52:32 +01:00
Andrew Thoelke
3c2b80377b
Cross reference 'key handles' from INVALID_HANDLE
2019-08-22 15:52:32 +01:00
Andrew Thoelke
07f16b78ff
Update documentation for psa_destroy_key
...
Define the affect on handles to the key and on active multipart
operations.
2019-08-22 15:52:32 +01:00
Andrew Thoelke
3daba812d7
Update documentation for psa_close_key
...
Adjust the wording to permit multiple handles to a single key - closing
a handle does not necessarily release volatile memory associated with
the key, that only occurs when the last handle is closed.
2019-08-22 15:52:32 +01:00
Andrew Thoelke
9741b11440
Update psa_open_key documentation
...
- Describe the implementation defined behavior for opening multiple
keys, and provide a reference to the relevant section.
- Describe the use of INSUFFICENT_MEMORY error to indicate additional
implementation resource constaints.
- Clarify the distinction between DOES_NOT_EXIST and INVALID_HANDLE
error conditions.
2019-08-22 15:52:32 +01:00