- OIC_LOG_V(DEBUG, TAG, "Oxm Label = %s", oxmLabel);
- OIC_LOG_V(DEBUG, TAG, "PSK size compare : %s",
- OWNER_PSK_LENGTH_128 == decodedSize ? "TRUE" : "FALSE");
- OIC_LOG_V(DEBUG, TAG, "SubjectID compare = %s",
- memcmp(&(receviedCred->subject), &(doxm->owner), sizeof(OicUuid_t)) == 0 ?
- "TRUE" : "FALSE");
- OIC_LOG_V(DEBUG, TAG, "Owner PSK compare = %s",
- memcmp(ownerPSK, decodeBuff, OWNER_PSK_LENGTH_128) == 0 ? "TRUE" : "FALSE");
-
- //Verify OwnerPSKs match
- return (OWNER_PSK_LENGTH_128 == decodedSize &&
- memcmp(ownerPSK, decodeBuff, OWNER_PSK_LENGTH_128) == 0 &&
- memcmp(&(receviedCred->subject), &(doxm->owner), sizeof(OicUuid_t)) == 0);
+ OIC_LOG(DEBUG, TAG, "OwnerPSK dump :");
+ OIC_LOG_BUFFER(DEBUG, TAG, ownerPSK, OWNER_PSK_LENGTH_128);
+
+ //Generate owner credential based on recevied credential information
+ size_t b64BufSize = B64ENCODE_OUT_SAFESIZE(OWNER_PSK_LENGTH_128 * sizeof(char));
+ uint8_t* encodeBuff = OICMalloc((b64BufSize + 1) * sizeof(char));
+ VERIFY_NON_NULL(TAG, encodeBuff, ERROR);
+ uint32_t encodedSize = 0;
+ B64Result b64Ret = b64Encode(ownerPSK, OWNER_PSK_LENGTH_128,
+ (char*)encodeBuff, b64BufSize + 1, &encodedSize);
+ VERIFY_SUCCESS(TAG, b64Ret == B64_OK, ERROR);
+ encodeBuff[encodedSize] = '\0';
+
+ //memory re-allocation for private data
+ OICFree(receviedCred->privateData.data);
+ receviedCred->privateData.data = (char*)OICMalloc((encodedSize + 1) * sizeof(char));
+ VERIFY_NON_NULL(TAG, receviedCred->privateData.data, ERROR);
+
+ //fill the base64 encoded private data
+ strncpy(receviedCred->privateData.data, (char*)encodeBuff, b64BufSize + 1);
+
+ OIC_LOG(INFO, TAG, "PrivateData of OwnerPSK was calculated successfully");
+
+ //deallocate local memory
+ OICFree(encodeBuff);
+
+ //Verify OwnerPSK information
+ return (memcmp(&(receviedCred->subject), &(doxm->owner), sizeof(OicUuid_t)) == 0 &&
+ receviedCred->credType == SYMMETRIC_PAIR_WISE_KEY);