Use new classes to sign and verify messages.
[platform/core/security/key-manager.git] / src / manager / crypto / sw-backend / internals.cpp
index 826e7a5..d121118 100644 (file)
@@ -433,8 +433,14 @@ RawBuffer sign(EVP_PKEY *pkey,
     int rsa_padding = NOT_DEFINED;
     const EVP_MD *md_algo = NULL;
 
-    (void) alg;
-//    md_algo = getMdAlgo(hashAlgo);
+    HashAlgorithm hashTmp = HashAlgorithm::NONE;
+    alg.getParam(ParamName::SV_HASH_ALGO, hashTmp);
+    md_algo = getMdAlgo(hashTmp);
+
+    RSAPaddingAlgorithm rsaPad = RSAPaddingAlgorithm::NONE;
+    alg.getParam(ParamName::SV_RSA_PADDING, rsaPad);
+    rsa_padding = getRsaPadding(rsaPad);
+
 //
 //    if((privateKey.getType() != KeyType::KEY_RSA_PRIVATE) &&
 //       (privateKey.getType() != KeyType::KEY_DSA_PRIVATE) &&
@@ -508,8 +514,8 @@ RawBuffer signMessage(EVP_PKEY *privKey,
         return sig;
     }
 
-    LogError("Error in EVP_PKEY_sign function");
-    ThrowMsg(Crypto::Exception::InternalError, "Error in EVP_PKEY_sign function");
+    LogError("Error in EVP_PKEY_sign function. Input param error.");
+    ThrowMsg(Crypto::Exception::InputParam, "Error in EVP_PKEY_sign function. Input param error.");
 }
 
 RawBuffer digestSignMessage(EVP_PKEY *privKey,
@@ -577,8 +583,14 @@ int verify(EVP_PKEY *pkey,
     int rsa_padding = NOT_DEFINED;
     const EVP_MD *md_algo = NULL;
 
-    (void)alg;
-//    md_algo = getMdAlgo(hashAlgo);
+    HashAlgorithm hashTmp = HashAlgorithm::NONE;
+    alg.getParam(ParamName::SV_HASH_ALGO, hashTmp);
+    md_algo = getMdAlgo(hashTmp);
+
+    RSAPaddingAlgorithm rsaPad = RSAPaddingAlgorithm::NONE;
+    alg.getParam(ParamName::SV_RSA_PADDING, rsaPad);
+    rsa_padding = getRsaPadding(rsaPad);
+
 //
 //    if((publicKey.getType() != KeyType::KEY_RSA_PUBLIC) &&
 //       (publicKey.getType() != KeyType::KEY_DSA_PUBLIC) &&