• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

randombit / botan / 12970750576

26 Jan 2025 02:46AM UTC coverage: 91.251% (+0.02%) from 91.234%
12970750576

Pull #4596

github

web-flow
Merge 60e6fbb49 into 373fcb730
Pull Request #4596: Add OID::hash_code

93964 of 102973 relevant lines covered (91.25%)

11478207.02 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

76.19
/src/lib/asn1/oid_map.cpp
1
/*
2
* (C) 2023 Jack Lloyd
3
*
4
* Botan is released under the Simplified BSD License (see license.txt)
5
*/
6

7
#include <botan/internal/oid_map.h>
8

9
namespace Botan {
10

11
OID_Map::OID_Map() {
2,237✔
12
   m_str2oid = OID_Map::load_str2oid_map();
2,237✔
13
   m_oid2str = OID_Map::load_oid2str_map();
2,237✔
14
}
2,237✔
15

16
OID_Map& OID_Map::global_registry() {
153,915✔
17
   static OID_Map g_map;
153,915✔
18
   return g_map;
153,915✔
19
}
20

21
void OID_Map::add_oid(const OID& oid, std::string_view str) {
7✔
22
   lock_guard_type<mutex_type> lock(m_mutex);
7✔
23

24
   auto o2s = m_oid2str.find(oid);
7✔
25

26
   if(o2s == m_oid2str.end()) {
7✔
27
      m_oid2str.insert(std::make_pair(oid, str));
4✔
28
   } else if(o2s->second != str) {
5✔
29
      throw Invalid_State("Cannot register two different names to a single OID");
1✔
30
   }
31

32
   auto s2o = m_str2oid.find(std::string(str));
12✔
33

34
   if(s2o == m_str2oid.end()) {
6✔
35
      m_str2oid.insert(std::make_pair(str, oid));
5✔
36
   }
37
}
6✔
38

39
void OID_Map::add_str2oid(const OID& oid, std::string_view str) {
×
40
   lock_guard_type<mutex_type> lock(m_mutex);
×
41
   if(!m_str2oid.contains(std::string(str))) {
×
42
      m_str2oid.insert(std::make_pair(str, oid));
×
43
   }
44
}
×
45

46
void OID_Map::add_oid2str(const OID& oid, std::string_view str) {
×
47
   lock_guard_type<mutex_type> lock(m_mutex);
×
48
   if(!m_oid2str.contains(oid)) {
×
49
      m_oid2str.insert(std::make_pair(oid, str));
×
50
   }
51
}
×
52

53
std::string OID_Map::oid2str(const OID& oid) {
67,642✔
54
   lock_guard_type<mutex_type> lock(m_mutex);
67,642✔
55

56
   auto i = m_oid2str.find(oid);
67,642✔
57
   if(i != m_oid2str.end()) {
67,642✔
58
      return i->second;
124,736✔
59
   }
60

61
   return "";
10,548✔
62
}
67,642✔
63

64
OID OID_Map::str2oid(std::string_view str) {
86,266✔
65
   lock_guard_type<mutex_type> lock(m_mutex);
86,266✔
66
   auto i = m_str2oid.find(std::string(str));
172,532✔
67
   if(i != m_str2oid.end()) {
86,266✔
68
      return i->second;
86,266✔
69
   }
70

71
   return OID();
247✔
72
}
86,266✔
73

74
}  // namespace Botan
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc