diff options
Diffstat (limited to 'contrib/pgcrypto/sql')
| -rw-r--r-- | contrib/pgcrypto/sql/rijndael.sql | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/contrib/pgcrypto/sql/rijndael.sql b/contrib/pgcrypto/sql/rijndael.sql index b162fc61f5f..a2766419980 100644 --- a/contrib/pgcrypto/sql/rijndael.sql +++ b/contrib/pgcrypto/sql/rijndael.sql @@ -24,6 +24,12 @@ SELECT encrypt( '\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', 'aes-cbc/pad:none'); +-- without padding, input not multiple of block size +SELECT encrypt( +'\x00112233445566778899aabbccddeeff00', +'\x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f', +'aes-cbc/pad:none'); + -- key padding SELECT encrypt( @@ -50,6 +56,12 @@ select encrypt('foo', '0123456789012345678901', 'aes'); -- decrypt select encode(decrypt(encrypt('foo', '0123456', 'aes'), '0123456', 'aes'), 'escape'); +-- data not multiple of block size +select encode(decrypt(encrypt('foo', '0123456', 'aes') || '\x00'::bytea, '0123456', 'aes'), 'escape'); +-- bad padding +-- (The input value is the result of encrypt_iv('abcdefghijklmnopqrstuvwxyz', '0123456', 'abcd', 'aes') +-- with the 16th byte changed (s/db/eb/) to corrupt the padding of the last block.) +select encode(decrypt_iv('\xa21a9c15231465964e3396d32095e67eb52bab05f556a581621dee1b85385789', '0123456', 'abcd', 'aes'), 'escape'); -- iv select encrypt_iv('foo', '0123456', 'abcd', 'aes'); |
