fakeclient_op_close: 200,
//security (all principals)
- secure_io: 1,
+ secure_io: true,
sign_scheme: 0, /* 0=esign, 1=RSA */
hash_scheme: 0, /* 0=sha-1, 1=sha-256,
2=sha-512, 3 = md5 */
g_conf.tick = atoi(args[++i]);
// security flag to turn off security
- else if (strcmp(args[i], "--no_sec") == 0) {
- g_conf.secure_io = 0;
- i++;
- }
+ else if (strcmp(args[i], "--no_sec") == 0)
+ g_conf.secure_io = false;
else if (strcmp(args[i], "--file_layout_ssize") == 0)
g_OSD_FileLayout.stripe_size = atoi(args[++i]);
#include "common/Timer.h"
+// crypto library
+#include "crypto/CryptoLib.h"
+using namespace CryptoLib;
+
#define NUMMDS g_conf.num_mds
#define NUMOSD g_conf.num_osd
#define NUMCLIENT g_conf.num_client
g_clock.tare();
+
+ if (g_conf.secure_io) {
+ cout << "Testing crypto library" << endl;
+
+ const byte* myMsg = (const byte*)"hash me";
+ byte digestBuf[SHA1DIGESTSIZE];
+ byte hexBuf[2*SHA1DIGESTSIZE];
+
+ sha1(myMsg,digestBuf,strlen((const char*)myMsg));
+ toHex(digestBuf, hexBuf, SHA1DIGESTSIZE,
+ 2*SHA1DIGESTSIZE);
+
+ cerr << "SHA1 of " << myMsg << " is " <<
+ string((const char*)hexBuf,2*SHA1DIGESTSIZE) << endl;
+ }
MonMap *monmap = new MonMap(g_conf.num_mon);
#include <map>
using namespace std;
+#include"crypto/CryptoLib.h"
+using namespace CryptoLib;
+
/*
* some system constants
list<int> new_out;
map<int,float> new_overload; // updated overload value
list<int> old_overload; // no longer overload
+ map<int,string> added_osd_keys; // new public keys
+ list<int> removed_osd_keys; // public keys to remove
void encode(bufferlist& bl) {
bl.append((char*)&epoch, sizeof(epoch));
::_encode(new_in, bl);
::_encode(new_out, bl);
::_encode(new_overload, bl);
+ //::_encode(added_osd_keys, bl);
+ //::_encode(removed_osd_keys, bl);
}
void decode(bufferlist& bl, int& off) {
bl.copy(off, sizeof(epoch), (char*)&epoch);
::_decode(new_in, bl, off);
::_decode(new_out, bl, off);
::_decode(new_overload, bl, off);
+ //::_decode(added_osd_keys, bl, off);
+ //::_decode(removed_osd_keys, bl, off);
}
Incremental(epoch_t e=0) : epoch(e), mon_epoch(0) {}
set<int> out_osds; // list of unmapped disks
map<int,float> overload_osds;
map<int,entity_inst_t> osd_inst;
+ map<int,string> osd_keys; //all public keys
public:
Crush crush; // hierarchical map
const set<int>& get_down_osds() { return down_osds; }
const set<int>& get_out_osds() { return out_osds; }
const map<int,float>& get_overload_osds() { return overload_osds; }
+ const map<int,string>& get_keys() { return osd_keys; }
bool is_down(int osd) { return down_osds.count(osd); }
bool is_up(int osd) { return !is_down(osd); }
_encode(out_osds, blist);
_encode(overload_osds, blist);
_encode(osd_inst, blist);
+ //_encode(osd_keys, blist);
crush._encode(blist);
}
_decode(out_osds, blist, off);
_decode(overload_osds, blist, off);
_decode(osd_inst, blist, off);
+ //_decode(osd_keys, blist, off);
crush._decode(blist, off);
}