Algorithm types and param names updated 03/40003/5
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Wed, 27 May 2015 12:47:07 +0000 (14:47 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Mon, 8 Jun 2015 09:13:30 +0000 (11:13 +0200)
[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

src/include/ckm/ckm-type.h
src/manager/common/protocols.cpp
src/manager/crypto/sw-backend/store.cpp
src/manager/service/ckm-logic.cpp
tests/test_serialization.cpp

index 12c91b0..a152e1d 100644 (file)
@@ -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
index efa0beb..6355717 100644 (file)
@@ -129,7 +129,6 @@ CryptoAlgorithmSerializable::CryptoAlgorithmSerializable(IStream &stream)
         name = static_cast<ParamName>(tmpName);
         switch (name) {
         case ParamName::ED_IV:
-        case ParamName::ED_CTR:
         case ParamName::ED_AAD:
         case ParamName::ED_LABEL:
             Deserializer<RawBuffer>::Deserialize(stream, buffer);
index c1a629d..2ed63af 100644 (file)
@@ -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))
index d2c0a76..7b1ef96 100644 (file)
@@ -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;
 
index d4ceb5f..882dc4d 100644 (file)
@@ -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);