Gilles Peskine
8605428dcf
Merge remote-tracking branch 'psa/pr/27' into feature-psa
2018-09-05 12:46:19 +03:00
Gilles Peskine
eebd7381bb
Rename asymmetric_encrypt to clarify what it does
...
Renamed to asymmetric_encrypt_decrypt
2018-09-05 12:44:18 +03:00
Gilles Peskine
c4def2f228
Add input length check in psa_asymmetric_decrypt
...
Remove output size check which is not needed here and was copypasta.
Add non-regression tests.
2018-09-05 12:44:18 +03:00
Gilles Peskine
61b91d4476
Normalize whitespace to Mbed TLS standards
...
Only whitespace changes in this commit.
2018-09-05 12:44:17 +03:00
Nir Sonnenschein
d708260de4
add key policy enforcement implementation
...
add checks that keys have been set for the correct usage for asymmetric
functions.
2018-09-05 12:44:17 +03:00
Nir Sonnenschein
d70bc48630
Fix test output size
...
1. set output size to safe value
2. set output size correctly
3. check correct length of actual output
2018-09-05 12:44:17 +03:00
Nir Sonnenschein
553b8f39e9
Fix test data
...
test data used incorrect clear-text length.
2018-09-05 12:44:17 +03:00
Nir Sonnenschein
72eca16afe
Fix scenario test names
...
1. make all names unique
2. fix spacing issue in names
2018-09-05 12:44:17 +03:00
Gilles Peskine
5b051bc608
Remove trailing whitespace
...
Only horizontal whitespace changes in this commit.
2018-09-05 12:44:12 +03:00
Gilles Peskine
6afe789d4c
Finish renaming around PSA_ALG_IS_RSA_PKCS1V15
...
Now the code compiles. Some OAEP and PSS macros may still need to be fixed.
2018-09-05 12:41:53 +03:00
Gilles Peskine
a1cac84e83
Move AEAD tests just after cipher
...
Always adding things at the end tends to create merge conflicts.
Adding in the middle in this way makes the order more logical in
addition to avoiding conflicts.
2018-09-05 12:41:53 +03:00
Nir Sonnenschein
0f3bdbddee
change RSA encryption tests compensate for random component in encryption.
2018-09-05 12:41:53 +03:00
Nir Sonnenschein
39e59144f6
added support for PKCSv1.5 signature verification and encryption/decryption and very basic tests.
2018-09-05 12:41:53 +03:00
Gilles Peskine
84861a95ca
Merge remote-tracking branch 'psa/psa-wrapper-apis-aead' into feature-psa
2018-09-05 12:41:52 +03:00
mohammad1603
3158564f08
add nonce as argument to the test function of encrypt/decrypt
2018-09-05 12:41:52 +03:00
mohammad1603
8ffd764e23
re-group test vectors and change vectors' names
2018-09-05 12:41:52 +03:00
mohammad1603
f7f72da769
add invalid signature test case
2018-09-05 12:41:52 +03:00
mohammad1603
c1ee32e1f4
add GCM test vectors encrypt/decrypt
2018-09-05 12:41:52 +03:00
mohammad1603
371a6e4067
add decrypt tests for CCM
2018-09-05 12:41:52 +03:00
mohammad1603
ed8dbeb434
add and fix data vectors
2018-09-05 12:41:52 +03:00
mohammad1603
f14394b25f
add policy checks
2018-09-05 12:41:52 +03:00
mohammad1603
0317945a37
disable uncompleted tests
2018-09-05 12:41:51 +03:00
mohammad1603
f2525ebda7
add encryption only test case
2018-09-05 12:41:51 +03:00
mohammad1603
4b26850a15
fix tests according to the code changes in error value
2018-09-05 12:41:51 +03:00
Gilles Peskine
ee652a344c
Fix psa_aead_decrypt to read the tag at the end of the ciphertext
2018-09-05 12:41:51 +03:00
mohammad1603
e797945ea9
initialize length variables and process decrypt only when encrypts passes
2018-09-05 12:38:18 +03:00
mohammad1603
9b07132591
remove compilation warnings
2018-09-05 12:38:18 +03:00
mohammad1603
f07db2e919
Add more test scenario for GCM and failure cases
2018-09-05 12:38:18 +03:00
mohammad1603
d973472a37
Fix loop index and output size parameter value
2018-09-05 12:38:18 +03:00
mohammad1603
bdd892aef5
Add test scenario
2018-09-05 12:38:18 +03:00
mohammad1603
091e73b22b
Fix usage of TEST_ASSERT
...
Add missing == PSA_SUCCESS in TEST_ASSERT usage
2018-09-05 12:38:18 +03:00
mohammad1603
9112693930
aead test scenario
2018-09-05 12:38:18 +03:00
Gilles Peskine
3aa8efb230
Merge remote-tracking branch 'psa/psa-wrapper-apis-march-12' into feature-psa
2018-09-05 12:38:17 +03:00
Gilles Peskine
5809ce7bd6
Add PKCS#7 good decryption test cases
2018-09-05 12:38:17 +03:00
Gilles Peskine
42b8aec792
Correct some bad test data
...
* PKCS#7 padding always adds at least one byte of padding, so test
data with plaintext length = ciphertext length could not have been
correct.
* CTR has plaintext length = ciphertext length, so test data with
differing lengths could not have been correct.
2018-09-05 12:38:17 +03:00
Gilles Peskine
a7ec95f1ea
Cipher tests: calculate and verify the actual output size
2018-09-05 12:38:17 +03:00
Gilles Peskine
50e586b691
We don't need _test_ in test function names
...
Also fix typo multpart -> multipart
2018-09-05 12:38:17 +03:00
Gilles Peskine
048b7f0802
Rename some variables to make the code easier to read
...
In cipher_test_verify_output_multpart, tweak the ways chunk sizes are
added in order to get rid of the variable temp. In other functions,
this commit does not change the logic at all.
2018-09-05 12:38:17 +03:00
Moran Peker
8172b87a63
add tests cases
2018-09-05 12:38:17 +03:00
Moran Peker
a9c3a658be
tests fix + max_output_size
2018-09-05 12:38:17 +03:00
Moran Peker
9e3aa62c13
change variable naming
2018-09-05 12:38:17 +03:00
Gilles Peskine
17ddaa27b0
Correct and improve cipher test case descriptions
2018-09-05 12:38:17 +03:00
Gilles Peskine
9cf78d301d
Fix some test case dependencies on cipher modes
2018-09-05 12:38:17 +03:00
Gilles Peskine
4ca9c3f9a1
Fix whitespace issues
...
Only whitespace changes.
* Remove tabs.
* Remove trailing whitespace.
* Correct some misindented lines.
* Normalize whitespace around some punctuation.
* Split some lines to avoid going over 80 columns.
2018-09-05 12:38:17 +03:00
Moran Peker
7f87850fc4
fix and add tests case + fix for padding mode
2018-09-05 12:38:17 +03:00
Moran Peker
ded844092e
fix and add tests case + fix for padding mode
2018-09-05 12:38:17 +03:00
Gilles Peskine
5cbb4c8508
Correct some test case descriptions
2018-09-05 12:38:17 +03:00
Gilles Peskine
7268afc29e
Reordered cipher tests to be just after MAC tests
2018-09-05 12:38:15 +03:00
Gilles Peskine
691dfb3e3a
Whitespce normalization
...
No semantic change.
2018-09-05 12:14:29 +03:00
Moran Peker
5eb6e9ed60
PSA_ALG_CBC_BASE -> SA_ALG_CBC_BASE | PSA_ALG_BLOCK_CIPHER_PAD_NONE
2018-09-05 12:14:29 +03:00
Gilles Peskine
d8100245d8
Remove cipher_test_positive, duplicated as cipher_test_encrypt
...
cipher_test_positive was never compiled due to a syntax error in the
BEGIN_CASE magic comment. It has now been duplicated as
cipher_test_encrypt. Remove the copy that was never compiled.
2018-09-05 12:14:29 +03:00
Moran Peker
7691fb7b6b
add new test scenario (cipher_test_encrypt_multipart)
2018-09-05 12:14:29 +03:00
Moran Peker
96cc00a857
add missing tests function
2018-09-05 12:14:28 +03:00
Moran Peker
f55e804e07
adjust indentation per Mbed TLS standards
2018-09-05 12:14:28 +03:00
Moran Peker
0071b873a3
add missing parameter output_size on psa_cipher_finish
2018-09-05 12:14:28 +03:00
mohammad1603
b152d4d8b6
add test scenarios to decrypt and encrypt input and compare with given output
2018-09-05 12:14:28 +03:00
Moran Peker
e1210dcac3
remove unused parameter in psa_cipher_finish.
2018-09-05 12:14:28 +03:00
Moran Peker
3205a6592b
tests fix
2018-09-05 12:14:28 +03:00
mohammad1603
8481e74ecc
CR fixes
...
more fixes
Compilation fixes
Compilation fixes for PSA crypto code and tests
2018-09-05 12:14:28 +03:00
mohammad1603
e6b67a1e78
Fix parameters in test suite
...
Fix test function signature in test suite
2018-09-05 12:13:23 +03:00
Gilles Peskine
d1e8e41737
Adapt older import_export test data to the new function signature
2018-09-05 12:13:23 +03:00
mohammad1603
d7d7ba5749
add positive test scenarios
2018-09-05 12:13:23 +03:00
Gilles Peskine
5100318a92
Merge pull request #18 from ARMmbed/psa-wrapper-apis-export-publickey
...
Export public key implementation (#18 )
2018-09-05 12:13:23 +03:00
Moran Peker
f709f4a356
move import_export_public_key func place
2018-09-05 12:13:23 +03:00
Moran Peker
9bc76953ae
export->export-public + move tests case
2018-09-05 12:13:23 +03:00
Moran Peker
ce1b23a68c
PSA_ALG_CBC_BASE -> PSA_ALG_CBC_BASE | PSA_ALG_BLOCK_CIPHER_PAD_NONE
...
+ update tests description
2018-09-05 12:13:23 +03:00
Moran Peker
a964a8f9b0
add non-regression tests for export public/non public key
2018-09-05 12:13:23 +03:00
Gilles Peskine
785fd55a39
Whitespace fixes; removed redundant parentheses
...
No semantic change.
2018-09-05 12:13:23 +03:00
Gilles Peskine
c425e87af7
Add cast to satisfy gcc -Wsign-compare
2018-09-05 12:13:23 +03:00
Moran Peker
b34879b61a
fix import_export_public_key test to use policy
2018-09-05 12:13:23 +03:00
Moran Peker
338a0cf569
fix import_export_public_key test
2018-09-05 12:13:23 +03:00
Moran Peker
4ff99f36a7
change test case descriptions + add newline of test_suite_psa_crypto.function
2018-09-05 12:13:22 +03:00
Moran Peker
b4d0ddd2d3
psa_export_public_key
2018-09-05 12:13:20 +03:00
Moran Peker
dd4ea38d58
export public key
2018-09-05 12:10:47 +03:00
itayzafrir
5c7533923a
ECDSA sign and verify implementation and tests
...
ECDSA sign and verify implementation and tests
2018-09-05 12:10:47 +03:00
Gilles Peskine
a0655c3501
Merge remote-tracking branch 'psa/pr/13' into feature-psa
...
Conflicts:
library/psa_crypto.c
tests/suites/test_suite_psa_crypto.data
tests/suites/test_suite_psa_crypto.function
All the conflicts are concurrent additions where the order doesn't
matter. I put the code from feature-psa (key policy) before the code
from PR #13 (key lifetime).
2018-09-05 12:10:43 +03:00
mohammad1603
5d7ec2033d
fix key lifetime set implementation , tests accordingly
2018-09-05 12:01:37 +03:00
mohammad1603
ba178511f4
Remove unused and duplicated erros, fix documentation and tests
...
Remove unused and duplicated erros, fix documentation and tests
2018-09-05 12:01:37 +03:00
mohammad1603
060ad8ac34
Compilation and tests fixes
2018-09-05 12:01:37 +03:00
mohammad1603
804cd71bf8
initial key lifetime implementation and tests
2018-09-05 12:01:37 +03:00
Gilles Peskine
c63b6ba754
Merge remote-tracking branch 'psa/pr/14' into feature-psa
...
Conflict resolution:
* `tests/suites/test_suite_psa_crypto.data`: in the new tests from PR #14 ,
rename `PSA_ALG_RSA_PKCS1V15_RAW` to `PSA_ALG_RSA_PKCS1V15_SIGN_RAW` as
was done in PR #15 in the other branch.
2018-09-05 12:01:34 +03:00
mohammad1603
d926b88085
Fix Policy enforcement sign test
...
Fix Policy sign scenario for enforcement test
2018-09-05 11:53:26 +03:00
mohammad1603
6df908f234
Add static internal MAC finish function
...
add new psa_mac_finish_internal() to be called by psa_mac_finish() and
psa_mac_verify() in order to be able to check key usage separatly.
2018-09-05 11:53:26 +03:00
mohammad1603
4eed757901
add new test scenarios
2018-09-05 11:53:26 +03:00
mohammad1603
a97cb8c303
Add calls for set policy in export/sign tests
...
Add calls for set policy in export/sign tests
2018-09-05 11:53:26 +03:00
Gilles Peskine
a59262338a
Rename PKCS1V15 to PKCS1V15_SIGN
...
There's PKCS1V15_CRYPT as well (to be added soon).
2018-09-05 11:53:26 +03:00
mohammad1603
8cc1ceec3e
Key Policy APIs implementation
2018-09-05 11:53:26 +03:00
Gilles Peskine
40f68b9863
Use unhexify_alloc where applicable
2018-09-05 11:53:25 +03:00
Gilles Peskine
8c9def3e7f
PSA: Implement MAC functions
...
Implement psa_mac_start, psa_mac_update and psa_mac_final.
Implement HMAC anc CMAC.
Smoke tests.
2018-09-05 11:53:25 +03:00
Gilles Peskine
9ef733faa0
Implement hash functions
...
New header file crypto_struct.h. The main file crypto.sh declares
structures which are implementation-defined. These structures must be
defined in crypto_struct.h, which is included at the end so that the
structures can use types defined in crypto.h.
Implement psa_hash_start, psa_hash_update and psa_hash_final. This
should work for all hash algorithms supported by Mbed TLS, but has
only been smoke-tested for SHA-256, and only in the nominal case.
2018-09-05 11:53:25 +03:00
Gilles Peskine
93aa0334d9
PSA asymmetric signature: set *signature_length = 0 on failure
2018-09-05 11:53:24 +03:00
Gilles Peskine
0189e7512d
PSA crypto: PSA_ASYMMETRIC_SIGN_OUTPUT_SIZE macro
...
Test it for RSA.
2018-09-05 11:53:24 +03:00
Gilles Peskine
20035e3579
PSA crypto: asymmetric signature (RSA PKCS#1v1.5 only)
...
Define hash algorithms and RSA signature algorithms.
New function psa_asymmetric_sign.
Implement psa_asymmetric_sign for RSA PKCS#1 v1.5.
2018-09-05 11:53:24 +03:00
Gilles Peskine
c66ea6a921
PSA key import: support RSA public keys
...
Use different key types for private keys and public keys.
2018-09-05 11:53:24 +03:00
Gilles Peskine
969ac726d9
PSA RSA key import: don't rely on pk so much
...
Don't use the pk module except as required for pkparse/pkwrite. The
PSA crypto layer is meant to work alongside pk, not on top of it.
Fix the compile-time dependencies on RSA/ECP handling in
psa_export_key, psa_destroy_key and psa_get_key_information.
2018-09-05 11:53:24 +03:00
Gilles Peskine
2f9c4dc5ad
Add key management functions
...
Define psa_key_type_t and a first stab at a few values.
New functions psa_import_key, psa_export_key, psa_destroy_key,
psa_get_key_information. Implement them for raw data and RSA.
Under the hood, create an in-memory, fixed-size keystore with room
for MBEDTLS_PSA_KEY_SLOT_COUNT - 1 keys.
2018-09-05 11:53:24 +03:00
Gilles Peskine
1d26709dbd
New function mbedtls_rsa_get_bitlen
...
Add a new function mbedtls_rsa_get_bitlen which returns the RSA key
size, i.e. the bit size of the modulus. In the pk module, call
mbedtls_rsa_get_bitlen instead of mbedtls_rsa_get_len, which gave the
wrong result for key sizes that are not a multiple of 8.
This commit adds one non-regression test in the pk suite. More tests
are needed for RSA key sizes that are a multiple of 8.
This commit does not address RSA alternative implementations, which
only provide an interface that return the modulus size in bytes.
2018-09-05 11:53:24 +03:00
Gilles Peskine
e59236fc17
Add PSA crypto module
...
New module psa_crypto.c (MBEDTLS_PSA_CRYPTO_C):
Platform Security Architecture compatibility layer on top of
libmedcrypto.
Implement psa_crypto_init function which sets up a RNG.
Add a mbedtls_psa_crypto_free function which deinitializes the
library.
Define a first batch of error codes.
2018-09-05 10:59:00 +03:00
Simon Butcher
4d075cd7d0
Update library version number to 2.13.0
2018-08-31 15:59:10 +01:00
Simon Butcher
6f032a60c9
Merge remote-tracking branch 'public/pr/1963' into development
2018-08-28 10:21:06 +01:00
Ron Eldor
6b13afe1a5
Fix indentation
...
Fix indentation in the test.
2018-08-21 16:11:13 +03:00
Ron Eldor
9434713368
Move the assertion
...
Move the assertion for checking the heap allocatino succeeded.
2018-08-20 14:59:33 +03:00
Mohammad Azim Khan
2c069dfad3
Fix typo in test_suite_entropy.function
2018-08-15 13:55:37 +01:00
Ron Eldor
446227a1bd
Enhance nist_kw with some NULL buffers tests
...
Enhance the nist_kw test suite, with setting zero length input\output
buffers. Resolves #1882 .
2018-08-13 14:46:45 +03:00
Mohammad Azim Khan
5cb7017077
Less obscure test suites template
2018-08-06 11:42:56 +01:00
Mohammad Azim Khan
d2d0112ca8
Style fixes
2018-08-06 11:42:56 +01:00
Azim Khan
8d686bfdb1
Incorporated code revoew comments.
2018-08-06 11:42:56 +01:00
Azim Khan
5fcca46a3a
Rename HexParam_t -> data_t for consistent coding style
2018-08-06 11:42:06 +01:00
Azim Khan
62a5d7d65a
Document status/error codes in helper.function
2018-08-06 11:42:06 +01:00
Mohammad Azim Khan
cfd834274b
Use integer instead of string as test result
2018-08-06 11:42:06 +01:00
Azim Khan
0fa3504a77
Add missing MSVC typedefs
2018-08-06 11:40:58 +01:00
Mohammad Azim Khan
b73159d639
Remove white spaces caught by check-files.py
2018-08-06 11:40:58 +01:00
Mohammad Azim Khan
ddde34c698
Remove git conflict marker from test_suite_timing.function
2018-08-06 11:40:58 +01:00
Mohammad Azim Khan
76135345c8
Fix gcc-7 -Wformat-truncation warning
...
Function test_snprintf() is called by run_test_snprintf() with constant test
data. It gets inlined and is subjected to snprintf format truncation checks
introduced by -Wformat-truncation in gcc-7. -Wformat-truncation is turned
On by -Wall and other similar options. It results in error with -Werror.
-Wformat-truncation makes tests performed by run_test_snprintf() redundant
on gcc. But they are still relevant for other compilers. This commit prevents
inlining of test_snprintf() to avoid gcc compile time checks.
2018-08-06 11:40:58 +01:00
Azim Khan
05d83fa406
Put parentheses around macro arguments
2018-08-06 11:40:58 +01:00
Azim Khan
36e5fac0fb
Rephrase confusing function description
2018-08-06 11:40:58 +01:00
Azim Khan
317efe85e1
Adapt new test gcm_bad_parameters() to on target testing changes
2018-08-06 11:40:58 +01:00
Mohammad Azim Khan
9540261a76
Incorporated code review comments
2018-08-06 11:40:58 +01:00
Azim Khan
b1c2d0f946
Use switch instead if if-else for dependency and expression checks.
2018-08-06 11:40:58 +01:00
Azim Khan
d61a4384d8
incorporate code review comment in embedded_test.function
2018-08-06 11:40:58 +01:00
Azim Khan
13c6bfbc2a
Gaurd test suite headers with suite dependency
...
Test suite header code was not gaurded with test suite dependency.
But some test suites have additional code in the headers section.
Variables in that section become unused if suite functions are
gaurded. Hence gaurded the headers section.
But this changed cuased missing types in get_expression() function
that was originally accessing types defined through suite headers.
Hence had to gaurd expressions code as well.
Gaurding expressions does not allow parsing the parameters when
some types or hash defs are gaurded. Hence added function
check_test() to check if test is allowed or not before parsing the
parameters.
2018-08-06 11:40:57 +01:00
Mohammad Azim Khan
cf32c45bfd
Add missing headers and fix name change issues
2018-08-06 11:40:57 +01:00
Azim Khan
1de892b85f
Update code as old template and generator is replaced with new one
2018-08-06 11:40:57 +01:00
Azim Khan
191e904bb2
Replace old template and code generator with new ones. Keep names
2018-08-06 11:40:57 +01:00
Azim Khan
d30ca130e8
Combine hex parameters in a struct
2018-08-06 11:40:57 +01:00
Azim Khan
5cfc06832e
Fix name conflict in function params after hexify/unhexify change
2018-08-06 11:40:57 +01:00
Azim Khan
3e5d0004ab
Update Greentea API header
2018-08-06 11:40:57 +01:00
Azim Khan
47b40609de
Fix RSA test suite bugged by hexify/unhexify change
2018-08-06 11:40:57 +01:00
Azim Khan
392267a7c8
Fix missing data in the RSA test vectors file
2018-08-06 11:40:57 +01:00
Azim Khan
b3a103c499
Put else in it's own line
2018-08-06 11:40:57 +01:00
Azim Khan
d59391afcd
Add support for sending hex parameters
2018-08-06 11:40:57 +01:00
Azim Khan
46c9b1f196
Fix test functions and data after moving hexify/unhexify out
...
- Separate string and hex parameter as unhexify is moved out of the function. It's input should only be hex.
- Fix test mbedtls_ccm_encrypt_and_tag that grows input message buffer with tag
- Add missing expected length parameter in ECP TLS tests
- Add deleted TEST_ASSERT and mbedtls calls that got removed in script based code generation
2018-08-06 11:40:57 +01:00
Azim Khan
184447e7e4
Add proper handling of hex data
2018-08-06 11:40:57 +01:00
Azim Khan
f1aaec9888
Intermediate hexify out change
2018-08-06 11:40:57 +01:00
Azim Khan
9079170f6e
Adapt code for scripting out hexify/unhexify code
2018-08-06 11:40:57 +01:00
Azim Khan
3499a9e41b
Add hex comparison function
2018-08-06 11:40:57 +01:00
Azim Khan
0574632b30
Update Greentea client API calls
2018-08-06 11:40:57 +01:00
Azim Khan
ee6c0189df
Unify test setup errors for sending to host
2018-08-06 11:40:57 +01:00
Azim Khan
ec024483ae
Fix line no. directive
2018-08-06 11:40:57 +01:00
Mohammad Azim Khan
67735d540b
Fix name conflict and implicit use of functions from string.h
2018-08-06 11:40:57 +01:00
Mohammad Azim Khan
fff4904e6b
mbed-os test code generator
2018-08-06 11:40:57 +01:00
Simon Butcher
5f26b11ffa
Change test dependencies to RC4 from DES
...
Some tests were dependent on DES yet actually used RC4. Likely a copy and paste
error. This change fixes them.
2018-07-27 17:15:39 +01:00
Jaeden Amero
193c86425e
Update version to 2.12.0
2018-07-25 15:42:26 +01:00
Simon Butcher
2c92949e0a
Merge remote-tracking branch 'public/pr/1198' into development
2018-07-24 17:20:17 +01:00
Ron Eldor
8dd03cd1aa
Add tests for the nist key wrapping feature
...
Add tests for Key wrapping.
Test vectors taken from the standards.
2018-07-24 16:43:20 +01:00
Simon Butcher
be685ba337
Merge remote-tracking branch 'public/pr/1836' into development
2018-07-19 20:01:23 +01:00
Simon Butcher
727325baa7
Merge remote-tracking branch 'public/pr/1788' into development
2018-07-10 14:54:52 +01:00
Jaeden Amero
cdb5cc570c
tests: dhm: Rename Hallman to Hellman
...
Fix typo of Diffie-Hallman to Diffie-Hellman.
2018-07-06 13:20:09 +01:00
k-stachowiak
b056dd86d0
Remove a redundant dependency clause
2018-06-28 12:58:56 +02:00
k-stachowiak
7972334090
Enable ARIA self test in the unit testing
2018-06-25 15:29:52 +02:00