~ubuntu-branches/ubuntu/vivid/unrar-nonfree/vivid

« back to all changes in this revision

Viewing changes to crypt5.cpp

  • Committer: Package Import Robot
  • Author(s): Martin Meredith
  • Date: 2015-02-03 12:58:01 UTC
  • mfrom: (1.1.18) (5.1.18 sid)
  • Revision ID: package-import@ubuntu.com-20150203125801-od6ev8cqy1er51vz
Tags: 1:5.2.5-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
98
98
 
99
99
  byte Key[32],PswCheckValue[SHA256_DIGEST_SIZE],HashKeyValue[SHA256_DIGEST_SIZE];
100
100
  bool Found=false;
101
 
  for (uint I=0;I<ASIZE(KDFCache);I++)
 
101
  for (uint I=0;I<ASIZE(KDF5Cache);I++)
102
102
  {
103
 
    KDFCacheItem *Item=KDFCache+I;
 
103
    KDF5CacheItem *Item=KDF5Cache+I;
104
104
    if (Item->Lg2Count==Lg2Cnt && Item->Pwd==*Password &&
105
105
        memcmp(Item->Salt,Salt,SIZE_SALT50)==0)
106
106
    {
107
 
      SecHideData(Item->Key,sizeof(Item->Key),false);
 
107
      SecHideData(Item->Key,sizeof(Item->Key),false,false);
108
108
      memcpy(Key,Item->Key,sizeof(Key));
109
 
      SecHideData(Item->Key,sizeof(Item->Key),true);
 
109
      SecHideData(Item->Key,sizeof(Item->Key),true,false);
110
110
 
111
111
      memcpy(PswCheckValue,Item->PswCheckValue,sizeof(PswCheckValue));
112
112
      memcpy(HashKeyValue,Item->HashKeyValue,sizeof(HashKeyValue));
123
123
    pbkdf2((byte *)PwdUtf,strlen(PwdUtf),Salt,SIZE_SALT50,Key,HashKeyValue,PswCheckValue,(1<<Lg2Cnt));
124
124
    cleandata(PwdUtf,sizeof(PwdUtf));
125
125
 
126
 
    KDFCacheItem *Item=KDFCache+(KDFCachePos++ % ASIZE(KDFCache));
 
126
    KDF5CacheItem *Item=KDF5Cache+(KDF5CachePos++ % ASIZE(KDF5Cache));
127
127
    Item->Lg2Count=Lg2Cnt;
128
128
    Item->Pwd=*Password;
129
129
    memcpy(Item->Salt,Salt,SIZE_SALT50);
130
130
    memcpy(Item->Key,Key,sizeof(Key));
131
131
    memcpy(Item->PswCheckValue,PswCheckValue,sizeof(PswCheckValue));
132
132
    memcpy(Item->HashKeyValue,HashKeyValue,sizeof(HashKeyValue));
133
 
    SecHideData(Item->Key,sizeof(Key),true);
 
133
    SecHideData(Item->Key,sizeof(Key),true,false);
134
134
  }
135
135
  if (HashKey!=NULL)
136
136
    memcpy(HashKey,HashKeyValue,SHA256_DIGEST_SIZE);