From: Krzysztof Jackiewicz Date: Wed, 27 May 2015 12:47:07 +0000 (+0200) Subject: Algorithm types and param names updated X-Git-Tag: accepted/tizen/mobile/20150629.000431~10 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fsecurity%2Fkey-manager.git;a=commitdiff_plain;h=b4b2310fa8c7dc6089131a83195a17a07d7e6850 Algorithm types and param names updated [Problem] ED_CTR can be replaced with ED_IV. We need a way to distinguish asymmetric algorithms for different purposes (encryption, signing/verification, key generation) [Solution] ED_CTR replaced with ED_IV. New algorithm types added. [Verification] Compile and run tests: ckm-tests-internal -t SERIALIZATION_TEST Change-Id: Id7f5f805f25aa674023f6fc8c3631c8b7abcea64 --- diff --git a/src/include/ckm/ckm-type.h b/src/include/ckm/ckm-type.h index 12c91b0..a152e1d 100644 --- a/src/include/ckm/ckm-type.h +++ b/src/include/ckm/ckm-type.h @@ -117,7 +117,6 @@ enum class ParamName : int { // encryption & decryption ED_IV = 101, - ED_CTR, ED_CTR_LEN, ED_AAD, ED_TAG_LEN, @@ -139,9 +138,12 @@ enum class AlgoType : int { AES_GCM, AES_CFB, RSA_OAEP, - RSA, - DSA, - ECDSA, + RSA_SV, + DSA_SV, + ECDSA_SV, + RSA_GEN, + DSA_GEN, + ECDSA_GEN, }; // cryptographic algorithm description diff --git a/src/manager/common/protocols.cpp b/src/manager/common/protocols.cpp index efa0beb..6355717 100644 --- a/src/manager/common/protocols.cpp +++ b/src/manager/common/protocols.cpp @@ -129,7 +129,6 @@ CryptoAlgorithmSerializable::CryptoAlgorithmSerializable(IStream &stream) name = static_cast(tmpName); switch (name) { case ParamName::ED_IV: - case ParamName::ED_CTR: case ParamName::ED_AAD: case ParamName::ED_LABEL: Deserializer::Deserialize(stream, buffer); diff --git a/src/manager/crypto/sw-backend/store.cpp b/src/manager/crypto/sw-backend/store.cpp index c1a629d..2ed63af 100644 --- a/src/manager/crypto/sw-backend/store.cpp +++ b/src/manager/crypto/sw-backend/store.cpp @@ -64,21 +64,21 @@ GKeyShPtr Store::getKey(const Token &token) { TokenPair Store::generateAKey(const CryptoAlgorithm &algorithm) { - AlgoType keyType = AlgoType::RSA; + AlgoType keyType = AlgoType::RSA_GEN; algorithm.getParam(ParamName::ALGO_TYPE, keyType); - if(keyType == AlgoType::RSA || keyType == AlgoType::DSA) + if(keyType == AlgoType::RSA_GEN || keyType == AlgoType::DSA_GEN) { int keyLength = 0; if(!algorithm.getParam(ParamName::GEN_KEY_LEN, keyLength)) ThrowMsg(Crypto::Exception::InputParam, "Error, parameter GEN_KEY_LEN not found."); - if(keyType == AlgoType::RSA) + if(keyType == AlgoType::RSA_GEN) return Internals::createKeyPairRSA(m_backendId, keyLength); else return Internals::createKeyPairDSA(m_backendId, keyLength); } - else if(keyType == AlgoType::ECDSA) + else if(keyType == AlgoType::ECDSA_GEN) { int ecType = 0; if(!algorithm.getParam(ParamName::GEN_EC, ecType)) diff --git a/src/manager/service/ckm-logic.cpp b/src/manager/service/ckm-logic.cpp index d2c0a76..7b1ef96 100644 --- a/src/manager/service/ckm-logic.cpp +++ b/src/manager/service/ckm-logic.cpp @@ -1178,19 +1178,19 @@ int CKMLogic::createKeyPairHelper( { case KeyType::KEY_RSA_PUBLIC: case KeyType::KEY_RSA_PRIVATE: - keyGenAlgorithm.addParam(ParamName::ALGO_TYPE, AlgoType::RSA); + keyGenAlgorithm.addParam(ParamName::ALGO_TYPE, AlgoType::RSA_GEN); keyGenAlgorithm.addParam(ParamName::GEN_KEY_LEN, additional_param); break; case KeyType::KEY_DSA_PUBLIC: case KeyType::KEY_DSA_PRIVATE: - keyGenAlgorithm.addParam(ParamName::ALGO_TYPE, AlgoType::DSA); + keyGenAlgorithm.addParam(ParamName::ALGO_TYPE, AlgoType::DSA_GEN); keyGenAlgorithm.addParam(ParamName::GEN_KEY_LEN, additional_param); break; case KeyType::KEY_ECDSA_PUBLIC: case KeyType::KEY_ECDSA_PRIVATE: - keyGenAlgorithm.addParam(ParamName::ALGO_TYPE, AlgoType::ECDSA); + keyGenAlgorithm.addParam(ParamName::ALGO_TYPE, AlgoType::ECDSA_GEN); keyGenAlgorithm.addParam(ParamName::GEN_EC, additional_param); break; diff --git a/tests/test_serialization.cpp b/tests/test_serialization.cpp index d4ceb5f..882dc4d 100644 --- a/tests/test_serialization.cpp +++ b/tests/test_serialization.cpp @@ -109,7 +109,6 @@ BOOST_AUTO_TEST_CASE(Serialization_CryptoAlgorithm) { checkIntParamNegative(output, ParamName::ED_IV); // non-existing - checkBufferParamNegative(output, ParamName::ED_CTR); checkIntParamNegative(output, ParamName::ED_CTR_LEN); checkBufferParamNegative(output, ParamName::ED_LABEL); checkIntParamNegative(output, ParamName::GEN_KEY_LEN);