platform/core/security/yaca.git
8 years agoRevert "Fix svace defects" 65/87865/2
Kyungwook Tak [Mon, 12 Sep 2016 01:30:53 +0000 (10:30 +0900)]
Revert "Fix svace defects"

This reverts commit 60428c2b10ccec13afe901d21b87ac949ffafa4c.

2 Svace defects (141053, 142079) is handled as `won't fix`, defended by
assert() checking and logically

Change-Id: I4d29b8e0c430929a57767293ec9c0d442e2f44e4
Signed-off-by: Kyungwook Tak <k.tak@samsung.com>
8 years agoGCM and CCM fixes. 57/86757/7
Dariusz Michaluk [Fri, 2 Sep 2016 13:58:07 +0000 (15:58 +0200)]
GCM and CCM fixes.

Change-Id: I0ddb50041c871bac78f44f34844df2259618a01f

8 years agoFix OpenSSL 1.1 issues 72/87372/3
Krzysztof Jackiewicz [Wed, 7 Sep 2016 14:21:18 +0000 (16:21 +0200)]
Fix OpenSSL 1.1 issues

- 3DES CFB1 implementation is fixed but function that checks buffer overlapping
  ignores the input data length unit resulting in an error. It's impossible to
  create a code that works with both version so #if was used.
- OpenSSL 1.1's EVP_CIPHER_CTX_flags() gets flags from EVP_CIPHER instead of
  EVP_CIPHER_CTX. Call replaced with EVP_CIPHER_CTX_test_flags().

Change-Id: Ic43fd9e02b982bc767259ad3a818314a6e319eb7

8 years agoAdapt YACA to work with OpenSSL 1.1 preserving 1.0 compatibility 65/86965/9
Lukasz Pawelczyk [Mon, 5 Sep 2016 16:50:36 +0000 (18:50 +0200)]
Adapt YACA to work with OpenSSL 1.1 preserving 1.0 compatibility

Change-Id: I27e199659666d2d87b17fcb9882b0e70f751c628

8 years agoUse getrandom(2) for CSPRNG instead of OpenSSL's one 03/85703/8
Lukasz Pawelczyk [Fri, 26 Aug 2016 14:29:26 +0000 (16:29 +0200)]
Use getrandom(2) for CSPRNG instead of OpenSSL's one

In case the getrandom syscall is not available use /dev/urandom directly.

Change-Id: Id1f6889fcb0db0fdd8fefbe13f4fd72c0a8fd5b9

8 years agoFix svace defects 29/87229/1
Kyungwook Tak [Wed, 7 Sep 2016 05:56:45 +0000 (14:56 +0900)]
Fix svace defects

using assert() to check null is good for development
but if it is used partly (using both of assert() and if condition)
SVACE system detects it as defect because to checking it by if condition
means there is probability that it could be null.
So we should choose only one of them(To use assert() or if condition) on
entire of code.

Change-Id: I0da13027c650e11f88f5b06fa35d8f86d43ee879
Signed-off-by: Kyungwook Tak <k.tak@samsung.com>
8 years agoUse proper input length in encryption examples 03/86303/1 accepted/tizen/common/20160901.143419 accepted/tizen/ivi/20160901.065526 accepted/tizen/mobile/20160901.065440 accepted/tizen/tv/20160901.065447 accepted/tizen/wearable/20160901.065507 submit/tizen/20160901.024233
Krzysztof Jackiewicz [Wed, 31 Aug 2016 11:11:43 +0000 (13:11 +0200)]
Use proper input length in encryption examples

Change-Id: I0a20faf41bf2b5e7670baf6100742f851b3420ff

8 years agoConvert yaca_padding_e to value acceptable by OpenSSL 67/86267/1
Krzysztof Jackiewicz [Wed, 31 Aug 2016 09:21:43 +0000 (11:21 +0200)]
Convert yaca_padding_e to value acceptable by OpenSSL

Change-Id: I771de0745f9779c6058199e7edc0edc858dd6d3c

8 years agoFix coding style. 17/86117/3
Dariusz Michaluk [Tue, 30 Aug 2016 13:56:45 +0000 (15:56 +0200)]
Fix coding style.

Change-Id: I7e40fdd1b08c7d73c607971d87565d4c6d122842

8 years agoFix yaca_key_import() memory leak. 52/86052/3
Dariusz Michaluk [Tue, 30 Aug 2016 08:45:21 +0000 (10:45 +0200)]
Fix yaca_key_import() memory leak.

Change-Id: Iec2ee8d01922e0e4b63fc6963071de3eff0b6979

