[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-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.