/************************************************* * Parse an ASN.1 OID string * *************************************************/ std::vector<u32bit> parse_asn1_oid(const std::string& oid) { std::string substring; std::vector<u32bit> oid_elems; for(std::string::const_iterator j = oid.begin(); j != oid.end(); ++j) { char c = *j; if(c == '.') { if(substring == "") throw Invalid_OID(oid); oid_elems.push_back(to_u32bit(substring)); substring.clear(); } else substring += c; } if(substring == "") throw Invalid_OID(oid); oid_elems.push_back(to_u32bit(substring)); if(oid_elems.size() < 2) throw Invalid_OID(oid); return oid_elems; }
/* * Parse an ASN.1 OID string */ std::vector<u32bit> parse_asn1_oid(const std::string& oid) { std::string substring; std::vector<u32bit> oid_elems; for(auto i = oid.begin(); i != oid.end(); ++i) { char c = *i; if(c == '.') { if(substring.empty()) throw Invalid_OID(oid); oid_elems.push_back(to_u32bit(substring)); substring.clear(); } else substring += c; } if(substring.empty()) throw Invalid_OID(oid); oid_elems.push_back(to_u32bit(substring)); if(oid_elems.size() < 2) throw Invalid_OID(oid); return oid_elems; }