8 years agoAllow 1B longer input in PKCS1 padding 25/86125/3
Krzysztof Jackiewicz [Tue, 30 Aug 2016 14:15:45 +0000 (16:15 +0200)]
Allow 1B longer input in PKCS1 padding

OpenSSL documentation states that for PKCS1 padding the length of encrypted
input must be less than RSA_size(rsa) - 11. In fact the code itself allows less
or equal input length. Also this is what PKCS #1 standard says.

Change-Id: Iab7c7e4b3c3c3c64854f9c9ec67f18f2d7c0b01c

8 years agoHandle wrong padding in RSA public decryption 24/86124/3
Krzysztof Jackiewicz [Tue, 30 Aug 2016 13:16:16 +0000 (15:16 +0200)]
Handle wrong padding in RSA public decryption

Change-Id: Iac3c37d2005bfae06d80c83fe7820436eda28ac5

8 years agoKey wrapping memory optimization. 30/85330/8
Dariusz Michaluk [Wed, 24 Aug 2016 15:20:43 +0000 (17:20 +0200)]
Key wrapping memory optimization.

Change-Id: Ibf49fa12fc7f89554e5c00a0e84d0f832e686fcb

8 years agoFix TYPO:parammeters 47/86047/1
Dongsun Lee [Tue, 30 Aug 2016 08:58:05 +0000 (17:58 +0900)]
Fix TYPO:parammeters

Change-Id: Iee2e8ab019ce5412ad6f7b230a065d553db19847
Signed-off-by: Dongsun Lee <ds73.lee@samsung.com>
8 years agoFix symmetric key handling in seal/open. 02/85102/7
Dariusz Michaluk [Tue, 23 Aug 2016 15:13:27 +0000 (17:13 +0200)]
Fix symmetric key handling in seal/open.

- generate DES key if algorithm is DES,
- use sym_key_bit_len instead of default key length.

Change-Id: Iab6b16af5e60e932aee1d807cf1edc94c99cffbb

8 years agoFix: Always use yaca_cleanup() before exit. 06/85706/3
Dariusz Michaluk [Fri, 26 Aug 2016 14:35:24 +0000 (16:35 +0200)]
Fix: Always use yaca_cleanup() before exit.

Change-Id: Ie82636d54df5acd3397917d9bec07d530f662a05

8 years agoFix yaca_sign_initialize_hmac/cmac memory leak. 31/85531/4
Dariusz Michaluk [Thu, 25 Aug 2016 12:05:56 +0000 (14:05 +0200)]
Fix yaca_sign_initialize_hmac/cmac memory leak.

Fix sign example indentation.

Change-Id: I65664d815ebff5eb5861d24a649ea94c9910915f

8 years agos/INTERNAL_KEYLEN/KEYLEN_COMPONENT/ in the "private" keylen defines 05/85905/6
Lukasz Pawelczyk [Mon, 29 Aug 2016 11:45:18 +0000 (13:45 +0200)]
s/INTERNAL_KEYLEN/KEYLEN_COMPONENT/ in the "private" keylen defines

Change-Id: I990e569bdb85a862d7aca98b2afa114adb6f383c

8 years agoUnify argument naming and description 22/84622/4
Krzysztof Jackiewicz [Mon, 29 Aug 2016 14:19:44 +0000 (16:19 +0200)]
Unify argument naming and description

In digest, sign & simple API:
- data -> message,
- data_len -> message_len,
- data to be verified -> message,
- data to be signed -> message to be signed,
- signature -> message signature to be verified (verify only)
- NULL input allowed

Change-Id: Ib8283fe13e44f1be261b90327f3034a626587d39

8 years agoHandle RSA padding errors 17/84417/18
Krzysztof Jackiewicz [Thu, 18 Aug 2016 09:16:02 +0000 (11:16 +0200)]
Handle RSA padding errors

Change-Id: Ie722ad2ba6c70b4a3ed799ffc8057e0610abc1d4

8 years agoRSA asymmetric encryption example 13/84413/15
Krzysztof Jackiewicz [Wed, 17 Aug 2016 11:15:23 +0000 (13:15 +0200)]
RSA asymmetric encryption example

Change-Id: I7969cf38e05c3551a9497953fb30b8a2c90c5555

8 years agoRSA API implementation 58/83558/15
Krzysztof Jackiewicz [Thu, 11 Aug 2016 13:08:10 +0000 (15:08 +0200)]
RSA API implementation

Change-Id: I343ca08b83076631c6277a057ff6567fe2e866f1

8 years agoRSA low-level API 05/78405/19
Krzysztof Jackiewicz [Mon, 29 Aug 2016 13:45:45 +0000 (15:45 +0200)]
RSA low-level API

Change-Id: Id0d838d97f613d1c9caf1231efdd961c370f2aab

