[dm-crypt] how to get keyslog PBKDF settings via libcryptsetup
Jonas Meurer <[email protected]>
| Newsgroups | de.saout.dm-crypt |
|---|---|
| Message-ID | <[email protected]> |
Hello dm-crypt folks,
I want to retrieve pbkdf params for active keyslots of LUKS devices.
First I looked into `crypt_keyslot_get_pbkdf()`, but contrary to what
the code suggests[1], it doesn't return values for LUKS1 devices.
Also, looking at the actual return valudes, it seems to return the
calculated values for a new keyslot, not the ones for the active
keyslot, right?
Is there another way to retrieve the values that `cryptsetup luksDump`
shows? I'm particularely interested in the `iterations` values for LUKS1
and `memory` values for LUKS2 devices.
Here's my (non-working code):
struct crypt_device *cd = NULL;
if (crypt_init_by_name(&cd, devices[i])) {
errx(EXIT_FAILURE, "couldn't init LUKS device %s", devices[i]);
} else {
int ks_max = crypt_keyslot_max(crypt_get_type(cd));
for (int j = 0; j < ks_max; j++) {
crypt_keyslot_info ki = crypt_keyslot_status(cd, j);
if (ki == CRYPT_SLOT_ACTIVE || ki == CRYPT_SLOT_ACTIVE_LAST) {
// Keyslot is active
struct crypt_pbkdf_type pbkdf_ki;
if (crypt_keyslot_get_pbkdf(cd, ki, &pbkdf_ki)) {
printf(" max_memory_kb: %d\n", pbkdf_ki.max_memory_kb);
} else {
warn("No PBKDF for ks %d (device %s)", j, devices[i]);
}
}
}
}
crypt_free(cd);
When giving a LUKS2 device, I get (somewhat strange) results:
max_memory_kb: 1824273616
When giving a LUKS1 device, crypt_keyslot_get_pbkdf isn't successful:
cryptsetup-suspend: No PBKDF for ks 0 (device cont3_crypt): Success
Cheers
jonas
[1]
https://gitlab.com/cryptsetup/cryptsetup/blob/4448ddc/lib/setup.c#L5175-5178
signature.asc
(application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEELIzSg9Pv30M4kOeDUmLn/0kQSf4FAl4wSm4ACgkQUmLn/0kQ Sf40rw/9Ge2b77X7GpcL5OcMVNWy9qDU1cbkbCgQZFIdIVLJk5YsXGrMC8Vr2SVP BRU+8YAgTk1rI1gCmFCR25VoyZrnwwwfoXEXqFrD4zfvXFNvpkOdwt+QC9QtCLbg lezWDAXY+7mvPhvkHI/ahaBufhU5saP1lwx0CzWNMZkrxAPMK8GK8yAV2G+1dK3f VQcnHVL7+vk8tKd/d22BjK9UpDIkPgCVhKeRk4H79lYl5KxnrIkEVjp24KmzkPA2 lpIJe98q/VJ5Lk0Gh4NceggFkjsSKTU8/vHD7xvXywWc4RpvZEXffL1l5OFuokWi MyXilGjLPhYSH1LdXTU4xVyMmiNivn8/zAgf+pGD4IJoVmr/SOIbIPB/fhFydBE+ SkG29xBM9qy7C44YE2iezMe6DcunAIk6E8NAGUP46jxC9ofRohRqs2GLW9LFRYqv H4i6VWl8gnr9TXymwSbigZoO9n4KgVCHY75GbDdpAYuKRVkq95g+/asVa2Bcu3uy Fes+iedeB4lhyoC6TyTPIw/upXoBMlm47p6Vhx38fQOohM3llixFEdwZc5pnB3yn /9oijEufEpgmwNRTfCHjjJ/KrWTMFnwf8ZHwSZ4Bq2PXTRLiIkMKPlJbAybTU/35 HD5j8M2c0Dv93Z9UGmwY3aUOiMMUKiIlxnvT4qMgY+1yFuVKYcI= =ljvj -----END PGP SIGNATURE-----