Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/rpm-software-management/createrepo_c.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/checksum.c')
-rw-r--r--src/checksum.c36
1 files changed, 22 insertions, 14 deletions
diff --git a/src/checksum.c b/src/checksum.c
index 688ae66..485461d 100644
--- a/src/checksum.c
+++ b/src/checksum.c
@@ -52,25 +52,27 @@ cr_checksum_type(const char *name)
for (size_t x = 0; x <= len; x++)
name_lower[x] = tolower(name[x]);
- if (!strncmp(name_lower, "md", 2)) {
- // MD* family
- if (name_lower[2] == '5')
- return CR_CHECKSUM_MD5;
- } else if (!strncmp(name_lower, "sha", 3)) {
+ if (!strncmp(name_lower, "sha", 3)) {
// SHA* family
char *sha_type = name_lower + 3;
- if (!strcmp(sha_type, ""))
+ if (!strcmp(sha_type, "512"))
+ return CR_CHECKSUM_SHA512;
+ else if (!strcmp(sha_type, "384"))
+ return CR_CHECKSUM_SHA384;
+ else if (!strcmp(sha_type, "256"))
+ return CR_CHECKSUM_SHA256;
+ else if (!strcmp(sha_type, "224"))
+ return CR_CHECKSUM_SHA224;
+#ifdef WITH_LEGACY_HASHES
+ else if (!strcmp(sha_type, ""))
return CR_CHECKSUM_SHA;
else if (!strcmp(sha_type, "1"))
return CR_CHECKSUM_SHA1;
- else if (!strcmp(sha_type, "224"))
- return CR_CHECKSUM_SHA224;
- else if (!strcmp(sha_type, "256"))
- return CR_CHECKSUM_SHA256;
- else if (!strcmp(sha_type, "384"))
- return CR_CHECKSUM_SHA384;
- else if (!strcmp(sha_type, "512"))
- return CR_CHECKSUM_SHA512;
+ } else if (!strncmp(name_lower, "md", 2)) {
+ // MD* family
+ if (name_lower[2] == '5')
+ return CR_CHECKSUM_MD5;
+#endif
}
return CR_CHECKSUM_UNKNOWN;
@@ -82,12 +84,14 @@ cr_checksum_name_str(cr_ChecksumType type)
switch (type) {
case CR_CHECKSUM_UNKNOWN:
return "Unknown checksum";
+#ifdef WITH_LEGACY_HASHES
case CR_CHECKSUM_MD5:
return "md5";
case CR_CHECKSUM_SHA:
return "sha";
case CR_CHECKSUM_SHA1:
return "sha1";
+#endif
case CR_CHECKSUM_SHA224:
return "sha224";
case CR_CHECKSUM_SHA256:
@@ -117,9 +121,11 @@ cr_checksum_file(const char *filename,
const EVP_MD *ctx_type;
switch (type) {
+#ifdef WITH_LEGACY_HASHES
case CR_CHECKSUM_MD5: ctx_type = EVP_md5(); break;
case CR_CHECKSUM_SHA: ctx_type = EVP_sha1(); break;
case CR_CHECKSUM_SHA1: ctx_type = EVP_sha1(); break;
+#endif
case CR_CHECKSUM_SHA224: ctx_type = EVP_sha224(); break;
case CR_CHECKSUM_SHA256: ctx_type = EVP_sha256(); break;
case CR_CHECKSUM_SHA384: ctx_type = EVP_sha384(); break;
@@ -201,9 +207,11 @@ cr_checksum_new(cr_ChecksumType type, GError **err)
assert(!err || *err == NULL);
switch (type) {
+#ifdef WITH_LEGACY_HASHES
case CR_CHECKSUM_MD5: ctx_type = EVP_md5(); break;
case CR_CHECKSUM_SHA: ctx_type = EVP_sha1(); break;
case CR_CHECKSUM_SHA1: ctx_type = EVP_sha1(); break;
+#endif
case CR_CHECKSUM_SHA224: ctx_type = EVP_sha224(); break;
case CR_CHECKSUM_SHA256: ctx_type = EVP_sha256(); break;
case CR_CHECKSUM_SHA384: ctx_type = EVP_sha384(); break;