// 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; }
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; }
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; }
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; }
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; }
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); }
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 ); }
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; } }
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; } }
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; }
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); }