Commit 5d6dce4d authored by casualet's avatar casualet

add back

parent aa2e1394
...@@ -279,9 +279,11 @@ public: ...@@ -279,9 +279,11 @@ public:
master_key(analysis.getMasterKey()), master_key(analysis.getMasterKey()),
default_sec_rating(analysis.getDefaultSecurityRating()) {} default_sec_rating(analysis.getDefaultSecurityRating()) {}
unsigned int pos; // > a counter indicating how many projection unsigned int pos; // a counter indicating how many projection
// fields have been analyzed so far // fields have been analyzed so far
//each field may or may not has a salt field
std::map<const FieldMeta *, const salt_type> salts; std::map<const FieldMeta *, const salt_type> salts;
//each Item has a rewrite plain, which lists possible way to encrypt this item, that is OLKs!
std::map<const Item *, std::unique_ptr<RewritePlan> > rewritePlans; std::map<const Item *, std::unique_ptr<RewritePlan> > rewritePlans;
std::map<std::string, std::map<const std::string, const std::string>> std::map<std::string, std::map<const std::string, const std::string>>
table_aliases; table_aliases;
...@@ -296,7 +298,7 @@ public: ...@@ -296,7 +298,7 @@ public:
// These functions are prefered to their lower level counterparts. // These functions are prefered to their lower level counterparts.
bool addAlias(const std::string &alias, const std::string &db, bool addAlias(const std::string &alias, const std::string &db,
const std::string &table); const std::string &table);
OnionMeta &getOnionMeta(const std::string &db, OnionMeta &getOnionMeta(const std::string &db,
const std::string &table, const std::string &table,
const std::string &field, onion o) const; const std::string &field, onion o) const;
...@@ -316,6 +318,7 @@ public: ...@@ -316,6 +318,7 @@ public:
TableMeta &getTableMeta(const std::string &db, TableMeta &getTableMeta(const std::string &db,
const std::string &table) const; const std::string &table) const;
DatabaseMeta &getDatabaseMeta(const std::string &db) const; DatabaseMeta &getDatabaseMeta(const std::string &db) const;
bool tableMetaExists(const std::string &db, bool tableMetaExists(const std::string &db,
...@@ -326,12 +329,11 @@ public: ...@@ -326,12 +329,11 @@ public:
std::string getAnonTableName(const std::string &db, std::string getAnonTableName(const std::string &db,
const std::string &table, const std::string &table,
bool *const is_alias=NULL) const; bool *const is_alias=NULL) const;
std::string std::string
translateNonAliasPlainToAnonTableName(const std::string &db, translateNonAliasPlainToAnonTableName(const std::string &db,
const std::string &table) const std::string &table)
const; const;
//use this function to rewrite functions
std::string getAnonIndexName(const std::string &db, std::string getAnonIndexName(const std::string &db,
const std::string &table, const std::string &table,
const std::string &index_name, const std::string &index_name,
...@@ -341,6 +343,7 @@ public: ...@@ -341,6 +343,7 @@ public:
onion o) const; onion o) const;
static const EncLayer &getBackEncLayer(const OnionMeta &om); static const EncLayer &getBackEncLayer(const OnionMeta &om);
static SECLEVEL getOnionLevel(const OnionMeta &om); static SECLEVEL getOnionLevel(const OnionMeta &om);
SECLEVEL getOnionLevel(const FieldMeta &fm, onion o); SECLEVEL getOnionLevel(const FieldMeta &fm, onion o);
...@@ -348,24 +351,20 @@ public: ...@@ -348,24 +351,20 @@ public:
getEncLayers(const OnionMeta &om); getEncLayers(const OnionMeta &om);
const SchemaInfo &getSchema() const {return schema;} const SchemaInfo &getSchema() const {return schema;}
std::vector<std::unique_ptr<Delta> > deltas; std::vector<std::unique_ptr<Delta> > deltas;
std::string getDatabaseName() const {return db_name;} std::string getDatabaseName() const {return db_name;}
const std::unique_ptr<AES_KEY> &getMasterKey() const {return master_key;} const std::unique_ptr<AES_KEY> &getMasterKey() const {return master_key;}
SECURITY_RATING getDefaultSecurityRating() const SECURITY_RATING getDefaultSecurityRating() const
{return default_sec_rating;} {return default_sec_rating;}
// access to isAlias(...) // access to isAlias(...)
friend class MultiDeleteHandler; friend class MultiDeleteHandler;
private: private:
//name for the default db
const std::string db_name; const std::string db_name;
const SchemaInfo &schema; const SchemaInfo &schema;
const std::unique_ptr<AES_KEY> &master_key; const std::unique_ptr<AES_KEY> &master_key;
const SECURITY_RATING default_sec_rating; const SECURITY_RATING default_sec_rating;
bool isAlias(const std::string &db, bool isAlias(const std::string &db,
const std::string &table) const; const std::string &table) const;
std::string unAliasTable(const std::string &db, std::string unAliasTable(const std::string &db,
......
...@@ -43,11 +43,6 @@ ...@@ -43,11 +43,6 @@
#include <sstream> #include <sstream>
#include <unistd.h> #include <unistd.h>
FILE* fr,*fw;
static std::string embeddedDir="/t/cryt/shadow"; static std::string embeddedDir="/t/cryt/shadow";
//My WrapperState. //My WrapperState.
...@@ -360,7 +355,7 @@ void batchTogether(std::string client, std::string curQuery,unsigned long long _ ...@@ -360,7 +355,7 @@ void batchTogether(std::string client, std::string curQuery,unsigned long long _
static void processFieldMeta(const FieldMeta &field){ static void processFieldMeta(const FieldMeta &field){
std::cout<<GREEN_BEGIN<<"PRINT FieldMeta"<<COLOR_END<<std::endl; std::cout<<GREEN_BEGIN<<"PRINT FieldMeta"<<COLOR_END<<std::endl;
for(const auto & onion: field.getChildren()){ for(const OnionMeta & onion: field.getChildren()){
std::cout<<onion.second->getDatabaseID()<<":"<<onion.first.getValue()<<std::endl; std::cout<<onion.second->getDatabaseID()<<":"<<onion.first.getValue()<<std::endl;
} }
std::cout<<GREEN_BEGIN<<"end FieldMeta"<<COLOR_END<<std::endl; std::cout<<GREEN_BEGIN<<"end FieldMeta"<<COLOR_END<<std::endl;
...@@ -368,21 +363,34 @@ static void processFieldMeta(const FieldMeta &field){ ...@@ -368,21 +363,34 @@ static void processFieldMeta(const FieldMeta &field){
static void processTableMeta(const TableMeta &table){ static void processTableMeta(const TableMeta &table){
std::cout<<GREEN_BEGIN<<"PRINT TableMeta"<<COLOR_END<<std::endl; std::cout<<GREEN_BEGIN<<"PRINT TableMeta"<<COLOR_END<<std::endl;
for(const auto & field: table.getChildren()){ for(const FieldMeta & field: table.getChildren()){
std::cout<<field.second->getDatabaseID()<<":"<<field.first.getValue()<<std::endl; std::cout<<field.second->getDatabaseID()<<":"<<field.first.getValue()<<std::endl;
processFieldMeta(*(field.second)); processFieldMeta(*(field.second));
} }
} }
static void processDatabaseMeta(const DatabaseMeta & db) { static void processDatabaseMeta(const DatabaseMeta & dbm,std::string table="student1") {
TableMeta & tbm = *dbm.getChild(IdentityMetaKey(table));
processTableMeta(tbm);
return;
std::cout<<GREEN_BEGIN<<"PRINT DatabaseMeta"<<COLOR_END<<std::endl; std::cout<<GREEN_BEGIN<<"PRINT DatabaseMeta"<<COLOR_END<<std::endl;
for(const auto & table: db.getChildren()){ for(const auto & table: dbm.getChildren()){
processTableMeta(*(table.second)); processTableMeta(*(table.second));
} }
} }
static void processSchemaInfo(SchemaInfo &schema){ static void processSchemaInfo(SchemaInfo &schema,std::string db="tdb"){
const std::unique_ptr<AES_KEY> &TK = std::unique_ptr<AES_KEY>(getKey(std::string("113341234")));
Analysis analysis(db,schema,TK,
SECURITY_RATING::SENSITIVE);
if(analysis.databaseMetaExists(db)){
processDatabaseMeta(analysis.getDatabaseMeta(db));
}else{
std::cout<<"data base not exists"<<std::endl;
}
return ;
//we have a map here //we have a map here
std::cout<<GREEN_BEGIN<<"PRINT SchemaInfo"<<COLOR_END<<std::endl; std::cout<<GREEN_BEGIN<<"PRINT SchemaInfo"<<COLOR_END<<std::endl;
//only const auto & is allowed, now copying. or we meet use of deleted function. //only const auto & is allowed, now copying. or we meet use of deleted function.
...@@ -392,6 +400,8 @@ static void processSchemaInfo(SchemaInfo &schema){ ...@@ -392,6 +400,8 @@ static void processSchemaInfo(SchemaInfo &schema){
} }
} }
static std::unique_ptr<SchemaInfo> myLoadSchemaInfo() { static std::unique_ptr<SchemaInfo> myLoadSchemaInfo() {
std::unique_ptr<Connect> e_conn(Connect::getEmbedded(embeddedDir)); std::unique_ptr<Connect> e_conn(Connect::getEmbedded(embeddedDir));
std::unique_ptr<SchemaInfo> schema(new SchemaInfo()); std::unique_ptr<SchemaInfo> schema(new SchemaInfo());
...@@ -832,6 +842,7 @@ static std::string logicBackUp(std::string database, std::string table,SchemaInf ...@@ -832,6 +842,7 @@ static std::string logicBackUp(std::string database, std::string table,SchemaInf
static static
void void
startBack(){ startBack(){
return ;
//only for testing backup module //only for testing backup module
std::unique_ptr<SchemaInfo> schema = myLoadSchemaInfo(); std::unique_ptr<SchemaInfo> schema = myLoadSchemaInfo();
processSchemaInfo(*schema); processSchemaInfo(*schema);
...@@ -859,8 +870,8 @@ startBack(){ ...@@ -859,8 +870,8 @@ startBack(){
int int
main() { main() {
fr = fopen((const char*)"readFile",(const char*)"r");
fw = fopen((const char*)"writeFile",(const char *)"a");
std::string client="192.168.1.1:1234"; std::string client="192.168.1.1:1234";
//one Wrapper per user. //one Wrapper per user.
...@@ -897,14 +908,16 @@ main() { ...@@ -897,14 +908,16 @@ main() {
} }
if(curQuery=="back"){ if(curQuery=="back"){
startBack(); startBack();
std::unique_ptr<SchemaInfo> schema = myLoadSchemaInfo();
processSchemaInfo(*schema);
}else{ }else{
std::cout<<GREEN_BEGIN<<"curQuery: "<<curQuery<<"\n"<<COLOR_END<<std::endl; std::cout<<GREEN_BEGIN<<"curQuery: "<<curQuery<<"\n"<<COLOR_END<<std::endl;
batchTogether(client,curQuery,_thread_id); batchTogether(client,curQuery,_thread_id);
} }
std::unique_ptr<SchemaInfo> schema = myLoadSchemaInfo();
processSchemaInfo(*schema);
std::cout<<GREEN_BEGIN<<"\nplease input a new query:#######"<<COLOR_END<<std::endl; std::cout<<GREEN_BEGIN<<"\nplease input a new query:#######"<<COLOR_END<<std::endl;
std::getline(std::cin,curQuery); std::getline(std::cin,curQuery);
} }
return 0; return 0;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment