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

randombit / botan / 12993346889

27 Jan 2025 04:15PM UTC coverage: 91.248% (+0.002%) from 91.246%
12993346889

push

github

butteronarchbtw
add (s)afi encoding & decoding

94261 of 103302 relevant lines covered (91.25%)

11708235.22 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/internal/fmt.h>
12

13
namespace Botan {
14

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

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

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

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

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