Date: Sat, 15 Dec 2018 02:32:15 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 234028] Openssl cannot decrypt properly Message-ID: <bug-234028-227-izr0SVXFlJ@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-234028-227@https.bugs.freebsd.org/bugzilla/> References: <bug-234028-227@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D234028 --- Comment #1 from Conrad Meyer <cem@freebsd.org> --- When I do the same thing on 11.2ish with a 16-byte plaintext file, it uses aes-256-cbc and produces a 48 byte output. I am able to reproduce, sort of =E2=80=94 I don't get bogus output, but a d= ecryption error instead. Because it may be useful, here is the output with '-v -v -v -debug' too: ENCRYPT, 11.x: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D BIO[0x801816070]: ctrl(108) - FILE pointer BIO[0x801816070]: ctrl return 1 enter aes-256-cbc encryption password: Verifying - enter aes-256-cbc encryption password: BIO[0x8018160e0]: ctrl(108) - FILE pointer BIO[0x8018160e0]: ctrl return 1 BIO[0x8018160e0]: write(0,8) - FILE pointer BIO[0x8018160e0]: write return 8 BIO[0x8018160e0]: write(0,8) - FILE pointer BIO[0x8018160e0]: write return 8 BIO[0x801816150]: ctrl(6) - cipher BIO[0x8018160e0]: ctrl(6) - FILE pointer BIO[0x8018160e0]: ctrl return 0 BIO[0x801816150]: ctrl return 0 BIO[0x801816070]: read(0,8192) - FILE pointer BIO[0x801816070]: read return 16 BIO[0x801816150]: write(0,16) - cipher BIO[0x8018160e0]: write(0,16) - FILE pointer BIO[0x8018160e0]: write return 16 BIO[0x801816150]: write return 16 BIO[0x801816070]: read(0,8192) - FILE pointer BIO[0x801816070]: read return 0 BIO[0x801816150]: ctrl(11) - cipher BIO[0x8018160e0]: write(0,16) - FILE pointer BIO[0x8018160e0]: write return 16 BIO[0x8018160e0]: ctrl(11) - FILE pointer BIO[0x8018160e0]: ctrl return 1 BIO[0x801816150]: ctrl return 1 bytes read : 16 bytes written: 48 BIO[0x801816070]: Free - FILE pointer BIO[0x8018160e0]: Free - FILE pointer BIO[0x801816150]: Free - cipher DECRYPT, CURRENT: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D bufsize=3D8192 enter aes-256-cbc decryption password: BIO[0x800aea180]: read(0,8) - FILE pointer BIO[0x800aea180]: read return 8 BIO[0x800aea180]: read(0,8) - FILE pointer BIO[0x800aea180]: read return 8 *** WARNING : deprecated key derivation used. Using -iter or -pbkdf2 would be better. BIO[0x800aea280]: ctrl(6) - cipher BIO[0x800aea200]: ctrl(6) - FILE pointer BIO[0x800aea200]: ctrl return 0 BIO[0x800aea280]: ctrl return 0 BIO[0x800aea180]: read(0,8192) - FILE pointer BIO[0x800aea180]: read return 32 BIO[0x800aea280]: write(0,32) - cipher BIO[0x800aea200]: write(0,16) - FILE pointer BIO[0x800aea200]: write return 16 BIO[0x800aea280]: write return 32 BIO[0x800aea180]: read(0,8192) - FILE pointer BIO[0x800aea180]: read return 0 BIO[0x800aea280]: ctrl(11) - cipher BIO[0x800aea280]: ctrl return 0 bad decrypt 34371153920:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:/usr/home/conrad/src/freebsd/crypto/openssl/crypto/evp/evp_enc.c:53= 7: BIO[0x800aea180]: Free - FILE pointer BIO[0x800aea200]: Free - FILE pointer BIO[0x800aea280]: Free - cipher Additionally, running the same encryption command on CURRENT with the same plaintext produces a different ciphertext. But result is salted, so that i= sn't very surprising. CURRENT openssl is able to decrypt the output from the enc command on CURRENT. The debug output is identical, up to this point: BIO[0x800aea280]: write return 32 BIO[0x800aea180]: read(0,8192) - FILE pointer BIO[0x800aea180]: read return 0 BIO[0x800aea280]: ctrl(11) - cipher -------------------------------------- diverges BIO[0x800aea200]: ctrl(11) - FILE pointer BIO[0x800aea200]: ctrl return 1 BIO[0x800aea280]: ctrl return 1 bytes read : 48 bytes written: 16 --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-234028-227-izr0SVXFlJ>