DWORD WINAPI _SEraseThdFunc(LPVOID _lParam) { //input CDialog pointer CTabToolsDlg *_TabToolsDlg; _TabToolsDlg = (CTabToolsDlg *)_lParam; _TabToolsDlg->_EnableCtrls(0); for(UINT32 _i = 0; _i < _TabToolsDlg->_inFilePathAllCount; _i++) { _TabToolsDlg->_curErasingItem = _i; if(File_Secure_Erase(_TabToolsDlg->_inFilePath_All[_i], _TabToolsDlg->_iEraseTimes, &_UpdateOpProcessSe, _lParam)){ _TabToolsDlg->_SetItemStatusInList(_i, _T("Erased")); }else{ _TabToolsDlg->_SetItemStatusInList(_i, _T("Failed")); } } _TabToolsDlg->_EnableCtrls(1); return 0; }
DWORD WINAPI _CryptoThdFunc(LPVOID _lParam) { TCHAR *_outFilePath = new TCHAR[512]; //input CDialog pointer CTabAES256Dlg *_TabAES256Dlg; _TabAES256Dlg = (CTabAES256Dlg *)_lParam; //UI _TabAES256Dlg->_EnableCtrls(0); for(UINT32 _i = 0; _i < _TabAES256Dlg->_inFilePathAllCount; _i++) { //Set Index Flag _TabAES256Dlg->_curEncItem = _i; _tcscpy_s(_outFilePath, 512, _TabAES256Dlg->_inFilePath_All[_i]); // if(_TabAES256Dlg->_bCamellia) { // ********* Encrypt/Decrypt(Camellia) ********* //Set Flag _TabAES256Dlg->_bErasing = 0; if(_TabAES256Dlg->_bDecrypt) { //Decrypt Mode if(_tcslen(_outFilePath) >= 8){ if(!_tcscmp(&_outFilePath[_tcslen(_outFilePath) - 7], _T(".cam256"))) { //cut extension ".cam256" _outFilePath[_tcslen(_outFilePath) - 7] = 0; }else{ _tcscat_s(_outFilePath, 512, _T(".decrypted")); } } if(_File_Camellia_Decrypt_CBC(_TabAES256Dlg->_inFilePath_All[_i], _outFilePath, _TabAES256Dlg->_CryptoCipherKey, &_UpdateOpProcess, _lParam)){ _TabAES256Dlg->_SetItemStatusInList(_i, _T("Decrypted")); }else{ _TabAES256Dlg->_SetItemStatusInList(_i, _T("Decryption Failed")); //No need to erase _TabAES256Dlg->_bErase = 0; } }else{ //Encrypt Mode _tcscat_s(_outFilePath, 512, _T(".cam256")); if(_File_Camellia_Encrypt_CBC(_TabAES256Dlg->_inFilePath_All[_i], _outFilePath, _TabAES256Dlg->_CryptoCipherKey, &_UpdateOpProcess, _lParam)){ _TabAES256Dlg->_SetItemStatusInList(_i, _T("Encrypted")); }else{ _TabAES256Dlg->_SetItemStatusInList(_i, _T("Encryption Failed")); //No need to erase _TabAES256Dlg->_bErase = 0; } }//if }else{ // ********* Encrypt/Decrypt(AES) ********* //Set Flag _TabAES256Dlg->_bErasing = 0; if(_TabAES256Dlg->_bDecrypt) { //Decrypt Mode if(_tcslen(_outFilePath) >= 8){ if(!_tcscmp(&_outFilePath[_tcslen(_outFilePath) - 7], _T(".aes256"))) { //cut extension ".aes256" _outFilePath[_tcslen(_outFilePath) - 7] = 0; }else{ _tcscat_s(_outFilePath, 512, _T(".decrypted")); } } if(_File_AES_Decrypt_CBC(_TabAES256Dlg->_inFilePath_All[_i], _outFilePath, _TabAES256Dlg->_CryptoCipherKey, &_UpdateOpProcess, _lParam)){ _TabAES256Dlg->_SetItemStatusInList(_i, _T("Decrypted")); }else{ _TabAES256Dlg->_SetItemStatusInList(_i, _T("Decryption Failed")); //No need to erase _TabAES256Dlg->_bErase = 0; } }else{ //Encrypt Mode _tcscat_s(_outFilePath, 512, _T(".aes256")); if(_File_AES_Encrypt_CBC(_TabAES256Dlg->_inFilePath_All[_i], _outFilePath, _TabAES256Dlg->_CryptoCipherKey, &_UpdateOpProcess, _lParam)){ _TabAES256Dlg->_SetItemStatusInList(_i, _T("Encrypted")); }else{ _TabAES256Dlg->_SetItemStatusInList(_i, _T("Encryption Failed")); //No need to erase _TabAES256Dlg->_bErase = 0; } }//if }//if(Camellia) //Erase Original File if(_TabAES256Dlg->_bErase) { //Set Flag _TabAES256Dlg->_bErasing = 1; if(File_Secure_Erase(_TabAES256Dlg->_inFilePath_All[_i], 1, &_UpdateOpProcess, _lParam)){ _TabAES256Dlg->_SetItemStatusInList(_i, _T("Done and erased")); }else{ _TabAES256Dlg->_SetItemStatusInList(_i, _T("Erasing failed")); } } }//for _TabAES256Dlg->_EnableCtrls(1); free(_outFilePath); return 0; }