Lines Matching refs:elem
106 static const char *getASN1Element(curl_asn1Element *elem,
110 static const char *getASN1Element(curl_asn1Element *elem, in getASN1Element() argument
126 elem->header = beg; in getASN1Element()
128 elem->constructed = (b & 0x20) != 0; in getASN1Element()
129 elem->class = (b >> 6) & 3; in getASN1Element()
133 elem->tag = b; in getASN1Element()
144 if(!elem->constructed) in getASN1Element()
146 elem->beg = beg; in getASN1Element()
154 elem->end = beg; in getASN1Element()
170 elem->beg = beg; in getASN1Element()
171 elem->end = beg + len; in getASN1Element()
172 return elem->end; in getASN1Element()
567 static const char *ASN1tostr(curl_asn1Element *elem, int type) in ASN1tostr() argument
569 if(elem->constructed) in ASN1tostr()
573 type = elem->tag; /* Type not forced: use element tag as type. */ in ASN1tostr()
577 return bool2str(elem->beg, elem->end); in ASN1tostr()
580 return int2str(elem->beg, elem->end); in ASN1tostr()
582 return bit2str(elem->beg, elem->end); in ASN1tostr()
584 return octet2str(elem->beg, elem->end); in ASN1tostr()
588 return OID2str(elem->beg, elem->end, TRUE); in ASN1tostr()
590 return UTime2str(elem->beg, elem->end); in ASN1tostr()
592 return GTime2str(elem->beg, elem->end); in ASN1tostr()
601 return string2str(type, elem->beg, elem->end); in ASN1tostr()
708 curl_asn1Element elem; in Curl_parseX509() local
718 if(!getASN1Element(&elem, beg, end)) in Curl_parseX509()
720 beg = elem.beg; in Curl_parseX509()
721 end = elem.end; in Curl_parseX509()
742 beg = getASN1Element(&elem, beg, end); in Curl_parseX509()
745 if(elem.tag == 0) { in Curl_parseX509()
746 if(!getASN1Element(&cert->version, elem.beg, elem.end)) in Curl_parseX509()
748 beg = getASN1Element(&elem, beg, end); in Curl_parseX509()
752 cert->serialNumber = elem; in Curl_parseX509()
760 beg = getASN1Element(&elem, beg, end); in Curl_parseX509()
763 ccp = getASN1Element(&cert->notBefore, elem.beg, elem.end); in Curl_parseX509()
766 if(!getASN1Element(&cert->notAfter, ccp, elem.end)) in Curl_parseX509()
786 cert->extensions.tag = elem.tag = 0; in Curl_parseX509()
793 beg = getASN1Element(&elem, beg, end); in Curl_parseX509()
797 if(elem.tag == 1) { in Curl_parseX509()
798 cert->issuerUniqueID = elem; in Curl_parseX509()
800 beg = getASN1Element(&elem, beg, end); in Curl_parseX509()
805 if(elem.tag == 2) { in Curl_parseX509()
806 cert->subjectUniqueID = elem; in Curl_parseX509()
808 beg = getASN1Element(&elem, beg, end); in Curl_parseX509()
813 if(elem.tag == 3) in Curl_parseX509()
814 if(!getASN1Element(&cert->extensions, elem.beg, elem.end)) in Curl_parseX509()
857 const char *label, curl_asn1Element *elem) in do_pubkey_field() argument
863 output = ASN1tostr(elem, 0); in do_pubkey_field()
877 curl_asn1Element elem; in do_pubkey() local
891 p = getASN1Element(&elem, pk.beg, pk.end); in do_pubkey()
896 for(q = elem.beg; !*q && q < elem.end; q++) in do_pubkey()
898 len = (unsigned long)((elem.end - q) * 8); in do_pubkey()
903 elem.beg = q; /* Strip leading zero bytes. */ in do_pubkey()
914 do_pubkey_field(data, certnum, "rsa(n)", &elem); in do_pubkey()
915 if(!getASN1Element(&elem, p, pk.end)) in do_pubkey()
917 do_pubkey_field(data, certnum, "rsa(e)", &elem); in do_pubkey()
920 p = getASN1Element(&elem, param->beg, param->end); in do_pubkey()
922 do_pubkey_field(data, certnum, "dsa(p)", &elem); in do_pubkey()
923 p = getASN1Element(&elem, p, param->end); in do_pubkey()
925 do_pubkey_field(data, certnum, "dsa(q)", &elem); in do_pubkey()
926 if(getASN1Element(&elem, p, param->end)) { in do_pubkey()
927 do_pubkey_field(data, certnum, "dsa(g)", &elem); in do_pubkey()
934 p = getASN1Element(&elem, param->beg, param->end); in do_pubkey()
936 do_pubkey_field(data, certnum, "dh(p)", &elem); in do_pubkey()
937 if(getASN1Element(&elem, param->beg, param->end)) { in do_pubkey()
938 do_pubkey_field(data, certnum, "dh(g)", &elem); in do_pubkey()
1140 curl_asn1Element elem; in Curl_verifyhost() local
1187 ext.beg = getASN1Element(&elem, ext.beg, ext.end); in Curl_verifyhost()
1191 if(elem.tag == CURL_ASN1_BOOLEAN) { in Curl_verifyhost()
1192 ext.beg = getASN1Element(&elem, ext.beg, ext.end); in Curl_verifyhost()
1197 if(!getASN1Element(&elem, elem.beg, elem.end)) in Curl_verifyhost()
1200 for(q = elem.beg; matched != 1 && q < elem.end;) { in Curl_verifyhost()
1201 q = getASN1Element(&name, q, elem.end); in Curl_verifyhost()
1247 p = getASN1Element(&elem, p, dn.end); in Curl_verifyhost()
1251 elem.beg = checkOID(elem.beg, elem.end, cnOID); in Curl_verifyhost()
1252 if(elem.beg) in Curl_verifyhost()
1253 name = elem; /* Latch CN. */ in Curl_verifyhost()
1258 if(!getASN1Element(&elem, name.beg, name.end)) in Curl_verifyhost()
1261 len = utf8asn1str(&dnsname, elem.tag, elem.beg, elem.end); in Curl_verifyhost()