Back to index

lightning-sunbird  0.9+nobinonly
Functions
respcli.c File Reference
#include "cmmf.h"
#include "cmmfi.h"
#include "crmf.h"
#include "crmfi.h"
#include "secitem.h"
#include "secder.h"
#include "secasn1.h"

Go to the source code of this file.

Functions

CMMFCertRepContent * CMMF_CreateCertRepContentFromDER (CERTCertDBHandle *db, const char *buf, long len)
long CMMF_CertResponseGetCertReqId (CMMFCertResponse *inCertResp)
PRBool cmmf_CertRepContentIsIndexValid (CMMFCertRepContent *inCertRepContent, int inIndex)
CMMFCertResponse * CMMF_CertRepContentGetResponseAtIndex (CMMFCertRepContent *inCertRepContent, int inIndex)
CMMFPKIStatus CMMF_CertResponseGetPKIStatusInfoStatus (CMMFCertResponse *inCertResp)
CERTCertificate * CMMF_CertResponseGetCertificate (CMMFCertResponse *inCertResp, CERTCertDBHandle *inCertdb)
CERTCertList * CMMF_CertRepContentGetCAPubs (CMMFCertRepContent *inCertRepContent)

Function Documentation

CERTCertList* CMMF_CertRepContentGetCAPubs ( CMMFCertRepContent *  inCertRepContent)

Definition at line 161 of file respcli.c.

{
    PORT_Assert (inCertRepContent != NULL);
    if (inCertRepContent == NULL || inCertRepContent->caPubs == NULL) {
        return NULL;
    }
    return cmmf_MakeCertList(inCertRepContent->caPubs);
}

Here is the call graph for this function:

CMMFCertResponse* CMMF_CertRepContentGetResponseAtIndex ( CMMFCertRepContent *  inCertRepContent,
int  inIndex 
)

Definition at line 114 of file respcli.c.

{
    CMMFCertResponse *certResponse;
    SECStatus         rv;

    PORT_Assert(inCertRepContent != NULL &&
              cmmf_CertRepContentIsIndexValid(inCertRepContent, inIndex));
    if (inCertRepContent == NULL ||
       !cmmf_CertRepContentIsIndexValid(inCertRepContent, inIndex)) {
        return NULL;
    }
    certResponse = PORT_ZNew(CMMFCertResponse);
    rv = cmmf_CopyCertResponse(NULL, certResponse, 
                            inCertRepContent->response[inIndex]);
    if (rv != SECSuccess) {
        CMMF_DestroyCertResponse(certResponse);
       certResponse = NULL;
    }
    return certResponse;
}

Here is the call graph for this function:

PRBool cmmf_CertRepContentIsIndexValid ( CMMFCertRepContent *  inCertRepContent,
int  inIndex 
)

Definition at line 103 of file respcli.c.

{
    int numResponses;

    PORT_Assert(inCertRepContent != NULL);
    numResponses = CMMF_CertRepContentGetNumResponses(inCertRepContent);
    return (PRBool)(inIndex >= 0 && inIndex < numResponses);
}

Here is the call graph for this function:

CERTCertificate* CMMF_CertResponseGetCertificate ( CMMFCertResponse *  inCertResp,
CERTCertDBHandle *  inCertdb 
)

Definition at line 147 of file respcli.c.

{
    PORT_Assert(inCertResp != NULL);
    if (inCertResp == NULL || inCertResp->certifiedKeyPair == NULL) {
        return NULL;
    }
    
    return cmmf_CertOrEncCertGetCertificate(
              &inCertResp->certifiedKeyPair->certOrEncCert, inCertdb);
                               
}

Here is the call graph for this function:

long CMMF_CertResponseGetCertReqId ( CMMFCertResponse *  inCertResp)

Definition at line 93 of file respcli.c.

{
    PORT_Assert(inCertResp != NULL);
    if (inCertResp == NULL) {
        return -1;
    }
    return DER_GetInteger(&inCertResp->certReqId);
}

Here is the call graph for this function:

CMMFPKIStatus CMMF_CertResponseGetPKIStatusInfoStatus ( CMMFCertResponse *  inCertResp)

Definition at line 137 of file respcli.c.

{
    PORT_Assert(inCertResp != NULL);
    if (inCertResp == NULL) {
        return cmmfNoPKIStatus;
    }
    return cmmf_PKIStatusInfoGetStatus(&inCertResp->status);
}

Here is the call graph for this function:

CMMFCertRepContent* CMMF_CreateCertRepContentFromDER ( CERTCertDBHandle *  db,
const char *  buf,
long  len 
)

Definition at line 54 of file respcli.c.

{
    PRArenaPool        *poolp;
    CMMFCertRepContent *certRepContent;
    SECStatus           rv;
    int                 i;

    poolp = PORT_NewArena(CRMF_DEFAULT_ARENA_SIZE);
    if (poolp == NULL) {
        return NULL;
    }
    certRepContent = PORT_ArenaZNew(poolp, CMMFCertRepContent);
    if (certRepContent == NULL) {
        goto loser;
    }
    certRepContent->poolp = poolp;
    rv = SEC_ASN1Decode(poolp, certRepContent, CMMFCertRepContentTemplate,
                     buf, len);
    if (rv != SECSuccess) {
        goto loser;
    }
    if (certRepContent->response != NULL) {
        for (i=0; certRepContent->response[i] != NULL; i++) {
           rv = cmmf_decode_process_cert_response(poolp, db,
                                          certRepContent->response[i]);
           if (rv != SECSuccess) {
               goto loser;
           }
       }
    }
    certRepContent->isDecoded = PR_TRUE;
    return certRepContent;
 loser:
    PORT_FreeArena(poolp, PR_FALSE);
    return NULL;
}

Here is the call graph for this function:

Here is the caller graph for this function: