code:
if( iv.size() > 0 ){
for( unsigned int i = 0; i < PacketCount; i++ ){
avIV.push_back( DataArray( iv.begin(), iv.begin() + size ) );
}
when size =32,and iv.size=16,the "iv" will overflow, i think
avIV.push_back( DataArray( iv.begin(), iv.begin() + size ) );
should be:
avIV.push_back( DataArray( iv.begin(), iv.begin() + vi.size ) );