8 years agoAdd possibility to restore default encrypt/decrypt padding. 30/85530/4
Dariusz Michaluk [Thu, 25 Aug 2016 14:09:11 +0000 (16:09 +0200)]
Add possibility to restore default encrypt/decrypt padding.

Introduce new padding type: YACA_PADDING_PKCS7.

Change-Id: I841444c63bfca7a523a2a8df302c8aa38b81e59a

8 years agoEffective key length support in RC2. 82/85082/7
Dariusz Michaluk [Mon, 22 Aug 2016 14:49:39 +0000 (16:49 +0200)]
Effective key length support in RC2.

Change-Id: I82f023d3f620336e823738f187d8db4aef09fb61

8 years agoFix: Allow empty input/output in simple encrypt/decrypt. 75/84375/12
Dariusz Michaluk [Thu, 18 Aug 2016 08:35:04 +0000 (10:35 +0200)]
Fix: Allow empty input/output in simple encrypt/decrypt.

Change-Id: I44663a1ea50982cc641b30df8a3f4959d6ce4c36

8 years agoFix: Check (un)wrapped key length.
Dariusz Michaluk [Wed, 17 Aug 2016 15:23:51 +0000 (17:23 +0200)]
Fix: Check (un)wrapped key length.

Change-Id: I6d664586637f94a0bd5f442f14b7a590a0580d8f

8 years agoUnify simple key param names, EC for sign/verify 41/84841/3
Lukasz Pawelczyk [Mon, 22 Aug 2016 14:12:16 +0000 (16:12 +0200)]
Unify simple key param names, EC for sign/verify

Change-Id: If812d71791c18e7bc798c71a5335f0c498c35ea1

8 years agoFix: Key wrapping, block finalizing before update. 92/84792/7
Dariusz Michaluk [Mon, 22 Aug 2016 08:55:12 +0000 (10:55 +0200)]
Fix: Key wrapping, block finalizing before update.

Change-Id: I8bb6f12c32c7015a6f393f2a76b7884e50c689e9

8 years agoUnify key and IV naming and length unit. 48/85248/4
Dariusz Michaluk [Wed, 24 Aug 2016 08:38:58 +0000 (10:38 +0200)]
Unify key and IV naming and length unit.

Change-Id: Iff2bab3a9b7a59c224cff6007a6edda9e30c2d71

8 years agoRemoved rsa padding TODO 16/84416/4
Krzysztof Jackiewicz [Thu, 18 Aug 2016 06:29:39 +0000 (08:29 +0200)]
Removed rsa padding TODO

RSA_NO_PADDING can be used when message length exactly matches the length of
the asymmetric key. As for now no digest can produce matching output so only
plain asymmetric operation without digest supports it. RSA_SSLV23_PADDING can
be used in asymmetric encryption only.

Change-Id: I9f4b84086bf150994f5eb5cc270203cf8834b683

8 years agoAdd GCM tag length verification 53/84453/2
Krzysztof Jackiewicz [Thu, 18 Aug 2016 14:27:52 +0000 (16:27 +0200)]
Add GCM tag length verification

Change-Id: If3b1c5e33d9a93a2120e8aeddfca024f05355321

8 years agoAdd missing ERROR_DUMP() for EVP_PKEY_size() 40/84240/1
Krzysztof Jackiewicz [Wed, 17 Aug 2016 12:29:47 +0000 (14:29 +0200)]
Add missing ERROR_DUMP() for EVP_PKEY_size()

Change-Id: Ie03a37e9ad91cc4b3876d177b1a45593598f645b

8 years agoHandle encryption API call order 06/83506/4
Krzysztof Jackiewicz [Wed, 10 Aug 2016 08:44:44 +0000 (10:44 +0200)]
Handle encryption API call order

Encryption, decryption, seal & open API functions have to be called in specific
order. This commit introduces state change matrices that are used to verify the
correct call order.

Change-Id: I99029d55bb26af9ec34d7297548c331fbbc41522

8 years agoRemove debug function from examples. 83/83883/4
Dariusz Michaluk [Fri, 12 Aug 2016 12:51:55 +0000 (14:51 +0200)]
Remove debug function from examples.

Remove outdated TODO.

Change-Id: I9cc610efec27fd84a95c1bade1b7b59892e781aa

8 years agoFix: Simple API doesn't support GCM and CCM. 74/83874/4
Dariusz Michaluk [Fri, 12 Aug 2016 10:14:40 +0000 (12:14 +0200)]
Fix: Simple API doesn't support GCM and CCM.

Change-Id: Ief86239a05aacb5671354f3bb11208afea562c80

