diff options
| author | alee <alee@c9f7a03b-bd48-0410-a16d-cbbf54688b0b> | 2010-07-27 19:03:40 +0000 |
|---|---|---|
| committer | alee <alee@c9f7a03b-bd48-0410-a16d-cbbf54688b0b> | 2010-07-27 19:03:40 +0000 |
| commit | 2eb3243de06f1589991da47bfde6271e0d80abe6 (patch) | |
| tree | 8168ed24525ffd35989d54bd6dd81471d5df0b08 /pki/base/tps/src/cms/CertEnroll.cpp | |
| parent | 9f8b12b0400f654f8b3f10ddbd731735c1d45607 (diff) | |
merge 8.1 -> tip, multiple bugs (base)
git-svn-id: svn+ssh://svn.fedorahosted.org/svn/pki/trunk@1134 c9f7a03b-bd48-0410-a16d-cbbf54688b0b
Diffstat (limited to 'pki/base/tps/src/cms/CertEnroll.cpp')
| -rw-r--r-- | pki/base/tps/src/cms/CertEnroll.cpp | 64 |
1 files changed, 41 insertions, 23 deletions
diff --git a/pki/base/tps/src/cms/CertEnroll.cpp b/pki/base/tps/src/cms/CertEnroll.cpp index 7b9a1d796..602e0cc22 100644 --- a/pki/base/tps/src/cms/CertEnroll.cpp +++ b/pki/base/tps/src/cms/CertEnroll.cpp @@ -79,6 +79,7 @@ TOKENDB_PUBLIC int CertEnroll::RevokeCertificate(const char *reason, const char { char parameters[5000]; char configname[5000]; + int num; PR_snprintf((char *)parameters, 5000, "op=revoke&revocationReason=%s&revokeAll=(certRecordId%%3D%s)&totalRecordCount=1", reason, serialno); @@ -87,23 +88,27 @@ TOKENDB_PUBLIC int CertEnroll::RevokeCertificate(const char *reason, const char PSHttpResponse *resp = sendReqToCA(servletID, parameters, connid); - char *content = resp->getContent(); - char *p = strstr(content, "status="); - int num = *(p+7) - '0'; - RA::Debug("CertEnroll::RevokeCertificate", "serialno=%s reason=%s connid=%s status=%d", serialno, reason, connid, num); - if (num != 0) { - char *q = strstr(p, "error="); - q = q+6; - o_status = PL_strdup(q); - RA::Debug("CertEnroll::RevokeCertificate", "status string=%s", q); - } if (resp != NULL) { + char *content = resp->getContent(); + char *p = strstr(content, "status="); + num = *(p+7) - '0'; + RA::Debug("CertEnroll::RevokeCertificate", "serialno=%s reason=%s connid=%s status=%d", serialno, reason, connid, num); + if (num != 0) { + char *q = strstr(p, "error="); + q = q+6; + o_status = PL_strdup(q); + RA::Debug("CertEnroll::RevokeCertificate", "status string=%s", q); + } if (content != NULL) { resp->freeContent(); content = NULL; } delete resp; resp = NULL; + } else { + RA::Debug("CertEnroll::RevokeCertificate", "serialno=%s reason=%s connid=%s failed: resp is NULL"); + o_status = PL_strdup("resp from sendReqToCA is NULL"); + num = 1; //non-zero } return num; } @@ -113,6 +118,7 @@ TOKENDB_PUBLIC int CertEnroll::UnrevokeCertificate(const char *serialno, const c { char parameters[5000]; char configname[5000]; + int num; PR_snprintf((char *)parameters, 5000, "serialNumber=%s",serialno); @@ -120,29 +126,36 @@ TOKENDB_PUBLIC int CertEnroll::UnrevokeCertificate(const char *serialno, const c char *servletID = (char*)RA::GetConfigStore()->GetConfigAsString(configname); PSHttpResponse *resp = sendReqToCA(servletID, parameters, connid); - // XXX - need to parse response - char *content = resp->getContent(); - char *p = strstr(content, "status="); - int num = *(p+7) - '0'; - RA::Debug("CertEnroll::UnrevokeCertificate", "status=%d", num); - if (num != 0) { - char *q = strstr(p, "error="); - q = q+6; - o_status = PL_strdup(q); - RA::Debug("CertEnroll::UnrevokeCertificate", "status string=%s", q); - } if (resp != NULL) { + // XXX - need to parse response + char *content = resp->getContent(); + char *p = strstr(content, "status="); + num = *(p+7) - '0'; + RA::Debug("CertEnroll::UnrevokeCertificate", "status=%d", num); + + if (num != 0) { + char *q = strstr(p, "error="); + q = q+6; + o_status = PL_strdup(q); + RA::Debug("CertEnroll::UnrevokeCertificate", "status string=%s", q); + } + if (content != NULL) { resp->freeContent(); content = NULL; } delete resp; resp = NULL; + } else { + RA::Debug("CertEnroll::UnrevokeCertificate", "serialno=%s reason=%s connid=%s failed: resp is NULL"); + o_status = PL_strdup("resp from sendReqToCA is NULL"); + num = 1; //non-zero } + return num; } -TOKENDB_PUBLIC Buffer *CertEnroll::RenewCertificate(PRUint64 serialno, const char *connid, const char *profileId) +TOKENDB_PUBLIC Buffer *CertEnroll::RenewCertificate(PRUint64 serialno, const char *connid, const char *profileId, char *error_msg) { char parameters[5000]; char configname[5000]; @@ -159,6 +172,7 @@ TOKENDB_PUBLIC Buffer *CertEnroll::RenewCertificate(PRUint64 serialno, const cha if (servlet == NULL) { RA::Debug("CertEnroll::RenewCertificate", "Missing the configuration parameter for %s", configname); + PR_snprintf(error_msg, 512, "Missing the configuration parameter for %s", configname); return NULL; } @@ -181,6 +195,7 @@ TOKENDB_PUBLIC Buffer *CertEnroll::RenewCertificate(PRUint64 serialno, const cha } else { RA::Error("CertEnroll::RenewCertificate", "sendReqToCA failure"); + PR_snprintf(error_msg, 512, "sendReqToCA failure"); return NULL; } @@ -197,6 +212,7 @@ Buffer * CertEnroll::EnrollCertificate( const char *uid, const char *cuid /*token id*/, const char *connid, + char *error_msg, SECItem** encodedPublicKeyInfo) { char parameters[5000]; @@ -206,7 +222,7 @@ Buffer * CertEnroll::EnrollCertificate( RA::Error("CertEnroll::EnrollCertificate", "SECKEY_EncodeDERSubjectPublicKeyInfo returns error"); - + PR_snprintf(error_msg, 512, "SECKEY_EncodeDERSubjectPublicKeyInfo returns error"); return NULL; } @@ -231,6 +247,7 @@ Buffer * CertEnroll::EnrollCertificate( RA::Error(LL_PER_PDU, "CertEnroll::EnrollCertificate", "BTOA_ConvertItemToAscii returns error"); + PR_snprintf(error_msg, 512, "BTOA_ConvertItemToAscii returns error"); return NULL; } RA::Debug(LL_PER_PDU, "CertEnroll::EnrollCertificate", @@ -264,6 +281,7 @@ Buffer * CertEnroll::EnrollCertificate( } else { RA::Error("CertEnroll::EnrollCertificate", "sendReqToCA failure"); + PR_snprintf(error_msg, 512, "sendReqToCA failure"); return NULL; } |
