struct grub_luks2_keyslot
{
+ /* The integer key to the associative array of keyslots. */
+ grub_uint64_t idx;
grub_int64_t key_size;
grub_int64_t priority;
struct
struct grub_luks2_segment
{
+ grub_uint64_t idx;
grub_uint64_t offset;
const char *size;
const char *encryption;
struct grub_luks2_digest
{
+ grub_uint64_t idx;
/* Both keyslots and segments are interpreted as bitfields here */
grub_uint64_t keyslots;
grub_uint64_t segments;
{
grub_json_t keyslots, keyslot, digests, digest, segments, segment;
grub_size_t i, size;
- grub_uint64_t idx;
/* Get nth keyslot */
if (grub_json_getvalue (&keyslots, root, "keyslots") ||
grub_json_getchild (&keyslot, &keyslots, keyslot_idx) ||
- grub_json_getuint64 (&idx, &keyslot, NULL) ||
+ grub_json_getuint64 (&k->idx, &keyslot, NULL) ||
grub_json_getchild (&keyslot, &keyslot, 0) ||
luks2_parse_keyslot (k, &keyslot))
return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse keyslot %"PRIuGRUB_SIZE, keyslot_idx);
for (i = 0; i < size; i++)
{
if (grub_json_getchild (&digest, &digests, i) ||
+ grub_json_getuint64 (&d->idx, &digest, NULL) ||
grub_json_getchild (&digest, &digest, 0) ||
luks2_parse_digest (d, &digest))
return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse digest %"PRIuGRUB_SIZE, i);
- if ((d->keyslots & (1 << idx)))
+ if ((d->keyslots & (1 << k->idx)))
break;
}
if (i == size)
for (i = 0; i < size; i++)
{
if (grub_json_getchild (&segment, &segments, i) ||
- grub_json_getuint64 (&idx, &segment, NULL) ||
+ grub_json_getuint64 (&s->idx, &segment, NULL) ||
grub_json_getchild (&segment, &segment, 0) ||
luks2_parse_segment (s, &segment))
return grub_error (GRUB_ERR_BAD_ARGUMENT, "Could not parse segment %"PRIuGRUB_SIZE, i);
- if ((d->segments & (1 << idx)))
+ if ((d->segments & (1 << s->idx)))
break;
}
if (i == size)