Ejemplo n.º 1
0
void HY3131Calibration::updateCalibFile(){
    QFile outFile2("/home/HY3131/calib.dat");
    outFile2.open(QIODevice::WriteOnly | QIODevice::Text);
    QTextStream ts2(&outFile2);
    for(int i=0;i<31;i++)
        ts2 <<m_strRange2[i]<<"\t"<<fixed<<KRefMinData[i]<<"\t"<<KRefMaxData[i]<<"\t"<<HYMinRead[i]<<"\t"<<HYMaxRead[i]<<endl;
    outFile2.close();
}
Ejemplo n.º 2
0
bool BotanWrapper::EncryptFile(QString Source, QString Destination)
{
    QFileInfo name = Source;
    QString base = name.baseName();
    QString encrypted1 = eoutput + base + ".gg";
    QString encrypted2 = toutput + base + ".twofish";
    QFile e(encrypted1);
    QFile t(encrypted2);

    try
    {
        //Setup the key derive functions
        PKCS5_PBKDF2 pbkdf2(new HMAC(new Keccak_1600));
        const u32bit PBKDF2_ITERATIONS = 700000;
qDebug() << "create keys";
        //Create the KEY and IV
        KDF* kdf = get_kdf("KDF2(SHA-512)");
AutoSeeded_RNG rng;
qDebug() << "create salt";
        SecureVector<byte> salt(256);
           rng.randomize(&salt[0], salt.size());
           mSalt = salt;
qDebug() << "create master key";
        //Create the master key
        SecureVector<byte> mMaster = pbkdf2.derive_key(128, mPassword.toStdString(), &mSalt[0], mSalt.size(),PBKDF2_ITERATIONS).bits_of();
        SymmetricKey mKey = kdf->derive_key(32, mMaster, "salt1");
        InitializationVector mIV = kdf->derive_key(16, mMaster, "salt2");
qDebug() << "start encryption";
        string inFilename = Source.toStdString();
        string outFilename = encrypted1.toStdString();
        std::ifstream inFile(inFilename.c_str());
        std::ofstream outFile(outFilename.c_str());


        Pipe pipe(get_cipher("AES-256/EAX", mKey, mIV,ENCRYPTION),new DataSink_Stream(outFile));
                outFile.write((const char*)mSalt.begin(), mSalt.size());
        pipe.start_msg();
        inFile >> pipe;
        pipe.end_msg();


        outFile.flush();
        outFile.close();
        inFile.close();


        QMessageBox msgBox;


/*****************TWOFISH ENCRYPTION********************/

qDebug() << "Twofish";
        //Setup the key derive functions
        PKCS5_PBKDF2 pbkdf3(new HMAC(new Skein_512));

        //Create the KEY and IV
        KDF* kdf2 = get_kdf("KDF2(Whirlpool)");
        SecureVector<byte> salt2(256);
           rng.randomize(&salt2[0], salt2.size());
           mSalt2 = salt2;

        //Create the master key
        SecureVector<byte> mMaster2 = pbkdf3.derive_key(128, mPassword2.toStdString(), &mSalt2[0], mSalt2.size(),PBKDF2_ITERATIONS).bits_of();
        SymmetricKey mKey2 = kdf2->derive_key(32, mMaster2, "salt1");
        InitializationVector mIV2 = kdf2->derive_key(16, mMaster2, "salt2");

        string inFilename2 = encrypted1.toStdString();
        string outFilename2 = encrypted2.toStdString();
        std::ifstream inFile2(inFilename2.c_str());
        std::ofstream outFile2(outFilename2.c_str());

        Pipe pipe2(get_cipher("Twofish/CFB", mKey2, mIV2,ENCRYPTION),new DataSink_Stream(outFile2));
                outFile2.write((const char*)mSalt2.begin(), mSalt2.size());
        pipe2.start_msg();
        inFile2 >> pipe2;
        pipe2.end_msg();


        outFile2.flush();
        outFile2.close();
        inFile2.close();


/**************************SERPENT ENCRYPTION*****************/

        //Create the KEY and IV
        KDF* kdf3 = get_kdf("KDF2(Tiger)");

        SecureVector<byte> salt3(256);
           rng.randomize(&salt3[0], salt3.size());
           mSalt3 = salt3;

        //Create the master key
        SecureVector<byte> mMaster3 = pbkdf2.derive_key(128, mPassword3.toStdString(), &mSalt3[0], mSalt3.size(),PBKDF2_ITERATIONS).bits_of();
        SymmetricKey mKey3 = kdf3->derive_key(32, mMaster3, "salt1");
        InitializationVector mIV3 = kdf3->derive_key(16, mMaster3, "salt2");

        string inFilename3 = encrypted2.toStdString();
        string outFilename3 = Destination.toStdString();
        std::ifstream inFile3(inFilename3.c_str());
        std::ofstream outFile3(outFilename3.c_str());

qDebug() << "serpent";
        Pipe pipe3(get_cipher("Serpent/CBC/PKCS7", mKey3, mIV3,ENCRYPTION),new DataSink_Stream(outFile3));
                outFile3.write((const char*)mSalt3.begin(), mSalt3.size());
        pipe3.start_msg();
        inFile3 >> pipe3;
        pipe3.end_msg();


        outFile3.flush();
        outFile3.close();
        inFile3.close();


        msgBox.setText("Success!");
        msgBox.setInformativeText("File successfully encrypted!");
        msgBox.setStandardButtons(QMessageBox::Ok);
        msgBox.setDefaultButton(QMessageBox::Ok);
        msgBox.exec();


e.remove(); t.remove();


        return true;
    }
    catch(...)
    {
        return false;
    }
}
void writePDB(double* geomData, char* fileName_PDB) {
	const char* inpFile = "writePDB.inp";
	const char* mainoutFile = "main_out.MetPDB";
	const char* logFile  = "log";
	const char* errorFile = "err";


	// write the configuration file used for ECEPP/3 model engine
	ofstream outFile(inpFile, ios::out);
	outFile << "$CNTRL" << endl;
	outFile << "runtyp = energy" << endl;
	outFile << "PRINT_CART" << endl;
	outFile << "OUTFORMAT = PDB" << endl;
	outFile << "FILE = ";  
	outFile << fileName_PDB << endl;
	outFile << "res_code= one_letter" << endl;

	outFile << "$END" << endl << endl;

	outFile << "$SEQ" << endl;
	outFile << "H" << endl;
	outFile << "YGGFM" << endl;
	outFile << "O" << endl;
	outFile << "$END" << endl;


	outFile << "$GEOM" << endl << endl;
	for(int i=0; i<6;i++) {
		outFile	<< setw(8) // 设定field宽度
				<< setprecision(3) // 设置小数位置
				<< setiosflags(ios::showpoint) // keep trailing 0s
				<< setiosflags(ios::fixed) // 使用这些设置
				<< geomData[i];
	}
	outFile << endl;

	for(i=6; i<9;i++) {
		outFile	<< setw(8) // 设定field宽度
				<< setprecision(3) // 设置小数位置
				<< setiosflags(ios::showpoint) // keep trailing 0s
				<< setiosflags(ios::fixed) // 使用这些设置
				<< geomData[i];
	}
	outFile << endl;

	for(i=9; i<12;i++) {
		outFile	<< setw(8) // 设定field宽度
				<< setprecision(3) // 设置小数位置
				<< setiosflags(ios::showpoint) // keep trailing 0s
				<< setiosflags(ios::fixed) // 使用这些设置
				<< geomData[i];
	}
	outFile << endl;

	for(i=12; i<17;i++) {
		outFile	<< setw(8) // 设定field宽度
				<< setprecision(3) // 设置小数位置
				<< setiosflags(ios::showpoint) // keep trailing 0s
				<< setiosflags(ios::fixed) // 使用这些设置
				<< geomData[i];
	}
	outFile << endl;

	for(i=17; i<24;i++) {
		outFile	<< setw(8) // 设定field宽度
				<< setprecision(3) // 设置小数位置
				<< setiosflags(ios::showpoint) // keep trailing 0s
				<< setiosflags(ios::fixed) // 使用这些设置
				<< geomData[i];
	}
	outFile << endl;
	outFile << endl;
	outFile << "$END" << endl;

	outFile.flush();
	outFile.close();
	system("i.bat ENERGY writePDB MetPDB x x 1>> log 2> err");

	ofstream outFile1(inpFile, ios::out);
	outFile1.flush();
	outFile1.close();

	ofstream outFile2(mainoutFile, ios::out);
	outFile2.flush();
	outFile2.close();
	
	ofstream outFile3(logFile, ios::out);
	outFile3.flush();
	outFile3.close();

	ofstream outFile4(errorFile, ios::out);
	outFile4.flush();
	outFile4.close();
}
Ejemplo n.º 4
0
// Initialize method
void 
ConvDiff_PDE::initialize()
{
  // Verify we have only one dependent problem and that it is of the appropriate type
  if( 1 < depProblems.size() )
  {
    std::string msg = "ERROR: ConvDiff_PDE::initialize : Problem \"" + myName
                    + "\" depends on more than one other problem.";
    throw msg;
  }

  GenericEpetraProblem & depProb = myManager->getProblem( depProblems[0] );
  depProbPtr = dynamic_cast<ConvDiff_PDE *>(&depProb);
  if( NULL == depProbPtr )
  {
    std::string msg = "ERROR: ConvDiff_PDE::initialize : Dependent problem \"" 
                    + depProb.getName() + "\" is not of type ConvDiff_PDE.";
    throw msg;
  }

  // Determine relative location of coupling interface
  if( (*xptr)[0] < depProbPtr->getMesh()[0] )
    myInterface = RIGHT;
  else
    myInterface = LEFT;

  // Set exact interface temperature accordingly
  if( LEFT == myInterface )
    T1_exact = Tleft ;
  else
    T1_exact = Tright;

  // Choose appropriate element and nodes for interfacial BC enforcement
  int OverlapNumMyNodes = OverlapMap->NumMyElements(); // this may break in parallel
  if( LEFT == myInterface )
  {
    interface_elem = 0                     ;
    local_node     = 0                     ;
    interface_node = 0                     ;
    opposite_node  = OverlapNumMyNodes - 1 ;
    dirScale       = 1.0                   ;
  }
  else
  {
    interface_elem = OverlapNumMyNodes - 2 ;
    local_node     = 1                     ;
    interface_node = OverlapNumMyNodes - 1 ;
    opposite_node  = 0                     ;
    dirScale       = -1.0                  ;
  }

  // Use this method to compute and output the analytic solution and its first derivative
  exactSolution     = Teuchos::rcp( new Epetra_Vector(*initialSolution) );
  dTdx              = Teuchos::rcp( new Epetra_Vector(*initialSolution) );
  Epetra_Vector & x = *xptr;

  if( 1.e-20 < fabs(peclet) )
  {
    for( int i = 0; i < NumMyNodes; ++i ) 
    {
      (*exactSolution)[i] = (T1_exact - Tleft*exp(peclet) + (Tleft - T1_exact)*exp(peclet*(x[i]-xmin))) /
                            ( 1.0 - exp(peclet) );
      (*dTdx         )[i] = peclet * (Tleft - T1_exact)*exp(peclet*(x[i]-xmin)) /
                            ( 1.0 - exp(peclet) );
    }
  }
  else
  {
    for( int i = 0; i < NumMyNodes; ++i ) 
    {
      (*exactSolution)[i] = (Tright - T1_exact)*(x[i] - xmax) + Tright  ;
      (*dTdx         )[i] =  Tright - T1_exact                          ;
    }
  }

  ostringstream sval; 
  sval << myId << flush; 
  std::string fileName1 = "analytic_" + sval.str(); 
  std::string fileName2 = "dTdx_"     + sval.str(); 

  std::ofstream outFile1(fileName1.c_str());
  std::ofstream outFile2(fileName2.c_str());
  if( !outFile1 || !outFile2 )
  {
    std::string msg = "ERROR: Could not open one of files \"" + fileName1 + "\"" + " or \""
                      + fileName2 + "\"";
    throw msg;
  }

  for( int i = 0; i < NumMyNodes; ++i ) 
  {
    outFile1 << i << "  " << x[i] << "  " << (*exactSolution)[i] << std::endl;
    outFile2 << i << "  " << x[i] << "  " << (*dTdx         )[i] << std::endl;
  }
}