From: Mike Halcrow Set the unencrypted key size based on the encrypted key size. Code to handle the special case of AES-192; since the encrypted key size must be a multiple of the cipher block size, we have 32 bytes of encrypted key data, and we only take the first 24 bytes of the decrypted key data. Signed-off-by: Michael Halcrow Signed-off-by: Andrew Morton --- fs/ecryptfs/keystore.c | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-) diff -puN fs/ecryptfs/keystore.c~ecryptfs-unencrypted-key-size-based-on-encrypted-key-size fs/ecryptfs/keystore.c --- 25/fs/ecryptfs/keystore.c~ecryptfs-unencrypted-key-size-based-on-encrypted-key-size Tue Jun 20 17:37:29 2006 +++ 25-akpm/fs/ecryptfs/keystore.c Tue Jun 20 17:37:29 2006 @@ -247,15 +247,12 @@ parse_tag_3_packet(struct ecryptfs_crypt /* A little extra work to differentiate among the AES key * sizes; see RFC2440 */ switch(data[(*packet_size)++]) { - case 0x07: - crypt_stat->key_size_bits = 128; - break; case 0x08: crypt_stat->key_size_bits = 192; break; - case 0x09: - crypt_stat->key_size_bits = 256; - break; + default: + crypt_stat->key_size_bits = + (*new_auth_tok)->session_key.encrypted_key_size << 3; } if (unlikely((*packet_size) > max_packet_size)) { ecryptfs_printk(KERN_ERR, "Packet size exceeds max\n"); _