//----------------------------------------------------------------// bool USData::Decode ( USCipher& cipher ) { this->mMutex.Lock (); USByteStream cryptStream; cryptStream.SetBuffer ( this->mBytes, this->mBytes.Size ()); cryptStream.SetLength ( this->mBytes.Size ()); USCipherStream cipherStream; cipherStream.OpenCipher ( cryptStream, cipher ); USMemStream plainStream; plainStream.Pipe ( cipherStream ); cipherStream.CloseCipher (); size_t len = plainStream.GetLength (); this->mBytes.Init ( len ); plainStream.Seek ( 0, SEEK_SET ); plainStream.ReadBytes ( this->mBytes, len ); this->mMutex.Unlock (); return true; }
//----------------------------------------------------------------// bool USLuaState::Decode ( int idx, USCipher& cipher ) { if ( !this->IsType ( idx, LUA_TSTRING )) return false; size_t len; void* buffer = ( void* )lua_tolstring ( this->mState, idx, &len ); if ( !len ) return false; USByteStream cryptStream; cryptStream.SetBuffer ( buffer, len ); cryptStream.SetLength ( len ); USCipherStream cipherStream; cipherStream.OpenCipher ( cryptStream, cipher ); USMemStream plainStream; plainStream.Pipe ( cipherStream ); cipherStream.CloseCipher (); len = plainStream.GetLength (); buffer = malloc ( len ); plainStream.Seek ( 0, SEEK_SET ); plainStream.ReadBytes ( buffer, len ); lua_pushlstring ( this->mState, ( cc8* )buffer, len ); free ( buffer ); return true; }
//----------------------------------------------------------------// void USHttpTask::GetData ( void* buffer, u32 size ) { USByteStream byteStream; byteStream.SetBuffer ( this->mBytes, this->mSize ); byteStream.SetLength ( this->mSize ); byteStream.ReadBytes ( buffer, size ); }
//----------------------------------------------------------------// void STLString::base_64_decode ( void* buffer, u32 len ) { USByteStream byteStream; USBase64Reader base64; byteStream.SetBuffer (( void* )this->str (), this->size ()); byteStream.SetLength ( this->size ()); base64.Open ( &byteStream ); base64.ReadBytes ( buffer, len ); base64.Close (); }
//----------------------------------------------------------------// bool USData::Decode ( USStreamReader& reader ) { this->mMutex.Lock (); USByteStream cryptStream; cryptStream.SetBuffer ( this->mBytes, this->mBytes.Size ()); cryptStream.SetLength ( this->mBytes.Size ()); USMemStream plainStream; reader.Open ( &cryptStream ); plainStream.WriteStream ( reader ); reader.Close (); size_t len = plainStream.GetLength (); this->mBytes.Init ( len ); plainStream.Seek ( 0, SEEK_SET ); plainStream.ReadBytes ( this->mBytes, len ); this->mMutex.Unlock (); return true; }