RUNNER_ASSERT_MSG(CERTSVC_SUCCESS == certsvc_certificate_chain_sort(collection, 3), "FAIL TO SORT CERTIFICATE");
- RUNNER_ASSERT_MSG(collection[2].privateHandler == cert3.privateHandler, "certsvc_certificate_chain_sort failed");
+ RUNNER_ASSERT_MSG(
+ (memcmp(&collection[2], &cert3, sizeof(CertSvcCertificate)) == 0
+ && memcmp(&collection[1], &cert2, sizeof(CertSvcCertificate)) == 0
+ && memcmp(&collection[0], &cert1, sizeof(CertSvcCertificate)) == 0),
+ "certsvc_certificate_chain_sort success but it's not sorted really.");
collection[0] = cert1;
collection[1] = cert3;
- RUNNER_ASSERT_MSG(CERTSVC_FAIL == certsvc_certificate_chain_sort(collection, 2), "certsvc_certificate_chain_sort failed");
+ RUNNER_ASSERT_MSG(CERTSVC_FAIL == certsvc_certificate_chain_sort(collection, 2),
+ "certsvc_certificate_chain_sort must be failed");
}
RUNNER_TEST_GROUP_INIT(T0200_CAPI_CERTIFICATE_VERIFY)
static CertSvcString wrapper_certsvc_string_new(const char *cStr)
{
CertSvcString certsvcStr;
+ int retval;
- if (!cStr) {
- certsvcStr.privateHandler = NULL;
- return certsvcStr;
- }
+ if (cStr == NULL)
+ retval = certsvc_string_new(instance, NULL, 0, &certsvcStr);
+ else
+ retval = certsvc_string_new(instance, cStr, strlen(cStr), &certsvcStr);
- RUNNER_ASSERT_MSG(
- certsvc_string_new(instance, cStr, strlen(cStr), &certsvcStr) == CERTSVC_SUCCESS,
- "Failed to certsvc_string_new");
+ RUNNER_ASSERT_MSG(retval == CERTSVC_SUCCESS,
+ "Failed to certsvc_string_new with retval: " << retval);
return certsvcStr;
}
size_t size,
CertSvcString *output)
{
- if (!output) {
+ if (!output)
return CERTSVC_WRONG_ARGUMENT;
- }
- size_t allocSize = size;
+ /* return struct for empty string */
+ if (size == 0 || str == NULL) {
+ output->privateHandler = NULL;
+ output->privateLength = 0;
+ output->privateInstance = instance;
- if (allocSize == 0 || str[allocSize - 1] != 0)
- allocSize++;
+ return CERTSVC_SUCCESS;
+ }
+
+ if (strlen(str) < size)
+ return CERTSVC_WRONG_ARGUMENT;
- char *ptr = new char[allocSize];
+ char *ptr = new(std::nothrow) char[size + 1];
if (ptr == NULL)
return CERTSVC_BAD_ALLOC;
memcpy(ptr, str, size);
- ptr[allocSize - 1] = 0;
+ ptr[size] = '\0';
output->privateHandler = ptr;
output->privateLength = size;