[openssl-users] Error condition at a customer site
Jakob Bohm
jb-openssl at wisemo.com
Mon Jul 13 00:58:10 UTC 2015
On 12/07/2015 22:01, Thomas Herchek wrote:
> Hi,
>
> Sometimes, during the processing of an HTTP cert response from the
> Symantec PKI Manager SCEP server, our application encounters an error
> condition while validating the certs attributes. The error that we
> see is "Transaction not permitted or supported".
>
> It appears that this error is detected either in the ASN1_TYPE_get()
> function or the OBJ_nid2obj() function.
>
> Can you tell me, what conditions might cause this type of failure when
> unwrapping and validating a cert response?
>
> Here is a snippet of our code that detects this condition:
>
> /* Get signed attributes */
>
> attribs = PKCS7_get_signed_attributes(si);
>
> if (attribs == NULL)
>
> {
>
> ReportAPIError("[PKCS7_UnWrap] No attributes found in PKCS#7 data",
> szErr);
>
> goto cleanup;
>
> }
>
> ...
>
> /* Get pkiStatus */
>
> if ((i = get_signed_attribute(attribs, nid_pkiStatus,
> V_ASN1_PRINTABLESTRING, &p)) == 1)
>
> {
>
> ReportAPIError("[PKCS7_UnWrap] Failed to get the signer pkiStatus
> attributes", szErr);
>
> goto cleanup;
>
> }
>
> /* Get failInfo */
>
> if (atoi(p)!= SCEP_PKISTATUS_SUCCESS)
>
> {
>
> if (atoi(p) == SCEP_PKISTATUS_FAILURE)
>
> {
>
> if ((i =
> get_signed_attribute(attribs, nid_failInfo, V_ASN1_PRINTABLESTRING,
> &p)) == 1)
>
> {
>
> ReportError("[PKCS7_UnWrap] Cannot find failInfo", szErr);
>
> goto cleanup;
>
> }
>
> switch (atoi(p))
>
> {
>
> case SCEP_FAILINFO_BADALG:
>
> ReportError("[PKCS7_UnWrap] Unrecognized or unsupported algorithm
> ident", szErr);
>
> break;
>
> case
> SCEP_FAILINFO_BADMSGCHK:
>
> ReportError("[PKCS7_UnWrap] Integrity check failed", szErr);
>
> break;
>
> case SCEP_FAILINFO_BADREQ:
>
> ReportError("[PKCS7_UnWrap] Transaction not permitted or supported",
> szErr);
>
> break;
>
> case
> SCEP_FAILINFO_BADTIME:
>
> ReportError("[PKCS7_UnWrap] Message time field was not sufficiently
> close to the system time", szErr);
>
> break;
>
> case
> SCEP_FAILINFO_BADCERTID:
>
> ReportError("[PKCS7_UnWrap] No certificate could be identified
> matching", szErr);
>
> break;
>
> default:
>
> ReportError("[PKCS7_UnWrap] Wrong failInfo in reply", szErr);
>
> }
>
> }
>
> else
>
> {
>
> ReportAPIError("[PKCS7_UnWrap] PKI Status: Not success", szErr);
>
> }
>
> goto cleanup;
>
As I read the code you quoted above, all values of pkiStatus come from
whomever signed the PKCS#7 message (Symantec?). Specifically, the
message contained inside it a digitally signed extension attribute of
type "pkiStatus" with a value of SCEP_FAILINFO_BADREQ .
If my interpretation is right, this means you need to look at why the
SCEP server (or whatever else returns that PKCS#7 message) returned
SCEP_FAILINFO_BADREQ.
I don't know much about SCEP specifically, so I cannot dig deeper into
this myself.
Enjoy
Jakob
--
Jakob Bohm, CIO, Partner, WiseMo A/S. http://www.wisemo.com
Transformervej 29, 2860 Søborg, Denmark. Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20150713/5af6e415/attachment.html>
More information about the openssl-users
mailing list