@@ -17,26 +17,13 @@ namespace session::config {
1717
1818namespace {
1919
20- constexpr std::array<session::SessionIdPrefix, 6 > all_session_id_prefixes = {
21- session::SessionIdPrefix::standard,
22- session::SessionIdPrefix::group,
23- session::SessionIdPrefix::community_blinded_legacy,
24- session::SessionIdPrefix::community_blinded,
25- session::SessionIdPrefix::version_blinded,
26- session::SessionIdPrefix::unblinded};
27-
28- inline std::string to_string (session::SessionIdPrefix prefix) {
29- switch (prefix) {
30- case session::SessionIdPrefix::unblinded: return " 00" ;
31- case session::SessionIdPrefix::group: return " 03" ;
32- case session::SessionIdPrefix::standard: return " 05" ;
33- case session::SessionIdPrefix::community_blinded_legacy: return " 15" ;
34- case session::SessionIdPrefix::community_blinded: return " 25" ;
35- case session::SessionIdPrefix::version_blinded: return " 07" ;
36- }
37-
38- return " 05" ; // Fallback to standard, shouldn't occur
39- };
20+ constexpr std::array all_session_id_prefixes = {
21+ session::SessionIDPrefix::standard,
22+ session::SessionIDPrefix::group,
23+ session::SessionIDPrefix::community_blinded_legacy,
24+ session::SessionIDPrefix::community_blinded,
25+ session::SessionIDPrefix::version_blinded,
26+ session::SessionIDPrefix::unblinded};
4027
4128} // namespace
4229
@@ -48,13 +35,10 @@ void check_session_id(std::string_view session_id, std::string_view prefix) {
4835 " ; got " + std::string{session_id}};
4936}
5037
51- SessionIdPrefix get_session_id_prefix (std::string_view id) {
52- std::string prefix_list_str = " " ;
53-
54- if (oxenc::is_hex (id)) {
38+ SessionIDPrefix get_session_id_prefix (std::string_view id) {
39+ if (oxenc::is_hex (id) && id.size () == 66 ) {
5540 for (auto prefix : all_session_id_prefixes) {
5641 auto prefix_str = to_string (prefix);
57- prefix_list_str += (prefix_list_str.empty () ? prefix_str : " , {}" _format (prefix_str));
5842
5943 if ((id.size () == 64 + prefix_str.size () &&
6044 id.substr (0 , prefix_str.size ()) == prefix_str))
@@ -63,9 +47,10 @@ SessionIdPrefix get_session_id_prefix(std::string_view id) {
6347 }
6448
6549 // If we get here then the id wasn't any of the currently defined prefixes
66- throw std::invalid_argument{
67- " Invalid session ID: expected 66 hex digits starting with one of [" + prefix_list_str +
68- " ]; got " + std::string{id}};
50+ throw std::invalid_argument{fmt::format (
51+ " Invalid session ID: expected 66 hex digits starting with one of [{}]; got {}" ,
52+ fmt::join (all_session_id_prefixes, " , " ),
53+ id)};
6954}
7055
7156std::string session_id_to_bytes (std::string_view session_id, std::string_view prefix) {
0 commit comments