Hi,

CA Cert is stored in optionalData of the OicSecCred structure.
*SRPSaveTrustCertChain*, does handle this correctly. But, the
implementation of *GetCaCert *is using temp->publicData. This should be
temp->optionalData.

struct OicSecCred
{
    // <Attribute ID>:<Read/Write>:<Multiple/Single>:<Mandatory?>:<Type>
    uint16_t            credId;         // 0:R:S:Y:UINT16
    OicUuid_t           subject;        // 1:R:S:Y:oic.uuid
    // If roleId.id is all zeroes, this property is not set.
    OicSecRole_t        roleId;         // 2:R:M:N:oic.sec.roletype
    OicSecCredType_t    credType;       // 3:R:S:Y:oic.sec.credtype
#if defined(__WITH_DTLS__) || defined(__WITH_TLS__)
    OicSecKey_t         publicData;     // own cerificate chain
    char            *credUsage;            // 4:R:S:N:String
  *  OicSecOpt_t        optionalData;   // CA's cerificate chain*
#endif /* __WITH_DTLS__  or __WITH_TLS__*/
    OicSecKey_t         privateData;    // 6:R:S:N:oic.sec.key
    char                *period;        // 7:R:S:N:String
//    OicUuid_t            rownerID;      // 8:R:S:Y:oic.uuid
#ifdef MULTIPLE_OWNER
    OicUuid_t            *eownerID;     //9:R:S:N:oic.uuid
#endif //MULTIPLE_OWNER
    OicSecCred_t        *next;
};

-Ravee
_______________________________________________
iotivity-dev mailing list
iotivity-dev@lists.iotivity.org
https://lists.iotivity.org/mailman/listinfo/iotivity-dev

Reply via email to