@@ -20,10 +20,10 @@ size_t Archive::ReadHeader()
2020 case RARFMT14:
2121 ReadSize=ReadHeader14 ();
2222 break ;
23+ #endif
2324 case RARFMT15:
2425 ReadSize=ReadHeader15 ();
2526 break ;
26- #endif
2727 case RARFMT50:
2828 ReadSize=ReadHeader50 ();
2929 break ;
@@ -106,9 +106,6 @@ void Archive::UnexpEndArcMsg()
106106 if (CurBlockPos!=ArcSize || NextBlockPos!=ArcSize)
107107 {
108108 uiMsg (UIERROR_UNEXPEOF,FileName);
109- if (CurHeaderType!=HEAD_FILE && CurHeaderType!=HEAD_UNKNOWN)
110- uiMsg (UIERROR_TRUNCSERVICE,FileName,SubHead.FileName );
111-
112109 ErrHandler.SetErrorCode (RARX_WARNING);
113110 }
114111}
@@ -140,7 +137,6 @@ inline int64 SafeAdd(int64 v1,int64 v2,int64 f)
140137}
141138
142139
143- #ifndef SFX_MODULE
144140size_t Archive::ReadHeader15 ()
145141{
146142 RawRead Raw (this );
@@ -149,7 +145,7 @@ size_t Archive::ReadHeader15()
149145
150146 if (Decrypt)
151147 {
152- #ifdef RAR_NOCRYPT // For rarext.dll, Setup.SFX and unrar_nocrypt.dll.
148+ #ifdef RAR_NOCRYPT // For rarext.dll and unrar_nocrypt.dll.
153149 return 0 ;
154150#else
155151 RequestArcPassword (NULL );
@@ -549,7 +545,6 @@ size_t Archive::ReadHeader15()
549545
550546 return Raw.Size ();
551547}
552- #endif // #ifndef SFX_MODULE
553548
554549
555550size_t Archive::ReadHeader50 ()
@@ -745,15 +740,10 @@ size_t Archive::ReadHeader50()
745740 byte csum[SIZE_PSWCHECK_CSUM];
746741 Raw.GetB (csum,SIZE_PSWCHECK_CSUM);
747742
748- // Exclude this code for rarext.dll, Setup.SFX and unrar_nocrypt.dll linked
749- // without sha256. But still set Encrypted=true for rarext.dll here,
750- // so it can recognize encrypted header archives in archive properties.
751- #ifndef RAR_NOCRYPT
752743 byte Digest[SHA256_DIGEST_SIZE];
753744 sha256_get (CryptHead.PswCheck , SIZE_PSWCHECK, Digest);
754745
755746 CryptHead.UsePswCheck =memcmp (csum,Digest,SIZE_PSWCHECK_CSUM)==0 ;
756- #endif
757747 }
758748 Encrypted=true ;
759749 }
@@ -904,16 +894,6 @@ size_t Archive::ReadHeader50()
904894 if (!FileBlock && hd->CmpName (SUBHEAD_TYPE_CMT))
905895 MainComment=true ;
906896
907- // For RAR5 format we read the user specified recovery percent here.
908- if (!FileBlock && hd->CmpName (SUBHEAD_TYPE_RR) && hd->SubData .size ()>0 )
909- {
910- // It is stored as a single byte up to RAR 6.02 and as vint since
911- // 6.10, where we extended the maximum RR size from 99% to 1000%.
912- RawRead RawPercent;
913- RawPercent.Read (hd->SubData .data (),hd->SubData .size ());
914- RecoveryPercent=(int )RawPercent.GetV ();
915-
916- }
917897
918898 if (BadCRC) // Add the file name to broken header message displayed above.
919899 uiMsg (UIERROR_FHEADERBROKEN,Archive::FileName,hd->FileName );
@@ -1056,30 +1036,22 @@ void Archive::ProcessExtra50(RawRead *Raw,size_t ExtraSize,const BaseBlock *bb)
10561036 FileHeader *hd=(FileHeader *)bb;
10571037 switch (FieldType)
10581038 {
1059- #ifndef RAR_NOCRYPT // Except rarext.dll, Setup.SFX and unrar_nocrypt.dll.
10601039 case FHEXTRA_CRYPT:
10611040 {
10621041 FileHeader *hd=(FileHeader *)bb;
10631042 uint EncVersion=(uint)Raw->GetV ();
10641043 if (EncVersion>CRYPT_VERSION)
1065- {
10661044 UnkEncVerMsg (hd->FileName ,L" x" + std::to_wstring (EncVersion));
1067- hd->CryptMethod =CRYPT_UNKNOWN;
1068- }
10691045 else
10701046 {
10711047 uint Flags=(uint)Raw->GetV ();
1048+ hd->UsePswCheck =(Flags & FHEXTRA_CRYPT_PSWCHECK)!=0 ;
1049+ hd->UseHashKey =(Flags & FHEXTRA_CRYPT_HASHMAC)!=0 ;
10721050 hd->Lg2Count =Raw->Get1 ();
10731051 if (hd->Lg2Count >CRYPT5_KDF_LG2_COUNT_MAX)
1074- {
10751052 UnkEncVerMsg (hd->FileName ,L" xc" + std::to_wstring (hd->Lg2Count ));
1076- hd->CryptMethod =CRYPT_UNKNOWN;
1077- }
10781053 else
10791054 {
1080- hd->UsePswCheck =(Flags & FHEXTRA_CRYPT_PSWCHECK)!=0 ;
1081- hd->UseHashKey =(Flags & FHEXTRA_CRYPT_HASHMAC)!=0 ;
1082-
10831055 Raw->GetB (hd->Salt ,SIZE_SALT50);
10841056 Raw->GetB (hd->InitV ,SIZE_INITV);
10851057 if (hd->UsePswCheck )
@@ -1113,7 +1085,6 @@ void Archive::ProcessExtra50(RawRead *Raw,size_t ExtraSize,const BaseBlock *bb)
11131085 }
11141086 }
11151087 break ;
1116- #endif
11171088 case FHEXTRA_HASH:
11181089 {
11191090 FileHeader *hd=(FileHeader *)bb;
@@ -1318,7 +1289,7 @@ size_t Archive::ReadHeader14()
13181289 std::string FileName (NameSize,0 );
13191290 Raw.GetB ((byte *)&FileName[0 ],NameSize);
13201291 std::string NameA;
1321- OemToExt (FileName,NameA);
1292+ IntToExt (FileName,NameA);
13221293 CharToWide (NameA,FileHead.FileName );
13231294 ConvertNameCase (FileHead.FileName );
13241295 ConvertFileHeader (&FileHead);
0 commit comments