}
r = __caCertDbStore.CheckDuplicateCertificate(certType, reinterpret_cast< byte* >(subjectName), lenSubjectName);
- if (r == E_SUCCESS)
- {
- return E_FILE_ALREADY_EXIST;
- }
+ SysTryReturnResult(NID_SEC_CERT, IsFailed(r), E_FILE_ALREADY_EXIST, "File already exists.");
+ SysTryReturnResult(NID_SEC_CERT, r==E_DATA_NOT_FOUND, r, "Failed to check duplicate");
+
//Get the last installed certificate id from db table
__caCertDbStore.GetCurrentCertId(certId);
//Calculate the new (std::nothrow) certificate id for installation
//No need to update record as only file data changed.
return E_SUCCESS;
}
- else
- {
- return E_FILE_ALREADY_EXIST;
- }
-
+
return r;
}
SysTryReturnResult(NID_SEC_CERT, pTbsCert != null, E_SYSTEM, "Failed to get certificate to be signed instance.");
r = __caCertDbStore.CheckDuplicateCertificate(certType, pTbsCert->GetSubjectName(), strlen(reinterpret_cast< char* >(pTbsCert->GetSubjectName())));
- SysTryReturnResult(NID_SEC_CERT, !IsFailed(r), E_OBJ_NOT_FOUND, "Certificate not found in db.");
+ SysTryReturnResult(NID_SEC_CERT, r != E_DATA_NOT_FOUND, E_OBJ_NOT_FOUND, "Certificate not found in db.");
+ SysTryReturnResult(NID_SEC_CERT, !IsFailed(r), r, "Propagated.");
r = GetCaCertificateId(pTbsCert->GetSubjectName(), strlen(reinterpret_cast< char* >(pTbsCert->GetSubjectName())),
pTbsCert->GetIssuerName(), strlen(reinterpret_cast< char* >(pTbsCert->GetIssuerName())),
pTbsCert = pCurCert->GetTbsCertInstance();
SysTryReturnResult(NID_SEC_CERT, pTbsCert != null, E_SYSTEM, "Failed to get certificate to be signed instance.");
- if (E_SUCCESS != __caCertDbStore.CheckDuplicateCertificate(certType, reinterpret_cast< byte* >(pTbsCert->GetSubjectName()), strlen(reinterpret_cast< char* >(pTbsCert->GetSubjectName()))))
+ r = __caCertDbStore.CheckDuplicateCertificate(certType, reinterpret_cast< byte* >(pTbsCert->GetSubjectName()), strlen(reinterpret_cast< char* >(pTbsCert->GetSubjectName())));
+ if(r != E_SUCCESS)
{
+ SysTryReturn(NID_SEC_CERT, r == E_DATA_NOT_FOUND, r, r, "[%s] Failed to check duplicate.", GetErrorMessage(r));
+
pX509Buff = null;
x509BuffSize = 0;
r = InsertCaCertificateFromBuffer(certType, certFormat, pX509Buff, x509BuffSize);
SysTryReturn(NID_SEC_CERT, !(IsFailed(r) && r != E_FILE_ALREADY_EXIST), r, r, "[E_SYSTEM] Failed to insert ca certificate.");
}
+
// CA certificate already present or properly installed in CA certificate store,
// get the certificate id of certificate
r = GetCaCertificateId(pTbsCert->GetSubjectName(), strlen(reinterpret_cast< char* >(pTbsCert->GetSubjectName())),
int subjectNameLen = strlen(reinterpret_cast< char* >(pTbsCert->GetSubjectName()));
r = __userCertDbStore.CheckDuplicateCertificate(pSubjectName, subjectNameLen);
- if (IsFailed(r))
+ if (r == E_DATA_NOT_FOUND)
{
if (pPrivateKeyInfo != null)
{
SysTryReturnResult(NID_SEC_CERT, pTbsCert != null, E_SYSTEM, "Failed to get certificate to be signed instance.");
r = __caCertDbStore.CheckDuplicateCertificate(certType, pTbsCert->GetSubjectName(), strlen(reinterpret_cast< char* >(pTbsCert->GetSubjectName())));
- if (IsFailed(r))
+ if (r != E_SUCCESS)
{
+ SysTryReturnResult(NID_SEC_CERT, r == E_DATA_NOT_FOUND, r, "Failed to check duplicate.");
+
pX509Buff = null;
x509BuffSize = 0;
r = __userCertDbStore.CheckDuplicateCertificate(reinterpret_cast< byte* >(subjectNameBuffer), lenSubjectName);
SysTryReturnResult(NID_SEC_CERT, IsFailed(r), E_FILE_ALREADY_EXIST, "File already exists.");
+ SysTryReturnResult(NID_SEC_CERT, r==E_DATA_NOT_FOUND, r, "Failed to check duplicate");
//Get the last installed certificate id from db table
__userCertDbStore.GetCurrentCertId(certId);
EVP_PKEY_free(pKey);
}
- {
- }
return r;
}
statement.Format(_MAX_QUERY_LEN, L"SELECT * from rootcert where certType = '%d' and subjectName = '%s' and subjectNameLen = '%d'", certType, subjectNameBase64, subjectNameBase64Len);
std::unique_ptr< DbEnumerator > pEnum(pDatabase->QueryN(statement));
- if (pEnum == null)
- {
- return E_DATA_NOT_FOUND;
- }
+ r = GetLastResult();
+ SysTryReturnResult(NID_SEC_CERT, !IsFailed(r) , r, "Failed to get query result.");
+ SysTryReturnResult(NID_SEC_CERT, pEnum != null , E_DATA_NOT_FOUND, "No certificate found in database.");
return r;
}
statement.Format(_MAX_QUERY_LEN, L"SELECT * FROM rootcert WHERE certType = '%d' AND issuerName = '%s' AND issuerNameLen = '%d' AND serialNo = '%s'", certType, issuerNameBase64, base64IssuerNameLen, base64SerialNo);
std::unique_ptr< DbEnumerator > pEnum(pDatabase->QueryN(statement));
- SysTryReturnResult(NID_SEC_CERT, pEnum != null, E_DATA_NOT_FOUND, "No certificate found in databas.");
+ r = GetLastResult();
+ SysTryReturnResult(NID_SEC_CERT, !IsFailed(r) , r, "Failed to get query result.");
+ SysTryReturnResult(NID_SEC_CERT, pEnum != null , E_DATA_NOT_FOUND, "No certificate found in database.");
return r;
}
statement.Format(_MAX_QUERY_LEN, L"SELECT * FROM usercert WHERE subjectName = '%s' AND subjectNameLen = '%d'", subjectNameBase64, subjectNameBase64Len);
std::unique_ptr< DbEnumerator > pEnum(pDatabase->QueryN(statement));
- SysTryReturnResult(NID_SEC_CERT, pEnum != null, E_DATA_NOT_FOUND, "No certificate found in database.");
+ r = GetLastResult();
+ SysTryReturnResult(NID_SEC_CERT, !IsFailed(r) , r, "Failed to get query result.");
+ SysTryReturnResult(NID_SEC_CERT, pEnum != null , E_DATA_NOT_FOUND, "No certificate found in database.");
return r;
}
statement.Format(_MAX_QUERY_LEN, L"SELECT * FROM usercert WHERE issuerName = '%s' AND issuerNameLen = '%d' AND serialNo = '%s'", issuerNameBase64, base64IssuerNameLen, base64SerialNo);
std::unique_ptr< DbEnumerator > pEnum(pDatabase->QueryN(statement));
- SysTryReturnResult(NID_SEC_CERT, pEnum != null, E_DATA_NOT_FOUND, "No certificate found in database.");
+ r = GetLastResult();
+ SysTryReturnResult(NID_SEC_CERT, !IsFailed(r) , r, "Failed to get query result.");
+ SysTryReturnResult(NID_SEC_CERT, pEnum != null , E_DATA_NOT_FOUND, "No certificate found in database.");
return r;
}