8 years agoFix: seal/open sym_key_bit_len must be dividable by 8 69/83669/5
Dariusz Michaluk [Thu, 11 Aug 2016 14:31:01 +0000 (16:31 +0200)]
Fix: seal/open sym_key_bit_len must be dividable by 8

Fix documentation.

Change-Id: I8a4ad8bb9bcd91f17c8318cb5a0db744cbed1c34

8 years agoReorganize API order in header files. 37/83537/3
Dariusz Michaluk [Thu, 11 Aug 2016 12:21:41 +0000 (14:21 +0200)]
Reorganize API order in header files.

Change-Id: I07bc47cfc3b08e157fe9200e2815957aec14713a

8 years agoEC keys can be used for sign/verify now, update docs 76/83876/2
Lukasz Pawelczyk [Fri, 12 Aug 2016 12:07:31 +0000 (14:07 +0200)]
EC keys can be used for sign/verify now, update docs

Change-Id: Ic2893d9274bcaca4a2bcd681000b398b2d1a7360

8 years agoUse PKCS5 v2 in PKCS8 encrypted export 64/83564/2
Lukasz Pawelczyk [Thu, 11 Aug 2016 15:10:49 +0000 (17:10 +0200)]
Use PKCS5 v2 in PKCS8 encrypted export

Change-Id: Ia8f28768aca7b669e44b8b61c84625e5c811c033

8 years agoAdd missing 'library' in function description 22/83522/1
Krzysztof Jackiewicz [Thu, 11 Aug 2016 10:35:56 +0000 (12:35 +0200)]
Add missing 'library' in function description

Change-Id: Ic4d7da6a0201e4cc131737b56d5903abb9fb137a

8 years agoMerge 'acr2' into 'tizen' 05/83505/1
Krzysztof Jackiewicz [Thu, 11 Aug 2016 09:02:08 +0000 (11:02 +0200)]
Merge 'acr2' into 'tizen'

Change-Id: I054b8cecd5ad74381df6d184b2592e3b7e52b037

8 years agoStatic encrypt/digest algo list 07/83007/5 acr2
Lukasz Pawelczyk [Mon, 8 Aug 2016 13:01:15 +0000 (15:01 +0200)]
Static encrypt/digest algo list

Change-Id: I81e416d21ab22d119c6ec6ad9f79834ef151b2a2

8 years agoChange yaca_key_derive_kdf() API 31/83231/4
Dariusz Michaluk [Tue, 9 Aug 2016 12:57:50 +0000 (14:57 +0200)]
Change yaca_key_derive_kdf() API

Key material length should be in bytes.
Fix key exchange example.

Change-Id: I6b408a45d963d806f9abbb50056ed08da3a979fc

8 years agoFix: yaca_key_derive_dh() different parameters error 51/82951/3
Dariusz Michaluk [Mon, 8 Aug 2016 08:45:19 +0000 (10:45 +0200)]
Fix: yaca_key_derive_dh() different parameters error

Change-Id: Ia13fae08c15aa134c1fd84e3ae33e9a7f89d421c

8 years agoFix documentation: Tag length is not set in decrypt / open 75/83175/5
Mateusz Forc [Tue, 9 Aug 2016 09:27:36 +0000 (11:27 +0200)]
Fix documentation: Tag length is not set in decrypt / open

Change-Id: I3d9c65847b82011d9ec48d3324aec0944d79c80a

8 years agoSupport EC keys for sign/verify operations 40/83240/2
Lukasz Pawelczyk [Tue, 9 Aug 2016 15:36:24 +0000 (17:36 +0200)]
Support EC keys for sign/verify operations

Change-Id: I78bf6112e31de78aacb6902d3bd5c9e978cfcd32

8 years agoFix codestyle 85/82785/1
Dariusz Michaluk [Fri, 5 Aug 2016 15:35:13 +0000 (17:35 +0200)]
Fix codestyle

Change-Id: I1d34fa7eedc8c8de720245f0a70b0926df24c0a9

8 years agoMerge branch 'tizen' into acr2 62/82762/1
Dariusz Michaluk [Fri, 5 Aug 2016 13:01:19 +0000 (15:01 +0200)]
Merge branch 'tizen' into acr2

Conflicts:
api/yaca/yaca_types.h
src/encrypt.c

Change-Id: I37798f950774aebc56c8bc7f7e6479e5887b13d4

8 years agoFix documentation: RC4 doesn't use IV 12/82612/2 accepted/tizen/common/20160810.161523 accepted/tizen/ivi/20160809.233029 accepted/tizen/mobile/20160809.233056 accepted/tizen/tv/20160809.233004 accepted/tizen/wearable/20160809.233047 submit/tizen/20160809.225820
Dariusz Michaluk [Thu, 4 Aug 2016 11:43:48 +0000 (13:43 +0200)]
Fix documentation: RC4 doesn't use IV

