added more support for broken md5 code
CVS patchset: 1503 CVS date: 1997/03/28 17:46:34
This commit is contained in:
parent
d27dd974ec
commit
aa64e9fdd7
|
@ -96,6 +96,7 @@ extern const int rpmTagTableSize;
|
|||
#define RPMTAG_CHANGELOGTIME 1080
|
||||
#define RPMTAG_CHANGELOGNAME 1081
|
||||
#define RPMTAG_CHANGELOGTEXT 1082
|
||||
#define RPMTAG_BROKENMD5 1083 /* internal */
|
||||
|
||||
#define RPMTAG_EXTERNAL_TAG 1000000
|
||||
|
||||
|
@ -386,10 +387,11 @@ rpmErrorCallBackType rpmErrorSetCallback(rpmErrorCallBackType);
|
|||
/**************************************************/
|
||||
|
||||
#define RPMSIGTAG_SIZE 1000
|
||||
/* the md5 sum was broken on big endian machines for a while */
|
||||
#define RPMSIGTAG_LITTLEENDIANMD5 1001
|
||||
/* the md5 sum was broken *twice* on big endian machines */
|
||||
#define RPMSIGTAG_LEMD5_1 1001
|
||||
#define RPMSIGTAG_PGP 1002
|
||||
#define RPMSIGTAG_MD5 1003
|
||||
#define RPMSIGTAG_LEMD5_2 1003
|
||||
#define RPMSIGTAG_MD5 1004
|
||||
|
||||
/**************************************************/
|
||||
/* */
|
||||
|
|
|
@ -292,7 +292,8 @@ int rpmVerifySignature(char *file, int_32 sigTag, void *sig, int count,
|
|||
return 1;
|
||||
}
|
||||
break;
|
||||
case RPMSIGTAG_LITTLEENDIANMD5:
|
||||
case RPMSIGTAG_LEMD5_1:
|
||||
case RPMSIGTAG_LEMD5_2:
|
||||
if (verifyMD5Signature(file, sig, result, mdbinfileBroken)) {
|
||||
return 1;
|
||||
}
|
||||
|
|
21
lib/verify.c
21
lib/verify.c
|
@ -37,12 +37,23 @@ int rpmVerifyFile(char * prefix, Header h, int filenum, int * result,
|
|||
char linkto[1024];
|
||||
int size;
|
||||
char ** unameList, ** gnameList;
|
||||
int useBrokenMd5;
|
||||
int_32 useBrokenMd5;
|
||||
|
||||
if (headerGetEntry(h, RPMTAG_RPMVERSION, NULL, NULL, NULL))
|
||||
useBrokenMd5 = 0;
|
||||
else
|
||||
useBrokenMd5 = 1;
|
||||
#if WORDS_BIGENDIAN
|
||||
if (!headerGetEntry(h, RPMTAG_BROKENMD5, NULL, &useBrokenMd5, NULL)) {
|
||||
char * rpmVersion;
|
||||
|
||||
if (headerGetEntry(h, RPMTAG_RPMVERSION, NULL, &rpmVersion, NULL)) {
|
||||
useBrokenMd5 = ((rpmvercmp(rpmVersion, "2.3.3") >= 0) &&
|
||||
(rpmvercmp(rpmVersion, "2.3.8") <= 0));
|
||||
} else {
|
||||
useBrokenMd5 = 1;
|
||||
}
|
||||
headerAddEntry(h, RPMTAG_BROKENMD5, RPM_INT32_TYPE, &useBrokenMd5, 1);
|
||||
}
|
||||
#else
|
||||
useBrokenMd5 = 0;
|
||||
#endif
|
||||
|
||||
headerGetEntry(h, RPMTAG_FILEMODES, &type, (void **) &modeList, &count);
|
||||
|
||||
|
|
Loading…
Reference in New Issue