void countMode(client *c, int argc, sds *argv) { uint32_t mode; safe_strtoul(argv[1],&mode); counterMode(mode); addReplyStatus(c, "+OK"); }
short descipher(char *pathInFile,char *pathOutFile) { char MD5[MD5_LEN+1];//plus one for character end of line CalcFileMD5(pathInFile,MD5); FileCipherWithDES fileCipherWithDES=getFileCipherWithDES(MD5); if(!strcmp(fileCipherWithDES.MD5,"00000000000000000000000000000000")) { //the query failed !!CORREGIR ESTO return -1; } if(counterMode(pathInFile,pathOutFile,fileCipherWithDES.initialVector,fileCipherWithDES.key)<0) { return -2; } return 0; }
short cipher(char *pathInFile,char *pathOutFile) { uint64_t initialVector=(uint64_t)getRandom(),key=(uint64_t)getRandom();//initial vector, key if(counterMode(pathInFile,pathOutFile,initialVector,key)<0) { return -1; } FileCipherWithDES fileCipherWithDES; strcpy(fileCipherWithDES.idUser,user.id); CalcFileMD5(pathOutFile,fileCipherWithDES.MD5); fileCipherWithDES.initialVector=initialVector; fileCipherWithDES.key=key; if(insertFileCipherWithDES(fileCipherWithDES)<0) { return -2; } return 0; }
void load_TUBii_command(client *c, int argc, sds *argv) { /* Load CAEN hardware settings from the database. */ uint32_t key; PGconn *conn; PGresult *res = NULL; char conninfo[1024]; char command[10000]; char *name, *value_str; uint32_t value; int i; int rows; if (safe_strtoul(argv[1], &key)) { addReplyErrorFormat(c, "'%s' is not a valid uint32_t", argv[1]); return; } sprintf(command, "select * from TUBii where key = %i", key); sprintf(conninfo, "dbname=%s host=%s user=%s password=%s", dbconfig.name, dbconfig.host, dbconfig.user, dbconfig.password); /* Request row from the database. */ conn = PQconnectdb(conninfo); if (PQstatus(conn) != CONNECTION_OK) { addReplyErrorFormat(c, "connection to database failed: %s", PQerrorMessage(conn)); goto pq_error; } res = PQexec(conn, command); if (PQresultStatus(res) != PGRES_TUPLES_OK) { addReplyErrorFormat(c, "select command failed: %s", PQerrorMessage(conn)); goto pq_error; } rows = PQntuples(res); if (rows != 1) { if (rows == 0) { addReplyErrorFormat(c, "no database row with key = %i", key); } else { addReplyError(c, "this should never happen. Call Tony"); } goto pq_error; } for (i = 0; i < PQnfields(res); i++) { name = PQfname(res, i); if (!strcmp(name, "key") || !strcmp(name, "timestamp")) continue; value_str = PQgetvalue(res, 0, i); if (safe_strtoul(value_str, &value)) { addReplyErrorFormat(c, "unable to convert value '%s' for field %s", value_str, name); goto pq_error; } if (!strcmp(name, "control_reg")) { ControlReg(value); } else if (!strcmp(name, "trigger_mask")) { triggerMask(value,0); } else if (!strcmp(name, "speaker_mask")) { speakerMask(value); } else if (!strcmp(name, "counter_mask")) { counterMask(value); } else if (!strcmp(name, "caen_gain_reg")) { CAENWords(value, mReadReg((u32) MappedRegsBaseAddress, RegOffset12)); } else if (!strcmp(name, "caen_channel_reg")) { CAENWords(mReadReg((u32) MappedRegsBaseAddress, RegOffset11), value); } else if (!strcmp(name, "lockout_reg")) { GTDelays(value, mReadReg((u32) MappedRegsBaseAddress, RegOffset15)); } else if (!strcmp(name, "dgt_reg")) { GTDelays(mReadReg((u32) MappedRegsBaseAddress, RegOffset14), value); } else if (!strcmp(name, "dac_reg")) { DACThresholds(value); } else if (!strcmp(name, "counter_mode")) { counterMode(value); } else if (!strcmp(name, "clock_status")) { // Do Nowt } else if (!strcmp(name, "combo_enable_mask")) { mWriteReg((u32) MappedComboBaseAddress, RegOffset2, value); } else if (!strcmp(name, "combo_mask")) { mWriteReg((u32) MappedComboBaseAddress, RegOffset3, value); } else if (!strcmp(name, "prescale_value")) { mWriteReg((u32) MappedPrescaleBaseAddress, RegOffset2, value); } else if (!strcmp(name, "prescale_channel")) { mWriteReg((u32) MappedPrescaleBaseAddress, RegOffset3, value); } else if (!strcmp(name, "burst_rate")) { mWriteReg((u32) MappedBurstBaseAddress, RegOffset2, value); } else if (!strcmp(name, "burst_channel")) { mWriteReg((u32) MappedBurstBaseAddress, RegOffset3, value); } else { addReplyErrorFormat(c, "got unknown field '%s'", name); goto pq_error; } } addReplyStatus(c, "OK"); PQclear(res); PQfinish(conn); return; err: addReplyError(c, tubii_err); return; pq_error: if (res) PQclear(res); PQfinish(conn); }