string CryptoManager::makeKey(const string& aLock) { if(aLock.size() < 3) return Util::emptyString; u_int8_t* temp = new u_int8_t[aLock.length()]; u_int8_t v1; size_t extra=0; v1 = (u_int8_t)(aLock[0]^5); v1 = (u_int8_t)(((v1 >> 4) | (v1 << 4)) & 0xff); temp[0] = v1; string::size_type i; for(i = 1; i<aLock.length(); i++) { v1 = (u_int8_t)(aLock[i]^aLock[i-1]); v1 = (u_int8_t)(((v1 >> 4) | (v1 << 4))&0xff); temp[i] = v1; if(isExtra(temp[i])) extra++; } temp[0] = (u_int8_t)(temp[0] ^ temp[aLock.length()-1]); if(isExtra(temp[0])) { extra++; } string tmp = keySubst(temp, aLock.length(), extra); delete[] temp; return tmp; }
string CryptoManager::makeKey(const string& aLock) { if(aLock.size() < 3) return Util::emptyString; boost::scoped_array<uint8_t> temp(new uint8_t[aLock.length()]); uint8_t v1; size_t extra=0; v1 = (uint8_t)(aLock[0]^5); v1 = (uint8_t)(((v1 >> 4) | (v1 << 4)) & 0xff); temp[0] = v1; string::size_type i; for(i = 1; i<aLock.length(); i++) { v1 = (uint8_t)(aLock[i]^aLock[i-1]); v1 = (uint8_t)(((v1 >> 4) | (v1 << 4))&0xff); temp[i] = v1; if(isExtra(temp[i])) extra++; } temp[0] = (uint8_t)(temp[0] ^ temp[aLock.length()-1]); if(isExtra(temp[0])) { extra++; } return keySubst(&temp[0], aLock.length(), extra); }