f8e5b56ad8
Fix get_num_ops internal code.
...
Previously calling get_num_ops more than once would have ended up with ops
getting double counted, and not calling inbetween completes would have ended up
with ops getting missed. Fix this by moving this to where the work is actually
done, and add tests for double calls to get_num_ops().
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-19 18:55:10 +00:00
ac70ad6576
Fix coding style
...
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com >
2023-02-16 19:31:21 +01:00
d652dce9ea
Add failing test case (invalid signature) for zero-length data
...
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com >
2023-02-16 16:39:34 +00:00
fc64352253
Adjust position of empty line
...
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com >
2023-02-16 16:23:09 +00:00
c5874db5b0
Add test-case for signature over zero-length data
...
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com >
2023-02-16 16:14:46 +00:00
0af1b5367b
Remove some abbrevations from test descriptions.
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-16 12:15:39 +00:00
96b89b208a
Add comment to indicate non-PSA spec assertion.
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-16 12:15:39 +00:00
5686533ba2
Add warning to mbedtls_ecp_set_max_ops()
...
Using PSA interruptible interfaces will cause previously set values to be
overwritten.
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-16 12:15:39 +00:00
21c3951139
Add reference to mbedtls_ecp_set_max_ops() to docs
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-16 12:15:39 +00:00
f1743e2440
Add verify call to max ops tests
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-16 12:15:39 +00:00
ba70ad4944
Add safety for keys larger than we currently support.
...
Prevent buffer overflow with keys whos grp.nbits is greater than
PSA_VENDOR_ECC_MAX_CURVE_BITS.
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-16 12:15:39 +00:00
93d9ca83ea
Move num_ops ECP abstraction fully into internal implementation
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-16 12:15:39 +00:00
81b0b89a34
Clarify comments on subjectAltName types
...
Signed-off-by: Andrzej Kurek <andrzej.kurek@arm.com >
2023-02-16 06:55:10 -05:00
2c8e144ef6
Fix tests for 32bit
...
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com >
2023-02-16 10:25:08 +01:00
751e76bb04
Replace crypto engine
with crypto extension
...
Signed-off-by: Jerry Yu <jerry.h.yu@arm.com >
2023-02-16 10:48:15 +08:00
c86d45e8a1
Remove spurious incorrect comment
...
Comment originated from original version of this code, and the newer comment
which was added when it was pulled into a seperate function covers all cases.
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
2c9843f2a4
Make mbedtls_sa_ecp_load_public_part return psa_status_t
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
efebad0d67
Run extra complete in failure tests regardless.
...
We do not need to expect to fail, running another complete in either sign or
verify after successful completion should also return BAD_STATE.
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
7ef174b285
Correct insufficient memory return documentation.
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
a1c9409d88
Move structure init calls as early as possible
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
ebe225cf7b
Move num ops update to only point where work can be done.
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
53bb312054
Wipe output buffer even when INCOMPLETE is returned.
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
c569fc268f
Switch from nbits to pbits
...
Correct coordinate size is grp.nbits, not grp.pbits.
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
6d99f0c265
Fix errors in psa_wipe_output_buffer() doc comment.
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
fe9e77ff7a
Better formatting of include guard comments
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
0290a76fc2
Fix buffer overflow with hashes larger than key size.
...
Truncate input hashes to curve private key size as that is all that is required
for the internal implementation.
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
01885fa5e5
Fix include guards on auxiliary test function.
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
724bd25f4b
Fix missing mbedtls_mpi_free() on signing.
...
After moving the MPIs used to output from the operation into the complete
function, I failed to move the accompanying free as well.
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
c08112160a
Add comment to explain lack of driver dispatch
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
a4cb909fcd
Add max ops tests
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
76d671ad73
Split state tests into two functions
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
84329464d5
Replace allocated hash buffer with array
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
b830b35fb1
Shorten test descriptions.
...
Also mark some tests as being deterministic ECDSA where this was lacking.
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
e6145dc47f
Add documentation comment to internal abort functions
...
Explain the reasoning behind not clearing some variables.
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
de1114c883
Fix {sign|verify}_get_num_ops
...
Move the obfuscation of the internal library only returning a delta of ops done
into the driver wrapper, thus meaning driver wrapper and API call both return
absolute values of work done. Document the differences at the internal
implementation level.
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
939bd9485d
Move output buffer wiping code to seperate function.
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
1243f93cca
Fix build fails with non ECDSA / restartable builds
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
6f60037589
Move {min|max}_complete choice logic into function
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
eefe47292c
Move loading of public part of ECP into function
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
c9774411d4
Ensure that operation is put into error state if error occurs
...
If an error occurs, calling any function on the same operation should return
PSA_ERROR_BAD_STATE, and we were not honouring that for all errors. Add extra
failure tests to try and ratify this.
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
f9c91a7fb5
Store the hash, rather than the pointer
...
For sign and verify, the pointer passed in to the hash is not guaranteed to
remain valid inbetween calls, thus we need to store the hash in the
operation. Added a test to ensure this is the case.
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
0e9d6bd3f8
Replace MBEDTLS_ECP_DP_SECP384R1_ENABLED
...
With more appropriate PSA_WANT_ECC_SECP_R1_384
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
813f9cdcbb
Non ECDSA algorithms should return not supported
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
1bc59df92c
Rename curve_bytes to coordinate_bytes
...
Also remove unneeded instance from verify operation struct.
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
096abc4dc0
Remove incorrect copied comment
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
e17a8fd9fd
Remove unneeded warning from internal headers
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
ab7c5c8550
Change incorrect define for MAX_OPS_UNLIMITED
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
4ca521fcdb
Remove obsolete comments
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
4684525ae9
Remove unrequired mpis from sign operation struct
...
These are only used at the output stage.
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00
a3a8abadff
Fix operation initialisers if no algorithms defined
...
Signed-off-by: Paul Elliott <paul.elliott@arm.com >
2023-02-15 23:34:29 +00:00