Change-Id: I9ab587999821709d02e4d9928ffb64a1fffa7ec4

8 years agoFix for bug in OpenSSL's 3DES CFB1 implementation 33/82733/2
Krzysztof Jackiewicz [Fri, 5 Aug 2016 10:08:23 +0000 (12:08 +0200)]
Fix for bug in OpenSSL's 3DES CFB1 implementation

OpenSSL 3DES CFB1 implementation assumes that the size of input data is in
bits. It is indeed possible to use bits instead of bytes by setting an
EVP_CIPHER_CTX flag EVP_CIPH_FLAG_LENGTH_BITS. However, this flag is not being
checked in the implementation. The fix has been already applied to OpenSSL but
not yet released.

This commit causes EVP_CIPH_FLAG_LENGTH_BITS flag to be set always when 3DES
CFB1 is used. It also performes conversion between bit and byte units if
needed. It's a temporary fix and should also work with fixed OpenSSL. Anyway,
as soon as the fix in OpenSSL is released this commit should be reverted.

Change-Id: I97807f0afeecace86adb974e08e6f00fa66f22de

8 years agoAdd possibility to disabling encrypt/decrypt padding. 01/82201/5
Dariusz Michaluk [Mon, 1 Aug 2016 12:35:06 +0000 (14:35 +0200)]
Add possibility to disabling encrypt/decrypt padding.

Change-Id: I42bbd36013b6d39917f6946f35d533dc4f0dbd8e

8 years agoAdd yaca_key_derive_kdf(), define yaca_kdf_e enum 00/82100/6
Dariusz Michaluk [Thu, 28 Jul 2016 08:57:55 +0000 (10:57 +0200)]
Add yaca_key_derive_kdf(), define yaca_kdf_e enum

yaca_key_derive_kdf() implementation/example

Change-Id: Id24036599a71a14c239725a45b51301024365a0b

8 years agoRework key derivation example 13/80813/7
Dariusz Michaluk [Thu, 28 Jul 2016 08:53:10 +0000 (10:53 +0200)]
Rework key derivation example

Change-Id: I2beb8f49298b87dd9b0917d2d9fbb1b98619bb6e

8 years agoChange yaca_key_derive_dh() API 91/81791/7
Dariusz Michaluk [Wed, 20 Jul 2016 10:07:36 +0000 (12:07 +0200)]
Change yaca_key_derive_dh() API

Return buffer with shared secret instead of yaca_key_h.
Shared secret should not be used as a key.

Change-Id: I55de2b330deb06dd6b15902bf5f4ea9fe45e4359

8 years agoKey wrapping implementation/example 58/81658/6
Dariusz Michaluk [Fri, 15 Jul 2016 16:09:25 +0000 (18:09 +0200)]
Key wrapping implementation/example

Change-Id: Ifedb332212bffa4c0934f57d9d51b12537fe1d1f

8 years agoFIX: Correct IV length for Block Cipher Modes in doc 15/81915/2
Mateusz Forc [Fri, 29 Jul 2016 08:13:57 +0000 (10:13 +0200)]
FIX: Correct IV length for Block Cipher Modes in doc

Change-Id: Id05bb379c27ffc6d37e3911e2b21bd621aa137c6

8 years agoFIX: Add key type check for encrypt, move key_len check 24/81824/3
Mateusz Forc [Thu, 28 Jul 2016 12:52:11 +0000 (14:52 +0200)]
FIX: Add key type check for encrypt, move key_len check

Change-Id: Ic0bc79c5cce1acc9a39d38ebeecf6ebb5c788232

8 years agoFix and simplify output parameter usage. 57/81657/1
Dariusz Michaluk [Wed, 27 Jul 2016 12:13:33 +0000 (14:13 +0200)]
Fix and simplify output parameter usage.

Change-Id: I04d97b11fafe428f6c48c394539cb6e10f45f725

8 years agoMerge branch 'tizen' into acr2 54/81654/1
Lukasz Pawelczyk [Wed, 27 Jul 2016 11:59:46 +0000 (13:59 +0200)]
Merge branch 'tizen' into acr2

Change-Id: Ia478aa4239140e591b05cf58d261bee4a716d6dc

8 years agoClarify yaca_get_output_length usage 28/81628/3
Lukasz Pawelczyk [Wed, 27 Jul 2016 09:58:43 +0000 (11:58 +0200)]
Clarify yaca_get_output_length usage

Change-Id: If029e693155009b15b33b9c7ca1006867fea383b

8 years agoFIX: Add key length check for all algorithms 32/80232/14
Mateusz Forc [Fri, 15 Jul 2016 10:00:14 +0000 (12:00 +0200)]
FIX: Add key length check for all algorithms

