aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/botan/src/lib/utils/read_kv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/3rdparty/botan/src/lib/utils/read_kv.cpp')
-rw-r--r--src/libs/3rdparty/botan/src/lib/utils/read_kv.cpp85
1 files changed, 0 insertions, 85 deletions
diff --git a/src/libs/3rdparty/botan/src/lib/utils/read_kv.cpp b/src/libs/3rdparty/botan/src/lib/utils/read_kv.cpp
deleted file mode 100644
index cdc84c6229..0000000000
--- a/src/libs/3rdparty/botan/src/lib/utils/read_kv.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
-* (C) 2018 Ribose Inc
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/parsing.h>
-#include <botan/exceptn.h>
-
-namespace Botan {
-
-std::map<std::string, std::string> read_kv(const std::string& kv)
- {
- std::map<std::string, std::string> m;
- if(kv == "")
- return m;
-
- std::vector<std::string> parts;
-
- try
- {
- parts = split_on(kv, ',');
- }
- catch(std::exception&)
- {
- throw Invalid_Argument("Bad KV spec");
- }
-
- bool escaped = false;
- bool reading_key = true;
- std::string cur_key;
- std::string cur_val;
-
- for(char c : kv)
- {
- if(c == '\\' && !escaped)
- {
- escaped = true;
- }
- else if(c == ',' && !escaped)
- {
- if(cur_key.empty())
- throw Invalid_Argument("Bad KV spec empty key");
-
- if(m.find(cur_key) != m.end())
- throw Invalid_Argument("Bad KV spec duplicated key");
- m[cur_key] = cur_val;
- cur_key = "";
- cur_val = "";
- reading_key = true;
- }
- else if(c == '=' && !escaped)
- {
- if(reading_key == false)
- throw Invalid_Argument("Bad KV spec unexpected equals sign");
- reading_key = false;
- }
- else
- {
- if(reading_key)
- cur_key += c;
- else
- cur_val += c;
-
- if(escaped)
- escaped = false;
- }
- }
-
- if(!cur_key.empty())
- {
- if(reading_key == false)
- {
- if(m.find(cur_key) != m.end())
- throw Invalid_Argument("Bad KV spec duplicated key");
- m[cur_key] = cur_val;
- }
- else
- throw Invalid_Argument("Bad KV spec incomplete string");
- }
-
- return m;
- }
-
-}