Hi all, 

Sorry if it as a stupid question but...

I'm trying to add an custom policy qualifier attribute with another NID 
different from NID_id_qt_cps to an PKCS7 envelope.

If I use the NID_id_qt_cps all works fine, BUT if I change the NID to another 
created by OBJ_create the program crashes at the i2d_POLICYINFO function.

I cannot use the POLICYQUALINFO object with another NID different from 
NID_id_qt_cps??

There is my working code :

    ASN1_OBJECT *polID;
    POLICYINFO *pInfo = POLICYINFO_new();
    polID = OBJ_txt2obj("2.16.76.1.7.1.2.2.1", 0);
    pInfo->policyid = polID;
    POLICYQUALINFO *pQInfo;
    pQInfo = POLICYQUALINFO_new();
    pInfo->qualifiers = sk_POLICYQUALINFO_new_null();
    pQInfo = POLICYQUALINFO_new();
    sk_POLICYQUALINFO_push(pInfo->qualifiers, pQInfo);
    pQInfo->pqualid = OBJ_nid2obj(NID_id_qt_cps);
    pQInfo->d.cpsuri = M_ASN1_IA5STRING_new();
    char *urlPolitica = "http://politicas.icpbrasil.gov.br/PA_AD_RT_v2_1.der";;
    ASN1_STRING_set(pQInfo->d.cpsuri, urlPolitica, strlen(urlPolitica));
    POLICY_add_attrib(si, pInfo); // WORKS FINE
    
If I change the line :

    pQInfo->pqualid = OBJ_nid2obj(NID_id_qt_cps);

With :

    int NID_id_spq_ets_uri = OBJ_create("1.2.840.113549.1.9.16.5.1", 
"id_spq_ets_uri", "id_spq_ets_uri");
    pQInfo->pqualid = OBJ_nid2obj(NID_id_spq_ets_uri);

The program crashes at function POLICY_add_attrib in THIS LINE :

        int len = i2d_POLICYINFO(pInfo, NULL);

What I'm doing wrong???

Thanks in advance...

Rogério

Reply via email to