Alexander S A Kjeldaas wrote: > <snip> > Try 2.2.17.8.pre2. The /proc/cipher and /proc/digest entries were > switched. > <snip> Now the ciphers show up in /proc/ciphers. But losetup or mount on my blowfish fs gives me an invalid argument on the LOOP_SET_STATUS ioctl. I wonder where this stems from. There are no changes in loop_gen.c or loop.c that could do this, also the introduction of the keysize_mask does not contribute because it is currently purely cosmetic. On the other hand, the changes in cryptoapi.c are so complex that looking at a unified diff makes one lose grip on the context, primarily because I have not yet dug into this too deep. LOOP_SET_STATUS can return EINVAL on: loop.c:557: if lo_encrypt_key_size > LO_KEY_SIZE loop.c:486: if type >= MAX_LO_CRYPT and if xfer_funcs[type] is 0 and a module load fails. also, if xfer->release(lo) or xfer->init(lo,i) return EINVAL. loop_gen_release: always return 0; loop_gen_init2: returns EINVAL if - find_cipher_by_id fails - ci->set_key() fails (i.e. does not return 0). So I suspect the error to be in find_cipher_by_id(), which is now defined a find_transform_by_id(id, TRANSFORM_CIPHER). Here I don't understand why you treat tg different from the way you did before. Prior, it was defined as a pointer to struct transform_group, just like now. The difference being that it is now a local variable where it was a function argument before. Yet, you now write Q> read_lock(&tg->tg_lock) where you wrote Q> read_lock(tg-tg_lock) before? Marc -- Marc Mutz <Marc@xxxxxxxx> http://EncryptionHOWTO.sourceforge.net/ University of Bielefeld, Dep. of Mathematics / Dep. of Physics PGP-keyID's: 0xd46ce9ab (RSA), 0x7ae55b9e (DSS/DH) Linux-crypto: cryptography in and on the Linux system Archive: http://mail.nl.linux.org/linux-crypto/