// for use when loading textures from .ctf (converted TGA file)
bool TextureMan::LoadTexture( const char * const fileName, const char * const textID )
{
	GLuint textureID;
	GLuint *pTextureID = &textureID;

	// get instance
	TextureMan *pTextMan = TextureMan::privGetInstance();

	unsigned char* lTexture = getTGAFile( fileName );
	pTextMan->privLoadMyTexture( lTexture, pTextureID );

	// hash the string textID and store it as the textureID for the manager
	MD5Output out;
	MD5Buffer ((unsigned char *)textID, strlen(textID), out);
	GLuint hashID = out.dWord_0 ^ out.dWord_1 ^ out.dWord_2 ^ out.dWord_3;

	// make a new node, set its values
	TextureNode *pNode = new TextureNode();
	pNode->set( fileName, hashID, textureID, GL_LINEAR, GL_LINEAR, GL_CLAMP_TO_EDGE );

	// add said node to front of active texture list
	pTextMan->privAddToFront( pNode, pTextMan->active );

	return true;
}
Example #2
0
INT DecodePasswordByUsername(CHAR *username, CHAR *encodedstr, CHAR *decoded)
{
    BYTE md5[16];
    des3_context ctx3;
    BYTE output[16];
    BYTE encoded[16];
	
    CHAR vn[200];
	
#ifdef _WIN32
	DWORD sn;
	GetVolumeInformation("C:\\", vn, sizeof(vn), &sn, NULL, NULL, NULL, 0);
	snprintf(vn, sizeof(vn), "%s%x", username, sn);
#else
	snprintf(vn, sizeof(vn), "%s", username);
#endif
	
    //MD5Buffer(username, strlen(username), md5);
    MD5Buffer(vn, strlen(vn), md5);
	
	
    hex2buf(encodedstr, encoded, NULL);
	
    des3_set_3keys( &ctx3, md5, md5 + 8, md5);
    des3_decrypt( &ctx3, (BYTE *)encoded, output);
	
    des3_set_3keys( &ctx3, md5, md5 + 8, md5);
    des3_decrypt( &ctx3, (BYTE *)encoded + 8, output + 8);
	
    buf2hex(output, 16, decoded);
	
    return OK;
}
Example #3
0
static QCString encodeDirName(const QCString &anchor)
{
  // convert to md5 hash
  uchar md5_sig[16];
  QCString sigStr(33);
  MD5Buffer((const unsigned char *)anchor.data(),anchor.length(),md5_sig);
  MD5SigToString(md5_sig,sigStr.rawData(),33);
  return sigStr;

  // old algorithm
//  QCString result;

//  int l = anchor.length(),i;
//  for (i=0;i<l;i++)
//  {
//    char c = anchor.at(i);
//    if ((c>='a' && c<='z') || (c>='A' && c<='Z') || (c>='0' && c<='9'))
//    {
//      result+=c;
//    }
//    else
//    {
//      static char hexStr[]="0123456789ABCDEF";
//      char escChar[]={ '_', 0, 0, 0 };
//      escChar[1]=hexStr[c>>4];
//      escChar[2]=hexStr[c&0xf];
//      result+=escChar;
//    }
//  }
//  return result;
}
Example #4
0
QCString MemberGroup::anchor() const
{
  uchar md5_sig[16];
  QCString sigStr(33);
  MD5Buffer((const unsigned char *)grpHeader.data(),grpHeader.length(),md5_sig);
  MD5SigToString(md5_sig,sigStr.data(),33);
  return "amgrp"+sigStr;
}
Example #5
0
QCString MemberGroup::anchor() const
{
  uchar md5_sig[16];
  QCString sigStr(33);
  QCString locHeader = grpHeader;
  if (locHeader.isEmpty()) locHeader="[NOHEADER]";
  MD5Buffer((const unsigned char *)locHeader.data(),locHeader.length(),md5_sig);
  MD5SigToString(md5_sig,sigStr.data(),33);
  return "amgrp"+sigStr;
}
Example #6
0
VOID userconfig_set_username(USERCONFIG *userconfig, CHAR *username)
{
	strcpy(userconfig->szUsername, "");

	if(username)
		strcpy(userconfig->szUsername, username);

	MD5Buffer(userconfig->szUsername, strlen(userconfig->szUsername), userconfig->md5Username);
	buf2hex(userconfig->md5Username, 16, userconfig->szMD5Username);
}
Example #7
0
VOID userconfig_set_password(USERCONFIG *userconfig, CHAR *password)
{
	strcpy(userconfig->szPassword, "");

	if(password)
		strcpy(userconfig->szPassword, password);

	MD5Buffer(userconfig->szPassword, strlen(userconfig->szPassword), userconfig->md5Password);
	buf2hex(userconfig->md5Password, 16, userconfig->szMD5Password);

	//we will never use the real password, clean it for security.
	strcpy(userconfig->szPassword, "");
}
String RayTracer::computeMD5( const std::vector<Vec3f>& vertices )
{
	unsigned char digest[16];
	MD5Buffer( (void*)&vertices[0], sizeof(Vec3f)*vertices.size(), (unsigned int*)digest );

	// turn into string
	char ad[33];
	for ( int i = 0; i < 16; ++i )
		::sprintf( ad+i*2, "%02x", digest[i] );
	ad[32] = 0;

	return FW::String( ad );
}
Example #9
0
bool Definition::_docsAlreadyAdded(const QCString &doc)
{
  uchar md5_sig[16];
  QCString sigStr(33);
  // to avoid mismatches due to differences in indenting, we first remove
  // double whitespaces...
  QCString docStr = doc.simplifyWhiteSpace();
  MD5Buffer((const unsigned char *)docStr.data(),docStr.length(),md5_sig);
  MD5SigToString(md5_sig,sigStr.data(),33);
  if (m_impl->docSignatures.find(sigStr)==-1) // new docs, add signature to prevent re-adding it
  {
    m_impl->docSignatures+=":"+sigStr;
    return FALSE;
  }
  else
  {
    return TRUE;
  }
}
Example #10
0
bool Definition::_docsAlreadyAdded(const QCString &doc,QCString &sigList)
{
  uchar md5_sig[16];
  QCString sigStr(33);
  // to avoid mismatches due to differences in indenting, we first remove
  // double whitespaces...
  QCString docStr = doc.simplifyWhiteSpace();
  MD5Buffer((const unsigned char *)docStr.data(),docStr.length(),md5_sig);
  MD5SigToString(md5_sig,sigStr.rawData(),33);
  //printf("%s:_docsAlreadyAdded doc='%s' sig='%s' docSigs='%s'\n",
  //    name().data(),doc.data(),sigStr.data(),sigList.data());
  if (sigList.find(sigStr)==-1) // new docs, add signature to prevent re-adding it
  {
    sigList+=":"+sigStr;
    return FALSE;
  }
  else
  {
    return TRUE;
  }
}
Example #11
0
INT WINAPI mytunetsvc_set_user_config(CHAR *username, CHAR *password, BOOL isMD5Pwd, CHAR *adapter, INT limitation, INT language)
{
    BYTE md5[16];
    CHAR pwd[200];
    CHAR encoded[100];
    CHAR *szConfigFile = mytunetsvc_config_file();
	
    if(!isMD5Pwd)
    {
        MD5Buffer(password, strlen(password), md5);
        buf2hex(md5, 16, pwd);
        //puts("Not MD5");
    }
    else
    {
        if(strlen(password) != 32 && strlen(password) != 0)
            return ERR;
		
        strcpy(pwd, password);
    }
	
    EncodePasswordByUsername(username, pwd, encoded);
	
    setting_write(szConfigFile, "username", username);
	
    if(isMD5Pwd && strlen(password) == 0)
        setting_write(szConfigFile, "password", "");
    else
        setting_write(szConfigFile, "password", encoded);
	
    setting_write(szConfigFile, "adapter", adapter);
    setting_write_int(szConfigFile, "limitation", limitation);
    setting_write_int(szConfigFile, "language", language);
	
	
	
    return OK;
}
Example #12
0
static void dot1x_logon_auth(int id, BYTE *stream, int streamlen)
{
    BUFFER *buf = buffer_new(1024);
    EAPOL_PACKET_HEADER *pkt;
    BYTE md5_result[16];
    BYTE tmpbuf[100];
    STRING *strUserAtIp = NULL;

    buf = buffer_append(buf, (BYTE *)"?", 1);
    buf->data[0] = id;

    buf = buffer_append(buf, (BYTE *)userconfig.szMD5Password, strlen(userconfig.szMD5Password));
    buf = buffer_append(buf, stream, streamlen);

    MD5Buffer(buf->data, buf->len, md5_result);

    buf = buffer_free(buf);


    buf = buffer_new(sizeof(EAPOL_PACKET_HEADER));
        pkt = (EAPOL_PACKET_HEADER *)buf->data;

        memcpy(pkt->dest, hex2buf(DOT1XMAC, tmpbuf, NULL), 6);
        memcpy(pkt->src, hex2buf(userconfig.szMac, tmpbuf, NULL), 6);

        pkt->tags[0] = 0x88;
        pkt->tags[1] = 0x8e;

        pkt->eapol_version = 1;
        pkt->eapol_type = EAPOL_PACKET;


        strUserAtIp = string_append(strUserAtIp, userconfig.szUsername);
        strUserAtIp = string_append(strUserAtIp, "@");
        strUserAtIp = string_append(strUserAtIp, userconfig.szIp);


        pkt->eapol_length = htons((u_short)(strlen(strUserAtIp->str) + 16/*md5*/ + 6));
        pkt->code = EAP_RESPONSE;
        pkt->identifier = id;
        pkt->length = pkt->eapol_length;
        pkt->type = EAP_TYPE_MD5;

    buf->len = sizeof(EAPOL_PACKET_HEADER);

    buf = buffer_append(buf, (BYTE *)"\x10", 1);
    buf = buffer_append(buf, md5_result, 16);
    buf = buffer_append(buf, (BYTE *)strUserAtIp->str, strlen(strUserAtIp->str));

    if(buf->len < 60)
        buf = buffer_append(buf, null_buffer_60, 60 - buf->len);

    ethcard_send_packet(ethcard, buf->data, buf->len);

    logs_append(g_logs, "DOT1X_LOGON_AUTH", NULL, buf->data, buf->len);
    /*
    if(ethcard_send_packet(ethcard, buf->data, buf->len) != 0)
    {
        dprintf("Error with WinPCap\n");
    }
*/

    strUserAtIp = string_free(strUserAtIp);
    buf = buffer_free(buf);

}