Fix prevent issue #48440
[platform/framework/native/appfw.git] / src / security / pkcs / FSecPkcs_PkcsUtility.cpp
index 40a3ac5..4eca2f6 100644 (file)
@@ -1286,11 +1286,10 @@ _PkcsUtility::GenerateAlgorithmIdentifierStructureN(Tizen::Base::String algoOid,
        // fall through
        case _OID_TYPE_AES_256_CBC:
        {
-               SysTryCatch(NID_SEC_CRYPTO, pAlgoParam != null, r = E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The specified input parameter is invalid.");
+               InitialVector* pInitialVector = dynamic_cast< InitialVector* >(pAlgoParam);
+               SysTryCatch(NID_SEC_CRYPTO, pInitialVector != null, r = E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The specified input parameter is invalid.");
 
-               SysTryCatch(NID_SEC_CRYPTO, dynamic_cast< InitialVector* >(pAlgoParam) != null, r = E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The specified input parameter is invalid.");
-
-               ivBuffer.Construct(((dynamic_cast< InitialVector* >(pAlgoParam))->GetInitialVector()));
+               ivBuffer.Construct(pInitialVector->GetInitialVector());
                SysTryCatch(NID_SEC_CRYPTO, ivBuffer.GetRemaining() > 0, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
 
                pIv = ASN1_STRING_new();
@@ -1370,10 +1369,10 @@ _PkcsUtility::GenerateAlgorithmIdentifierStructureN(Tizen::Base::String algoOid,
 
        case _OID_TYPE_PBKDF2:
        {
-               SysTryCatch(NID_SEC_CRYPTO, pAlgoParam != null, r = E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The specified input parameter is invalid.");
-               SysTryCatch(NID_SEC_CRYPTO, dynamic_cast< Pkcs05PbKdf2Parameters* >(pAlgoParam) != null, r = E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The specified input parameter is invalid.");
+               Pkcs05PbKdf2Parameters* pPkcs05PbKdf2Param = dynamic_cast< Pkcs05PbKdf2Parameters* >(pAlgoParam);
+               SysTryCatch(NID_SEC_CRYPTO, pPkcs05PbKdf2Param != null, r = E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The specified input parameter is invalid.");
 
-               std::unique_ptr< ByteBuffer > pKdfBuffer((dynamic_cast< Pkcs05PbKdf2Parameters* >(pAlgoParam))->GetEncodedDataN());
+               std::unique_ptr< ByteBuffer > pKdfBuffer(pPkcs05PbKdf2Param->GetEncodedDataN());
                if (pKdfBuffer == null)
                {
                        r = GetLastResult();
@@ -1406,11 +1405,10 @@ _PkcsUtility::GenerateAlgorithmIdentifierStructureN(Tizen::Base::String algoOid,
 
        case _OID_TYPE_PBES2:
        {
+               Pkcs05PbEs2Parameters* pPkcs05PbEs2Param = dynamic_cast< Pkcs05PbEs2Parameters* >(pAlgoParam);
+               SysTryCatch(NID_SEC_CRYPTO, pPkcs05PbEs2Param != null, r = E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The specified input parameter is invalid.");
 
-               SysTryCatch(NID_SEC_CRYPTO, pAlgoParam != null, r = E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The specified input parameter is invalid.");
-               SysTryCatch(NID_SEC_CRYPTO, dynamic_cast< Pkcs05PbEs2Parameters* >(pAlgoParam) != null, r = E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The specified input parameter is invalid.");
-
-               std::unique_ptr< ByteBuffer > pbEs2Buffer((dynamic_cast< Pkcs05PbEs2Parameters* >(pAlgoParam))->GetEncodedDataN());
+               std::unique_ptr< ByteBuffer > pbEs2Buffer(pPkcs05PbEs2Param->GetEncodedDataN());
                if (pbEs2Buffer == null)
                {
                        r = GetLastResult();
@@ -1443,10 +1441,10 @@ _PkcsUtility::GenerateAlgorithmIdentifierStructureN(Tizen::Base::String algoOid,
 
        case _OID_TYPE_PBMAC1:
        {
-               SysTryCatch(NID_SEC_CRYPTO, pAlgoParam != null, r = E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The specified input parameter is invalid.");
-               SysTryCatch(NID_SEC_CRYPTO, dynamic_cast< Pkcs05PbMacParameters* >(pAlgoParam) != null, r = E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The specified input parameter is invalid.");
+               Pkcs05PbMacParameters* pPkcs05PbMacParam = dynamic_cast< Pkcs05PbMacParameters* >(pAlgoParam);
+               SysTryCatch(NID_SEC_CRYPTO, pPkcs05PbMacParam != null, r = E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The specified input parameter is invalid.");
 
-               std::unique_ptr< ByteBuffer > pbMacBuffer((dynamic_cast< Pkcs05PbMacParameters* >(pAlgoParam))->GetEncodedDataN());
+               std::unique_ptr< ByteBuffer > pbMacBuffer(pPkcs05PbKdf2Param->GetEncodedDataN());
                if (pbMacBuffer == null)
                {
                        r = GetLastResult();