1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
#include "CondCore/Utilities/interface/Utilities.h"
#include "CondCore/CondDB/interface/DecodingKey.h"
#include "CondCore/CondDB/interface/Cipher.h"
#include "CondCore/CondDB/interface/Auth.h"
#include "CondCore/CondDB/interface/Exception.h"
#include <boost/program_options.hpp>
#include <fstream>
#include <iostream>
#include <stdexcept>
namespace cond {
class KeyMgrUtilities : public Utilities {
public:
KeyMgrUtilities();
~KeyMgrUtilities() override;
int execute() override;
};
} // namespace cond
cond::KeyMgrUtilities::KeyMgrUtilities() : Utilities("cmscond_key_mgr") {
addOption<std::string>("create", "c", "creating from input file data");
addOption<std::string>("read", "r", "read data from input file");
addOption<bool>("generate", "g", "generate a new key when not specified");
addOption<bool>("dump_template", "d", "dump an input file template");
}
cond::KeyMgrUtilities::~KeyMgrUtilities() {}
int cond::KeyMgrUtilities::execute() {
std::string inFile("");
if (hasOptionValue("create")) {
inFile = getOptionValue<std::string>("create");
size_t keySize = 0;
if (hasOptionValue("generate"))
keySize = auth::COND_AUTHENTICATION_KEY_SIZE;
if (!inFile.empty()) {
auth::DecodingKey key;
key.init(auth::DecodingKey::FILE_NAME, auth::COND_KEY, false);
key.createFromInputFile(inFile, keySize);
if (hasDebug())
key.list(std::cout);
key.flush();
return 0;
}
return 1;
}
if (hasOptionValue("read")) {
inFile = getOptionValue<std::string>("read");
if (!inFile.empty()) {
auth::DecodingKey key;
key.init(inFile, auth::COND_KEY);
key.list(std::cout);
return 0;
}
return 1;
}
if (hasOptionValue("dump_template")) {
std::cout << auth::DecodingKey::templateFile() << std::endl;
return 0;
}
return 1;
}
int main(int argc, char** argv) {
cond::KeyMgrUtilities utilities;
return utilities.run(argc, argv);
}
|