Simplify password handling 46/212946/2
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Wed, 28 Aug 2019 10:07:07 +0000 (12:07 +0200)
committerTomasz Swierczek <t.swierczek@samsung.com>
Fri, 6 Sep 2019 11:25:50 +0000 (13:25 +0200)
Change-Id: I57591c31259e28dfb154b544e3f5af7ba667ab31

ta/src/cmd_exec.c

index 4d6a5c1a4f0c8538d2b0a9816e09361d665ee587..e1f2694d1481a1cca0b7f95d2fe302775e72f3f4 100644 (file)
@@ -1337,19 +1337,9 @@ TEE_Result KM_ExecCmdSaveData(TEE_Param param[4])
                goto clean;
        }
 
-       if (KM_DeserializeFlag(&in_buffer, &in_size_guard, &with_pwd)) {
-               LOG("Error in deserialization");
-               ret = TEE_ERROR_BAD_PARAMETERS;
-               goto clean;
-       }
-
-       if (with_pwd) {
-               if (KM_DeserializePwdData(&in_buffer, &in_size_guard, &pwdData)) {
-                       LOG("Error in deserialization");
-                       ret = TEE_ERROR_BAD_PARAMETERS;
-                       goto clean;
-               }
-       }
+       ret = (KM_DeserializeFlagAndPw(&in_buffer,  &in_size_guard, &with_pwd, &pwdData));
+       if (ret != TEE_SUCCESS)
+               return ret;
 
        objId.data_size = TEE_OBJECT_ID_MAX_LEN;
        objId.data = malloc(objId.data_size);
@@ -1534,11 +1524,10 @@ TEE_Result KM_ExecCmdGetData(TEE_Param param[4])
                ret = TEE_ERROR_BAD_PARAMETERS;
                goto clean;
        }
-       if (KM_DeserializeFlag(&in_buffer, &in_size_guard, &with_pwd)) {
-               LOG("Error in deserialization");
-               ret = TEE_ERROR_BAD_PARAMETERS;
-               goto clean;
-       }
+       ret = KM_DeserializeFlagAndPw(&in_buffer, &in_size_guard, &with_pwd, &pwdData);
+       if (ret != TEE_SUCCESS)
+               return ret;
+
        // doing this will read the size of data to read (assuming it was retrieved in prev. call to TA)
        if (KM_DeserializeBinaryData(&out_buffer, &out_size_guard, &outData)) {
                LOG("Error in deserialization");
@@ -1558,11 +1547,6 @@ TEE_Result KM_ExecCmdGetData(TEE_Param param[4])
                goto clean;
        }
        if (with_pwd) {
-               if (KM_DeserializePwdData(&in_buffer, &in_size_guard, &pwdData)) {
-                       LOG("Error in deserialization");
-                       ret = TEE_ERROR_BAD_PARAMETERS;
-                       goto clean;
-               }
                ret = KM_DecryptDataWithPwd(&pwdData, readData.data, readData.data_size, outData.data, &outData.data_size);
                if (ret != TEE_SUCCESS) {
                        LOG("Failed to decrypt data with pwd");