mirror of
https://github.com/mirror/wget.git
synced 2025-02-05 01:01:00 +08:00
Add support for Metalink's md2, and md4 hashes
* bootstrap.conf: Add crypto/md2, and crypto/md4 * src/metalink.c (retrieve_from_metalink): Add md2, and md4 support This patch adds support for the deprecated (insecure) md2, and md4 Message-Digest algorithms to the Metalink module.
This commit is contained in:
parent
edad3c1df3
commit
9db02a0c46
@ -64,6 +64,8 @@ memrchr
|
||||
mkdir
|
||||
mkstemp
|
||||
mkostemp
|
||||
crypto/md2
|
||||
crypto/md4
|
||||
crypto/md5
|
||||
crypto/sha1
|
||||
crypto/sha256
|
||||
|
@ -34,6 +34,8 @@ as that of the covered work. */
|
||||
#include "retr.h"
|
||||
#include "exits.h"
|
||||
#include "utils.h"
|
||||
#include "md2.h"
|
||||
#include "md4.h"
|
||||
#include "md5.h"
|
||||
#include "sha1.h"
|
||||
#include "sha256.h"
|
||||
@ -181,6 +183,12 @@ retrieve_from_metalink (const metalink_t* metalink)
|
||||
|
||||
for (mchksum_ptr = mfile->checksums; *mchksum_ptr; mchksum_ptr++)
|
||||
{
|
||||
char md2[MD2_DIGEST_SIZE];
|
||||
char md2_txt[2 * MD2_DIGEST_SIZE + 1];
|
||||
|
||||
char md4[MD4_DIGEST_SIZE];
|
||||
char md4_txt[2 * MD4_DIGEST_SIZE + 1];
|
||||
|
||||
char md5[MD5_DIGEST_SIZE];
|
||||
char md5_txt[2 * MD5_DIGEST_SIZE + 1];
|
||||
|
||||
@ -203,7 +211,9 @@ retrieve_from_metalink (const metalink_t* metalink)
|
||||
mchksum = *mchksum_ptr;
|
||||
|
||||
/* I have seen both variants... */
|
||||
if (c_strcasecmp (mchksum->type, "md5")
|
||||
if (c_strcasecmp (mchksum->type, "md2")
|
||||
&& c_strcasecmp (mchksum->type, "md4")
|
||||
&& c_strcasecmp (mchksum->type, "md5")
|
||||
&& c_strcasecmp (mchksum->type, "sha1")
|
||||
&& c_strcasecmp (mchksum->type, "sha-1")
|
||||
&& c_strcasecmp (mchksum->type, "sha224")
|
||||
@ -225,7 +235,23 @@ retrieve_from_metalink (const metalink_t* metalink)
|
||||
|
||||
DEBUGP (("Declared hash: %s\n", mchksum->hash));
|
||||
|
||||
if (c_strcasecmp (mchksum->type, "md5") == 0)
|
||||
if (c_strcasecmp (mchksum->type, "md2") == 0)
|
||||
{
|
||||
md2_stream (local_file, md2);
|
||||
wg_hex_to_string (md2_txt, md2, MD2_DIGEST_SIZE);
|
||||
DEBUGP (("Computed hash: %s\n", md2_txt));
|
||||
if (!strcmp (md2_txt, mchksum->hash))
|
||||
hash_ok = true;
|
||||
}
|
||||
else if (c_strcasecmp (mchksum->type, "md4") == 0)
|
||||
{
|
||||
md4_stream (local_file, md4);
|
||||
wg_hex_to_string (md4_txt, md4, MD4_DIGEST_SIZE);
|
||||
DEBUGP (("Computed hash: %s\n", md4_txt));
|
||||
if (!strcmp (md4_txt, mchksum->hash))
|
||||
hash_ok = true;
|
||||
}
|
||||
else if (c_strcasecmp (mchksum->type, "md5") == 0)
|
||||
{
|
||||
md5_stream (local_file, md5);
|
||||
wg_hex_to_string (md5_txt, md5, MD5_DIGEST_SIZE);
|
||||
|
Loading…
Reference in New Issue
Block a user