Esempio n. 1
0
// ConvertEndian()
void bfstream::ConvertEndian( unsigned long &value ) {
  switch( endian_mode ) {
  case ENDIAN_INTEL:
#ifndef WIN32
    ReverseEndian( value );
#endif
    break;

  case ENDIAN_MOTOROLA:
#ifdef WIN32
    ReverseEndian( value );
#endif
  }
}
Esempio n. 2
0
void GflSHA256::Final(void)
{
	BYTE cZero = 0x00;
	BYTE cOne  = 0x80;

	DWORD dwHNumBits = ReverseEndian(m_dwHNumBits);
	DWORD dwLNumBits = ReverseEndian(m_dwLNumBits);

	Load(&cOne, 1);
	while(m_nNumChr != SHA256_BUFFER_SIZE - 8) Load(&cZero, 1);

	Load((BYTE *)&dwHNumBits, 4);
	Load((BYTE *)&dwLNumBits, 4);
}
Esempio n. 3
0
void* LoadPCMWav(const char* file, PCMWAVFmt* pFmt) {
    FILE* fd;
	void* pWav = NULL;
    if (!(fd = fopen(file, "rb"))) {
		pFmt->ret = -1;
        return NULL;
    }
    if (_load_pcmwavfmt(fd,pFmt)) {
        CloseFile(fd);
		pFmt->ret = -2;
        return NULL;
    }
    //check the wavefile length
    int iLen;
    if ((fseek(fd, 0, SEEK_END)!=0) || ((iLen = ftell(fd))<0) || (fseek(fd, 44L, SEEK_SET)!=0) ) {
        CloseFile(fd);
		pFmt->ret = -3;
        return NULL;
    }
    iLen -= 44;

    int wavlen = pFmt->sample_byte*pFmt->sample_count*pFmt->sample_channel;
    if (iLen != wavlen)
    {
        CloseFile(fd);
		pFmt->ret = -4;
        return NULL;
    }
    u32 stFrame = (pFmt->start != PCMClock(-1)) ? PCMClock2Frame(pFmt->start, pFmt->sample_rate) : 0;
    u32 enFrame = (pFmt->end   != PCMClock(-1)) ? PCMClock2Frame(pFmt->end  , pFmt->sample_rate) : pFmt->sample_count;
    enFrame = MIN(enFrame, pFmt->sample_count);
    stFrame = MIN(stFrame, enFrame);
    u32 npad = enFrame - stFrame; 
    if ( npad <= 0 )
    {
        CloseFile(fd);
		pFmt->ret = -5;
        return NULL;
    }
    int vecSize = pFmt->sample_byte*pFmt->sample_channel;
    int offset = stFrame * vecSize;
    pWav = (void*)memalign(128, npad*vecSize);

    u32 readlen = ReadFile(fd, pWav, npad*vecSize, offset);
    if (readlen != npad*vecSize)
    {
        CloseFile(fd);
        free(pWav);
		pFmt->ret = -6;
        return NULL;
    }
    if (pFmt->sample_format != SAMP_ENDIAN)
    {
        ReverseEndian(pWav, pFmt->sample_byte, pFmt->sample_count*pFmt->sample_channel);
    } 
    pFmt->sample_format = SAMP_ENDIAN;
    pFmt->sample_count  = npad;
	pFmt->ret = 0;
    return pWav;
}
void CObject::ToBigEndian(char *pData, unsigned int length)
{
    if (!IsLittleEndian()) {
        return;
    }
    
    ReverseEndian(pData, length);
}
Esempio n. 5
0
void GflSHA256::Generate(void)
{
	int i;
	DWORD W[SHA256_WORK];
	DWORD Hash[SHA256_WORK + SHA256_HASH];

	for(i = 0; i < SHA256_BLOCK; i++) W[i] = ReverseEndian(m_aBlock[i]);
	for(i = SHA256_BLOCK; i < SHA256_WORK; i++) W[i] = s1(W[i - 2]) + W[i - 7] + s0(W[i - 15]) + W[i - 16];

	for(i = 0; i < SHA256_HASH; i++) Hash[SHA256_WORK + i] = m_dwH[i];
	DWORD *pHash = &Hash[SHA256_WORK];
	DWORD dwT1, dwT2;
	for(i = 0; i < SHA256_WORK; i++){
		pHash--;
		dwT1 = pHash[8] + S1(pHash[5]) + Ch(pHash[5], pHash[6], pHash[7]) + c_dwK[i] + W[i];
		dwT2 = S0(pHash[1]) + Maj(pHash[1], pHash[2], pHash[3]);
		pHash[0] = dwT1 + dwT2;
		pHash[4] += dwT1;
	}
	for(i = 0; i < SHA256_HASH; i++) m_dwH[i] += pHash[i];
}