Id solv_chksum_str2type(const char *str);
int solv_chksum_len(Id type);
+#ifdef LIBSOLV_INTERNAL
+
+#define case_CHKSUM_TYPES \
+ case REPOKEY_TYPE_MD5: \
+ case REPOKEY_TYPE_SHA1: \
+ case REPOKEY_TYPE_SHA224: \
+ case REPOKEY_TYPE_SHA256: \
+ case REPOKEY_TYPE_SHA384: \
+ case REPOKEY_TYPE_SHA512
+
+#endif
+
#ifdef __cplusplus
}
#endif
return 0;
switch (key->type)
{
- case REPOKEY_TYPE_MD5:
- case REPOKEY_TYPE_SHA1:
- case REPOKEY_TYPE_SHA224:
- case REPOKEY_TYPE_SHA256:
- case REPOKEY_TYPE_SHA384:
- case REPOKEY_TYPE_SHA512:
+ case_CHKSUM_TYPES:
break;
default:
return 0;
kv->str = repodata_dir2str(data, kv->id, kv->str);
kv->num = 1; /* mark stringification */
return 1;
- case REPOKEY_TYPE_MD5:
- case REPOKEY_TYPE_SHA1:
- case REPOKEY_TYPE_SHA224:
- case REPOKEY_TYPE_SHA256:
- case REPOKEY_TYPE_SHA384:
- case REPOKEY_TYPE_SHA512:
+ case_CHKSUM_TYPES:
if (!(flags & SEARCH_CHECKSUMS))
return 0; /* skip em */
if (kv->num)
return;
switch (di->key->type)
{
- case REPOKEY_TYPE_MD5:
- case REPOKEY_TYPE_SHA1:
- case REPOKEY_TYPE_SHA224:
- case REPOKEY_TYPE_SHA256:
- case REPOKEY_TYPE_SHA384:
- case REPOKEY_TYPE_SHA512:
+ case_CHKSUM_TYPES:
case REPOKEY_TYPE_DIRSTRARRAY:
if (di->kv.num) /* was it stringified into tmp space? */
l = strlen(di->kv.str) + 1;
case REPOKEY_TYPE_DIRSTRARRAY:
l = strlen(di->kv.str) + 1;
break;
- case REPOKEY_TYPE_MD5:
- l = SIZEOF_MD5;
- break;
- case REPOKEY_TYPE_SHA1:
- l = SIZEOF_SHA1;
- break;
- case REPOKEY_TYPE_SHA224:
- l = SIZEOF_SHA224;
- break;
- case REPOKEY_TYPE_SHA256:
- l = SIZEOF_SHA256;
- break;
- case REPOKEY_TYPE_SHA384:
- l = SIZEOF_SHA384;
- break;
- case REPOKEY_TYPE_SHA512:
- l = SIZEOF_SHA512;
+ case_CHKSUM_TYPES:
+ l = solv_chksum_len(di->key->type);
break;
case REPOKEY_TYPE_BINARY:
l = di->kv.num;
case REPOKEY_TYPE_NUM:
repodata_set_num(sdata, SOLVID_META, di.key->name, SOLV_KV_NUM64(&di.kv));
break;
- case REPOKEY_TYPE_MD5:
- case REPOKEY_TYPE_SHA1:
- case REPOKEY_TYPE_SHA224:
- case REPOKEY_TYPE_SHA256:
- case REPOKEY_TYPE_SHA384:
- case REPOKEY_TYPE_SHA512:
+ case_CHKSUM_TYPES:
repodata_set_bin_checksum(sdata, SOLVID_META, di.key->name, di.key->type, (const unsigned char *)di.kv.str);
break;
case REPOKEY_TYPE_IDARRAY:
static int dump_json;
#include "pool.h"
+#include "chksum.h"
#include "repo_solv.h"
case REPOKEY_TYPE_STR:
printf("%s: %s\n", keyname, kv->str);
break;
- case REPOKEY_TYPE_MD5:
- case REPOKEY_TYPE_SHA1:
- case REPOKEY_TYPE_SHA224:
- case REPOKEY_TYPE_SHA256:
- case REPOKEY_TYPE_SHA384:
- case REPOKEY_TYPE_SHA512:
- printf("%s: %s (%s)\n", keyname, repodata_chk2str(data, key->type, (unsigned char *)kv->str), pool_id2str(repo->pool, key->type));
- break;
case REPOKEY_TYPE_VOID:
printf("%s: (void)\n", keyname);
break;
printf("\n");
break;
default:
+ if (solv_chksum_len(key->type))
+ {
+ printf("%s: %s (%s)\n", keyname, repodata_chk2str(data, key->type, (unsigned char *)kv->str), solv_chksum_type2str(key->type));
+ break;
+ }
printf("%s: ?\n", keyname);
break;
}
str = kv->str;
printf("%s", jsonstring(pool, str));
break;
- case REPOKEY_TYPE_MD5:
- case REPOKEY_TYPE_SHA1:
- case REPOKEY_TYPE_SHA224:
- case REPOKEY_TYPE_SHA256:
- case REPOKEY_TYPE_SHA384:
- case REPOKEY_TYPE_SHA512:
- printf("{\n");
- printf("%*s \"value\": %s,\n", indent, "", jsonstring(pool, repodata_chk2str(data, key->type, (unsigned char *)kv->str)));
- printf("%*s \"type\": %s\n", indent, "", jsonstring(pool, pool_id2str(repo->pool, key->type)));
- printf("%*s}", indent, "");
- break;
case REPOKEY_TYPE_VOID:
printf("null");
break;
printf("%*s]", indent, "");
break;
default:
+ if (solv_chksum_len(key->type))
+ {
+ printf("{\n");
+ printf("%*s \"value\": %s,\n", indent, "", jsonstring(pool, repodata_chk2str(data, key->type, (unsigned char *)kv->str)));
+ printf("%*s \"type\": %s\n", indent, "", jsonstring(pool, solv_chksum_type2str(key->type)));
+ printf("%*s}", indent, "");
+ break;
+ }
printf("\"?\"");
break;
}
case REPOKEY_TYPE_CONSTANT:
printf("%llu\n", SOLV_KV_NUM64(&di.kv));
break;
- case REPOKEY_TYPE_MD5:
- case REPOKEY_TYPE_SHA1:
- case REPOKEY_TYPE_SHA224:
- case REPOKEY_TYPE_SHA256:
- case REPOKEY_TYPE_SHA384:
- case REPOKEY_TYPE_SHA512:
- printf("%s:%s\n", solv_chksum_type2str(di.key->type), repodata_chk2str(di.data, di.key->type, (unsigned char *)di.kv.str));
- break;
default:
+ if (solv_chksum_len(di.key->type))
+ printf("%s:%s\n", solv_chksum_type2str(di.key->type), repodata_chk2str(di.data, di.key->type, (unsigned char *)di.kv.str));
break;
}
}