Hello again,
Thank you for this script ,
We managed to get you an example of data that triggers the error message (with compress-level=6) in attachments.
You would have to unzip first and then test it (I mean it hasnt been zipped by pgcrypto).
Cheers,
Frank GAGNEPAIN
De : Jeff Janes <jeff.janes@gmail.com>
Envoyé : mercredi 3 juin 2020 14:35
À : Frank Gagnepain <frank.gagnepain@intm.fr>; pgsql-bugs <pgsql-bugs@lists.postgresql.org>
Objet : Re: BUG #16476: pgp_sym_encrypt_bytea with compress-level=6 : Wrong key or corrupt data
select
pgp_sym_decrypt_bytea(pgp_sym_encrypt_bytea(bytea_import(DATA),'password','compress-algo=1,
cipher-algo=aes256, compress-level=6'),'password','compress-algo=1,
cipher-algo=aes256');
decryption reads the settings from the encrypted message header, there is no need to specify them again.
I can reproduce this at any compression level if the data is random (not compressible) and exactly 16365 bytes long. If the data is compressible, then you need a longer length of message to reproduce it and it depends on the random content and compression level.
I'm attaching the reproducer as a Perl script. I have not investigated the C code of pgcrypto itself.
Cheers,
Jeff