Change-Id: I322438cf5a5bea84e3e258f0f1f6011dd0616428

8 years agoAdd static to all functions in key.c that can be static 98/80898/3
Lukasz Pawelczyk [Wed, 20 Jul 2016 16:02:18 +0000 (18:02 +0200)]
Add static to all functions in key.c that can be static

Change-Id: Iaa4b8515b1b70226e3ccb00e692c3752884535ee

8 years agoSupport getting key_bit_length for params 97/80897/3
Lukasz Pawelczyk [Wed, 20 Jul 2016 14:25:23 +0000 (16:25 +0200)]
Support getting key_bit_length for params

Change-Id: I7900e34ad990aeeb3e5b43d1c5a539db38bc302a

8 years agoExample for key generate 88/80888/3
Lukasz Pawelczyk [Wed, 20 Jul 2016 12:20:22 +0000 (14:20 +0200)]
Example for key generate

Change-Id: I9230fdc86b738e7ba6c5d7e9ff000bfae1fe830e

8 years agoyaca_extract_parameters() implementation 53/80553/4
Lukasz Pawelczyk [Mon, 18 Jul 2016 14:36:54 +0000 (16:36 +0200)]
yaca_extract_parameters() implementation

Also yaca_extract_public() rework to be on par with the above.

Change-Id: Iab7d9975809b421d09fe024740d7f29b30b8c82a

8 years agoImport/export for EC, DH and all parameter types 52/80552/4
Lukasz Pawelczyk [Mon, 18 Jul 2016 14:11:08 +0000 (16:11 +0200)]
Import/export for EC, DH and all parameter types

Change-Id: I4cd1c7c58a64ca78f7fe6c5ce3977c662e69b017

8 years agoKey generation re-work to handle parameters and 2 stage keygen 51/80551/4
Lukasz Pawelczyk [Fri, 15 Jul 2016 12:37:51 +0000 (14:37 +0200)]
Key generation re-work to handle parameters and 2 stage keygen

Change-Id: Ia427b82a5d6d7ded59144b0638a866ae13d2fa21

8 years agoAPI change/extension for key handling (parameters and DH RFC5114) 29/80129/4
Lukasz Pawelczyk [Thu, 14 Jul 2016 15:59:16 +0000 (17:59 +0200)]
API change/extension for key handling (parameters and DH RFC5114)

New functions:
- yaca_key_generate_from_parameters()
- yaca_key_extract_parameters()

New functionality:
- yaca_key_generate()
- yaca_key_import()
- yaca_key_export()

New defines/enums:
- YACA_KEY_TYPE_*_PARAMS
- YACA_KEY_LENGTH_DH_GENERATOR_*
- yaca_key_bit_length_dh_rfc_e;
- yaca_key_bit_length_ec_e;

Change-Id: I4fd4a0fa00c7f340a1dcf37fbe39b6f80d95484c

8 years agoACR: Remove unnecessary iv length values 06/80706/3
Krzysztof Jackiewicz [Tue, 19 Jul 2016 15:13:41 +0000 (17:13 +0200)]
ACR: Remove unnecessary iv length values

Change-Id: I23a889eef85a3617cb0d53f45b0cb3bb1983c6cf

8 years agoACR: Describe finalize-without-update cases 05/80705/3
Krzysztof Jackiewicz [Tue, 19 Jul 2016 15:11:47 +0000 (17:11 +0200)]
ACR: Describe finalize-without-update cases

Change-Id: I4164b05325472f32de426db21b6924b3acfb8583

8 years agoAdd custom tag length support in CCM 45/77945/27
Krzysztof Jackiewicz [Tue, 12 Jul 2016 11:05:17 +0000 (13:05 +0200)]
Add custom tag length support in CCM

Change-Id: Iff8432d47b371ded3e95927fd90c5800be038597

8 years agoCheck BCM in property handlers. Use EVP_Cipher* where possible. 40/77940/18
Krzysztof Jackiewicz [Mon, 11 Jul 2016 15:00:57 +0000 (17:00 +0200)]
Check BCM in property handlers. Use EVP_Cipher* where possible.

Change-Id: I8dfd918aa3ea4aa6f55fa973ff6cdba88955f60e

8 years agoChange module names and add line feeds in some API descriptions 33/80633/1
Dongsun Lee [Tue, 19 Jul 2016 07:45:40 +0000 (16:45 +0900)]
Change module names and add line feeds in some API descriptions

