~ubuntu-branches/ubuntu/precise/amule-adunanza/precise

« back to all changes in this revision

Viewing changes to src/EncryptedDatagramSocket.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessandro Ghersi
  • Date: 2010-02-18 21:16:23 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100218211623-gptwe60zx1knfkmu
Tags: 2010.1+2.2.6-0ubuntu1
* New upstream release (LP: #524697)
  - Drop manpages_spelling_fixes.diff fixed by upstream
  - Drop cryptopp-reference.diff fixed by upstream
  - Bump Standards-Version no changes required
  - Update install files (amule -> amuleadunanza)
  - debian/rules: amule.xpm -> amuleadunanza.xpm
  - Add README.Debian

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
//
2
2
// This file is part of the aMule Project.
3
3
//
4
 
// Copyright (c) 2003-2008 aMule Team ( admin@amule.org / http://www.amule.org )
 
4
// Copyright (c) 2003-2009 aMule Team ( admin@amule.org / http://www.amule.org )
5
5
// Copyright (c) 2002 Merkur ( devs@emule-project.net / http://www.emule-project.net )
6
6
//
7
7
// Any parts of this program derived from the xMule, lMule or eMule project,
248
248
                        // read the verify keys
249
249
                        receivebuffer.RC4Crypt(bufIn + CRYPT_HEADER_WITHOUTPADDING + padLen, (uint8_t*)receiverVerifyKey, 4);
250
250
                        receivebuffer.RC4Crypt(bufIn + CRYPT_HEADER_WITHOUTPADDING + padLen + 4, (uint8_t*)senderVerifyKey, 4);
 
251
                        ENDIAN_SWAP_I_32(*receiverVerifyKey);
 
252
                        ENDIAN_SWAP_I_32(*senderVerifyKey);
251
253
                        result -= 8;
252
254
                }
253
255
 
362
364
        }
363
365
 
364
366
        if (kad) {
 
367
                ENDIAN_SWAP_I_32(receiverVerifyKey);
 
368
                ENDIAN_SWAP_I_32(senderVerifyKey);
365
369
                sendbuffer.RC4Crypt((uint8_t*)&receiverVerifyKey, cryptedBuffer + CRYPT_HEADER_WITHOUTPADDING + padLen, 4);
366
370
                sendbuffer.RC4Crypt((uint8_t*)&senderVerifyKey, cryptedBuffer + CRYPT_HEADER_WITHOUTPADDING + padLen + 4, 4);
367
371
        }
438
442
        wxASSERT( dwBaseKey != 0 );
439
443
        
440
444
        uint8 byPadLen = 0;                     // padding disabled for UDP currently
 
445
// ADUNANZA BEGIN
 
446
// Applicata patch di freddy77 (forum.amule.org) per memory leak
 
447
#if 0   
441
448
        uint32 nCryptedLen = nBufLen + byPadLen + CRYPT_HEADER_WITHOUTPADDING;
442
449
        uint8* pachCryptedBuffer = new uint8[nCryptedLen];
443
 
        
 
450
#endif  
 
451
// ADUNANZA END
444
452
        uint16 nRandomKeyPart = GetRandomUint16();
445
453
 
446
454
        uint8 achKeyData[7];
449
457
        PokeUInt16(achKeyData + 5, nRandomKeyPart);
450
458
        MD5Sum md5(achKeyData, sizeof(achKeyData));
451
459
        CRC4EncryptableBuffer sendbuffer;
452
 
        sendbuffer.SetKey(md5);
 
460
        sendbuffer.SetKey(md5, true);
453
461
 
454
462
        // create the semi random byte encryption header
455
463
        uint8 bySemiRandomNotProtocolMarker = 0;
468
476
                bySemiRandomNotProtocolMarker = 0x01;
469
477
        }
470
478
 
 
479
// ADUNANZA BEGIN
 
480
// Applicata patch di freddy77 (forum.amule.org) per memory leak
 
481
        uint32 nCryptedLen = nBufLen + byPadLen + CRYPT_HEADER_WITHOUTPADDING;
 
482
        uint8* pachCryptedBuffer = new uint8[nCryptedLen];
 
483
// ADUNANZA END
471
484
        pachCryptedBuffer[0] = bySemiRandomNotProtocolMarker;
472
485
        PokeUInt16(pachCryptedBuffer + 1, nRandomKeyPart);
473
486