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

randombit / botan / 12976993364

26 Jan 2025 05:51PM UTC coverage: 91.251% (-0.005%) from 91.256%
12976993364

push

github

web-flow
Merge pull request #4599 from randombit/jack/split-api-and-compiler-headers

Split compiler.h into two headers

93963 of 102972 relevant lines covered (91.25%)

11437005.01 hits per line

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

97.3
/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp
1
/*
2
 * Classic McEliece Parameters
3
 * (C) 2024 Jack Lloyd
4
 *     2024 Fabian Albert, Amos Treiber - Rohde & Schwarz Cybersecurity
5
 *
6
 * Botan is released under the Simplified BSD License (see license.txt)
7
 **/
8

9
#include <botan/cmce_parameter_set.h>
10

11
#include <botan/assert.h>
12
#include <botan/internal/fmt.h>
13

14
namespace Botan {
15

16
Classic_McEliece_Parameter_Set Classic_McEliece_Parameter_Set::from_string(std::string_view nm) {
156✔
17
   Code code = [&] {
468✔
18
      if(nm == "ClassicMcEliece_348864" || nm == "348864") {
176✔
19
         return ClassicMcEliece_348864;
18✔
20
      }
21
      if(nm == "ClassicMcEliece_348864f" || nm == "348864f") {
160✔
22
         return ClassicMcEliece_348864f;
14✔
23
      }
24
      if(nm == "ClassicMcEliece_460896" || nm == "460896") {
132✔
25
         return ClassicMcEliece_460896;
8✔
26
      }
27
      if(nm == "ClassicMcEliece_460896f" || nm == "460896f") {
130✔
28
         return ClassicMcEliece_460896f;
8✔
29
      }
30
      if(nm == "ClassicMcEliece_6688128" || nm == "6688128") {
120✔
31
         return ClassicMcEliece_6688128;
8✔
32
      }
33
      if(nm == "ClassicMcEliece_6688128f" || nm == "6688128f") {
112✔
34
         return ClassicMcEliece_6688128f;
8✔
35
      }
36
      if(nm == "ClassicMcEliece_6688128pc" || nm == "6688128pc") {
104✔
37
         return ClassicMcEliece_6688128pc;
8✔
38
      }
39
      if(nm == "ClassicMcEliece_6688128pcf" || nm == "6688128pcf") {
108✔
40
         return ClassicMcEliece_6688128pcf;
10✔
41
      }
42
      if(nm == "ClassicMcEliece_6960119" || nm == "6960119") {
84✔
43
         return ClassicMcEliece_6960119;
8✔
44
      }
45
      if(nm == "ClassicMcEliece_6960119f" || nm == "6960119f") {
76✔
46
         return ClassicMcEliece_6960119f;
8✔
47
      }
48
      if(nm == "ClassicMcEliece_6960119pc" || nm == "6960119pc") {
68✔
49
         return ClassicMcEliece_6960119pc;
8✔
50
      }
51
      if(nm == "ClassicMcEliece_6960119pcf" || nm == "6960119pcf") {
70✔
52
         return ClassicMcEliece_6960119pcf;
18✔
53
      }
54
      if(nm == "ClassicMcEliece_8192128" || nm == "8192128") {
40✔
55
         return ClassicMcEliece_8192128;
8✔
56
      }
57
      if(nm == "ClassicMcEliece_8192128f" || nm == "8192128f") {
32✔
58
         return ClassicMcEliece_8192128f;
8✔
59
      }
60
      if(nm == "ClassicMcEliece_8192128pc" || nm == "8192128pc") {
24✔
61
         return ClassicMcEliece_8192128pc;
8✔
62
      }
63
      if(nm == "ClassicMcEliece_8192128pcf" || nm == "8192128pcf") {
16✔
64
         return ClassicMcEliece_8192128pcf;
8✔
65
      }
66

67
      throw Invalid_Argument(fmt("Cannot convert '{}' to ClassicMcEliece parameter set", nm));
×
68
   }();
156✔
69
   return Classic_McEliece_Parameter_Set(code);
156✔
70
}
71

72
std::string Classic_McEliece_Parameter_Set::to_string() const {
70✔
73
   switch(m_code) {
70✔
74
      case ClassicMcEliece_348864:
21✔
75
         return "ClassicMcEliece_348864";
21✔
76
      case ClassicMcEliece_348864f:
2✔
77
         return "ClassicMcEliece_348864f";
2✔
78
      case ClassicMcEliece_460896:
2✔
79
         return "ClassicMcEliece_460896";
2✔
80
      case ClassicMcEliece_460896f:
2✔
81
         return "ClassicMcEliece_460896f";
2✔
82
      case ClassicMcEliece_6688128:
2✔
83
         return "ClassicMcEliece_6688128";
2✔
84
      case ClassicMcEliece_6688128f:
2✔
85
         return "ClassicMcEliece_6688128f";
2✔
86
      case ClassicMcEliece_6688128pc:
2✔
87
         return "ClassicMcEliece_6688128pc";
2✔
88
      case ClassicMcEliece_6688128pcf:
2✔
89
         return "ClassicMcEliece_6688128pcf";
2✔
90
      case ClassicMcEliece_6960119:
2✔
91
         return "ClassicMcEliece_6960119";
2✔
92
      case ClassicMcEliece_6960119f:
2✔
93
         return "ClassicMcEliece_6960119f";
2✔
94
      case ClassicMcEliece_6960119pc:
2✔
95
         return "ClassicMcEliece_6960119pc";
2✔
96
      case ClassicMcEliece_6960119pcf:
21✔
97
         return "ClassicMcEliece_6960119pcf";
21✔
98
      case ClassicMcEliece_8192128:
2✔
99
         return "ClassicMcEliece_8192128";
2✔
100
      case ClassicMcEliece_8192128f:
2✔
101
         return "ClassicMcEliece_8192128f";
2✔
102
      case ClassicMcEliece_8192128pc:
2✔
103
         return "ClassicMcEliece_8192128pc";
2✔
104
      case ClassicMcEliece_8192128pcf:
2✔
105
         return "ClassicMcEliece_8192128pcf";
2✔
106
   }
107
   BOTAN_ASSERT_UNREACHABLE();
×
108
}
109

110
Classic_McEliece_Parameter_Set Classic_McEliece_Parameter_Set::from_oid(const OID& oid) {
48✔
111
   return from_string(oid.to_formatted_string());
96✔
112
}
113

114
}  // 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