Change-Id: Ib0b6630226bc250c189dbe0498d17ffe2b2d86cc
Signed-off-by: Dongsun Lee <ds73.lee@samsung.com>
8 years agoClear the memory before freeing a symmetric key 63/79963/2
Krzysztof Jackiewicz [Wed, 13 Jul 2016 15:10:21 +0000 (17:10 +0200)]
Clear the memory before freeing a symmetric key

Change-Id: Iaffaf927709dfcfb831d7973d87d5a2ee5194bf0

8 years agoFix error: 'static’ is not at beginning of declaration 74/80474/1
Dariusz Michaluk [Mon, 18 Jul 2016 08:07:43 +0000 (10:07 +0200)]
Fix error: 'static’ is not at beginning of declaration

Change-Id: Ia49af914337e6fb2eef507ac8f906184092839a5

8 years agoAdded manifest file to label library to floor 51/80251/2
Dongsun Lee [Fri, 15 Jul 2016 11:11:48 +0000 (20:11 +0900)]
Added manifest file to label library to floor

- Currently, libyaca.so.0 is labelled as "System",
  so applications cannot access on it.

Change-Id: I9c3db2708388508572c5e3d7bd920f4128a9f53f
Signed-off-by: Dongsun Lee <ds73.lee@samsung.com>
8 years agoEC key generation, extract public and get_bit_length 19/80119/1
Lukasz Pawelczyk [Mon, 11 Jul 2016 10:29:12 +0000 (12:29 +0200)]
EC key generation, extract public and get_bit_length

Change-Id: I55f22032778eaf6eaeb5d598eec1fe94fe684765

8 years agoMerged several generate_evp_* functions into one 18/80118/1
Lukasz Pawelczyk [Fri, 8 Jul 2016 15:21:15 +0000 (17:21 +0200)]
Merged several generate_evp_* functions into one

Change-Id: I74321e421dc0c36d84f337ea4727b7467b9f4431

8 years agoAdd DH private key generate/public key extract. 14/80114/1
Dariusz Michaluk [Fri, 8 Jul 2016 15:21:21 +0000 (17:21 +0200)]
Add DH private key generate/public key extract.

Change-Id: Ie1797d335edce2b84b1910c677aa2d70d8a2500f

8 years agoAdd yaca_key_derive_dh() implementation. 13/80113/1
Dariusz Michaluk [Mon, 11 Jul 2016 10:30:52 +0000 (12:30 +0200)]
Add yaca_key_derive_dh() implementation.

Change-Id: I8b71e7f1a75a83aa48af5e5c46088e831400b571

8 years agoAdd yaca_key_derive_dh(), define proper key types and lengths 12/80112/1
Dariusz Michaluk [Fri, 8 Jul 2016 12:04:05 +0000 (14:04 +0200)]
Add yaca_key_derive_dh(), define proper key types and lengths

Restore YACA_KEY_TYPE_EC* defines.

Change-Id: Iff2413253134d945cf0de405f5b90e159e7664ae

8 years agoFIX: Unhandled OpenSSL error, when using invalid imported key
Mateusz Forc [Thu, 14 Jul 2016 10:26:40 +0000 (12:26 +0200)]
FIX: Unhandled OpenSSL error, when using invalid imported key

Change-Id: I5982553ae96bd9cde491bc9ccf79ff643303cb25

8 years agoFix: RC4 doesn't support block cipher modes
Dariusz Michaluk [Thu, 14 Jul 2016 08:48:11 +0000 (10:48 +0200)]
Fix: RC4 doesn't support block cipher modes

Change-Id: Iab022f1791712e0670a02ab2262e03fc0b79c365

8 years agoFix formatting in yaca_debug_translate_error 35/79935/1
Lukasz Pawelczyk [Wed, 13 Jul 2016 12:32:04 +0000 (14:32 +0200)]
Fix formatting in yaca_debug_translate_error

Change-Id: I125b51f447e74a79b0134192400bbc5af386419b

8 years agoConvert CRLF to LF in doc/ directory 66/79466/4
Lukasz Pawelczyk [Mon, 11 Jul 2016 11:27:10 +0000 (13:27 +0200)]
Convert CRLF to LF in doc/ directory

Change-Id: I299418907c312731706a7d30e73fbbe679202ecc

8 years agoVarious fixes in Doxygen comments 65/79465/3
Lukasz Pawelczyk [Mon, 11 Jul 2016 11:09:21 +0000 (13:09 +0200)]
Various fixes in Doxygen comments

- don't include source/example directories, they only cause confusion.
- don't add empty doxygen comment before a regular one. Move those
  comments to @file.
- minor changes in the doc/ directory.

Change-Id: Ie1e5e8b01cacc6a74c7201cd2652b0752091e455

8 years agoAdd nullptr check and return invalid param 46/79146/12
Mateusz Forc [Fri, 8 Jul 2016 10:38:21 +0000 (12:38 +0200)]
Add nullptr check and return invalid param

Add nullptr check for *iv_bit_len in yaca_encrypt_get_iv_bit_length().

Change return from YACA_ERROR_INTERNAL to YACA_INVALID_PARAMETER
in encrypt_get_algorithm for invalid param case

Change-Id: I804ca0af5d733aec2097566411e54b224391df5b

8 years agoerror fix in API description doxygen 68/77168/13
Dongsun Lee [Wed, 29 Jun 2016 02:48:06 +0000 (11:48 +0900)]
error fix in API description doxygen

- fix typos(mangement, createing, verifing)
- too short description(Context, key)
- the third person singular should be used in @brief
- remove unnecessary blanks and unexpected capital
- fix wrong description(If @a *memory is -> If @a memory is)

Change-Id: I9185ad0aca7ea8bac460fbc7e6bf406ac66870af
Signed-off-by: Dongsun Lee <ds73.lee@samsung.com>
8 years agoadd @addtogroup 06/72606/12
sangsu [Wed, 1 Jun 2016 22:27:46 +0000 (07:27 +0900)]
add @addtogroup

Change-Id: I7bf0f7a94540d46edf5a7953d55d6a13f385946b
Signed-off-by: sangsu <sangsu.choi@samsung.com>
8 years agoACR:add doc document headers 05/72605/10
sangsu [Wed, 1 Jun 2016 22:21:24 +0000 (07:21 +0900)]
ACR:add doc document headers

Change-Id: Iafad752ca1980993c706434f34e136f44ffe3a91
Signed-off-by: sangsu <sangsu.choi@samsung.com>
8 years agoUpdate GCM/CCM examples 25/77925/12
Krzysztof Jackiewicz [Fri, 1 Jul 2016 13:44:57 +0000 (15:44 +0200)]
Update GCM/CCM examples

Use nonstandard tag. Fix formatting. Add missing cleanup.

Change-Id: Iec6f358ff3d05ae17ab072a72ef95401c777eb5a

8 years agoSpecify property type for tag lengths 14/77914/12
Krzysztof Jackiewicz [Tue, 5 Jul 2016 07:24:23 +0000 (09:24 +0200)]
Specify property type for tag lengths

Change-Id: I3fa756c74bd0797d070913020fd0f38588fe7403

8 years agoAllow NULL input/output only in CCM mode. 86/78986/2
Dariusz Michaluk [Thu, 7 Jul 2016 14:27:30 +0000 (16:27 +0200)]
Allow NULL input/output only in CCM mode.

Change-Id: I0758a1f2d8fa7accf8517aec6c93f79cf5f369d5

8 years agoMerge "Adjust naming convention to API." into tizen
Krzysztof Jackiewicz [Fri, 8 Jul 2016 13:45:00 +0000 (06:45 -0700)]
Merge "Adjust naming convention to API." into tizen

8 years agoAdjust naming convention to API. 01/76301/16
Krzysztof Jackiewicz [Tue, 5 Jul 2016 07:20:41 +0000 (09:20 +0200)]
Adjust naming convention to API.

Change-Id: I096c1df2007832e52bc797de88df3dd8c46e67aa

8 years agoChange ERROR_NONE to 0 where we don't check yaca function 63/78963/1
Lukasz Pawelczyk [Thu, 7 Jul 2016 12:33:25 +0000 (14:33 +0200)]
Change ERROR_NONE to 0 where we don't check yaca function

Change-Id: Id1e4a26365610e1e26d1f95b67834e2ad1d0e4df

8 years agoAdd a comment describing padding usage 87/78487/3
Lukasz Pawelczyk [Tue, 5 Jul 2016 16:49:22 +0000 (18:49 +0200)]
Add a comment describing padding usage

Change-Id: I915d829086b10a1718f5499f56dfc604a8e5e525

8 years agoMake yaca_cleanup return void 22/78922/1
Krzysztof Jackiewicz [Thu, 7 Jul 2016 10:36:38 +0000 (12:36 +0200)]
Make yaca_cleanup return void

Change-Id: I325703541385d064f9f3ba36fc9aeebb1e0e7bde

8 years agoAllow NULL value_len in yaca_context_get_property(). Fix documentation. 01/77701/4
Krzysztof Jackiewicz [Thu, 30 Jun 2016 13:10:17 +0000 (15:10 +0200)]
Allow NULL value_len in yaca_context_get_property(). Fix documentation.

In cases where a property is a single object of a known type theres no point in
passing value_len to yaca_context_get_property().

The documentation related to property getting/setting has been updated.

Change-Id: Idf908e87b87b5fe5239f651fe8546a7bd5a89850