/* CSSM_OID --> OID string */ const char *oidToOidString( const CSSM_OID *oid) { unsigned dex; static char unknownOidString[200]; for(dex=0; dex<NUM_OID_STRINGS; dex++) { OidString *os = &oidStrings[dex]; if(compareOids(oid, os->oid)) { return os->oidStr; } } sprintf(unknownOidString, "Unknown OID length %ld, value { ", oid->Length); for(dex=0; dex<oid->Length; dex++) { char tmp[6]; sprintf(tmp, "%02X ", oid->Data[dex]); strcat(unknownOidString, tmp); } strcat(unknownOidString, " }"); return unknownOidString; }
static void printRdn(const NSS_RDN *rdn, OidParser &parser) { unsigned numAtvs = nssArraySize((const void **)rdn->atvs); char *fieldName; for(unsigned dex=0; dex<numAtvs; dex++) { const NSS_ATV *atv = rdn->atvs[dex]; if(compareOids(&atv->type, &CSSMOID_CountryName)) { fieldName = "Country "; } else if(compareOids(&atv->type, &CSSMOID_OrganizationName)) { fieldName = "Org "; } else if(compareOids(&atv->type, &CSSMOID_LocalityName)) { fieldName = "Locality "; } else if(compareOids(&atv->type, &CSSMOID_OrganizationalUnitName)) { fieldName = "OrgUnit "; } else if(compareOids(&atv->type, &CSSMOID_CommonName)) { fieldName = "Common Name "; } else if(compareOids(&atv->type, &CSSMOID_Surname)) { fieldName = "Surname "; } else if(compareOids(&atv->type, &CSSMOID_Title)) { fieldName = "Title "; } else if(compareOids(&atv->type, &CSSMOID_Surname)) { fieldName = "Surname "; } else if(compareOids(&atv->type, &CSSMOID_StateProvinceName)) { fieldName = "State "; } else if(compareOids(&atv->type, &CSSMOID_CollectiveStateProvinceName)) { fieldName = "Coll. State "; } else if(compareOids(&atv->type, &CSSMOID_EmailAddress)) { /* deprecated, used by Thawte */ fieldName = "Email addrs "; } else { fieldName = "Other name "; } indent(); printf("%s : ", fieldName); /* Not strictly true here, but we'll just assume we can print everything */ printAscii((char *)atv->value.item.Data, atv->value.item.Length, atv->value.item.Length); putchar('\n'); } }